import { createRequire as _createRequire } from 'node:module';
const require = _createRequire(import.meta.url);
import {
  require_kebabCase
} from "./chunk-YNEGRO3E.js";
import {
  createEnv,
  extractHttpError
} from "./chunk-TOBTRYZF.js";
import {
  require_react
} from "./chunk-TODKQSCF.js";
import {
  readUserConfig
} from "./chunk-SVUXJRFD.js";
import {
  getTestOverrides
} from "./chunk-XZUGLEBK.js";
import {
  CliSystemErrorCode,
  require_lib,
  require_verror
} from "./chunk-MTT3QXBC.js";
import {
  __commonJS,
  __toESM,
  init_esm_shims
} from "./chunk-EXLZF52D.js";

// ../../node_modules/@babel/runtime/helpers/typeof.js
var require_typeof = __commonJS({
  "../../node_modules/@babel/runtime/helpers/typeof.js"(exports, module) {
    "use strict";
    init_esm_shims();
    function _typeof(o) {
      "@babel/helpers - typeof";
      return module.exports = _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(o2) {
        return typeof o2;
      } : function(o2) {
        return o2 && "function" == typeof Symbol && o2.constructor === Symbol && o2 !== Symbol.prototype ? "symbol" : typeof o2;
      }, module.exports.__esModule = true, module.exports["default"] = module.exports, _typeof(o);
    }
    module.exports = _typeof, module.exports.__esModule = true, module.exports["default"] = module.exports;
  }
});

// ../../node_modules/@babel/runtime/helpers/toPrimitive.js
var require_toPrimitive = __commonJS({
  "../../node_modules/@babel/runtime/helpers/toPrimitive.js"(exports, module) {
    "use strict";
    init_esm_shims();
    var _typeof = require_typeof()["default"];
    function toPrimitive(t, r) {
      if ("object" != _typeof(t) || !t) return t;
      var e = t[Symbol.toPrimitive];
      if (void 0 !== e) {
        var i = e.call(t, r || "default");
        if ("object" != _typeof(i)) return i;
        throw new TypeError("@@toPrimitive must return a primitive value.");
      }
      return ("string" === r ? String : Number)(t);
    }
    module.exports = toPrimitive, module.exports.__esModule = true, module.exports["default"] = module.exports;
  }
});

// ../../node_modules/@babel/runtime/helpers/toPropertyKey.js
var require_toPropertyKey = __commonJS({
  "../../node_modules/@babel/runtime/helpers/toPropertyKey.js"(exports, module) {
    "use strict";
    init_esm_shims();
    var _typeof = require_typeof()["default"];
    var toPrimitive = require_toPrimitive();
    function toPropertyKey(t) {
      var i = toPrimitive(t, "string");
      return "symbol" == _typeof(i) ? i : i + "";
    }
    module.exports = toPropertyKey, module.exports.__esModule = true, module.exports["default"] = module.exports;
  }
});

// ../../node_modules/@babel/runtime/helpers/defineProperty.js
var require_defineProperty = __commonJS({
  "../../node_modules/@babel/runtime/helpers/defineProperty.js"(exports, module) {
    "use strict";
    init_esm_shims();
    var toPropertyKey = require_toPropertyKey();
    function _defineProperty7(e, r, t) {
      return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {
        value: t,
        enumerable: true,
        configurable: true,
        writable: true
      }) : e[r] = t, e;
    }
    module.exports = _defineProperty7, module.exports.__esModule = true, module.exports["default"] = module.exports;
  }
});

// ../cli-panorama/src/PanoramaContext.tsx
init_esm_shims();
var import_react = __toESM(require_react(), 1);
var PanoramaContext = (0, import_react.createContext)(void 0);
var PanoramaProvider = (props) => {
  const { value, children } = props;
  return /* @__PURE__ */ import_react.default.createElement(PanoramaContext.Provider, { value }, children);
};

// ../cli-panorama/src/createPanorama.ts
init_esm_shims();
var import_verror = __toESM(require_verror(), 1);
var import_variant = __toESM(require_lib(), 1);

// ../../node_modules/@wix/panorama-client-node/dist/esm/index.js
init_esm_shims();

// ../../node_modules/@wix/panorama-client-node/dist/esm/panorama-client-node.js
init_esm_shims();

// ../../node_modules/@wix/panorama-client-node/node_modules/@wix/panorama-client/dist/esm/index.js
init_esm_shims();

// ../../node_modules/@wix/panorama-client-node/node_modules/@wix/panorama-common-shared/dist/esm/types/index.js
init_esm_shims();

