@powerhousedao/ph-clint-app 0.1.0-dev.91 → 0.1.0-dev.93

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (27) hide show
  1. package/dist/connect/assets/{ClearStorageModal-CXoNWmRe-CpE72nB8.js → ClearStorageModal-CXoNWmRe-CfudY7gP.js} +2 -2
  2. package/dist/connect/assets/{ClearStorageModal-CXoNWmRe-CpE72nB8.js.map → ClearStorageModal-CXoNWmRe-CfudY7gP.js.map} +1 -1
  3. package/dist/connect/assets/{DebugSettingsModal-5SDhy5gt-Me3H9oNw.js → DebugSettingsModal-5SDhy5gt-Oc_wrZVo.js} +2 -2
  4. package/dist/connect/assets/{DebugSettingsModal-5SDhy5gt-Me3H9oNw.js.map → DebugSettingsModal-5SDhy5gt-Oc_wrZVo.js.map} +1 -1
  5. package/dist/connect/assets/{InspectorModal-BsSihzuc-DVTFZSUH.js → InspectorModal-BsSihzuc-adr3q93h.js} +2 -2
  6. package/dist/connect/assets/{InspectorModal-BsSihzuc-DVTFZSUH.js.map → InspectorModal-BsSihzuc-adr3q93h.js.map} +1 -1
  7. package/dist/connect/assets/{SettingsModal-S_A5qf95-nzYOCl3o.js → SettingsModal-S_A5qf95-DqxCHnLy.js} +2 -2
  8. package/dist/connect/assets/{SettingsModal-S_A5qf95-nzYOCl3o.js.map → SettingsModal-S_A5qf95-DqxCHnLy.js.map} +1 -1
  9. package/dist/connect/assets/{components-ByEUkO4U-DoBYY0k7.js → components-ByEUkO4U-DHdzb1cM.js} +4 -4
  10. package/dist/connect/assets/{components-ByEUkO4U-DoBYY0k7.js.map → components-ByEUkO4U-DHdzb1cM.js.map} +1 -1
  11. package/dist/connect/assets/{connect.config-Bt4pvvWV-DPiXrGYV.js → connect.config-Bt4pvvWV-TF7SRwB1.js} +2 -2
  12. package/dist/connect/assets/{connect.config-Bt4pvvWV-DPiXrGYV.js.map → connect.config-Bt4pvvWV-TF7SRwB1.js.map} +1 -1
  13. package/dist/connect/assets/{index-CK9tPzCS.js → index-Bgr9U9X9.js} +3 -3
  14. package/dist/connect/assets/{index-CK9tPzCS.js.map → index-Bgr9U9X9.js.map} +1 -1
  15. package/dist/connect/assets/{load-BWibkoFV-DWy1LALw.js → load-BWibkoFV-jV3p7MXQ.js} +2 -2
  16. package/dist/connect/assets/{load-BWibkoFV-DWy1LALw.js.map → load-BWibkoFV-jV3p7MXQ.js.map} +1 -1
  17. package/dist/connect/assets/{module-5NdQh7xr.js → module-bwULLGwn.js} +2 -2
  18. package/dist/connect/assets/{module-5NdQh7xr.js.map → module-bwULLGwn.js.map} +1 -1
  19. package/dist/connect/assets/{pglite-seed-BWk7yOwr-BHQsaOhO.js → pglite-seed-BWk7yOwr-BjLA_ztF.js} +2 -2
  20. package/dist/connect/assets/{pglite-seed-BWk7yOwr-BHQsaOhO.js.map → pglite-seed-BWk7yOwr-BjLA_ztF.js.map} +1 -1
  21. package/dist/connect/assets/{reactor-BxNvHOKC-CSy_kfH0.js → reactor-BxNvHOKC-DEqXBEvK.js} +2 -2
  22. package/dist/connect/assets/{reactor-BxNvHOKC-CSy_kfH0.js.map → reactor-BxNvHOKC-DEqXBEvK.js.map} +1 -1
  23. package/dist/connect/assets/{registerServiceWorker-D9l1kja7-C-5yx671.js → registerServiceWorker-D9l1kja7-DG9mrLlt.js} +2 -2
  24. package/dist/connect/assets/{registerServiceWorker-D9l1kja7-C-5yx671.js.map → registerServiceWorker-D9l1kja7-DG9mrLlt.js.map} +1 -1
  25. package/dist/connect/index.html +1 -1
  26. package/dist/connect/powerhouse.config.json +1 -1
  27. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"mappings":"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","names":["__defProp","__defProps","__getOwnPropDescs","__getOwnPropSymbols","__hasOwnProp","__propIsEnum","__defNormalProp","__spreadValues","__spreadProps","__async","ErrorCode2","StandardResolutionReasons2","powerhouse_manifest_default","documentModels","editors","manifest","documentModel","utils_exports","utils$1"],"ignoreList":[0,1,2,3,4,5,6,7,8,9],"sources":["../../../../../node_modules/.pnpm/@openfeature+core@1.9.1/node_modules/@openfeature/core/dist/esm/index.js","../../../../../node_modules/.pnpm/@openfeature+web-sdk@1.6.2_@openfeature+core@1.9.1/node_modules/@openfeature/web-sdk/dist/esm/index.js","../../../../../node_modules/.pnpm/@powerhousedao+powerhouse-vetra-packages@6.2.0-dev.23_graphql@16.12.0_react-dom@19.2.6_react@19.2.6__react@19.2.6/node_modules/@powerhousedao/powerhouse-vetra-packages/dist/browser/editors/document-model-editor/module.js","../../../../../node_modules/.pnpm/@powerhousedao+powerhouse-vetra-packages@6.2.0-dev.23_graphql@16.12.0_react-dom@19.2.6_react@19.2.6__react@19.2.6/node_modules/@powerhousedao/powerhouse-vetra-packages/dist/browser/index.js","../../../../../node_modules/.pnpm/@powerhousedao+vetra@6.2.0-dev.23_@babel+runtime@7.29.2_@electric-sql+pglite@0.3.15_@pa_0c94680c61477a0a5c7bf05c9b5bc3fb/node_modules/@powerhousedao/vetra/dist/powerhouse.manifest.js","../../../../../node_modules/.pnpm/@powerhousedao+vetra@6.2.0-dev.23_@babel+runtime@7.29.2_@electric-sql+pglite@0.3.15_@pa_0c94680c61477a0a5c7bf05c9b5bc3fb/node_modules/@powerhousedao/vetra/dist/module-mtR8W4L4.js","../../../../../node_modules/.pnpm/@powerhousedao+vetra@6.2.0-dev.23_@babel+runtime@7.29.2_@electric-sql+pglite@0.3.15_@pa_0c94680c61477a0a5c7bf05c9b5bc3fb/node_modules/@powerhousedao/vetra/dist/module-C0jUPu9F.js","../../../../../node_modules/.pnpm/@powerhousedao+vetra@6.2.0-dev.23_@babel+runtime@7.29.2_@electric-sql+pglite@0.3.15_@pa_0c94680c61477a0a5c7bf05c9b5bc3fb/node_modules/@powerhousedao/vetra/dist/module-DySsSIQV.js","../../../../../node_modules/.pnpm/@powerhousedao+vetra@6.2.0-dev.23_@babel+runtime@7.29.2_@electric-sql+pglite@0.3.15_@pa_0c94680c61477a0a5c7bf05c9b5bc3fb/node_modules/@powerhousedao/vetra/dist/index.js","../../../../../node_modules/.pnpm/@powerhousedao+connect@6.2.0-dev.23_@babel+runtime@7.29.2_@parcel+watcher@2.5.6_@sentry_92fbcdab943457b0ffd54c0864a4f38d/node_modules/@powerhousedao/connect/dist/reactor-BxNvHOKC.js"],"sourcesContent":["var __defProp = Object.defineProperty;\nvar __defProps = Object.defineProperties;\nvar __getOwnPropDescs = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));\nvar __async = (__this, __arguments, generator) => {\n return new Promise((resolve, reject) => {\n var fulfilled = (value) => {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n };\n var rejected = (value) => {\n try {\n step(generator.throw(value));\n } catch (e) {\n reject(e);\n }\n };\n var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);\n step((generator = generator.apply(__this, __arguments)).next());\n });\n};\n\n// src/hooks/hook-data.ts\nvar MapHookData = class {\n constructor() {\n this.data = /* @__PURE__ */ new Map();\n }\n set(key, value) {\n this.data.set(key, value);\n }\n get(key) {\n return this.data.get(key);\n }\n has(key) {\n return this.data.has(key);\n }\n delete(key) {\n return this.data.delete(key);\n }\n clear() {\n this.data.clear();\n }\n};\n\n// src/evaluation/evaluation.ts\nvar StandardResolutionReasons = {\n /**\n * The resolved value is static (no dynamic evaluation).\n */\n STATIC: \"STATIC\",\n /**\n * The resolved value was configured statically, or otherwise fell back to a pre-configured value.\n */\n DEFAULT: \"DEFAULT\",\n /**\n * The resolved value was the result of a dynamic evaluation, such as a rule or specific user-targeting.\n */\n TARGETING_MATCH: \"TARGETING_MATCH\",\n /**\n * The resolved value was the result of pseudorandom assignment.\n */\n SPLIT: \"SPLIT\",\n /**\n * The resolved value was retrieved from cache.\n */\n CACHED: \"CACHED\",\n /**\n * The resolved value was the result of the flag being disabled in the management system.\n */\n DISABLED: \"DISABLED\",\n /**\n * The reason for the resolved value could not be determined.\n */\n UNKNOWN: \"UNKNOWN\",\n /**\n * The resolved value is non-authoritative or possibly out of date.\n */\n STALE: \"STALE\",\n /**\n * The resolved value was the result of an error.\n *\n * Note: The `errorCode` and `errorMessage` fields may contain additional details of this error.\n */\n ERROR: \"ERROR\"\n};\nvar ErrorCode = /* @__PURE__ */ ((ErrorCode2) => {\n ErrorCode2[\"PROVIDER_NOT_READY\"] = \"PROVIDER_NOT_READY\";\n ErrorCode2[\"PROVIDER_FATAL\"] = \"PROVIDER_FATAL\";\n ErrorCode2[\"FLAG_NOT_FOUND\"] = \"FLAG_NOT_FOUND\";\n ErrorCode2[\"PARSE_ERROR\"] = \"PARSE_ERROR\";\n ErrorCode2[\"TYPE_MISMATCH\"] = \"TYPE_MISMATCH\";\n ErrorCode2[\"TARGETING_KEY_MISSING\"] = \"TARGETING_KEY_MISSING\";\n ErrorCode2[\"INVALID_CONTEXT\"] = \"INVALID_CONTEXT\";\n ErrorCode2[\"GENERAL\"] = \"GENERAL\";\n return ErrorCode2;\n})(ErrorCode || {});\n\n// src/errors/open-feature-error-abstract.ts\nvar OpenFeatureError = class _OpenFeatureError extends Error {\n constructor(message, options) {\n super(message);\n Object.setPrototypeOf(this, _OpenFeatureError.prototype);\n this.name = \"OpenFeatureError\";\n this.cause = options == null ? void 0 : options.cause;\n }\n};\n\n// src/errors/flag-not-found-error.ts\nvar FlagNotFoundError = class _FlagNotFoundError extends OpenFeatureError {\n constructor(message, options) {\n super(message, options);\n Object.setPrototypeOf(this, _FlagNotFoundError.prototype);\n this.name = \"FlagNotFoundError\";\n this.code = \"FLAG_NOT_FOUND\" /* FLAG_NOT_FOUND */;\n }\n};\n\n// src/errors/general-error.ts\nvar GeneralError = class _GeneralError extends OpenFeatureError {\n constructor(message, options) {\n super(message, options);\n Object.setPrototypeOf(this, _GeneralError.prototype);\n this.name = \"GeneralError\";\n this.code = \"GENERAL\" /* GENERAL */;\n }\n};\n\n// src/errors/invalid-context-error.ts\nvar InvalidContextError = class _InvalidContextError extends OpenFeatureError {\n constructor(message, options) {\n super(message, options);\n Object.setPrototypeOf(this, _InvalidContextError.prototype);\n this.name = \"InvalidContextError\";\n this.code = \"INVALID_CONTEXT\" /* INVALID_CONTEXT */;\n }\n};\n\n// src/errors/parse-error.ts\nvar ParseError = class _ParseError extends OpenFeatureError {\n constructor(message, options) {\n super(message, options);\n Object.setPrototypeOf(this, _ParseError.prototype);\n this.name = \"ParseError\";\n this.code = \"PARSE_ERROR\" /* PARSE_ERROR */;\n }\n};\n\n// src/errors/provider-fatal-error.ts\nvar ProviderFatalError = class _ProviderFatalError extends OpenFeatureError {\n constructor(message, options) {\n super(message, options);\n Object.setPrototypeOf(this, _ProviderFatalError.prototype);\n this.name = \"ProviderFatalError\";\n this.code = \"PROVIDER_FATAL\" /* PROVIDER_FATAL */;\n }\n};\n\n// src/errors/provider-not-ready-error.ts\nvar ProviderNotReadyError = class _ProviderNotReadyError extends OpenFeatureError {\n constructor(message, options) {\n super(message, options);\n Object.setPrototypeOf(this, _ProviderNotReadyError.prototype);\n this.name = \"ProviderNotReadyError\";\n this.code = \"PROVIDER_NOT_READY\" /* PROVIDER_NOT_READY */;\n }\n};\n\n// src/errors/targeting-key-missing-error.ts\nvar TargetingKeyMissingError = class _TargetingKeyMissingError extends OpenFeatureError {\n constructor(message, options) {\n super(message, options);\n Object.setPrototypeOf(this, _TargetingKeyMissingError.prototype);\n this.name = \"TargetingKeyMissingError\";\n this.code = \"TARGETING_KEY_MISSING\" /* TARGETING_KEY_MISSING */;\n }\n};\n\n// src/errors/type-mismatch-error.ts\nvar TypeMismatchError = class _TypeMismatchError extends OpenFeatureError {\n constructor(message, options) {\n super(message, options);\n Object.setPrototypeOf(this, _TypeMismatchError.prototype);\n this.name = \"TypeMismatchError\";\n this.code = \"TYPE_MISMATCH\" /* TYPE_MISMATCH */;\n }\n};\n\n// src/errors/index.ts\nvar instantiateErrorByErrorCode = (errorCode, message) => {\n switch (errorCode) {\n case \"FLAG_NOT_FOUND\" /* FLAG_NOT_FOUND */:\n return new FlagNotFoundError(message);\n case \"PARSE_ERROR\" /* PARSE_ERROR */:\n return new ParseError(message);\n case \"TYPE_MISMATCH\" /* TYPE_MISMATCH */:\n return new TypeMismatchError(message);\n case \"TARGETING_KEY_MISSING\" /* TARGETING_KEY_MISSING */:\n return new TargetingKeyMissingError(message);\n case \"INVALID_CONTEXT\" /* INVALID_CONTEXT */:\n return new InvalidContextError(message);\n case \"PROVIDER_NOT_READY\" /* PROVIDER_NOT_READY */:\n return new ProviderNotReadyError(message);\n case \"PROVIDER_FATAL\" /* PROVIDER_FATAL */:\n return new ProviderFatalError(message);\n default:\n return new GeneralError(message);\n }\n};\n\n// src/provider/provider.ts\nvar ServerProviderStatus = /* @__PURE__ */ ((ServerProviderStatus2) => {\n ServerProviderStatus2[\"NOT_READY\"] = \"NOT_READY\";\n ServerProviderStatus2[\"READY\"] = \"READY\";\n ServerProviderStatus2[\"ERROR\"] = \"ERROR\";\n ServerProviderStatus2[\"STALE\"] = \"STALE\";\n ServerProviderStatus2[\"FATAL\"] = \"FATAL\";\n return ServerProviderStatus2;\n})(ServerProviderStatus || {});\nvar ClientProviderStatus = /* @__PURE__ */ ((ClientProviderStatus2) => {\n ClientProviderStatus2[\"NOT_READY\"] = \"NOT_READY\";\n ClientProviderStatus2[\"READY\"] = \"READY\";\n ClientProviderStatus2[\"ERROR\"] = \"ERROR\";\n ClientProviderStatus2[\"STALE\"] = \"STALE\";\n ClientProviderStatus2[\"FATAL\"] = \"FATAL\";\n ClientProviderStatus2[\"RECONCILING\"] = \"RECONCILING\";\n return ClientProviderStatus2;\n})(ClientProviderStatus || {});\n\n// src/events/events.ts\nvar ServerProviderEvents = /* @__PURE__ */ ((ServerProviderEvents2) => {\n ServerProviderEvents2[\"Ready\"] = \"PROVIDER_READY\";\n ServerProviderEvents2[\"Error\"] = \"PROVIDER_ERROR\";\n ServerProviderEvents2[\"ConfigurationChanged\"] = \"PROVIDER_CONFIGURATION_CHANGED\";\n ServerProviderEvents2[\"Stale\"] = \"PROVIDER_STALE\";\n return ServerProviderEvents2;\n})(ServerProviderEvents || {});\nvar ClientProviderEvents = /* @__PURE__ */ ((ClientProviderEvents2) => {\n ClientProviderEvents2[\"Ready\"] = \"PROVIDER_READY\";\n ClientProviderEvents2[\"Error\"] = \"PROVIDER_ERROR\";\n ClientProviderEvents2[\"ConfigurationChanged\"] = \"PROVIDER_CONFIGURATION_CHANGED\";\n ClientProviderEvents2[\"ContextChanged\"] = \"PROVIDER_CONTEXT_CHANGED\";\n ClientProviderEvents2[\"Reconciling\"] = \"PROVIDER_RECONCILING\";\n ClientProviderEvents2[\"Stale\"] = \"PROVIDER_STALE\";\n return ClientProviderEvents2;\n})(ClientProviderEvents || {});\n\n// src/events/event-utils.ts\nvar eventStatusMap = {\n [\"READY\" /* READY */]: \"PROVIDER_READY\" /* Ready */,\n [\"ERROR\" /* ERROR */]: \"PROVIDER_ERROR\" /* Error */,\n [\"FATAL\" /* FATAL */]: \"PROVIDER_ERROR\" /* Error */,\n [\"STALE\" /* STALE */]: \"PROVIDER_STALE\" /* Stale */,\n [\"RECONCILING\" /* RECONCILING */]: \"PROVIDER_RECONCILING\" /* Reconciling */,\n [\"NOT_READY\" /* NOT_READY */]: void 0\n};\nvar statusMatchesEvent = (event, status) => {\n return !status && event === \"PROVIDER_READY\" /* Ready */ || eventStatusMap[status] === event;\n};\n\n// src/logger/default-logger.ts\nvar DefaultLogger = class {\n error(...args) {\n console.error(...args);\n }\n warn(...args) {\n console.warn(...args);\n }\n info() {\n }\n debug() {\n }\n};\n\n// src/logger/safe-logger.ts\nvar LOG_LEVELS = [\"error\", \"warn\", \"info\", \"debug\"];\nvar SafeLogger = class {\n constructor(logger) {\n this.fallbackLogger = new DefaultLogger();\n try {\n for (const level of LOG_LEVELS) {\n if (!logger[level] || typeof logger[level] !== \"function\") {\n throw new Error(`The provided logger is missing the ${level} method.`);\n }\n }\n this.logger = logger;\n } catch (err) {\n console.error(err);\n console.error(\"Falling back to the default logger.\");\n this.logger = this.fallbackLogger;\n }\n }\n error(...args) {\n this.log(\"error\", ...args);\n }\n warn(...args) {\n this.log(\"warn\", ...args);\n }\n info(...args) {\n this.log(\"info\", ...args);\n }\n debug(...args) {\n this.log(\"debug\", ...args);\n }\n log(level, ...args) {\n try {\n this.logger[level](...args);\n } catch (error) {\n this.fallbackLogger[level](...args);\n }\n }\n};\n\n// src/events/generic-event-emitter.ts\nvar GenericEventEmitter = class {\n constructor(globalLogger) {\n this.globalLogger = globalLogger;\n this._handlers = {\n [\"PROVIDER_CONFIGURATION_CHANGED\" /* ConfigurationChanged */]: /* @__PURE__ */ new WeakMap(),\n [\"PROVIDER_CONTEXT_CHANGED\" /* ContextChanged */]: /* @__PURE__ */ new WeakMap(),\n [\"PROVIDER_READY\" /* Ready */]: /* @__PURE__ */ new WeakMap(),\n [\"PROVIDER_ERROR\" /* Error */]: /* @__PURE__ */ new WeakMap(),\n [\"PROVIDER_STALE\" /* Stale */]: /* @__PURE__ */ new WeakMap(),\n [\"PROVIDER_RECONCILING\" /* Reconciling */]: /* @__PURE__ */ new WeakMap()\n };\n }\n // here we use E, to restrict the events a provider can manually emit (PROVIDER_CONTEXT_CHANGED is emitted by the SDK)\n emit(eventType, context) {\n this.eventEmitter.emit(eventType, context);\n }\n addHandler(eventType, handler) {\n const asyncHandler = (details) => __async(this, null, function* () {\n var _a;\n try {\n yield handler(details);\n } catch (err) {\n (_a = this._logger) == null ? void 0 : _a.error(\"Error running event handler:\", err);\n }\n });\n const existingAsyncHandlers = this._handlers[eventType].get(handler);\n this._handlers[eventType].set(handler, [...existingAsyncHandlers || [], asyncHandler]);\n this.eventEmitter.on(eventType, asyncHandler);\n }\n removeHandler(eventType, handler) {\n const existingAsyncHandlers = this._handlers[eventType].get(handler);\n if (existingAsyncHandlers) {\n const removedAsyncHandler = existingAsyncHandlers.pop();\n if (removedAsyncHandler) {\n this.eventEmitter.removeListener(eventType, removedAsyncHandler);\n }\n }\n }\n removeAllHandlers(eventType) {\n if (eventType) {\n this.eventEmitter.removeAllListeners(eventType);\n } else {\n this.eventEmitter.removeAllListeners();\n }\n }\n getHandlers(eventType) {\n return this.eventEmitter.listeners(eventType);\n }\n setLogger(logger) {\n this._eventLogger = new SafeLogger(logger);\n return this;\n }\n get _logger() {\n var _a, _b;\n return (_b = this._eventLogger) != null ? _b : (_a = this.globalLogger) == null ? void 0 : _a.call(this);\n }\n};\n\n// src/telemetry/attributes.ts\nvar TelemetryAttribute = {\n /**\n * The lookup key of the feature flag.\n *\n * - type: `string`\n * - requirement level: `required`\n * - example: `logo-color`\n */\n KEY: \"feature_flag.key\",\n /**\n * Describes a class of error the operation ended with.\n *\n * - type: `string`\n * - requirement level: `conditionally required`\n * - condition: `reason` is `error`\n * - example: `flag_not_found`\n */\n ERROR_CODE: \"error.type\",\n /**\n * A message explaining the nature of an error occurring during flag evaluation.\n *\n * - type: `string`\n * - requirement level: `recommended`\n * - example: `Flag not found`\n */\n ERROR_MESSAGE: \"error.message\",\n /**\n * A semantic identifier for an evaluated flag value.\n *\n * - type: `string`\n * - requirement level: `conditionally required`\n * - condition: variant is defined on the evaluation details\n * - example: `blue`; `on`; `true`\n */\n VARIANT: \"feature_flag.result.variant\",\n /**\n * The evaluated value of the feature flag.\n *\n * - type: `undefined`\n * - requirement level: `conditionally required`\n * - example: `#ff0000`; `1`; `true`\n */\n VALUE: \"feature_flag.result.value\",\n /**\n * The unique identifier for the flag evaluation context. For example, the targeting key.\n *\n * - type: `string`\n * - requirement level: `recommended`\n * - example: `5157782b-2203-4c80-a857-dbbd5e7761db`\n */\n CONTEXT_ID: \"feature_flag.context.id\",\n /**\n * The reason code which shows how a feature flag value was determined.\n *\n * - type: `string`\n * - requirement level: `recommended`\n * - example: `targeting_match`\n */\n REASON: \"feature_flag.result.reason\",\n /**\n * Describes a class of error the operation ended with.\n *\n * - type: `string`\n * - requirement level: `recommended`\n * - example: `flag_not_found`\n */\n PROVIDER: \"feature_flag.provider.name\",\n /**\n * The identifier of the flag set to which the feature flag belongs.\n *\n * - type: `string`\n * - requirement level: `recommended`\n * - example: `proj-1`; `ab98sgs`; `service1/dev`\n */\n FLAG_SET_ID: \"feature_flag.set.id\",\n /**\n * The version of the ruleset used during the evaluation. This may be any stable value which uniquely identifies the ruleset.\n *\n * - type: `string`\n * - requirement level: `recommended`\n * - example: `1.0.0`; `2021-01-01`\n */\n VERSION: \"feature_flag.version\"\n};\n\n// src/telemetry/flag-metadata.ts\nvar TelemetryFlagMetadata = {\n /**\n * The context identifier returned in the flag metadata uniquely identifies\n * the subject of the flag evaluation. If not available, the targeting key\n * should be used.\n */\n CONTEXT_ID: \"contextId\",\n /**\n * \tA logical identifier for the flag set.\n */\n FLAG_SET_ID: \"flagSetId\",\n /**\n * \tA version string (format unspecified) for the flag or flag set.\n */\n VERSION: \"version\"\n};\n\n// src/telemetry/evaluation-event.ts\nvar FLAG_EVALUATION_EVENT_NAME = \"feature_flag.evaluation\";\nfunction createEvaluationEvent(hookContext, evaluationDetails) {\n var _a, _b, _c;\n const attributes = {\n [TelemetryAttribute.KEY]: hookContext.flagKey,\n [TelemetryAttribute.PROVIDER]: hookContext.providerMetadata.name,\n [TelemetryAttribute.REASON]: ((_a = evaluationDetails.reason) != null ? _a : StandardResolutionReasons.UNKNOWN).toLowerCase()\n };\n if (evaluationDetails.variant) {\n attributes[TelemetryAttribute.VARIANT] = evaluationDetails.variant;\n }\n if (evaluationDetails.value !== null) {\n if (typeof evaluationDetails.value !== \"object\") {\n attributes[TelemetryAttribute.VALUE] = evaluationDetails.value;\n } else {\n try {\n attributes[TelemetryAttribute.VALUE] = JSON.stringify(evaluationDetails.value);\n } catch (e) {\n }\n }\n }\n const contextId = (_b = evaluationDetails.flagMetadata[TelemetryFlagMetadata.CONTEXT_ID]) != null ? _b : hookContext.context.targetingKey;\n if (contextId) {\n attributes[TelemetryAttribute.CONTEXT_ID] = contextId;\n }\n const setId = evaluationDetails.flagMetadata[TelemetryFlagMetadata.FLAG_SET_ID];\n if (setId) {\n attributes[TelemetryAttribute.FLAG_SET_ID] = setId;\n }\n const version = evaluationDetails.flagMetadata[TelemetryFlagMetadata.VERSION];\n if (version) {\n attributes[TelemetryAttribute.VERSION] = version;\n }\n if (evaluationDetails.reason === StandardResolutionReasons.ERROR) {\n attributes[TelemetryAttribute.ERROR_CODE] = ((_c = evaluationDetails.errorCode) != null ? _c : \"GENERAL\" /* GENERAL */).toLowerCase();\n if (evaluationDetails.errorMessage) {\n attributes[TelemetryAttribute.ERROR_MESSAGE] = evaluationDetails.errorMessage;\n }\n }\n return {\n name: FLAG_EVALUATION_EVENT_NAME,\n attributes\n };\n}\n\n// src/type-guards.ts\nfunction isString(value) {\n return typeof value === \"string\";\n}\nfunction stringOrUndefined(value) {\n return isString(value) ? value : void 0;\n}\nfunction isObject(value) {\n return typeof value === \"object\";\n}\nfunction objectOrUndefined(value) {\n return isObject(value) ? value : void 0;\n}\n\n// src/filter.ts\nfunction isDefined(input) {\n return typeof input !== \"undefined\" && input !== null;\n}\n\n// src/open-feature.ts\nvar ProviderWrapper = class {\n constructor(_provider, _status, _statusEnumType) {\n this._provider = _provider;\n this._status = _status;\n this._pendingContextChanges = 0;\n var _a, _b, _c;\n (_a = _provider.events) == null ? void 0 : _a.addHandler(\"PROVIDER_READY\" /* Ready */, () => {\n this._status = _statusEnumType.READY;\n });\n (_b = _provider.events) == null ? void 0 : _b.addHandler(\"PROVIDER_STALE\" /* Stale */, () => {\n this._status = _statusEnumType.STALE;\n });\n (_c = _provider.events) == null ? void 0 : _c.addHandler(\"PROVIDER_ERROR\" /* Error */, (details) => {\n if ((details == null ? void 0 : details.errorCode) === \"PROVIDER_FATAL\" /* PROVIDER_FATAL */) {\n this._status = _statusEnumType.FATAL;\n } else {\n this._status = _statusEnumType.ERROR;\n }\n });\n }\n get provider() {\n return this._provider;\n }\n set provider(provider) {\n this._provider = provider;\n }\n get status() {\n return this._status;\n }\n set status(status) {\n this._status = status;\n }\n get allContextChangesSettled() {\n return this._pendingContextChanges === 0;\n }\n incrementPendingContextChanges() {\n this._pendingContextChanges++;\n }\n decrementPendingContextChanges() {\n this._pendingContextChanges--;\n }\n};\nvar OpenFeatureCommonAPI = class {\n constructor(category) {\n this._hooks = [];\n this._context = {};\n this._logger = new DefaultLogger();\n this._clientEventHandlers = /* @__PURE__ */ new Map();\n this._domainScopedContext = /* @__PURE__ */ new Map();\n this._clientEvents = /* @__PURE__ */ new Map();\n this._runsOn = category;\n }\n addHooks(...hooks) {\n this._hooks = [...this._hooks, ...hooks];\n return this;\n }\n getHooks() {\n return this._hooks;\n }\n clearHooks() {\n this._hooks = [];\n return this;\n }\n setLogger(logger) {\n this._logger = new SafeLogger(logger);\n return this;\n }\n /**\n * Get metadata about the default provider.\n * @returns {ProviderMetadata} Provider Metadata\n */\n get providerMetadata() {\n return this.getProviderMetadata();\n }\n /**\n * Get metadata about a registered provider using the client name.\n * An unbound or empty client name will return metadata from the default provider.\n * @param {string} domain An identifier which logically binds clients with providers\n * @returns {ProviderMetadata} Provider Metadata\n */\n getProviderMetadata(domain) {\n return this.getProviderForClient(domain).metadata;\n }\n /**\n * Adds a handler for the given provider event type.\n * The handlers are called in the order they have been added.\n * API (global) events run for all providers.\n * @param {AnyProviderEvent} eventType The provider event type to listen to\n * @param {EventHandler} handler The handler to run on occurrence of the event type\n * @param {EventOptions} options Optional options such as signal for aborting\n */\n addHandler(eventType, handler, options) {\n [.../* @__PURE__ */ new Map([[void 0, this._defaultProvider]]), ...this._domainScopedProviders].forEach((keyProviderTuple) => {\n var _a;\n const domain = keyProviderTuple[0];\n const provider = keyProviderTuple[1].provider;\n const status = keyProviderTuple[1].status;\n const shouldRunNow = statusMatchesEvent(eventType, status);\n if (shouldRunNow) {\n try {\n handler({ domain, providerName: provider.metadata.name });\n } catch (err) {\n (_a = this._logger) == null ? void 0 : _a.error(\"Error running event handler:\", err);\n }\n }\n });\n this._apiEmitter.addHandler(eventType, handler);\n if ((options == null ? void 0 : options.signal) && typeof options.signal.addEventListener === \"function\") {\n options.signal.addEventListener(\"abort\", () => {\n this.removeHandler(eventType, handler);\n });\n }\n }\n /**\n * Removes a handler for the given provider event type.\n * @param {AnyProviderEvent} eventType The provider event type to remove the listener for\n * @param {EventHandler} handler The handler to remove for the provider event type\n */\n removeHandler(eventType, handler) {\n this._apiEmitter.removeHandler(eventType, handler);\n }\n /**\n * Removes all event handlers.\n */\n clearHandlers() {\n this._apiEmitter.removeAllHandlers();\n }\n /**\n * Gets the current handlers for the given provider event type.\n * @param {AnyProviderEvent} eventType The provider event type to get the current handlers for\n * @returns {EventHandler[]} The handlers currently attached to the given provider event type\n */\n getHandlers(eventType) {\n return this._apiEmitter.getHandlers(eventType);\n }\n setAwaitableProvider(domainOrProvider, providerOrUndefined) {\n var _a, _b, _c, _d, _e, _f, _g, _h;\n const domain = stringOrUndefined(domainOrProvider);\n const provider = (_a = objectOrUndefined(domainOrProvider)) != null ? _a : objectOrUndefined(providerOrUndefined);\n if (!provider) {\n this._logger.debug(\"No provider defined, ignoring setProvider call\");\n return;\n }\n const oldProvider = this.getProviderForClient(domain);\n const providerName = provider.metadata.name;\n if (oldProvider === provider) {\n this._logger.debug(\"Provider is already set, ignoring setProvider call\");\n return;\n }\n if (!provider.runsOn) {\n this._logger.debug(`Provider '${provider.metadata.name}' has not defined its intended use.`);\n } else if (provider.runsOn !== this._runsOn) {\n throw new GeneralError(`Provider '${provider.metadata.name}' is intended for use on the ${provider.runsOn}.`);\n }\n const emitters = this.getAssociatedEventEmitters(domain);\n let initializationPromise = void 0;\n const wrappedProvider = new ProviderWrapper(\n provider,\n this._statusEnumType.NOT_READY,\n this._statusEnumType\n );\n if (typeof provider.initialize === \"function\" && !this.allProviders.includes(provider)) {\n initializationPromise = (_e = (_d = (_c = provider.initialize) == null ? void 0 : _c.call(provider, domain ? (_b = this._domainScopedContext.get(domain)) != null ? _b : this._context : this._context)) == null ? void 0 : _d.then(() => {\n var _a2;\n wrappedProvider.status = this._statusEnumType.READY;\n this.getAssociatedEventEmitters(domain).forEach((emitter) => {\n emitter == null ? void 0 : emitter.emit(\"PROVIDER_READY\" /* Ready */, { clientName: domain, domain, providerName });\n });\n (_a2 = this._apiEmitter) == null ? void 0 : _a2.emit(\"PROVIDER_READY\" /* Ready */, { clientName: domain, domain, providerName });\n })) == null ? void 0 : _e.catch((error) => {\n var _a2;\n if ((error == null ? void 0 : error.code) === \"PROVIDER_FATAL\" /* PROVIDER_FATAL */) {\n wrappedProvider.status = this._statusEnumType.FATAL;\n } else {\n wrappedProvider.status = this._statusEnumType.ERROR;\n }\n this.getAssociatedEventEmitters(domain).forEach((emitter) => {\n emitter == null ? void 0 : emitter.emit(\"PROVIDER_ERROR\" /* Error */, {\n clientName: domain,\n domain,\n providerName,\n message: error == null ? void 0 : error.message\n });\n });\n (_a2 = this._apiEmitter) == null ? void 0 : _a2.emit(\"PROVIDER_ERROR\" /* Error */, {\n clientName: domain,\n domain,\n providerName,\n message: error == null ? void 0 : error.message\n });\n throw error;\n });\n } else {\n wrappedProvider.status = this._statusEnumType.READY;\n emitters.forEach((emitter) => {\n emitter == null ? void 0 : emitter.emit(\"PROVIDER_READY\" /* Ready */, { clientName: domain, domain, providerName });\n });\n (_f = this._apiEmitter) == null ? void 0 : _f.emit(\"PROVIDER_READY\" /* Ready */, { clientName: domain, domain, providerName });\n }\n if (domain) {\n this._domainScopedProviders.set(domain, wrappedProvider);\n } else {\n this._defaultProvider = wrappedProvider;\n }\n this.transferListeners(oldProvider, provider, domain, emitters);\n if (!this.allProviders.includes(oldProvider)) {\n (_h = (_g = oldProvider == null ? void 0 : oldProvider.onClose) == null ? void 0 : _g.call(oldProvider)) == null ? void 0 : _h.catch((err) => {\n this._logger.error(`error closing provider: ${err == null ? void 0 : err.message}, ${err == null ? void 0 : err.stack}`);\n });\n }\n return initializationPromise;\n }\n getProviderForClient(domain) {\n var _a, _b;\n if (!domain) {\n return this._defaultProvider.provider;\n }\n return (_b = (_a = this._domainScopedProviders.get(domain)) == null ? void 0 : _a.provider) != null ? _b : this._defaultProvider.provider;\n }\n buildAndCacheEventEmitterForClient(domain) {\n const emitter = this._clientEvents.get(domain);\n if (emitter) {\n return emitter;\n }\n const newEmitter = this._createEventEmitter();\n this._clientEvents.set(domain, newEmitter);\n const clientProvider = this.getProviderForClient(domain);\n Object.values(ClientProviderEvents).forEach(\n (eventType) => {\n var _a;\n return (_a = clientProvider.events) == null ? void 0 : _a.addHandler(eventType, (details) => __async(this, null, function* () {\n newEmitter.emit(eventType, __spreadProps(__spreadValues({}, details), {\n clientName: domain,\n domain,\n providerName: clientProvider.metadata.name\n }));\n }));\n }\n );\n return newEmitter;\n }\n getUnboundEmitters() {\n const domainScopedProviders = [...this._domainScopedProviders.keys()];\n const eventEmitterNames = [...this._clientEvents.keys()].filter(isDefined);\n const unboundEmitterNames = eventEmitterNames.filter((name) => !domainScopedProviders.includes(name));\n return [\n // all unbound, named emitters\n ...unboundEmitterNames.map((name) => this._clientEvents.get(name)),\n // the default emitter\n this._clientEvents.get(void 0)\n ].filter(isDefined);\n }\n getAssociatedEventEmitters(domain) {\n return domain ? [this.buildAndCacheEventEmitterForClient(domain)] : this.getUnboundEmitters();\n }\n transferListeners(oldProvider, newProvider, domain, emitters) {\n var _a;\n (_a = this._clientEventHandlers.get(domain)) == null ? void 0 : _a.forEach((eventHandler) => {\n var _a2;\n return (_a2 = oldProvider.events) == null ? void 0 : _a2.removeHandler(...eventHandler);\n });\n const newClientHandlers = Object.values(ClientProviderEvents).map((eventType) => {\n const handler = (details) => __async(this, null, function* () {\n emitters.forEach((emitter) => {\n emitter == null ? void 0 : emitter.emit(eventType, __spreadProps(__spreadValues({}, details), { clientName: domain, domain, providerName: newProvider.metadata.name }));\n });\n this._apiEmitter.emit(eventType, __spreadProps(__spreadValues({}, details), {\n clientName: domain,\n domain,\n providerName: newProvider.metadata.name\n }));\n });\n return [eventType, handler];\n });\n this._clientEventHandlers.set(domain, newClientHandlers);\n newClientHandlers.forEach((eventHandler) => {\n var _a2;\n return (_a2 = newProvider.events) == null ? void 0 : _a2.addHandler(...eventHandler);\n });\n }\n close() {\n return __async(this, null, function* () {\n var _a, _b;\n try {\n yield (_b = (_a = this == null ? void 0 : this._defaultProvider.provider) == null ? void 0 : _a.onClose) == null ? void 0 : _b.call(_a);\n } catch (err) {\n this.handleShutdownError(this._defaultProvider.provider, err);\n }\n const wrappers = Array.from(this._domainScopedProviders);\n yield Promise.all(\n wrappers.map((_0) => __async(this, [_0], function* ([, wrapper]) {\n var _a2, _b2;\n try {\n yield (_b2 = wrapper == null ? void 0 : (_a2 = wrapper.provider).onClose) == null ? void 0 : _b2.call(_a2);\n } catch (err) {\n this.handleShutdownError(wrapper == null ? void 0 : wrapper.provider, err);\n }\n }))\n );\n });\n }\n clearProvidersAndSetDefault(defaultProvider) {\n return __async(this, null, function* () {\n try {\n yield this.close();\n } catch (err) {\n this._logger.error(\"Unable to cleanly close providers. Resetting to the default configuration.\");\n } finally {\n this._domainScopedProviders.clear();\n this._defaultProvider = new ProviderWrapper(\n defaultProvider,\n this._statusEnumType.NOT_READY,\n this._statusEnumType\n );\n }\n });\n }\n get allProviders() {\n return [\n ...[...this._domainScopedProviders.values()].map((wrappers) => wrappers.provider),\n this._defaultProvider.provider\n ];\n }\n handleShutdownError(provider, err) {\n this._logger.error(`Error during shutdown of provider ${provider.metadata.name}: ${err}`);\n this._logger.error(err == null ? void 0 : err.stack);\n }\n};\nexport {\n ClientProviderEvents as AllProviderEvents,\n ClientProviderStatus as AllProviderStatus,\n ClientProviderEvents,\n ClientProviderStatus,\n DefaultLogger,\n ErrorCode,\n FlagNotFoundError,\n GeneralError,\n GenericEventEmitter,\n InvalidContextError,\n LOG_LEVELS,\n MapHookData,\n OpenFeatureCommonAPI,\n OpenFeatureError,\n ParseError,\n ProviderFatalError,\n ProviderNotReadyError,\n ProviderWrapper,\n SafeLogger,\n ServerProviderEvents,\n ServerProviderStatus,\n StandardResolutionReasons,\n TargetingKeyMissingError,\n TelemetryAttribute,\n TelemetryFlagMetadata,\n TypeMismatchError,\n createEvaluationEvent,\n instantiateErrorByErrorCode,\n isObject,\n isString,\n objectOrUndefined,\n statusMatchesEvent,\n stringOrUndefined\n};\n//# sourceMappingURL=index.js.map\n","var __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __defProps = Object.defineProperties;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropDescs = Object.getOwnPropertyDescriptors;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __getProtoOf = Object.getPrototypeOf;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __reflectGet = Reflect.get;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));\nvar __commonJS = (cb, mod) => function __require() {\n return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(\n // If the importer is in node compatibility mode or this is not an ESM\n // file that has been converted to a CommonJS file using a Babel-\n // compatible transform (i.e. \"__esModule\" has not been set), then set\n // \"default\" to the CommonJS \"module.exports\" for node compatibility.\n isNodeMode || !mod || !mod.__esModule ? __defProp(target, \"default\", { value: mod, enumerable: true }) : target,\n mod\n));\nvar __superGet = (cls, obj, key) => __reflectGet(__getProtoOf(cls), key, obj);\nvar __async = (__this, __arguments, generator) => {\n return new Promise((resolve, reject) => {\n var fulfilled = (value) => {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n };\n var rejected = (value) => {\n try {\n step(generator.throw(value));\n } catch (e) {\n reject(e);\n }\n };\n var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);\n step((generator = generator.apply(__this, __arguments)).next());\n });\n};\n\n// ../../node_modules/eventemitter3/index.js\nvar require_eventemitter3 = __commonJS({\n \"../../node_modules/eventemitter3/index.js\"(exports, module) {\n \"use strict\";\n var has = Object.prototype.hasOwnProperty;\n var prefix = \"~\";\n function Events() {\n }\n if (Object.create) {\n Events.prototype = /* @__PURE__ */ Object.create(null);\n if (!new Events().__proto__) prefix = false;\n }\n function EE(fn, context, once) {\n this.fn = fn;\n this.context = context;\n this.once = once || false;\n }\n function addListener(emitter, event, fn, context, once) {\n if (typeof fn !== \"function\") {\n throw new TypeError(\"The listener must be a function\");\n }\n var listener = new EE(fn, context || emitter, once), evt = prefix ? prefix + event : event;\n if (!emitter._events[evt]) emitter._events[evt] = listener, emitter._eventsCount++;\n else if (!emitter._events[evt].fn) emitter._events[evt].push(listener);\n else emitter._events[evt] = [emitter._events[evt], listener];\n return emitter;\n }\n function clearEvent(emitter, evt) {\n if (--emitter._eventsCount === 0) emitter._events = new Events();\n else delete emitter._events[evt];\n }\n function EventEmitter2() {\n this._events = new Events();\n this._eventsCount = 0;\n }\n EventEmitter2.prototype.eventNames = function eventNames() {\n var names = [], events, name;\n if (this._eventsCount === 0) return names;\n for (name in events = this._events) {\n if (has.call(events, name)) names.push(prefix ? name.slice(1) : name);\n }\n if (Object.getOwnPropertySymbols) {\n return names.concat(Object.getOwnPropertySymbols(events));\n }\n return names;\n };\n EventEmitter2.prototype.listeners = function listeners(event) {\n var evt = prefix ? prefix + event : event, handlers = this._events[evt];\n if (!handlers) return [];\n if (handlers.fn) return [handlers.fn];\n for (var i = 0, l = handlers.length, ee = new Array(l); i < l; i++) {\n ee[i] = handlers[i].fn;\n }\n return ee;\n };\n EventEmitter2.prototype.listenerCount = function listenerCount(event) {\n var evt = prefix ? prefix + event : event, listeners = this._events[evt];\n if (!listeners) return 0;\n if (listeners.fn) return 1;\n return listeners.length;\n };\n EventEmitter2.prototype.emit = function emit(event, a1, a2, a3, a4, a5) {\n var evt = prefix ? prefix + event : event;\n if (!this._events[evt]) return false;\n var listeners = this._events[evt], len = arguments.length, args, i;\n if (listeners.fn) {\n if (listeners.once) this.removeListener(event, listeners.fn, void 0, true);\n switch (len) {\n case 1:\n return listeners.fn.call(listeners.context), true;\n case 2:\n return listeners.fn.call(listeners.context, a1), true;\n case 3:\n return listeners.fn.call(listeners.context, a1, a2), true;\n case 4:\n return listeners.fn.call(listeners.context, a1, a2, a3), true;\n case 5:\n return listeners.fn.call(listeners.context, a1, a2, a3, a4), true;\n case 6:\n return listeners.fn.call(listeners.context, a1, a2, a3, a4, a5), true;\n }\n for (i = 1, args = new Array(len - 1); i < len; i++) {\n args[i - 1] = arguments[i];\n }\n listeners.fn.apply(listeners.context, args);\n } else {\n var length = listeners.length, j;\n for (i = 0; i < length; i++) {\n if (listeners[i].once) this.removeListener(event, listeners[i].fn, void 0, true);\n switch (len) {\n case 1:\n listeners[i].fn.call(listeners[i].context);\n break;\n case 2:\n listeners[i].fn.call(listeners[i].context, a1);\n break;\n case 3:\n listeners[i].fn.call(listeners[i].context, a1, a2);\n break;\n case 4:\n listeners[i].fn.call(listeners[i].context, a1, a2, a3);\n break;\n default:\n if (!args) for (j = 1, args = new Array(len - 1); j < len; j++) {\n args[j - 1] = arguments[j];\n }\n listeners[i].fn.apply(listeners[i].context, args);\n }\n }\n }\n return true;\n };\n EventEmitter2.prototype.on = function on(event, fn, context) {\n return addListener(this, event, fn, context, false);\n };\n EventEmitter2.prototype.once = function once(event, fn, context) {\n return addListener(this, event, fn, context, true);\n };\n EventEmitter2.prototype.removeListener = function removeListener(event, fn, context, once) {\n var evt = prefix ? prefix + event : event;\n if (!this._events[evt]) return this;\n if (!fn) {\n clearEvent(this, evt);\n return this;\n }\n var listeners = this._events[evt];\n if (listeners.fn) {\n if (listeners.fn === fn && (!once || listeners.once) && (!context || listeners.context === context)) {\n clearEvent(this, evt);\n }\n } else {\n for (var i = 0, events = [], length = listeners.length; i < length; i++) {\n if (listeners[i].fn !== fn || once && !listeners[i].once || context && listeners[i].context !== context) {\n events.push(listeners[i]);\n }\n }\n if (events.length) this._events[evt] = events.length === 1 ? events[0] : events;\n else clearEvent(this, evt);\n }\n return this;\n };\n EventEmitter2.prototype.removeAllListeners = function removeAllListeners(event) {\n var evt;\n if (event) {\n evt = prefix ? prefix + event : event;\n if (this._events[evt]) clearEvent(this, evt);\n } else {\n this._events = new Events();\n this._eventsCount = 0;\n }\n return this;\n };\n EventEmitter2.prototype.off = EventEmitter2.prototype.removeListener;\n EventEmitter2.prototype.addListener = EventEmitter2.prototype.on;\n EventEmitter2.prefixed = prefix;\n EventEmitter2.EventEmitter = EventEmitter2;\n if (\"undefined\" !== typeof module) {\n module.exports = EventEmitter2;\n }\n }\n});\n\n// src/provider/provider.ts\nimport { ClientProviderStatus } from \"@openfeature/core\";\n\n// src/provider/no-op-provider.ts\nvar REASON_NO_OP = \"No-op\";\nvar NoopFeatureProvider = class {\n constructor() {\n this.metadata = {\n name: \"No-op Provider\"\n };\n }\n resolveBooleanEvaluation(_, defaultValue) {\n return this.noOp(defaultValue);\n }\n resolveStringEvaluation(_, defaultValue) {\n return this.noOp(defaultValue);\n }\n resolveNumberEvaluation(_, defaultValue) {\n return this.noOp(defaultValue);\n }\n resolveObjectEvaluation(_, defaultValue) {\n return this.noOp(defaultValue);\n }\n noOp(defaultValue) {\n return {\n value: defaultValue,\n reason: REASON_NO_OP\n };\n }\n};\nvar NOOP_PROVIDER = new NoopFeatureProvider();\n\n// src/provider/in-memory-provider/in-memory-provider.ts\nimport {\n FlagNotFoundError,\n GeneralError,\n OpenFeatureError as OpenFeatureError2,\n StandardResolutionReasons,\n TypeMismatchError\n} from \"@openfeature/core\";\n\n// src/events/open-feature-event-emitter.ts\nimport { GenericEventEmitter } from \"@openfeature/core\";\n\n// ../../node_modules/eventemitter3/index.mjs\nvar import_index = __toESM(require_eventemitter3(), 1);\n\n// src/events/open-feature-event-emitter.ts\nvar OpenFeatureEventEmitter = class extends GenericEventEmitter {\n constructor() {\n super();\n this.eventEmitter = new import_index.default();\n }\n};\n\n// src/events/events.ts\nimport { ClientProviderEvents } from \"@openfeature/core\";\n\n// src/provider/in-memory-provider/variant-not-found-error.ts\nimport { ErrorCode, OpenFeatureError } from \"@openfeature/core\";\nvar VariantNotFoundError = class _VariantNotFoundError extends OpenFeatureError {\n constructor(message) {\n super(message);\n Object.setPrototypeOf(this, _VariantNotFoundError.prototype);\n this.name = \"VariantNotFoundError\";\n this.code = ErrorCode.GENERAL;\n }\n};\n\n// src/provider/in-memory-provider/in-memory-provider.ts\nvar InMemoryProvider = class {\n constructor(flagConfiguration = {}) {\n this.events = new OpenFeatureEventEmitter();\n this.runsOn = \"client\";\n this.metadata = {\n name: \"in-memory\"\n };\n this._flagConfiguration = __spreadValues({}, flagConfiguration);\n }\n /**\n * Overwrites the configured flags.\n * @param { FlagConfiguration } flagConfiguration new flag configuration\n */\n putConfiguration(flagConfiguration) {\n return __async(this, null, function* () {\n try {\n const flagsChanged = Object.entries(__spreadValues(__spreadValues({}, flagConfiguration), this._flagConfiguration)).map(([key]) => key);\n this._flagConfiguration = __spreadValues({}, flagConfiguration);\n this.events.emit(ClientProviderEvents.ConfigurationChanged, { flagsChanged });\n } catch (err) {\n this.events.emit(ClientProviderEvents.Error);\n throw err;\n }\n });\n }\n resolveBooleanEvaluation(flagKey, defaultValue, context, logger) {\n return this.resolveAndCheckFlag(flagKey, defaultValue, context || this._context, logger);\n }\n resolveNumberEvaluation(flagKey, defaultValue, context, logger) {\n return this.resolveAndCheckFlag(flagKey, defaultValue, context || this._context, logger);\n }\n resolveStringEvaluation(flagKey, defaultValue, context, logger) {\n return this.resolveAndCheckFlag(flagKey, defaultValue, context || this._context, logger);\n }\n resolveObjectEvaluation(flagKey, defaultValue, context, logger) {\n return this.resolveAndCheckFlag(flagKey, defaultValue, context || this._context, logger);\n }\n resolveAndCheckFlag(flagKey, defaultValue, context, logger) {\n if (!(flagKey in this._flagConfiguration)) {\n const message = `no flag found with key ${flagKey}`;\n logger == null ? void 0 : logger.debug(message);\n throw new FlagNotFoundError(message);\n }\n if (this._flagConfiguration[flagKey].disabled) {\n return { value: defaultValue, reason: StandardResolutionReasons.DISABLED };\n }\n const resolvedFlag = this.resolveFlagWithReason(flagKey, context);\n if (resolvedFlag.value === void 0) {\n const message = `no value associated with variant provided for ${flagKey} found`;\n logger == null ? void 0 : logger.error(message);\n throw new VariantNotFoundError(message);\n }\n if (typeof resolvedFlag.value != typeof defaultValue) {\n throw new TypeMismatchError();\n }\n return resolvedFlag;\n }\n resolveFlagWithReason(flagKey, ctx) {\n try {\n const resolutionResult = this.lookupFlagValue(flagKey, ctx);\n return resolutionResult;\n } catch (error) {\n if (!(error instanceof OpenFeatureError2)) {\n throw new GeneralError((error == null ? void 0 : error.message) || \"unknown error\");\n }\n throw error;\n }\n }\n lookupFlagValue(flagKey, ctx) {\n var _a;\n const flagSpec = this._flagConfiguration[flagKey];\n const isContextEval = ctx && (flagSpec == null ? void 0 : flagSpec.contextEvaluator);\n const variant = isContextEval ? (_a = flagSpec.contextEvaluator) == null ? void 0 : _a.call(flagSpec, ctx) : flagSpec.defaultVariant;\n const value = variant && (flagSpec == null ? void 0 : flagSpec.variants[variant]);\n const reason = isContextEval ? StandardResolutionReasons.TARGETING_MATCH : StandardResolutionReasons.STATIC;\n return __spreadProps(__spreadValues({\n value\n }, variant && { variant }), {\n reason\n });\n }\n};\n\n// src/open-feature.ts\nimport {\n OpenFeatureCommonAPI,\n ProviderWrapper,\n objectOrUndefined,\n stringOrUndefined\n} from \"@openfeature/core\";\n\n// src/client/internal/open-feature-client.ts\nimport {\n ErrorCode as ErrorCode2,\n ProviderFatalError,\n ProviderNotReadyError,\n SafeLogger,\n StandardResolutionReasons as StandardResolutionReasons2,\n instantiateErrorByErrorCode,\n statusMatchesEvent,\n MapHookData\n} from \"@openfeature/core\";\nvar OpenFeatureClient = class {\n constructor(providerAccessor, providerStatusAccessor, emitterAccessor, apiContextAccessor, apiHooksAccessor, globalLogger, options) {\n this.providerAccessor = providerAccessor;\n this.providerStatusAccessor = providerStatusAccessor;\n this.emitterAccessor = emitterAccessor;\n this.apiContextAccessor = apiContextAccessor;\n this.apiHooksAccessor = apiHooksAccessor;\n this.globalLogger = globalLogger;\n this.options = options;\n this._hooks = [];\n }\n get metadata() {\n var _a, _b;\n return {\n // Use domain if name is not provided\n name: (_a = this.options.domain) != null ? _a : this.options.name,\n domain: (_b = this.options.domain) != null ? _b : this.options.name,\n version: this.options.version,\n providerMetadata: this.providerAccessor().metadata\n };\n }\n get providerStatus() {\n return this.providerStatusAccessor();\n }\n addHandler(eventType, handler, options) {\n var _a;\n this.emitterAccessor().addHandler(eventType, handler);\n const shouldRunNow = statusMatchesEvent(eventType, this.providerStatus);\n if (shouldRunNow) {\n try {\n handler({\n clientName: this.metadata.name,\n domain: this.metadata.domain,\n providerName: this._provider.metadata.name\n });\n } catch (err) {\n (_a = this._logger) == null ? void 0 : _a.error(\"Error running event handler:\", err);\n }\n }\n if ((options == null ? void 0 : options.signal) && typeof options.signal.addEventListener === \"function\") {\n options.signal.addEventListener(\"abort\", () => {\n this.removeHandler(eventType, handler);\n });\n }\n }\n removeHandler(notificationType, handler) {\n this.emitterAccessor().removeHandler(notificationType, handler);\n }\n getHandlers(eventType) {\n return this.emitterAccessor().getHandlers(eventType);\n }\n setLogger(logger) {\n this._clientLogger = new SafeLogger(logger);\n return this;\n }\n addHooks(...hooks) {\n this._hooks = [...this._hooks, ...hooks];\n return this;\n }\n getHooks() {\n return this._hooks;\n }\n clearHooks() {\n this._hooks = [];\n return this;\n }\n getBooleanValue(flagKey, defaultValue, options) {\n return this.getBooleanDetails(flagKey, defaultValue, options).value;\n }\n getBooleanDetails(flagKey, defaultValue, options) {\n return this.evaluate(flagKey, this._provider.resolveBooleanEvaluation, defaultValue, \"boolean\", options);\n }\n getStringValue(flagKey, defaultValue, options) {\n return this.getStringDetails(flagKey, defaultValue, options).value;\n }\n getStringDetails(flagKey, defaultValue, options) {\n return this.evaluate(\n flagKey,\n // this isolates providers from our restricted string generic argument.\n this._provider.resolveStringEvaluation,\n defaultValue,\n \"string\",\n options\n );\n }\n getNumberValue(flagKey, defaultValue, options) {\n return this.getNumberDetails(flagKey, defaultValue, options).value;\n }\n getNumberDetails(flagKey, defaultValue, options) {\n return this.evaluate(\n flagKey,\n // this isolates providers from our restricted number generic argument.\n this._provider.resolveNumberEvaluation,\n defaultValue,\n \"number\",\n options\n );\n }\n getObjectValue(flagKey, defaultValue, options) {\n return this.getObjectDetails(flagKey, defaultValue, options).value;\n }\n getObjectDetails(flagKey, defaultValue, options) {\n return this.evaluate(flagKey, this._provider.resolveObjectEvaluation, defaultValue, \"object\", options);\n }\n track(occurrenceKey, occurrenceDetails = {}) {\n var _a, _b, _c;\n try {\n this.shortCircuitIfNotReady();\n if (typeof this._provider.track === \"function\") {\n const frozenContext = Object.freeze(__spreadValues({}, this.apiContextAccessor((_a = this == null ? void 0 : this.options) == null ? void 0 : _a.domain)));\n return (_c = (_b = this._provider).track) == null ? void 0 : _c.call(_b, occurrenceKey, frozenContext, occurrenceDetails);\n } else {\n this._logger.debug(\"Provider does not support the track function; will no-op.\");\n }\n } catch (err) {\n this._logger.debug(\"Error recording tracking event.\", err);\n }\n }\n evaluate(flagKey, resolver, defaultValue, flagType, options = {}) {\n var _a, _b;\n const allHooks = [\n ...this.apiHooksAccessor(),\n ...this.getHooks(),\n ...options.hooks || [],\n ...this._provider.hooks || []\n ];\n const allHooksReversed = [...allHooks].reverse();\n const context = __spreadValues({}, this.apiContextAccessor((_a = this == null ? void 0 : this.options) == null ? void 0 : _a.domain));\n const hookContexts = allHooksReversed.map(\n () => Object.freeze({\n flagKey,\n defaultValue,\n flagValueType: flagType,\n clientMetadata: this.metadata,\n providerMetadata: this._provider.metadata,\n context,\n logger: this._logger,\n hookData: new MapHookData()\n })\n );\n let evaluationDetails;\n try {\n this.beforeHooks(allHooks, hookContexts, options);\n this.shortCircuitIfNotReady();\n const resolution = resolver.call(this._provider, flagKey, defaultValue, context, this._logger);\n const resolutionDetails = __spreadProps(__spreadValues({}, resolution), {\n flagMetadata: Object.freeze((_b = resolution.flagMetadata) != null ? _b : {}),\n flagKey\n });\n if (resolutionDetails.errorCode) {\n const err = instantiateErrorByErrorCode(resolutionDetails.errorCode, resolutionDetails.errorMessage);\n this.errorHooks(allHooksReversed, hookContexts, err, options);\n evaluationDetails = this.getErrorEvaluationDetails(flagKey, defaultValue, err, resolutionDetails.flagMetadata);\n } else {\n this.afterHooks(allHooksReversed, hookContexts, resolutionDetails, options);\n evaluationDetails = resolutionDetails;\n }\n } catch (err) {\n this.errorHooks(allHooksReversed, hookContexts, err, options);\n evaluationDetails = this.getErrorEvaluationDetails(flagKey, defaultValue, err);\n }\n this.finallyHooks(allHooksReversed, hookContexts, evaluationDetails, options);\n return evaluationDetails;\n }\n beforeHooks(hooks, hookContexts, options) {\n var _a;\n for (const [index, hook] of hooks.entries()) {\n const hookContextIndex = hooks.length - 1 - index;\n const hookContext = hookContexts[hookContextIndex];\n Object.freeze(hookContext);\n Object.freeze(hookContext.context);\n (_a = hook == null ? void 0 : hook.before) == null ? void 0 : _a.call(hook, hookContext, Object.freeze(options.hookHints));\n }\n }\n afterHooks(hooks, hookContexts, evaluationDetails, options) {\n var _a;\n for (const [index, hook] of hooks.entries()) {\n const hookContext = hookContexts[index];\n (_a = hook == null ? void 0 : hook.after) == null ? void 0 : _a.call(hook, hookContext, evaluationDetails, options.hookHints);\n }\n }\n errorHooks(hooks, hookContexts, err, options) {\n var _a;\n for (const [index, hook] of hooks.entries()) {\n try {\n const hookContext = hookContexts[index];\n (_a = hook == null ? void 0 : hook.error) == null ? void 0 : _a.call(hook, hookContext, err, options.hookHints);\n } catch (err2) {\n this._logger.error(`Unhandled error during 'error' hook: ${err2}`);\n if (err2 instanceof Error) {\n this._logger.error(err2.stack);\n }\n this._logger.error(err2 == null ? void 0 : err2.stack);\n }\n }\n }\n finallyHooks(hooks, hookContexts, evaluationDetails, options) {\n var _a;\n for (const [index, hook] of hooks.entries()) {\n try {\n const hookContext = hookContexts[index];\n (_a = hook == null ? void 0 : hook.finally) == null ? void 0 : _a.call(hook, hookContext, evaluationDetails, options.hookHints);\n } catch (err) {\n this._logger.error(`Unhandled error during 'finally' hook: ${err}`);\n if (err instanceof Error) {\n this._logger.error(err.stack);\n }\n this._logger.error(err == null ? void 0 : err.stack);\n }\n }\n }\n get _provider() {\n return this.providerAccessor();\n }\n get _logger() {\n return this._clientLogger || this.globalLogger();\n }\n shortCircuitIfNotReady() {\n if (this.providerStatus === ClientProviderStatus.NOT_READY) {\n throw new ProviderNotReadyError(\"provider has not yet initialized\");\n } else if (this.providerStatus === ClientProviderStatus.FATAL) {\n throw new ProviderFatalError(\"provider is in an irrecoverable error state\");\n }\n }\n getErrorEvaluationDetails(flagKey, defaultValue, err, flagMetadata = {}) {\n const errorMessage = err == null ? void 0 : err.message;\n const errorCode = (err == null ? void 0 : err.code) || ErrorCode2.GENERAL;\n return {\n errorCode,\n errorMessage,\n value: defaultValue,\n reason: StandardResolutionReasons2.ERROR,\n flagMetadata: Object.freeze(flagMetadata),\n flagKey\n };\n }\n};\n\n// src/open-feature.ts\nvar GLOBAL_OPENFEATURE_API_KEY = Symbol.for(\"@openfeature/web-sdk/api\");\nvar _globalThis = globalThis;\nvar OpenFeatureAPI = class _OpenFeatureAPI extends OpenFeatureCommonAPI {\n constructor() {\n super(\"client\");\n this._statusEnumType = ClientProviderStatus;\n this._apiEmitter = new OpenFeatureEventEmitter();\n this._defaultProvider = new ProviderWrapper(\n NOOP_PROVIDER,\n ClientProviderStatus.NOT_READY,\n this._statusEnumType\n );\n this._domainScopedProviders = /* @__PURE__ */ new Map();\n this._createEventEmitter = () => new OpenFeatureEventEmitter();\n }\n /**\n * Gets a singleton instance of the OpenFeature API.\n * @ignore\n * @returns {OpenFeatureAPI} OpenFeature API\n */\n static getInstance() {\n const globalApi = _globalThis[GLOBAL_OPENFEATURE_API_KEY];\n if (globalApi) {\n return globalApi;\n }\n const instance = new _OpenFeatureAPI();\n _globalThis[GLOBAL_OPENFEATURE_API_KEY] = instance;\n return instance;\n }\n getProviderStatus(domain) {\n var _a, _b;\n if (!domain) {\n return this._defaultProvider.status;\n }\n return (_b = (_a = this._domainScopedProviders.get(domain)) == null ? void 0 : _a.status) != null ? _b : this._defaultProvider.status;\n }\n setProviderAndWait(clientOrProvider, providerContextOrUndefined, contextOrUndefined) {\n return __async(this, null, function* () {\n const domain = stringOrUndefined(clientOrProvider);\n const provider = domain ? objectOrUndefined(providerContextOrUndefined) : objectOrUndefined(clientOrProvider);\n const context = domain ? objectOrUndefined(contextOrUndefined) : objectOrUndefined(providerContextOrUndefined);\n if (context) {\n if (domain) {\n this._domainScopedContext.set(domain, context);\n } else {\n this._context = context;\n }\n }\n yield this.setAwaitableProvider(domain, provider);\n });\n }\n setProvider(domainOrProvider, providerContextOrUndefined, contextOrUndefined) {\n const domain = stringOrUndefined(domainOrProvider);\n const provider = domain ? objectOrUndefined(providerContextOrUndefined) : objectOrUndefined(domainOrProvider);\n const context = domain ? objectOrUndefined(contextOrUndefined) : objectOrUndefined(providerContextOrUndefined);\n if (context) {\n if (domain) {\n this._domainScopedContext.set(domain, context);\n } else {\n this._context = context;\n }\n }\n const maybePromise = this.setAwaitableProvider(domain, provider);\n Promise.resolve(maybePromise).catch((err) => {\n this._logger.error(\"Error during provider initialization:\", err);\n });\n return this;\n }\n getProvider(domain) {\n return this.getProviderForClient(domain);\n }\n setContext(domainOrContext, contextOrUndefined) {\n return __async(this, null, function* () {\n var _a, _b;\n const domain = stringOrUndefined(domainOrContext);\n const context = (_b = (_a = objectOrUndefined(domainOrContext)) != null ? _a : objectOrUndefined(contextOrUndefined)) != null ? _b : {};\n if (domain) {\n const wrapper = this._domainScopedProviders.get(domain);\n if (wrapper) {\n const oldContext = this.getContext(domain);\n this._domainScopedContext.set(domain, context);\n yield this.runProviderContextChangeHandler(domain, wrapper, oldContext, context);\n } else {\n this._domainScopedContext.set(domain, context);\n }\n } else {\n const oldContext = this._context;\n this._context = context;\n const unboundProviders = Array.from(this._domainScopedProviders.entries()).filter(([domain2]) => !this._domainScopedContext.has(domain2)).reduce((acc, [domain2, wrapper]) => {\n acc.push({ domain: domain2, wrapper });\n return acc;\n }, []);\n const allDomainRecords = [\n // add in the default (no domain)\n { domain: void 0, wrapper: this._defaultProvider },\n ...unboundProviders\n ];\n yield Promise.all(\n allDomainRecords.map((dm) => this.runProviderContextChangeHandler(dm.domain, dm.wrapper, oldContext, context))\n );\n }\n });\n }\n getContext(domainOrUndefined) {\n const domain = stringOrUndefined(domainOrUndefined);\n if (domain) {\n const context = this._domainScopedContext.get(domain);\n if (context) {\n return context;\n } else {\n this._logger.debug(`Unable to find context for '${domain}'.`);\n }\n }\n return this._context;\n }\n clearContext(domainOrUndefined) {\n return __async(this, null, function* () {\n const domain = stringOrUndefined(domainOrUndefined);\n if (domain) {\n const wrapper = this._domainScopedProviders.get(domain);\n if (wrapper) {\n const oldContext = this.getContext(domain);\n this._domainScopedContext.delete(domain);\n const newContext = this.getContext();\n yield this.runProviderContextChangeHandler(domain, wrapper, oldContext, newContext);\n } else {\n this._domainScopedContext.delete(domain);\n }\n } else {\n return this.setContext({});\n }\n });\n }\n /**\n * Resets the global evaluation context and removes the evaluation context for\n * all domains.\n */\n clearContexts() {\n return __async(this, null, function* () {\n yield this.clearContext();\n yield Promise.allSettled(Array.from(this._domainScopedProviders.keys()).map((domain) => this.clearContext(domain)));\n });\n }\n /**\n * A factory function for creating new domain-scoped OpenFeature clients. Clients\n * can contain their own state (e.g. logger, hook, context). Multiple domains\n * can be used to segment feature flag configuration.\n *\n * If there is already a provider bound to this name via {@link this.setProvider setProvider}, this provider will be used.\n * Otherwise, the default provider is used until a provider is assigned to that name.\n * @param {string} domain An identifier which logically binds clients with providers\n * @param {string} version The version of the client (only used for metadata)\n * @returns {Client} OpenFeature Client\n */\n getClient(domain, version) {\n return new OpenFeatureClient(\n // functions are passed here to make sure that these values are always up to date,\n // and so we don't have to make these public properties on the API class.\n () => this.getProviderForClient(domain),\n () => this.getProviderStatus(domain),\n () => this.buildAndCacheEventEmitterForClient(domain),\n (domain2) => this.getContext(domain2),\n () => this.getHooks(),\n () => this._logger,\n { domain, version }\n );\n }\n /**\n * Clears all registered providers and resets the default provider.\n * @returns {Promise<void>}\n */\n clearProviders() {\n return __async(this, null, function* () {\n yield __superGet(_OpenFeatureAPI.prototype, this, \"clearProvidersAndSetDefault\").call(this, NOOP_PROVIDER);\n this._domainScopedContext.clear();\n });\n }\n runProviderContextChangeHandler(domain, wrapper, oldContext, newContext) {\n return __async(this, null, function* () {\n var _a, _b, _c, _d, _e, _f;\n const providerName = ((_b = (_a = wrapper.provider) == null ? void 0 : _a.metadata) == null ? void 0 : _b.name) || \"unnamed-provider\";\n try {\n if (typeof wrapper.provider.onContextChange === \"function\") {\n const maybePromise = wrapper.provider.onContextChange(oldContext, newContext);\n if (maybePromise && typeof (maybePromise == null ? void 0 : maybePromise.then) === \"function\") {\n wrapper.incrementPendingContextChanges();\n wrapper.status = this._statusEnumType.RECONCILING;\n this.getAssociatedEventEmitters(domain).forEach((emitter) => {\n emitter == null ? void 0 : emitter.emit(ClientProviderEvents.Reconciling, { domain, providerName });\n });\n (_c = this._apiEmitter) == null ? void 0 : _c.emit(ClientProviderEvents.Reconciling, { domain, providerName });\n yield maybePromise;\n wrapper.decrementPendingContextChanges();\n }\n }\n wrapper.status = this._statusEnumType.READY;\n if (wrapper.allContextChangesSettled) {\n this.getAssociatedEventEmitters(domain).forEach((emitter) => {\n emitter == null ? void 0 : emitter.emit(ClientProviderEvents.ContextChanged, { clientName: domain, domain, providerName });\n });\n (_d = this._apiEmitter) == null ? void 0 : _d.emit(ClientProviderEvents.ContextChanged, { clientName: domain, domain, providerName });\n }\n } catch (err) {\n wrapper.decrementPendingContextChanges();\n wrapper.status = this._statusEnumType.ERROR;\n if (wrapper.allContextChangesSettled) {\n const error = err;\n const message = `Error running ${providerName}'s context change handler: ${error == null ? void 0 : error.message}`;\n (_e = this._logger) == null ? void 0 : _e.error(`${message}`, err);\n this.getAssociatedEventEmitters(domain).forEach((emitter) => {\n emitter == null ? void 0 : emitter.emit(ClientProviderEvents.Error, { clientName: domain, domain, providerName, message });\n });\n (_f = this._apiEmitter) == null ? void 0 : _f.emit(ClientProviderEvents.Error, { clientName: domain, domain, providerName, message });\n }\n }\n });\n }\n};\nvar OpenFeature = OpenFeatureAPI.getInstance();\n\n// src/index.ts\nexport * from \"@openfeature/core\";\nexport {\n InMemoryProvider,\n NOOP_PROVIDER,\n OpenFeature,\n OpenFeatureAPI,\n OpenFeatureEventEmitter,\n ClientProviderEvents as ProviderEvents,\n ClientProviderStatus as ProviderStatus\n};\n//# sourceMappingURL=index.js.map\n","import { lazy } from \"react\";\n//#region editors/document-model-editor/module.ts\nconst DocumentModelEditor = {\n\tconfig: {\n\t\tid: \"document-model-editor-v2\",\n\t\tname: \"Document Model Editor\"\n\t},\n\tdocumentTypes: [\"powerhouse/document-model\"],\n\tComponent: lazy(() => import(\"../../editor-BzhVjRaX.js\"))\n};\n//#endregion\nexport { DocumentModelEditor };\n\n//# sourceMappingURL=module.js.map","import { r as driveDocumentModelModule, u as documentModelDocumentModelModule } from \"./document-drive-sTKoi6L4.js\";\nimport { t as reactorDriveDocumentModelModule } from \"./dist-DXM8ccKa.js\";\nimport { DocumentModelEditor } from \"./editors/document-model-editor/module.js\";\nimport { GenericDriveExplorer } from \"./editors/generic-drive-explorer/module.js\";\n//#region powerhouse.manifest.json\nvar powerhouse_manifest_default = {\n\tname: \"Common\",\n\tdescription: \"Common\",\n\tcategory: \"Common\",\n\tpublisher: {\n\t\t\"name\": \"@powerhousedao\",\n\t\t\"url\": \"https://github.com/powerhouse-inc/powerhouse/tree/main/packages/powerhouse-vetra-packages\"\n\t},\n\tdocumentModels: [\n\t\t{\n\t\t\t\"id\": \"powerhouse/package\",\n\t\t\t\"name\": \"Vetra Package\"\n\t\t},\n\t\t{\n\t\t\t\"id\": \"powerhouse/document-editor\",\n\t\t\t\"name\": \"Document Editor\"\n\t\t},\n\t\t{\n\t\t\t\"id\": \"powerhouse/subgraph-module\",\n\t\t\t\"name\": \"Subgraph Module\"\n\t\t},\n\t\t{\n\t\t\t\"id\": \"powerhouse/processor\",\n\t\t\t\"name\": \"Processor Module\"\n\t\t},\n\t\t{\n\t\t\t\"id\": \"powerhouse/app\",\n\t\t\t\"name\": \"App Module\"\n\t\t}\n\t],\n\teditors: [\n\t\t{\n\t\t\t\"id\": \"vetra-package-editor\",\n\t\t\t\"name\": \"Vetra Package Editor\",\n\t\t\t\"documentTypes\": [\"powerhouse/package\"]\n\t\t},\n\t\t{\n\t\t\t\"id\": \"document-editor-editor\",\n\t\t\t\"name\": \"Document Editor\",\n\t\t\t\"documentTypes\": [\"powerhouse/document-editor\"]\n\t\t},\n\t\t{\n\t\t\t\"id\": \"subgraph-module-editor\",\n\t\t\t\"name\": \"Subgraph Module Editor\",\n\t\t\t\"documentTypes\": [\"powerhouse/subgraph-module\"]\n\t\t},\n\t\t{\n\t\t\t\"id\": \"processor-module-editor\",\n\t\t\t\"name\": \"Processor Module Editor\",\n\t\t\t\"documentTypes\": [\"powerhouse/processor\"]\n\t\t},\n\t\t{\n\t\t\t\"id\": \"app-module-editor\",\n\t\t\t\"name\": \"App Module Editor\",\n\t\t\t\"documentTypes\": [\"powerhouse/app\"]\n\t\t}\n\t],\n\tapps: [{\n\t\t\"id\": \"vetra-drive-app\",\n\t\t\"name\": \"Vetra Drive App\",\n\t\t\"app\": \"vetra-drive-app\"\n\t}],\n\tsubgraphs: [],\n\timportScripts: []\n};\n//#endregion\n//#region document-models/document-models.ts\nconst documentModels = [\n\tdocumentModelDocumentModelModule,\n\tdriveDocumentModelModule,\n\treactorDriveDocumentModelModule\n];\n//#endregion\n//#region editors/editors.ts\nconst editors = [DocumentModelEditor, GenericDriveExplorer];\n//#endregion\n//#region index.ts\nconst manifest = powerhouse_manifest_default;\n//#endregion\nexport { documentModels, editors, manifest };\n\n//# sourceMappingURL=index.js.map","//#region powerhouse.manifest.json\nvar name = \"@powerhousedao/vetra\";\nvar description = \"Vetra package\";\nvar category = \"\";\nvar publisher = {\n\t\"name\": \"@powerhousedao\",\n\t\"url\": \"https://github.com/powerhouse-inc/powerhouse/tree/main/packages/vetra\"\n};\nvar documentModels = [\n\t{\n\t\t\"id\": \"powerhouse/package\",\n\t\t\"name\": \"Vetra Package\"\n\t},\n\t{\n\t\t\"id\": \"powerhouse/document-editor\",\n\t\t\"name\": \"Document Editor\"\n\t},\n\t{\n\t\t\"id\": \"powerhouse/subgraph\",\n\t\t\"name\": \"Subgraph Module\"\n\t},\n\t{\n\t\t\"id\": \"powerhouse/processor\",\n\t\t\"name\": \"Processor Module\"\n\t},\n\t{\n\t\t\"id\": \"powerhouse/app\",\n\t\t\"name\": \"App Module\"\n\t}\n];\nvar apps = [{\n\t\"id\": \"vetra-drive-app\",\n\t\"name\": \"Vetra Drive App\"\n}];\nvar editors = [\n\t{\n\t\t\"id\": \"vetra-package-editor\",\n\t\t\"name\": \"Vetra Package Editor\",\n\t\t\"documentTypes\": [\"powerhouse/package\"]\n\t},\n\t{\n\t\t\"id\": \"document-editor-editor\",\n\t\t\"name\": \"Document Editor\",\n\t\t\"documentTypes\": [\"powerhouse/document-editor\"]\n\t},\n\t{\n\t\t\"id\": \"subgraph-module-editor\",\n\t\t\"name\": \"Subgraph Module Editor\",\n\t\t\"documentTypes\": [\"powerhouse/subgraph\"]\n\t},\n\t{\n\t\t\"id\": \"processor-module-editor\",\n\t\t\"name\": \"Processor Module Editor\",\n\t\t\"documentTypes\": [\"powerhouse/processor\"]\n\t},\n\t{\n\t\t\"id\": \"app-editor\",\n\t\t\"name\": \"App Editor\",\n\t\t\"documentTypes\": [\"powerhouse/app\"]\n\t}\n];\nvar processors = [{\n\t\"id\": \"codegen\",\n\t\"name\": \"codegen\"\n}, {\n\t\"id\": \"vetra-read-model\",\n\t\"name\": \"vetra-read-model\"\n}];\nvar subgraphs = [];\nvar config = [];\nvar powerhouse_manifest_default = {\n\tname,\n\tdescription,\n\tcategory,\n\tpublisher,\n\tdocumentModels,\n\tapps,\n\teditors,\n\tprocessors,\n\tsubgraphs,\n\tconfig\n};\n//#endregion\nexport { apps, category, config, powerhouse_manifest_default as default, description, documentModels, editors, name, processors, publisher, subgraphs };\n\n//# sourceMappingURL=powerhouse.manifest.js.map","import { t as __exportAll } from \"./chunk-pbuEa-1d.js\";\nimport { f as reducer, p as actions, r as utils$1 } from \"./utils-CkWB3DRk.js\";\nimport { createState, defaultBaseState } from \"document-model\";\n//#region document-models/processor-module/v1/gen/document-model.ts\nconst documentModel = {\n\tid: \"powerhouse/processor\",\n\tname: \"Processor Module\",\n\tauthor: {\n\t\tname: \"Powerhouse\",\n\t\twebsite: \"https://powerhouse.inc\"\n\t},\n\textension: \".processor\",\n\tdescription: \"Declares a processor (a server-side function that reacts to document operations to build read models, send notifications, sync to external systems, etc.) shipped by a Vetra Reactor Package. Create one Processor Module document per processor: pick the processor type, list the document types it subscribes to, attach it to any drive apps that should run it, and mark it CONFIRMED to trigger codegen of the processor scaffold under `processors/`.\",\n\tspecifications: [{\n\t\tstate: {\n\t\t\tlocal: {\n\t\t\t\tschema: \"\",\n\t\t\t\texamples: [],\n\t\t\t\tinitialValue: \"\"\n\t\t\t},\n\t\t\tglobal: {\n\t\t\t\tschema: \"\\\"\\\"\\\"\\nConfiguration for a processor contributed by the package. A processor receives\\noperations from documents of matching types and runs server-side logic (e.g.\\nbuilding a read model, indexing, syncing to an external system).\\n\\\"\\\"\\\"\\ntype ProcessorModuleState {\\n \\\"\\\"\\\"Display name of the processor. Also determines the generated folder name under `processors/`.\\\"\\\"\\\"\\n name: String!\\n \\\"\\\"\\\"Processor implementation kind (e.g. 'read-model', 'relational-db'). Determines which scaffold codegen emits.\\\"\\\"\\\"\\n type: String!\\n \\\"\\\"\\\"Document types this processor subscribes to. Each entry has a stable id so it can be removed individually.\\\"\\\"\\\"\\n documentTypes: [DocumentTypeItem!]!\\n \\\"\\\"\\\"Lifecycle status. While DRAFT the processor definition is editable and codegen is skipped; switching to CONFIRMED triggers scaffold generation.\\\"\\\"\\\"\\n status: StatusType!\\n \\\"\\\"\\\"Drive-app names this processor is attached to. The processor runs in the context of each listed app.\\\"\\\"\\\"\\n processorApps: [String!]!\\n}\\n\\n\\\"\\\"\\\"A document type id (e.g. 'my-org/invoice') attached to the processor with a stable entry id.\\\"\\\"\\\"\\ntype DocumentTypeItem {\\n \\\"\\\"\\\"Stable identifier for the entry; used to remove it.\\\"\\\"\\\"\\n id: OID!\\n \\\"\\\"\\\"Document type id this processor subscribes to.\\\"\\\"\\\"\\n documentType: String!\\n}\\n\\n\\\"\\\"\\\"\\nLifecycle status of a module definition.\\n- DRAFT: still being edited; codegen does not run.\\n- CONFIRMED: locked in; codegen produces the corresponding scaffold.\\n\\\"\\\"\\\"\\nenum StatusType {\\n DRAFT\\n CONFIRMED\\n}\",\n\t\t\t\texamples: [],\n\t\t\t\tinitialValue: \"{\\n \\\"name\\\": \\\"\\\",\\n \\\"type\\\": \\\"\\\",\\n \\\"documentTypes\\\": [],\\n \\\"status\\\": \\\"DRAFT\\\",\\n \\\"processorApps\\\": []\\n}\"\n\t\t\t}\n\t\t},\n\t\tmodules: [{\n\t\t\tid: \"91ad39c1-4e8b-4127-b3c8-e835b85e6360\",\n\t\t\tname: \"base_operations\",\n\t\t\tdescription: \"Set the processor's identity, kind, lifecycle status, subscribed document types, and attached drive apps.\",\n\t\t\toperations: [\n\t\t\t\t{\n\t\t\t\t\tid: \"6f3a5c90-39f2-4302-a073-6195a71c5054\",\n\t\t\t\t\tname: \"SET_PROCESSOR_NAME\",\n\t\t\t\t\tdescription: \"Set the display name of the processor. Also determines the generated folder name under `processors/`.\",\n\t\t\t\t\tschema: \"input SetProcessorNameInput {\\n name: String!\\n}\",\n\t\t\t\t\ttemplate: \"\",\n\t\t\t\t\treducer: \"\",\n\t\t\t\t\terrors: [],\n\t\t\t\t\texamples: [],\n\t\t\t\t\tscope: \"global\"\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tid: \"b8f28bb4-c6ae-40e6-86fa-29ef14ff8667\",\n\t\t\t\t\tname: \"SET_PROCESSOR_TYPE\",\n\t\t\t\t\tdescription: \"Set the processor implementation kind (e.g. 'read-model', 'relational-db'). Determines which scaffold codegen emits.\",\n\t\t\t\t\tschema: \"input SetProcessorTypeInput {\\n type: String!\\n}\",\n\t\t\t\t\ttemplate: \"\",\n\t\t\t\t\treducer: \"\",\n\t\t\t\t\terrors: [],\n\t\t\t\t\texamples: [],\n\t\t\t\t\tscope: \"global\"\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tid: \"fbbd7a71-c495-4efc-b8f6-1e57798dbbb4\",\n\t\t\t\t\tname: \"ADD_DOCUMENT_TYPE\",\n\t\t\t\t\tdescription: \"Subscribe the processor to a document type. Caller supplies a stable id so the entry can be removed later.\",\n\t\t\t\t\tschema: \"input AddDocumentTypeInput {\\n id: OID!\\n documentType: String!\\n}\",\n\t\t\t\t\ttemplate: \"\",\n\t\t\t\t\treducer: \"\",\n\t\t\t\t\terrors: [],\n\t\t\t\t\texamples: [],\n\t\t\t\t\tscope: \"global\"\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tid: \"544d413f-423c-4d97-9570-84a19bffeab9\",\n\t\t\t\t\tname: \"REMOVE_DOCUMENT_TYPE\",\n\t\t\t\t\tdescription: \"Unsubscribe the processor from a document type by removing its entry id.\",\n\t\t\t\t\tschema: \"input RemoveDocumentTypeInput {\\n id: OID!\\n}\",\n\t\t\t\t\ttemplate: \"\",\n\t\t\t\t\treducer: \"\",\n\t\t\t\t\terrors: [],\n\t\t\t\t\texamples: [],\n\t\t\t\t\tscope: \"global\"\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tid: \"df5eb500-7308-498c-9b80-028878ee198b\",\n\t\t\t\t\tname: \"ADD_PROCESSOR_APP\",\n\t\t\t\t\tdescription: \"Attach the processor to a drive app by name. The processor will run in the context of that app.\",\n\t\t\t\t\tschema: \"input AddProcessorAppInput {\\n processorApp: String!\\n}\",\n\t\t\t\t\ttemplate: \"\",\n\t\t\t\t\treducer: \"\",\n\t\t\t\t\terrors: [],\n\t\t\t\t\texamples: [],\n\t\t\t\t\tscope: \"global\"\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tid: \"07e4168f-1a7b-41ef-953d-219028be7bb9\",\n\t\t\t\t\tname: \"REMOVE_PROCESSOR_APP\",\n\t\t\t\t\tdescription: \"Detach the processor from a drive app by name. No-op if the app is not currently attached.\",\n\t\t\t\t\tschema: \"input RemoveProcessorAppInput {\\n processorApp: String!\\n}\",\n\t\t\t\t\ttemplate: \"\",\n\t\t\t\t\treducer: \"\",\n\t\t\t\t\terrors: [],\n\t\t\t\t\texamples: [],\n\t\t\t\t\tscope: \"global\"\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tid: \"7b6706eb-5e25-4d64-829a-e3a251380fd1\",\n\t\t\t\t\tname: \"SET_PROCESSOR_STATUS\",\n\t\t\t\t\tdescription: \"Move the processor between DRAFT and CONFIRMED. Codegen only runs once the status is CONFIRMED.\",\n\t\t\t\t\tschema: \"input SetProcessorStatusInput {\\n status: StatusType!\\n}\",\n\t\t\t\t\ttemplate: \"\",\n\t\t\t\t\treducer: \"\",\n\t\t\t\t\terrors: [],\n\t\t\t\t\texamples: [],\n\t\t\t\t\tscope: \"global\"\n\t\t\t\t}\n\t\t\t]\n\t\t}],\n\t\tversion: 1,\n\t\tchangeLog: []\n\t}]\n};\n//#endregion\n//#region document-models/processor-module/v1/src/utils.ts\nvar utils_exports = /* @__PURE__ */ __exportAll({});\n//#endregion\n//#region document-models/processor-module/v1/utils.ts\n/** Utils for the ProcessorModule document model */\nconst utils = {\n\t...utils$1,\n\t...utils_exports\n};\n//#endregion\n//#region document-models/processor-module/v1/module.ts\n/** Document model module for the ProcessorModule document type */\nconst ProcessorModule = {\n\tversion: 1,\n\treducer,\n\tactions,\n\tutils,\n\tdocumentModel: createState(defaultBaseState(), documentModel)\n};\n//#endregion\nexport { utils as n, documentModel as r, ProcessorModule as t };\n\n//# sourceMappingURL=module-mtR8W4L4.js.map","import { t as __exportAll } from \"./chunk-pbuEa-1d.js\";\nimport { f as reducer, p as actions, r as utils$1 } from \"./utils-BiV3cs9Y.js\";\nimport { createState, defaultBaseState } from \"document-model\";\n//#region document-models/subgraph-module/v1/gen/document-model.ts\nconst documentModel = {\n\tid: \"powerhouse/subgraph\",\n\tname: \"Subgraph Module\",\n\tauthor: {\n\t\tname: \"Powerhouse\",\n\t\twebsite: \"https://powerhouse.inc\"\n\t},\n\textension: \".subgraph\",\n\tdescription: \"Declares a GraphQL subgraph (a slice of the Switchboard API contributed by the package) shipped by a Vetra Reactor Package. Create one Subgraph Module document per subgraph, then mark it CONFIRMED to trigger codegen of the subgraph scaffold under `subgraphs/` — the resolvers and schema you flesh out there are stitched into the Switchboard graph at runtime.\",\n\tspecifications: [{\n\t\tstate: {\n\t\t\tlocal: {\n\t\t\t\tschema: \"\",\n\t\t\t\texamples: [],\n\t\t\t\tinitialValue: \"\"\n\t\t\t},\n\t\t\tglobal: {\n\t\t\t\tschema: \"\\\"\\\"\\\"\\nConfiguration for a GraphQL subgraph contributed by the package. The subgraph\\nis served by Switchboard and stitched into the unified Powerhouse API.\\n\\\"\\\"\\\"\\ntype SubgraphModuleState {\\n \\\"\\\"\\\"Display name of the subgraph. Also determines the generated folder name under `subgraphs/` and the route segment Switchboard mounts it at.\\\"\\\"\\\"\\n name: String!\\n \\\"\\\"\\\"Lifecycle status. While DRAFT the subgraph definition is editable and codegen is skipped; switching to CONFIRMED triggers scaffold generation.\\\"\\\"\\\"\\n status: StatusType!\\n}\\n\\n\\\"\\\"\\\"\\nLifecycle status of a module definition.\\n- DRAFT: still being edited; codegen does not run.\\n- CONFIRMED: locked in; codegen produces the corresponding scaffold.\\n\\\"\\\"\\\"\\nenum StatusType {\\n DRAFT\\n CONFIRMED\\n}\",\n\t\t\t\texamples: [],\n\t\t\t\tinitialValue: \"{\\n \\\"name\\\": \\\"\\\",\\n \\\"status\\\": \\\"DRAFT\\\"\\n}\"\n\t\t\t}\n\t\t},\n\t\tmodules: [{\n\t\t\tid: \"8af5bda9-6fc7-4427-bfed-1d32d76a552f\",\n\t\t\tname: \"base_operations\",\n\t\t\tdescription: \"Set the subgraph's identity and lifecycle status.\",\n\t\t\toperations: [{\n\t\t\t\tid: \"d7cd6b6b-01ea-42c8-97e2-288e04b50b42\",\n\t\t\t\tname: \"SET_SUBGRAPH_NAME\",\n\t\t\t\tdescription: \"Set the display name of the subgraph. Also determines the generated folder under `subgraphs/` and the route segment Switchboard mounts it at.\",\n\t\t\t\tschema: \"input SetSubgraphNameInput {\\n name: String!\\n}\",\n\t\t\t\ttemplate: \"\",\n\t\t\t\treducer: \"\",\n\t\t\t\terrors: [],\n\t\t\t\texamples: [],\n\t\t\t\tscope: \"global\"\n\t\t\t}, {\n\t\t\t\tid: \"5a20e641-dc36-428e-8924-ecb07f3f1b94\",\n\t\t\t\tname: \"SET_SUBGRAPH_STATUS\",\n\t\t\t\tdescription: \"Move the subgraph between DRAFT and CONFIRMED. Codegen only runs once the status is CONFIRMED.\",\n\t\t\t\tschema: \"input SetSubgraphStatusInput {\\n status: StatusType!\\n}\",\n\t\t\t\ttemplate: \"\",\n\t\t\t\treducer: \"\",\n\t\t\t\terrors: [],\n\t\t\t\texamples: [],\n\t\t\t\tscope: \"global\"\n\t\t\t}]\n\t\t}],\n\t\tversion: 1,\n\t\tchangeLog: []\n\t}]\n};\n//#endregion\n//#region document-models/subgraph-module/v1/src/utils.ts\nvar utils_exports = /* @__PURE__ */ __exportAll({});\n//#endregion\n//#region document-models/subgraph-module/v1/utils.ts\n/** Utils for the SubgraphModule document model */\nconst utils = {\n\t...utils$1,\n\t...utils_exports\n};\n//#endregion\n//#region document-models/subgraph-module/v1/module.ts\n/** Document model module for the SubgraphModule document type */\nconst SubgraphModule = {\n\tversion: 1,\n\treducer,\n\tactions,\n\tutils,\n\tdocumentModel: createState(defaultBaseState(), documentModel)\n};\n//#endregion\nexport { utils as n, documentModel as r, SubgraphModule as t };\n\n//# sourceMappingURL=module-C0jUPu9F.js.map","import { lazy } from \"react\";\n//#region editors/app-editor/module.ts\n/** Document editor module for the \"powerhouse/app\" document type */\nconst AppEditor = {\n\tComponent: lazy(() => import(\"./editor-CVCLxUhe.js\")),\n\tdocumentTypes: [\"powerhouse/app\"],\n\tconfig: {\n\t\tid: \"app-editor\",\n\t\tname: \"AppEditor\"\n\t}\n};\n//#endregion\n//#region editors/document-editor/module.ts\n/** Document editor module for the \"powerhouse/document-editor\" document type */\nconst DocumentEditorEditor = {\n\tComponent: lazy(() => import(\"./editor-DnG2Zzet.js\")),\n\tdocumentTypes: [\"powerhouse/document-editor\"],\n\tconfig: {\n\t\tid: \"document-editor-editor\",\n\t\tname: \"Document Editor Editor\"\n\t}\n};\n//#endregion\n//#region editors/processor-editor/module.ts\n/** Document editor module for the \"powerhouse/processor\" document type */\nconst ProcessorModuleEditor = {\n\tComponent: lazy(() => import(\"./editor-B560eld_.js\")),\n\tdocumentTypes: [\"powerhouse/processor\"],\n\tconfig: {\n\t\tid: \"processor-module-editor\",\n\t\tname: \"Processor Module Editor\"\n\t}\n};\n//#endregion\n//#region editors/subgraph-editor/module.ts\n/** Document editor module for the \"powerhouse/subgraph\" document type */\nconst SubgraphModuleEditor = {\n\tComponent: lazy(() => import(\"./editor-CAVHtR-v.js\")),\n\tdocumentTypes: [\"powerhouse/subgraph\"],\n\tconfig: {\n\t\tid: \"subgraph-module-editor\",\n\t\tname: \"Subgraph Module Editor\"\n\t}\n};\n//#endregion\n//#region editors/vetra-drive-app/module.ts\nconst VetraDriveApp = {\n\tComponent: lazy(() => import(\"./editor-mor7dV6n.js\")),\n\tdocumentTypes: [\"powerhouse/document-drive\"],\n\tconfig: {\n\t\tid: \"vetra-drive-app\",\n\t\tname: \"Vetra Drive App\"\n\t}\n};\n//#endregion\n//#region editors/vetra-package/module.ts\n/** Document editor module for the \"powerhouse/package\" document type */\nconst VetraPackageEditor = {\n\tComponent: lazy(() => import(\"./editor-xCnDas6c.js\")),\n\tdocumentTypes: [\"powerhouse/package\"],\n\tconfig: {\n\t\tid: \"vetra-package-editor\",\n\t\tname: \"Vetra Package Editor\"\n\t}\n};\n//#endregion\nexport { DocumentEditorEditor as a, ProcessorModuleEditor as i, VetraDriveApp as n, AppEditor as o, SubgraphModuleEditor as r, VetraPackageEditor as t };\n\n//# sourceMappingURL=module-DySsSIQV.js.map","import powerhouse_manifest_default from \"./powerhouse.manifest.js\";\nimport { t as AppModule } from \"./module-CRq_lUkG.js\";\nimport { t as DocumentEditor } from \"./module-DP3bVbak.js\";\nimport { t as ProcessorModule } from \"./module-mtR8W4L4.js\";\nimport { t as SubgraphModule } from \"./module-C0jUPu9F.js\";\nimport { t as VetraPackage } from \"./module-1hr_ne9w.js\";\nimport { a as DocumentEditorEditor, i as ProcessorModuleEditor, n as VetraDriveApp, o as AppEditor, r as SubgraphModuleEditor, t as VetraPackageEditor } from \"./module-DySsSIQV.js\";\n//#region document-models/document-models.ts\n/**\n* WARNING: DO NOT EDIT\n* This file is auto-generated and updated by codegen\n*/\nconst documentModels = [\n\tAppModule,\n\tDocumentEditor,\n\tProcessorModule,\n\tSubgraphModule,\n\tVetraPackage\n];\n//#endregion\n//#region editors/editors.ts\nconst editors = [\n\tAppEditor,\n\tDocumentEditorEditor,\n\tProcessorModuleEditor,\n\tSubgraphModuleEditor,\n\tVetraDriveApp,\n\tVetraPackageEditor\n];\n//#endregion\n//#region index.ts\nconst manifest = powerhouse_manifest_default;\n//#endregion\nexport { documentModels, editors, manifest };\n\n//# sourceMappingURL=index.js.map","\n!function(){try{var e=\"undefined\"!=typeof window?window:\"undefined\"!=typeof global?global:\"undefined\"!=typeof globalThis?globalThis:\"undefined\"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]=\"d17abc36-680f-59c7-9a6f-834f46f065ea\")}catch(e){}}();\nimport { n as getRuntimeConfig } from \"./runtime-config-DL3QjcfM.js\";\nimport { n as buildPHGlobalConfig, o as phGlobalConfig } from \"./connect.config-Bt4pvvWV.js\";\nimport { a as loadPGliteModule, g as RELATIONAL_PGLITE_NAME, h as REACTOR_PGLITE_NAME, n as detectRelationalPgMajor, s as resolvePgMajorForRuntime, t as detectReactorPgMajor } from \"./pglite-runtime-Ch2YeUAA.js\";\nimport { n as toast } from \"./toast-BEy42aYx.js\";\nimport { createRelationalDb } from \"@powerhousedao/shared/processors\";\nimport { BrowserLocalStorage, ChannelScheme, DocumentCache, DocumentChangeType, ReactorBuilder, ReactorClientBuilder, RegistryClient, addPHEventHandlers, addRemoteDrive, createAnalyticsStore, extractDriveSlugFromPath, extractNodeSlugFromPath, getDrives, login, refreshReactorDataClient, setAttachmentService, setDefaultPHGlobalConfig, setDocumentCache, setDriveMetadata, setDrives, setFeatures, setPHToast, setPackageDiscoveryService, setReactorClient, setReactorClientModule, setRenown, setSelectedDrive, setSelectedNode, setVetraPackageManager, waitForDocumentReady } from \"@powerhousedao/reactor-browser\";\nimport { ConsoleLogger, logger, setLogLevel as setLogLevel$1 } from \"document-model\";\nimport { BrowserKeyStorage, RenownBuilder, RenownCryptoBuilder, createSignatureVerifier } from \"@renown/sdk\";\nimport { Kysely } from \"kysely\";\nimport { PGliteDialect } from \"kysely-pglite-dialect\";\nimport { createAttachmentClient, createRemoteAttachmentService } from \"@powerhousedao/reactor-attachments/client\";\nimport { OpenFeature } from \"@openfeature/web-sdk\";\nimport * as common from \"@powerhousedao/powerhouse-vetra-packages\";\nimport commonPkg from \"@powerhousedao/powerhouse-vetra-packages/package.json\" with { type: \"json\" };\nimport * as vetra from \"@powerhousedao/vetra\";\nimport vetraPkg from \"@powerhousedao/vetra/package.json\" with { type: \"json\" };\n//#region src/utils/reactor.ts\n/**\n* Creates a Reactor that plugs into legacy storage but syncs through the new\n* Reactor GQL API.\n*/\nasync function createBrowserReactor(documentModelModules, upgradeManifests, renown, documentModelLoader) {\n\tconst signerConfig = {\n\t\tsigner: renown.signer,\n\t\tverifier: createSignatureVerifier()\n\t};\n\tconst jwtHandler = async (_url) => {\n\t\tif (!renown.user) return;\n\t\treturn renown.getBearerToken({ expiresIn: 10 });\n\t};\n\tconst major = resolvePgMajorForRuntime(await detectReactorPgMajor());\n\tif (major !== 17) console.warn(`[reactor] Running against legacy PGlite data dir (Postgres ${major}). Migrate to PG17 from the banner or the Inspector → Debug tab.`);\n\tconst { PGlite } = await loadPGliteModule(major);\n\tconst pg = new PGlite(`idb://${REACTOR_PGLITE_NAME}`, { relaxedDurability: true });\n\tconst logger = new ConsoleLogger([\"reactor-client\"]);\n\tconst builder = new ReactorClientBuilder().withLogger(logger).withSigner(signerConfig).withReactorBuilder(new ReactorBuilder().withDocumentModels(documentModelModules).withUpgradeManifests(upgradeManifests).withChannelScheme(ChannelScheme.CONNECT).withJwtHandler(jwtHandler).withKysely(new Kysely({ dialect: new PGliteDialect(pg) })));\n\tif (documentModelLoader) builder.withDocumentModelLoader(documentModelLoader);\n\treturn {\n\t\t...await builder.buildModule(),\n\t\tpg\n\t};\n}\nfunction getDefaultDrives(runtimeConfig) {\n\treturn runtimeConfig.connect.drives?.defaultDrives ?? [];\n}\n/**\n* A drive add failed because the switchboard rejected the (anonymous or\n* unverified) caller — Forbidden/Unauthorized — rather than a transient\n* reachability error. Drives the login prompt instead of retrying.\n*/\nfunction isDriveAuthError(error) {\n\tconst message = error instanceof Error ? error.message : String(error);\n\treturn /forbidden|unauthorized|insufficient permissions|\\b401\\b|\\b403\\b/i.test(message);\n}\n/**\n* Add default drives for the new reactor via sync manager.\n*\n* Drives register concurrently so a slow or unreachable drive can't delay the\n* others — in particular the one the URL slug resolves to. Retries with linear\n* backoff to handle the common race where Connect's dev server is ready before\n* the switchboard has finished binding its port.\n*\n* @param drives - Array of drive objects with url, optional name and icon\n*/\nasync function addDefaultDrivesForNewReactor(drives) {\n\tconst MAX_ATTEMPTS = 3;\n\tconst BACKOFF_MS = 2e3;\n\tawait Promise.all(drives.map(async (drive) => {\n\t\tlet driveId;\n\t\tfor (let attempt = 1; attempt <= MAX_ATTEMPTS; attempt++) try {\n\t\t\tdriveId = await addRemoteDrive(drive.url);\n\t\t\tbreak;\n\t\t} catch (error) {\n\t\t\tif (isDriveAuthError(error)) break;\n\t\t\tif (attempt === MAX_ATTEMPTS) console.error(`Failed to add default drive ${drive.url} after ${MAX_ATTEMPTS} attempts:`, error);\n\t\t\telse {\n\t\t\t\tconst delay = BACKOFF_MS * attempt;\n\t\t\t\tconsole.warn(`Default drive ${drive.url} not reachable (attempt ${attempt}/${MAX_ATTEMPTS}), retrying in ${delay}ms...`);\n\t\t\t\tawait new Promise((resolve) => setTimeout(resolve, delay));\n\t\t\t}\n\t\t}\n\t\tif (driveId && (drive.name || drive.icon)) try {\n\t\t\tconst reactorClient = window.ph?.reactorClient;\n\t\t\tif (reactorClient) await waitForDocumentReady(reactorClient, driveId, { timeoutMs: 15e3 });\n\t\t\tawait setDriveMetadata(driveId, {\n\t\t\t\tname: drive.name,\n\t\t\t\ticon: drive.icon\n\t\t\t});\n\t\t} catch (error) {\n\t\t\tconsole.warn(`Default drive ${drive.url} was added but metadata update failed:`, error);\n\t\t}\n\t}));\n}\n//#endregion\n//#region src/feature-flags.ts\n/**\n* QueryParamProvider reads feature flags from URL query parameters.\n*\n* Usage:\n* const params = new URLSearchParams(window.location.search);\n* const provider = new QueryParamProvider(params);\n* await OpenFeature.setProviderAndWait(provider);\n*\n* Query parameter format:\n* ?FEATURE_DUAL_ACTION_CREATE_ENABLED=true&FEATURE_FOO=false\n*/\nvar QueryParamProvider = class {\n\trunsOn = \"client\";\n\tmetadata = { name: \"QueryParamProvider\" };\n\tflags;\n\tconstructor(searchParams) {\n\t\tthis.flags = /* @__PURE__ */ new Map();\n\t\tfor (const [key, value] of searchParams.entries()) this.flags.set(key, value);\n\t}\n\tresolveBooleanEvaluation(flagKey, defaultValue) {\n\t\tconst value = this.flags.get(flagKey);\n\t\tif (value === void 0) return {\n\t\t\tvalue: defaultValue,\n\t\t\treason: \"DEFAULT\"\n\t\t};\n\t\treturn {\n\t\t\tvalue: value.toLowerCase() === \"true\" || value === \"1\",\n\t\t\treason: \"STATIC\",\n\t\t\tvariant: value\n\t\t};\n\t}\n\tresolveStringEvaluation(flagKey, defaultValue) {\n\t\tconst value = this.flags.get(flagKey);\n\t\tif (value === void 0) return {\n\t\t\tvalue: defaultValue,\n\t\t\treason: \"DEFAULT\"\n\t\t};\n\t\treturn {\n\t\t\tvalue,\n\t\t\treason: \"STATIC\",\n\t\t\tvariant: value\n\t\t};\n\t}\n\tresolveNumberEvaluation(flagKey, defaultValue) {\n\t\tconst value = this.flags.get(flagKey);\n\t\tif (value === void 0) return {\n\t\t\tvalue: defaultValue,\n\t\t\treason: \"DEFAULT\"\n\t\t};\n\t\tconst numValue = Number(value);\n\t\tif (isNaN(numValue)) return {\n\t\t\tvalue: defaultValue,\n\t\t\treason: \"ERROR\",\n\t\t\terrorCode: \"PARSE_ERROR\",\n\t\t\terrorMessage: `Failed to parse \"${value}\" as a number`\n\t\t};\n\t\treturn {\n\t\t\tvalue: numValue,\n\t\t\treason: \"STATIC\",\n\t\t\tvariant: value\n\t\t};\n\t}\n\tresolveObjectEvaluation(flagKey, defaultValue) {\n\t\tconst value = this.flags.get(flagKey);\n\t\tif (value === void 0) return {\n\t\t\tvalue: defaultValue,\n\t\t\treason: \"DEFAULT\"\n\t\t};\n\t\ttry {\n\t\t\treturn {\n\t\t\t\tvalue: JSON.parse(value),\n\t\t\t\treason: \"STATIC\",\n\t\t\t\tvariant: value\n\t\t\t};\n\t\t} catch (error) {\n\t\t\treturn {\n\t\t\t\tvalue: defaultValue,\n\t\t\t\treason: \"ERROR\",\n\t\t\t\terrorCode: \"PARSE_ERROR\",\n\t\t\t\terrorMessage: `Failed to parse JSON: ${error instanceof Error ? error.message : String(error)}`\n\t\t\t};\n\t\t}\n\t}\n};\n/**\n* Initialize OpenFeature with the QueryParamProvider.\n* Reads feature flags from query parameters.\n*/\nasync function initFeatureFlags(searchParams) {\n\tconst params = searchParams ?? (typeof window !== \"undefined\" ? new URLSearchParams(window.location.search) : new URLSearchParams());\n\tconst provider = new QueryParamProvider(params);\n\tawait OpenFeature.setProviderAndWait(provider);\n\tconst features = /* @__PURE__ */ new Map();\n\tconst logLevelParam = params.get(\"LOG_LEVEL\");\n\tif (logLevelParam) {\n\t\tconst validLogLevels = [\n\t\t\t\"verbose\",\n\t\t\t\"debug\",\n\t\t\t\"info\",\n\t\t\t\"warn\",\n\t\t\t\"error\"\n\t\t];\n\t\tif (validLogLevels.includes(logLevelParam.toLowerCase())) {\n\t\t\tsetLogLevel$1(logLevelParam.toLowerCase());\n\t\t\tlogger.info(\"Log level set to @level via query param\", logLevelParam.toLowerCase());\n\t\t} else logger.warn(\"Invalid LOG_LEVEL query param: @param. Valid values: @validLevels\", logLevelParam, validLogLevels.join(\", \"));\n\t}\n\treturn features;\n}\n//#endregion\n//#region src/no-registry-discovery.ts\n/**\n* Discovery service used when no package registry is configured. Every load\n* for an unknown document type is recorded as a failure with reason\n* \"no-registry\" so the UI can surface the issue; the modal install flow is a\n* no-op because there is no registry to query.\n*/\nvar NoRegistryDiscoveryService = class {\n\t#packageManager;\n\t#failed = /* @__PURE__ */ new Map();\n\t#failedMemo = [];\n\t#failedSubscribers = /* @__PURE__ */ new Set();\n\t#eventSubscribers = /* @__PURE__ */ new Set();\n\tconstructor(packageManager) {\n\t\tthis.#packageManager = packageManager;\n\t}\n\tload(documentType) {\n\t\tconst existing = this.#findModuleInLoadedPackages(documentType);\n\t\tif (existing) {\n\t\t\tthis.#clearFailed(documentType);\n\t\t\treturn Promise.resolve(existing);\n\t\t}\n\t\tthis.#recordFailure(documentType);\n\t\treturn Promise.reject(/* @__PURE__ */ new Error(`No package registry configured; cannot resolve \"${documentType}\"`));\n\t}\n\tpromptInstallation() {}\n\tapproveInstallation() {\n\t\treturn Promise.resolve();\n\t}\n\tdismissInstallation() {}\n\tgetPendingInstallations() {\n\t\treturn [];\n\t}\n\tsubscribePending() {\n\t\treturn () => {};\n\t}\n\tgetFailedInstallations() {\n\t\treturn this.#failedMemo;\n\t}\n\tsubscribeFailed(listener) {\n\t\tthis.#failedSubscribers.add(listener);\n\t\treturn () => {\n\t\t\tthis.#failedSubscribers.delete(listener);\n\t\t};\n\t}\n\tsubscribeEvents(listener) {\n\t\tthis.#eventSubscribers.add(listener);\n\t\treturn () => {\n\t\t\tthis.#eventSubscribers.delete(listener);\n\t\t};\n\t}\n\tretryInstallation(documentType) {\n\t\tthis.#recordFailure(documentType);\n\t\treturn Promise.resolve();\n\t}\n\t#findModuleInLoadedPackages(documentType) {\n\t\treturn this.#packageManager.packages.flatMap((p) => p.documentModels).find((m) => m.documentModel.global.id === documentType);\n\t}\n\t#recordFailure(documentType) {\n\t\tthis.#failed.set(documentType, {\n\t\t\tdocumentType,\n\t\t\treason: \"no-registry\",\n\t\t\tpackageNames: [],\n\t\t\terror: null\n\t\t});\n\t\tthis.#emitEvent({\n\t\t\ttype: \"load-failed\",\n\t\t\tdocumentType,\n\t\t\treason: \"no-registry\"\n\t\t});\n\t\tthis.#notifyFailedChanged();\n\t}\n\t#clearFailed(documentType) {\n\t\tif (this.#failed.delete(documentType)) this.#notifyFailedChanged();\n\t}\n\t#notifyFailedChanged() {\n\t\tthis.#failedMemo = Array.from(this.#failed.values());\n\t\tfor (const listener of this.#failedSubscribers) listener();\n\t}\n\t#emitEvent(event) {\n\t\tfor (const listener of this.#eventSubscribers) listener(event);\n\t}\n};\n//#endregion\n//#region src/package-discovery.ts\nvar PackageDiscoveryService = class {\n\t#packageManager;\n\t#registryClient;\n\t#mode;\n\t#deferred = /* @__PURE__ */ new Map();\n\t#pending = /* @__PURE__ */ new Map();\n\t#pendingMemo = [];\n\t#pendingSubscribers = /* @__PURE__ */ new Set();\n\t#failed = /* @__PURE__ */ new Map();\n\t#failedMemo = [];\n\t#failedSubscribers = /* @__PURE__ */ new Set();\n\t#eventSubscribers = /* @__PURE__ */ new Set();\n\t#dismissedStorage;\n\t#discoveredTypes = /* @__PURE__ */ new Map();\n\tconstructor(packageManager, registryClient, options) {\n\t\tthis.#packageManager = packageManager;\n\t\tthis.#registryClient = registryClient;\n\t\tthis.#mode = options.mode;\n\t\tthis.#dismissedStorage = new BrowserLocalStorage(options.storageKey + \":PH_DISMISSED_TYPES\");\n\t}\n\tload(documentType) {\n\t\tconst existing = this.#findModuleInLoadedPackages(documentType);\n\t\tif (existing) {\n\t\t\tthis.#clearFailed(documentType);\n\t\t\treturn Promise.resolve(existing);\n\t\t}\n\t\tif (this.#dismissedStorage.has(documentType)) {\n\t\t\tthis.#recordFailure(documentType, \"dismissed\", [], null);\n\t\t\treturn Promise.reject(/* @__PURE__ */ new Error(`Document type \"${documentType}\" was dismissed`));\n\t\t}\n\t\tconst tracked = this.#deferred.get(documentType);\n\t\tif (tracked) return tracked.promise;\n\t\treturn this.#discover(documentType);\n\t}\n\tpromptInstallation(documentType) {\n\t\tconst packageNames = this.#discoveredTypes.get(documentType);\n\t\tif (!packageNames) return;\n\t\tif (this.#pending.has(documentType)) return;\n\t\tthis.#discoveredTypes.delete(documentType);\n\t\tthis.#addToPending(documentType, packageNames);\n\t}\n\tasync approveInstallation(packageName) {\n\t\tconst affectedTypes = this.#findTypesByPackage(packageName);\n\t\tif (affectedTypes.length === 0) return;\n\t\tconst result = await this.#packageManager.addPackage(packageName);\n\t\tif (result.type === \"error\") {\n\t\t\tthis.#emitEvent({\n\t\t\t\ttype: \"installation-failed\",\n\t\t\t\tpackageName,\n\t\t\t\terror: result.error\n\t\t\t});\n\t\t\tfor (const documentType of affectedTypes) {\n\t\t\t\tconst entry = this.#deferred.get(documentType);\n\t\t\t\tif (entry) {\n\t\t\t\t\tentry.reject(result.error);\n\t\t\t\t\tthis.#deferred.delete(documentType);\n\t\t\t\t\tthis.#pending.delete(documentType);\n\t\t\t\t}\n\t\t\t\tthis.#recordFailure(documentType, \"install-failed\", [packageName], result.error);\n\t\t\t}\n\t\t\tthis.#notifyPendingChanged();\n\t\t\treturn;\n\t\t}\n\t\tthis.#emitEvent({\n\t\t\ttype: \"installation-approved\",\n\t\t\tpackageName,\n\t\t\tdocumentTypes: affectedTypes\n\t\t});\n\t\tfor (const documentType of affectedTypes) {\n\t\t\tconst entry = this.#deferred.get(documentType);\n\t\t\tif (!entry) continue;\n\t\t\tconst module = this.#findModuleInLoadedPackages(documentType);\n\t\t\tif (module) {\n\t\t\t\tentry.resolve(module);\n\t\t\t\tthis.#clearFailed(documentType);\n\t\t\t} else {\n\t\t\t\tconst error = /* @__PURE__ */ new Error(`Package \"${packageName}\" installed but module for \"${documentType}\" not found`);\n\t\t\t\tentry.reject(error);\n\t\t\t\tthis.#recordFailure(documentType, \"install-failed\", [packageName], error);\n\t\t\t}\n\t\t\tthis.#deferred.delete(documentType);\n\t\t\tthis.#pending.delete(documentType);\n\t\t}\n\t\tthis.#notifyPendingChanged();\n\t}\n\tdismissInstallation(packageName) {\n\t\tconst affectedTypes = this.#findTypesByPackage(packageName);\n\t\tif (affectedTypes.length === 0) return;\n\t\tfor (const documentType of affectedTypes) {\n\t\t\tthis.#dismissedStorage.set(documentType, true);\n\t\t\tconst entry = this.#deferred.get(documentType);\n\t\t\tif (entry) entry.reject(/* @__PURE__ */ new Error(`Document type \"${documentType}\" was dismissed`));\n\t\t\tthis.#deferred.delete(documentType);\n\t\t\tthis.#pending.delete(documentType);\n\t\t\tthis.#discoveredTypes.delete(documentType);\n\t\t\tthis.#recordFailure(documentType, \"dismissed\", [packageName], null);\n\t\t}\n\t\tthis.#emitEvent({\n\t\t\ttype: \"installation-dismissed\",\n\t\t\tpackageName,\n\t\t\tdocumentTypes: affectedTypes\n\t\t});\n\t\tthis.#notifyPendingChanged();\n\t}\n\tgetPendingInstallations() {\n\t\treturn this.#pendingMemo;\n\t}\n\tsubscribePending(listener) {\n\t\tthis.#pendingSubscribers.add(listener);\n\t\treturn () => {\n\t\t\tthis.#pendingSubscribers.delete(listener);\n\t\t};\n\t}\n\tgetFailedInstallations() {\n\t\treturn this.#failedMemo;\n\t}\n\tsubscribeFailed(listener) {\n\t\tthis.#failedSubscribers.add(listener);\n\t\treturn () => {\n\t\t\tthis.#failedSubscribers.delete(listener);\n\t\t};\n\t}\n\tsubscribeEvents(listener) {\n\t\tthis.#eventSubscribers.add(listener);\n\t\treturn () => {\n\t\t\tthis.#eventSubscribers.delete(listener);\n\t\t};\n\t}\n\tasync retryInstallation(documentType) {\n\t\tthis.#dismissedStorage.delete(documentType);\n\t\tthis.#clearFailed(documentType);\n\t\ttry {\n\t\t\tawait this.#discover(documentType);\n\t\t} catch {}\n\t}\n\tasync #discover(documentType) {\n\t\tlet packageNames;\n\t\ttry {\n\t\t\tpackageNames = await this.#registryClient.getPackagesByDocumentType(documentType);\n\t\t} catch (error) {\n\t\t\tconst normalized = error instanceof Error ? error : new Error(String(error));\n\t\t\tthis.#emitEvent({\n\t\t\t\ttype: \"registry-query-failed\",\n\t\t\t\tdocumentType,\n\t\t\t\terror: normalized\n\t\t\t});\n\t\t\tthis.#recordFailure(documentType, \"registry-error\", [], normalized);\n\t\t\treturn Promise.reject(normalized);\n\t\t}\n\t\tif (packageNames.length === 0) {\n\t\t\tthis.#recordFailure(documentType, \"not-in-registry\", [], null);\n\t\t\treturn Promise.reject(/* @__PURE__ */ new Error(`No packages found for document type \"${documentType}\"`));\n\t\t}\n\t\tconst entry = this.#createDeferredEntry(documentType, packageNames);\n\t\tthis.#emitEvent({\n\t\t\ttype: \"type-discovered\",\n\t\t\tdocumentType,\n\t\t\tpackageNames\n\t\t});\n\t\tif (this.#mode === \"immediate\") this.#addToPending(documentType, packageNames);\n\t\telse this.#discoveredTypes.set(documentType, packageNames);\n\t\treturn entry.promise;\n\t}\n\t#createDeferredEntry(documentType, packageNames) {\n\t\tlet resolve;\n\t\tlet reject;\n\t\tconst promise = new Promise((res, rej) => {\n\t\t\tresolve = res;\n\t\t\treject = rej;\n\t\t});\n\t\tconst entry = {\n\t\t\tpackageNames,\n\t\t\tresolve,\n\t\t\treject,\n\t\t\tpromise\n\t\t};\n\t\tthis.#deferred.set(documentType, entry);\n\t\treturn entry;\n\t}\n\t#addToPending(documentType, packageNames) {\n\t\tconst installation = {\n\t\t\tdocumentType,\n\t\t\tpackageNames\n\t\t};\n\t\tthis.#pending.set(documentType, installation);\n\t\tthis.#emitEvent({\n\t\t\ttype: \"installation-prompted\",\n\t\t\tdocumentType,\n\t\t\tpackageNames\n\t\t});\n\t\tthis.#notifyPendingChanged();\n\t}\n\t#findModuleInLoadedPackages(documentType) {\n\t\treturn this.#packageManager.packages.flatMap((p) => p.documentModels).find((m) => m.documentModel.global.id === documentType);\n\t}\n\t#findTypesByPackage(packageName) {\n\t\tconst types = [];\n\t\tfor (const [documentType, entry] of this.#deferred) if (entry.packageNames.includes(packageName)) types.push(documentType);\n\t\treturn types;\n\t}\n\t#notifyPendingChanged() {\n\t\tthis.#pendingMemo = Array.from(this.#pending.values());\n\t\tfor (const listener of this.#pendingSubscribers) listener();\n\t}\n\t#notifyFailedChanged() {\n\t\tthis.#failedMemo = Array.from(this.#failed.values());\n\t\tfor (const listener of this.#failedSubscribers) listener();\n\t}\n\t#recordFailure(documentType, reason, packageNames, error) {\n\t\tthis.#failed.set(documentType, {\n\t\t\tdocumentType,\n\t\t\treason,\n\t\t\tpackageNames,\n\t\t\terror\n\t\t});\n\t\tthis.#emitEvent({\n\t\t\ttype: \"load-failed\",\n\t\t\tdocumentType,\n\t\t\treason\n\t\t});\n\t\tthis.#notifyFailedChanged();\n\t}\n\t#clearFailed(documentType) {\n\t\tif (this.#failed.delete(documentType)) this.#notifyFailedChanged();\n\t}\n\t#emitEvent(event) {\n\t\tfor (const listener of this.#eventSubscribers) listener(event);\n\t}\n};\n//#endregion\n//#region src/package-manager.ts\n/**\n* Strip any `@tag` / `@version` suffix from a package spec, returning the bare\n* package name. Mirrors `parsePackageSpec` on the UI side.\n*/\nfunction parseBareName(spec) {\n\tconst trimmed = spec.trim();\n\tconst at = trimmed.startsWith(\"@\") ? trimmed.lastIndexOf(\"@\") : trimmed.indexOf(\"@\");\n\treturn at > 0 ? trimmed.slice(0, at) : trimmed;\n}\nasync function fetchPackageJsonVersion(baseUrl) {\n\ttry {\n\t\tconst res = await fetch(baseUrl);\n\t\tif (!res.ok) return void 0;\n\t\tconst pkg = await res.json();\n\t\treturn typeof pkg.version === \"string\" ? pkg.version : void 0;\n\t} catch {\n\t\treturn;\n\t}\n}\nconst LOCAL_PACKAGE_NAME = \"Local\";\nvar BrowserPackageManager = class {\n\tregistryUrl;\n\t#storage;\n\t#packages = /* @__PURE__ */ new Map();\n\t#subscribers = /* @__PURE__ */ new Set();\n\t#packagesMemo = [];\n\t#stylesheets = /* @__PURE__ */ new Map();\n\t#localPackage;\n\t#cdnUrl;\n\t#localPackageVersion;\n\t#localPackageNames = new Set([LOCAL_PACKAGE_NAME]);\n\tconstructor(namespace, registryUrl) {\n\t\tthis.#storage = new BrowserLocalStorage(namespace + \":PH_PACKAGES\");\n\t\tthis.registryUrl = registryUrl;\n\t\tthis.#cdnUrl = registryUrl !== null ? this.#toCdnUrl(registryUrl) : null;\n\t}\n\t#toCdnUrl(baseUrl) {\n\t\tif (baseUrl.includes(\"/-/cdn\")) return baseUrl;\n\t\treturn `${baseUrl.endsWith(\"/\") ? baseUrl.slice(0, -1) : baseUrl}/-/cdn`;\n\t}\n\tasync init(localPackage, localPackageVersion) {\n\t\tthis.addLocalPackage(common.manifest.name, common, commonPkg.version);\n\t\tthis.addLocalPackage(vetra.manifest.name, vetra, vetraPkg.version);\n\t\tif (localPackage) this.updateLocalPackage(localPackage, localPackageVersion);\n\t\tfor (const packageName of this.#storage.keys()) {\n\t\t\tconst specForReload = this.#storage.get(packageName)?.spec ?? packageName;\n\t\t\tconsole.debug(`[Connect][PackageManager] Rehydrating \"${packageName}\" via spec \"${specForReload}\"`);\n\t\t\tif ((await this.addPackage(specForReload)).type === \"error\") this.#storage.delete(packageName);\n\t\t}\n\t}\n\taddLocalPackage(name, loadedPackage, version) {\n\t\tthis.#localPackageNames.add(name);\n\t\tthis.#registerPackage({\n\t\t\tname,\n\t\t\timportUrl: null,\n\t\t\tstylesheetUrl: null,\n\t\t\tloadedPackage,\n\t\t\tversion\n\t\t});\n\t}\n\tupdateLocalPackage(pkg, version) {\n\t\tconsole.debug(\"Updating local package:\", pkg);\n\t\tthis.#localPackage = pkg;\n\t\tthis.#registerPackage({\n\t\t\tname: LOCAL_PACKAGE_NAME,\n\t\t\tstylesheetUrl: null,\n\t\t\timportUrl: null,\n\t\t\tloadedPackage: pkg\n\t\t});\n\t\tif (version) {\n\t\t\tthis.#localPackageVersion = version;\n\t\t\tthis.#notifyPackagesChanged();\n\t\t\treturn;\n\t\t}\n\t\tfetchPackageJsonVersion(\"/package.json\").then((fetchedVersion) => {\n\t\t\tthis.#localPackageVersion = fetchedVersion;\n\t\t\tif (fetchedVersion) this.#notifyPackagesChanged();\n\t\t}).catch(() => {});\n\t}\n\tget packages() {\n\t\treturn this.#packagesMemo;\n\t}\n\tget cdnUrl() {\n\t\treturn this.#cdnUrl;\n\t}\n\tgetPackageSource(packageName) {\n\t\tif (this.#localPackageNames.has(packageName)) return \"common\";\n\t\tif (packageName === this.#localPackage?.manifest.name) return \"project\";\n\t\tconst packageMeta = this.#storage.get(packageName);\n\t\tif (!packageMeta) return null;\n\t\tif (packageMeta.importUrl === `/node_modules/${packageName}`) return \"local-install\";\n\t\treturn \"registry-install\";\n\t}\n\t/**\n\t* Return the registry-installed packages keyed by their storage name (which\n\t* is the registry spec, e.g. \"@powerhousedao/clint-common\"), with the\n\t* installed version when known. Excludes bundled (common) packages, the\n\t* local project package, and packages resolved out of `/node_modules/`.\n\t*/\n\tgetRegistryPackages() {\n\t\tconst out = [];\n\t\tfor (const [name, meta] of this.#storage) {\n\t\t\tif (this.#localPackageNames.has(name)) continue;\n\t\t\tif (name === LOCAL_PACKAGE_NAME) continue;\n\t\t\tif (meta.importUrl === `/node_modules/${name}`) continue;\n\t\t\tout.push({\n\t\t\t\tname,\n\t\t\t\tversion: meta.version\n\t\t\t});\n\t\t}\n\t\treturn out;\n\t}\n\tgetPackageVersion(packageName) {\n\t\tif (packageName === this.#localPackage?.manifest.name) return this.#localPackageVersion;\n\t\treturn this.#storage.get(packageName)?.version;\n\t}\n\tasync addPackage(packageSpec) {\n\t\tconst bareName = parseBareName(packageSpec);\n\t\tconst hasTagOrVersion = bareName !== packageSpec;\n\t\tconsole.debug(`[Connect][PackageManager] addPackage spec=\"${packageSpec}\" bareName=\"${bareName}\"`);\n\t\tconst existingPackage = this.#packages.get(bareName);\n\t\tif (existingPackage) {\n\t\t\tconst requestedVersion = hasTagOrVersion ? packageSpec.slice(bareName.length + 1) : void 0;\n\t\t\tconst currentVersion = this.#storage.get(bareName)?.version;\n\t\t\tif (this.#localPackageNames.has(bareName) || !requestedVersion || !currentVersion || requestedVersion === currentVersion) {\n\t\t\t\tconsole.debug(`[Connect][PackageManager] \"${bareName}\" already loaded; skipping re-fetch`);\n\t\t\t\treturn {\n\t\t\t\t\ttype: \"success\",\n\t\t\t\t\tpackage: existingPackage\n\t\t\t\t};\n\t\t\t}\n\t\t\tconsole.debug(`[Connect][PackageManager] \"${bareName}\" version bump ${currentVersion} → ${requestedVersion}; refetching`);\n\t\t}\n\t\ttry {\n\t\t\tconst packageWithMeta = await this.#loadPackage(packageSpec);\n\t\t\tpackageWithMeta.name = bareName;\n\t\t\tif (hasTagOrVersion) packageWithMeta.spec = packageSpec;\n\t\t\tif (existingPackage) this.#unmountStylesheet(bareName);\n\t\t\tthis.#registerPackage(packageWithMeta);\n\t\t\treturn {\n\t\t\t\ttype: \"success\",\n\t\t\t\tpackage: packageWithMeta.loadedPackage\n\t\t\t};\n\t\t} catch (error) {\n\t\t\tconst normalized = error instanceof Error ? error : new Error(String(error));\n\t\t\tconsole.error(`[Connect][PackageManager] Failed to install package \"${packageSpec}\": ${normalized.message}`, normalized);\n\t\t\treturn {\n\t\t\t\ttype: \"error\",\n\t\t\t\terror: normalized\n\t\t\t};\n\t\t}\n\t}\n\tasync addPackages(packageNames) {\n\t\tconst results = [];\n\t\tfor (const packageName of packageNames) {\n\t\t\tconst result = await this.addPackage(packageName);\n\t\t\tresults.push(result);\n\t\t}\n\t\treturn results;\n\t}\n\tremovePackage(name) {\n\t\tthis.#packages.delete(name);\n\t\tthis.#storage.delete(name);\n\t\tthis.#unmountStylesheet(name);\n\t\tthis.#notifyPackagesChanged();\n\t}\n\tsubscribe(handler) {\n\t\tthis.#subscribers.add(handler);\n\t\treturn () => {\n\t\t\tthis.#subscribers.delete(handler);\n\t\t};\n\t}\n\tload(documentType) {\n\t\tconst documentModelModule = Array.from(this.#packages.values().flatMap((p) => p.documentModels)).find((m) => m.documentModel.global.id === documentType);\n\t\tif (documentModelModule) return Promise.resolve(documentModelModule);\n\t\treturn Promise.reject(/* @__PURE__ */ new Error(\"Model not available\"));\n\t}\n\tasync #loadPackageFromNodeModules(name) {\n\t\tconst importUrl = `/node_modules/${name}/browser/index.js`;\n\t\tconst stylesheetUrl = `/node_modules/${name}/style.css`;\n\t\tconst packageWithMeta = await this.#importPackage({\n\t\t\tname,\n\t\t\timportUrl,\n\t\t\tstylesheetUrl\n\t\t});\n\t\tpackageWithMeta.version = await fetchPackageJsonVersion(`/node_modules/${name}/package.json`);\n\t\treturn packageWithMeta;\n\t}\n\tasync #loadPackageFromRegistry(name) {\n\t\tconst importUrl = `${this.#cdnUrl}/${name}/browser/index.js`;\n\t\tconst stylesheetUrl = `${this.#cdnUrl}/${name}/style.css`;\n\t\tconst packageWithMeta = await this.#importPackage({\n\t\t\tname,\n\t\t\timportUrl,\n\t\t\tstylesheetUrl\n\t\t});\n\t\tpackageWithMeta.version = await fetchPackageJsonVersion(`${this.#cdnUrl}/${name}/package.json`);\n\t\treturn packageWithMeta;\n\t}\n\tasync #importPackage(packageMeta) {\n\t\tconst { name, importUrl, stylesheetUrl } = packageMeta;\n\t\tif (!importUrl) throw new Error(`Import url not defined for package \"${name}\".`);\n\t\treturn {\n\t\t\tname,\n\t\t\tloadedPackage: await import(\n\t\t\t\t/* @vite-ignore */\n\t\t\t\timportUrl\n),\n\t\t\timportUrl,\n\t\t\tstylesheetUrl\n\t\t};\n\t}\n\tasync #loadPackage(packageName) {\n\t\tif (this.#localPackageNames.has(packageName)) throw new Error(`Package \"${packageName}\" is a local package and cannot be loaded dynamically.`);\n\t\tif (!import.meta.env.PROD) try {\n\t\t\treturn await this.#loadPackageFromNodeModules(packageName);\n\t\t} catch (error) {\n\t\t\tconsole.warn(`Failed to load package \"${packageName}\" from node_modules:`, error);\n\t\t}\n\t\tif (!this.registryUrl) throw new Error(\"Registry url not defined.\");\n\t\treturn await this.#loadPackageFromRegistry(packageName);\n\t}\n\t#registerPackage(packageWithMeta) {\n\t\tconst { name, loadedPackage, importUrl, stylesheetUrl, version, spec } = packageWithMeta;\n\t\tif (stylesheetUrl !== null) this.#mountStylesheet(name, stylesheetUrl);\n\t\tthis.#packages.set(name, loadedPackage);\n\t\tthis.#storage.set(name, {\n\t\t\tname,\n\t\t\timportUrl,\n\t\t\tstylesheetUrl,\n\t\t\tversion,\n\t\t\t...spec ? { spec } : {}\n\t\t});\n\t\tconsole.debug(`[Connect][PackageManager] Registered \"${name}\" (version=${version ?? \"?\"}, spec=${spec ?? \"—\"})`);\n\t\tthis.#notifyPackagesChanged();\n\t}\n\t#mountStylesheet(name, href) {\n\t\tconst existing = this.#stylesheets.get(name);\n\t\tif (existing) return existing;\n\t\tconst style = document.createElement(\"style\");\n\t\tstyle.textContent = `@import url(\"${href}\") layer(external-packages);`;\n\t\tdocument.head.appendChild(style);\n\t\tthis.#stylesheets.set(name, style);\n\t}\n\t#unmountStylesheet(name) {\n\t\tconst style = this.#stylesheets.get(name);\n\t\tif (!style) return;\n\t\tstyle.remove();\n\t\tthis.#stylesheets.delete(name);\n\t}\n\t#notifyPackagesChanged() {\n\t\tthis.#packagesMemo = Array.from(this.#packages.values());\n\t\tconst packages = this.packages;\n\t\tthis.#subscribers.forEach((handler) => {\n\t\t\thandler({ packages });\n\t\t});\n\t}\n};\n//#endregion\n//#region src/pglite.db.ts\nasync function createPGliteWorkerForMajor(major) {\n\tconst meta = { dbName: RELATIONAL_PGLITE_NAME };\n\tif (major === 16) {\n\t\tconst [legacyWorker, legacyLive] = await Promise.all([import(\"pglite-legacy-02/worker\"), import(\"pglite-legacy-02/live\")]);\n\t\tconst worker = new Worker(new URL(\"./pglite.worker.legacy.js\", import.meta.url), { type: \"module\" });\n\t\treturn legacyWorker.PGliteWorker.create(worker, {\n\t\t\tmeta,\n\t\t\textensions: { live: legacyLive.live }\n\t\t});\n\t}\n\tconst [{ PGliteWorker }, { live }] = await Promise.all([import(\"@electric-sql/pglite/worker\"), import(\"@electric-sql/pglite/live\")]);\n\tconst worker = new Worker(new URL(\"./pglite.worker.js\", import.meta.url), { type: \"module\" });\n\treturn PGliteWorker.create(worker, {\n\t\tmeta,\n\t\textensions: { live }\n\t});\n}\nasync function getDb() {\n\tconst major = resolvePgMajorForRuntime(await detectRelationalPgMajor());\n\tif (major !== 17) console.warn(`[reactor] Relational worker is opening legacy Postgres ${major} data dir. Migrate to PG17 from the banner or the Inspector → Debug tab.`);\n\tconst pgLite = await createPGliteWorkerForMajor(major);\n\treturn {\n\t\tpgLite,\n\t\trelationalDb: createRelationalDb(new Kysely({ dialect: new PGliteDialect(pgLite) }))\n\t};\n}\n//#endregion\n//#region src/store/processor-host-module.ts\nvar NullAttachmentService = class {\n\treserve() {\n\t\treturn Promise.reject(/* @__PURE__ */ new Error(\"NullAttachmentService: no attachment service configured\"));\n\t}\n\tstat() {\n\t\treturn Promise.reject(/* @__PURE__ */ new Error(\"NullAttachmentService: no attachment service configured\"));\n\t}\n\tget() {\n\t\treturn Promise.reject(/* @__PURE__ */ new Error(\"NullAttachmentService: no attachment service configured\"));\n\t}\n};\nasync function createProcessorHostModule(reactorClient, readModels, attachmentService) {\n\ttry {\n\t\tconst { pgLite, relationalDb } = await getDb();\n\t\tconst { store: analyticsStore } = await createAnalyticsStore({ pgLite });\n\t\treturn {\n\t\t\trelationalDb,\n\t\t\tanalyticsStore,\n\t\t\tprocessorApp: \"connect\",\n\t\t\tclient: reactorClient,\n\t\t\tattachments: createAttachmentClient(attachmentService ?? new NullAttachmentService()),\n\t\t\tdispatch: { async execute(docId, branch, actions, signal) {\n\t\t\t\tconst jobInfo = await reactorClient.executeAsync(docId, branch, actions, signal);\n\t\t\t\treturn {\n\t\t\t\t\tid: jobInfo.id,\n\t\t\t\t\tstatus: jobInfo.status\n\t\t\t\t};\n\t\t\t} },\n\t\t\tgetReadModel(name) {\n\t\t\t\tconst model = readModels.find((m) => m.name === name);\n\t\t\t\tif (!model) throw new Error(`Read model \"${name}\" not found`);\n\t\t\t\treturn model;\n\t\t\t}\n\t\t};\n\t} catch (error) {\n\t\tconsole.error(`Failed to initialize processor host module:`);\n\t\tconsole.error(error);\n\t}\n}\n//#endregion\n//#region src/store/reactor.ts\n/**\n* Subscribe to the `/__packages` SSE channel exposed by ph-clint's\n* static-mode `connect-server.js`. On each `packages-changed` event the\n* server sends the full live list; we diff against what the packageManager\n* already has loaded and call `addPackage`/`removePackage` to converge.\n*\n* Best-effort — silently no-ops when the SSE endpoint doesn't exist\n* (e.g. running under vite dev, or hosted somewhere without this protocol).\n*/\nfunction subscribeToPackagesChannel(packageManager) {\n\tif (typeof window === \"undefined\" || typeof EventSource === \"undefined\") return;\n\tlet source;\n\ttry {\n\t\tsource = new EventSource(\"/__packages\");\n\t} catch (err) {\n\t\tconsole.debug(\"[Connect] /__packages subscribe failed:\", err);\n\t\treturn;\n\t}\n\tlet firstEvent = true;\n\tsource.addEventListener(\"packages-changed\", (event) => {\n\t\ttry {\n\t\t\tconst payload = JSON.parse(event.data);\n\t\t\tif (!Array.isArray(payload.packages)) return;\n\t\t\tconst next = payload.packages.filter((p) => typeof p === \"string\");\n\t\t\tconst parseBare = (spec) => {\n\t\t\t\tconst at = spec.startsWith(\"@\") ? spec.lastIndexOf(\"@\") : spec.indexOf(\"@\");\n\t\t\t\tif (at > 0) return {\n\t\t\t\t\tbareName: spec.slice(0, at),\n\t\t\t\t\tversion: spec.slice(at + 1)\n\t\t\t\t};\n\t\t\t\treturn { bareName: spec };\n\t\t\t};\n\t\t\tconst currentByName = new Map(packageManager.getRegistryPackages().map(({ name, version }) => [name, version]));\n\t\t\tconst nextByName = /* @__PURE__ */ new Map();\n\t\t\tfor (const spec of next) {\n\t\t\t\tconst { bareName, version } = parseBare(spec);\n\t\t\t\tnextByName.set(bareName, version);\n\t\t\t}\n\t\t\tconst isFirst = firstEvent;\n\t\t\tfirstEvent = false;\n\t\t\tfor (const name of currentByName.keys()) if (!nextByName.has(name)) {\n\t\t\t\tpackageManager.removePackage(name);\n\t\t\t\tif (!isFirst) toast(`Removed package ${name}`, { type: \"connect-deleted\" });\n\t\t\t}\n\t\t\tfor (const spec of next) {\n\t\t\t\tconst { bareName, version } = parseBare(spec);\n\t\t\t\tconst currentVersion = currentByName.get(bareName);\n\t\t\t\tconst isKnown = currentByName.has(bareName);\n\t\t\t\tif (isKnown && (!version || !currentVersion || version === currentVersion)) continue;\n\t\t\t\tconst isUpdate = isKnown;\n\t\t\t\tPromise.resolve(packageManager.addPackage(spec)).then((result) => {\n\t\t\t\t\tif (result.type === \"error\") {\n\t\t\t\t\t\tconsole.error(`[Connect] /__packages addPackage(${spec}) failed:`, result.error);\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\tif (isFirst) return;\n\t\t\t\t\tconst name = result.package.manifest.name;\n\t\t\t\t\ttoast(isUpdate ? `Updated package ${name}` : `Installed package ${name}`, { type: \"connect-success\" });\n\t\t\t\t}, (err) => {\n\t\t\t\t\tconsole.error(`[Connect] /__packages addPackage(${spec}) threw:`, err);\n\t\t\t\t});\n\t\t\t}\n\t\t} catch (err) {\n\t\t\tconsole.error(\"[Connect] /__packages event parse failed:\", err);\n\t\t}\n\t});\n\tsource.addEventListener(\"error\", () => {});\n}\nasync function clearReactorStorage() {\n\tawait window.ph?.reactorClientModule?.pg?.close();\n\tconst targets = (await indexedDB.databases()).map((d) => d.name).filter((n) => !!n && !n.startsWith(\"ph-pglite-backup::\") && /pglite|reactor/i.test(n));\n\tawait Promise.all(targets.map((name) => new Promise((resolve) => {\n\t\tconst req = indexedDB.deleteDatabase(name);\n\t\treq.onsuccess = req.onerror = req.onblocked = () => resolve();\n\t})));\n}\nasync function createReactor(localPackage) {\n\tif (!window.ph) window.ph = {};\n\tif (window.ph.loading) return;\n\twindow.ph.loading = true;\n\taddPHEventHandlers();\n\tsetPHToast(toast);\n\tconst features = await initFeatureFlags();\n\tlogger.info(\"Features: @features\", JSON.stringify(Object.fromEntries(features), null, 2));\n\tconst keyPairStorage = await BrowserKeyStorage.create();\n\tconst renownCrypto = await new RenownCryptoBuilder().withKeyPairStorage(keyPairStorage).build();\n\tconst renown = await new RenownBuilder(\"connect\", {\n\t\tbasename: phGlobalConfig.routerBasename,\n\t\tbaseUrl: phGlobalConfig.renownUrl\n\t}).withCrypto(renownCrypto).build();\n\tconst runtimeConfig = getRuntimeConfig();\n\tconst packageManager = new BrowserPackageManager(phGlobalConfig.routerBasename ?? \"\", runtimeConfig.packageRegistryUrl ?? null);\n\tsetVetraPackageManager(packageManager);\n\tawait packageManager.init(localPackage, runtimeConfig.localPackage?.version);\n\ttry {\n\t\tconst { default: registerBundledPackages } = await import(\"ph-bundled-packages-virtual\");\n\t\tregisterBundledPackages(packageManager);\n\t} catch {}\n\tconst remotePackages = runtimeConfig.packages.filter((p) => p.provider !== \"local\").map((p) => p.version ? `${p.packageName}@${p.version}` : p.packageName);\n\t(await packageManager.addPackages(remotePackages)).map((r) => {\n\t\tif (r.type === \"error\") console.error(r.error);\n\t});\n\tif (runtimeConfig.connect?.packages?.liveReload) subscribeToPackagesChannel(packageManager);\n\tconst documentModelModules = packageManager.packages.flatMap((pkg) => pkg.documentModels).filter((module, index, modules) => modules.findIndex((m) => m.documentModel.global.id === module.documentModel.global.id && m.version === module.version) === index);\n\tconst upgradeManifests = packageManager.packages.flatMap((pkg) => pkg.upgradeManifests).filter((manifest, index, manifests) => manifest !== void 0 && manifests.findIndex((m) => m && m.documentType === manifest.documentType) === index);\n\tconst discoveryService = packageManager.cdnUrl !== null ? new PackageDiscoveryService(packageManager, new RegistryClient(packageManager.cdnUrl), {\n\t\tmode: \"immediate\",\n\t\tstorageKey: phGlobalConfig.routerBasename ?? \"\"\n\t}) : new NoRegistryDiscoveryService(packageManager);\n\tsetPackageDiscoveryService(discoveryService);\n\tconst reactorClientModule = await createBrowserReactor(documentModelModules, upgradeManifests, renown, discoveryService);\n\tconst drives = await getDrives(reactorClientModule.client);\n\tawait login(getDidFromUrl(), renown);\n\tconst documentCache = new DocumentCache(reactorClientModule.client);\n\tsetDefaultPHGlobalConfig(buildPHGlobalConfig(phGlobalConfig.basePath ?? \"/\", phGlobalConfig.routerBasename ?? \"/\", runtimeConfig.connect ?? {}));\n\tconst path = window.location.pathname;\n\tconst driveSlug = extractDriveSlugFromPath(path);\n\tconst nodeSlug = extractNodeSlugFromPath(path);\n\tsetReactorClientModule(reactorClientModule);\n\tsetReactorClient(reactorClientModule.client);\n\tconst _defaultDrivesUrl = phGlobalConfig.defaultDrivesUrl;\n\tif (_defaultDrivesUrl) {\n\t\tlet switchboardOrigin;\n\t\ttry {\n\t\t\tswitchboardOrigin = new URL(_defaultDrivesUrl).origin;\n\t\t} catch {}\n\t\tif (switchboardOrigin) {\n\t\t\tconst attachmentJwtHandler = async (_url) => {\n\t\t\t\tif (!renown.user) return void 0;\n\t\t\t\treturn renown.getBearerToken({ expiresIn: 10 });\n\t\t\t};\n\t\t\tsetAttachmentService(createRemoteAttachmentService({\n\t\t\t\tremoteUrl: switchboardOrigin,\n\t\t\t\tjwtHandler: attachmentJwtHandler\n\t\t\t}));\n\t\t}\n\t}\n\tsetDocumentCache(documentCache);\n\tsetRenown(renown);\n\tsetDrives(drives);\n\tsetFeatures(features);\n\tconst defaultDrivesConfig = getDefaultDrives(runtimeConfig);\n\tif (defaultDrivesConfig.length > 0) addDefaultDrivesForNewReactor(defaultDrivesConfig).catch((error) => console.error(\"Failed to add default drives:\", error));\n\tconst remoteUrl = getDriveUrl();\n\tif (remoteUrl) addRemoteDrive(remoteUrl, void 0).catch((error) => console.error(`Failed to add remote drive from ${remoteUrl}:`, error));\n\tsetSelectedDrive(driveSlug);\n\tsetSelectedNode(nodeSlug);\n\tconst reactorClient = reactorClientModule.client;\n\treactorClient.subscribe({ type: \"powerhouse/document-drive\" }, (event) => {\n\t\tlogger.verbose(\"ReactorClient subscription event: @event\", event);\n\t\trefreshReactorDataClient(reactorClientModule.client).catch((e) => logger.error(\"@error\", e));\n\t});\n\treactorClient.subscribe({}, (event) => {\n\t\tif (event.type !== DocumentChangeType.Deleted) return;\n\t\tconst deletedId = event.context?.childId;\n\t\tif (!deletedId) return;\n\t\tconst selectedDriveId = window.ph?.selectedDriveId;\n\t\tconst selectedNodeId = window.ph?.selectedNodeId;\n\t\tif (selectedDriveId && deletedId === selectedDriveId) {\n\t\t\tsetSelectedDrive(void 0);\n\t\t\ttoast(\"The drive you were viewing has been deleted\");\n\t\t\treturn;\n\t\t}\n\t\tif (selectedNodeId && deletedId === selectedNodeId) {\n\t\t\tsetSelectedNode(void 0);\n\t\t\ttoast(\"The document you were editing has been deleted\");\n\t\t}\n\t});\n\tawait refreshReactorDataClient(reactorClientModule.client);\n\tconst packagesWithProcessorFactories = packageManager.packages.filter((pkg) => pkg.processorFactory !== void 0);\n\tif (packagesWithProcessorFactories.length > 0) {\n\t\tconst readModels = reactorClientModule.reactorModule?.readModelCoordinator?.readModels ?? [];\n\t\tconst processorHostModule = await createProcessorHostModule(reactorClientModule.client, readModels, window.ph?.attachmentService);\n\t\tif (processorHostModule !== void 0) await Promise.all(packagesWithProcessorFactories.map(async (pkg) => {\n\t\t\tconst { manifest, processorFactory } = pkg;\n\t\t\tconst name = manifest.name;\n\t\t\tconst id = manifest.name;\n\t\t\tconst version = packageManager.getPackageVersion(name);\n\t\t\tconst label = version ? `${name}@${version}` : name;\n\t\t\tlogger.info(\"Loading processor factory: @label\", label);\n\t\t\ttry {\n\t\t\t\tconst factory = await processorFactory?.(processorHostModule);\n\t\t\t\tif (!factory) return;\n\t\t\t\tawait reactorClientModule.reactorModule?.processorManager.registerFactory(id, factory);\n\t\t\t} catch (error) {\n\t\t\t\tlogger.error(`Error registering processor: @label`, label);\n\t\t\t\tlogger.error(\"@error\", error);\n\t\t\t}\n\t\t}));\n\t}\n\twindow.ph.loading = false;\n}\nfunction getDidFromUrl() {\n\tconst didComponent = new URLSearchParams(window.location.search).get(\"user\");\n\treturn didComponent ? decodeURIComponent(didComponent) : void 0;\n}\nfunction getDriveUrl() {\n\tconst driveUrl = new URLSearchParams(window.location.search).get(\"driveUrl\");\n\treturn driveUrl ? decodeURIComponent(driveUrl) : void 0;\n}\n//#endregion\nexport { createReactor as n, clearReactorStorage as t };\n\n//# sourceMappingURL=reactor-BxNvHOKC.js.map\n//# debugId=d17abc36-680f-59c7-9a6f-834f46f065ea\n"],"file":"reactor-BxNvHOKC-CSy_kfH0.js"}
