@jskit-ai/assistant-voice 0.1.1 → 0.1.2

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 (47) hide show
  1. package/examples/conversation/package.json +8 -8
  2. package/package.json +1 -1
  3. package/examples/conversation/dist/assets/error-DOwCrGXH.js +0 -1
  4. package/examples/conversation/dist/assets/index-Bq1DwQwF.js +0 -90
  5. package/examples/conversation/dist/assets/index-Bw7_l3Cu.css +0 -1
  6. package/examples/conversation/dist/assets/placement-CUwf_TAl.js +0 -1
  7. package/examples/conversation/dist/assets/placementTopology-CUwf_TAl.js +0 -1
  8. package/examples/conversation/dist/index.html +0 -3
  9. package/examples/conversation/node_modules/.vite/deps/@jskit-ai_kernel_client_moduleBootstrap.js +0 -824
  10. package/examples/conversation/node_modules/.vite/deps/@jskit-ai_kernel_client_moduleBootstrap.js.map +0 -1
  11. package/examples/conversation/node_modules/.vite/deps/@mdi_js.js +0 -7450
  12. package/examples/conversation/node_modules/.vite/deps/@mdi_js.js.map +0 -1
  13. package/examples/conversation/node_modules/.vite/deps/@tanstack_vue-query.js +0 -3965
  14. package/examples/conversation/node_modules/.vite/deps/@tanstack_vue-query.js.map +0 -1
  15. package/examples/conversation/node_modules/.vite/deps/VTooltip-Nwckus73.js +0 -2311
  16. package/examples/conversation/node_modules/.vite/deps/VTooltip-Nwckus73.js.map +0 -1
  17. package/examples/conversation/node_modules/.vite/deps/_metadata.json +0 -110
  18. package/examples/conversation/node_modules/.vite/deps/defineComponent-Bx_4rnHZ.js +0 -710
  19. package/examples/conversation/node_modules/.vite/deps/defineComponent-Bx_4rnHZ.js.map +0 -1
  20. package/examples/conversation/node_modules/.vite/deps/dist-CUIjXXPV.js +0 -3878
  21. package/examples/conversation/node_modules/.vite/deps/dist-CUIjXXPV.js.map +0 -1
  22. package/examples/conversation/node_modules/.vite/deps/hotkey-parsing-B5h5TiMG.js +0 -1214
  23. package/examples/conversation/node_modules/.vite/deps/hotkey-parsing-B5h5TiMG.js.map +0 -1
  24. package/examples/conversation/node_modules/.vite/deps/icons-DPtxVIU0.js +0 -98
  25. package/examples/conversation/node_modules/.vite/deps/icons-DPtxVIU0.js.map +0 -1
  26. package/examples/conversation/node_modules/.vite/deps/json-rest-schema.js +0 -2071
  27. package/examples/conversation/node_modules/.vite/deps/json-rest-schema.js.map +0 -1
  28. package/examples/conversation/node_modules/.vite/deps/package.json +0 -3
  29. package/examples/conversation/node_modules/.vite/deps/pinia.js +0 -1453
  30. package/examples/conversation/node_modules/.vite/deps/pinia.js.map +0 -1
  31. package/examples/conversation/node_modules/.vite/deps/socket__io-client.js +0 -3899
  32. package/examples/conversation/node_modules/.vite/deps/socket__io-client.js.map +0 -1
  33. package/examples/conversation/node_modules/.vite/deps/theme-BSn2V8xv.js +0 -1301
  34. package/examples/conversation/node_modules/.vite/deps/theme-BSn2V8xv.js.map +0 -1
  35. package/examples/conversation/node_modules/.vite/deps/vue-router.js +0 -2989
  36. package/examples/conversation/node_modules/.vite/deps/vue-router.js.map +0 -1
  37. package/examples/conversation/node_modules/.vite/deps/vue.js +0 -2
  38. package/examples/conversation/node_modules/.vite/deps/vue.runtime.esm-bundler-DWdvffrK.js +0 -8890
  39. package/examples/conversation/node_modules/.vite/deps/vue.runtime.esm-bundler-DWdvffrK.js.map +0 -1
  40. package/examples/conversation/node_modules/.vite/deps/vuetify.js +0 -413
  41. package/examples/conversation/node_modules/.vite/deps/vuetify.js.map +0 -1
  42. package/examples/conversation/node_modules/.vite/deps/vuetify_components.js +0 -25370
  43. package/examples/conversation/node_modules/.vite/deps/vuetify_components.js.map +0 -1
  44. package/examples/conversation/node_modules/.vite/deps/vuetify_directives.js +0 -132
  45. package/examples/conversation/node_modules/.vite/deps/vuetify_directives.js.map +0 -1
  46. package/examples/conversation/node_modules/.vite/deps/vuetify_iconsets_mdi-svg.js +0 -70
  47. package/examples/conversation/node_modules/.vite/deps/vuetify_iconsets_mdi-svg.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"@jskit-ai_kernel_client_moduleBootstrap.js","names":[],"sources":["../../../../../../kernel/shared/support/normalize.js","../../../../../../kernel/shared/capabilities/defineProvider.js","../../../../../../kernel/shared/capabilities/runtime.js","../../../../../../kernel/shared/surface/registry.js","../../../../../../kernel/shared/surface/runtime.js","../../../../../../kernel/client/componentRegistry.js","../../../../../../kernel/client/packageMetadataSections.js","../../../../../../kernel/client/logging.js","../../../../../../kernel/client/moduleBootstrap.js"],"sourcesContent":["const TRANSACTION_OUTCOMES = Object.freeze([\"none\", \"pending\", \"committed\", \"rolledBack\", \"unknown\"]);\n\nfunction normalizeTransactionOutcome(value) {\n return TRANSACTION_OUTCOMES.includes(value) ? value : \"\";\n}\n\nfunction normalizeText(value, { fallback = \"\" } = {}) {\n const normalized = String(value || \"\").trim();\n return normalized || fallback;\n}\n\nfunction hasValue(value) {\n if (value == null) {\n return false;\n }\n\n if (typeof value === \"string\") {\n return normalizeText(value).length > 0;\n }\n\n return true;\n}\n\nfunction normalizeBoolean(value) {\n if (typeof value === \"boolean\") {\n return value;\n }\n\n if (typeof value === \"number\") {\n if (value === 1) {\n return true;\n }\n if (value === 0) {\n return false;\n }\n }\n\n const normalized = normalizeText(value).toLowerCase();\n if (normalized === \"true\" || normalized === \"1\" || normalized === \"yes\" || normalized === \"y\") {\n return true;\n }\n if (normalized === \"false\" || normalized === \"0\" || normalized === \"no\" || normalized === \"n\") {\n return false;\n }\n\n throw new TypeError(\"Boolean field must be true or false.\");\n}\n\nfunction normalizeFiniteNumber(value) {\n const normalized = Number(value);\n if (!Number.isFinite(normalized)) {\n throw new TypeError(\"Number field must be a valid number.\");\n }\n return normalized;\n}\n\nfunction normalizeFiniteInteger(value) {\n const normalized = normalizeFiniteNumber(value);\n if (!Number.isInteger(normalized)) {\n throw new TypeError(\"Number field must be an integer.\");\n }\n return normalized;\n}\n\nfunction normalizeLowerText(value, { fallback = \"\" } = {}) {\n return normalizeText(value, {\n fallback\n }).toLowerCase();\n}\n\nfunction normalizeQueryToken(value, { fallback = \"__none__\" } = {}) {\n const normalized = normalizeText(value).toLowerCase();\n return normalized || fallback;\n}\n\nfunction normalizeObject(value, { fallback = {} } = {}) {\n if (!value || typeof value !== \"object\" || Array.isArray(value)) {\n return { ...fallback };\n }\n return value;\n}\n\nfunction normalizeIfInSource(source, normalized, fieldName, normalizer = (value) => value) {\n if (!isRecord(source)) {\n return normalized;\n }\n if (!isRecord(normalized)) {\n throw new TypeError(\"normalizeIfInSource requires target object.\");\n }\n\n const normalizedFieldName = normalizeText(fieldName);\n if (!normalizedFieldName) {\n throw new TypeError(\"normalizeIfInSource requires fieldName.\");\n }\n if (typeof normalizer !== \"function\") {\n throw new TypeError(\"normalizeIfInSource requires normalizer function.\");\n }\n\n if (!Object.hasOwn(source, normalizedFieldName)) {\n return normalized;\n }\n\n const sourceValue = source[normalizedFieldName];\n if (sourceValue == null) {\n normalized[normalizedFieldName] = sourceValue;\n return normalized;\n }\n\n try {\n normalized[normalizedFieldName] = normalizer(sourceValue);\n } catch (error) {\n const normalizedMessage = normalizeText(error?.message, {\n fallback: `${normalizedFieldName} is invalid.`\n });\n const sourceDetails = isRecord(error?.details) ? error.details : {};\n const sourceFieldErrors = isRecord(error?.fieldErrors)\n ? { ...error.fieldErrors }\n : isRecord(sourceDetails.fieldErrors)\n ? { ...sourceDetails.fieldErrors }\n : {};\n\n if (!normalizeText(sourceFieldErrors[normalizedFieldName])) {\n sourceFieldErrors[normalizedFieldName] = normalizedMessage;\n }\n\n const normalizedError = error instanceof Error ? error : new Error(normalizedMessage);\n normalizedError.fieldErrors = sourceFieldErrors;\n normalizedError.details = {\n ...sourceDetails,\n fieldErrors: sourceFieldErrors\n };\n throw normalizedError;\n }\n return normalized;\n}\n\nfunction normalizeIfPresent(value, normalizer = (entry) => entry) {\n if (typeof normalizer !== \"function\") {\n throw new TypeError(\"normalizeIfPresent requires normalizer function.\");\n }\n return value == null ? value : normalizer(value);\n}\n\nfunction normalizeOrNull(value, normalizer = (entry) => entry) {\n if (typeof normalizer !== \"function\") {\n throw new TypeError(\"normalizeOrNull requires normalizer function.\");\n }\n return value == null ? null : normalizer(value);\n}\n\nfunction isRecord(value) {\n return Boolean(value && typeof value === \"object\" && !Array.isArray(value));\n}\n\nfunction normalizeArray(value) {\n return Array.isArray(value) ? value : [];\n}\n\nfunction normalizeUniqueTextList(value, { acceptSingle = false } = {}) {\n const source = Array.isArray(value) ? value : acceptSingle ? [value] : [];\n return Array.from(new Set(source.map((entry) => normalizeText(entry)).filter(Boolean)));\n}\n\nfunction normalizeInteger(value, { fallback = 0, min = null, max = null } = {}) {\n const numeric = Number(value);\n if (!Number.isFinite(numeric)) {\n return fallback;\n }\n\n let next = Math.trunc(numeric);\n if (Number.isFinite(min) && next < min) {\n next = min;\n }\n if (Number.isFinite(max) && next > max) {\n next = max;\n }\n return next;\n}\n\nfunction normalizePositiveInteger(value, { fallback = 0 } = {}) {\n const numeric = Number(value);\n if (!Number.isInteger(numeric) || numeric < 1) {\n return fallback;\n }\n\n return numeric;\n}\n\nfunction normalizeCanonicalRecordIdText(value, { fallback = null } = {}) {\n if (value == null) {\n return fallback;\n }\n\n const normalized = String(value).trim();\n return /^[1-9][0-9]*$/.test(normalized) ? normalized : fallback;\n}\n\nfunction normalizeRecordId(value, { fallback = null } = {}) {\n if (value == null) {\n return fallback;\n }\n\n if (typeof value === \"string\") {\n return normalizeCanonicalRecordIdText(value, { fallback });\n }\n\n if (typeof value === \"number\") {\n if (!Number.isSafeInteger(value) || value < 1) {\n return fallback;\n }\n return normalizeCanonicalRecordIdText(value, { fallback });\n }\n\n if (typeof value === \"bigint\") {\n if (value < 1n) {\n return fallback;\n }\n return normalizeCanonicalRecordIdText(value, { fallback });\n }\n\n return fallback;\n}\n\nfunction normalizeOpaqueId(value, { fallback = null } = {}) {\n if (value == null) {\n return fallback;\n }\n\n if (typeof value === \"string\") {\n const normalized = value.trim();\n return normalized || fallback;\n }\n\n if (typeof value === \"number\") {\n return Number.isFinite(value) ? String(value) : fallback;\n }\n\n if (typeof value === \"bigint\") {\n return String(value);\n }\n\n return fallback;\n}\n\nfunction normalizeOneOf(value, allowedValues = [], fallback = \"\") {\n const normalized = normalizeText(value).toLowerCase();\n const supported = Array.isArray(allowedValues)\n ? allowedValues.map((entry) => normalizeText(entry).toLowerCase()).filter(Boolean)\n : [];\n\n if (supported.includes(normalized)) {\n return normalized;\n }\n\n const normalizedFallback = normalizeText(fallback).toLowerCase();\n if (normalizedFallback) {\n return normalizedFallback;\n }\n\n return supported[0] || \"\";\n}\n\nconst MOBILE_ASSET_MODES = Object.freeze([\"bundled\", \"dev_server\"]);\nconst MOBILE_STRATEGIES = Object.freeze([\"capacitor\"]);\nconst DEFAULT_MOBILE_AUTH_CONFIG = Object.freeze({\n callbackPath: \"/auth/login\",\n customScheme: \"\",\n appLinkDomains: Object.freeze([])\n});\nconst DEFAULT_MOBILE_ANDROID_CONFIG = Object.freeze({\n packageName: \"\",\n minSdk: 26,\n targetSdk: 35,\n versionCode: 1,\n versionName: \"1.0.0\"\n});\n\nfunction normalizeMobileStrategy(value = \"\", { fallback = \"\" } = {}) {\n const normalized = normalizeLowerText(value);\n return MOBILE_STRATEGIES.includes(normalized) ? normalized : normalizeLowerText(fallback);\n}\n\nfunction normalizeMobileAssetMode(value = \"\", { fallback = \"bundled\" } = {}) {\n const normalized = normalizeLowerText(value);\n if (!normalized) {\n return normalizeLowerText(fallback, {\n fallback: \"bundled\"\n });\n }\n if (!MOBILE_ASSET_MODES.includes(normalized)) {\n throw new TypeError('config.mobile.assetMode must be \"bundled\" or \"dev_server\".');\n }\n return normalized;\n}\n\nfunction normalizeMobileCallbackPath(value = \"\", { fallback = \"/auth/login\" } = {}) {\n const normalized = normalizeText(value, {\n fallback\n });\n if (!normalized) {\n return \"\";\n }\n\n return normalized.startsWith(\"/\") ? normalized : `/${normalized}`;\n}\n\nfunction normalizeMobileConfig(source = {}) {\n const mobile = normalizeObject(source);\n const auth = normalizeObject(mobile.auth);\n const android = normalizeObject(mobile.android);\n\n return Object.freeze({\n enabled: hasValue(mobile.enabled) ? normalizeBoolean(mobile.enabled) : false,\n strategy: normalizeMobileStrategy(mobile.strategy),\n appId: normalizeText(mobile.appId),\n appName: normalizeText(mobile.appName),\n assetMode: normalizeMobileAssetMode(mobile.assetMode),\n devServerUrl: normalizeText(mobile.devServerUrl),\n apiBaseUrl: normalizeText(mobile.apiBaseUrl),\n auth: Object.freeze({\n callbackPath: normalizeMobileCallbackPath(auth.callbackPath, {\n fallback: DEFAULT_MOBILE_AUTH_CONFIG.callbackPath\n }),\n customScheme: normalizeLowerText(auth.customScheme),\n appLinkDomains: Object.freeze([\n ...new Set(\n normalizeUniqueTextList(auth.appLinkDomains, {\n acceptSingle: true\n }).map((entry) => normalizeLowerText(entry))\n )\n ])\n }),\n android: Object.freeze({\n packageName: normalizeText(android.packageName),\n minSdk: normalizePositiveInteger(android.minSdk, {\n fallback: DEFAULT_MOBILE_ANDROID_CONFIG.minSdk\n }),\n targetSdk: normalizePositiveInteger(android.targetSdk, {\n fallback: DEFAULT_MOBILE_ANDROID_CONFIG.targetSdk\n }),\n versionCode: normalizePositiveInteger(android.versionCode, {\n fallback: DEFAULT_MOBILE_ANDROID_CONFIG.versionCode\n }),\n versionName: normalizeText(android.versionName, {\n fallback: DEFAULT_MOBILE_ANDROID_CONFIG.versionName\n })\n })\n });\n}\n\nfunction ensureNonEmptyText(value, label = \"value\") {\n const normalized = normalizeText(value);\n if (!normalized) {\n throw new TypeError(`${label} is required.`);\n }\n return normalized;\n}\n\nexport {\n TRANSACTION_OUTCOMES,\n normalizeTransactionOutcome,\n normalizeText,\n hasValue,\n normalizeBoolean,\n normalizeFiniteNumber,\n normalizeFiniteInteger,\n normalizeLowerText,\n normalizeQueryToken,\n normalizeObject,\n normalizeIfInSource,\n normalizeIfPresent,\n normalizeOrNull,\n isRecord,\n normalizeArray,\n normalizeUniqueTextList,\n normalizeInteger,\n normalizePositiveInteger,\n normalizeCanonicalRecordIdText,\n normalizeRecordId,\n normalizeOpaqueId,\n normalizeOneOf,\n normalizeMobileAssetMode,\n normalizeMobileCallbackPath,\n normalizeMobileConfig,\n normalizeMobileStrategy,\n ensureNonEmptyText\n};\n","import { isRecord } from \"../support/normalize.js\";\n\nconst ARCHITECTURE_ID_PATTERN = /^[a-z][a-z0-9_.-]*$/u;\nconst LOCAL_NAME_PATTERN = /^[A-Za-z_$][A-Za-z0-9_$]*$/u;\n\nfunction normalizeArchitectureId(value, label) {\n const normalized = String(value || \"\").trim().toLowerCase();\n if (!ARCHITECTURE_ID_PATTERN.test(normalized)) {\n throw new TypeError(`${label} must match ${ARCHITECTURE_ID_PATTERN.toString()}.`);\n }\n return normalized;\n}\n\nfunction normalizeCapabilityMap(value, label) {\n if (value == null) {\n return Object.freeze({});\n }\n if (!isRecord(value)) {\n throw new TypeError(`${label} must be an object mapping local names to capability ids.`);\n }\n\n const normalized = {};\n const seenCapabilityIds = new Set();\n for (const [rawLocalName, rawCapabilityId] of Object.entries(value)) {\n const localName = String(rawLocalName || \"\").trim();\n if (!LOCAL_NAME_PATTERN.test(localName)) {\n throw new TypeError(`${label} local name \"${localName}\" must be a JavaScript identifier.`);\n }\n const capabilityId = normalizeArchitectureId(rawCapabilityId, `${label}.${localName}`);\n if (seenCapabilityIds.has(capabilityId)) {\n throw new TypeError(`${label} declares capability \"${capabilityId}\" more than once.`);\n }\n seenCapabilityIds.add(capabilityId);\n normalized[localName] = capabilityId;\n }\n\n return Object.freeze(normalized);\n}\n\nfunction assertDistinctLocalNames(maps) {\n const owners = new Map();\n for (const [kind, entries] of Object.entries(maps)) {\n for (const localName of Object.keys(entries)) {\n if (owners.has(localName)) {\n throw new TypeError(\n `Provider local name \"${localName}\" is declared by both ${owners.get(localName)} and ${kind}.`\n );\n }\n owners.set(localName, kind);\n }\n }\n}\n\nfunction normalizeLifecycleMethod(value, label) {\n if (value == null) {\n return null;\n }\n if (typeof value !== \"function\") {\n throw new TypeError(`${label} must be a function when provided.`);\n }\n return value;\n}\n\nfunction defineProvider({\n id,\n requires = {},\n optional = {},\n provides = {},\n setup,\n boot = null,\n shutdown = null\n} = {}) {\n const providerId = normalizeArchitectureId(id, \"Provider id\");\n const normalizedRequires = normalizeCapabilityMap(requires, `${providerId}.requires`);\n const normalizedOptional = normalizeCapabilityMap(optional, `${providerId}.optional`);\n const normalizedProvides = normalizeCapabilityMap(provides, `${providerId}.provides`);\n assertDistinctLocalNames({\n requires: normalizedRequires,\n optional: normalizedOptional,\n provides: normalizedProvides\n });\n\n const setupMethod = normalizeLifecycleMethod(setup, `${providerId}.setup`);\n if (!setupMethod) {\n throw new TypeError(`${providerId}.setup is required.`);\n }\n\n return Object.freeze({\n id: providerId,\n requires: normalizedRequires,\n optional: normalizedOptional,\n provides: normalizedProvides,\n setup: setupMethod,\n boot: normalizeLifecycleMethod(boot, `${providerId}.boot`),\n shutdown: normalizeLifecycleMethod(shutdown, `${providerId}.shutdown`)\n });\n}\n\nexport { defineProvider, normalizeArchitectureId };\n","import { isRecord } from \"../support/normalize.js\";\nimport { defineProvider, normalizeArchitectureId } from \"./defineProvider.js\";\n\nfunction normalizeProviderDefinition(value) {\n if (!isRecord(value)) {\n throw new TypeError(\"Capability runtime providers must be provider definitions.\");\n }\n return defineProvider(value);\n}\n\nfunction normalizeInputCapabilities(value) {\n if (value == null) {\n return new Map();\n }\n if (!isRecord(value)) {\n throw new TypeError(\"Capability runtime inputs must be an object keyed by capability id.\");\n }\n return new Map(Object.entries(value).map(([id, capability]) => [\n normalizeArchitectureId(id, \"Runtime input capability id\"),\n capability\n ]));\n}\n\nfunction providerCapabilityIds(provider, field) {\n return Object.values(provider[field] || {});\n}\n\nfunction buildProviderOrder(providers, inputCapabilities) {\n const normalizedProviders = providers.map(normalizeProviderDefinition);\n const providersById = new Map();\n const providerByCapability = new Map();\n\n for (const provider of normalizedProviders) {\n if (providersById.has(provider.id)) {\n throw new Error(`Provider \"${provider.id}\" is duplicated.`);\n }\n providersById.set(provider.id, provider);\n\n for (const capabilityId of providerCapabilityIds(provider, \"provides\")) {\n if (inputCapabilities.has(capabilityId)) {\n throw new Error(`Capability \"${capabilityId}\" is supplied both as a runtime input and by ${provider.id}.`);\n }\n if (providerByCapability.has(capabilityId)) {\n throw new Error(\n `Capability \"${capabilityId}\" is provided by both ${providerByCapability.get(capabilityId).id} and ${provider.id}.`\n );\n }\n providerByCapability.set(capabilityId, provider);\n }\n }\n\n for (const provider of normalizedProviders) {\n for (const capabilityId of providerCapabilityIds(provider, \"requires\")) {\n if (!inputCapabilities.has(capabilityId) && !providerByCapability.has(capabilityId)) {\n throw new Error(`Provider \"${provider.id}\" requires missing capability \"${capabilityId}\".`);\n }\n if (providerByCapability.get(capabilityId)?.id === provider.id) {\n throw new Error(`Provider \"${provider.id}\" cannot require capability \"${capabilityId}\" that it provides.`);\n }\n }\n }\n\n const visited = new Set();\n const visiting = new Set();\n const ordered = [];\n\n function visit(provider, lineage = []) {\n if (visited.has(provider.id)) {\n return;\n }\n if (visiting.has(provider.id)) {\n throw new Error(`Provider capability cycle detected: ${[...lineage, provider.id].join(\" -> \")}.`);\n }\n\n visiting.add(provider.id);\n const dependencyProviders = [\n ...providerCapabilityIds(provider, \"requires\"),\n ...providerCapabilityIds(provider, \"optional\")\n ]\n .map((capabilityId) => providerByCapability.get(capabilityId) || null)\n .filter(Boolean)\n .sort((left, right) => left.id.localeCompare(right.id));\n for (const dependencyProvider of dependencyProviders) {\n visit(dependencyProvider, [...lineage, provider.id]);\n }\n visiting.delete(provider.id);\n visited.add(provider.id);\n ordered.push(provider);\n }\n\n for (const provider of [...normalizedProviders].sort((left, right) => left.id.localeCompare(right.id))) {\n visit(provider);\n }\n return Object.freeze(ordered);\n}\n\nfunction resolveProviderDependencies(provider, capabilities) {\n const dependencies = {};\n for (const [localName, capabilityId] of Object.entries(provider.requires)) {\n if (!capabilities.has(capabilityId)) {\n throw new Error(`Provider \"${provider.id}\" requires unavailable capability \"${capabilityId}\".`);\n }\n dependencies[localName] = capabilities.get(capabilityId);\n }\n for (const [localName, capabilityId] of Object.entries(provider.optional)) {\n dependencies[localName] = capabilities.has(capabilityId) ? capabilities.get(capabilityId) : null;\n }\n return Object.freeze(dependencies);\n}\n\nfunction normalizeProviderOutputs(provider, value) {\n const expectedNames = Object.keys(provider.provides);\n if (expectedNames.length === 0) {\n if (value != null && (!isRecord(value) || Object.keys(value).length > 0)) {\n throw new Error(`Provider \"${provider.id}\" declares no capabilities but setup() returned outputs.`);\n }\n return Object.freeze({});\n }\n if (!isRecord(value)) {\n throw new Error(`Provider \"${provider.id}\" setup() must return its declared capability outputs.`);\n }\n\n const actualNames = Object.keys(value).sort();\n const sortedExpectedNames = [...expectedNames].sort();\n if (\n actualNames.length !== sortedExpectedNames.length ||\n actualNames.some((name, index) => name !== sortedExpectedNames[index])\n ) {\n throw new Error(\n `Provider \"${provider.id}\" setup() outputs must be exactly: ${sortedExpectedNames.join(\", \") || \"<none>\"}.`\n );\n }\n return Object.freeze({ ...value });\n}\n\nfunction createCapabilityRuntime({ providers = [], inputs = {}, profile = \"\" } = {}) {\n const capabilities = normalizeInputCapabilities(inputs);\n const providerOrder = buildProviderOrder(Array.isArray(providers) ? providers : [], capabilities);\n const providerStates = new Map();\n const normalizedProfile = String(profile || \"\").trim();\n let lifecycleState = \"created\";\n\n async function stopInitializedProviders() {\n const stopped = [];\n let firstError = null;\n for (const provider of [...providerOrder].reverse()) {\n if (!providerStates.has(provider.id)) {\n continue;\n }\n if (provider.shutdown) {\n const state = providerStates.get(provider.id);\n try {\n await provider.shutdown(state.dependencies, Object.freeze({\n outputs: state.outputs,\n profile: normalizedProfile\n }));\n } catch (error) {\n firstError ||= error;\n }\n }\n stopped.push(provider.id);\n }\n if (firstError) {\n throw firstError;\n }\n return Object.freeze(stopped);\n }\n\n async function start() {\n if (lifecycleState !== \"created\") {\n throw new Error(`Capability runtime cannot start from state \"${lifecycleState}\".`);\n }\n lifecycleState = \"starting\";\n\n try {\n for (const provider of providerOrder) {\n const dependencies = resolveProviderDependencies(provider, capabilities);\n const outputs = normalizeProviderOutputs(\n provider,\n await provider.setup(dependencies, Object.freeze({ profile: normalizedProfile }))\n );\n for (const [localName, capabilityId] of Object.entries(provider.provides)) {\n capabilities.set(capabilityId, outputs[localName]);\n }\n providerStates.set(provider.id, Object.freeze({ dependencies, outputs }));\n }\n\n for (const provider of providerOrder) {\n if (provider.boot) {\n const state = providerStates.get(provider.id);\n await provider.boot(state.dependencies, Object.freeze({\n outputs: state.outputs,\n profile: normalizedProfile\n }));\n }\n }\n\n lifecycleState = \"started\";\n return api;\n } catch (error) {\n lifecycleState = \"failed\";\n try {\n await stopInitializedProviders();\n } catch (shutdownError) {\n throw new AggregateError(\n [error, shutdownError],\n \"Capability runtime startup failed and cleanup also failed.\",\n { cause: error }\n );\n }\n throw error;\n }\n }\n\n async function shutdown() {\n if (lifecycleState === \"stopped\") {\n return Object.freeze([]);\n }\n if (lifecycleState !== \"started\") {\n throw new Error(`Capability runtime cannot shut down from state \"${lifecycleState}\".`);\n }\n lifecycleState = \"stopping\";\n try {\n return await stopInitializedProviders();\n } finally {\n lifecycleState = \"stopped\";\n }\n }\n\n function diagnostics() {\n return Object.freeze({\n profile: normalizedProfile,\n lifecycleState,\n providerOrder: Object.freeze(providerOrder.map((provider) => provider.id)),\n capabilityIds: Object.freeze([...capabilities.keys()].sort())\n });\n }\n\n const api = Object.freeze({ start, shutdown, diagnostics });\n return api;\n}\n\nexport { createCapabilityRuntime };\n","import { normalizeObject } from \"../support/normalize.js\";\n\nfunction normalizeSurfaceId(value) {\n return String(value || \"\")\n .trim()\n .toLowerCase();\n}\n\nfunction normalizeSurfacePagesRoot(pagesRootLike) {\n const rawPagesRoot = String(pagesRootLike || \"\").trim();\n if (!rawPagesRoot || rawPagesRoot === \"/\") {\n return \"\";\n }\n\n return rawPagesRoot\n .replace(/\\\\/g, \"/\")\n .replace(/\\/{2,}/g, \"/\")\n .replace(/^\\/+|\\/+$/g, \"\");\n}\n\nfunction normalizeRouteSegment(segmentLike) {\n const segment = String(segmentLike || \"\").trim();\n if (!segment) {\n return \"\";\n }\n\n const dynamicMatch = segment.match(/^\\[([^\\]]+)\\]$/);\n if (dynamicMatch) {\n const paramName = String(dynamicMatch[1] || \"\").trim();\n if (!paramName) {\n return \"\";\n }\n return `:${paramName}`;\n }\n\n return segment;\n}\n\nfunction deriveSurfaceRouteBaseFromPagesRoot(pagesRootLike) {\n const normalizedPagesRoot = normalizeSurfacePagesRoot(pagesRootLike);\n if (!normalizedPagesRoot) {\n return \"/\";\n }\n\n const segments = normalizedPagesRoot\n .split(\"/\")\n .map((segment) => normalizeRouteSegment(segment))\n .filter(Boolean);\n\n if (segments.length < 1) {\n return \"/\";\n }\n return `/${segments.join(\"/\")}`;\n}\n\nfunction createSurfaceRegistry(options = {}) {\n const rawSurfaces = options?.surfaces;\n if (!rawSurfaces || typeof rawSurfaces !== \"object\") {\n throw new Error(\"createSurfaceRegistry requires a surfaces object.\");\n }\n\n const normalizedEntries = Object.entries(rawSurfaces)\n .map(([key, value]) => {\n const sourceDefinition = normalizeObject(value);\n const normalizedId = normalizeSurfaceId(sourceDefinition.id || key);\n if (!normalizedId) {\n return null;\n }\n\n const pagesRoot = normalizeSurfacePagesRoot(sourceDefinition.pagesRoot);\n if (\n !Object.prototype.hasOwnProperty.call(sourceDefinition, \"pagesRoot\") &&\n pagesRoot === \"\"\n ) {\n throw new Error(`Surface \"${normalizedId}\" requires pagesRoot (use \"\" for root).`);\n }\n\n return [\n normalizedId,\n Object.freeze({\n ...sourceDefinition,\n id: normalizedId,\n pagesRoot,\n routeBase: deriveSurfaceRouteBaseFromPagesRoot(pagesRoot)\n })\n ];\n })\n .filter(Boolean);\n\n if (normalizedEntries.length < 1) {\n throw new Error(\"createSurfaceRegistry requires at least one surface definition.\");\n }\n\n const SURFACE_REGISTRY = Object.freeze(Object.fromEntries(normalizedEntries));\n const fallbackSurfaceId = normalizedEntries[0][0];\n const requestedDefaultSurfaceId = normalizeSurfaceId(options?.defaultSurfaceId);\n const DEFAULT_SURFACE_ID = SURFACE_REGISTRY[requestedDefaultSurfaceId]\n ? requestedDefaultSurfaceId\n : fallbackSurfaceId;\n\n function normalizeRegisteredSurfaceId(value) {\n const normalized = normalizeSurfaceId(value);\n if (SURFACE_REGISTRY[normalized]) {\n return normalized;\n }\n\n return DEFAULT_SURFACE_ID;\n }\n\n function resolveSurfacePagesRoot(surfaceId) {\n return SURFACE_REGISTRY[normalizeRegisteredSurfaceId(surfaceId)]?.pagesRoot || \"\";\n }\n\n function resolveSurfaceRouteBase(surfaceId) {\n return SURFACE_REGISTRY[normalizeRegisteredSurfaceId(surfaceId)]?.routeBase || \"/\";\n }\n\n function listSurfaceDefinitions() {\n return Object.values(SURFACE_REGISTRY);\n }\n\n return Object.freeze({\n SURFACE_REGISTRY,\n DEFAULT_SURFACE_ID,\n normalizeSurfaceId: normalizeRegisteredSurfaceId,\n resolveSurfacePagesRoot,\n resolveSurfaceRouteBase,\n listSurfaceDefinitions\n });\n}\n\nexport {\n createSurfaceRegistry,\n normalizeSurfaceId,\n normalizeSurfacePagesRoot,\n deriveSurfaceRouteBaseFromPagesRoot\n};\n","import { createSurfacePathHelpers } from \"./paths.js\";\nimport {\n createSurfaceRegistry,\n deriveSurfaceRouteBaseFromPagesRoot,\n normalizeSurfaceId,\n normalizeSurfacePagesRoot\n} from \"./registry.js\";\nimport { isRecord } from \"../support/normalize.js\";\n\nfunction uniqueSurfaceIds(ids) {\n const seen = new Set();\n const ordered = [];\n for (const id of ids) {\n const normalizedId = normalizeSurfaceId(id);\n if (!normalizedId || seen.has(normalizedId)) {\n continue;\n }\n seen.add(normalizedId);\n ordered.push(normalizedId);\n }\n return ordered;\n}\n\nfunction resolveSurfaceIds({ surfaces = {} } = {}) {\n const surfaceCandidates = [];\n for (const [key, value] of Object.entries(isRecord(surfaces) ? surfaces : {})) {\n const record = isRecord(value) ? value : {};\n surfaceCandidates.push(record.id || key);\n }\n\n const fromSurfaces = uniqueSurfaceIds(surfaceCandidates);\n if (fromSurfaces.length > 0) {\n return fromSurfaces;\n }\n\n throw new Error(\"createSurfaceRuntime requires at least one surface id.\");\n}\n\nfunction normalizeRoutePath(pathLike = \"\") {\n const rawPath = String(pathLike || \"\").trim();\n if (!rawPath || rawPath === \"/\") {\n return \"/\";\n }\n\n const withLeadingSlash = rawPath.startsWith(\"/\") ? rawPath : `/${rawPath}`;\n const compacted = withLeadingSlash.replace(/\\/{2,}/g, \"/\");\n if (compacted === \"/\") {\n return \"/\";\n }\n return compacted.replace(/\\/+$/, \"\") || \"/\";\n}\n\nfunction resolveAbsoluteRoutePath(parentAbsolutePath = \"/\", routePath = \"\") {\n const normalizedParentPath = normalizeRoutePath(parentAbsolutePath);\n const rawRoutePath = String(routePath || \"\").trim();\n if (!rawRoutePath) {\n return normalizedParentPath;\n }\n if (rawRoutePath.startsWith(\"/\")) {\n return normalizeRoutePath(rawRoutePath);\n }\n if (normalizedParentPath === \"/\") {\n return normalizeRoutePath(`/${rawRoutePath}`);\n }\n return normalizeRoutePath(`${normalizedParentPath}/${rawRoutePath}`);\n}\n\nfunction readRouteJskitMeta(route) {\n if (!isRecord(route) || !isRecord(route.meta) || !isRecord(route.meta.jskit)) {\n return {};\n }\n return route.meta.jskit;\n}\n\nfunction resolveRouteExplicitSurface(route) {\n const metaSurface = readRouteJskitMeta(route).surface;\n return normalizeSurfaceId(route?.surface || metaSurface);\n}\n\nfunction resolveOwnRouteScope(route) {\n const metaScope = readRouteJskitMeta(route).scope;\n const normalizedScope = String(route?.scope || metaScope || \"\")\n .trim()\n .toLowerCase();\n if (!normalizedScope) {\n return \"\";\n }\n return normalizedScope === \"global\" ? \"global\" : \"surface\";\n}\n\nfunction resolveRouteSurface(route, inheritedSurfaceId = \"\", { surfaceRuntime, absolutePath = \"/\" } = {}) {\n const explicitSurface = resolveRouteExplicitSurface(route);\n if (explicitSurface) {\n return explicitSurface;\n }\n\n const normalizedInheritedSurface = normalizeSurfaceId(inheritedSurfaceId);\n if (normalizedInheritedSurface) {\n return normalizedInheritedSurface;\n }\n\n const routePath = String(route?.path || \"\").trim();\n if (routePath && routePath.startsWith(\"/\")) {\n return surfaceRuntime.resolveSurfaceFromPathname(routePath);\n }\n\n if (absolutePath) {\n return surfaceRuntime.resolveSurfaceFromPathname(absolutePath);\n }\n\n return surfaceRuntime.DEFAULT_SURFACE_ID;\n}\n\nfunction normalizeRoutesBySurfaceBoundaries(routeList = [], { surfaceRuntime } = {}) {\n const normalizedRoutes = Array.isArray(routeList) ? routeList : [];\n const hoistedRoutes = [];\n\n function cloneRouteWithChildren(route, children) {\n const nextRoute = {\n ...route\n };\n if (children.length > 0) {\n nextRoute.children = children;\n } else if (Object.prototype.hasOwnProperty.call(nextRoute, \"children\")) {\n delete nextRoute.children;\n }\n return nextRoute;\n }\n\n function cloneRouteAsHoisted(route, absolutePath, children) {\n const nextRoute = cloneRouteWithChildren(route, children);\n nextRoute.path = absolutePath;\n return nextRoute;\n }\n\n function visitRoute(route, parentSurfaceId = \"\", parentAbsolutePath = \"/\") {\n if (!isRecord(route)) {\n return null;\n }\n\n const absolutePath = resolveAbsoluteRoutePath(parentAbsolutePath, route.path);\n const explicitSurface = resolveRouteExplicitSurface(route);\n const normalizedParentSurfaceId = normalizeSurfaceId(parentSurfaceId);\n const resolvedSurface = resolveRouteSurface(route, normalizedParentSurfaceId, {\n surfaceRuntime,\n absolutePath\n });\n const surfaceBoundary =\n Boolean(explicitSurface) &&\n Boolean(normalizedParentSurfaceId) &&\n explicitSurface !== normalizedParentSurfaceId;\n\n const children = Array.isArray(route.children) ? route.children : [];\n const filteredChildren = [];\n for (const child of children) {\n const normalizedChild = visitRoute(child, resolvedSurface, absolutePath);\n if (normalizedChild) {\n filteredChildren.push(normalizedChild);\n }\n }\n\n const shouldCloneForChildren =\n children.length !== filteredChildren.length ||\n filteredChildren.some((child, index) => child !== children[index]);\n const routeWithChildren = shouldCloneForChildren ? cloneRouteWithChildren(route, filteredChildren) : route;\n\n if (!surfaceBoundary) {\n return routeWithChildren;\n }\n\n hoistedRoutes.push(cloneRouteAsHoisted(routeWithChildren, absolutePath, filteredChildren));\n return null;\n }\n\n const keptRoutes = [];\n for (const route of normalizedRoutes) {\n const normalizedRoute = visitRoute(route, \"\", \"/\");\n if (normalizedRoute) {\n keptRoutes.push(normalizedRoute);\n }\n }\n\n return [...keptRoutes, ...hoistedRoutes];\n}\n\n\nfunction createSurfaceRuntime(options = {}) {\n const allMode = normalizeSurfaceId(options?.allMode || \"all\") || \"all\";\n const sourceSurfaces = isRecord(options?.surfaces) ? options.surfaces : {};\n const surfaceIds = resolveSurfaceIds({\n surfaces: sourceSurfaces\n });\n\n const normalizedSurfaces = {};\n for (const surfaceId of surfaceIds) {\n const source = isRecord(sourceSurfaces[surfaceId]) ? sourceSurfaces[surfaceId] : {};\n if (!Object.prototype.hasOwnProperty.call(source, \"pagesRoot\")) {\n throw new Error(`Surface \"${surfaceId}\" requires pagesRoot (use \"\" for root).`);\n }\n const pagesRoot = normalizeSurfacePagesRoot(source.pagesRoot);\n normalizedSurfaces[surfaceId] = {\n ...source,\n id: surfaceId,\n pagesRoot,\n routeBase: deriveSurfaceRouteBaseFromPagesRoot(pagesRoot),\n enabled: source.enabled !== false\n };\n }\n\n const defaultSurfaceId = normalizeSurfaceId(options?.defaultSurfaceId) || surfaceIds[0];\n const registry = createSurfaceRegistry({\n surfaces: normalizedSurfaces,\n defaultSurfaceId\n });\n\n const pathHelpers = createSurfacePathHelpers({\n apiBasePath: String(options?.apiBasePath || \"/api\"),\n defaultSurfaceId: registry.DEFAULT_SURFACE_ID,\n normalizeSurfaceId: registry.normalizeSurfaceId,\n resolveSurfaceRouteBase: registry.resolveSurfaceRouteBase,\n listSurfaceDefinitions: registry.listSurfaceDefinitions,\n routes: options?.routes\n });\n\n const enabledSurfaceIds = surfaceIds.filter((surfaceId) => normalizedSurfaces[surfaceId]?.enabled !== false);\n const defaultSurfaceSource = isRecord(normalizedSurfaces[registry.DEFAULT_SURFACE_ID])\n ? normalizedSurfaces[registry.DEFAULT_SURFACE_ID]\n : {};\n const defaultSurfaceDefinition = Object.freeze({\n ...defaultSurfaceSource\n });\n\n function normalizeSurfaceMode(value) {\n const normalized = normalizeSurfaceId(value);\n if (!normalized || normalized === allMode) {\n return allMode;\n }\n\n return registry.SURFACE_REGISTRY[normalized] ? normalized : allMode;\n }\n\n function listEnabledSurfaceIds() {\n return [...enabledSurfaceIds];\n }\n\n function getSurfaceDefinition(surfaceId) {\n const normalizedSurfaceId = normalizeSurfaceId(surfaceId);\n const definition = normalizedSurfaces[normalizedSurfaceId];\n if (!definition) {\n return null;\n }\n\n return Object.freeze({\n ...definition\n });\n }\n\n function listSurfaceDefinitions({ enabledOnly = false } = {}) {\n const ids = enabledOnly ? enabledSurfaceIds : surfaceIds;\n const definitions = [];\n for (const surfaceId of ids) {\n const source = isRecord(normalizedSurfaces[surfaceId]) ? normalizedSurfaces[surfaceId] : {};\n definitions.push(\n Object.freeze({\n ...source\n })\n );\n }\n return definitions;\n }\n\n function isSurfaceEnabled(surfaceId) {\n const normalizedSurface = normalizeSurfaceMode(surfaceId);\n if (normalizedSurface === allMode) {\n return false;\n }\n\n return enabledSurfaceIds.includes(normalizedSurface);\n }\n\n return {\n SURFACE_MODE_ALL: allMode,\n SURFACE_IDS: [...surfaceIds],\n DEFAULT_SURFACE_ID: registry.DEFAULT_SURFACE_ID,\n DEFAULT_SURFACE: defaultSurfaceDefinition,\n normalizeSurfaceMode,\n resolveSurfaceFromPathname: pathHelpers.resolveSurfaceFromPathname,\n getSurfaceDefinition,\n listSurfaceDefinitions,\n listEnabledSurfaceIds,\n isSurfaceEnabled\n };\n}\n\n\nfunction filterRoutesBySurface(routeList, { surfaceRuntime, surfaceMode } = {}) {\n if (!surfaceRuntime || typeof surfaceRuntime !== \"object\") {\n throw new Error(\"filterRoutesBySurface requires surfaceRuntime.\");\n }\n if (typeof surfaceRuntime.normalizeSurfaceMode !== \"function\") {\n throw new Error(\"filterRoutesBySurface requires surfaceRuntime.normalizeSurfaceMode().\");\n }\n if (typeof surfaceRuntime.resolveSurfaceFromPathname !== \"function\") {\n throw new Error(\"filterRoutesBySurface requires surfaceRuntime.resolveSurfaceFromPathname().\");\n }\n if (typeof surfaceRuntime.listEnabledSurfaceIds !== \"function\") {\n throw new Error(\"filterRoutesBySurface requires surfaceRuntime.listEnabledSurfaceIds().\");\n }\n\n const normalizedRoutes = normalizeRoutesBySurfaceBoundaries(routeList, {\n surfaceRuntime\n });\n const allMode = String(surfaceRuntime.SURFACE_MODE_ALL || \"all\").trim().toLowerCase() || \"all\";\n const normalizedMode = surfaceRuntime.normalizeSurfaceMode(surfaceMode);\n const enabledSurfaces = new Set(surfaceRuntime.listEnabledSurfaceIds());\n\n function filterRouteNode(route, inheritedSurfaceId = \"\") {\n if (!isRecord(route)) {\n return null;\n }\n\n const resolvedSurface = resolveRouteSurface(route, inheritedSurfaceId, {\n surfaceRuntime,\n absolutePath: String(route.path || \"/\")\n });\n const isGlobalScope = resolveOwnRouteScope(route) === \"global\";\n const isEnabledSurfaceRoute = enabledSurfaces.has(resolvedSurface);\n const ownIncluded =\n isGlobalScope ||\n (isEnabledSurfaceRoute && (normalizedMode === allMode || resolvedSurface === normalizedMode));\n\n const children = Array.isArray(route.children) ? route.children : [];\n const filteredChildren = children\n .map((child) => filterRouteNode(child, resolvedSurface))\n .filter(Boolean);\n\n if (!ownIncluded && filteredChildren.length < 1) {\n return null;\n }\n\n if (children.length < 1) {\n return route;\n }\n\n return {\n ...route,\n children: filteredChildren\n };\n }\n\n return normalizedRoutes.map((route) => filterRouteNode(route)).filter(Boolean);\n}\n\nexport {\n createSurfaceRuntime,\n filterRoutesBySurface\n};\n","function normalizeComponentId(value) {\n const id = String(value || \"\").trim();\n if (!id) {\n throw new TypeError(\"Client component id is required.\");\n }\n return id;\n}\n\nfunction createClientComponentRegistry() {\n const components = new Map();\n\n function register(id, component) {\n const componentId = normalizeComponentId(id);\n if (component == null) {\n throw new TypeError(`Client component \"${componentId}\" is required.`);\n }\n if (components.has(componentId)) {\n throw new Error(`Client component \"${componentId}\" is duplicated.`);\n }\n components.set(componentId, component);\n return api;\n }\n\n function has(id) {\n return components.has(normalizeComponentId(id));\n }\n\n function get(id) {\n const componentId = normalizeComponentId(id);\n if (!components.has(componentId)) {\n throw new Error(`Client component \"${componentId}\" is not registered.`);\n }\n return components.get(componentId);\n }\n\n function ids() {\n return Object.freeze([...components.keys()].sort());\n }\n\n const api = Object.freeze({ register, has, get, ids });\n return api;\n}\n\nexport { createClientComponentRegistry };\n","import { isRecord } from \"../shared/support/normalize.js\";\nimport { sortStrings } from \"../shared/support/sorting.js\";\n\nfunction normalizePackageMetadataUiRoutes(value) {\n const routeEntries = Array.isArray(value) ? value : [];\n const normalizedRoutes = [];\n\n for (const routeEntry of routeEntries) {\n if (!isRecord(routeEntry)) {\n continue;\n }\n\n try {\n normalizedRoutes.push(Object.freeze(JSON.parse(JSON.stringify(routeEntry))));\n } catch {\n // Skip non-serializable route declarations.\n }\n }\n\n return Object.freeze(normalizedRoutes);\n}\n\nfunction normalizePackageMetadataClientProviders(value) {\n const entries = Array.isArray(value) ? value : [];\n const providers = [];\n\n for (const entry of entries) {\n if (!isRecord(entry)) {\n continue;\n }\n\n const exportName = String(entry.export || \"\").trim();\n if (!exportName) {\n continue;\n }\n\n providers.push(\n Object.freeze({\n export: exportName,\n entrypoint: String(entry.entrypoint || \"\").trim()\n })\n );\n }\n\n return Object.freeze(providers);\n}\n\nfunction normalizePackageMetadataClientOptimizeSpecifiers(value) {\n return Object.freeze(sortStrings(value));\n}\n\nfunction normalizeClientPackageMetadataSections(packageMetadataValue) {\n const packageMetadata = isRecord(packageMetadataValue) ? packageMetadataValue : {};\n const metadata = isRecord(packageMetadata.metadata) ? packageMetadata.metadata : {};\n const runtime = isRecord(packageMetadata.runtime) ? packageMetadata.runtime : {};\n const ui = isRecord(metadata.ui) ? metadata.ui : {};\n const clientMetadata = isRecord(metadata.client) ? metadata.client : {};\n const optimizeDeps = isRecord(clientMetadata.optimizeDeps) ? clientMetadata.optimizeDeps : {};\n const runtimeClient = isRecord(runtime.client) ? runtime.client : {};\n\n return Object.freeze({\n packageMetadataUiRoutes: normalizePackageMetadataUiRoutes(ui.routes),\n packageMetadataClientProviders: normalizePackageMetadataClientProviders(runtimeClient.providers),\n packageMetadataClientOptimizeIncludeSpecifiers: normalizePackageMetadataClientOptimizeSpecifiers(optimizeDeps.include),\n packageMetadataClientOptimizeExcludeSpecifiers: normalizePackageMetadataClientOptimizeSpecifiers(optimizeDeps.exclude)\n });\n}\n\nexport {\n normalizePackageMetadataUiRoutes,\n normalizePackageMetadataClientProviders,\n normalizePackageMetadataClientOptimizeSpecifiers,\n normalizeClientPackageMetadataSections\n};\n","import { isRecord } from \"../shared/support/normalize.js\";\n\nfunction createStructuredLogger(logger = console) {\n if (isRecord(logger)) {\n return Object.freeze({\n info: typeof logger.info === \"function\" ? logger.info.bind(logger) : console.info.bind(console),\n warn: typeof logger.warn === \"function\" ? logger.warn.bind(logger) : console.warn.bind(console),\n error: typeof logger.error === \"function\" ? logger.error.bind(logger) : console.error.bind(console),\n debug: typeof logger.debug === \"function\" ? logger.debug.bind(logger) : () => {}\n });\n }\n\n return Object.freeze({\n info: console.info.bind(console),\n warn: console.warn.bind(console),\n error: console.error.bind(console),\n debug: () => {}\n });\n}\n\nfunction summarizeRouterRoutes(router) {\n if (!router || typeof router.getRoutes !== \"function\") {\n return Object.freeze([]);\n }\n\n return Object.freeze(\n router.getRoutes().map((route) =>\n Object.freeze({\n name: String(route?.name || \"\").trim(),\n path: String(route?.path || \"\").trim(),\n metaScope: String(route?.meta?.jskit?.scope || \"\").trim(),\n metaSurface: String(route?.meta?.jskit?.surface || \"\").trim()\n })\n )\n );\n}\n\nexport { createStructuredLogger, summarizeRouterRoutes };\n","import { createCapabilityRuntime, defineProvider } from \"../shared/capabilities/index.js\";\nimport { filterRoutesBySurface } from \"../shared/surface/runtime.js\";\nimport { isRecord } from \"../shared/support/normalize.js\";\nimport { createClientComponentRegistry } from \"./componentRegistry.js\";\nimport { normalizePackageMetadataClientProviders, normalizePackageMetadataUiRoutes } from \"./packageMetadataSections.js\";\nimport { createStructuredLogger, summarizeRouterRoutes } from \"./logging.js\";\n\nfunction normalizePackageId(value) {\n return String(value || \"\").trim();\n}\n\nfunction toRouteSnapshot(route) {\n const metaJskit = isRecord(route?.meta?.jskit) ? route.meta.jskit : {};\n return Object.freeze({\n id: String(route?.id || \"\").trim(),\n name: String(route?.name || \"\").trim(),\n path: String(route?.path || \"\").trim(),\n scope: String(route?.scope || \"\").trim(),\n surface: String(route?.surface || \"\").trim(),\n metaScope: String(metaJskit.scope || \"\").trim(),\n metaSurface: String(metaJskit.surface || \"\").trim()\n });\n}\n\nfunction isRouteComponent(value) {\n if (typeof value === \"function\") {\n return true;\n }\n return Boolean(value && typeof value === \"object\" && !Array.isArray(value));\n}\n\nfunction normalizeRoute(route, { packageId, index }) {\n if (!isRecord(route)) {\n throw new TypeError(`Client route #${index} from ${packageId} must be an object.`);\n }\n\n const id = String(route.id || \"\").trim();\n const path = String(route.path || \"\").trim();\n if (!id) {\n throw new Error(`Client route #${index} from ${packageId} requires id.`);\n }\n if (!path || !path.startsWith(\"/\") || path.startsWith(\"//\")) {\n throw new Error(`Client route \"${id}\" from ${packageId} must use an absolute path.`);\n }\n\n if (!isRouteComponent(route.component)) {\n throw new Error(`Client route \"${id}\" from ${packageId} requires component.`);\n }\n\n const scope = String(route.scope || \"surface\")\n .trim()\n .toLowerCase();\n if (scope !== \"global\" && scope !== \"surface\") {\n throw new Error(`Client route \"${id}\" from ${packageId} has invalid scope \"${scope}\".`);\n }\n\n const surface = String(route.surface || \"\")\n .trim()\n .toLowerCase();\n const baseMeta = isRecord(route.meta) ? route.meta : {};\n const baseMetaJskit = isRecord(baseMeta.jskit) ? baseMeta.jskit : {};\n\n return Object.freeze({\n ...route,\n id,\n path,\n scope,\n ...(surface ? { surface } : {}),\n meta: {\n ...baseMeta,\n jskit: {\n ...baseMetaJskit,\n packageId,\n routeId: id,\n scope,\n ...(surface ? { surface } : {})\n }\n }\n });\n}\n\nfunction normalizeRouteList(routes, { packageId }) {\n const entries = Array.isArray(routes) ? routes : [];\n return Object.freeze(\n entries.map((route, index) => normalizeRoute(route, { packageId, index: index + 1 }))\n );\n}\n\nfunction toVueRouteRecord(route) {\n const nextMeta = isRecord(route.meta) ? { ...route.meta } : undefined;\n const routeRecord = {\n path: route.path,\n component: route.component,\n ...(route.name ? { name: route.name } : {}),\n ...(route.props !== undefined ? { props: route.props } : {}),\n ...(route.redirect !== undefined ? { redirect: route.redirect } : {}),\n ...(route.children !== undefined ? { children: route.children } : {}),\n ...(nextMeta ? { meta: nextMeta } : {})\n };\n\n return Object.freeze(routeRecord);\n}\n\nfunction registerClientModuleRoutes({\n packageId,\n routes = [],\n router,\n surfaceRuntime,\n surfaceMode,\n seenRoutePaths,\n seenRouteNames,\n logger = null,\n source = \"module\",\n packageMetadataRouteDeclarations = null\n} = {}) {\n const normalizedPackageId = normalizePackageId(packageId);\n if (!normalizedPackageId) {\n throw new TypeError(\"registerClientModuleRoutes requires packageId.\");\n }\n if (!router || typeof router.addRoute !== \"function\") {\n throw new TypeError(\"registerClientModuleRoutes requires router.addRoute().\");\n }\n if (!surfaceRuntime || typeof surfaceRuntime !== \"object\") {\n throw new TypeError(\"registerClientModuleRoutes requires surfaceRuntime.\");\n }\n\n const normalizedRoutes = normalizeRouteList(routes, { packageId: normalizedPackageId });\n assertRoutesDeclaredInPackageMetadata({\n packageId: normalizedPackageId,\n source,\n normalizedRoutes,\n packageMetadataRouteDeclarations\n });\n const activeRoutes = filterRoutesBySurface(normalizedRoutes, {\n surfaceRuntime,\n surfaceMode\n });\n const log = createStructuredLogger(logger);\n log.debug(\n {\n packageId: normalizedPackageId,\n source,\n surfaceMode: String(surfaceMode || \"\").trim(),\n declaredRoutes: normalizedRoutes.map(toRouteSnapshot),\n activeRoutes: activeRoutes.map(toRouteSnapshot)\n },\n \"Client route registration analysis.\"\n );\n\n const declaredPaths = normalizedRoutes.map((route) => route.path);\n const activePaths = activeRoutes.map((route) => route.path);\n\n let registeredCount = 0;\n for (const route of activeRoutes) {\n const normalizedPath = String(route.path || \"\").trim();\n if (seenRoutePaths.has(normalizedPath)) {\n throw new Error(`Client route path \"${normalizedPath}\" is duplicated (package ${normalizedPackageId}).`);\n }\n\n const normalizedName = String(route.name || \"\").trim();\n if (normalizedName) {\n if (seenRouteNames.has(normalizedName)) {\n throw new Error(`Client route name \"${normalizedName}\" is duplicated (package ${normalizedPackageId}).`);\n }\n seenRouteNames.add(normalizedName);\n }\n\n seenRoutePaths.add(normalizedPath);\n router.addRoute(toVueRouteRecord(route));\n log.debug(\n {\n packageId: normalizedPackageId,\n source,\n route: toRouteSnapshot(route)\n },\n \"Added client route to router.\"\n );\n registeredCount += 1;\n }\n\n return Object.freeze({\n packageId: normalizedPackageId,\n source,\n declaredCount: normalizedRoutes.length,\n registeredCount,\n declaredPaths: Object.freeze(declaredPaths),\n activePaths: Object.freeze(activePaths)\n });\n}\n\nfunction resolvePackageMetadataProviders(moduleNamespace, packageId, packageMetadataClientProviders = []) {\n const providers = [];\n const seenProviderIds = new Set();\n\n for (const providerDeclaration of packageMetadataClientProviders) {\n const exportName = String(providerDeclaration?.export || \"\").trim();\n if (!exportName) {\n continue;\n }\n\n const providerValue = moduleNamespace?.[exportName];\n let provider = null;\n try {\n provider = defineProvider(providerValue);\n } catch (error) {\n throw new TypeError(\n `Client module ${packageId} packageMetadata provider export \"${exportName}\" must be a capability provider: ${error.message}`,\n { cause: error }\n );\n }\n\n const providerId = provider.id;\n\n if (seenProviderIds.has(providerId)) {\n continue;\n }\n seenProviderIds.add(providerId);\n providers.push(provider);\n }\n\n return providers;\n}\n\nfunction resolveModuleProviders(moduleNamespace, packageId, packageMetadataClientProviders = []) {\n if (!isRecord(moduleNamespace)) {\n return [];\n }\n return resolvePackageMetadataProviders(moduleNamespace, packageId, packageMetadataClientProviders);\n}\n\nfunction buildPackageMetadataRouteDeclarationIndex({ packageId, packageMetadataUiRoutes = [] } = {}) {\n const normalizedPackageId = normalizePackageId(packageId);\n const packageMetadataRoutes = normalizePackageMetadataUiRoutes(packageMetadataUiRoutes);\n const byId = new Map();\n\n for (const packageMetadataRoute of packageMetadataRoutes) {\n const routeId = String(packageMetadataRoute.id || \"\").trim();\n const routePath = String(packageMetadataRoute.path || \"\").trim();\n const routeScope = String(packageMetadataRoute.scope || \"surface\")\n .trim()\n .toLowerCase();\n if (!routeId || !routePath) {\n continue;\n }\n\n if (byId.has(routeId)) {\n const existingRoute = byId.get(routeId);\n if (existingRoute.path !== routePath || existingRoute.scope !== routeScope) {\n throw new Error(\n `PackageMetadata ui routes for ${normalizedPackageId} define duplicate id \"${routeId}\" with conflicting declarations.`\n );\n }\n continue;\n }\n\n byId.set(\n routeId,\n Object.freeze({\n id: routeId,\n path: routePath,\n scope: routeScope\n })\n );\n }\n\n return Object.freeze({ byId });\n}\n\nfunction assertRoutesDeclaredInPackageMetadata({\n packageId,\n source,\n normalizedRoutes = [],\n packageMetadataRouteDeclarations = null\n} = {}) {\n const normalizedSource = String(source || \"\").trim();\n if (normalizedSource !== \"clientRoutes\") {\n return;\n }\n\n const byId = packageMetadataRouteDeclarations?.byId instanceof Map ? packageMetadataRouteDeclarations.byId : new Map();\n const normalizedPackageId = normalizePackageId(packageId);\n\n for (const route of normalizedRoutes) {\n const routeId = String(route?.id || \"\").trim();\n const routePath = String(route?.path || \"\").trim();\n const routeScope = String(route?.scope || \"surface\")\n .trim()\n .toLowerCase();\n if (routeScope !== \"global\") {\n continue;\n }\n\n const declaredRoute = byId.get(routeId);\n if (!declaredRoute) {\n throw new Error(\n `Global client route \"${routeId}\" from ${normalizedPackageId} (${source}) must be declared in metadata.ui.routes (id \"${routeId}\", path \"${routePath}\") with scope:\"global\" and autoRegister:false.`\n );\n }\n if (String(declaredRoute.path || \"\").trim() !== routePath) {\n throw new Error(\n `Global client route \"${routeId}\" from ${normalizedPackageId} (${source}) path \"${routePath}\" does not match packageMetadata metadata.ui.routes path \"${declaredRoute.path}\".`\n );\n }\n if (String(declaredRoute.scope || \"\").trim().toLowerCase() !== \"global\") {\n throw new Error(\n `Global client route \"${routeId}\" from ${normalizedPackageId} (${source}) must be declared with scope:\"global\" in metadata.ui.routes.`\n );\n }\n }\n}\n\nfunction resolvePackageMetadataClientRoutes({\n packageId,\n packageMetadataUiRoutes = [],\n routeComponents = {},\n logger = null\n} = {}) {\n const normalizedPackageId = normalizePackageId(packageId);\n const packageMetadataRoutes = normalizePackageMetadataUiRoutes(packageMetadataUiRoutes);\n if (packageMetadataRoutes.length < 1) {\n return Object.freeze([]);\n }\n if (!isRecord(routeComponents)) {\n throw new TypeError(\n `Client module ${normalizedPackageId} declares packageMetadata ui routes but does not export a routeComponents map.`\n );\n }\n\n const log = createStructuredLogger(logger);\n const routes = [];\n const skippedRoutes = [];\n for (const packageMetadataRoute of packageMetadataRoutes) {\n const routeId = String(packageMetadataRoute.id || \"\").trim();\n const routePath = String(packageMetadataRoute.path || \"\").trim();\n const autoRegister = packageMetadataRoute.autoRegister !== false;\n if (!autoRegister) {\n skippedRoutes.push(\n Object.freeze({\n id: routeId,\n path: routePath,\n reason: \"autoRegister=false\"\n })\n );\n continue;\n }\n\n if (!routeId || !routePath) {\n throw new Error(\n `PackageMetadata ui route from ${normalizedPackageId} requires id and path when autoRegister is enabled.`\n );\n }\n\n const componentKey = String(packageMetadataRoute.componentKey || \"\").trim();\n if (!componentKey) {\n throw new Error(\n `PackageMetadata ui route \"${routeId}\" from ${normalizedPackageId} requires componentKey when autoRegister is enabled.`\n );\n }\n\n const routeComponent = routeComponents[componentKey];\n if (!isRouteComponent(routeComponent)) {\n throw new Error(\n `PackageMetadata ui route \"${routeId}\" from ${normalizedPackageId} references unknown routeComponents key \"${componentKey}\".`\n );\n }\n\n const scope = String(packageMetadataRoute.scope || \"surface\")\n .trim()\n .toLowerCase();\n const surface = String(packageMetadataRoute.surface || \"\")\n .trim()\n .toLowerCase();\n const guard = isRecord(packageMetadataRoute.guard) ? { ...packageMetadataRoute.guard } : {};\n const baseMeta = isRecord(packageMetadataRoute.meta) ? { ...packageMetadataRoute.meta } : {};\n const baseMetaJskit = isRecord(baseMeta.jskit) ? { ...baseMeta.jskit } : {};\n\n routes.push(\n Object.freeze({\n id: routeId,\n path: routePath,\n scope,\n ...(surface ? { surface } : {}),\n ...(String(packageMetadataRoute.name || \"\").trim() ? { name: String(packageMetadataRoute.name || \"\").trim() } : {}),\n component: routeComponent,\n meta: {\n ...baseMeta,\n ...(Object.keys(guard).length > 0 ? { guard } : {}),\n jskit: {\n ...baseMetaJskit,\n packageId: normalizedPackageId,\n routeId,\n scope,\n componentKey,\n source: \"packageMetadata.ui.routes\",\n ...(surface ? { surface } : {})\n }\n }\n })\n );\n }\n\n log.debug(\n {\n packageId: normalizedPackageId,\n packageMetadataRouteCount: packageMetadataRoutes.length,\n autoRegisterRouteCount: routes.length,\n skippedRoutes\n },\n \"Processed packageMetadata ui routes.\"\n );\n\n return Object.freeze(routes);\n}\n\nfunction normalizeClientModuleEntries(clientModules) {\n if (!Array.isArray(clientModules)) {\n return [];\n }\n\n return clientModules\n .map((entry) => {\n const packageId = normalizePackageId(entry?.packageId);\n const moduleNamespace = isRecord(entry?.module) ? entry.module : null;\n if (!packageId || !moduleNamespace) {\n return null;\n }\n return Object.freeze({\n packageId,\n module: moduleNamespace,\n packageMetadataUiRoutes: normalizePackageMetadataUiRoutes(entry?.packageMetadataUiRoutes),\n packageMetadataClientProviders: normalizePackageMetadataClientProviders(entry?.packageMetadataClientProviders)\n });\n })\n .filter(Boolean)\n .sort((left, right) => left.packageId.localeCompare(right.packageId));\n}\n\nfunction createClientRuntime({\n profile = \"client\",\n providers = [],\n app,\n pinia = null,\n queryClient = null,\n router,\n env,\n logger,\n surfaceRuntime,\n surfaceMode\n} = {}) {\n const components = createClientComponentRegistry();\n const runtime = createCapabilityRuntime({\n profile,\n providers,\n inputs: {\n \"client.vue\": app || null,\n \"client.router\": router || null,\n \"client.pinia\": pinia,\n \"client.query\": queryClient,\n \"client.env\": Object.freeze({ ...(isRecord(env) ? env : {}) }),\n \"client.surface\": surfaceRuntime || null,\n \"client.surface-mode\": String(surfaceMode || \"\").trim(),\n \"client.logger\": logger,\n \"client.components\": components\n }\n });\n return Object.freeze({ runtime, components });\n}\n\nasync function bootClientModules({\n clientModules = [],\n app,\n pinia = null,\n queryClient = null,\n router,\n surfaceRuntime,\n surfaceMode,\n env,\n logger = console\n} = {}) {\n if (!router || typeof router.addRoute !== \"function\") {\n throw new TypeError(\"bootClientModules requires router.addRoute().\");\n }\n if (!surfaceRuntime || typeof surfaceRuntime.normalizeSurfaceMode !== \"function\") {\n throw new TypeError(\"bootClientModules requires surfaceRuntime.normalizeSurfaceMode().\");\n }\n\n const log = createStructuredLogger(logger);\n const moduleEntries = normalizeClientModuleEntries(clientModules);\n const providers = [];\n const seenProviderIds = new Set();\n log.debug(\n {\n surfaceMode: String(surfaceMode || \"\").trim(),\n normalizedSurfaceMode: String(surfaceRuntime.normalizeSurfaceMode(surfaceMode) || \"\").trim(),\n moduleCount: moduleEntries.length,\n modules: moduleEntries.map((entry) => entry.packageId)\n },\n \"Starting JSKIT client module bootstrap.\"\n );\n for (const entry of moduleEntries) {\n const moduleProviders = resolveModuleProviders(entry.module, entry.packageId, entry.packageMetadataClientProviders);\n log.debug(\n {\n packageId: entry.packageId,\n providerExports: moduleProviders.map((provider) => provider.id),\n hasClientRoutes: Array.isArray(entry.module.clientRoutes) && entry.module.clientRoutes.length > 0\n },\n \"Discovered client module capabilities.\"\n );\n for (const provider of moduleProviders) {\n const providerId = provider.id;\n if (seenProviderIds.has(providerId)) {\n throw new Error(`Client provider id \"${providerId}\" is duplicated.`);\n }\n seenProviderIds.add(providerId);\n providers.push(provider);\n }\n }\n\n const clientRuntime = createClientRuntime({\n profile: String(surfaceRuntime.normalizeSurfaceMode(surfaceMode) || \"client\"),\n providers,\n app,\n pinia,\n queryClient,\n router,\n env,\n logger: log,\n surfaceRuntime,\n surfaceMode\n });\n await clientRuntime.runtime.start();\n\n const seenRoutePaths = new Set();\n const seenRouteNames = new Set();\n const routeResults = [];\n const registerRoutesForEntry = (routeList, packageId, source = \"module\", packageMetadataRouteDeclarations = null) => {\n if (!routeList || routeList.length === 0) {\n return null;\n }\n const result = registerClientModuleRoutes({\n packageId,\n routes: routeList,\n router,\n surfaceRuntime,\n surfaceMode,\n seenRoutePaths,\n seenRouteNames,\n logger: log,\n source,\n packageMetadataRouteDeclarations\n });\n log.debug(\n {\n packageId,\n source,\n declaredPaths: result.declaredPaths,\n activePaths: result.activePaths,\n registeredCount: result.registeredCount\n },\n \"Registered client module routes.\"\n );\n log.debug(\n {\n packageId,\n source,\n routerRoutes: summarizeRouterRoutes(router)\n },\n \"Router route table after client route registration.\"\n );\n routeResults.push(result);\n return result;\n };\n for (const entry of moduleEntries) {\n const packageMetadataRouteDeclarations = buildPackageMetadataRouteDeclarationIndex({\n packageId: entry.packageId,\n packageMetadataUiRoutes: entry.packageMetadataUiRoutes\n });\n const packageMetadataRoutes = resolvePackageMetadataClientRoutes({\n packageId: entry.packageId,\n packageMetadataUiRoutes: entry.packageMetadataUiRoutes,\n routeComponents: entry.module.routeComponents,\n logger: log\n });\n registerRoutesForEntry(packageMetadataRoutes, entry.packageId, \"packageMetadata.ui.routes\", packageMetadataRouteDeclarations);\n\n const moduleRoutes = Array.isArray(entry.module.clientRoutes) ? entry.module.clientRoutes : [];\n registerRoutesForEntry(moduleRoutes, entry.packageId, \"clientRoutes\", packageMetadataRouteDeclarations);\n\n }\n\n const registeredRouteCount = routeResults.reduce((sum, result) => sum + result.registeredCount, 0);\n if (moduleEntries.length > 0) {\n log.debug(\n {\n modules: moduleEntries.map((entry) => entry.packageId),\n providerCount: providers.length,\n routeCount: registeredRouteCount\n },\n \"Booted JSKIT client modules.\"\n );\n log.debug(\n {\n routerRoutes: summarizeRouterRoutes(router),\n currentPath: typeof window !== \"undefined\" ? String(window.location?.pathname || \"\") : \"\"\n },\n \"JSKIT client bootstrap final route table.\"\n );\n }\n\n return Object.freeze({\n runtime: clientRuntime.runtime,\n components: clientRuntime.components,\n modules: Object.freeze(moduleEntries.map((entry) => entry.packageId)),\n providerCount: providers.length,\n routeResults: Object.freeze(routeResults),\n routeCount: registeredRouteCount\n });\n}\n\nexport { bootClientModules };\n"],"mappings":"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"}