// ../../node_modules/@wix/panorama-client-node/node_modules/@wix/panorama-common-shared/dist/esm/types/enum-types.js
init_esm_shims();
var AlertType;
(function(AlertType2) {
  AlertType2["SuccessRate"] = "SuccessRate";
  AlertType2["SuccessRateQuality"] = "SuccessRateQuality";
  AlertType2["Duration"] = "Duration";
  AlertType2["ErrorRate"] = "ErrorRate";
})(AlertType || (AlertType = {}));
var AlertStatus;
(function(AlertStatus2) {
  AlertStatus2["Alerting"] = "alerting";
  AlertStatus2["Ok"] = "ok";
})(AlertStatus || (AlertStatus = {}));
var LogLevel;
(function(LogLevel2) {
  LogLevel2["Info"] = "INFO";
  LogLevel2["Warn"] = "WARN";
  LogLevel2["Error"] = "ERROR";
  LogLevel2["Debug"] = "DEBUG";
})(LogLevel || (LogLevel = {}));
var TransactionAction;
(function(TransactionAction2) {
  TransactionAction2["Start"] = "START";
  TransactionAction2["Finish"] = "FINISH";
})(TransactionAction || (TransactionAction = {}));
var InternalTransactions = {
  ComponentLoad: "PANORAMA_COMPONENT_LOAD",
  ComponentPhase: "PANORAMA_COMPONENT_PHASE"
};
var Platform;
(function(Platform2) {
  Platform2["Standalone"] = "standalone";
  Platform2["BusinessManager"] = "business-manager";
  Platform2["Viewer"] = "viewer";
  Platform2["Editor"] = "editor";
  Platform2["EditorSettings"] = "editor:settings";
  Platform2["Mobile"] = "mobile";
  Platform2["Standards"] = "standards";
  Platform2["DevPortal"] = "dev-portal";
})(Platform || (Platform = {}));
var ErrorSeverity;
(function(ErrorSeverity2) {
  ErrorSeverity2["Fatal"] = "fatal";
  ErrorSeverity2["Error"] = "error";
  ErrorSeverity2["Warning"] = "warning";
  ErrorSeverity2["Log"] = "log";
  ErrorSeverity2["Info"] = "info";
  ErrorSeverity2["Debug"] = "debug";
  ErrorSeverity2["Critical"] = "critical";
})(ErrorSeverity || (ErrorSeverity = {}));

// ../../node_modules/@wix/panorama-client-node/node_modules/@wix/panorama-common-shared/dist/esm/types/data-types.js
init_esm_shims();

// ../../node_modules/@wix/panorama-client-node/node_modules/@wix/panorama-common-shared/dist/esm/types/interface-types.js
init_esm_shims();

// ../../node_modules/@wix/panorama-client-node/node_modules/@wix/panorama-common/dist/esm/global-config/index.js
init_esm_shims();

// ../../node_modules/@wix/panorama-client-node/node_modules/@wix/panorama-common/dist/esm/global-config/global-config.js
init_esm_shims();

// ../../node_modules/uuid/dist/esm-node/index.js
init_esm_shims();

// ../../node_modules/uuid/dist/esm-node/rng.js
init_esm_shims();
import crypto from "crypto";
var rnds8Pool = new Uint8Array(256);
var poolPtr = rnds8Pool.length;
function rng() {
  if (poolPtr > rnds8Pool.length - 16) {
    crypto.randomFillSync(rnds8Pool);
    poolPtr = 0;
  }
  return rnds8Pool.slice(poolPtr, poolPtr += 16);
}

// ../../node_modules/uuid/dist/esm-node/stringify.js
init_esm_shims();
var byteToHex = [];
for (let i = 0; i < 256; ++i) {
  byteToHex.push((i + 256).toString(16).slice(1));
}
function unsafeStringify(arr, offset = 0) {
  return byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + "-" + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + "-" + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + "-" + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + "-" + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]];
}

// ../../node_modules/uuid/dist/esm-node/v4.js
init_esm_shims();

// ../../node_modules/uuid/dist/esm-node/native.js
init_esm_shims();
import crypto2 from "crypto";
var native_default = {
  randomUUID: crypto2.randomUUID
};

// ../../node_modules/uuid/dist/esm-node/v4.js
function v4(options, buf, offset) {
  if (native_default.randomUUID && !buf && !options) {
    return native_default.randomUUID();
  }
  options = options || {};
  const rnds = options.random || (options.rng || rng)();
  rnds[6] = rnds[6] & 15 | 64;
  rnds[8] = rnds[8] & 63 | 128;
  if (buf) {
    offset = offset || 0;
    for (let i = 0; i < 16; ++i) {
      buf[offset + i] = rnds[i];
    }
    return buf;
  }
  return unsafeStringify(rnds);
}
var v4_default = v4;

// ../../node_modules/@wix/panorama-client-node/node_modules/@wix/panorama-common/dist/esm/duration-tracker/index.js
init_esm_shims();

// ../../node_modules/@wix/panorama-client-node/node_modules/@wix/panorama-common/dist/esm/duration-tracker/duration-tracker.js
init_esm_shims();
var DELIMITER = " | ";
var DurationTrackerImpl = class {
  constructor() {
    this.transactionStartTimes = {};
    this.phaseStartTimes = {};
  }
  createKey(...args) {
    return args.filter((x) => !!x).join(DELIMITER);
  }
  markTransactionStart(fullArtifactId, componentId, transactionName, transactionId) {
    const key = this.createKey(fullArtifactId, componentId, transactionName, transactionId);
    this.transactionStartTimes[key] = Date.now();
  }
  markTransactionFinish(fullArtifactId, componentId, transactionName, transactionId) {
    const key = this.createKey(fullArtifactId, componentId, transactionName, transactionId);
    const finishTime = Date.now();
    const startTime = this.transactionStartTimes[key] || finishTime;
    const duration = Math.round(finishTime - startTime);
    this.transactionStartTimes[key] = 0;
    return duration;
  }
  markPhaseStart(fullArtifactId, componentId, phaseName) {
    const key = this.createKey(fullArtifactId, componentId, phaseName);
    this.phaseStartTimes[key] = Date.now();
  }
  markPhaseFinish(fullArtifactId, componentId, phaseName) {
    const key = this.createKey(fullArtifactId, componentId, phaseName);
    const finishTime = Date.now();
    const startTime = this.phaseStartTimes[key] || finishTime;
    const duration = Math.round(finishTime - startTime);
    this.phaseStartTimes[key] = 0;
    return duration;
  }
};
var createDurationTracker = () => new DurationTrackerImpl();