1
+ {"version":3,"mappings":"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","names":["__defProp","__defProps","__getOwnPropDescs","__getOwnPropSymbols","__hasOwnProp","__propIsEnum","__defNormalProp","__spreadValues","__spreadProps","__async","ErrorCode2","StandardResolutionReasons2","powerhouse_manifest_default","documentModels","editors","manifest","documentModel","utils_exports","utils$1"],"ignoreList":[0,1,2,3,4,5,6,7,8,9],"sources":["../../../../../node_modules/.pnpm/@openfeature+core@1.9.1/node_modules/@openfeature/core/dist/esm/index.js","../../../../../node_modules/.pnpm/@openfeature+web-sdk@1.6.2_@openfeature+core@1.9.1/node_modules/@openfeature/web-sdk/dist/esm/index.js","../../../../../node_modules/.pnpm/@powerhousedao+powerhouse-vetra-packages@6.2.0-dev.23_graphql@16.12.0_react-dom@19.2.6_react@19.2.6__react@19.2.6/node_modules/@powerhousedao/powerhouse-vetra-packages/dist/browser/editors/document-model-editor/module.js","../../../../../node_modules/.pnpm/@powerhousedao+powerhouse-vetra-packages@6.2.0-dev.23_graphql@16.12.0_react-dom@19.2.6_react@19.2.6__react@19.2.6/node_modules/@powerhousedao/powerhouse-vetra-packages/dist/browser/index.js","../../../../../node_modules/.pnpm/@powerhousedao+vetra@6.2.0-dev.23_@babel+runtime@7.29.2_@electric-sql+pglite@0.3.15_@pa_0c94680c61477a0a5c7bf05c9b5bc3fb/node_modules/@powerhousedao/vetra/dist/powerhouse.manifest.js","../../../../../node_modules/.pnpm/@powerhousedao+vetra@6.2.0-dev.23_@babel+runtime@7.29.2_@electric-sql+pglite@0.3.15_@pa_0c94680c61477a0a5c7bf05c9b5bc3fb/node_modules/@powerhousedao/vetra/dist/module-mtR8W4L4.js","../../../../../node_modules/.pnpm/@powerhousedao+vetra@6.2.0-dev.23_@babel+runtime@7.29.2_@electric-sql+pglite@0.3.15_@pa_0c94680c61477a0a5c7bf05c9b5bc3fb/node_modules/@powerhousedao/vetra/dist/module-C0jUPu9F.js","../../../../../node_modules/.pnpm/@powerhousedao+vetra@6.2.0-dev.23_@babel+runtime@7.29.2_@electric-sql+pglite@0.3.15_@pa_0c94680c61477a0a5c7bf05c9b5bc3fb/node_modules/@powerhousedao/vetra/dist/module-DySsSIQV.js","../../../../../node_modules/.pnpm/@powerhousedao+vetra@6.2.0-dev.23_@babel+runtime@7.29.2_@electric-sql+pglite@0.3.15_@pa_0c94680c61477a0a5c7bf05c9b5bc3fb/node_modules/@powerhousedao/vetra/dist/index.js","../../../../../node_modules/.pnpm/@powerhousedao+connect@6.2.0-dev.23_@babel+runtime@7.29.2_@parcel+watcher@2.5.6_@sentry_92fbcdab943457b0ffd54c0864a4f38d/node_modules/@powerhousedao/connect/dist/reactor-BxNvHOKC.js"],"sourcesContent":["var __defProp = Object.defineProperty;\nvar __defProps = Object.defineProperties;\nvar __getOwnPropDescs = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));\nvar __async = (__this, __arguments, generator) => {\n return new Promise((resolve, reject) => {\n var fulfilled = (value) => {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n };\n var rejected = (value) => {\n try {\n step(generator.throw(value));\n } catch (e) {\n reject(e);\n }\n };\n var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);\n step((generator = generator.apply(__this, __arguments)).next());\n });\n};\n\n// src/hooks/hook-data.ts\nvar MapHookData = class {\n constructor() {\n this.data = /* @__PURE__ */ new Map();\n }\n set(key, value) {\n this.data.set(key, value);\n }\n get(key) {\n return this.data.get(key);\n }\n has(key) {\n return this.data.has(key);\n }\n delete(key) {\n return this.data.delete(key);\n }\n clear() {\n this.data.clear();\n }\n};\n\n// src/evaluation/evaluation.ts\nvar StandardResolutionReasons = {\n /**\n * The resolved value is static (no dynamic evaluation).\n */\n STATIC: \"STATIC\",\n /**\n * The resolved value was configured statically, or otherwise fell back to a pre-configured value.\n */\n DEFAULT: \"DEFAULT\",\n /**\n * The resolved value was the result of a dynamic evaluation, such as a rule or specific user-targeting.\n */\n TARGETING_MATCH: \"TARGETING_MATCH\",\n /**\n * The resolved value was the result of pseudorandom assignment.\n */\n SPLIT: \"SPLIT\",\n /**\n * The resolved value was retrieved from cache.\n */\n CACHED: \"CACHED\",\n /**\n * The resolved value was the result of the flag being disabled in the management system.\n */\n DISABLED: \"DISABLED\",\n /**\n * The reason for the resolved value could not be determined.\n */\n UNKNOWN: \"UNKNOWN\",\n /**\n * The resolved value is non-authoritative or possibly out of date.\n */\n STALE: \"STALE\",\n /**\n * The resolved value was the result of an error.\n *\n * Note: The `errorCode` and `errorMessage` fields may contain additional details of this error.\n */\n ERROR: \"ERROR\"\n};\nvar ErrorCode = /* @__PURE__ */ ((ErrorCode2) => {\n ErrorCode2[\"PROVIDER_NOT_READY\"] = \"PROVIDER_NOT_READY\";\n ErrorCode2[\"PROVIDER_FATAL\"] = \"PROVIDER_FATAL\";\n ErrorCode2[\"FLAG_NOT_FOUND\"] = \"FLAG_NOT_FOUND\";\n ErrorCode2[\"PARSE_ERROR\"] = \"PARSE_ERROR\";\n ErrorCode2[\"TYPE_MISMATCH\"] = \"TYPE_MISMATCH\";\n ErrorCode2[\"TARGETING_KEY_MISSING\"] = \"TARGETING_KEY_MISSING\";\n ErrorCode2[\"INVALID_CONTEXT\"] = \"INVALID_CONTEXT\";\n ErrorCode2[\"GENERAL\"] = \"GENERAL\";\n return ErrorCode2;\n})(ErrorCode || {});\n\n// src/errors/open-feature-error-abstract.ts\nvar OpenFeatureError = class _OpenFeatureError extends Error {\n constructor(message, options) {\n super(message);\n Object.setPrototypeOf(this, _OpenFeatureError.prototype);\n this.name = \"OpenFeatureError\";\n this.cause = options == null ? void 0 : options.cause;\n }\n};\n\n// src/errors/flag-not-found-error.ts\nvar FlagNotFoundError = class _FlagNotFoundError extends OpenFeatureError {\n constructor(message, options) {\n super(message, options);\n Object.setPrototypeOf(this, _FlagNotFoundError.prototype);\n this.name = \"FlagNotFoundError\";\n this.code = \"FLAG_NOT_FOUND\" /* FLAG_NOT_FOUND */;\n }\n};\n\n// src/errors/general-error.ts\nvar GeneralError = class _GeneralError extends OpenFeatureError {\n constructor(message, options) {\n super(message, options);\n Object.setPrototypeOf(this, _GeneralError.prototype);\n this.name = \"GeneralError\";\n this.code = \"GENERAL\" /* GENERAL */;\n }\n};\n\n// src/errors/invalid-context-error.ts\nvar InvalidContextError = class _InvalidContextError extends OpenFeatureError {\n constructor(message, options) {\n super(message, options);\n Object.setPrototypeOf(this, _InvalidContextError.prototype);\n this.name = \"InvalidContextError\";\n this.code = \"INVALID_CONTEXT\" /* INVALID_CONTEXT */;\n }\n};\n\n// src/errors/parse-error.ts\nvar ParseError = class _ParseError extends OpenFeatureError {\n constructor(message, options) {\n super(message, options);\n Object.setPrototypeOf(this, _ParseError.prototype);\n this.name = \"ParseError\";\n this.code = \"PARSE_ERROR\" /* PARSE_ERROR */;\n }\n};\n\n// src/errors/provider-fatal-error.ts\nvar ProviderFatalError = class _ProviderFatalError extends OpenFeatureError {\n constructor(message, options) {\n super(message, options);\n Object.setPrototypeOf(this, _ProviderFatalError.prototype);\n this.name = \"ProviderFatalError\";\n this.code = \"PROVIDER_FATAL\" /* PROVIDER_FATAL */;\n }\n};\n\n// src/errors/provider-not-ready-error.ts\nvar ProviderNotReadyError = class _ProviderNotReadyError extends OpenFeatureError {\n constructor(message, options) {\n super(message, options);\n Object.setPrototypeOf(this, _ProviderNotReadyError.prototype);\n this.name = \"ProviderNotReadyError\";\n this.code = \"PROVIDER_NOT_READY\" /* PROVIDER_NOT_READY */;\n }\n};\n\n// src/errors/targeting-key-missing-error.ts\nvar TargetingKeyMissingError = class _TargetingKeyMissingError extends OpenFeatureError {\n constructor(message, options) {\n super(message, options);\n Object.setPrototypeOf(this, _TargetingKeyMissingError.prototype);\n this.name = \"TargetingKeyMissingError\";\n this.code = \"TARGETING_KEY_MISSING\" /* TARGETING_KEY_MISSING */;\n }\n};\n\n// src/errors/type-mismatch-error.ts\nvar TypeMismatchError = class _TypeMismatchError extends OpenFeatureError {\n constructor(message, options) {\n super(message, options);\n Object.setPrototypeOf(this, _TypeMismatchError.prototype);\n this.name = \"TypeMismatchError\";\n this.code = \"TYPE_MISMATCH\" /* TYPE_MISMATCH */;\n }\n};\n\n// src/errors/index.ts\nvar instantiateErrorByErrorCode = (errorCode, message) => {\n switch (errorCode) {\n case \"FLAG_NOT_FOUND\" /* FLAG_NOT_FOUND */:\n return new FlagNotFoundError(message);\n case \"PARSE_ERROR\" /* PARSE_ERROR */:\n return new ParseError(message);\n case \"TYPE_MISMATCH\" /* TYPE_MISMATCH */:\n return new TypeMismatchError(message);\n case \"TARGETING_KEY_MISSING\" /* TARGETING_KEY_MISSING */:\n return new TargetingKeyMissingError(message);\n case \"INVALID_CONTEXT\" /* INVALID_CONTEXT */:\n return new InvalidContextError(message);\n case \"PROVIDER_NOT_READY\" /* PROVIDER_NOT_READY */:\n return new ProviderNotReadyError(message);\n case \"PROVIDER_FATAL\" /* PROVIDER_FATAL */:\n return new ProviderFatalError(message);\n default:\n return new GeneralError(message);\n }\n};\n\n// src/provider/provider.ts\nvar ServerProviderStatus = /* @__PURE__ */ ((ServerProviderStatus2) => {\n ServerProviderStatus2[\"NOT_READY\"] = \"NOT_READY\";\n ServerProviderStatus2[\"READY\"] = \"READY\";\n ServerProviderStatus2[\"ERROR\"] = \"ERROR\";\n ServerProviderStatus2[\"STALE\"] = \"STALE\";\n ServerProviderStatus2[\"FATAL\"] = \"FATAL\";\n return ServerProviderStatus2;\n})(ServerProviderStatus || {});\nvar ClientProviderStatus = /* @__PURE__ */ ((ClientProviderStatus2) => {\n ClientProviderStatus2[\"NOT_READY\"] = \"NOT_READY\";\n ClientProviderStatus2[\"READY\"] = \"READY\";\n ClientProviderStatus2[\"ERROR\"] = \"ERROR\";\n ClientProviderStatus2[\"STALE\"] = \"STALE\";\n ClientProviderStatus2[\"FATAL\"] = \"FATAL\";\n ClientProviderStatus2[\"RECONCILING\"] = \"RECONCILING\";\n return ClientProviderStatus2;\n})(ClientProviderStatus || {});\n\n// src/events/events.ts\nvar ServerProviderEvents = /* @__PURE__ */ ((ServerProviderEvents2) => {\n ServerProviderEvents2[\"Ready\"] = \"PROVIDER_READY\";\n ServerProviderEvents2[\"Error\"] = \"PROVIDER_ERROR\";\n ServerProviderEvents2[\"ConfigurationChanged\"] = \"PROVIDER_CONFIGURATION_CHANGED\";\n ServerProviderEvents2[\"Stale\"] = \"PROVIDER_STALE\";\n return ServerProviderEvents2;\n})(ServerProviderEvents || {});\nvar ClientProviderEvents = /* @__PURE__ */ ((ClientProviderEvents2) => {\n ClientProviderEvents2[\"Ready\"] = \"PROVIDER_READY\";\n ClientProviderEvents2[\"Error\"] = \"PROVIDER_ERROR\";\n ClientProviderEvents2[\"ConfigurationChanged\"] = \"PROVIDER_CONFIGURATION_CHANGED\";\n ClientProviderEvents2[\"ContextChanged\"] = \"PROVIDER_CONTEXT_CHANGED\";\n ClientProviderEvents2[\"Reconciling\"] = \"PROVIDER_RECONCILING\";\n ClientProviderEvents2[\"Stale\"] = \"PROVIDER_STALE\";\n return ClientProviderEvents2;\n})(ClientProviderEvents || {});\n\n// src/events/event-utils.ts\nvar eventStatusMap = {\n [\"READY\" /* READY */]: \"PROVIDER_READY\" /* Ready */,\n [\"ERROR\" /* ERROR */]: \"PROVIDER_ERROR\" /* Error */,\n [\"FATAL\" /* FATAL */]: \"PROVIDER_ERROR\" /* Error */,\n [\"STALE\" /* STALE */]: \"PROVIDER_STALE\" /* Stale */,\n [\"RECONCILING\" /* RECONCILING */]: \"PROVIDER_RECONCILING\" /* Reconciling */,\n [\"NOT_READY\" /* NOT_READY */]: void 0\n};\nvar statusMatchesEvent = (event, status) => {\n return !status && event === \"PROVIDER_READY\" /* Ready */ || eventStatusMap[status] === event;\n};\n\n// src/logger/default-logger.ts\nvar DefaultLogger = class {\n error(...args) {\n console.error(...args);\n }\n warn(...args) {\n console.warn(...args);\n }\n info() {\n }\n debug() {\n }\n};\n\n// src/logger/safe-logger.ts\nvar LOG_LEVELS = [\"error\", \"warn\", \"info\", \"debug\"];\nvar SafeLogger = class {\n constructor(logger) {\n this.fallbackLogger = new DefaultLogger();\n try {\n for (const level of LOG_LEVELS) {\n if (!logger[level] || typeof logger[level] !== \"function\") {\n throw new Error(`The provided logger is missing the ${level} method.`);\n }\n }\n this.logger = logger;\n } catch (err) {\n console.error(err);\n console.error(\"Falling back to the default logger.\");\n this.logger = this.fallbackLogger;\n }\n }\n error(...args) {\n this.log(\"error\", ...args);\n }\n warn(...args) {\n this.log(\"warn\", ...args);\n }\n info(...args) {\n this.log(\"info\", ...args);\n }\n debug(...args) {\n this.log(\"debug\", ...args);\n }\n log(level, ...args) {\n try {\n this.logger[level](...args);\n } catch (error) {\n this.fallbackLogger[level](...args);\n }\n }\n};\n\n// src/events/generic-event-emitter.ts\nvar GenericEventEmitter = class {\n constructor(globalLogger) {\n this.globalLogger = globalLogger;\n this._handlers = {\n [\"PROVIDER_CONFIGURATION_CHANGED\" /* ConfigurationChanged */]: /* @__PURE__ */ new WeakMap(),\n [\"PROVIDER_CONTEXT_CHANGED\" /* ContextChanged */]: /* @__PURE__ */ new WeakMap(),\n [\"PROVIDER_READY\" /* Ready */]: /* @__PURE__ */ new WeakMap(),\n [\"PROVIDER_ERROR\" /* Error */]: /* @__PURE__ */ new WeakMap(),\n [\"PROVIDER_STALE\" /* Stale */]: /* @__PURE__ */ new WeakMap(),\n [\"PROVIDER_RECONCILING\" /* Reconciling */]: /* @__PURE__ */ new WeakMap()\n };\n }\n // here we use E, to restrict the events a provider can manually emit (PROVIDER_CONTEXT_CHANGED is emitted by the SDK)\n emit(eventType, context) {\n this.eventEmitter.emit(eventType, context);\n }\n addHandler(eventType, handler) {\n const asyncHandler = (details) => __async(this, null, function* () {\n var _a;\n try {\n yield handler(details);\n } catch (err) {\n (_a = this._logger) == null ? void 0 : _a.error(\"Error running event handler:\", err);\n }\n });\n const existingAsyncHandlers = this._handlers[eventType].get(handler);\n this._handlers[eventType].set(handler, [...existingAsyncHandlers || [], asyncHandler]);\n this.eventEmitter.on(eventType, asyncHandler);\n }\n removeHandler(eventType, handler) {\n const existingAsyncHandlers = this._handlers[eventType].get(handler);\n if (existingAsyncHandlers) {\n const removedAsyncHandler = existingAsyncHandlers.pop();\n if (removedAsyncHandler) {\n this.eventEmitter.removeListener(eventType, removedAsyncHandler);\n }\n }\n }\n removeAllHandlers(eventType) {\n if (eventType) {\n this.eventEmitter.removeAllListeners(eventType);\n } else {\n this.eventEmitter.removeAllListeners();\n }\n }\n getHandlers(eventType) {\n return this.eventEmitter.listeners(eventType);\n }\n setLogger(logger) {\n this._eventLogger = new SafeLogger(logger);\n return this;\n }\n get _logger() {\n var _a, _b;\n return (_b = this._eventLogger) != null ? _b : (_a = this.globalLogger) == null ? void 0 : _a.call(this);\n }\n};\n\n// src/telemetry/attributes.ts\nvar TelemetryAttribute = {\n /**\n * The lookup key of the feature flag.\n *\n * - type: `string`\n * - requirement level: `required`\n * - example: `logo-color`\n */\n KEY: \"feature_flag.key\",\n /**\n * Describes a class of error the operation ended with.\n *\n * - type: `string`\n * - requirement level: `conditionally required`\n * - condition: `reason` is `error`\n * - example: `flag_not_found`\n */\n ERROR_CODE: \"error.type\",\n /**\n * A message explaining the nature of an error occurring during flag evaluation.\n *\n * - type: `string`\n * - requirement level: `recommended`\n * - example: `Flag not found`\n */\n ERROR_MESSAGE: \"error.message\",\n /**\n * A semantic identifier for an evaluated flag value.\n *\n * - type: `string`\n * - requirement level: `conditionally required`\n * - condition: variant is defined on the evaluation details\n * - example: `blue`; `on`; `true`\n */\n VARIANT: \"feature_flag.result.variant\",\n /**\n * The evaluated value of the feature flag.\n *\n * - type: `undefined`\n * - requirement level: `conditionally required`\n * - example: `#ff0000`; `1`; `true`\n */\n VALUE: \"feature_flag.result.value\",\n /**\n * The unique identifier for the flag evaluation context. For example, the targeting key.\n *\n * - type: `string`\n * - requirement level: `recommended`\n * - example: `5157782b-2203-4c80-a857-dbbd5e7761db`\n */\n CONTEXT_ID: \"feature_flag.context.id\",\n /**\n * The reason code which shows how a feature flag value was determined.\n *\n * - type: `string`\n * - requirement level: `recommended`\n * - example: `targeting_match`\n */\n REASON: \"feature_flag.result.reason\",\n /**\n * Describes a class of error the operation ended with.\n *\n * - type: `string`\n * - requirement level: `recommended`\n * - example: `flag_not_found`\n */\n PROVIDER: \"feature_flag.provider.name\",\n /**\n * The identifier of the flag set to which the feature flag belongs.\n *\n * - type: `string`\n * - requirement level: `recommended`\n * - example: `proj-1`; `ab98sgs`; `service1/dev`\n */\n FLAG_SET_ID: \"feature_flag.set.id\",\n /**\n * The version of the ruleset used during the evaluation. This may be any stable value which uniquely identifies the ruleset.\n *\n * - type: `string`\n * - requirement level: `recommended`\n * - example: `1.0.0`; `2021-01-01`\n */\n VERSION: \"feature_flag.version\"\n};\n\n// src/telemetry/flag-metadata.ts\nvar TelemetryFlagMetadata = {\n /**\n * The context identifier returned in the flag metadata uniquely identifies\n * the subject of the flag evaluation. If not available, the targeting key\n * should be used.\n */\n CONTEXT_ID: \"contextId\",\n /**\n * \tA logical identifier for the flag set.\n */\n FLAG_SET_ID: \"flagSetId\",\n /**\n * \tA version string (format unspecified) for the flag or flag set.\n */\n VERSION: \"version\"\n};\n\n// src/telemetry/evaluation-event.ts\nvar FLAG_EVALUATION_EVENT_NAME = \"feature_flag.evaluation\";\nfunction createEvaluationEvent(hookContext, evaluationDetails) {\n var _a, _b, _c;\n const attributes = {\n [TelemetryAttribute.KEY]: hookContext.flagKey,\n [TelemetryAttribute.PROVIDER]: hookContext.providerMetadata.name,\n [TelemetryAttribute.REASON]: ((_a = evaluationDetails.reason) != null ? _a : StandardResolutionReasons.UNKNOWN).toLowerCase()\n };\n if (evaluationDetails.variant) {\n attributes[TelemetryAttribute.VARIANT] = evaluationDetails.variant;\n }\n if (evaluationDetails.value !== null) {\n if (typeof evaluationDetails.value !== \"object\") {\n attributes[TelemetryAttribute.VALUE] = evaluationDetails.value;\n } else {\n try {\n attributes[TelemetryAttribute.VALUE] = JSON.stringify(evaluationDetails.value);\n } catch (e) {\n }\n }\n }\n const contextId = (_b = evaluationDetails.flagMetadata[TelemetryFlagMetadata.CONTEXT_ID]) != null ? _b : hookContext.context.targetingKey;\n if (contextId) {\n attributes[TelemetryAttribute.CONTEXT_ID] = contextId;\n }\n const setId = evaluationDetails.flagMetadata[TelemetryFlagMetadata.FLAG_SET_ID];\n if (setId) {\n attributes[TelemetryAttribute.FLAG_SET_ID] = setId;\n }\n const version = evaluationDetails.flagMetadata[TelemetryFlagMetadata.VERSION];\n if (version) {\n attributes[TelemetryAttribute.VERSION] = version;\n }\n if (evaluationDetails.reason === StandardResolutionReasons.ERROR) {\n attributes[TelemetryAttribute.ERROR_CODE] = ((_c = evaluationDetails.errorCode) != null ? _c : \"GENERAL\" /* GENERAL */).toLowerCase();\n if (evaluationDetails.errorMessage) {\n attributes[TelemetryAttribute.ERROR_MESSAGE] = evaluationDetails.errorMessage;\n }\n }\n return {\n name: FLAG_EVALUATION_EVENT_NAME,\n attributes\n };\n}\n\n// src/type-guards.ts\nfunction isString(value) {\n return typeof value === \"string\";\n}\nfunction stringOrUndefined(value) {\n return isString(value) ? value : void 0;\n}\nfunction isObject(value) {\n return typeof value === \"object\";\n}\nfunction objectOrUndefined(value) {\n return isObject(value) ? value : void 0;\n}\n\n// src/filter.ts\nfunction isDefined(input) {\n return typeof input !== \"undefined\" && input !== null;\n}\n\n// src/open-feature.ts\nvar ProviderWrapper = class {\n constructor(_provider, _status, _statusEnumType) {\n this._provider = _provider;\n this._status = _status;\n this._pendingContextChanges = 0;\n var _a, _b, _c;\n (_a = _provider.events) == null ? void 0 : _a.addHandler(\"PROVIDER_READY\" /* Ready */, () => {\n this._status = _statusEnumType.READY;\n });\n (_b = _provider.events) == null ? void 0 : _b.addHandler(\"PROVIDER_STALE\" /* Stale */, () => {\n this._status = _statusEnumType.STALE;\n });\n (_c = _provider.events) == null ? void 0 : _c.addHandler(\"PROVIDER_ERROR\" /* Error */, (details) => {\n if ((details == null ? void 0 : details.errorCode) === \"PROVIDER_FATAL\" /* PROVIDER_FATAL */) {\n this._status = _statusEnumType.FATAL;\n } else {\n this._status = _statusEnumType.ERROR;\n }\n });\n }\n get provider() {\n return this._provider;\n }\n set provider(provider) {\n this._provider = provider;\n }\n get status() {\n return this._status;\n }\n set status(status) {\n this._status = status;\n }\n get allContextChangesSettled() {\n return this._pendingContextChanges === 0;\n }\n incrementPendingContextChanges() {\n this._pendingContextChanges++;\n }\n decrementPendingContextChanges() {\n this._pendingContextChanges--;\n }\n};\nvar OpenFeatureCommonAPI = class {\n constructor(category) {\n this._hooks = [];\n this._context = {};\n this._logger = new DefaultLogger();\n this._clientEventHandlers = /* @__PURE__ */ new Map();\n this._domainScopedContext = /* @__PURE__ */ new Map();\n this._clientEvents = /* @__PURE__ */ new Map();\n this._runsOn = category;\n }\n addHooks(...hooks) {\n this._hooks = [...this._hooks, ...hooks];\n return this;\n }\n getHooks() {\n return this._hooks;\n }\n clearHooks() {\n this._hooks = [];\n return this;\n }\n setLogger(logger) {\n this._logger = new SafeLogger(logger);\n return this;\n }\n /**\n * Get metadata about the default provider.\n * @returns {ProviderMetadata} Provider Metadata\n */\n get providerMetadata() {\n return this.getProviderMetadata();\n }\n /**\n * Get metadata about a registered provider using the client name.\n * An unbound or empty client name will return metadata from the default provider.\n * @param {string} domain An identifier which logically binds clients with providers\n * @returns {ProviderMetadata} Provider Metadata\n */\n getProviderMetadata(domain) {\n return this.getProviderForClient(domain).metadata;\n }\n /**\n * Adds a handler for the given provider event type.\n * The handlers are called in the order they have been added.\n * API (global) events run for all providers.\n * @param {AnyProviderEvent} eventType The provider event type to listen to\n * @param {EventHandler} handler The handler to run on occurrence of the event type\n * @param {EventOptions} options Optional options such as signal for aborting\n */\n addHandler(eventType, handler, options) {\n [.../* @__PURE__ */ new Map([[void 0, this._defaultProvider]]), ...this._domainScopedProviders].forEach((keyProviderTuple) => {\n var _a;\n const domain = keyProviderTuple[0];\n const provider = keyProviderTuple[1].provider;\n const status = keyProviderTuple[1].status;\n const shouldRunNow = statusMatchesEvent(eventType, status);\n if (shouldRunNow) {\n try {\n handler({ domain, providerName: provider.metadata.name });\n } catch (err) {\n (_a = this._logger) == null ? void 0 : _a.error(\"Error running event handler:\", err);\n }\n }\n });\n this._apiEmitter.addHandler(eventType, handler);\n if ((options == null ? void 0 : options.signal) && typeof options.signal.addEventListener === \"function\") {\n options.signal.addEventListener(\"abort\", () => {\n this.removeHandler(eventType, handler);\n });\n }\n }\n /**\n * Removes a handler for the given provider event type.\n * @param {AnyProviderEvent} eventType The provider event type to remove the listener for\n * @param {EventHandler} handler The handler to remove for the provider event type\n */\n removeHandler(eventType, handler) {\n this._apiEmitter.removeHandler(eventType, handler);\n }\n /**\n * Removes all event handlers.\n */\n clearHandlers() {\n this._apiEmitter.removeAllHandlers();\n }\n /**\n * Gets the current handlers for the given provider event type.\n * @param {AnyProviderEvent} eventType The provider event type to get the current handlers for\n * @returns {EventHandler[]} The handlers currently attached to the given provider event type\n */\n getHandlers(eventType) {\n return this._apiEmitter.getHandlers(eventType);\n }\n setAwaitableProvider(domainOrProvider, providerOrUndefined) {\n var _a, _b, _c, _d, _e, _f, _g, _h;\n const domain = stringOrUndefined(domainOrProvider);\n const provider = (_a = objectOrUndefined(domainOrProvider)) != null ? _a : objectOrUndefined(providerOrUndefined);\n if (!provider) {\n this._logger.debug(\"No provider defined, ignoring setProvider call\");\n return;\n }\n const oldProvider = this.getProviderForClient(domain);\n const providerName = provider.metadata.name;\n if (oldProvider === provider) {\n this._logger.debug(\"Provider is already set, ignoring setProvider call\");\n return;\n }\n if (!provider.runsOn) {\n this._logger.debug(`Provider '${provider.metadata.name}' has not defined its intended use.`);\n } else if (provider.runsOn !== this._runsOn) {\n throw new GeneralError(`Provider '${provider.metadata.name}' is intended for use on the ${provider.runsOn}.`);\n }\n const emitters = this.getAssociatedEventEmitters(domain);\n let initializationPromise = void 0;\n const wrappedProvider = new ProviderWrapper(\n provider,\n this._statusEnumType.NOT_READY,\n this._statusEnumType\n );\n if (typeof provider.initialize === \"function\" && !this.allProviders.includes(provider)) {\n initializationPromise = (_e = (_d = (_c = provider.initialize) == null ? void 0 : _c.call(provider, domain ? (_b = this._domainScopedContext.get(domain)) != null ? _b : this._context : this._context)) == null ? void 0 : _d.then(() => {\n var _a2;\n wrappedProvider.status = this._statusEnumType.READY;\n this.getAssociatedEventEmitters(domain).forEach((emitter) => {\n emitter == null ? void 0 : emitter.emit(\"PROVIDER_READY\" /* Ready */, { clientName: domain, domain, providerName });\n });\n (_a2 = this._apiEmitter) == null ? void 0 : _a2.emit(\"PROVIDER_READY\" /* Ready */, { clientName: domain, domain, providerName });\n })) == null ? void 0 : _e.catch((error) => {\n var _a2;\n if ((error == null ? void 0 : error.code) === \"PROVIDER_FATAL\" /* PROVIDER_FATAL */) {\n wrappedProvider.status = this._statusEnumType.FATAL;\n } else {\n wrappedProvider.status = this._statusEnumType.ERROR;\n }\n this.getAssociatedEventEmitters(domain).forEach((emitter) => {\n emitter == null ? void 0 : emitter.emit(\"PROVIDER_ERROR\" /* Error */, {\n clientName: domain,\n domain,\n providerName,\n message: error == null ? void 0 : error.message\n });\n });\n (_a2 = this._apiEmitter) == null ? void 0 : _a2.emit(\"PROVIDER_ERROR\" /* Error */, {\n clientName: domain,\n domain,\n providerName,\n message: error == null ? void 0 : error.message\n });\n throw error;\n });\n } else {\n wrappedProvider.status = this._statusEnumType.READY;\n emitters.forEach((emitter) => {\n emitter == null ? void 0 : emitter.emit(\"PROVIDER_READY\" /* Ready */, { clientName: domain, domain, providerName });\n });\n (_f = this._apiEmitter) == null ? void 0 : _f.emit(\"PROVIDER_READY\" /* Ready */, { clientName: domain, domain, providerName });\n }\n if (domain) {\n this._domainScopedProviders.set(domain, wrappedProvider);\n } else {\n this._defaultProvider = wrappedProvider;\n }\n this.transferListeners(oldProvider, provider, domain, emitters);\n if (!this.allProviders.includes(oldProvider)) {\n (_h = (_g = oldProvider == null ? void 0 : oldProvider.onClose) == null ? void 0 : _g.call(oldProvider)) == null ? void 0 : _h.catch((err) => {\n this._logger.error(`error closing provider: ${err == null ? void 0 : err.message}, ${err == null ? void 0 : err.stack}`);\n });\n }\n return initializationPromise;\n }\n getProviderForClient(domain) {\n var _a, _b;\n if (!domain) {\n return this._defaultProvider.provider;\n }\n return (_b = (_a = this._domainScopedProviders.get(domain)) == null ? void 0 : _a.provider) != null ? _b : this._defaultProvider.provider;\n }\n buildAndCacheEventEmitterForClient(domain) {\n const emitter = this._clientEvents.get(domain);\n if (emitter) {\n return emitter;\n }\n const newEmitter = this._createEventEmitter();\n this._clientEvents.set(domain, newEmitter);\n const clientProvider = this.getProviderForClient(domain);\n Object.values(ClientProviderEvents).forEach(\n (eventType) => {\n var _a;\n return (_a = clientProvider.events) == null ? void 0 : _a.addHandler(eventType, (details) => __async(this, null, function* () {\n newEmitter.emit(eventType, __spreadProps(__spreadValues({}, details), {\n clientName: domain,\n domain,\n providerName: clientProvider.metadata.name\n }));\n }));\n }\n );\n return newEmitter;\n }\n getUnboundEmitters() {\n const domainScopedProviders = [...this._domainScopedProviders.keys()];\n const eventEmitterNames = [...this._clientEvents.keys()].filter(isDefined);\n const unboundEmitterNames = eventEmitterNames.filter((name) => !domainScopedProviders.includes(name));\n return [\n // all unbound, named emitters\n ...unboundEmitterNames.map((name) => this._clientEvents.get(name)),\n // the default emitter\n this._clientEvents.get(void 0)\n ].filter(isDefined);\n }\n getAssociatedEventEmitters(domain) {\n return domain ? [this.buildAndCacheEventEmitterForClient(domain)] : this.getUnboundEmitters();\n }\n transferListeners(oldProvider, newProvider, domain, emitters) {\n var _a;\n (_a = this._clientEventHandlers.get(domain)) == null ? void 0 : _a.forEach((eventHandler) => {\n var _a2;\n return (_a2 = oldProvider.events) == null ? void 0 : _a2.removeHandler(...eventHandler);\n });\n const newClientHandlers = Object.values(ClientProviderEvents).map((eventType) => {\n const handler = (details) => __async(this, null, function* () {\n emitters.forEach((emitter) => {\n emitter == null ? void 0 : emitter.emit(eventType, __spreadProps(__spreadValues({}, details), { clientName: domain, domain, providerName: newProvider.metadata.name }));\n });\n this._apiEmitter.emit(eventType, __spreadProps(__spreadValues({}, details), {\n clientName: domain,\n domain,\n providerName: newProvider.metadata.name\n }));\n });\n return [eventType, handler];\n });\n this._clientEventHandlers.set(domain, newClientHandlers);\n newClientHandlers.forEach((eventHandler) => {\n var _a2;\n return (_a2 = newProvider.events) == null ? void 0 : _a2.addHandler(...eventHandler);\n });\n }\n close() {\n return __async(this, null, function* () {\n var _a, _b;\n try {\n yield (_b = (_a = this == null ? void 0 : this._defaultProvider.provider) == null ? void 0 : _a.onClose) == null ? void 0 : _b.call(_a);\n } catch (err) {\n this.handleShutdownError(this._defaultProvider.provider, err);\n }\n const wrappers = Array.from(this._domainScopedProviders);\n yield Promise.all(\n wrappers.map((_0) => __async(this, [_0], function* ([, wrapper]) {\n var _a2, _b2;\n try {\n yield (_b2 = wrapper == null ? void 0 : (_a2 = wrapper.provider).onClose) == null ? void 0 : _b2.call(_a2);\n } catch (err) {\n this.handleShutdownError(wrapper == null ? void 0 : wrapper.provider, err);\n }\n }))\n );\n });\n }\n clearProvidersAndSetDefault(defaultProvider) {\n return __async(this, null, function* () {\n try {\n yield this.close();\n } catch (err) {\n this._logger.error(\"Unable to cleanly close providers. Resetting to the default configuration.\");\n } finally {\n this._domainScopedProviders.clear();\n this._defaultProvider = new ProviderWrapper(\n defaultProvider,\n this._statusEnumType.NOT_READY,\n this._statusEnumType\n );\n }\n });\n }\n get allProviders() {\n return [\n ...[...this._domainScopedProviders.values()].map((wrappers) => wrappers.provider),\n this._defaultProvider.provider\n ];\n }\n handleShutdownError(provider, err) {\n this._logger.error(`Error during shutdown of provider ${provider.metadata.name}: ${err}`);\n this._logger.error(err == null ? void 0 : err.stack);\n }\n};\nexport {\n ClientProviderEvents as AllProviderEvents,\n ClientProviderStatus as AllProviderStatus,\n ClientProviderEvents,\n ClientProviderStatus,\n DefaultLogger,\n ErrorCode,\n FlagNotFoundError,\n GeneralError,\n GenericEventEmitter,\n InvalidContextError,\n LOG_LEVELS,\n MapHookData,\n OpenFeatureCommonAPI,\n OpenFeatureError,\n ParseError,\n ProviderFatalError,\n ProviderNotReadyError,\n ProviderWrapper,\n SafeLogger,\n ServerProviderEvents,\n ServerProviderStatus,\n StandardResolutionReasons,\n TargetingKeyMissingError,\n TelemetryAttribute,\n TelemetryFlagMetadata,\n TypeMismatchError,\n createEvaluationEvent,\n instantiateErrorByErrorCode,\n isObject,\n isString,\n objectOrUndefined,\n statusMatchesEvent,\n stringOrUndefined\n};\n//# sourceMappingURL=index.js.map\n","var __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __defProps = Object.defineProperties;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropDescs = Object.getOwnPropertyDescriptors;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __getProtoOf = Object.getPrototypeOf;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __reflectGet = Reflect.get;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));\nvar __commonJS = (cb, mod) => function __require() {\n return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(\n // If the importer is in node compatibility mode or this is not an ESM\n // file that has been converted to a CommonJS file using a Babel-\n // compatible transform (i.e. \"__esModule\" has not been set), then set\n // \"default\" to the CommonJS \"module.exports\" for node compatibility.\n isNodeMode || !mod || !mod.__esModule ? __defProp(target, \"default\", { value: mod, enumerable: true }) : target,\n mod\n));\nvar __superGet = (cls, obj, key) => __reflectGet(__getProtoOf(cls), key, obj);\nvar __async = (__this, __arguments, generator) => {\n return new Promise((resolve, reject) => {\n var fulfilled = (value) => {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n };\n var rejected = (value) => {\n try {\n step(generator.throw(value));\n } catch (e) {\n reject(e);\n }\n };\n var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);\n step((generator = generator.apply(__this, __arguments)).next());\n });\n};\n\n// ../../node_modules/eventemitter3/index.js\nvar require_eventemitter3 = __commonJS({\n \"../../node_modules/eventemitter3/index.js\"(exports, module) {\n \"use strict\";\n var has = Object.prototype.hasOwnProperty;\n var prefix = \"~\";\n function Events() {\n }\n if (Object.create) {\n Events.prototype = /* @__PURE__ */ Object.create(null);\n if (!new Events().__proto__) prefix = false;\n }\n function EE(fn, context, once) {\n this.fn = fn;\n this.context = context;\n this.once = once || false;\n }\n function addListener(emitter, event, fn, context, once) {\n if (typeof fn !== \"function\") {\n throw new TypeError(\"The listener must be a function\");\n }\n var listener = new EE(fn, context || emitter, once), evt = prefix ? prefix + event : event;\n if (!emitter._events[evt]) emitter._events[evt] = listener, emitter._eventsCount++;\n else if (!emitter._events[evt].fn) emitter._events[evt].push(listener);\n else emitter._events[evt] = [emitter._events[evt], listener];\n return emitter;\n }\n function clearEvent(emitter, evt) {\n if (--emitter._eventsCount === 0) emitter._events = new Events();\n else delete emitter._events[evt];\n }\n function EventEmitter2() {\n this._events = new Events();\n this._eventsCount = 0;\n }\n EventEmitter2.prototype.eventNames = function eventNames() {\n var names = [], events, name;\n if (this._eventsCount === 0) return names;\n for (name in events = this._events) {\n if (has.call(events, name)) names.push(prefix ? name.slice(1) : name);\n }\n if (Object.getOwnPropertySymbols) {\n return names.concat(Object.getOwnPropertySymbols(events));\n }\n return names;\n };\n EventEmitter2.prototype.listeners = function listeners(event) {\n var evt = prefix ? prefix + event : event, handlers = this._events[evt];\n if (!handlers) return [];\n if (handlers.fn) return [handlers.fn];\n for (var i = 0, l = handlers.length, ee = new Array(l); i < l; i++) {\n ee[i] = handlers[i].fn;\n }\n return ee;\n };\n EventEmitter2.prototype.listenerCount = function listenerCount(event) {\n var evt = prefix ? prefix + event : event, listeners = this._events[evt];\n if (!listeners) return 0;\n if (listeners.fn) return 1;\n return listeners.length;\n };\n EventEmitter2.prototype.emit = function emit(event, a1, a2, a3, a4, a5) {\n var evt = prefix ? prefix + event : event;\n if (!this._events[evt]) return false;\n var listeners = this._events[evt], len = arguments.length, args, i;\n if (listeners.fn) {\n if (listeners.once) this.removeListener(event, listeners.fn, void 0, true);\n switch (len) {\n case 1:\n return listeners.fn.call(listeners.context), true;\n case 2:\n return listeners.fn.call(listeners.context, a1), true;\n case 3:\n return listeners.fn.call(listeners.context, a1, a2), true;\n case 4:\n return listeners.fn.call(listeners.context, a1, a2, a3), true;\n case 5:\n return listeners.fn.call(listeners.context, a1, a2, a3, a4), true;\n case 6:\n return listeners.fn.call(listeners.context, a1, a2, a3, a4, a5), true;\n }\n for (i = 1, args = new Array(len - 1); i < len; i++) {\n args[i - 1] = arguments[i];\n }\n listeners.fn.apply(listeners.context, args);\n } else {\n var length = listeners.length, j;\n for (i = 0; i < length; i++) {\n if (listeners[i].once) this.removeListener(event, listeners[i].fn, void 0, true);\n switch (len) {\n case 1:\n listeners[i].fn.call(listeners[i].context);\n break;\n case 2:\n listeners[i].fn.call(listeners[i].context, a1);\n break;\n case 3:\n listeners[i].fn.call(listeners[i].context, a1, a2);\n break;\n case 4:\n listeners[i].fn.call(listeners[i].context, a1, a2, a3);\n break;\n default:\n if (!args) for (j = 1, args = new Array(len - 1); j < len; j++) {\n args[j - 1] = arguments[j];\n }\n listeners[i].fn.apply(listeners[i].context, args);\n }\n }\n }\n return true;\n };\n EventEmitter2.prototype.on = function on(event, fn, context) {\n return addListener(this, event, fn, context, false);\n };\n EventEmitter2.prototype.once = function once(event, fn, context) {\n return addListener(this, event, fn, context, true);\n };\n EventEmitter2.prototype.removeListener = function removeListener(event, fn, context, once) {\n var evt = prefix ? prefix + event : event;\n if (!this._events[evt]) return this;\n if (!fn) {\n clearEvent(this, evt);\n return this;\n }\n var listeners = this._events[evt];\n if (listeners.fn) {\n if (listeners.fn === fn && (!once || listeners.once) && (!context || listeners.context === context)) {\n clearEvent(this, evt);\n }\n } else {\n for (var i = 0, events = [], length = listeners.length; i < length; i++) {\n if (listeners[i].fn !== fn || once && !listeners[i].once || context && listeners[i].context !== context) {\n events.push(listeners[i]);\n }\n }\n if (events.length) this._events[evt] = events.length === 1 ? events[0] : events;\n else clearEvent(this, evt);\n }\n return this;\n };\n EventEmitter2.prototype.removeAllListeners = function removeAllListeners(event) {\n var evt;\n if (event) {\n evt = prefix ? prefix + event : event;\n if (this._events[evt]) clearEvent(this, evt);\n } else {\n this._events = new Events();\n this._eventsCount = 0;\n }\n return this;\n };\n EventEmitter2.prototype.off = EventEmitter2.prototype.removeListener;\n EventEmitter2.prototype.addListener = EventEmitter2.prototype.on;\n EventEmitter2.prefixed = prefix;\n EventEmitter2.EventEmitter = EventEmitter2;\n if (\"undefined\" !== typeof module) {\n module.exports = EventEmitter2;\n }\n }\n});\n\n// src/provider/provider.ts\nimport { ClientProviderStatus } from \"@openfeature/core\";\n\n// src/provider/no-op-provider.ts\nvar REASON_NO_OP = \"No-op\";\nvar NoopFeatureProvider = class {\n constructor() {\n this.metadata = {\n name: \"No-op Provider\"\n };\n }\n resolveBooleanEvaluation(_, defaultValue) {\n return this.noOp(defaultValue);\n }\n resolveStringEvaluation(_, defaultValue) {\n return this.noOp(defaultValue);\n }\n resolveNumberEvaluation(_, defaultValue) {\n return this.noOp(defaultValue);\n }\n resolveObjectEvaluation(_, defaultValue) {\n return this.noOp(defaultValue);\n }\n noOp(defaultValue) {\n return {\n value: defaultValue,\n reason: REASON_NO_OP\n };\n }\n};\nvar NOOP_PROVIDER = new NoopFeatureProvider();\n\n// src/provider/in-memory-provider/in-memory-provider.ts\nimport {\n FlagNotFoundError,\n GeneralError,\n OpenFeatureError as OpenFeatureError2,\n StandardResolutionReasons,\n TypeMismatchError\n} from \"@openfeature/core\";\n\n// src/events/open-feature-event-emitter.ts\nimport { GenericEventEmitter } from \"@openfeature/core\";\n\n// ../../node_modules/eventemitter3/index.mjs\nvar import_index = __toESM(require_eventemitter3(), 1);\n\n// src/events/open-feature-event-emitter.ts\nvar OpenFeatureEventEmitter = class extends GenericEventEmitter {\n constructor() {\n super();\n this.eventEmitter = new import_index.default();\n }\n};\n\n// src/events/events.ts\nimport { ClientProviderEvents } from \"@openfeature/core\";\n\n// src/provider/in-memory-provider/variant-not-found-error.ts\nimport { ErrorCode, OpenFeatureError } from \"@openfeature/core\";\nvar VariantNotFoundError = class _VariantNotFoundError extends OpenFeatureError {\n constructor(message) {\n super(message);\n Object.setPrototypeOf(this, _VariantNotFoundError.prototype);\n this.name = \"VariantNotFoundError\";\n this.code = ErrorCode.GENERAL;\n }\n};\n\n// src/provider/in-memory-provider/in-memory-provider.ts\nvar InMemoryProvider = class {\n constructor(flagConfiguration = {}) {\n this.events = new OpenFeatureEventEmitter();\n this.runsOn = \"client\";\n this.metadata = {\n name: \"in-memory\"\n };\n this._flagConfiguration = __spreadValues({}, flagConfiguration);\n }\n /**\n * Overwrites the configured flags.\n * @param { FlagConfiguration } flagConfiguration new flag configuration\n */\n putConfiguration(flagConfiguration) {\n return __async(this, null, function* () {\n try {\n const flagsChanged = Object.entries(__spreadValues(__spreadValues({}, flagConfiguration), this._flagConfiguration)).map(([key]) => key);\n this._flagConfiguration = __spreadValues({}, flagConfiguration);\n this.events.emit(ClientProviderEvents.ConfigurationChanged, { flagsChanged });\n } catch (err) {\n this.events.emit(ClientProviderEvents.Error);\n throw err;\n }\n });\n }\n resolveBooleanEvaluation(flagKey, defaultValue, context, logger) {\n return this.resolveAndCheckFlag(flagKey, defaultValue, context || this._context, logger);\n }\n resolveNumberEvaluation(flagKey, defaultValue, context, logger) {\n return this.resolveAndCheckFlag(flagKey, defaultValue, context || this._context, logger);\n }\n resolveStringEvaluation(flagKey, defaultValue, context, logger) {\n return this.resolveAndCheckFlag(flagKey, defaultValue, context || this._context, logger);\n }\n resolveObjectEvaluation(flagKey, defaultValue, context, logger) {\n return this.resolveAndCheckFlag(flagKey, defaultValue, context || this._context, logger);\n }\n resolveAndCheckFlag(flagKey, defaultValue, context, logger) {\n if (!(flagKey in this._flagConfiguration)) {\n const message = `no flag found with key ${flagKey}`;\n logger == null ? void 0 : logger.debug(message);\n throw new FlagNotFoundError(message);\n }\n if (this._flagConfiguration[flagKey].disabled) {\n return { value: defaultValue, reason: StandardResolutionReasons.DISABLED };\n }\n const resolvedFlag = this.resolveFlagWithReason(flagKey, context);\n if (resolvedFlag.value === void 0) {\n const message = `no value associated with variant provided for ${flagKey} found`;\n logger == null ? void 0 : logger.error(message);\n throw new VariantNotFoundError(message);\n }\n if (typeof resolvedFlag.value != typeof defaultValue) {\n throw new TypeMismatchError();\n }\n return resolvedFlag;\n }\n resolveFlagWithReason(flagKey, ctx) {\n try {\n const resolutionResult = this.lookupFlagValue(flagKey, ctx);\n return resolutionResult;\n } catch (error) {\n if (!(error instanceof OpenFeatureError2)) {\n throw new GeneralError((error == null ? void 0 : error.message) || \"unknown error\");\n }\n throw error;\n }\n }\n lookupFlagValue(flagKey, ctx) {\n var _a;\n const flagSpec = this._flagConfiguration[flagKey];\n const isContextEval = ctx && (flagSpec == null ? void 0 : flagSpec.contextEvaluator);\n const variant = isContextEval ? (_a = flagSpec.contextEvaluator) == null ? void 0 : _a.call(flagSpec, ctx) : flagSpec.defaultVariant;\n const value = variant && (flagSpec == null ? void 0 : flagSpec.variants[variant]);\n const reason = isContextEval ? StandardResolutionReasons.TARGETING_MATCH : StandardResolutionReasons.STATIC;\n return __spreadProps(__spreadValues({\n value\n }, variant && { variant }), {\n reason\n });\n }\n};\n\n// src/open-feature.ts\nimport {\n OpenFeatureCommonAPI,\n ProviderWrapper,\n objectOrUndefined,\n stringOrUndefined\n} from \"@openfeature/core\";\n\n// src/client/internal/open-feature-client.ts\nimport {\n ErrorCode as ErrorCode2,\n ProviderFatalError,\n ProviderNotReadyError,\n SafeLogger,\n StandardResolutionReasons as StandardResolutionReasons2,\n instantiateErrorByErrorCode,\n statusMatchesEvent,\n MapHookData\n} from \"@openfeature/core\";\nvar OpenFeatureClient = class {\n constructor(providerAccessor, providerStatusAccessor, emitterAccessor, apiContextAccessor, apiHooksAccessor, globalLogger, options) {\n this.providerAccessor = providerAccessor;\n this.providerStatusAccessor = providerStatusAccessor;\n this.emitterAccessor = emitterAccessor;\n this.apiContextAccessor = apiContextAccessor;\n this.apiHooksAccessor = apiHooksAccessor;\n this.globalLogger = globalLogger;\n this.options = options;\n this._hooks = [];\n }\n get metadata() {\n var _a, _b;\n return {\n // Use domain if name is not provided\n name: (_a = this.options.domain) != null ? _a : this.options.name,\n domain: (_b = this.options.domain) != null ? _b : this.options.name,\n version: this.options.version,\n providerMetadata: this.providerAccessor().metadata\n };\n }\n get providerStatus() {\n return this.providerStatusAccessor();\n }\n addHandler(eventType, handler, options) {\n var _a;\n this.emitterAccessor().addHandler(eventType, handler);\n const shouldRunNow = statusMatchesEvent(eventType, this.providerStatus);\n if (shouldRunNow) {\n try {\n handler({\n clientName: this.metadata.name,\n domain: this.metadata.domain,\n providerName: this._provider.metadata.name\n });\n } catch (err) {\n (_a = this._logger) == null ? void 0 : _a.error(\"Error running event handler:\", err);\n }\n }\n if ((options == null ? void 0 : options.signal) && typeof options.signal.addEventListener === \"function\") {\n options.signal.addEventListener(\"abort\", () => {\n this.removeHandler(eventType, handler);\n });\n }\n }\n removeHandler(notificationType, handler) {\n this.emitterAccessor().removeHandler(notificationType, handler);\n }\n getHandlers(eventType) {\n return this.emitterAccessor().getHandlers(eventType);\n }\n setLogger(logger) {\n this._clientLogger = new SafeLogger(logger);\n return this;\n }\n addHooks(...hooks) {\n this._hooks = [...this._hooks, ...hooks];\n return this;\n }\n getHooks() {\n return this._hooks;\n }\n clearHooks() {\n this._hooks = [];\n return this;\n }\n getBooleanValue(flagKey, defaultValue, options) {\n return this.getBooleanDetails(flagKey, defaultValue, options).value;\n }\n getBooleanDetails(flagKey, defaultValue, options) {\n return this.evaluate(flagKey, this._provider.resolveBooleanEvaluation, defaultValue, \"boolean\", options);\n }\n getStringValue(flagKey, defaultValue, options) {\n return this.getStringDetails(flagKey, defaultValue, options).value;\n }\n getStringDetails(flagKey, defaultValue, options) {\n return this.evaluate(\n flagKey,\n // this isolates providers from our restricted string generic argument.\n this._provider.resolveStringEvaluation,\n defaultValue,\n \"string\",\n options\n );\n }\n getNumberValue(flagKey, defaultValue, options) {\n return this.getNumberDetails(flagKey, defaultValue, options).value;\n }\n getNumberDetails(flagKey, defaultValue, options) {\n return this.evaluate(\n flagKey,\n // this isolates providers from our restricted number generic argument.\n this._provider.resolveNumberEvaluation,\n defaultValue,\n \"number\",\n options\n );\n }\n getObjectValue(flagKey, defaultValue, options) {\n return this.getObjectDetails(flagKey, defaultValue, options).value;\n }\n getObjectDetails(flagKey, defaultValue, options) {\n return this.evaluate(flagKey, this._provider.resolveObjectEvaluation, defaultValue, \"object\", options);\n }\n track(occurrenceKey, occurrenceDetails = {}) {\n var _a, _b, _c;\n try {\n this.shortCircuitIfNotReady();\n if (typeof this._provider.track === \"function\") {\n const frozenContext = Object.freeze(__spreadValues({}, this.apiContextAccessor((_a = this == null ? void 0 : this.options) == null ? void 0 : _a.domain)));\n return (_c = (_b = this._provider).track) == null ? void 0 : _c.call(_b, occurrenceKey, frozenContext, occurrenceDetails);\n } else {\n this._logger.debug(\"Provider does not support the track function; will no-op.\");\n }\n } catch (err) {\n this._logger.debug(\"Error recording tracking event.\", err);\n }\n }\n evaluate(flagKey, resolver, defaultValue, flagType, options = {}) {\n var _a, _b;\n const allHooks = [\n ...this.apiHooksAccessor(),\n ...this.getHooks(),\n ...options.hooks || [],\n ...this._provider.hooks || []\n ];\n const allHooksReversed = [...allHooks].reverse();\n const context = __spreadValues({}, this.apiContextAccessor((_a = this == null ? void 0 : this.options) == null ? void 0 : _a.domain));\n const hookContexts = allHooksReversed.map(\n () => Object.freeze({\n flagKey,\n defaultValue,\n flagValueType: flagType,\n clientMetadata: this.metadata,\n providerMetadata: this._provider.metadata,\n context,\n logger: this._logger,\n hookData: new MapHookData()\n })\n );\n let evaluationDetails;\n try {\n this.beforeHooks(allHooks, hookContexts, options);\n this.shortCircuitIfNotReady();\n const resolution = resolver.call(this._provider, flagKey, defaultValue, context, this._logger);\n const resolutionDetails = __spreadProps(__spreadValues({}, resolution), {\n flagMetadata: Object.freeze((_b = resolution.flagMetadata) != null ? _b : {}),\n flagKey\n });\n if (resolutionDetails.errorCode) {\n const err = instantiateErrorByErrorCode(resolutionDetails.errorCode, resolutionDetails.errorMessage);\n this.errorHooks(allHooksReversed, hookContexts, err, options);\n evaluationDetails = this.getErrorEvaluationDetails(flagKey, defaultValue, err, resolutionDetails.flagMetadata);\n } else {\n this.afterHooks(allHooksReversed, hookContexts, resolutionDetails, options);\n evaluationDetails = resolutionDetails;\n }\n } catch (err) {\n this.errorHooks(allHooksReversed, hookContexts, err, options);\n evaluationDetails = this.getErrorEvaluationDetails(flagKey, defaultValue, err);\n }\n this.finallyHooks(allHooksReversed, hookContexts, evaluationDetails, options);\n return evaluationDetails;\n }\n beforeHooks(hooks, hookContexts, options) {\n var _a;\n for (const [index, hook] of hooks.entries()) {\n const hookContextIndex = hooks.length - 1 - index;\n const hookContext = hookContexts[hookContextIndex];\n Object.freeze(hookContext);\n Object.freeze(hookContext.context);\n (_a = hook == null ? void 0 : hook.before) == null ? void 0 : _a.call(hook, hookContext, Object.freeze(options.hookHints));\n }\n }\n afterHooks(hooks, hookContexts, evaluationDetails, options) {\n var _a;\n for (const [index, hook] of hooks.entries()) {\n const hookContext = hookContexts[index];\n (_a = hook == null ? void 0 : hook.after) == null ? void 0 : _a.call(hook, hookContext, evaluationDetails, options.hookHints);\n }\n }\n errorHooks(hooks, hookContexts, err, options) {\n var _a;\n for (const [index, hook] of hooks.entries()) {\n try {\n const hookContext = hookContexts[index];\n (_a = hook == null ? void 0 : hook.error) == null ? void 0 : _a.call(hook, hookContext, err, options.hookHints);\n } catch (err2) {\n this._logger.error(`Unhandled error during 'error' hook: ${err2}`);\n if (err2 instanceof Error) {\n this._logger.error(err2.stack);\n }\n this._logger.error(err2 == null ? void 0 : err2.stack);\n }\n }\n }\n finallyHooks(hooks, hookContexts, evaluationDetails, options) {\n var _a;\n for (const [index, hook] of hooks.entries()) {\n try {\n const hookContext = hookContexts[index];\n (_a = hook == null ? void 0 : hook.finally) == null ? void 0 : _a.call(hook, hookContext, evaluationDetails, options.hookHints);\n } catch (err) {\n this._logger.error(`Unhandled error during 'finally' hook: ${err}`);\n if (err instanceof Error) {\n this._logger.error(err.stack);\n }\n this._logger.error(err == null ? void 0 : err.stack);\n }\n }\n }\n get _provider() {\n return this.providerAccessor();\n }\n get _logger() {\n return this._clientLogger || this.globalLogger();\n }\n shortCircuitIfNotReady() {\n if (this.providerStatus === ClientProviderStatus.NOT_READY) {\n throw new ProviderNotReadyError(\"provider has not yet initialized\");\n } else if (this.providerStatus === ClientProviderStatus.FATAL) {\n throw new ProviderFatalError(\"provider is in an irrecoverable error state\");\n }\n }\n getErrorEvaluationDetails(flagKey, defaultValue, err, flagMetadata = {}) {\n const errorMessage = err == null ? void 0 : err.message;\n const errorCode = (err == null ? void 0 : err.code) || ErrorCode2.GENERAL;\n return {\n errorCode,\n errorMessage,\n value: defaultValue,\n reason: StandardResolutionReasons2.ERROR,\n flagMetadata: Object.freeze(flagMetadata),\n flagKey\n };\n }\n};\n\n// src/open-feature.ts\nvar GLOBAL_OPENFEATURE_API_KEY = Symbol.for(\"@openfeature/web-sdk/api\");\nvar _globalThis = globalThis;\nvar OpenFeatureAPI = class _OpenFeatureAPI extends OpenFeatureCommonAPI {\n constructor() {\n super(\"client\");\n this._statusEnumType = ClientProviderStatus;\n this._apiEmitter = new OpenFeatureEventEmitter();\n this._defaultProvider = new ProviderWrapper(\n NOOP_PROVIDER,\n ClientProviderStatus.NOT_READY,\n this._statusEnumType\n );\n this._domainScopedProviders = /* @__PURE__ */ new Map();\n this._createEventEmitter = () => new OpenFeatureEventEmitter();\n }\n /**\n * Gets a singleton instance of the OpenFeature API.\n * @ignore\n * @returns {OpenFeatureAPI} OpenFeature API\n */\n static getInstance() {\n const globalApi = _globalThis[GLOBAL_OPENFEATURE_API_KEY];\n if (globalApi) {\n return globalApi;\n }\n const instance = new _OpenFeatureAPI();\n _globalThis[GLOBAL_OPENFEATURE_API_KEY] = instance;\n return instance;\n }\n getProviderStatus(domain) {\n var _a, _b;\n if (!domain) {\n return this._defaultProvider.status;\n }\n return (_b = (_a = this._domainScopedProviders.get(domain)) == null ? void 0 : _a.status) != null ? _b : this._defaultProvider.status;\n }\n setProviderAndWait(clientOrProvider, providerContextOrUndefined, contextOrUndefined) {\n return __async(this, null, function* () {\n const domain = stringOrUndefined(clientOrProvider);\n const provider = domain ? objectOrUndefined(providerContextOrUndefined) : objectOrUndefined(clientOrProvider);\n const context = domain ? objectOrUndefined(contextOrUndefined) : objectOrUndefined(providerContextOrUndefined);\n if (context) {\n if (domain) {\n this._domainScopedContext.set(domain, context);\n } else {\n this._context = context;\n }\n }\n yield this.setAwaitableProvider(domain, provider);\n });\n }\n setProvider(domainOrProvider, providerContextOrUndefined, contextOrUndefined) {\n const domain = stringOrUndefined(domainOrProvider);\n const provider = domain ? objectOrUndefined(providerContextOrUndefined) : objectOrUndefined(domainOrProvider);\n const context = domain ? objectOrUndefined(contextOrUndefined) : objectOrUndefined(providerContextOrUndefined);\n if (context) {\n if (domain) {\n this._domainScopedContext.set(domain, context);\n } else {\n this._context = context;\n }\n }\n const maybePromise = this.setAwaitableProvider(domain, provider);\n Promise.resolve(maybePromise).catch((err) => {\n this._logger.error(\"Error during provider initialization:\", err);\n });\n return this;\n }\n getProvider(domain) {\n return this.getProviderForClient(domain);\n }\n setContext(domainOrContext, contextOrUndefined) {\n return __async(this, null, function* () {\n var _a, _b;\n const domain = stringOrUndefined(domainOrContext);\n const context = (_b = (_a = objectOrUndefined(domainOrContext)) != null ? _a : objectOrUndefined(contextOrUndefined)) != null ? _b : {};\n if (domain) {\n const wrapper = this._domainScopedProviders.get(domain);\n if (wrapper) {\n const oldContext = this.getContext(domain);\n this._domainScopedContext.set(domain, context);\n yield this.runProviderContextChangeHandler(domain, wrapper, oldContext, context);\n } else {\n this._domainScopedContext.set(domain, context);\n }\n } else {\n const oldContext = this._context;\n this._context = context;\n const unboundProviders = Array.from(this._domainScopedProviders.entries()).filter(([domain2]) => !this._domainScopedContext.has(domain2)).reduce((acc, [domain2, wrapper]) => {\n acc.push({ domain: domain2, wrapper });\n return acc;\n }, []);\n const allDomainRecords = [\n // add in the default (no domain)\n { domain: void 0, wrapper: this._defaultProvider },\n ...unboundProviders\n ];\n yield Promise.all(\n allDomainRecords.map((dm) => this.runProviderContextChangeHandler(dm.domain, dm.wrapper, oldContext, context))\n );\n }\n });\n }\n getContext(domainOrUndefined) {\n const domain = stringOrUndefined(domainOrUndefined);\n if (domain) {\n const context = this._domainScopedContext.get(domain);\n if (context) {\n return context;\n } else {\n this._logger.debug(`Unable to find context for '${domain}'.`);\n }\n }\n return this._context;\n }\n clearContext(domainOrUndefined) {\n return __async(this, null, function* () {\n const domain = stringOrUndefined(domainOrUndefined);\n if (domain) {\n const wrapper = this._domainScopedProviders.get(domain);\n if (wrapper) {\n const oldContext = this.getContext(domain);\n this._domainScopedContext.delete(domain);\n const newContext = this.getContext();\n yield this.runProviderContextChangeHandler(domain, wrapper, oldContext, newContext);\n } else {\n this._domainScopedContext.delete(domain);\n }\n } else {\n return this.setContext({});\n }\n });\n }\n /**\n * Resets the global evaluation context and removes the evaluation context for\n * all domains.\n */\n clearContexts() {\n return __async(this, null, function* () {\n yield this.clearContext();\n yield Promise.allSettled(Array.from(this._domainScopedProviders.keys()).map((domain) => this.clearContext(domain)));\n });\n }\n /**\n * A factory function for creating new domain-scoped OpenFeature clients. Clients\n * can contain their own state (e.g. logger, hook, context). Multiple domains\n * can be used to segment feature flag configuration.\n *\n * If there is already a provider bound to this name via {@link this.setProvider setProvider}, this provider will be used.\n * Otherwise, the default provider is used until a provider is assigned to that name.\n * @param {string} domain An identifier which logically binds clients with providers\n * @param {string} version The version of the client (only used for metadata)\n * @returns {Client} OpenFeature Client\n */\n getClient(domain, version) {\n return new OpenFeatureClient(\n // functions are passed here to make sure that these values are always up to date,\n // and so we don't have to make these public properties on the API class.\n () => this.getProviderForClient(domain),\n () => this.getProviderStatus(domain),\n () => this.buildAndCacheEventEmitterForClient(domain),\n (domain2) => this.getContext(domain2),\n () => this.getHooks(),\n () => this._logger,\n { domain, version }\n );\n }\n /**\n * Clears all registered providers and resets the default provider.\n * @returns {Promise<void>}\n */\n clearProviders() {\n return __async(this, null, function* () {\n yield __superGet(_OpenFeatureAPI.prototype, this, \"clearProvidersAndSetDefault\").call(this, NOOP_PROVIDER);\n this._domainScopedContext.clear();\n });\n }\n runProviderContextChangeHandler(domain, wrapper, oldContext, newContext) {\n return __async(this, null, function* () {\n var _a, _b, _c, _d, _e, _f;\n const providerName = ((_b = (_a = wrapper.provider) == null ? void 0 : _a.metadata) == null ? void 0 : _b.name) || \"unnamed-provider\";\n try {\n if (typeof wrapper.provider.onContextChange === \"function\") {\n const maybePromise = wrapper.provider.onContextChange(oldContext, newContext);\n if (maybePromise && typeof (maybePromise == null ? void 0 : maybePromise.then) === \"function\") {\n wrapper.incrementPendingContextChanges();\n wrapper.status = this._statusEnumType.RECONCILING;\n this.getAssociatedEventEmitters(domain).forEach((emitter) => {\n emitter == null ? void 0 : emitter.emit(ClientProviderEvents.Reconciling, { domain, providerName });\n });\n (_c = this._apiEmitter) == null ? void 0 : _c.emit(ClientProviderEvents.Reconciling, { domain, providerName });\n yield maybePromise;\n wrapper.decrementPendingContextChanges();\n }\n }\n wrapper.status = this._statusEnumType.READY;\n if (wrapper.allContextChangesSettled) {\n this.getAssociatedEventEmitters(domain).forEach((emitter) => {\n emitter == null ? void 0 : emitter.emit(ClientProviderEvents.ContextChanged, { clientName: domain, domain, providerName });\n });\n (_d = this._apiEmitter) == null ? void 0 : _d.emit(ClientProviderEvents.ContextChanged, { clientName: domain, domain, providerName });\n }\n } catch (err) {\n wrapper.decrementPendingContextChanges();\n wrapper.status = this._statusEnumType.ERROR;\n if (wrapper.allContextChangesSettled) {\n const error = err;\n const message = `Error running ${providerName}'s context change handler: ${error == null ? void 0 : error.message}`;\n (_e = this._logger) == null ? void 0 : _e.error(`${message}`, err);\n this.getAssociatedEventEmitters(domain).forEach((emitter) => {\n emitter == null ? void 0 : emitter.emit(ClientProviderEvents.Error, { clientName: domain, domain, providerName, message });\n });\n (_f = this._apiEmitter) == null ? void 0 : _f.emit(ClientProviderEvents.Error, { clientName: domain, domain, providerName, message });\n }\n }\n });\n }\n};\nvar OpenFeature = OpenFeatureAPI.getInstance();\n\n// src/index.ts\nexport * from \"@openfeature/core\";\nexport {\n InMemoryProvider,\n NOOP_PROVIDER,\n OpenFeature,\n OpenFeatureAPI,\n OpenFeatureEventEmitter,\n ClientProviderEvents as ProviderEvents,\n ClientProviderStatus as ProviderStatus\n};\n//# sourceMappingURL=index.js.map\n","import { lazy } from \"react\";\n//#region editors/document-model-editor/module.ts\nconst DocumentModelEditor = {\n\tconfig: {\n\t\tid: \"document-model-editor-v2\",\n\t\tname: \"Document Model Editor\"\n\t},\n\tdocumentTypes: [\"powerhouse/document-model\"],\n\tComponent: lazy(() => import(\"../../editor-BzhVjRaX.js\"))\n};\n//#endregion\nexport { DocumentModelEditor };\n\n//# sourceMappingURL=module.js.map","import { r as driveDocumentModelModule, u as documentModelDocumentModelModule } from \"./document-drive-sTKoi6L4.js\";\nimport { t as reactorDriveDocumentModelModule } from \"./dist-DXM8ccKa.js\";\nimport { DocumentModelEditor } from \"./editors/document-model-editor/module.js\";\nimport { GenericDriveExplorer } from \"./editors/generic-drive-explorer/module.js\";\n//#region powerhouse.manifest.json\nvar powerhouse_manifest_default = {\n\tname: \"Common\",\n\tdescription: \"Common\",\n\tcategory: \"Common\",\n\tpublisher: {\n\t\t\"name\": \"@powerhousedao\",\n\t\t\"url\": \"https://github.com/powerhouse-inc/powerhouse/tree/main/packages/powerhouse-vetra-packages\"\n\t},\n\tdocumentModels: [\n\t\t{\n\t\t\t\"id\": \"powerhouse/package\",\n\t\t\t\"name\": \"Vetra Package\"\n\t\t},\n\t\t{\n\t\t\t\"id\": \"powerhouse/document-editor\",\n\t\t\t\"name\": \"Document Editor\"\n\t\t},\n\t\t{\n\t\t\t\"id\": \"powerhouse/subgraph-module\",\n\t\t\t\"name\": \"Subgraph Module\"\n\t\t},\n\t\t{\n\t\t\t\"id\": \"powerhouse/processor\",\n\t\t\t\"name\": \"Processor Module\"\n\t\t},\n\t\t{\n\t\t\t\"id\": \"powerhouse/app\",\n\t\t\t\"name\": \"App Module\"\n\t\t}\n\t],\n\teditors: [\n\t\t{\n\t\t\t\"id\": \"vetra-package-editor\",\n\t\t\t\"name\": \"Vetra Package Editor\",\n\t\t\t\"documentTypes\": [\"powerhouse/package\"]\n\t\t},\n\t\t{\n\t\t\t\"id\": \"document-editor-editor\",\n\t\t\t\"name\": \"Document Editor\",\n\t\t\t\"documentTypes\": [\"powerhouse/document-editor\"]\n\t\t},\n\t\t{\n\t\t\t\"id\": \"subgraph-module-editor\",\n\t\t\t\"name\": \"Subgraph Module Editor\",\n\t\t\t\"documentTypes\": [\"powerhouse/subgraph-module\"]\n\t\t},\n\t\t{\n\t\t\t\"id\": \"processor-module-editor\",\n\t\t\t\"name\": \"Processor Module Editor\",\n\t\t\t\"documentTypes\": [\"powerhouse/processor\"]\n\t\t},\n\t\t{\n\t\t\t\"id\": \"app-module-editor\",\n\t\t\t\"name\": \"App Module Editor\",\n\t\t\t\"documentTypes\": [\"powerhouse/app\"]\n\t\t}\n\t],\n\tapps: [{\n\t\t\"id\": \"vetra-drive-app\",\n\t\t\"name\": \"Vetra Drive App\",\n\t\t\"app\": \"vetra-drive-app\"\n\t}],\n\tsubgraphs: [],\n\timportScripts: []\n};\n//#endregion\n//#region document-models/document-models.ts\nconst documentModels = [\n\tdocumentModelDocumentModelModule,\n\tdriveDocumentModelModule,\n\treactorDriveDocumentModelModule\n];\n//#endregion\n//#region editors/editors.ts\nconst editors = [DocumentModelEditor, GenericDriveExplorer];\n//#endregion\n//#region index.ts\nconst manifest = powerhouse_manifest_default;\n//#endregion\nexport { documentModels, editors, manifest };\n\n//# sourceMappingURL=index.js.map","//#region powerhouse.manifest.json\nvar name = \"@powerhousedao/vetra\";\nvar description = \"Vetra package\";\nvar category = \"\";\nvar publisher = {\n\t\"name\": \"@powerhousedao\",\n\t\"url\": \"https://github.com/powerhouse-inc/powerhouse/tree/main/packages/vetra\"\n};\nvar documentModels = [\n\t{\n\t\t\"id\": \"powerhouse/package\",\n\t\t\"name\": \"Vetra Package\"\n\t},\n\t{\n\t\t\"id\": \"powerhouse/document-editor\",\n\t\t\"name\": \"Document Editor\"\n\t},\n\t{\n\t\t\"id\": \"powerhouse/subgraph\",\n\t\t\"name\": \"Subgraph Module\"\n\t},\n\t{\n\t\t\"id\": \"powerhouse/processor\",\n\t\t\"name\": \"Processor Module\"\n\t},\n\t{\n\t\t\"id\": \"powerhouse/app\",\n\t\t\"name\": \"App Module\"\n\t}\n];\nvar apps = [{\n\t\"id\": \"vetra-drive-app\",\n\t\"name\": \"Vetra Drive App\"\n}];\nvar editors = [\n\t{\n\t\t\"id\": \"vetra-package-editor\",\n\t\t\"name\": \"Vetra Package Editor\",\n\t\t\"documentTypes\": [\"powerhouse/package\"]\n\t},\n\t{\n\t\t\"id\": \"document-editor-editor\",\n\t\t\"name\": \"Document Editor\",\n\t\t\"documentTypes\": [\"powerhouse/document-editor\"]\n\t},\n\t{\n\t\t\"id\": \"subgraph-module-editor\",\n\t\t\"name\": \"Subgraph Module Editor\",\n\t\t\"documentTypes\": [\"powerhouse/subgraph\"]\n\t},\n\t{\n\t\t\"id\": \"processor-module-editor\",\n\t\t\"name\": \"Processor Module Editor\",\n\t\t\"documentTypes\": [\"powerhouse/processor\"]\n\t},\n\t{\n\t\t\"id\": \"app-editor\",\n\t\t\"name\": \"App Editor\",\n\t\t\"documentTypes\": [\"powerhouse/app\"]\n\t}\n];\nvar processors = [{\n\t\"id\": \"codegen\",\n\t\"name\": \"codegen\"\n}, {\n\t\"id\": \"vetra-read-model\",\n\t\"name\": \"vetra-read-model\"\n}];\nvar subgraphs = [];\nvar config = [];\nvar powerhouse_manifest_default = {\n\tname,\n\tdescription,\n\tcategory,\n\tpublisher,\n\tdocumentModels,\n\tapps,\n\teditors,\n\tprocessors,\n\tsubgraphs,\n\tconfig\n};\n//#endregion\nexport { apps, category, config, powerhouse_manifest_default as default, description, documentModels, editors, name, processors, publisher, subgraphs };\n\n//# sourceMappingURL=powerhouse.manifest.js.map","import { t as __exportAll } from \"./chunk-pbuEa-1d.js\";\nimport { f as reducer, p as actions, r as utils$1 } from \"./utils-CkWB3DRk.js\";\nimport { createState, defaultBaseState } from \"document-model\";\n//#region document-models/processor-module/v1/gen/document-model.ts\nconst documentModel = {\n\tid: \"powerhouse/processor\",\n\tname: \"Processor Module\",\n\tauthor: {\n\t\tname: \"Powerhouse\",\n\t\twebsite: \"https://powerhouse.inc\"\n\t},\n\textension: \".processor\",\n\tdescription: \"Declares a processor (a server-side function that reacts to document operations to build read models, send notifications, sync to external systems, etc.) shipped by a Vetra Reactor Package. Create one Processor Module document per processor: pick the processor type, list the document types it subscribes to, attach it to any drive apps that should run it, and mark it CONFIRMED to trigger codegen of the processor scaffold under `processors/`.\",\n\tspecifications: [{\n\t\tstate: {\n\t\t\tlocal: {\n\t\t\t\tschema: \"\",\n\t\t\t\texamples: [],\n\t\t\t\tinitialValue: \"\"\n\t\t\t},\n\t\t\tglobal: {\n\t\t\t\tschema: \"\\\"\\\"\\\"\\nConfiguration for a processor contributed by the package. A processor receives\\noperations from documents of matching types and runs server-side logic (e.g.\\nbuilding a read model, indexing, syncing to an external system).\\n\\\"\\\"\\\"\\ntype ProcessorModuleState {\\n \\\"\\\"\\\"Display name of the processor. Also determines the generated folder name under `processors/`.\\\"\\\"\\\"\\n name: String!\\n \\\"\\\"\\\"Processor implementation kind (e.g. 'read-model', 'relational-db'). Determines which scaffold codegen emits.\\\"\\\"\\\"\\n type: String!\\n \\\"\\\"\\\"Document types this processor subscribes to. Each entry has a stable id so it can be removed individually.\\\"\\\"\\\"\\n documentTypes: [DocumentTypeItem!]!\\n \\\"\\\"\\\"Lifecycle status. While DRAFT the processor definition is editable and codegen is skipped; switching to CONFIRMED triggers scaffold generation.\\\"\\\"\\\"\\n status: StatusType!\\n \\\"\\\"\\\"Drive-app names this processor is attached to. The processor runs in the context of each listed app.\\\"\\\"\\\"\\n processorApps: [String!]!\\n}\\n\\n\\\"\\\"\\\"A document type id (e.g. 'my-org/invoice') attached to the processor with a stable entry id.\\\"\\\"\\\"\\ntype DocumentTypeItem {\\n \\\"\\\"\\\"Stable identifier for the entry; used to remove it.\\\"\\\"\\\"\\n id: OID!\\n \\\"\\\"\\\"Document type id this processor subscribes to.\\\"\\\"\\\"\\n documentType: String!\\n}\\n\\n\\\"\\\"\\\"\\nLifecycle status of a module definition.\\n- DRAFT: still being edited; codegen does not run.\\n- CONFIRMED: locked in; codegen produces the corresponding scaffold.\\n\\\"\\\"\\\"\\nenum StatusType {\\n DRAFT\\n CONFIRMED\\n}\",\n\t\t\t\texamples: [],\n\t\t\t\tinitialValue: \"{\\n \\\"name\\\": \\\"\\\",\\n \\\"type\\\": \\\"\\\",\\n \\\"documentTypes\\\": [],\\n \\\"status\\\": \\\"DRAFT\\\",\\n \\\"processorApps\\\": []\\n}\"\n\t\t\t}\n\t\t},\n\t\tmodules: [{\n\t\t\tid: \"91ad39c1-4e8b-4127-b3c8-e835b85e6360\",\n\t\t\tname: \"base_operations\",\n\t\t\tdescription: \"Set the processor's identity, kind, lifecycle status, subscribed document types, and attached drive apps.\",\n\t\t\toperations: [\n\t\t\t\t{\n\t\t\t\t\tid: \"6f3a5c90-39f2-4302-a073-6195a71c5054\",\n\t\t\t\t\tname: \"SET_PROCESSOR_NAME\",\n\t\t\t\t\tdescription: \"Set the display name of the processor. Also determines the generated folder name under `processors/`.\",\n\t\t\t\t\tschema: \"input SetProcessorNameInput {\\n name: String!\\n}\",\n\t\t\t\t\ttemplate: \"\",\n\t\t\t\t\treducer: \"\",\n\t\t\t\t\terrors: [],\n\t\t\t\t\texamples: [],\n\t\t\t\t\tscope: \"global\"\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tid: \"b8f28bb4-c6ae-40e6-86fa-29ef14ff8667\",\n\t\t\t\t\tname: \"SET_PROCESSOR_TYPE\",\n\t\t\t\t\tdescription: \"Set the processor implementation kind (e.g. 'read-model', 'relational-db'). Determines which scaffold codegen emits.\",\n\t\t\t\t\tschema: \"input SetProcessorTypeInput {\\n type: String!\\n}\",\n\t\t\t\t\ttemplate: \"\",\n\t\t\t\t\treducer: \"\",\n\t\t\t\t\terrors: [],\n\t\t\t\t\texamples: [],\n\t\t\t\t\tscope: \"global\"\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tid: \"fbbd7a71-c495-4efc-b8f6-1e57798dbbb4\",\n\t\t\t\t\tname: \"ADD_DOCUMENT_TYPE\",\n\t\t\t\t\tdescription: \"Subscribe the processor to a document type. Caller supplies a stable id so the entry can be removed later.\",\n\t\t\t\t\tschema: \"input AddDocumentTypeInput {\\n id: OID!\\n documentType: String!\\n}\",\n\t\t\t\t\ttemplate: \"\",\n\t\t\t\t\treducer: \"\",\n\t\t\t\t\terrors: [],\n\t\t\t\t\texamples: [],\n\t\t\t\t\tscope: \"global\"\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tid: \"544d413f-423c-4d97-9570-84a19bffeab9\",\n\t\t\t\t\tname: \"REMOVE_DOCUMENT_TYPE\",\n\t\t\t\t\tdescription: \"Unsubscribe the processor from a document type by removing its entry id.\",\n\t\t\t\t\tschema: \"input RemoveDocumentTypeInput {\\n id: OID!\\n}\",\n\t\t\t\t\ttemplate: \"\",\n\t\t\t\t\treducer: \"\",\n\t\t\t\t\terrors: [],\n\t\t\t\t\texamples: [],\n\t\t\t\t\tscope: \"global\"\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tid: \"df5eb500-7308-498c-9b80-028878ee198b\",\n\t\t\t\t\tname: \"ADD_PROCESSOR_APP\",\n\t\t\t\t\tdescription: \"Attach the processor to a drive app by name. The processor will run in the context of that app.\",\n\t\t\t\t\tschema: \"input AddProcessorAppInput {\\n processorApp: String!\\n}\",\n\t\t\t\t\ttemplate: \"\",\n\t\t\t\t\treducer: \"\",\n\t\t\t\t\terrors: [],\n\t\t\t\t\texamples: [],\n\t\t\t\t\tscope: \"global\"\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tid: \"07e4168f-1a7b-41ef-953d-219028be7bb9\",\n\t\t\t\t\tname: \"REMOVE_PROCESSOR_APP\",\n\t\t\t\t\tdescription: \"Detach the processor from a drive app by name. No-op if the app is not currently attached.\",\n\t\t\t\t\tschema: \"input RemoveProcessorAppInput {\\n processorApp: String!\\n}\",\n\t\t\t\t\ttemplate: \"\",\n\t\t\t\t\treducer: \"\",\n\t\t\t\t\terrors: [],\n\t\t\t\t\texamples: [],\n\t\t\t\t\tscope: \"global\"\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tid: \"7b6706eb-5e25-4d64-829a-e3a251380fd1\",\n\t\t\t\t\tname: \"SET_PROCESSOR_STATUS\",\n\t\t\t\t\tdescription: \"Move the processor between DRAFT and CONFIRMED. Codegen only runs once the status is CONFIRMED.\",\n\t\t\t\t\tschema: \"input SetProcessorStatusInput {\\n status: StatusType!\\n}\",\n\t\t\t\t\ttemplate: \"\",\n\t\t\t\t\treducer: \"\",\n\t\t\t\t\terrors: [],\n\t\t\t\t\texamples: [],\n\t\t\t\t\tscope: \"global\"\n\t\t\t\t}\n\t\t\t]\n\t\t}],\n\t\tversion: 1,\n\t\tchangeLog: []\n\t}]\n};\n//#endregion\n//#region document-models/processor-module/v1/src/utils.ts\nvar utils_exports = /* @__PURE__ */ __exportAll({});\n//#endregion\n//#region document-models/processor-module/v1/utils.ts\n/** Utils for the ProcessorModule document model */\nconst utils = {\n\t...utils$1,\n\t...utils_exports\n};\n//#endregion\n//#region document-models/processor-module/v1/module.ts\n/** Document model module for the ProcessorModule document type */\nconst ProcessorModule = {\n\tversion: 1,\n\treducer,\n\tactions,\n\tutils,\n\tdocumentModel: createState(defaultBaseState(), documentModel)\n};\n//#endregion\nexport { utils as n, documentModel as r, ProcessorModule as t };\n\n//# sourceMappingURL=module-mtR8W4L4.js.map","import { t as __exportAll } from \"./chunk-pbuEa-1d.js\";\nimport { f as reducer, p as actions, r as utils$1 } from \"./utils-BiV3cs9Y.js\";\nimport { createState, defaultBaseState } from \"document-model\";\n//#region document-models/subgraph-module/v1/gen/document-model.ts\nconst documentModel = {\n\tid: \"powerhouse/subgraph\",\n\tname: \"Subgraph Module\",\n\tauthor: {\n\t\tname: \"Powerhouse\",\n\t\twebsite: \"https://powerhouse.inc\"\n\t},\n\textension: \".subgraph\",\n\tdescription: \"Declares a GraphQL subgraph (a slice of the Switchboard API contributed by the package) shipped by a Vetra Reactor Package. Create one Subgraph Module document per subgraph, then mark it CONFIRMED to trigger codegen of the subgraph scaffold under `subgraphs/` — the resolvers and schema you flesh out there are stitched into the Switchboard graph at runtime.\",\n\tspecifications: [{\n\t\tstate: {\n\t\t\tlocal: {\n\t\t\t\tschema: \"\",\n\t\t\t\texamples: [],\n\t\t\t\tinitialValue: \"\"\n\t\t\t},\n\t\t\tglobal: {\n\t\t\t\tschema: \"\\\"\\\"\\\"\\nConfiguration for a GraphQL subgraph contributed by the package. The subgraph\\nis served by Switchboard and stitched into the unified Powerhouse API.\\n\\\"\\\"\\\"\\ntype SubgraphModuleState {\\n \\\"\\\"\\\"Display name of the subgraph. Also determines the generated folder name under `subgraphs/` and the route segment Switchboard mounts it at.\\\"\\\"\\\"\\n name: String!\\n \\\"\\\"\\\"Lifecycle status. While DRAFT the subgraph definition is editable and codegen is skipped; switching to CONFIRMED triggers scaffold generation.\\\"\\\"\\\"\\n status: StatusType!\\n}\\n\\n\\\"\\\"\\\"\\nLifecycle status of a module definition.\\n- DRAFT: still being edited; codegen does not run.\\n- CONFIRMED: locked in; codegen produces the corresponding scaffold.\\n\\\"\\\"\\\"\\nenum StatusType {\\n DRAFT\\n CONFIRMED\\n}\",\n\t\t\t\texamples: [],\n\t\t\t\tinitialValue: \"{\\n \\\"name\\\": \\\"\\\",\\n \\\"status\\\": \\\"DRAFT\\\"\\n}\"\n\t\t\t}\n\t\t},\n\t\tmodules: [{\n\t\t\tid: \"8af5bda9-6fc7-4427-bfed-1d32d76a552f\",\n\t\t\tname: \"base_operations\",\n\t\t\tdescription: \"Set the subgraph's identity and lifecycle status.\",\n\t\t\toperations: [{\n\t\t\t\tid: \"d7cd6b6b-01ea-42c8-97e2-288e04b50b42\",\n\t\t\t\tname: \"SET_SUBGRAPH_NAME\",\n\t\t\t\tdescription: \"Set the display name of the subgraph. Also determines the generated folder under `subgraphs/` and the route segment Switchboard mounts it at.\",\n\t\t\t\tschema: \"input SetSubgraphNameInput {\\n name: String!\\n}\",\n\t\t\t\ttemplate: \"\",\n\t\t\t\treducer: \"\",\n\t\t\t\terrors: [],\n\t\t\t\texamples: [],\n\t\t\t\tscope: \"global\"\n\t\t\t}, {\n\t\t\t\tid: \"5a20e641-dc36-428e-8924-ecb07f3f1b94\",\n\t\t\t\tname: \"SET_SUBGRAPH_STATUS\",\n\t\t\t\tdescription: \"Move the subgraph between DRAFT and CONFIRMED. Codegen only runs once the status is CONFIRMED.\",\n\t\t\t\tschema: \"input SetSubgraphStatusInput {\\n status: StatusType!\\n}\",\n\t\t\t\ttemplate: \"\",\n\t\t\t\treducer: \"\",\n\t\t\t\terrors: [],\n\t\t\t\texamples: [],\n\t\t\t\tscope: \"global\"\n\t\t\t}]\n\t\t}],\n\t\tversion: 1,\n\t\tchangeLog: []\n\t}]\n};\n//#endregion\n//#region document-models/subgraph-module/v1/src/utils.ts\nvar utils_exports = /* @__PURE__ */ __exportAll({});\n//#endregion\n//#region document-models/subgraph-module/v1/utils.ts\n/** Utils for the SubgraphModule document model */\nconst utils = {\n\t...utils$1,\n\t...utils_exports\n};\n//#endregion\n//#region document-models/subgraph-module/v1/module.ts\n/** Document model module for the SubgraphModule document type */\nconst SubgraphModule = {\n\tversion: 1,\n\treducer,\n\tactions,\n\tutils,\n\tdocumentModel: createState(defaultBaseState(), documentModel)\n};\n//#endregion\nexport { utils as n, documentModel as r, SubgraphModule as t };\n\n//# sourceMappingURL=module-C0jUPu9F.js.map","import { lazy } from \"react\";\n//#region editors/app-editor/module.ts\n/** Document editor module for the \"powerhouse/app\" document type */\nconst AppEditor = {\n\tComponent: lazy(() => import(\"./editor-CVCLxUhe.js\")),\n\tdocumentTypes: [\"powerhouse/app\"],\n\tconfig: {\n\t\tid: \"app-editor\",\n\t\tname: \"AppEditor\"\n\t}\n};\n//#endregion\n//#region editors/document-editor/module.ts\n/** Document editor module for the \"powerhouse/document-editor\" document type */\nconst DocumentEditorEditor = {\n\tComponent: lazy(() => import(\"./editor-DnG2Zzet.js\")),\n\tdocumentTypes: [\"powerhouse/document-editor\"],\n\tconfig: {\n\t\tid: \"document-editor-editor\",\n\t\tname: \"Document Editor Editor\"\n\t}\n};\n//#endregion\n//#region editors/processor-editor/module.ts\n/** Document editor module for the \"powerhouse/processor\" document type */\nconst ProcessorModuleEditor = {\n\tComponent: lazy(() => import(\"./editor-B560eld_.js\")),\n\tdocumentTypes: [\"powerhouse/processor\"],\n\tconfig: {\n\t\tid: \"processor-module-editor\",\n\t\tname: \"Processor Module Editor\"\n\t}\n};\n//#endregion\n//#region editors/subgraph-editor/module.ts\n/** Document editor module for the \"powerhouse/subgraph\" document type */\nconst SubgraphModuleEditor = {\n\tComponent: lazy(() => import(\"./editor-CAVHtR-v.js\")),\n\tdocumentTypes: [\"powerhouse/subgraph\"],\n\tconfig: {\n\t\tid: \"subgraph-module-editor\",\n\t\tname: \"Subgraph Module Editor\"\n\t}\n};\n//#endregion\n//#region editors/vetra-drive-app/module.ts\nconst VetraDriveApp = {\n\tComponent: lazy(() => import(\"./editor-mor7dV6n.js\")),\n\tdocumentTypes: [\"powerhouse/document-drive\"],\n\tconfig: {\n\t\tid: \"vetra-drive-app\",\n\t\tname: \"Vetra Drive App\"\n\t}\n};\n//#endregion\n//#region editors/vetra-package/module.ts\n/** Document editor module for the \"powerhouse/package\" document type */\nconst VetraPackageEditor = {\n\tComponent: lazy(() => import(\"./editor-xCnDas6c.js\")),\n\tdocumentTypes: [\"powerhouse/package\"],\n\tconfig: {\n\t\tid: \"vetra-package-editor\",\n\t\tname: \"Vetra Package Editor\"\n\t}\n};\n//#endregion\nexport { DocumentEditorEditor as a, ProcessorModuleEditor as i, VetraDriveApp as n, AppEditor as o, SubgraphModuleEditor as r, VetraPackageEditor as t };\n\n//# sourceMappingURL=module-DySsSIQV.js.map","import powerhouse_manifest_default from \"./powerhouse.manifest.js\";\nimport { t as AppModule } from \"./module-CRq_lUkG.js\";\nimport { t as DocumentEditor } from \"./module-DP3bVbak.js\";\nimport { t as ProcessorModule } from \"./module-mtR8W4L4.js\";\nimport { t as SubgraphModule } from \"./module-C0jUPu9F.js\";\nimport { t as VetraPackage } from \"./module-1hr_ne9w.js\";\nimport { a as DocumentEditorEditor, i as ProcessorModuleEditor, n as VetraDriveApp, o as AppEditor, r as SubgraphModuleEditor, t as VetraPackageEditor } from \"./module-DySsSIQV.js\";\n//#region document-models/document-models.ts\n/**\n* WARNING: DO NOT EDIT\n* This file is auto-generated and updated by codegen\n*/\nconst documentModels = [\n\tAppModule,\n\tDocumentEditor,\n\tProcessorModule,\n\tSubgraphModule,\n\tVetraPackage\n];\n//#endregion\n//#region editors/editors.ts\nconst editors = [\n\tAppEditor,\n\tDocumentEditorEditor,\n\tProcessorModuleEditor,\n\tSubgraphModuleEditor,\n\tVetraDriveApp,\n\tVetraPackageEditor\n];\n//#endregion\n//#region index.ts\nconst manifest = powerhouse_manifest_default;\n//#endregion\nexport { documentModels, editors, manifest };\n\n//# sourceMappingURL=index.js.map","\n!function(){try{var e=\"undefined\"!=typeof window?window:\"undefined\"!=typeof global?global:\"undefined\"!=typeof globalThis?globalThis:\"undefined\"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]=\"d17abc36-680f-59c7-9a6f-834f46f065ea\")}catch(e){}}();\nimport { n as getRuntimeConfig } from \"./runtime-config-DL3QjcfM.js\";\nimport { n as buildPHGlobalConfig, o as phGlobalConfig } from \"./connect.config-Bt4pvvWV.js\";\nimport { a as loadPGliteModule, g as RELATIONAL_PGLITE_NAME, h as REACTOR_PGLITE_NAME, n as detectRelationalPgMajor, s as resolvePgMajorForRuntime, t as detectReactorPgMajor } from \"./pglite-runtime-Ch2YeUAA.js\";\nimport { n as toast } from \"./toast-BEy42aYx.js\";\nimport { createRelationalDb } from \"@powerhousedao/shared/processors\";\nimport { BrowserLocalStorage, ChannelScheme, DocumentCache, DocumentChangeType, ReactorBuilder, ReactorClientBuilder, RegistryClient, addPHEventHandlers, addRemoteDrive, createAnalyticsStore, extractDriveSlugFromPath, extractNodeSlugFromPath, getDrives, login, refreshReactorDataClient, setAttachmentService, setDefaultPHGlobalConfig, setDocumentCache, setDriveMetadata, setDrives, setFeatures, setPHToast, setPackageDiscoveryService, setReactorClient, setReactorClientModule, setRenown, setSelectedDrive, setSelectedNode, setVetraPackageManager, waitForDocumentReady } from \"@powerhousedao/reactor-browser\";\nimport { ConsoleLogger, logger, setLogLevel as setLogLevel$1 } from \"document-model\";\nimport { BrowserKeyStorage, RenownBuilder, RenownCryptoBuilder, createSignatureVerifier } from \"@renown/sdk\";\nimport { Kysely } from \"kysely\";\nimport { PGliteDialect } from \"kysely-pglite-dialect\";\nimport { createAttachmentClient, createRemoteAttachmentService } from \"@powerhousedao/reactor-attachments/client\";\nimport { OpenFeature } from \"@openfeature/web-sdk\";\nimport * as common from \"@powerhousedao/powerhouse-vetra-packages\";\nimport commonPkg from \"@powerhousedao/powerhouse-vetra-packages/package.json\" with { type: \"json\" };\nimport * as vetra from \"@powerhousedao/vetra\";\nimport vetraPkg from \"@powerhousedao/vetra/package.json\" with { type: \"json\" };\n//#region src/utils/reactor.ts\n/**\n* Creates a Reactor that plugs into legacy storage but syncs through the new\n* Reactor GQL API.\n*/\nasync function createBrowserReactor(documentModelModules, upgradeManifests, renown, documentModelLoader) {\n\tconst signerConfig = {\n\t\tsigner: renown.signer,\n\t\tverifier: createSignatureVerifier()\n\t};\n\tconst jwtHandler = async (_url) => {\n\t\tif (!renown.user) return;\n\t\treturn renown.getBearerToken({ expiresIn: 10 });\n\t};\n\tconst major = resolvePgMajorForRuntime(await detectReactorPgMajor());\n\tif (major !== 17) console.warn(`[reactor] Running against legacy PGlite data dir (Postgres ${major}). Migrate to PG17 from the banner or the Inspector → Debug tab.`);\n\tconst { PGlite } = await loadPGliteModule(major);\n\tconst pg = new PGlite(`idb://${REACTOR_PGLITE_NAME}`, { relaxedDurability: true });\n\tconst logger = new ConsoleLogger([\"reactor-client\"]);\n\tconst builder = new ReactorClientBuilder().withLogger(logger).withSigner(signerConfig).withReactorBuilder(new ReactorBuilder().withDocumentModels(documentModelModules).withUpgradeManifests(upgradeManifests).withChannelScheme(ChannelScheme.CONNECT).withJwtHandler(jwtHandler).withKysely(new Kysely({ dialect: new PGliteDialect(pg) })));\n\tif (documentModelLoader) builder.withDocumentModelLoader(documentModelLoader);\n\treturn {\n\t\t...await builder.buildModule(),\n\t\tpg\n\t};\n}\nfunction getDefaultDrives(runtimeConfig) {\n\treturn runtimeConfig.connect.drives?.defaultDrives ?? [];\n}\n/**\n* A drive add failed because the switchboard rejected the (anonymous or\n* unverified) caller — Forbidden/Unauthorized — rather than a transient\n* reachability error. Drives the login prompt instead of retrying.\n*/\nfunction isDriveAuthError(error) {\n\tconst message = error instanceof Error ? error.message : String(error);\n\treturn /forbidden|unauthorized|insufficient permissions|\\b401\\b|\\b403\\b/i.test(message);\n}\n/**\n* Add default drives for the new reactor via sync manager.\n*\n* Drives register concurrently so a slow or unreachable drive can't delay the\n* others — in particular the one the URL slug resolves to. Retries with linear\n* backoff to handle the common race where Connect's dev server is ready before\n* the switchboard has finished binding its port.\n*\n* @param drives - Array of drive objects with url, optional name and icon\n*/\nasync function addDefaultDrivesForNewReactor(drives) {\n\tconst MAX_ATTEMPTS = 3;\n\tconst BACKOFF_MS = 2e3;\n\tawait Promise.all(drives.map(async (drive) => {\n\t\tlet driveId;\n\t\tfor (let attempt = 1; attempt <= MAX_ATTEMPTS; attempt++) try {\n\t\t\tdriveId = await addRemoteDrive(drive.url);\n\t\t\tbreak;\n\t\t} catch (error) {\n\t\t\tif (isDriveAuthError(error)) break;\n\t\t\tif (attempt === MAX_ATTEMPTS) console.error(`Failed to add default drive ${drive.url} after ${MAX_ATTEMPTS} attempts:`, error);\n\t\t\telse {\n\t\t\t\tconst delay = BACKOFF_MS * attempt;\n\t\t\t\tconsole.warn(`Default drive ${drive.url} not reachable (attempt ${attempt}/${MAX_ATTEMPTS}), retrying in ${delay}ms...`);\n\t\t\t\tawait new Promise((resolve) => setTimeout(resolve, delay));\n\t\t\t}\n\t\t}\n\t\tif (driveId && (drive.name || drive.icon)) try {\n\t\t\tconst reactorClient = window.ph?.reactorClient;\n\t\t\tif (reactorClient) await waitForDocumentReady(reactorClient, driveId, { timeoutMs: 15e3 });\n\t\t\tawait setDriveMetadata(driveId, {\n\t\t\t\tname: drive.name,\n\t\t\t\ticon: drive.icon\n\t\t\t});\n\t\t} catch (error) {\n\t\t\tconsole.warn(`Default drive ${drive.url} was added but metadata update failed:`, error);\n\t\t}\n\t}));\n}\n//#endregion\n//#region src/feature-flags.ts\n/**\n* QueryParamProvider reads feature flags from URL query parameters.\n*\n* Usage:\n* const params = new URLSearchParams(window.location.search);\n* const provider = new QueryParamProvider(params);\n* await OpenFeature.setProviderAndWait(provider);\n*\n* Query parameter format:\n* ?FEATURE_DUAL_ACTION_CREATE_ENABLED=true&FEATURE_FOO=false\n*/\nvar QueryParamProvider = class {\n\trunsOn = \"client\";\n\tmetadata = { name: \"QueryParamProvider\" };\n\tflags;\n\tconstructor(searchParams) {\n\t\tthis.flags = /* @__PURE__ */ new Map();\n\t\tfor (const [key, value] of searchParams.entries()) this.flags.set(key, value);\n\t}\n\tresolveBooleanEvaluation(flagKey, defaultValue) {\n\t\tconst value = this.flags.get(flagKey);\n\t\tif (value === void 0) return {\n\t\t\tvalue: defaultValue,\n\t\t\treason: \"DEFAULT\"\n\t\t};\n\t\treturn {\n\t\t\tvalue: value.toLowerCase() === \"true\" || value === \"1\",\n\t\t\treason: \"STATIC\",\n\t\t\tvariant: value\n\t\t};\n\t}\n\tresolveStringEvaluation(flagKey, defaultValue) {\n\t\tconst value = this.flags.get(flagKey);\n\t\tif (value === void 0) return {\n\t\t\tvalue: defaultValue,\n\t\t\treason: \"DEFAULT\"\n\t\t};\n\t\treturn {\n\t\t\tvalue,\n\t\t\treason: \"STATIC\",\n\t\t\tvariant: value\n\t\t};\n\t}\n\tresolveNumberEvaluation(flagKey, defaultValue) {\n\t\tconst value = this.flags.get(flagKey);\n\t\tif (value === void 0) return {\n\t\t\tvalue: defaultValue,\n\t\t\treason: \"DEFAULT\"\n\t\t};\n\t\tconst numValue = Number(value);\n\t\tif (isNaN(numValue)) return {\n\t\t\tvalue: defaultValue,\n\t\t\treason: \"ERROR\",\n\t\t\terrorCode: \"PARSE_ERROR\",\n\t\t\terrorMessage: `Failed to parse \"${value}\" as a number`\n\t\t};\n\t\treturn {\n\t\t\tvalue: numValue,\n\t\t\treason: \"STATIC\",\n\t\t\tvariant: value\n\t\t};\n\t}\n\tresolveObjectEvaluation(flagKey, defaultValue) {\n\t\tconst value = this.flags.get(flagKey);\n\t\tif (value === void 0) return {\n\t\t\tvalue: defaultValue,\n\t\t\treason: \"DEFAULT\"\n\t\t};\n\t\ttry {\n\t\t\treturn {\n\t\t\t\tvalue: JSON.parse(value),\n\t\t\t\treason: \"STATIC\",\n\t\t\t\tvariant: value\n\t\t\t};\n\t\t} catch (error) {\n\t\t\treturn {\n\t\t\t\tvalue: defaultValue,\n\t\t\t\treason: \"ERROR\",\n\t\t\t\terrorCode: \"PARSE_ERROR\",\n\t\t\t\terrorMessage: `Failed to parse JSON: ${error instanceof Error ? error.message : String(error)}`\n\t\t\t};\n\t\t}\n\t}\n};\n/**\n* Initialize OpenFeature with the QueryParamProvider.\n* Reads feature flags from query parameters.\n*/\nasync function initFeatureFlags(searchParams) {\n\tconst params = searchParams ?? (typeof window !== \"undefined\" ? new URLSearchParams(window.location.search) : new URLSearchParams());\n\tconst provider = new QueryParamProvider(params);\n\tawait OpenFeature.setProviderAndWait(provider);\n\tconst features = /* @__PURE__ */ new Map();\n\tconst logLevelParam = params.get(\"LOG_LEVEL\");\n\tif (logLevelParam) {\n\t\tconst validLogLevels = [\n\t\t\t\"verbose\",\n\t\t\t\"debug\",\n\t\t\t\"info\",\n\t\t\t\"warn\",\n\t\t\t\"error\"\n\t\t];\n\t\tif (validLogLevels.includes(logLevelParam.toLowerCase())) {\n\t\t\tsetLogLevel$1(logLevelParam.toLowerCase());\n\t\t\tlogger.info(\"Log level set to @level via query param\", logLevelParam.toLowerCase());\n\t\t} else logger.warn(\"Invalid LOG_LEVEL query param: @param. Valid values: @validLevels\", logLevelParam, validLogLevels.join(\", \"));\n\t}\n\treturn features;\n}\n//#endregion\n//#region src/no-registry-discovery.ts\n/**\n* Discovery service used when no package registry is configured. Every load\n* for an unknown document type is recorded as a failure with reason\n* \"no-registry\" so the UI can surface the issue; the modal install flow is a\n* no-op because there is no registry to query.\n*/\nvar NoRegistryDiscoveryService = class {\n\t#packageManager;\n\t#failed = /* @__PURE__ */ new Map();\n\t#failedMemo = [];\n\t#failedSubscribers = /* @__PURE__ */ new Set();\n\t#eventSubscribers = /* @__PURE__ */ new Set();\n\tconstructor(packageManager) {\n\t\tthis.#packageManager = packageManager;\n\t}\n\tload(documentType) {\n\t\tconst existing = this.#findModuleInLoadedPackages(documentType);\n\t\tif (existing) {\n\t\t\tthis.#clearFailed(documentType);\n\t\t\treturn Promise.resolve(existing);\n\t\t}\n\t\tthis.#recordFailure(documentType);\n\t\treturn Promise.reject(/* @__PURE__ */ new Error(`No package registry configured; cannot resolve \"${documentType}\"`));\n\t}\n\tpromptInstallation() {}\n\tapproveInstallation() {\n\t\treturn Promise.resolve();\n\t}\n\tdismissInstallation() {}\n\tgetPendingInstallations() {\n\t\treturn [];\n\t}\n\tsubscribePending() {\n\t\treturn () => {};\n\t}\n\tgetFailedInstallations() {\n\t\treturn this.#failedMemo;\n\t}\n\tsubscribeFailed(listener) {\n\t\tthis.#failedSubscribers.add(listener);\n\t\treturn () => {\n\t\t\tthis.#failedSubscribers.delete(listener);\n\t\t};\n\t}\n\tsubscribeEvents(listener) {\n\t\tthis.#eventSubscribers.add(listener);\n\t\treturn () => {\n\t\t\tthis.#eventSubscribers.delete(listener);\n\t\t};\n\t}\n\tretryInstallation(documentType) {\n\t\tthis.#recordFailure(documentType);\n\t\treturn Promise.resolve();\n\t}\n\t#findModuleInLoadedPackages(documentType) {\n\t\treturn this.#packageManager.packages.flatMap((p) => p.documentModels).find((m) => m.documentModel.global.id === documentType);\n\t}\n\t#recordFailure(documentType) {\n\t\tthis.#failed.set(documentType, {\n\t\t\tdocumentType,\n\t\t\treason: \"no-registry\",\n\t\t\tpackageNames: [],\n\t\t\terror: null\n\t\t});\n\t\tthis.#emitEvent({\n\t\t\ttype: \"load-failed\",\n\t\t\tdocumentType,\n\t\t\treason: \"no-registry\"\n\t\t});\n\t\tthis.#notifyFailedChanged();\n\t}\n\t#clearFailed(documentType) {\n\t\tif (this.#failed.delete(documentType)) this.#notifyFailedChanged();\n\t}\n\t#notifyFailedChanged() {\n\t\tthis.#failedMemo = Array.from(this.#failed.values());\n\t\tfor (const listener of this.#failedSubscribers) listener();\n\t}\n\t#emitEvent(event) {\n\t\tfor (const listener of this.#eventSubscribers) listener(event);\n\t}\n};\n//#endregion\n//#region src/package-discovery.ts\nvar PackageDiscoveryService = class {\n\t#packageManager;\n\t#registryClient;\n\t#mode;\n\t#deferred = /* @__PURE__ */ new Map();\n\t#pending = /* @__PURE__ */ new Map();\n\t#pendingMemo = [];\n\t#pendingSubscribers = /* @__PURE__ */ new Set();\n\t#failed = /* @__PURE__ */ new Map();\n\t#failedMemo = [];\n\t#failedSubscribers = /* @__PURE__ */ new Set();\n\t#eventSubscribers = /* @__PURE__ */ new Set();\n\t#dismissedStorage;\n\t#discoveredTypes = /* @__PURE__ */ new Map();\n\tconstructor(packageManager, registryClient, options) {\n\t\tthis.#packageManager = packageManager;\n\t\tthis.#registryClient = registryClient;\n\t\tthis.#mode = options.mode;\n\t\tthis.#dismissedStorage = new BrowserLocalStorage(options.storageKey + \":PH_DISMISSED_TYPES\");\n\t}\n\tload(documentType) {\n\t\tconst existing = this.#findModuleInLoadedPackages(documentType);\n\t\tif (existing) {\n\t\t\tthis.#clearFailed(documentType);\n\t\t\treturn Promise.resolve(existing);\n\t\t}\n\t\tif (this.#dismissedStorage.has(documentType)) {\n\t\t\tthis.#recordFailure(documentType, \"dismissed\", [], null);\n\t\t\treturn Promise.reject(/* @__PURE__ */ new Error(`Document type \"${documentType}\" was dismissed`));\n\t\t}\n\t\tconst tracked = this.#deferred.get(documentType);\n\t\tif (tracked) return tracked.promise;\n\t\treturn this.#discover(documentType);\n\t}\n\tpromptInstallation(documentType) {\n\t\tconst packageNames = this.#discoveredTypes.get(documentType);\n\t\tif (!packageNames) return;\n\t\tif (this.#pending.has(documentType)) return;\n\t\tthis.#discoveredTypes.delete(documentType);\n\t\tthis.#addToPending(documentType, packageNames);\n\t}\n\tasync approveInstallation(packageName) {\n\t\tconst affectedTypes = this.#findTypesByPackage(packageName);\n\t\tif (affectedTypes.length === 0) return;\n\t\tconst result = await this.#packageManager.addPackage(packageName);\n\t\tif (result.type === \"error\") {\n\t\t\tthis.#emitEvent({\n\t\t\t\ttype: \"installation-failed\",\n\t\t\t\tpackageName,\n\t\t\t\terror: result.error\n\t\t\t});\n\t\t\tfor (const documentType of affectedTypes) {\n\t\t\t\tconst entry = this.#deferred.get(documentType);\n\t\t\t\tif (entry) {\n\t\t\t\t\tentry.reject(result.error);\n\t\t\t\t\tthis.#deferred.delete(documentType);\n\t\t\t\t\tthis.#pending.delete(documentType);\n\t\t\t\t}\n\t\t\t\tthis.#recordFailure(documentType, \"install-failed\", [packageName], result.error);\n\t\t\t}\n\t\t\tthis.#notifyPendingChanged();\n\t\t\treturn;\n\t\t}\n\t\tthis.#emitEvent({\n\t\t\ttype: \"installation-approved\",\n\t\t\tpackageName,\n\t\t\tdocumentTypes: affectedTypes\n\t\t});\n\t\tfor (const documentType of affectedTypes) {\n\t\t\tconst entry = this.#deferred.get(documentType);\n\t\t\tif (!entry) continue;\n\t\t\tconst module = this.#findModuleInLoadedPackages(documentType);\n\t\t\tif (module) {\n\t\t\t\tentry.resolve(module);\n\t\t\t\tthis.#clearFailed(documentType);\n\t\t\t} else {\n\t\t\t\tconst error = /* @__PURE__ */ new Error(`Package \"${packageName}\" installed but module for \"${documentType}\" not found`);\n\t\t\t\tentry.reject(error);\n\t\t\t\tthis.#recordFailure(documentType, \"install-failed\", [packageName], error);\n\t\t\t}\n\t\t\tthis.#deferred.delete(documentType);\n\t\t\tthis.#pending.delete(documentType);\n\t\t}\n\t\tthis.#notifyPendingChanged();\n\t}\n\tdismissInstallation(packageName) {\n\t\tconst affectedTypes = this.#findTypesByPackage(packageName);\n\t\tif (affectedTypes.length === 0) return;\n\t\tfor (const documentType of affectedTypes) {\n\t\t\tthis.#dismissedStorage.set(documentType, true);\n\t\t\tconst entry = this.#deferred.get(documentType);\n\t\t\tif (entry) entry.reject(/* @__PURE__ */ new Error(`Document type \"${documentType}\" was dismissed`));\n\t\t\tthis.#deferred.delete(documentType);\n\t\t\tthis.#pending.delete(documentType);\n\t\t\tthis.#discoveredTypes.delete(documentType);\n\t\t\tthis.#recordFailure(documentType, \"dismissed\", [packageName], null);\n\t\t}\n\t\tthis.#emitEvent({\n\t\t\ttype: \"installation-dismissed\",\n\t\t\tpackageName,\n\t\t\tdocumentTypes: affectedTypes\n\t\t});\n\t\tthis.#notifyPendingChanged();\n\t}\n\tgetPendingInstallations() {\n\t\treturn this.#pendingMemo;\n\t}\n\tsubscribePending(listener) {\n\t\tthis.#pendingSubscribers.add(listener);\n\t\treturn () => {\n\t\t\tthis.#pendingSubscribers.delete(listener);\n\t\t};\n\t}\n\tgetFailedInstallations() {\n\t\treturn this.#failedMemo;\n\t}\n\tsubscribeFailed(listener) {\n\t\tthis.#failedSubscribers.add(listener);\n\t\treturn () => {\n\t\t\tthis.#failedSubscribers.delete(listener);\n\t\t};\n\t}\n\tsubscribeEvents(listener) {\n\t\tthis.#eventSubscribers.add(listener);\n\t\treturn () => {\n\t\t\tthis.#eventSubscribers.delete(listener);\n\t\t};\n\t}\n\tasync retryInstallation(documentType) {\n\t\tthis.#dismissedStorage.delete(documentType);\n\t\tthis.#clearFailed(documentType);\n\t\ttry {\n\t\t\tawait this.#discover(documentType);\n\t\t} catch {}\n\t}\n\tasync #discover(documentType) {\n\t\tlet packageNames;\n\t\ttry {\n\t\t\tpackageNames = await this.#registryClient.getPackagesByDocumentType(documentType);\n\t\t} catch (error) {\n\t\t\tconst normalized = error instanceof Error ? error : new Error(String(error));\n\t\t\tthis.#emitEvent({\n\t\t\t\ttype: \"registry-query-failed\",\n\t\t\t\tdocumentType,\n\t\t\t\terror: normalized\n\t\t\t});\n\t\t\tthis.#recordFailure(documentType, \"registry-error\", [], normalized);\n\t\t\treturn Promise.reject(normalized);\n\t\t}\n\t\tif (packageNames.length === 0) {\n\t\t\tthis.#recordFailure(documentType, \"not-in-registry\", [], null);\n\t\t\treturn Promise.reject(/* @__PURE__ */ new Error(`No packages found for document type \"${documentType}\"`));\n\t\t}\n\t\tconst entry = this.#createDeferredEntry(documentType, packageNames);\n\t\tthis.#emitEvent({\n\t\t\ttype: \"type-discovered\",\n\t\t\tdocumentType,\n\t\t\tpackageNames\n\t\t});\n\t\tif (this.#mode === \"immediate\") this.#addToPending(documentType, packageNames);\n\t\telse this.#discoveredTypes.set(documentType, packageNames);\n\t\treturn entry.promise;\n\t}\n\t#createDeferredEntry(documentType, packageNames) {\n\t\tlet resolve;\n\t\tlet reject;\n\t\tconst promise = new Promise((res, rej) => {\n\t\t\tresolve = res;\n\t\t\treject = rej;\n\t\t});\n\t\tconst entry = {\n\t\t\tpackageNames,\n\t\t\tresolve,\n\t\t\treject,\n\t\t\tpromise\n\t\t};\n\t\tthis.#deferred.set(documentType, entry);\n\t\treturn entry;\n\t}\n\t#addToPending(documentType, packageNames) {\n\t\tconst installation = {\n\t\t\tdocumentType,\n\t\t\tpackageNames\n\t\t};\n\t\tthis.#pending.set(documentType, installation);\n\t\tthis.#emitEvent({\n\t\t\ttype: \"installation-prompted\",\n\t\t\tdocumentType,\n\t\t\tpackageNames\n\t\t});\n\t\tthis.#notifyPendingChanged();\n\t}\n\t#findModuleInLoadedPackages(documentType) {\n\t\treturn this.#packageManager.packages.flatMap((p) => p.documentModels).find((m) => m.documentModel.global.id === documentType);\n\t}\n\t#findTypesByPackage(packageName) {\n\t\tconst types = [];\n\t\tfor (const [documentType, entry] of this.#deferred) if (entry.packageNames.includes(packageName)) types.push(documentType);\n\t\treturn types;\n\t}\n\t#notifyPendingChanged() {\n\t\tthis.#pendingMemo = Array.from(this.#pending.values());\n\t\tfor (const listener of this.#pendingSubscribers) listener();\n\t}\n\t#notifyFailedChanged() {\n\t\tthis.#failedMemo = Array.from(this.#failed.values());\n\t\tfor (const listener of this.#failedSubscribers) listener();\n\t}\n\t#recordFailure(documentType, reason, packageNames, error) {\n\t\tthis.#failed.set(documentType, {\n\t\t\tdocumentType,\n\t\t\treason,\n\t\t\tpackageNames,\n\t\t\terror\n\t\t});\n\t\tthis.#emitEvent({\n\t\t\ttype: \"load-failed\",\n\t\t\tdocumentType,\n\t\t\treason\n\t\t});\n\t\tthis.#notifyFailedChanged();\n\t}\n\t#clearFailed(documentType) {\n\t\tif (this.#failed.delete(documentType)) this.#notifyFailedChanged();\n\t}\n\t#emitEvent(event) {\n\t\tfor (const listener of this.#eventSubscribers) listener(event);\n\t}\n};\n//#endregion\n//#region src/package-manager.ts\n/**\n* Strip any `@tag` / `@version` suffix from a package spec, returning the bare\n* package name. Mirrors `parsePackageSpec` on the UI side.\n*/\nfunction parseBareName(spec) {\n\tconst trimmed = spec.trim();\n\tconst at = trimmed.startsWith(\"@\") ? trimmed.lastIndexOf(\"@\") : trimmed.indexOf(\"@\");\n\treturn at > 0 ? trimmed.slice(0, at) : trimmed;\n}\nasync function fetchPackageJsonVersion(baseUrl) {\n\ttry {\n\t\tconst res = await fetch(baseUrl);\n\t\tif (!res.ok) return void 0;\n\t\tconst pkg = await res.json();\n\t\treturn typeof pkg.version === \"string\" ? pkg.version : void 0;\n\t} catch {\n\t\treturn;\n\t}\n}\nconst LOCAL_PACKAGE_NAME = \"Local\";\nvar BrowserPackageManager = class {\n\tregistryUrl;\n\t#storage;\n\t#packages = /* @__PURE__ */ new Map();\n\t#subscribers = /* @__PURE__ */ new Set();\n\t#packagesMemo = [];\n\t#stylesheets = /* @__PURE__ */ new Map();\n\t#localPackage;\n\t#cdnUrl;\n\t#localPackageVersion;\n\t#localPackageNames = new Set([LOCAL_PACKAGE_NAME]);\n\tconstructor(namespace, registryUrl) {\n\t\tthis.#storage = new BrowserLocalStorage(namespace + \":PH_PACKAGES\");\n\t\tthis.registryUrl = registryUrl;\n\t\tthis.#cdnUrl = registryUrl !== null ? this.#toCdnUrl(registryUrl) : null;\n\t}\n\t#toCdnUrl(baseUrl) {\n\t\tif (baseUrl.includes(\"/-/cdn\")) return baseUrl;\n\t\treturn `${baseUrl.endsWith(\"/\") ? baseUrl.slice(0, -1) : baseUrl}/-/cdn`;\n\t}\n\tasync init(localPackage, localPackageVersion) {\n\t\tthis.addLocalPackage(common.manifest.name, common, commonPkg.version);\n\t\tthis.addLocalPackage(vetra.manifest.name, vetra, vetraPkg.version);\n\t\tif (localPackage) this.updateLocalPackage(localPackage, localPackageVersion);\n\t\tfor (const packageName of this.#storage.keys()) {\n\t\t\tconst specForReload = this.#storage.get(packageName)?.spec ?? packageName;\n\t\t\tconsole.debug(`[Connect][PackageManager] Rehydrating \"${packageName}\" via spec \"${specForReload}\"`);\n\t\t\tif ((await this.addPackage(specForReload)).type === \"error\") this.#storage.delete(packageName);\n\t\t}\n\t}\n\taddLocalPackage(name, loadedPackage, version) {\n\t\tthis.#localPackageNames.add(name);\n\t\tthis.#registerPackage({\n\t\t\tname,\n\t\t\timportUrl: null,\n\t\t\tstylesheetUrl: null,\n\t\t\tloadedPackage,\n\t\t\tversion\n\t\t});\n\t}\n\tupdateLocalPackage(pkg, version) {\n\t\tconsole.debug(\"Updating local package:\", pkg);\n\t\tthis.#localPackage = pkg;\n\t\tthis.#registerPackage({\n\t\t\tname: LOCAL_PACKAGE_NAME,\n\t\t\tstylesheetUrl: null,\n\t\t\timportUrl: null,\n\t\t\tloadedPackage: pkg\n\t\t});\n\t\tif (version) {\n\t\t\tthis.#localPackageVersion = version;\n\t\t\tthis.#notifyPackagesChanged();\n\t\t\treturn;\n\t\t}\n\t\tfetchPackageJsonVersion(\"/package.json\").then((fetchedVersion) => {\n\t\t\tthis.#localPackageVersion = fetchedVersion;\n\t\t\tif (fetchedVersion) this.#notifyPackagesChanged();\n\t\t}).catch(() => {});\n\t}\n\tget packages() {\n\t\treturn this.#packagesMemo;\n\t}\n\tget cdnUrl() {\n\t\treturn this.#cdnUrl;\n\t}\n\tgetPackageSource(packageName) {\n\t\tif (this.#localPackageNames.has(packageName)) return \"common\";\n\t\tif (packageName === this.#localPackage?.manifest.name) return \"project\";\n\t\tconst packageMeta = this.#storage.get(packageName);\n\t\tif (!packageMeta) return null;\n\t\tif (packageMeta.importUrl === `/node_modules/${packageName}`) return \"local-install\";\n\t\treturn \"registry-install\";\n\t}\n\t/**\n\t* Return the registry-installed packages keyed by their storage name (which\n\t* is the registry spec, e.g. \"@powerhousedao/clint-common\"), with the\n\t* installed version when known. Excludes bundled (common) packages, the\n\t* local project package, and packages resolved out of `/node_modules/`.\n\t*/\n\tgetRegistryPackages() {\n\t\tconst out = [];\n\t\tfor (const [name, meta] of this.#storage) {\n\t\t\tif (this.#localPackageNames.has(name)) continue;\n\t\t\tif (name === LOCAL_PACKAGE_NAME) continue;\n\t\t\tif (meta.importUrl === `/node_modules/${name}`) continue;\n\t\t\tout.push({\n\t\t\t\tname,\n\t\t\t\tversion: meta.version\n\t\t\t});\n\t\t}\n\t\treturn out;\n\t}\n\tgetPackageVersion(packageName) {\n\t\tif (packageName === this.#localPackage?.manifest.name) return this.#localPackageVersion;\n\t\treturn this.#storage.get(packageName)?.version;\n\t}\n\tasync addPackage(packageSpec) {\n\t\tconst bareName = parseBareName(packageSpec);\n\t\tconst hasTagOrVersion = bareName !== packageSpec;\n\t\tconsole.debug(`[Connect][PackageManager] addPackage spec=\"${packageSpec}\" bareName=\"${bareName}\"`);\n\t\tconst existingPackage = this.#packages.get(bareName);\n\t\tif (existingPackage) {\n\t\t\tconst requestedVersion = hasTagOrVersion ? packageSpec.slice(bareName.length + 1) : void 0;\n\t\t\tconst currentVersion = this.#storage.get(bareName)?.version;\n\t\t\tif (this.#localPackageNames.has(bareName) || !requestedVersion || !currentVersion || requestedVersion === currentVersion) {\n\t\t\t\tconsole.debug(`[Connect][PackageManager] \"${bareName}\" already loaded; skipping re-fetch`);\n\t\t\t\treturn {\n\t\t\t\t\ttype: \"success\",\n\t\t\t\t\tpackage: existingPackage\n\t\t\t\t};\n\t\t\t}\n\t\t\tconsole.debug(`[Connect][PackageManager] \"${bareName}\" version bump ${currentVersion} → ${requestedVersion}; refetching`);\n\t\t}\n\t\ttry {\n\t\t\tconst packageWithMeta = await this.#loadPackage(packageSpec);\n\t\t\tpackageWithMeta.name = bareName;\n\t\t\tif (hasTagOrVersion) packageWithMeta.spec = packageSpec;\n\t\t\tif (existingPackage) this.#unmountStylesheet(bareName);\n\t\t\tthis.#registerPackage(packageWithMeta);\n\t\t\treturn {\n\t\t\t\ttype: \"success\",\n\t\t\t\tpackage: packageWithMeta.loadedPackage\n\t\t\t};\n\t\t} catch (error) {\n\t\t\tconst normalized = error instanceof Error ? error : new Error(String(error));\n\t\t\tconsole.error(`[Connect][PackageManager] Failed to install package \"${packageSpec}\": ${normalized.message}`, normalized);\n\t\t\treturn {\n\t\t\t\ttype: \"error\",\n\t\t\t\terror: normalized\n\t\t\t};\n\t\t}\n\t}\n\tasync addPackages(packageNames) {\n\t\tconst results = [];\n\t\tfor (const packageName of packageNames) {\n\t\t\tconst result = await this.addPackage(packageName);\n\t\t\tresults.push(result);\n\t\t}\n\t\treturn results;\n\t}\n\tremovePackage(name) {\n\t\tthis.#packages.delete(name);\n\t\tthis.#storage.delete(name);\n\t\tthis.#unmountStylesheet(name);\n\t\tthis.#notifyPackagesChanged();\n\t}\n\tsubscribe(handler) {\n\t\tthis.#subscribers.add(handler);\n\t\treturn () => {\n\t\t\tthis.#subscribers.delete(handler);\n\t\t};\n\t}\n\tload(documentType) {\n\t\tconst documentModelModule = Array.from(this.#packages.values().flatMap((p) => p.documentModels)).find((m) => m.documentModel.global.id === documentType);\n\t\tif (documentModelModule) return Promise.resolve(documentModelModule);\n\t\treturn Promise.reject(/* @__PURE__ */ new Error(\"Model not available\"));\n\t}\n\tasync #loadPackageFromNodeModules(name) {\n\t\tconst importUrl = `/node_modules/${name}/browser/index.js`;\n\t\tconst stylesheetUrl = `/node_modules/${name}/style.css`;\n\t\tconst packageWithMeta = await this.#importPackage({\n\t\t\tname,\n\t\t\timportUrl,\n\t\t\tstylesheetUrl\n\t\t});\n\t\tpackageWithMeta.version = await fetchPackageJsonVersion(`/node_modules/${name}/package.json`);\n\t\treturn packageWithMeta;\n\t}\n\tasync #loadPackageFromRegistry(name) {\n\t\tconst importUrl = `${this.#cdnUrl}/${name}/browser/index.js`;\n\t\tconst stylesheetUrl = `${this.#cdnUrl}/${name}/style.css`;\n\t\tconst packageWithMeta = await this.#importPackage({\n\t\t\tname,\n\t\t\timportUrl,\n\t\t\tstylesheetUrl\n\t\t});\n\t\tpackageWithMeta.version = await fetchPackageJsonVersion(`${this.#cdnUrl}/${name}/package.json`);\n\t\treturn packageWithMeta;\n\t}\n\tasync #importPackage(packageMeta) {\n\t\tconst { name, importUrl, stylesheetUrl } = packageMeta;\n\t\tif (!importUrl) throw new Error(`Import url not defined for package \"${name}\".`);\n\t\treturn {\n\t\t\tname,\n\t\t\tloadedPackage: await import(\n\t\t\t\t/* @vite-ignore */\n\t\t\t\timportUrl\n),\n\t\t\timportUrl,\n\t\t\tstylesheetUrl\n\t\t};\n\t}\n\tasync #loadPackage(packageName) {\n\t\tif (this.#localPackageNames.has(packageName)) throw new Error(`Package \"${packageName}\" is a local package and cannot be loaded dynamically.`);\n\t\tif (!import.meta.env.PROD) try {\n\t\t\treturn await this.#loadPackageFromNodeModules(packageName);\n\t\t} catch (error) {\n\t\t\tconsole.warn(`Failed to load package \"${packageName}\" from node_modules:`, error);\n\t\t}\n\t\tif (!this.registryUrl) throw new Error(\"Registry url not defined.\");\n\t\treturn await this.#loadPackageFromRegistry(packageName);\n\t}\n\t#registerPackage(packageWithMeta) {\n\t\tconst { name, loadedPackage, importUrl, stylesheetUrl, version, spec } = packageWithMeta;\n\t\tif (stylesheetUrl !== null) this.#mountStylesheet(name, stylesheetUrl);\n\t\tthis.#packages.set(name, loadedPackage);\n\t\tthis.#storage.set(name, {\n\t\t\tname,\n\t\t\timportUrl,\n\t\t\tstylesheetUrl,\n\t\t\tversion,\n\t\t\t...spec ? { spec } : {}\n\t\t});\n\t\tconsole.debug(`[Connect][PackageManager] Registered \"${name}\" (version=${version ?? \"?\"}, spec=${spec ?? \"—\"})`);\n\t\tthis.#notifyPackagesChanged();\n\t}\n\t#mountStylesheet(name, href) {\n\t\tconst existing = this.#stylesheets.get(name);\n\t\tif (existing) return existing;\n\t\tconst style = document.createElement(\"style\");\n\t\tstyle.textContent = `@import url(\"${href}\") layer(external-packages);`;\n\t\tdocument.head.appendChild(style);\n\t\tthis.#stylesheets.set(name, style);\n\t}\n\t#unmountStylesheet(name) {\n\t\tconst style = this.#stylesheets.get(name);\n\t\tif (!style) return;\n\t\tstyle.remove();\n\t\tthis.#stylesheets.delete(name);\n\t}\n\t#notifyPackagesChanged() {\n\t\tthis.#packagesMemo = Array.from(this.#packages.values());\n\t\tconst packages = this.packages;\n\t\tthis.#subscribers.forEach((handler) => {\n\t\t\thandler({ packages });\n\t\t});\n\t}\n};\n//#endregion\n//#region src/pglite.db.ts\nasync function createPGliteWorkerForMajor(major) {\n\tconst meta = { dbName: RELATIONAL_PGLITE_NAME };\n\tif (major === 16) {\n\t\tconst [legacyWorker, legacyLive] = await Promise.all([import(\"pglite-legacy-02/worker\"), import(\"pglite-legacy-02/live\")]);\n\t\tconst worker = new Worker(new URL(\"./pglite.worker.legacy.js\", import.meta.url), { type: \"module\" });\n\t\treturn legacyWorker.PGliteWorker.create(worker, {\n\t\t\tmeta,\n\t\t\textensions: { live: legacyLive.live }\n\t\t});\n\t}\n\tconst [{ PGliteWorker }, { live }] = await Promise.all([import(\"@electric-sql/pglite/worker\"), import(\"@electric-sql/pglite/live\")]);\n\tconst worker = new Worker(new URL(\"./pglite.worker.js\", import.meta.url), { type: \"module\" });\n\treturn PGliteWorker.create(worker, {\n\t\tmeta,\n\t\textensions: { live }\n\t});\n}\nasync function getDb() {\n\tconst major = resolvePgMajorForRuntime(await detectRelationalPgMajor());\n\tif (major !== 17) console.warn(`[reactor] Relational worker is opening legacy Postgres ${major} data dir. Migrate to PG17 from the banner or the Inspector → Debug tab.`);\n\tconst pgLite = await createPGliteWorkerForMajor(major);\n\treturn {\n\t\tpgLite,\n\t\trelationalDb: createRelationalDb(new Kysely({ dialect: new PGliteDialect(pgLite) }))\n\t};\n}\n//#endregion\n//#region src/store/processor-host-module.ts\nvar NullAttachmentService = class {\n\treserve() {\n\t\treturn Promise.reject(/* @__PURE__ */ new Error(\"NullAttachmentService: no attachment service configured\"));\n\t}\n\tstat() {\n\t\treturn Promise.reject(/* @__PURE__ */ new Error(\"NullAttachmentService: no attachment service configured\"));\n\t}\n\tget() {\n\t\treturn Promise.reject(/* @__PURE__ */ new Error(\"NullAttachmentService: no attachment service configured\"));\n\t}\n};\nasync function createProcessorHostModule(reactorClient, readModels, attachmentService) {\n\ttry {\n\t\tconst { pgLite, relationalDb } = await getDb();\n\t\tconst { store: analyticsStore } = await createAnalyticsStore({ pgLite });\n\t\treturn {\n\t\t\trelationalDb,\n\t\t\tanalyticsStore,\n\t\t\tprocessorApp: \"connect\",\n\t\t\tclient: reactorClient,\n\t\t\tattachments: createAttachmentClient(attachmentService ?? new NullAttachmentService()),\n\t\t\tdispatch: { async execute(docId, branch, actions, signal) {\n\t\t\t\tconst jobInfo = await reactorClient.executeAsync(docId, branch, actions, signal);\n\t\t\t\treturn {\n\t\t\t\t\tid: jobInfo.id,\n\t\t\t\t\tstatus: jobInfo.status\n\t\t\t\t};\n\t\t\t} },\n\t\t\tgetReadModel(name) {\n\t\t\t\tconst model = readModels.find((m) => m.name === name);\n\t\t\t\tif (!model) throw new Error(`Read model \"${name}\" not found`);\n\t\t\t\treturn model;\n\t\t\t}\n\t\t};\n\t} catch (error) {\n\t\tconsole.error(`Failed to initialize processor host module:`);\n\t\tconsole.error(error);\n\t}\n}\n//#endregion\n//#region src/store/reactor.ts\n/**\n* Subscribe to the `/__packages` SSE channel exposed by ph-clint's\n* static-mode `connect-server.js`. On each `packages-changed` event the\n* server sends the full live list; we diff against what the packageManager\n* already has loaded and call `addPackage`/`removePackage` to converge.\n*\n* Best-effort — silently no-ops when the SSE endpoint doesn't exist\n* (e.g. running under vite dev, or hosted somewhere without this protocol).\n*/\nfunction subscribeToPackagesChannel(packageManager) {\n\tif (typeof window === \"undefined\" || typeof EventSource === \"undefined\") return;\n\tlet source;\n\ttry {\n\t\tsource = new EventSource(\"/__packages\");\n\t} catch (err) {\n\t\tconsole.debug(\"[Connect] /__packages subscribe failed:\", err);\n\t\treturn;\n\t}\n\tlet firstEvent = true;\n\tsource.addEventListener(\"packages-changed\", (event) => {\n\t\ttry {\n\t\t\tconst payload = JSON.parse(event.data);\n\t\t\tif (!Array.isArray(payload.packages)) return;\n\t\t\tconst next = payload.packages.filter((p) => typeof p === \"string\");\n\t\t\tconst parseBare = (spec) => {\n\t\t\t\tconst at = spec.startsWith(\"@\") ? spec.lastIndexOf(\"@\") : spec.indexOf(\"@\");\n\t\t\t\tif (at > 0) return {\n\t\t\t\t\tbareName: spec.slice(0, at),\n\t\t\t\t\tversion: spec.slice(at + 1)\n\t\t\t\t};\n\t\t\t\treturn { bareName: spec };\n\t\t\t};\n\t\t\tconst currentByName = new Map(packageManager.getRegistryPackages().map(({ name, version }) => [name, version]));\n\t\t\tconst nextByName = /* @__PURE__ */ new Map();\n\t\t\tfor (const spec of next) {\n\t\t\t\tconst { bareName, version } = parseBare(spec);\n\t\t\t\tnextByName.set(bareName, version);\n\t\t\t}\n\t\t\tconst isFirst = firstEvent;\n\t\t\tfirstEvent = false;\n\t\t\tfor (const name of currentByName.keys()) if (!nextByName.has(name)) {\n\t\t\t\tpackageManager.removePackage(name);\n\t\t\t\tif (!isFirst) toast(`Removed package ${name}`, { type: \"connect-deleted\" });\n\t\t\t}\n\t\t\tfor (const spec of next) {\n\t\t\t\tconst { bareName, version } = parseBare(spec);\n\t\t\t\tconst currentVersion = currentByName.get(bareName);\n\t\t\t\tconst isKnown = currentByName.has(bareName);\n\t\t\t\tif (isKnown && (!version || !currentVersion || version === currentVersion)) continue;\n\t\t\t\tconst isUpdate = isKnown;\n\t\t\t\tPromise.resolve(packageManager.addPackage(spec)).then((result) => {\n\t\t\t\t\tif (result.type === \"error\") {\n\t\t\t\t\t\tconsole.error(`[Connect] /__packages addPackage(${spec}) failed:`, result.error);\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\tif (isFirst) return;\n\t\t\t\t\tconst name = result.package.manifest.name;\n\t\t\t\t\ttoast(isUpdate ? `Updated package ${name}` : `Installed package ${name}`, { type: \"connect-success\" });\n\t\t\t\t}, (err) => {\n\t\t\t\t\tconsole.error(`[Connect] /__packages addPackage(${spec}) threw:`, err);\n\t\t\t\t});\n\t\t\t}\n\t\t} catch (err) {\n\t\t\tconsole.error(\"[Connect] /__packages event parse failed:\", err);\n\t\t}\n\t});\n\tsource.addEventListener(\"error\", () => {});\n}\nasync function clearReactorStorage() {\n\tawait window.ph?.reactorClientModule?.pg?.close();\n\tconst targets = (await indexedDB.databases()).map((d) => d.name).filter((n) => !!n && !n.startsWith(\"ph-pglite-backup::\") && /pglite|reactor/i.test(n));\n\tawait Promise.all(targets.map((name) => new Promise((resolve) => {\n\t\tconst req = indexedDB.deleteDatabase(name);\n\t\treq.onsuccess = req.onerror = req.onblocked = () => resolve();\n\t})));\n}\nasync function createReactor(localPackage) {\n\tif (!window.ph) window.ph = {};\n\tif (window.ph.loading) return;\n\twindow.ph.loading = true;\n\taddPHEventHandlers();\n\tsetPHToast(toast);\n\tconst features = await initFeatureFlags();\n\tlogger.info(\"Features: @features\", JSON.stringify(Object.fromEntries(features), null, 2));\n\tconst keyPairStorage = await BrowserKeyStorage.create();\n\tconst renownCrypto = await new RenownCryptoBuilder().withKeyPairStorage(keyPairStorage).build();\n\tconst renown = await new RenownBuilder(\"connect\", {\n\t\tbasename: phGlobalConfig.routerBasename,\n\t\tbaseUrl: phGlobalConfig.renownUrl\n\t}).withCrypto(renownCrypto).build();\n\tconst runtimeConfig = getRuntimeConfig();\n\tconst packageManager = new BrowserPackageManager(phGlobalConfig.routerBasename ?? \"\", runtimeConfig.packageRegistryUrl ?? null);\n\tsetVetraPackageManager(packageManager);\n\tawait packageManager.init(localPackage, runtimeConfig.localPackage?.version);\n\ttry {\n\t\tconst { default: registerBundledPackages } = await import(\"ph-bundled-packages-virtual\");\n\t\tregisterBundledPackages(packageManager);\n\t} catch {}\n\tconst remotePackages = runtimeConfig.packages.filter((p) => p.provider !== \"local\").map((p) => p.version ? `${p.packageName}@${p.version}` : p.packageName);\n\t(await packageManager.addPackages(remotePackages)).map((r) => {\n\t\tif (r.type === \"error\") console.error(r.error);\n\t});\n\tif (runtimeConfig.connect?.packages?.liveReload) subscribeToPackagesChannel(packageManager);\n\tconst documentModelModules = packageManager.packages.flatMap((pkg) => pkg.documentModels).filter((module, index, modules) => modules.findIndex((m) => m.documentModel.global.id === module.documentModel.global.id && m.version === module.version) === index);\n\tconst upgradeManifests = packageManager.packages.flatMap((pkg) => pkg.upgradeManifests).filter((manifest, index, manifests) => manifest !== void 0 && manifests.findIndex((m) => m && m.documentType === manifest.documentType) === index);\n\tconst discoveryService = packageManager.cdnUrl !== null ? new PackageDiscoveryService(packageManager, new RegistryClient(packageManager.cdnUrl), {\n\t\tmode: \"immediate\",\n\t\tstorageKey: phGlobalConfig.routerBasename ?? \"\"\n\t}) : new NoRegistryDiscoveryService(packageManager);\n\tsetPackageDiscoveryService(discoveryService);\n\tconst reactorClientModule = await createBrowserReactor(documentModelModules, upgradeManifests, renown, discoveryService);\n\tconst drives = await getDrives(reactorClientModule.client);\n\tawait login(getDidFromUrl(), renown);\n\tconst documentCache = new DocumentCache(reactorClientModule.client);\n\tsetDefaultPHGlobalConfig(buildPHGlobalConfig(phGlobalConfig.basePath ?? \"/\", phGlobalConfig.routerBasename ?? \"/\", runtimeConfig.connect ?? {}));\n\tconst path = window.location.pathname;\n\tconst driveSlug = extractDriveSlugFromPath(path);\n\tconst nodeSlug = extractNodeSlugFromPath(path);\n\tsetReactorClientModule(reactorClientModule);\n\tsetReactorClient(reactorClientModule.client);\n\tconst _defaultDrivesUrl = phGlobalConfig.defaultDrivesUrl;\n\tif (_defaultDrivesUrl) {\n\t\tlet switchboardOrigin;\n\t\ttry {\n\t\t\tswitchboardOrigin = new URL(_defaultDrivesUrl).origin;\n\t\t} catch {}\n\t\tif (switchboardOrigin) {\n\t\t\tconst attachmentJwtHandler = async (_url) => {\n\t\t\t\tif (!renown.user) return void 0;\n\t\t\t\treturn renown.getBearerToken({ expiresIn: 10 });\n\t\t\t};\n\t\t\tsetAttachmentService(createRemoteAttachmentService({\n\t\t\t\tremoteUrl: switchboardOrigin,\n\t\t\t\tjwtHandler: attachmentJwtHandler\n\t\t\t}));\n\t\t}\n\t}\n\tsetDocumentCache(documentCache);\n\tsetRenown(renown);\n\tsetDrives(drives);\n\tsetFeatures(features);\n\tconst defaultDrivesConfig = getDefaultDrives(runtimeConfig);\n\tif (defaultDrivesConfig.length > 0) addDefaultDrivesForNewReactor(defaultDrivesConfig).catch((error) => console.error(\"Failed to add default drives:\", error));\n\tconst remoteUrl = getDriveUrl();\n\tif (remoteUrl) addRemoteDrive(remoteUrl, void 0).catch((error) => console.error(`Failed to add remote drive from ${remoteUrl}:`, error));\n\tsetSelectedDrive(driveSlug);\n\tsetSelectedNode(nodeSlug);\n\tconst reactorClient = reactorClientModule.client;\n\treactorClient.subscribe({ type: \"powerhouse/document-drive\" }, (event) => {\n\t\tlogger.verbose(\"ReactorClient subscription event: @event\", event);\n\t\trefreshReactorDataClient(reactorClientModule.client).catch((e) => logger.error(\"@error\", e));\n\t});\n\treactorClient.subscribe({}, (event) => {\n\t\tif (event.type !== DocumentChangeType.Deleted) return;\n\t\tconst deletedId = event.context?.childId;\n\t\tif (!deletedId) return;\n\t\tconst selectedDriveId = window.ph?.selectedDriveId;\n\t\tconst selectedNodeId = window.ph?.selectedNodeId;\n\t\tif (selectedDriveId && deletedId === selectedDriveId) {\n\t\t\tsetSelectedDrive(void 0);\n\t\t\ttoast(\"The drive you were viewing has been deleted\");\n\t\t\treturn;\n\t\t}\n\t\tif (selectedNodeId && deletedId === selectedNodeId) {\n\t\t\tsetSelectedNode(void 0);\n\t\t\ttoast(\"The document you were editing has been deleted\");\n\t\t}\n\t});\n\tawait refreshReactorDataClient(reactorClientModule.client);\n\tconst packagesWithProcessorFactories = packageManager.packages.filter((pkg) => pkg.processorFactory !== void 0);\n\tif (packagesWithProcessorFactories.length > 0) {\n\t\tconst readModels = reactorClientModule.reactorModule?.readModelCoordinator?.readModels ?? [];\n\t\tconst processorHostModule = await createProcessorHostModule(reactorClientModule.client, readModels, window.ph?.attachmentService);\n\t\tif (processorHostModule !== void 0) await Promise.all(packagesWithProcessorFactories.map(async (pkg) => {\n\t\t\tconst { manifest, processorFactory } = pkg;\n\t\t\tconst name = manifest.name;\n\t\t\tconst id = manifest.name;\n\t\t\tconst version = packageManager.getPackageVersion(name);\n\t\t\tconst label = version ? `${name}@${version}` : name;\n\t\t\tlogger.info(\"Loading processor factory: @label\", label);\n\t\t\ttry {\n\t\t\t\tconst factory = await processorFactory?.(processorHostModule);\n\t\t\t\tif (!factory) return;\n\t\t\t\tawait reactorClientModule.reactorModule?.processorManager.registerFactory(id, factory);\n\t\t\t} catch (error) {\n\t\t\t\tlogger.error(`Error registering processor: @label`, label);\n\t\t\t\tlogger.error(\"@error\", error);\n\t\t\t}\n\t\t}));\n\t}\n\twindow.ph.loading = false;\n}\nfunction getDidFromUrl() {\n\tconst didComponent = new URLSearchParams(window.location.search).get(\"user\");\n\treturn didComponent ? decodeURIComponent(didComponent) : void 0;\n}\nfunction getDriveUrl() {\n\tconst driveUrl = new URLSearchParams(window.location.search).get(\"driveUrl\");\n\treturn driveUrl ? decodeURIComponent(driveUrl) : void 0;\n}\n//#endregion\nexport { createReactor as n, clearReactorStorage as t };\n\n//# sourceMappingURL=reactor-BxNvHOKC.js.map\n//# debugId=d17abc36-680f-59c7-9a6f-834f46f065ea\n"],"file":"reactor-BxNvHOKC-DEqXBEvK.js"}