// ../../node_modules/@wix/panorama-client-node/node_modules/@wix/panorama-common/dist/esm/global-config/global-config.js
var GlobalConfigImpl = class {
  constructor() {
    this.sessionId = "";
    this.reporter = null;
    this.batchQueue = null;
    this.durationTracker = createDurationTracker();
    this.state = /* @__PURE__ */ new Map();
    this.sessionStart = Date.now();
  }
  getSessionId() {
    this.sessionId = this.sessionId || v4_default();
    return this.sessionId;
  }
  setSessionId(sessionId) {
    this.sessionId = sessionId;
  }
  getSessionTime() {
    return Date.now() - this.sessionStart;
  }
  getReporter() {
    return this.reporter;
  }
  setReporter(reporter) {
    this.reporter = reporter;
  }
  initBatchQueue(batchQueue) {
    this.batchQueue = this.batchQueue ?? batchQueue;
  }
  getBatchQueue() {
    return this.batchQueue;
  }
  getDurationTracker() {
    return this.durationTracker;
  }
  getStateValue(key) {
    return this.state.get(key);
  }
  setStateValue(key, value) {
    this.state.set(key, value);
  }
  clearState() {
    this.state.clear();
    this.durationTracker = createDurationTracker();
  }
};
var createGlobalConfig = () => new GlobalConfigImpl();

// ../../node_modules/@wix/panorama-client-node/node_modules/@wix/panorama-client/dist/esm/panorama-client-factory.js
init_esm_shims();
var import_defineProperty6 = __toESM(require_defineProperty());

// ../../node_modules/@wix/panorama-client-node/node_modules/@wix/panorama-common/dist/esm/utils/index.js
init_esm_shims();

// ../../node_modules/@wix/panorama-client-node/node_modules/@wix/panorama-common/dist/esm/utils/class-utils.js
init_esm_shims();
var bindPrototypeMethodsToSelf = (instance, classFn) => {
  const prototype = classFn ? classFn.prototype : Object.getPrototypeOf(instance);
  const props = Object.getOwnPropertyNames(prototype);
  for (const prop of props) {
    if (prop === "constructor" || typeof prototype[prop] !== "function") {
      continue;
    }
    instance[prop] = prototype[prop].bind(instance);
  }
};

// ../../node_modules/@wix/panorama-client-node/node_modules/@wix/panorama-client/dist/esm/utils/general-utils.js
init_esm_shims();
var union = function() {
  for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
    args[_key] = arguments[_key];
  }
  return [...new Set(args.flat()).values()];
};
var defaults = function() {
  for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
    args[_key2] = arguments[_key2];
  }
  return args.reduce((res, obj) => Object.entries(obj ?? {}).reduce((_res, _ref) => {
    let [key, value] = _ref;
    if (typeof _res[key] === "undefined" && typeof value !== "undefined") {
      _res[key] = value;
    }
    return _res;
  }, res), {});
};
var deepDefaults = function(dest) {
  for (var _len3 = arguments.length, rest = new Array(_len3 > 1 ? _len3 - 1 : 0), _key3 = 1; _key3 < _len3; _key3++) {
    rest[_key3 - 1] = arguments[_key3];
  }
  const keys = union(...rest.map((value) => Object.keys(value ?? {})));
  const all = [dest, ...rest];
  return keys.reduce((res, key) => {
    const values = all.map((value) => value == null ? void 0 : value[key]);
    const merged = defaults(...values);
    const hasValues = Object.values(merged).filter((value) => typeof value !== "undefined").length > 0;
    if (hasValues) {
      res = res ?? {};
      res[key] = merged;
    } else {
      var _res2;
      (_res2 = res) == null || delete _res2[key];
    }
    return res;
  }, dest ? {
    ...dest
  } : dest);
};

// ../../node_modules/@wix/panorama-client-node/node_modules/@wix/panorama-client/dist/esm/panorama-client.js
init_esm_shims();
var import_defineProperty3 = __toESM(require_defineProperty());

// ../../node_modules/@wix/panorama-client-node/node_modules/@wix/panorama-client/dist/esm/panorama-client-component.js
init_esm_shims();
var import_defineProperty = __toESM(require_defineProperty());

// ../../node_modules/@wix/panorama-client-node/node_modules/@wix/panorama-client/dist/esm/panorama-error-monitor.js
init_esm_shims();
var PanoramaErrorMonitorImpl = class {
  constructor(baseClient, options) {
    this.baseClient = baseClient;
    this.options = options;
    bindPrototypeMethodsToSelf(this);
  }
  reportError(error, data) {
    this.baseClient.reportError(error, data, this.options);
  }
  addBreadcrumb(breadcrumb) {
    this.baseClient.addBreadcrumb(breadcrumb);
  }
};

// ../../node_modules/@wix/panorama-client-node/node_modules/@wix/panorama-client/dist/esm/panorama-logger.js
init_esm_shims();
var PanoramaLoggerImpl = class {
  constructor(baseClient) {
    this.baseClient = baseClient;
    bindPrototypeMethodsToSelf(this);
  }
  info(message, data) {
    this.baseClient.log(LogLevel.Info, message, data);
  }
  warn(message, data) {
    this.baseClient.log(LogLevel.Warn, message, data);
  }
  error(message, data) {
    this.baseClient.log(LogLevel.Error, message, data);
  }
  debug(message, data) {
    this.baseClient.log(LogLevel.Debug, message, data);
  }
};

// ../../node_modules/@wix/panorama-client-node/node_modules/@wix/panorama-client/dist/esm/panorama-transaction.js
init_esm_shims();

// ../../node_modules/@wix/panorama-client-node/node_modules/@wix/panorama-common-shared/dist/esm/utils/index.js
init_esm_shims();

// ../../node_modules/@wix/panorama-client-node/node_modules/@wix/panorama-common-shared/dist/esm/utils/transaction-utils.js
init_esm_shims();
var isCustomTransactionName = (name) => !Object.values(InternalTransactions).includes(name);

// ../../node_modules/@wix/panorama-client-node/node_modules/@wix/panorama-common-shared/dist/esm/utils/platform-utils.js
init_esm_shims();

// ../../node_modules/@wix/panorama-client-node/node_modules/@wix/panorama-common-shared/dist/esm/utils/guid.js
init_esm_shims();

// ../../node_modules/@wix/panorama-client-node/node_modules/@wix/panorama-client/dist/esm/panorama-transaction.js
var PanoramaTransactionImpl = class {
  constructor(baseClient, name, options) {
    this.baseClient = baseClient;
    this.name = name;
    this.options = options;
    if (!isCustomTransactionName(name)) {
      throw new Error(`"${name}" is an internal transaction and can't be used`);
    }
    this.baseClient = baseClient;
    bindPrototypeMethodsToSelf(this);
  }
  start(data, options) {
    return this.baseClient.reportTransactionStart(this.name, defaults(options, this.options), data);
  }
  finish(data, options) {
    return this.baseClient.reportTransactionFinish(this.name, defaults(options, this.options), data);
  }
};

// ../../node_modules/@wix/panorama-client-node/node_modules/@wix/panorama-client/dist/esm/panorama-client-component.js
var PanoramaClientForComponentImpl = class {
  constructor(_ref) {
    let {
      baseClient
    } = _ref;
    (0, import_defineProperty.default)(this, "baseClient", void 0);
    this.baseClient = baseClient;
    bindPrototypeMethodsToSelf(this);
  }
  transaction(name, options) {
    return new PanoramaTransactionImpl(this.baseClient, name, options);
  }
  errorMonitor(options) {
    return new PanoramaErrorMonitorImpl(this.baseClient, options);
  }
  logger() {
    return new PanoramaLoggerImpl(this.baseClient);
  }
};

// ../../node_modules/@wix/panorama-client-node/node_modules/@wix/panorama-client/dist/esm/plugins/hooks-manager.js
init_esm_shims();
var import_defineProperty2 = __toESM(require_defineProperty());
var Hook = /* @__PURE__ */ function(Hook2) {
  Hook2[Hook2["afterCreateClientForComponent"] = 0] = "afterCreateClientForComponent";
  Hook2[Hook2["beforeReport"] = 1] = "beforeReport";
  Hook2[Hook2["beforeReportTransactionStart"] = 2] = "beforeReportTransactionStart";
  Hook2[Hook2["afterReportTransactionStart"] = 3] = "afterReportTransactionStart";
  Hook2[Hook2["beforeReportTransactionFinish"] = 4] = "beforeReportTransactionFinish";
  Hook2[Hook2["afterReportTransactionFinish"] = 5] = "afterReportTransactionFinish";
  Hook2[Hook2["beforeReportPhaseStart"] = 6] = "beforeReportPhaseStart";
  Hook2[Hook2["afterReportPhaseStart"] = 7] = "afterReportPhaseStart";
  Hook2[Hook2["beforeReportPhaseFinish"] = 8] = "beforeReportPhaseFinish";
  Hook2[Hook2["afterReportPhaseFinish"] = 9] = "afterReportPhaseFinish";
  Hook2[Hook2["beforeReportError"] = 10] = "beforeReportError";
  Hook2[Hook2["afterReportError"] = 11] = "afterReportError";
  Hook2[Hook2["beforeAddBreadcrumb"] = 12] = "beforeAddBreadcrumb";
  Hook2[Hook2["afterAddBreadcrumb"] = 13] = "afterAddBreadcrumb";
  Hook2[Hook2["beforeReportLog"] = 14] = "beforeReportLog";
  Hook2[Hook2["afterReportLog"] = 15] = "afterReportLog";
  Hook2[Hook2["beforeUnhandledError"] = 16] = "beforeUnhandledError";
  return Hook2;
}({});
var HooksManager = class {
  constructor() {
    (0, import_defineProperty2.default)(this, "subscribers", {});
  }
  tap(hook, subscriber) {
    this.subscribers[hook] = this.subscribers[hook] || [];
    this.subscribers[hook].push(subscriber);
  }
  invoke(hook) {
    const subscribers = this.subscribers[hook];
    if (!subscribers) {
      return true;
    }
    for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
      args[_key - 1] = arguments[_key];
    }
    for (const subscriber of subscribers) {
      if (subscriber(...args) === false) {
        return false;
      }
    }
    return true;
  }
};

// ../../node_modules/@wix/panorama-client-node/node_modules/@wix/panorama-client/dist/esm/panorama-phase.js
init_esm_shims();
var PanoramaPhaseImpl = class {
  constructor(name, baseClient) {
    this.name = name;
    this.baseClient = baseClient;
    this.baseClient = baseClient;
    bindPrototypeMethodsToSelf(this);
  }
  start(data) {
    return this.baseClient.reportPhaseStart(this.name, data);
  }
  finish(data) {
    return this.baseClient.reportPhaseFinish(this.name, data);
  }
};

// ../../node_modules/@wix/panorama-client-node/node_modules/@wix/panorama-client/dist/esm/panorama-client.js
var PanoramaClientImpl = class {
  constructor(_ref) {
    let {
      hooksManager,
      baseClient
    } = _ref;
    (0, import_defineProperty3.default)(this, "baseClient", void 0);
    (0, import_defineProperty3.default)(this, "hooksManager", void 0);
    this.baseClient = baseClient;
    this.hooksManager = hooksManager;
    bindPrototypeMethodsToSelf(this);
  }
  onUnhandledError(subscriber) {
    this.hooksManager.tap(Hook.beforeUnhandledError, subscriber);
  }
  reportLoadStart(data, options) {
    const {
      ComponentLoad
    } = InternalTransactions;
    return this.baseClient.reportTransactionStart(ComponentLoad, options, data);
  }
  reportLoadFinish(data, options) {
    const {
      ComponentLoad
    } = InternalTransactions;
    return this.baseClient.reportTransactionFinish(ComponentLoad, options, data);
  }
  phase(name) {
    return new PanoramaPhaseImpl(name, this.baseClient);
  }
  transaction(name, options) {
    return new PanoramaTransactionImpl(this.baseClient, name, options);
  }
  errorMonitor(options) {
    return new PanoramaErrorMonitorImpl(this.baseClient, options);
  }
  logger() {
    return new PanoramaLoggerImpl(this.baseClient);
  }
  createClientForComponent() {
    const client = new PanoramaClientForComponentImpl({
      baseClient: this.baseClient
    });
    this.hooksManager.invoke(Hook.afterCreateClientForComponent, client);
    return client;
  }
};

// ../../node_modules/@wix/panorama-client-node/node_modules/@wix/panorama-client/dist/esm/panorama-client-base.js
init_esm_shims();
var import_defineProperty4 = __toESM(require_defineProperty());

// ../../node_modules/@wix/panorama-client-node/node_modules/@wix/panorama-client/dist/esm/lib/payload-builder.js
init_esm_shims();

// ../../node_modules/@wix/panorama-client-node/node_modules/@wix/panorama-client/dist/esm/utils/error-utils.js
init_esm_shims();
var extractWixHttpErrorDetailsRec = (error) => {
  var _httpClientError$resp;
  if (!(error instanceof Error)) {
    return {};
  }
  const res = extractWixHttpErrorDetailsRec(error.cause);
  const httpClientError = error;
  return defaults(res, {
    isWixHttpError: httpClientError.isWixHttpError,
    requestId: ((_httpClientError$resp = httpClientError.response) == null || (_httpClientError$resp = _httpClientError$resp.headers) == null ? void 0 : _httpClientError$resp["x-wix-request-id"]) ?? httpClientError.requestId
  });
};
var extractWixHttpErrorDetails = (error) => defaults(extractWixHttpErrorDetailsRec(error), {
  isWixHttpError: false,
  requestId: ""
});

// ../../node_modules/@wix/panorama-client-node/node_modules/@wix/panorama-client/dist/esm/lib/payload-sanitizer.js
init_esm_shims();

// ../../node_modules/@wix/panorama-client-node/node_modules/@wix/panorama-client/dist/esm/constants.js
init_esm_shims();
var MAX_STACK_TRACE_SIZE_BYTES = 32 * 1024;
var MAX_SESSION_TIME_MS = 24 * 60 * 60 * 1e3;

// ../../node_modules/@wix/panorama-client-node/node_modules/@wix/panorama-client/dist/esm/lib/payload-sanitizer.js
var sanitizePayload = (payload) => {
  const {
    errorStack,
    sessionTime
  } = payload;
  if (errorStack && errorStack.length > MAX_STACK_TRACE_SIZE_BYTES) {
    const truncationMessage = `...[truncated by Panorama client to ${MAX_STACK_TRACE_SIZE_BYTES / 1024}kb]`;
    const truncatedErrorStack = errorStack.substring(0, MAX_STACK_TRACE_SIZE_BYTES - truncationMessage.length);
    payload = {
      ...payload,
      errorStack: `${truncatedErrorStack}${truncationMessage}`
    };
  }
  if (sessionTime && sessionTime > MAX_SESSION_TIME_MS) {
    payload = {
      ...payload,
      sessionTime: MAX_SESSION_TIME_MS
    };
  }
  return payload;
};

// ../../node_modules/@wix/panorama-client-node/node_modules/@wix/panorama-client/dist/esm/lib/payload-builder.js
var getSessionParams = (globalConfig2) => {
  const sessionId = globalConfig2.getSessionId();
  const sessionTime = Math.round(globalConfig2.getSessionTime());
  return {
    sessionId,
    sessionTime
  };
};
var buildTransactionPayload = (globalConfig2, baseParams, transactionParams, data) => {
  const {
    transactionName,
    transactionAction
  } = transactionParams;
  const {
    sessionId,
    sessionTime
  } = getSessionParams(globalConfig2);
  const logLevel = LogLevel.Info;
  const message = `Panorama ${transactionName} ${transactionAction}`;
  const requestId = "";
  return sanitizePayload({
    ...baseParams,
    ...transactionParams,
    sessionId,
    sessionTime,
    logLevel,
    requestId,
    message,
    data
  });
};
var buildPhasePayload = (globalConfig2, baseParams, phaseParams, data) => {
  const transactionName = InternalTransactions.ComponentPhase;
  const {
    phaseName,
    transactionAction
  } = phaseParams;
  const {
    sessionId,
    sessionTime
  } = getSessionParams(globalConfig2);
  const logLevel = LogLevel.Info;
  const message = `Panorama ${phaseName} phase ${transactionAction}`;
  const requestId = "";
  return sanitizePayload({
    ...baseParams,
    ...phaseParams,
    transactionName,
    sessionId,
    sessionTime,
    logLevel,
    requestId,
    message,
    data
  });
};
var buildErrorPayload = (globalConfig2, baseParams, error, data) => {
  const {
    sessionId,
    sessionTime
  } = getSessionParams(globalConfig2);
  const {
    constructor,
    message,
    stack = ""
  } = error;
  const logLevel = LogLevel.Error;
  const {
    requestId
  } = extractWixHttpErrorDetails(error);
  return sanitizePayload({
    ...baseParams,
    sessionId,
    sessionTime,
    logLevel,
    requestId,
    data,
    errorName: (data == null ? void 0 : data.errorName) ?? constructor.name,
    errorStack: stack,
    message
  });
};
var buildLoggerPayload = (globalConfig2, baseParams, loggerParams) => {
  const {
    sessionId,
    sessionTime
  } = getSessionParams(globalConfig2);
  const requestId = "";
  return sanitizePayload({
    ...baseParams,
    ...loggerParams,
    sessionId,
    sessionTime,
    requestId
  });
};

// ../../node_modules/@wix/panorama-client-node/node_modules/@wix/panorama-client/dist/esm/panorama-client-base.js
var BasePanoramaClient = class {
  constructor(_ref) {
    var _this = this;
    let {
      baseParams,
      globalConfig: globalConfig2,
      reporter,
      hooksManager,
      data,
      isMuted
    } = _ref;
    (0, import_defineProperty4.default)(this, "durationTracker", void 0);
    (0, import_defineProperty4.default)(this, "baseParams", void 0);
    (0, import_defineProperty4.default)(this, "globalConfig", void 0);
    (0, import_defineProperty4.default)(this, "reporter", void 0);
    (0, import_defineProperty4.default)(this, "hooksManager", void 0);
    (0, import_defineProperty4.default)(this, "data", void 0);
    (0, import_defineProperty4.default)(this, "isMuted", void 0);
    (0, import_defineProperty4.default)(this, "getErrorMonitorDataWithDefaults", function() {
      for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
        args[_key] = arguments[_key];
      }
      return _this.data.addDataScope(args).getData();
    });
    this.baseParams = baseParams;
    this.globalConfig = globalConfig2;
    this.reporter = reporter;
    this.hooksManager = hooksManager;
    this.data = data;
    this.isMuted = isMuted;
    this.durationTracker = typeof globalConfig2.getDurationTracker === "function" ? globalConfig2.getDurationTracker() : createDurationTracker();
  }
  report(eventPayload) {
    if (this.isMuted()) {
      return;
    }
    const reporterOverride = this.globalConfig.getReporter();
    const beforeReportHookResult = this.hooksManager.invoke(Hook.beforeReport, eventPayload);
    if (typeof reporterOverride === "function") {
      reporterOverride(eventPayload);
      return;
    }
    if (!beforeReportHookResult) {
      return;
    }
    this.reporter(eventPayload);
  }
  reportTransactionStart(name, options, data) {
    if (options === void 0) {
      options = {};
    }
    const {
      id
    } = options;
    const dataWithDefault = this.data.addDataScope(data).getData();
    if (!this.hooksManager.invoke(Hook.beforeReportTransactionStart, name, dataWithDefault)) {
      return;
    }
    const {
      fullArtifactId,
      componentId
    } = this.baseParams;
    this.durationTracker.markTransactionStart(fullArtifactId, componentId, name, id);
    const payload = buildTransactionPayload(this.globalConfig, this.baseParams, {
      transactionName: name,
      transactionAction: TransactionAction.Start
    }, dataWithDefault);
    this.report(payload);
    this.hooksManager.invoke(Hook.afterReportTransactionStart, name, payload);
  }
  reportTransactionFinish(name, options, data) {
    if (options === void 0) {
      options = {};
    }
    const {
      id
    } = options;
    const dataWithDefault = this.data.addDataScope(data).getData();
    if (!this.hooksManager.invoke(Hook.beforeReportTransactionFinish, name, dataWithDefault)) {
      return;
    }
    const {
      fullArtifactId,
      componentId
    } = this.baseParams;
    const duration = this.durationTracker.markTransactionFinish(fullArtifactId, componentId, name, id);
    const payload = buildTransactionPayload(this.globalConfig, this.baseParams, {
      transactionName: name,
      transactionAction: TransactionAction.Finish,
      transactionDuration: duration
    }, dataWithDefault);
    this.report(payload);
    this.hooksManager.invoke(Hook.afterReportTransactionFinish, name, payload);
  }
  reportPhaseStart(name, data) {
    const dataWithDefault = this.data.addDataScope(data).getData();
    if (!this.hooksManager.invoke(Hook.beforeReportPhaseStart, name, dataWithDefault)) {
      return;
    }
    const {
      fullArtifactId,
      componentId
    } = this.baseParams;
    this.durationTracker.markPhaseStart(fullArtifactId, componentId, name);
    const payload = buildPhasePayload(this.globalConfig, this.baseParams, {
      phaseName: name,
      transactionAction: TransactionAction.Start
    }, dataWithDefault);
    this.report(payload);
    this.hooksManager.invoke(Hook.afterReportPhaseStart, name, payload);
  }
  reportPhaseFinish(name, data) {
    const dataWithDefault = this.data.addDataScope(data).getData();
    if (!this.hooksManager.invoke(Hook.beforeReportPhaseFinish, name, dataWithDefault)) {
      return;
    }
    const {
      fullArtifactId,
      componentId
    } = this.baseParams;
    const duration = this.durationTracker.markPhaseFinish(fullArtifactId, componentId, name);
    const payload = buildPhasePayload(this.globalConfig, this.baseParams, {
      phaseName: name,
      transactionAction: TransactionAction.Finish,
      transactionDuration: duration
    }, dataWithDefault);
    this.report(payload);
    this.hooksManager.invoke(Hook.afterReportPhaseFinish, name, payload);
  }
  reportError(error, data, options) {
    if (!(error instanceof Error)) {
      return;
    }
    data = this.data.addDataScope([data, options == null ? void 0 : options.data]).getData();
    if (!this.hooksManager.invoke(Hook.beforeReportError, error, data, options)) {
      return;
    }
    const payload = buildErrorPayload(this.globalConfig, this.baseParams, error, data);
    this.report(payload);
    this.hooksManager.invoke(Hook.afterReportError, error, data, options);
  }
  addBreadcrumb(breadcrumb) {
    if (!this.hooksManager.invoke(Hook.beforeAddBreadcrumb, breadcrumb)) {
      return;
    }
    this.hooksManager.invoke(Hook.afterAddBreadcrumb, breadcrumb);
  }
  log(logLevel, message, data) {
    if (!message) {
      return;
    }
    const dataWithDefault = this.data.addDataScope(data).getData();
    const loggerParams = {
      message,
      data: dataWithDefault,
      logLevel
    };
    if (!this.hooksManager.invoke(Hook.beforeReportLog, logLevel, message, dataWithDefault)) {
      return;
    }
    const payload = buildLoggerPayload(this.globalConfig, this.baseParams, loggerParams);
    this.report(payload);
    this.hooksManager.invoke(Hook.afterReportLog, logLevel, message, dataWithDefault);
  }
};

// ../../node_modules/@wix/panorama-client-node/node_modules/@wix/panorama-client/dist/esm/lib/scope.js
init_esm_shims();
var import_defineProperty5 = __toESM(require_defineProperty());
var Scope = class _Scope {
  constructor(data) {
    (0, import_defineProperty5.default)(this, "data", void 0);
    this.data = data;
  }
  getEntriesToDeepDefaults(data) {
    if (!data) {
      return void 0;
    }
    return Object.fromEntries(Object.entries(data).filter((_ref) => {
      let [key] = _ref;
      return _Scope.KEYS_TO_DEEP_DEFAULTS.includes(key);
    }));
  }
  addDataScope(data) {
    const outerDataArray = Array.isArray(data) ? data : [data];
    const deepDefaultData = deepDefaults(...outerDataArray.map((_data) => this.getEntriesToDeepDefaults(_data)), this.getEntriesToDeepDefaults(this.data));
    return new _Scope(defaults(deepDefaultData, ...outerDataArray, this.data));
  }
  getData() {
    return this.data;
  }
};
(0, import_defineProperty5.default)(Scope, "KEYS_TO_DEEP_DEFAULTS", ["tags", "context"]);

// ../../node_modules/@wix/panorama-client-node/node_modules/@wix/panorama-client/dist/esm/panorama-client-factory.js
var PanoramaClientFactoryImpl = class {
  constructor(options) {
    this.options = options;
    (0, import_defineProperty6.default)(this, "globalConfig", void 0);
    (0, import_defineProperty6.default)(this, "reporter", () => true);
    (0, import_defineProperty6.default)(this, "plugins", []);
    (0, import_defineProperty6.default)(this, "isMuted", false);
    bindPrototypeMethodsToSelf(this);
  }
  withGlobalConfig(globalConfig2) {
    this.globalConfig = globalConfig2;
    return this;
  }
  withReporter(reporter) {
    this.reporter = reporter;
    return this;
  }
  setMuted(isMuted) {
    this.isMuted = isMuted;
    return this;
  }
  use(plugin) {
    this.plugins.push(plugin);
    return this;
  }
  client(options) {
    if (options === void 0) {
      options = {};
    }
    const {
      pluginParams
    } = options;
    const globalConfig2 = this.globalConfig ?? createGlobalConfig();
    const reporter = this.reporter;
    const hooksManager = new HooksManager();
    const baseParams = defaults(options.baseParams, this.options.baseParams);
    const data = new Scope(this.options.data).addDataScope(options.data);
    const pluginClientParams = pluginParams ?? {};
    const baseClient = new BasePanoramaClient({
      baseParams,
      globalConfig: globalConfig2,
      isMuted: () => this.isMuted,
      reporter,
      hooksManager,
      data
    });
    const client = new PanoramaClientImpl({
      baseClient,
      hooksManager
    });
    this.plugins.forEach((plugin) => plugin({
      hooksManager,
      globalConfig: globalConfig2,
      reporter,
      baseClient,
      baseParams,
      pluginParams: pluginClientParams
    }));
    return client;
  }
};
var panoramaClient = function(options) {
  if (options === void 0) {
    options = {};
  }
  return new PanoramaClientFactoryImpl(options);
};

// ../../node_modules/@wix/panorama-client-node/node_modules/@wix/panorama-common-shared/dist/esm/constants.js
init_esm_shims();
var CLICKHOUSE_REPORT_URL = "https://panorama.wixapps.net/api/v1/log";

// ../../node_modules/@wix/panorama-client-node/dist/esm/reporter.js
init_esm_shims();
var nodeReporter = function(url, _temp) {
  let {
    silent = false
  } = _temp === void 0 ? {
    silent: false
  } : _temp;
  return (eventPayload) => {
    const body = JSON.stringify({
      logMessage: eventPayload
    });
    fetch(url, {
      method: "POST",
      body
    }).then((res) => {
      if (res.ok || silent) {
        return;
      }
      console.error("Panorama report failed", res.statusText);
    }).catch((e) => {
      if (silent) {
        return;
      }
      console.error("Panorama report failed", e);
    });
    return true;
  };
};

// ../../node_modules/@wix/panorama-client-node/dist/esm/panorama-client-node.js
var panoramaClientFactory = (options) => {
  const {
    baseParams,
    reporterOptions,
    data
  } = options;
  const factory = panoramaClient({
    baseParams,
    data
  }).withReporter(nodeReporter(CLICKHOUSE_REPORT_URL, reporterOptions));
  factory.use = void 0;
  return factory;
};

// ../cli-panorama/src/createPanorama.ts
var globalConfig = createGlobalConfig();
var overrides = getTestOverrides();
if (overrides.panoramaReporterUrl) {
  globalConfig.setReporter(
    nodeReporter(overrides.panoramaReporterUrl, { silent: true })
  );
}
function createPanoramaWrapper(factory) {
  let defaultData = {};
  return {
    withGlobalConfig: (...args) => factory.withGlobalConfig(...args),
    withReporter: (...args) => factory.withReporter(...args),
    setMuted: (...args) => factory.setMuted(...args),
    setDefaultClientData(data) {
      defaultData = { ...defaultData, ...data };
    },
    client(options) {
      return factory.client({
        ...options,
        data: { ...defaultData, ...options?.data }
      });
    }
  };
}
async function createPanorama(options) {
  const {
    version,
    artifact,
    userId,
    errorReporter,
    cliSessionId,
    aiAgentName
  } = options;
  const userConfig = await readUserConfig();
  const env = createEnv();
  const factory = panoramaClientFactory({
    baseParams: {
      platform: Platform.Standalone,
      fullArtifactId: `${artifact.groupId}.${artifact.artifactId}`,
      componentId: "app",
      // This property is mandatory, there is validation on server side
      artifactVersion: version,
      uuid: userId
    },
    reporterOptions: {
      silent: true
    },
    data: {
      cliTrackingId: env.cliTrackingId,
      cliEnvName: env.cliEnvName,
      cliSessionId,
      aiAgentName,
      ...env.remoteLogContext
    }
  }).withGlobalConfig(globalConfig).setMuted(!userConfig.telemetry);
  const panorama = createPanoramaWrapper(factory);
  if (errorReporter) {
    errorReporter.on("errorReported", (cliError) => {
      const panoramaClient2 = panorama.client({
        baseParams: {
          componentId: "error-reporter"
        }
      });
      const errorMonitor = panoramaClient2.errorMonitor();
      const error = (0, import_variant.isType)(cliError.cliCode, CliSystemErrorCode.UnknownFailure) && cliError.cliCode.error instanceof Error ? cliError.cliCode.error : cliError;
      const errorToReport = new Error(error.message);
      errorToReport.name = error.name;
      errorToReport.stack = import_verror.default.fullStack(error);
      const httpError = extractHttpError(cliError);
      if (httpError) {
        errorToReport.cause = httpError;
      }
      errorMonitor.reportError(errorToReport, {
        // panorama by default uses constructor.name for errorName
        errorName: cliError.name
      });
    });
  }
  return panorama;
}

// ../cli-panorama/src/createCommandTransaction.ts
init_esm_shims();
var import_kebabCase = __toESM(require_kebabCase(), 1);
function createCommandTransaction(panorama, command) {
  const commandFullName = (0, import_kebabCase.default)(getFullCommandName(command));
  panorama.setDefaultClientData({
    commandName: command.name(),
    commandFullName
  });
  const client = panorama.client({
    baseParams: {
      componentId: "command"
    }
  });
  return client.transaction(commandFullName);
}
function getFullCommandName(command) {
  if (command.parent) {
    return `${getFullCommandName(command.parent)} ${command.name()}`.trim();
  }
  return command.name();
}

// ../cli-panorama/src/index.ts
init_esm_shims();

// ../cli-panorama/src/usePanoramaMethodLogger.ts
init_esm_shims();
var import_react2 = __toESM(require_react(), 1);
function usePanoramaMethodLogger(target) {
  const factory = (0, import_react2.useContext)(PanoramaContext);
  if (factory == null) {
    throw new Error(
      "usePanoramaMethodLogger() cannot be used without a <PanoramaProvider />"
    );
  }
  const componentId = target.constructor.name;
  const clientOptions = (0, import_react2.useMemo)(
    () => ({ baseParams: { componentId } }),
    [componentId]
  );
  const client = (0, import_react2.useMemo)(() => {
    return factory.client(clientOptions);
  }, [factory, clientOptions]);
  return (0, import_react2.useMemo)(() => {
    const cache = /* @__PURE__ */ new Map();
    return new Proxy(target, {
      get(target2, prop, receiver) {
        const value = Reflect.get(target2, prop, receiver);
        const isAsyncMethod = typeof value === "function" && typeof prop === "string" && Object.hasOwn(target2, prop) && value.constructor.name === "AsyncFunction";
        if (!isAsyncMethod) {
          return value;
        }
        if (!cache.has(prop)) {
          const wrapped = async function(...args) {
            const transaction = client.transaction(prop);
            transaction.start();
            const result = await value.apply(target2, args);
            transaction.finish();
            return result;
          };
          cache.set(prop, wrapped);
        }
        return cache.get(prop);
      }
    });
  }, [target, client]);
}

export {
  PanoramaProvider,
  usePanoramaMethodLogger,
  createPanorama,
  createCommandTransaction
};
//# sourceMappingURL=chunk-ECBO3UFC.js.map