@ankhorage/runtime 4.0.7 → 4.1.1
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.
- package/CHANGELOG.md +12 -0
- package/README.md +2 -1
- package/dist/RuntimeRendererConfig.d.ts +1 -1
- package/dist/RuntimeRendererConfig.d.ts.map +1 -1
- package/dist/RuntimeRendererConfig.js.map +1 -1
- package/dist/capabilities/index.d.ts +47 -2
- package/dist/capabilities/index.d.ts.map +1 -1
- package/dist/capabilities/index.js +33 -2
- package/dist/capabilities/index.js.map +1 -1
- package/dist/capabilities/resolveRuntimeContextCapability.d.ts +21 -0
- package/dist/capabilities/resolveRuntimeContextCapability.d.ts.map +1 -0
- package/dist/capabilities/resolveRuntimeContextCapability.js +53 -0
- package/dist/capabilities/resolveRuntimeContextCapability.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/runtimeActionRegistry.d.ts +1 -1
- package/dist/runtimeActionRegistry.d.ts.map +1 -1
- package/dist/runtimeActionRegistry.js +1 -1
- package/dist/runtimeActionRegistry.js.map +1 -1
- package/dist/runtimeBindings.d.ts.map +1 -1
- package/dist/runtimeBindings.js +1 -3
- package/dist/runtimeBindings.js.map +1 -1
- package/dist/runtimeManifest.d.ts +1 -1
- package/dist/runtimeManifest.d.ts.map +1 -1
- package/dist/runtimeManifest.js.map +1 -1
- package/dist/runtimeNodeProps.d.ts.map +1 -1
- package/dist/runtimeNodeProps.js +1 -1
- package/dist/runtimeNodeProps.js.map +1 -1
- package/package.json +70 -6
- package/paradox/badges/npm.svg +3 -3
- package/paradox/diagrams/architecture-overview.mmd +6 -0
- package/paradox/diagrams/export-graph.mmd +11 -0
- package/paradox/diagrams/module-relationships.mmd +4 -0
- package/paradox/diagrams/sequences/resolve-runtime-context-capability.mmd +8 -0
- package/paradox/exports.json +144 -26
- package/paradox/exports.md +66 -26
- package/paradox/index.html +285 -105
- package/paradox/paradox.json +387 -106
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtimeBindings.js","sourceRoot":"","sources":["../src/runtimeBindings.ts"],"names":[],"mappings":"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","sourcesContent":["import type {\n ApiDefinition,\n ApiDefinitionRegistry,\n BindingFallback,\n BindingInputMap,\n BindingInputValue,\n BindingOperationRef,\n BindingValue,\n BindingValueSource,\n BindingValueTransform,\n ComponentDataBindingRegistry,\n ComponentEventDto,\n DataEndpointConfig,\n DataSourceDiagnostic,\n PropBinding,\n StateAdapter,\n UiNode,\n} from '@ankhorage/contracts';\n\nimport { resolveRuntimeBindingOperationSelection } from './runtimeApiSelection';\n\nexport type RuntimeBindingOperationKey = string;\n\nexport interface RuntimeBindingOperationExecutionArgs {\n readonly operation: BindingOperationRef;\n readonly api: ApiDefinition;\n readonly endpoint: DataEndpointConfig;\n readonly input?: BindingValue;\n readonly node?: UiNode;\n}\n\nexport type RuntimeBindingOperationExecutionResult =\n | {\n readonly ok: true;\n readonly data: BindingValue;\n readonly diagnostics?: readonly DataSourceDiagnostic[];\n }\n | {\n readonly ok: false;\n readonly diagnostics: readonly DataSourceDiagnostic[];\n };\n\nexport type RuntimeBindingOperationExecutor = (\n args: RuntimeBindingOperationExecutionArgs,\n) => Promise<RuntimeBindingOperationExecutionResult>;\n\nexport type RuntimeBindingOperationResultCache = Readonly<\n Record<RuntimeBindingOperationKey, BindingValue | undefined>\n>;\n\nexport type RuntimeBindingOperationResultWriter = (\n key: RuntimeBindingOperationKey,\n value: BindingValue,\n) => void;\n\nexport interface RuntimeBindingResolutionContext {\n readonly context?: Record<string, unknown>;\n readonly event?: ComponentEventDto<string, object>;\n readonly stateAdapter?: StateAdapter;\n readonly apis?: ApiDefinitionRegistry;\n readonly dataBindings?: ComponentDataBindingRegistry;\n readonly operationResults?: RuntimeBindingOperationResultCache;\n readonly executeOperation?: RuntimeBindingOperationExecutor;\n}\n\nexport interface RuntimeBindingResolutionArgs extends RuntimeBindingResolutionContext {\n readonly node: UiNode;\n readonly props: Record<string, unknown>;\n}\n\nexport interface RuntimeBindingResolutionResult {\n readonly props: Record<string, unknown>;\n readonly diagnostics: readonly DataSourceDiagnostic[];\n}\n\nexport async function resolveRuntimeBindingsAsync(\n args: RuntimeBindingResolutionArgs,\n): Promise<RuntimeBindingResolutionResult> {\n const diagnostics: DataSourceDiagnostic[] = [];\n const resolvedProps: Record<string, unknown> = { ...args.props };\n const binding = args.dataBindings?.[args.node.id];\n\n for (const [prop, propBinding] of Object.entries(binding?.props ?? {})) {\n const value = await resolveRuntimeBindingValue(propBinding, args, diagnostics);\n resolvedProps[prop] = value;\n }\n\n return { props: resolvedProps, diagnostics };\n}\n\nexport function resolveRuntimeBindings(\n args: RuntimeBindingResolutionArgs,\n): RuntimeBindingResolutionResult {\n const diagnostics: DataSourceDiagnostic[] = [];\n const resolvedProps: Record<string, unknown> = { ...args.props };\n const binding = args.dataBindings?.[args.node.id];\n\n for (const [prop, propBinding] of Object.entries(binding?.props ?? {})) {\n resolvedProps[prop] = resolveRuntimeBindingValueSync(propBinding, args, diagnostics);\n }\n\n return { props: resolvedProps, diagnostics };\n}\n\nexport async function resolveRuntimeBindingValue(\n binding: PropBinding,\n context: RuntimeBindingResolutionContext,\n diagnostics: DataSourceDiagnostic[] = [],\n): Promise<unknown> {\n const value = await resolveRuntimeBindingValueSource(binding.source, context, diagnostics);\n const transformedValue = applyBindingValueTransforms(value, binding.transforms);\n\n if (transformedValue !== undefined) return transformedValue;\n\n return resolveBindingFallback(binding.fallback, context, diagnostics);\n}\n\nexport function resolveRuntimeBindingValueSync(\n binding: PropBinding,\n context: RuntimeBindingResolutionContext,\n diagnostics: DataSourceDiagnostic[] = [],\n): unknown {\n const value = resolveRuntimeBindingValueSourceSync(binding.source, context, diagnostics);\n const transformedValue = applyBindingValueTransforms(value, binding.transforms);\n\n if (transformedValue !== undefined) return transformedValue;\n\n return resolveBindingFallbackSync(binding.fallback, context, diagnostics);\n}\n\nexport async function resolveBindingInputMap(\n input: BindingInputMap | undefined,\n context: RuntimeBindingResolutionContext,\n diagnostics: DataSourceDiagnostic[] = [],\n): Promise<BindingValue | undefined> {\n if (input === undefined) return undefined;\n\n const fields: Record<string, BindingValue> = {};\n\n for (const [key, value] of Object.entries(input)) {\n const resolvedValue = await resolveBindingInputValue(value, context, diagnostics);\n if (resolvedValue !== undefined) fields[key] = resolvedValue;\n }\n\n return fields;\n}\n\nexport function resolveBindingInputMapSync(\n input: BindingInputMap | undefined,\n context: RuntimeBindingResolutionContext,\n diagnostics: DataSourceDiagnostic[] = [],\n): BindingValue | undefined {\n if (input === undefined) return undefined;\n\n const fields: Record<string, BindingValue> = {};\n\n for (const [key, value] of Object.entries(input)) {\n const resolvedValue = resolveBindingInputValueSync(value, context, diagnostics);\n if (resolvedValue !== undefined) fields[key] = resolvedValue;\n }\n\n return fields;\n}\n\nexport function createRuntimeBindingOperationKey(\n operation: BindingOperationRef,\n): RuntimeBindingOperationKey {\n return [operation.apiId, operation.endpointId ?? '', operation.operationId].join(':');\n}\n\nasync function resolveRuntimeBindingValueSource(\n source: BindingValueSource,\n context: RuntimeBindingResolutionContext,\n diagnostics: DataSourceDiagnostic[],\n): Promise<BindingValue | undefined> {\n if (source.kind !== 'operation') {\n return resolveRuntimeBindingValueSourceSync(source, context, diagnostics);\n }\n\n const cached = resolveCachedOperationValue(source, context);\n if (cached !== undefined) return cached;\n\n if (context.executeOperation === undefined) {\n diagnostics.push(\n createRuntimeBindingDiagnostic(\n source.operation,\n 'missing-adapter',\n 'API operation binding requires an injected operation executor.',\n ),\n );\n return undefined;\n }\n\n const selection = resolveRuntimeBindingOperationSelection(\n source.operation,\n context.apis,\n diagnostics,\n );\n if (selection === undefined) return undefined;\n\n const result = await context.executeOperation({\n api: selection.api,\n endpoint: selection.endpoint,\n operation: source.operation,\n });\n\n diagnostics.push(...(result.diagnostics ?? []));\n if (!result.ok) return undefined;\n\n return applyRuntimeBindingDataPath(result.data, source.path);\n}\n\nexport function resolveRuntimeBindingValueSourceSync(\n source: BindingValueSource,\n context: RuntimeBindingResolutionContext,\n diagnostics: DataSourceDiagnostic[],\n): BindingValue | undefined {\n switch (source.kind) {\n case 'context':\n return asBindingValue(readPath(context.context, source.path));\n case 'event':\n return asBindingValue(readPath(context.event, source.path));\n case 'literal':\n return source.value;\n case 'operation': {\n const cached = resolveCachedOperationValue(source, context);\n if (cached !== undefined) return cached;\n diagnostics.push(\n createRuntimeBindingDiagnostic(\n source.operation,\n 'missing-adapter',\n 'Synchronous API operation bindings require preloaded operation results.',\n ),\n );\n return undefined;\n }\n case 'state': {\n const result = context.stateAdapter?.get(source.path);\n return result?.ok ? asBindingValue(result.data) : undefined;\n }\n }\n}\n\nfunction resolveCachedOperationValue(\n source: Extract<BindingValueSource, { readonly kind: 'operation' }>,\n context: RuntimeBindingResolutionContext,\n): BindingValue | undefined {\n const operationKey = createRuntimeBindingOperationKey(source.operation);\n const cachedValue = context.operationResults?.[operationKey];\n\n return applyRuntimeBindingDataPath(cachedValue, source.path);\n}\n\nasync function resolveBindingFallback(\n fallback: BindingFallback | undefined,\n context: RuntimeBindingResolutionContext,\n diagnostics: DataSourceDiagnostic[],\n): Promise<unknown> {\n if (fallback === undefined) return undefined;\n if (fallback.value !== undefined) return fallback.value;\n if (fallback.source === undefined) return undefined;\n\n return resolveRuntimeBindingValueSource(fallback.source, context, diagnostics);\n}\n\nfunction resolveBindingFallbackSync(\n fallback: BindingFallback | undefined,\n context: RuntimeBindingResolutionContext,\n diagnostics: DataSourceDiagnostic[],\n): unknown {\n if (fallback === undefined) return undefined;\n if (fallback.value !== undefined) return fallback.value;\n if (fallback.source === undefined) return undefined;\n\n return resolveRuntimeBindingValueSourceSync(fallback.source, context, diagnostics);\n}\n\nasync function resolveBindingInputValue(\n input: BindingInputValue,\n context: RuntimeBindingResolutionContext,\n diagnostics: DataSourceDiagnostic[],\n): Promise<BindingValue | undefined> {\n if (input.kind === 'literal') return input.value;\n if (input.kind === 'source') {\n const value = await resolveRuntimeBindingValueSource(input.source, context, diagnostics);\n return applyBindingValueTransforms(value, input.transforms);\n }\n\n if (input.kind === 'array') {\n const items: BindingValue[] = [];\n\n for (const item of input.items) {\n const value = await resolveBindingInputValue(item, context, diagnostics);\n if (value !== undefined) items.push(value);\n }\n\n return items;\n }\n\n const fields: Record<string, BindingValue> = {};\n\n for (const [key, value] of Object.entries(input.fields)) {\n const resolvedValue = await resolveBindingInputValue(value, context, diagnostics);\n if (resolvedValue !== undefined) fields[key] = resolvedValue;\n }\n\n return fields;\n}\n\nfunction resolveBindingInputValueSync(\n input: BindingInputValue,\n context: RuntimeBindingResolutionContext,\n diagnostics: DataSourceDiagnostic[],\n): BindingValue | undefined {\n if (input.kind === 'literal') return input.value;\n if (input.kind === 'source') {\n const value = resolveRuntimeBindingValueSourceSync(input.source, context, diagnostics);\n return applyBindingValueTransforms(value, input.transforms);\n }\n\n if (input.kind === 'array') {\n const items: BindingValue[] = [];\n\n for (const item of input.items) {\n const value = resolveBindingInputValueSync(item, context, diagnostics);\n if (value !== undefined) items.push(value);\n }\n\n return items;\n }\n\n const fields: Record<string, BindingValue> = {};\n\n for (const [key, value] of Object.entries(input.fields)) {\n const resolvedValue = resolveBindingInputValueSync(value, context, diagnostics);\n if (resolvedValue !== undefined) fields[key] = resolvedValue;\n }\n\n return fields;\n}\n\nfunction createRuntimeBindingDiagnostic(\n operation: BindingOperationRef,\n code: DataSourceDiagnostic['code'],\n message: string,\n): DataSourceDiagnostic {\n return {\n apiId: operation.apiId,\n code,\n endpointId: operation.endpointId,\n message,\n operationId: operation.operationId,\n severity: 'error',\n };\n}\n\nfunction applyBindingValueTransforms(\n value: unknown,\n transforms: readonly BindingValueTransform[] | undefined,\n): BindingValue | undefined {\n const bindingValue = asBindingValue(value);\n if (typeof bindingValue !== 'string' || transforms === undefined) return bindingValue;\n\n let currentValue = bindingValue;\n\n for (const transform of transforms) {\n if (transform === 'lowercase') currentValue = currentValue.toLowerCase();\n if (transform === 'trim') currentValue = currentValue.trim();\n if (transform === 'uppercase') currentValue = currentValue.toUpperCase();\n }\n\n return currentValue;\n}\n\nexport function applyRuntimeBindingDataPath(\n value: BindingValue | undefined,\n path: string | undefined,\n): BindingValue | undefined {\n if (path === undefined) return value;\n return asBindingValue(readPath(value, path));\n}\n\nfunction readPath(source: unknown, path: string): unknown {\n return path.split('.').reduce<unknown>((currentValue, part) => {\n if (Array.isArray(currentValue)) {\n if (!isArrayIndexPathPart(part)) return undefined;\n return currentValue[Number(part)];\n }\n\n if (!isRecord(currentValue)) return undefined;\n return currentValue[part];\n }, source);\n}\n\nfunction isArrayIndexPathPart(part: string): boolean {\n return /^(0|[1-9]\\d*)$/.test(part);\n}\n\nfunction asBindingValue(value: unknown): BindingValue | undefined {\n return isBindingValue(value) ? value : undefined;\n}\n\nfunction isBindingValue(value: unknown): value is BindingValue {\n if (value === null) return true;\n if (typeof value === 'string' || typeof value === 'number' || typeof value === 'boolean') {\n return true;\n }\n\n if (Array.isArray(value)) return value.every(isBindingValue);\n if (!isRecord(value)) return false;\n\n return Object.values(value).every(isBindingValue);\n}\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n return typeof value === 'object' && value !== null && !Array.isArray(value);\n}\n"]}
|
|
1
|
+
{"version":3,"file":"runtimeBindings.js","sourceRoot":"","sources":["../src/runtimeBindings.ts"],"names":[],"mappings":"AAkBA,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAErD,OAAO,EAAE,uCAAuC,EAAE,MAAM,uBAAuB,CAAC;AAwDhF,MAAM,CAAC,KAAK,UAAU,2BAA2B,CAC/C,IAAkC;IAElC,MAAM,WAAW,GAA2B,EAAE,CAAC;IAC/C,MAAM,aAAa,GAA4B,EAAE,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;IACjE,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAElD,KAAK,MAAM,CAAC,IAAI,EAAE,WAAW,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,KAAK,IAAI,EAAE,CAAC,EAAE,CAAC;QACvE,MAAM,KAAK,GAAG,MAAM,0BAA0B,CAAC,WAAW,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC;QAC/E,aAAa,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;IAC9B,CAAC;IAED,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,CAAC;AAC/C,CAAC;AAED,MAAM,UAAU,sBAAsB,CACpC,IAAkC;IAElC,MAAM,WAAW,GAA2B,EAAE,CAAC;IAC/C,MAAM,aAAa,GAA4B,EAAE,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;IACjE,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAElD,KAAK,MAAM,CAAC,IAAI,EAAE,WAAW,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,KAAK,IAAI,EAAE,CAAC,EAAE,CAAC;QACvE,aAAa,CAAC,IAAI,CAAC,GAAG,8BAA8B,CAAC,WAAW,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC;IACvF,CAAC;IAED,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,CAAC;AAC/C,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,0BAA0B,CAC9C,OAAoB,EACpB,OAAwC,EACxC,cAAsC,EAAE;IAExC,MAAM,KAAK,GAAG,MAAM,gCAAgC,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC;IAC3F,MAAM,gBAAgB,GAAG,2BAA2B,CAAC,KAAK,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;IAEhF,IAAI,gBAAgB,KAAK,SAAS;QAAE,OAAO,gBAAgB,CAAC;IAE5D,OAAO,sBAAsB,CAAC,OAAO,CAAC,QAAQ,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC;AACxE,CAAC;AAED,MAAM,UAAU,8BAA8B,CAC5C,OAAoB,EACpB,OAAwC,EACxC,cAAsC,EAAE;IAExC,MAAM,KAAK,GAAG,oCAAoC,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC;IACzF,MAAM,gBAAgB,GAAG,2BAA2B,CAAC,KAAK,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;IAEhF,IAAI,gBAAgB,KAAK,SAAS;QAAE,OAAO,gBAAgB,CAAC;IAE5D,OAAO,0BAA0B,CAAC,OAAO,CAAC,QAAQ,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC;AAC5E,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,KAAkC,EAClC,OAAwC,EACxC,cAAsC,EAAE;IAExC,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAE1C,MAAM,MAAM,GAAiC,EAAE,CAAC;IAEhD,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACjD,MAAM,aAAa,GAAG,MAAM,wBAAwB,CAAC,KAAK,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC;QAClF,IAAI,aAAa,KAAK,SAAS;YAAE,MAAM,CAAC,GAAG,CAAC,GAAG,aAAa,CAAC;IAC/D,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,0BAA0B,CACxC,KAAkC,EAClC,OAAwC,EACxC,cAAsC,EAAE;IAExC,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAE1C,MAAM,MAAM,GAAiC,EAAE,CAAC;IAEhD,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACjD,MAAM,aAAa,GAAG,4BAA4B,CAAC,KAAK,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC;QAChF,IAAI,aAAa,KAAK,SAAS;YAAE,MAAM,CAAC,GAAG,CAAC,GAAG,aAAa,CAAC;IAC/D,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,gCAAgC,CAC9C,SAA8B;IAE9B,OAAO,CAAC,SAAS,CAAC,KAAK,EAAE,SAAS,CAAC,UAAU,IAAI,EAAE,EAAE,SAAS,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACxF,CAAC;AAED,KAAK,UAAU,gCAAgC,CAC7C,MAA0B,EAC1B,OAAwC,EACxC,WAAmC;IAEnC,IAAI,MAAM,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;QAChC,OAAO,oCAAoC,CAAC,MAAM,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC;IAC5E,CAAC;IAED,MAAM,MAAM,GAAG,2BAA2B,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC5D,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO,MAAM,CAAC;IAExC,IAAI,OAAO,CAAC,gBAAgB,KAAK,SAAS,EAAE,CAAC;QAC3C,WAAW,CAAC,IAAI,CACd,8BAA8B,CAC5B,MAAM,CAAC,SAAS,EAChB,iBAAiB,EACjB,gEAAgE,CACjE,CACF,CAAC;QACF,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,SAAS,GAAG,uCAAuC,CACvD,MAAM,CAAC,SAAS,EAChB,OAAO,CAAC,IAAI,EACZ,WAAW,CACZ,CAAC;IACF,IAAI,SAAS,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAE9C,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,gBAAgB,CAAC;QAC5C,GAAG,EAAE,SAAS,CAAC,GAAG;QAClB,QAAQ,EAAE,SAAS,CAAC,QAAQ;QAC5B,SAAS,EAAE,MAAM,CAAC,SAAS;KAC5B,CAAC,CAAC;IAEH,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC,CAAC;IAChD,IAAI,CAAC,MAAM,CAAC,EAAE;QAAE,OAAO,SAAS,CAAC;IAEjC,OAAO,2BAA2B,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;AAC/D,CAAC;AAED,MAAM,UAAU,oCAAoC,CAClD,MAA0B,EAC1B,OAAwC,EACxC,WAAmC;IAEnC,QAAQ,MAAM,CAAC,IAAI,EAAE,CAAC;QACpB,KAAK,SAAS;YACZ,OAAO,cAAc,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;QAChE,KAAK,OAAO;YACV,OAAO,cAAc,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;QAC9D,KAAK,SAAS;YACZ,OAAO,MAAM,CAAC,KAAK,CAAC;QACtB,KAAK,WAAW,CAAC,CAAC,CAAC;YACjB,MAAM,MAAM,GAAG,2BAA2B,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;YAC5D,IAAI,MAAM,KAAK,SAAS;gBAAE,OAAO,MAAM,CAAC;YACxC,WAAW,CAAC,IAAI,CACd,8BAA8B,CAC5B,MAAM,CAAC,SAAS,EAChB,iBAAiB,EACjB,yEAAyE,CAC1E,CACF,CAAC;YACF,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,KAAK,OAAO,CAAC,CAAC,CAAC;YACb,MAAM,MAAM,GAAG,OAAO,CAAC,YAAY,EAAE,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YACtD,OAAO,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAC9D,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAS,2BAA2B,CAClC,MAAmE,EACnE,OAAwC;IAExC,MAAM,YAAY,GAAG,gCAAgC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IACxE,MAAM,WAAW,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC,YAAY,CAAC,CAAC;IAE7D,OAAO,2BAA2B,CAAC,WAAW,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;AAC/D,CAAC;AAED,KAAK,UAAU,sBAAsB,CACnC,QAAqC,EACrC,OAAwC,EACxC,WAAmC;IAEnC,IAAI,QAAQ,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAC7C,IAAI,QAAQ,CAAC,KAAK,KAAK,SAAS;QAAE,OAAO,QAAQ,CAAC,KAAK,CAAC;IACxD,IAAI,QAAQ,CAAC,MAAM,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAEpD,OAAO,gCAAgC,CAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC;AACjF,CAAC;AAED,SAAS,0BAA0B,CACjC,QAAqC,EACrC,OAAwC,EACxC,WAAmC;IAEnC,IAAI,QAAQ,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAC7C,IAAI,QAAQ,CAAC,KAAK,KAAK,SAAS;QAAE,OAAO,QAAQ,CAAC,KAAK,CAAC;IACxD,IAAI,QAAQ,CAAC,MAAM,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAEpD,OAAO,oCAAoC,CAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC;AACrF,CAAC;AAED,KAAK,UAAU,wBAAwB,CACrC,KAAwB,EACxB,OAAwC,EACxC,WAAmC;IAEnC,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC,KAAK,CAAC;IACjD,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC5B,MAAM,KAAK,GAAG,MAAM,gCAAgC,CAAC,KAAK,CAAC,MAAM,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC;QACzF,OAAO,2BAA2B,CAAC,KAAK,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC;IAC9D,CAAC;IAED,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QAC3B,MAAM,KAAK,GAAmB,EAAE,CAAC;QAEjC,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;YAC/B,MAAM,KAAK,GAAG,MAAM,wBAAwB,CAAC,IAAI,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC;YACzE,IAAI,KAAK,KAAK,SAAS;gBAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC7C,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,MAAM,GAAiC,EAAE,CAAC;IAEhD,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC;QACxD,MAAM,aAAa,GAAG,MAAM,wBAAwB,CAAC,KAAK,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC;QAClF,IAAI,aAAa,KAAK,SAAS;YAAE,MAAM,CAAC,GAAG,CAAC,GAAG,aAAa,CAAC;IAC/D,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,4BAA4B,CACnC,KAAwB,EACxB,OAAwC,EACxC,WAAmC;IAEnC,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC,KAAK,CAAC;IACjD,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC5B,MAAM,KAAK,GAAG,oCAAoC,CAAC,KAAK,CAAC,MAAM,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC;QACvF,OAAO,2BAA2B,CAAC,KAAK,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC;IAC9D,CAAC;IAED,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QAC3B,MAAM,KAAK,GAAmB,EAAE,CAAC;QAEjC,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;YAC/B,MAAM,KAAK,GAAG,4BAA4B,CAAC,IAAI,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC;YACvE,IAAI,KAAK,KAAK,SAAS;gBAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC7C,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,MAAM,GAAiC,EAAE,CAAC;IAEhD,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC;QACxD,MAAM,aAAa,GAAG,4BAA4B,CAAC,KAAK,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC;QAChF,IAAI,aAAa,KAAK,SAAS;YAAE,MAAM,CAAC,GAAG,CAAC,GAAG,aAAa,CAAC;IAC/D,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,8BAA8B,CACrC,SAA8B,EAC9B,IAAkC,EAClC,OAAe;IAEf,OAAO;QACL,KAAK,EAAE,SAAS,CAAC,KAAK;QACtB,IAAI;QACJ,UAAU,EAAE,SAAS,CAAC,UAAU;QAChC,OAAO;QACP,WAAW,EAAE,SAAS,CAAC,WAAW;QAClC,QAAQ,EAAE,OAAO;KAClB,CAAC;AACJ,CAAC;AAED,SAAS,2BAA2B,CAClC,KAAc,EACd,UAAwD;IAExD,MAAM,YAAY,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;IAC3C,IAAI,OAAO,YAAY,KAAK,QAAQ,IAAI,UAAU,KAAK,SAAS;QAAE,OAAO,YAAY,CAAC;IAEtF,IAAI,YAAY,GAAG,YAAY,CAAC;IAEhC,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;QACnC,IAAI,SAAS,KAAK,WAAW;YAAE,YAAY,GAAG,YAAY,CAAC,WAAW,EAAE,CAAC;QACzE,IAAI,SAAS,KAAK,MAAM;YAAE,YAAY,GAAG,YAAY,CAAC,IAAI,EAAE,CAAC;QAC7D,IAAI,SAAS,KAAK,WAAW;YAAE,YAAY,GAAG,YAAY,CAAC,WAAW,EAAE,CAAC;IAC3E,CAAC;IAED,OAAO,YAAY,CAAC;AACtB,CAAC;AAED,MAAM,UAAU,2BAA2B,CACzC,KAA+B,EAC/B,IAAwB;IAExB,IAAI,IAAI,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC;IACrC,OAAO,cAAc,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;AAC/C,CAAC;AAED,SAAS,QAAQ,CAAC,MAAe,EAAE,IAAY;IAC7C,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAU,CAAC,YAAY,EAAE,IAAI,EAAE,EAAE;QAC5D,IAAI,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC;YAChC,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC;gBAAE,OAAO,SAAS,CAAC;YAClD,OAAO,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;QACpC,CAAC;QAED,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC;YAAE,OAAO,SAAS,CAAC;QAC9C,OAAO,YAAY,CAAC,IAAI,CAAC,CAAC;IAC5B,CAAC,EAAE,MAAM,CAAC,CAAC;AACb,CAAC;AAED,SAAS,oBAAoB,CAAC,IAAY;IACxC,OAAO,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACrC,CAAC;AAED,SAAS,cAAc,CAAC,KAAc;IACpC,OAAO,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;AACnD,CAAC;AAED,SAAS,cAAc,CAAC,KAAc;IACpC,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IAChC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,SAAS,EAAE,CAAC;QACzF,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;IAC7D,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IAEnC,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;AACpD,CAAC","sourcesContent":["import type {\n ApiDefinition,\n ApiDefinitionRegistry,\n BindingFallback,\n BindingInputMap,\n BindingInputValue,\n BindingOperationRef,\n BindingValue,\n BindingValueSource,\n BindingValueTransform,\n ComponentDataBindingRegistry,\n ComponentEventDto,\n DataEndpointConfig,\n DataSourceDiagnostic,\n PropBinding,\n StateAdapter,\n UiNode,\n} from '@ankhorage/contracts';\nimport { isRecord } from '@ankhorage/utility/object';\n\nimport { resolveRuntimeBindingOperationSelection } from './runtimeApiSelection';\n\nexport type RuntimeBindingOperationKey = string;\n\nexport interface RuntimeBindingOperationExecutionArgs {\n readonly operation: BindingOperationRef;\n readonly api: ApiDefinition;\n readonly endpoint: DataEndpointConfig;\n readonly input?: BindingValue;\n readonly node?: UiNode;\n}\n\nexport type RuntimeBindingOperationExecutionResult =\n | {\n readonly ok: true;\n readonly data: BindingValue;\n readonly diagnostics?: readonly DataSourceDiagnostic[];\n }\n | {\n readonly ok: false;\n readonly diagnostics: readonly DataSourceDiagnostic[];\n };\n\nexport type RuntimeBindingOperationExecutor = (\n args: RuntimeBindingOperationExecutionArgs,\n) => Promise<RuntimeBindingOperationExecutionResult>;\n\nexport type RuntimeBindingOperationResultCache = Readonly<\n Record<RuntimeBindingOperationKey, BindingValue | undefined>\n>;\n\nexport type RuntimeBindingOperationResultWriter = (\n key: RuntimeBindingOperationKey,\n value: BindingValue,\n) => void;\n\nexport interface RuntimeBindingResolutionContext {\n readonly context?: Record<string, unknown>;\n readonly event?: ComponentEventDto<string, object>;\n readonly stateAdapter?: StateAdapter;\n readonly apis?: ApiDefinitionRegistry;\n readonly dataBindings?: ComponentDataBindingRegistry;\n readonly operationResults?: RuntimeBindingOperationResultCache;\n readonly executeOperation?: RuntimeBindingOperationExecutor;\n}\n\nexport interface RuntimeBindingResolutionArgs extends RuntimeBindingResolutionContext {\n readonly node: UiNode;\n readonly props: Record<string, unknown>;\n}\n\nexport interface RuntimeBindingResolutionResult {\n readonly props: Record<string, unknown>;\n readonly diagnostics: readonly DataSourceDiagnostic[];\n}\n\nexport async function resolveRuntimeBindingsAsync(\n args: RuntimeBindingResolutionArgs,\n): Promise<RuntimeBindingResolutionResult> {\n const diagnostics: DataSourceDiagnostic[] = [];\n const resolvedProps: Record<string, unknown> = { ...args.props };\n const binding = args.dataBindings?.[args.node.id];\n\n for (const [prop, propBinding] of Object.entries(binding?.props ?? {})) {\n const value = await resolveRuntimeBindingValue(propBinding, args, diagnostics);\n resolvedProps[prop] = value;\n }\n\n return { props: resolvedProps, diagnostics };\n}\n\nexport function resolveRuntimeBindings(\n args: RuntimeBindingResolutionArgs,\n): RuntimeBindingResolutionResult {\n const diagnostics: DataSourceDiagnostic[] = [];\n const resolvedProps: Record<string, unknown> = { ...args.props };\n const binding = args.dataBindings?.[args.node.id];\n\n for (const [prop, propBinding] of Object.entries(binding?.props ?? {})) {\n resolvedProps[prop] = resolveRuntimeBindingValueSync(propBinding, args, diagnostics);\n }\n\n return { props: resolvedProps, diagnostics };\n}\n\nexport async function resolveRuntimeBindingValue(\n binding: PropBinding,\n context: RuntimeBindingResolutionContext,\n diagnostics: DataSourceDiagnostic[] = [],\n): Promise<unknown> {\n const value = await resolveRuntimeBindingValueSource(binding.source, context, diagnostics);\n const transformedValue = applyBindingValueTransforms(value, binding.transforms);\n\n if (transformedValue !== undefined) return transformedValue;\n\n return resolveBindingFallback(binding.fallback, context, diagnostics);\n}\n\nexport function resolveRuntimeBindingValueSync(\n binding: PropBinding,\n context: RuntimeBindingResolutionContext,\n diagnostics: DataSourceDiagnostic[] = [],\n): unknown {\n const value = resolveRuntimeBindingValueSourceSync(binding.source, context, diagnostics);\n const transformedValue = applyBindingValueTransforms(value, binding.transforms);\n\n if (transformedValue !== undefined) return transformedValue;\n\n return resolveBindingFallbackSync(binding.fallback, context, diagnostics);\n}\n\nexport async function resolveBindingInputMap(\n input: BindingInputMap | undefined,\n context: RuntimeBindingResolutionContext,\n diagnostics: DataSourceDiagnostic[] = [],\n): Promise<BindingValue | undefined> {\n if (input === undefined) return undefined;\n\n const fields: Record<string, BindingValue> = {};\n\n for (const [key, value] of Object.entries(input)) {\n const resolvedValue = await resolveBindingInputValue(value, context, diagnostics);\n if (resolvedValue !== undefined) fields[key] = resolvedValue;\n }\n\n return fields;\n}\n\nexport function resolveBindingInputMapSync(\n input: BindingInputMap | undefined,\n context: RuntimeBindingResolutionContext,\n diagnostics: DataSourceDiagnostic[] = [],\n): BindingValue | undefined {\n if (input === undefined) return undefined;\n\n const fields: Record<string, BindingValue> = {};\n\n for (const [key, value] of Object.entries(input)) {\n const resolvedValue = resolveBindingInputValueSync(value, context, diagnostics);\n if (resolvedValue !== undefined) fields[key] = resolvedValue;\n }\n\n return fields;\n}\n\nexport function createRuntimeBindingOperationKey(\n operation: BindingOperationRef,\n): RuntimeBindingOperationKey {\n return [operation.apiId, operation.endpointId ?? '', operation.operationId].join(':');\n}\n\nasync function resolveRuntimeBindingValueSource(\n source: BindingValueSource,\n context: RuntimeBindingResolutionContext,\n diagnostics: DataSourceDiagnostic[],\n): Promise<BindingValue | undefined> {\n if (source.kind !== 'operation') {\n return resolveRuntimeBindingValueSourceSync(source, context, diagnostics);\n }\n\n const cached = resolveCachedOperationValue(source, context);\n if (cached !== undefined) return cached;\n\n if (context.executeOperation === undefined) {\n diagnostics.push(\n createRuntimeBindingDiagnostic(\n source.operation,\n 'missing-adapter',\n 'API operation binding requires an injected operation executor.',\n ),\n );\n return undefined;\n }\n\n const selection = resolveRuntimeBindingOperationSelection(\n source.operation,\n context.apis,\n diagnostics,\n );\n if (selection === undefined) return undefined;\n\n const result = await context.executeOperation({\n api: selection.api,\n endpoint: selection.endpoint,\n operation: source.operation,\n });\n\n diagnostics.push(...(result.diagnostics ?? []));\n if (!result.ok) return undefined;\n\n return applyRuntimeBindingDataPath(result.data, source.path);\n}\n\nexport function resolveRuntimeBindingValueSourceSync(\n source: BindingValueSource,\n context: RuntimeBindingResolutionContext,\n diagnostics: DataSourceDiagnostic[],\n): BindingValue | undefined {\n switch (source.kind) {\n case 'context':\n return asBindingValue(readPath(context.context, source.path));\n case 'event':\n return asBindingValue(readPath(context.event, source.path));\n case 'literal':\n return source.value;\n case 'operation': {\n const cached = resolveCachedOperationValue(source, context);\n if (cached !== undefined) return cached;\n diagnostics.push(\n createRuntimeBindingDiagnostic(\n source.operation,\n 'missing-adapter',\n 'Synchronous API operation bindings require preloaded operation results.',\n ),\n );\n return undefined;\n }\n case 'state': {\n const result = context.stateAdapter?.get(source.path);\n return result?.ok ? asBindingValue(result.data) : undefined;\n }\n }\n}\n\nfunction resolveCachedOperationValue(\n source: Extract<BindingValueSource, { readonly kind: 'operation' }>,\n context: RuntimeBindingResolutionContext,\n): BindingValue | undefined {\n const operationKey = createRuntimeBindingOperationKey(source.operation);\n const cachedValue = context.operationResults?.[operationKey];\n\n return applyRuntimeBindingDataPath(cachedValue, source.path);\n}\n\nasync function resolveBindingFallback(\n fallback: BindingFallback | undefined,\n context: RuntimeBindingResolutionContext,\n diagnostics: DataSourceDiagnostic[],\n): Promise<unknown> {\n if (fallback === undefined) return undefined;\n if (fallback.value !== undefined) return fallback.value;\n if (fallback.source === undefined) return undefined;\n\n return resolveRuntimeBindingValueSource(fallback.source, context, diagnostics);\n}\n\nfunction resolveBindingFallbackSync(\n fallback: BindingFallback | undefined,\n context: RuntimeBindingResolutionContext,\n diagnostics: DataSourceDiagnostic[],\n): unknown {\n if (fallback === undefined) return undefined;\n if (fallback.value !== undefined) return fallback.value;\n if (fallback.source === undefined) return undefined;\n\n return resolveRuntimeBindingValueSourceSync(fallback.source, context, diagnostics);\n}\n\nasync function resolveBindingInputValue(\n input: BindingInputValue,\n context: RuntimeBindingResolutionContext,\n diagnostics: DataSourceDiagnostic[],\n): Promise<BindingValue | undefined> {\n if (input.kind === 'literal') return input.value;\n if (input.kind === 'source') {\n const value = await resolveRuntimeBindingValueSource(input.source, context, diagnostics);\n return applyBindingValueTransforms(value, input.transforms);\n }\n\n if (input.kind === 'array') {\n const items: BindingValue[] = [];\n\n for (const item of input.items) {\n const value = await resolveBindingInputValue(item, context, diagnostics);\n if (value !== undefined) items.push(value);\n }\n\n return items;\n }\n\n const fields: Record<string, BindingValue> = {};\n\n for (const [key, value] of Object.entries(input.fields)) {\n const resolvedValue = await resolveBindingInputValue(value, context, diagnostics);\n if (resolvedValue !== undefined) fields[key] = resolvedValue;\n }\n\n return fields;\n}\n\nfunction resolveBindingInputValueSync(\n input: BindingInputValue,\n context: RuntimeBindingResolutionContext,\n diagnostics: DataSourceDiagnostic[],\n): BindingValue | undefined {\n if (input.kind === 'literal') return input.value;\n if (input.kind === 'source') {\n const value = resolveRuntimeBindingValueSourceSync(input.source, context, diagnostics);\n return applyBindingValueTransforms(value, input.transforms);\n }\n\n if (input.kind === 'array') {\n const items: BindingValue[] = [];\n\n for (const item of input.items) {\n const value = resolveBindingInputValueSync(item, context, diagnostics);\n if (value !== undefined) items.push(value);\n }\n\n return items;\n }\n\n const fields: Record<string, BindingValue> = {};\n\n for (const [key, value] of Object.entries(input.fields)) {\n const resolvedValue = resolveBindingInputValueSync(value, context, diagnostics);\n if (resolvedValue !== undefined) fields[key] = resolvedValue;\n }\n\n return fields;\n}\n\nfunction createRuntimeBindingDiagnostic(\n operation: BindingOperationRef,\n code: DataSourceDiagnostic['code'],\n message: string,\n): DataSourceDiagnostic {\n return {\n apiId: operation.apiId,\n code,\n endpointId: operation.endpointId,\n message,\n operationId: operation.operationId,\n severity: 'error',\n };\n}\n\nfunction applyBindingValueTransforms(\n value: unknown,\n transforms: readonly BindingValueTransform[] | undefined,\n): BindingValue | undefined {\n const bindingValue = asBindingValue(value);\n if (typeof bindingValue !== 'string' || transforms === undefined) return bindingValue;\n\n let currentValue = bindingValue;\n\n for (const transform of transforms) {\n if (transform === 'lowercase') currentValue = currentValue.toLowerCase();\n if (transform === 'trim') currentValue = currentValue.trim();\n if (transform === 'uppercase') currentValue = currentValue.toUpperCase();\n }\n\n return currentValue;\n}\n\nexport function applyRuntimeBindingDataPath(\n value: BindingValue | undefined,\n path: string | undefined,\n): BindingValue | undefined {\n if (path === undefined) return value;\n return asBindingValue(readPath(value, path));\n}\n\nfunction readPath(source: unknown, path: string): unknown {\n return path.split('.').reduce<unknown>((currentValue, part) => {\n if (Array.isArray(currentValue)) {\n if (!isArrayIndexPathPart(part)) return undefined;\n return currentValue[Number(part)];\n }\n\n if (!isRecord(currentValue)) return undefined;\n return currentValue[part];\n }, source);\n}\n\nfunction isArrayIndexPathPart(part: string): boolean {\n return /^(0|[1-9]\\d*)$/.test(part);\n}\n\nfunction asBindingValue(value: unknown): BindingValue | undefined {\n return isBindingValue(value) ? value : undefined;\n}\n\nfunction isBindingValue(value: unknown): value is BindingValue {\n if (value === null) return true;\n if (typeof value === 'string' || typeof value === 'number' || typeof value === 'boolean') {\n return true;\n }\n\n if (Array.isArray(value)) return value.every(isBindingValue);\n if (!isRecord(value)) return false;\n\n return Object.values(value).every(isBindingValue);\n}\n"]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { Capability } from '@ankhorage/contracts/
|
|
1
|
+
import type { Capability } from '@ankhorage/contracts/capability';
|
|
2
2
|
export declare const RUNTIME_MANIFEST_KIND = "ankhorage-runtime-manifest";
|
|
3
3
|
export interface RuntimeDiagnostic {
|
|
4
4
|
readonly code: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtimeManifest.d.ts","sourceRoot":"","sources":["../src/runtimeManifest.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"runtimeManifest.d.ts","sourceRoot":"","sources":["../src/runtimeManifest.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtimeManifest.js","sourceRoot":"","sources":["../src/runtimeManifest.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,qBAAqB,GAAG,4BAA4B,CAAC;AAqDlE,MAAM,UAAU,mBAAmB,CACjC,MAAqC;IAErC,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,oBAAoB,CAClC,OAA0C;IAE1C,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,MAAM,UAAU,oBAAoB,CAClC,OAAwC;IAExC,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,KAA2B;IAC/D,OAAO;QACL,OAAO,EAAE,KAAK,CAAC,OAAO,IAAI,EAAE;QAC5B,QAAQ,EAAE,KAAK,CAAC,QAAQ,IAAI,EAAE;QAC9B,QAAQ,EAAE,KAAK,CAAC,QAAQ,IAAI,EAAE;QAC9B,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,WAAW,EAAE,KAAK,CAAC,WAAW,IAAI,EAAE;QACpC,IAAI,EAAE,qBAAqB;QAC3B,OAAO,EAAE,CAAC;KACX,CAAC;AACJ,CAAC","sourcesContent":["import type { Capability } from '@ankhorage/contracts/
|
|
1
|
+
{"version":3,"file":"runtimeManifest.js","sourceRoot":"","sources":["../src/runtimeManifest.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,qBAAqB,GAAG,4BAA4B,CAAC;AAqDlE,MAAM,UAAU,mBAAmB,CACjC,MAAqC;IAErC,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,oBAAoB,CAClC,OAA0C;IAE1C,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,MAAM,UAAU,oBAAoB,CAClC,OAAwC;IAExC,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,KAA2B;IAC/D,OAAO;QACL,OAAO,EAAE,KAAK,CAAC,OAAO,IAAI,EAAE;QAC5B,QAAQ,EAAE,KAAK,CAAC,QAAQ,IAAI,EAAE;QAC9B,QAAQ,EAAE,KAAK,CAAC,QAAQ,IAAI,EAAE;QAC9B,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,WAAW,EAAE,KAAK,CAAC,WAAW,IAAI,EAAE;QACpC,IAAI,EAAE,qBAAqB;QAC3B,OAAO,EAAE,CAAC;KACX,CAAC;AACJ,CAAC","sourcesContent":["import type { Capability } from '@ankhorage/contracts/capability';\n\nexport const RUNTIME_MANIFEST_KIND = 'ankhorage-runtime-manifest';\n\nexport interface RuntimeDiagnostic {\n readonly code: string;\n readonly message: string;\n readonly severity: 'error' | 'info' | 'warning';\n}\n\nexport interface RuntimeManifestConfig {\n readonly appId: string;\n readonly environment?: string;\n readonly values?: Readonly<Record<string, unknown>>;\n}\n\nexport interface RuntimeActionDescriptor<Data = unknown> {\n readonly capability?: Capability['id'];\n readonly description?: string;\n readonly id: string;\n readonly data?: Data;\n}\n\nexport interface RuntimeBindingDescriptor<Value = unknown> {\n readonly actionId?: string;\n readonly id: string;\n readonly source: string;\n readonly target: string;\n readonly value?: Value;\n}\n\nexport interface RuntimeAdapterDescriptor<Options = unknown> {\n readonly id: string;\n readonly kind: string;\n readonly options?: Options;\n}\n\nexport interface RuntimeManifest {\n readonly actions: readonly RuntimeActionDescriptor[];\n readonly adapters: readonly RuntimeAdapterDescriptor[];\n readonly bindings: readonly RuntimeBindingDescriptor[];\n readonly config: RuntimeManifestConfig;\n readonly diagnostics: readonly RuntimeDiagnostic[];\n readonly kind: typeof RUNTIME_MANIFEST_KIND;\n readonly version: 1;\n}\n\nexport interface RuntimeManifestInput {\n readonly actions?: readonly RuntimeActionDescriptor[];\n readonly adapters?: readonly RuntimeAdapterDescriptor[];\n readonly bindings?: readonly RuntimeBindingDescriptor[];\n readonly config: RuntimeManifestConfig;\n readonly diagnostics?: readonly RuntimeDiagnostic[];\n}\n\nexport function defineRuntimeAction<Data = unknown>(\n action: RuntimeActionDescriptor<Data>,\n): RuntimeActionDescriptor<Data> {\n return action;\n}\n\nexport function defineRuntimeAdapter<Options = unknown>(\n adapter: RuntimeAdapterDescriptor<Options>,\n): RuntimeAdapterDescriptor<Options> {\n return adapter;\n}\n\nexport function defineRuntimeBinding<Value = unknown>(\n binding: RuntimeBindingDescriptor<Value>,\n): RuntimeBindingDescriptor<Value> {\n return binding;\n}\n\nexport function createRuntimeManifest(input: RuntimeManifestInput): RuntimeManifest {\n return {\n actions: input.actions ?? [],\n adapters: input.adapters ?? [],\n bindings: input.bindings ?? [],\n config: input.config,\n diagnostics: input.diagnostics ?? [],\n kind: RUNTIME_MANIFEST_KIND,\n version: 1,\n };\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtimeNodeProps.d.ts","sourceRoot":"","sources":["../src/runtimeNodeProps.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"runtimeNodeProps.d.ts","sourceRoot":"","sources":["../src/runtimeNodeProps.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,qBAAqB,EACrB,4BAA4B,EAC5B,SAAS,EACT,iBAAiB,EACjB,YAAY,EACZ,MAAM,EACP,MAAM,sBAAsB,CAAC;AAI9B,OAAO,EAA0B,KAAK,kCAAkC,EAAE,MAAM,mBAAmB,CAAC;AACpG,OAAO,KAAK,EAAE,aAAa,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAEpF,UAAU,8BAA8B;IACtC,QAAQ,CAAC,YAAY,EAAE,CAAC,MAAM,EAAE,aAAa,KAAK,IAAI,CAAC;IACvD,QAAQ,CAAC,OAAO,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC;CAChD;AAqED,wBAAgB,uBAAuB,CAAC,IAAI,EAAE;IAC5C,IAAI,EAAE,MAAM,CAAC;IACb,gBAAgB,CAAC,EAAE,qBAAqB,CAAC,kBAAkB,CAAC,CAAC;IAC7D,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;IACtC,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACzC,IAAI,CAAC,EAAE,qBAAqB,CAAC;IAC7B,YAAY,CAAC,EAAE,4BAA4B,CAAC;IAC5C,gBAAgB,CAAC,EAAE,kCAAkC,CAAC;CACvD,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CA+B1B;AAED,wBAAgB,sBAAsB,CAAC,IAAI,EAAE;IAC3C,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/B,cAAc,EAAE,OAAO,CAAC;IACxB,YAAY,EAAE,CAAC,MAAM,EAAE,aAAa,KAAK,IAAI,CAAC;IAC9C,kBAAkB,EAAE,OAAO,CAAC,MAAM,EAAE,8BAA8B,CAAC,CAAC;IACpE,oBAAoB,EAAE,OAAO,CAAC,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,OAAO,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,OAAO,CAAC,CAAC;CACjG,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAsD1B"}
|
package/dist/runtimeNodeProps.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
+
import { isCapabilityId } from '@ankhorage/capability';
|
|
1
2
|
import { isMediaAssetReference } from '@ankhorage/contracts';
|
|
2
|
-
import { isCapabilityId } from '@ankhorage/contracts/capabilities';
|
|
3
3
|
import { resolveRuntimeBindings } from './runtimeBindings';
|
|
4
4
|
function isRecord(value) {
|
|
5
5
|
return typeof value === 'object' && value !== null && !Array.isArray(value);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtimeNodeProps.js","sourceRoot":"","sources":["../src/runtimeNodeProps.ts"],"names":[],"mappings":"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","sourcesContent":["import type {\n ApiDefinitionRegistry,\n ComponentDataBindingRegistry,\n DbAdapter,\n DbRealtimeAdapter,\n StateAdapter,\n UiNode,\n} from '@ankhorage/contracts';\nimport { isMediaAssetReference } from '@ankhorage/contracts';\nimport { type Capability, isCapabilityId } from '@ankhorage/contracts/capabilities';\n\nimport { resolveRuntimeBindings, type RuntimeBindingOperationResultCache } from './runtimeBindings';\nimport type { RuntimeAction, RuntimeRendererConfig } from './RuntimeRendererConfig';\n\ninterface RuntimeActionHandlerCacheEntry {\n readonly handleAction: (action: RuntimeAction) => void;\n readonly handler: (...args: unknown[]) => void;\n}\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n return typeof value === 'object' && value !== null && !Array.isArray(value);\n}\n\nfunction isPlainObject(value: unknown): value is Record<string, unknown> {\n if (!isRecord(value)) {\n return false;\n }\n\n const prototype = Reflect.getPrototypeOf(value);\n return prototype === Object.prototype || prototype === null;\n}\n\nfunction hasActionShape(value: unknown): value is RuntimeAction {\n return isRecord(value) && isCapabilityId(value.type);\n}\n\nfunction isCallbackProp(value: unknown): value is (...args: unknown[]) => unknown {\n return typeof value === 'function';\n}\n\nfunction isNonEmptyActionId(value: unknown): value is Capability['id'] {\n return isCapabilityId(value);\n}\n\nfunction createStringActionPayload(args: unknown[]): { payload?: object } {\n if (args.length === 0) {\n return {};\n }\n\n const [firstArg] = args;\n if (isPlainObject(firstArg)) {\n return { payload: firstArg };\n }\n\n return {\n payload: {\n args,\n },\n };\n}\n\nconst noopRuntimeActionHandler = () => undefined;\n\nfunction resolveImageAssetUrl(value: unknown): string | null {\n if (typeof value === 'string') {\n const url = value.trim();\n return url.length ? url : null;\n }\n\n if (!isRecord(value) || typeof value.kind !== 'string') {\n return null;\n }\n\n if (value.kind === 'url' && typeof value.url === 'string') {\n const url = value.url.trim();\n return url.length ? url : null;\n }\n\n if (value.kind === 'storage' && typeof value.publicUrl === 'string') {\n const publicUrl = value.publicUrl.trim();\n return publicUrl.length ? publicUrl : null;\n }\n\n return null;\n}\n\nexport function resolveRuntimeNodeProps(args: {\n node: UiNode;\n resolveNodeProps?: RuntimeRendererConfig['resolveNodeProps'];\n stateAdapter?: StateAdapter;\n dbAdapter?: DbAdapter;\n dbRealtimeAdapter?: DbRealtimeAdapter;\n bindingContext?: Record<string, unknown>;\n apis?: ApiDefinitionRegistry;\n dataBindings?: ComponentDataBindingRegistry;\n operationResults?: RuntimeBindingOperationResultCache;\n}): Record<string, unknown> {\n const { node, resolveNodeProps } = args;\n\n const baseProps: Record<string, unknown> = {\n testID: node.id,\n ...(node.props ?? {}),\n };\n\n if (node.type === 'Image' && !isMediaAssetReference(baseProps.source)) {\n const resolvedSource = resolveImageAssetUrl(baseProps.source);\n if (resolvedSource !== null) baseProps.source = resolvedSource;\n else delete baseProps.source;\n }\n\n if (node.style) {\n baseProps.style = baseProps.style ? [baseProps.style, node.style] : node.style;\n }\n\n const bindingResult = resolveRuntimeBindings({\n apis: args.apis,\n context: args.bindingContext,\n dataBindings: args.dataBindings,\n node,\n operationResults: args.operationResults,\n props: baseProps,\n stateAdapter: args.stateAdapter,\n });\n\n return resolveNodeProps\n ? resolveNodeProps({ node, props: bindingResult.props })\n : bindingResult.props;\n}\n\nexport function wrapRuntimeActionProps(args: {\n props: Record<string, unknown>;\n disableActions: boolean;\n handleAction: (action: RuntimeAction) => void;\n actionHandlerCache: WeakMap<object, RuntimeActionHandlerCacheEntry>;\n functionHandlerCache: WeakMap<(...args: unknown[]) => unknown, (...args: unknown[]) => unknown>;\n}): Record<string, unknown> {\n const { props, disableActions, handleAction, actionHandlerCache, functionHandlerCache } = args;\n const wrappedProps: Record<string, unknown> = { ...props };\n\n Object.keys(wrappedProps).forEach((key) => {\n if (!key.startsWith('on')) {\n return;\n }\n\n const value = wrappedProps[key];\n\n if (disableActions) {\n wrappedProps[key] =\n hasActionShape(value) || isNonEmptyActionId(value) ? noopRuntimeActionHandler : undefined;\n return;\n }\n\n if (hasActionShape(value)) {\n const actionObject = value;\n let cachedActionHandler = actionHandlerCache.get(actionObject);\n if (cachedActionHandler?.handleAction !== handleAction) {\n const actionHandler = () => {\n handleAction(actionObject);\n };\n cachedActionHandler = { handleAction, handler: actionHandler };\n actionHandlerCache.set(actionObject, cachedActionHandler);\n }\n wrappedProps[key] = cachedActionHandler.handler;\n return;\n }\n\n if (isNonEmptyActionId(value)) {\n const actionId = value;\n wrappedProps[key] = (...handlerArgs: unknown[]) => {\n handleAction({\n type: actionId,\n ...createStringActionPayload(handlerArgs),\n });\n };\n return;\n }\n\n if (isCallbackProp(value)) {\n const handler = value;\n let wrappedHandler = functionHandlerCache.get(handler);\n if (!wrappedHandler) {\n wrappedHandler = (...handlerArgs: unknown[]) => handler(...handlerArgs);\n functionHandlerCache.set(handler, wrappedHandler);\n }\n wrappedProps[key] = wrappedHandler;\n }\n });\n\n return wrappedProps;\n}\n"]}
|
|
1
|
+
{"version":3,"file":"runtimeNodeProps.js","sourceRoot":"","sources":["../src/runtimeNodeProps.ts"],"names":[],"mappings":"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","sourcesContent":["import { isCapabilityId } from '@ankhorage/capability';\nimport type {\n ApiDefinitionRegistry,\n ComponentDataBindingRegistry,\n DbAdapter,\n DbRealtimeAdapter,\n StateAdapter,\n UiNode,\n} from '@ankhorage/contracts';\nimport { isMediaAssetReference } from '@ankhorage/contracts';\nimport type { Capability } from '@ankhorage/contracts/capability';\n\nimport { resolveRuntimeBindings, type RuntimeBindingOperationResultCache } from './runtimeBindings';\nimport type { RuntimeAction, RuntimeRendererConfig } from './RuntimeRendererConfig';\n\ninterface RuntimeActionHandlerCacheEntry {\n readonly handleAction: (action: RuntimeAction) => void;\n readonly handler: (...args: unknown[]) => void;\n}\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n return typeof value === 'object' && value !== null && !Array.isArray(value);\n}\n\nfunction isPlainObject(value: unknown): value is Record<string, unknown> {\n if (!isRecord(value)) {\n return false;\n }\n\n const prototype = Reflect.getPrototypeOf(value);\n return prototype === Object.prototype || prototype === null;\n}\n\nfunction hasActionShape(value: unknown): value is RuntimeAction {\n return isRecord(value) && isCapabilityId(value.type);\n}\n\nfunction isCallbackProp(value: unknown): value is (...args: unknown[]) => unknown {\n return typeof value === 'function';\n}\n\nfunction isNonEmptyActionId(value: unknown): value is Capability['id'] {\n return isCapabilityId(value);\n}\n\nfunction createStringActionPayload(args: unknown[]): { payload?: object } {\n if (args.length === 0) {\n return {};\n }\n\n const [firstArg] = args;\n if (isPlainObject(firstArg)) {\n return { payload: firstArg };\n }\n\n return {\n payload: {\n args,\n },\n };\n}\n\nconst noopRuntimeActionHandler = () => undefined;\n\nfunction resolveImageAssetUrl(value: unknown): string | null {\n if (typeof value === 'string') {\n const url = value.trim();\n return url.length ? url : null;\n }\n\n if (!isRecord(value) || typeof value.kind !== 'string') {\n return null;\n }\n\n if (value.kind === 'url' && typeof value.url === 'string') {\n const url = value.url.trim();\n return url.length ? url : null;\n }\n\n if (value.kind === 'storage' && typeof value.publicUrl === 'string') {\n const publicUrl = value.publicUrl.trim();\n return publicUrl.length ? publicUrl : null;\n }\n\n return null;\n}\n\nexport function resolveRuntimeNodeProps(args: {\n node: UiNode;\n resolveNodeProps?: RuntimeRendererConfig['resolveNodeProps'];\n stateAdapter?: StateAdapter;\n dbAdapter?: DbAdapter;\n dbRealtimeAdapter?: DbRealtimeAdapter;\n bindingContext?: Record<string, unknown>;\n apis?: ApiDefinitionRegistry;\n dataBindings?: ComponentDataBindingRegistry;\n operationResults?: RuntimeBindingOperationResultCache;\n}): Record<string, unknown> {\n const { node, resolveNodeProps } = args;\n\n const baseProps: Record<string, unknown> = {\n testID: node.id,\n ...(node.props ?? {}),\n };\n\n if (node.type === 'Image' && !isMediaAssetReference(baseProps.source)) {\n const resolvedSource = resolveImageAssetUrl(baseProps.source);\n if (resolvedSource !== null) baseProps.source = resolvedSource;\n else delete baseProps.source;\n }\n\n if (node.style) {\n baseProps.style = baseProps.style ? [baseProps.style, node.style] : node.style;\n }\n\n const bindingResult = resolveRuntimeBindings({\n apis: args.apis,\n context: args.bindingContext,\n dataBindings: args.dataBindings,\n node,\n operationResults: args.operationResults,\n props: baseProps,\n stateAdapter: args.stateAdapter,\n });\n\n return resolveNodeProps\n ? resolveNodeProps({ node, props: bindingResult.props })\n : bindingResult.props;\n}\n\nexport function wrapRuntimeActionProps(args: {\n props: Record<string, unknown>;\n disableActions: boolean;\n handleAction: (action: RuntimeAction) => void;\n actionHandlerCache: WeakMap<object, RuntimeActionHandlerCacheEntry>;\n functionHandlerCache: WeakMap<(...args: unknown[]) => unknown, (...args: unknown[]) => unknown>;\n}): Record<string, unknown> {\n const { props, disableActions, handleAction, actionHandlerCache, functionHandlerCache } = args;\n const wrappedProps: Record<string, unknown> = { ...props };\n\n Object.keys(wrappedProps).forEach((key) => {\n if (!key.startsWith('on')) {\n return;\n }\n\n const value = wrappedProps[key];\n\n if (disableActions) {\n wrappedProps[key] =\n hasActionShape(value) || isNonEmptyActionId(value) ? noopRuntimeActionHandler : undefined;\n return;\n }\n\n if (hasActionShape(value)) {\n const actionObject = value;\n let cachedActionHandler = actionHandlerCache.get(actionObject);\n if (cachedActionHandler?.handleAction !== handleAction) {\n const actionHandler = () => {\n handleAction(actionObject);\n };\n cachedActionHandler = { handleAction, handler: actionHandler };\n actionHandlerCache.set(actionObject, cachedActionHandler);\n }\n wrappedProps[key] = cachedActionHandler.handler;\n return;\n }\n\n if (isNonEmptyActionId(value)) {\n const actionId = value;\n wrappedProps[key] = (...handlerArgs: unknown[]) => {\n handleAction({\n type: actionId,\n ...createStringActionPayload(handlerArgs),\n });\n };\n return;\n }\n\n if (isCallbackProp(value)) {\n const handler = value;\n let wrappedHandler = functionHandlerCache.get(handler);\n if (!wrappedHandler) {\n wrappedHandler = (...handlerArgs: unknown[]) => handler(...handlerArgs);\n functionHandlerCache.set(handler, wrappedHandler);\n }\n wrappedProps[key] = wrappedHandler;\n }\n });\n\n return wrappedProps;\n}\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ankhorage/runtime",
|
|
3
|
-
"version": "4.
|
|
3
|
+
"version": "4.1.1",
|
|
4
4
|
"description": "Platform-neutral runtime renderer, contracts, and helpers for Ankhorage generated apps.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"engines": {
|
|
@@ -102,7 +102,70 @@
|
|
|
102
102
|
"label": "Runtime bindings"
|
|
103
103
|
},
|
|
104
104
|
{
|
|
105
|
-
"id": "runtime.
|
|
105
|
+
"id": "runtime.eventOperation",
|
|
106
|
+
"owner": "@ankhorage/runtime",
|
|
107
|
+
"access": [
|
|
108
|
+
"read",
|
|
109
|
+
"subscribe"
|
|
110
|
+
],
|
|
111
|
+
"binding": {
|
|
112
|
+
"kind": "context",
|
|
113
|
+
"bindableAs": [
|
|
114
|
+
"source"
|
|
115
|
+
]
|
|
116
|
+
},
|
|
117
|
+
"label": "Runtime event operation",
|
|
118
|
+
"output": {
|
|
119
|
+
"schema": {
|
|
120
|
+
"type": "object",
|
|
121
|
+
"required": [
|
|
122
|
+
"status",
|
|
123
|
+
"loading",
|
|
124
|
+
"errorMessage"
|
|
125
|
+
],
|
|
126
|
+
"properties": {
|
|
127
|
+
"status": {
|
|
128
|
+
"type": "string",
|
|
129
|
+
"enum": [
|
|
130
|
+
"idle",
|
|
131
|
+
"loading",
|
|
132
|
+
"success",
|
|
133
|
+
"error"
|
|
134
|
+
]
|
|
135
|
+
},
|
|
136
|
+
"loading": {
|
|
137
|
+
"type": "boolean"
|
|
138
|
+
},
|
|
139
|
+
"errorMessage": {
|
|
140
|
+
"type": "string"
|
|
141
|
+
},
|
|
142
|
+
"nodeId": {
|
|
143
|
+
"type": "string"
|
|
144
|
+
},
|
|
145
|
+
"operation": {
|
|
146
|
+
"type": "object",
|
|
147
|
+
"required": [
|
|
148
|
+
"apiId",
|
|
149
|
+
"operationId"
|
|
150
|
+
],
|
|
151
|
+
"properties": {
|
|
152
|
+
"apiId": {
|
|
153
|
+
"type": "string"
|
|
154
|
+
},
|
|
155
|
+
"endpointId": {
|
|
156
|
+
"type": "string"
|
|
157
|
+
},
|
|
158
|
+
"operationId": {
|
|
159
|
+
"type": "string"
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
},
|
|
167
|
+
{
|
|
168
|
+
"id": "runtime.repeat.item",
|
|
106
169
|
"owner": "@ankhorage/runtime",
|
|
107
170
|
"access": [
|
|
108
171
|
"read"
|
|
@@ -113,7 +176,7 @@
|
|
|
113
176
|
"source"
|
|
114
177
|
]
|
|
115
178
|
},
|
|
116
|
-
"label": "Runtime
|
|
179
|
+
"label": "Runtime repeat item"
|
|
117
180
|
}
|
|
118
181
|
]
|
|
119
182
|
},
|
|
@@ -132,7 +195,8 @@
|
|
|
132
195
|
"knip:check": "ankhorage-knip"
|
|
133
196
|
},
|
|
134
197
|
"dependencies": {
|
|
135
|
-
"@ankhorage/
|
|
198
|
+
"@ankhorage/capability": "^0.2.1",
|
|
199
|
+
"@ankhorage/contracts": "^25.1.0",
|
|
136
200
|
"@ankhorage/data-sources": "^2.1.0",
|
|
137
201
|
"@ankhorage/utility": "^1.9.85"
|
|
138
202
|
},
|
|
@@ -147,8 +211,8 @@
|
|
|
147
211
|
}
|
|
148
212
|
},
|
|
149
213
|
"devDependencies": {
|
|
150
|
-
"@ankhorage/devtools": "^2.3.
|
|
151
|
-
"@ankhorage/paradox": "^0.3.
|
|
214
|
+
"@ankhorage/devtools": "^2.3.9",
|
|
215
|
+
"@ankhorage/paradox": "^0.3.3",
|
|
152
216
|
"@types/bun": "^1.4.2",
|
|
153
217
|
"@types/node": "^26.6.4",
|
|
154
218
|
"@types/react": "^19.3.0",
|
package/paradox/badges/npm.svg
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg" width="90" height="20" role="img" aria-label="npm: v4.
|
|
2
|
-
<title>npm: v4.
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="90" height="20" role="img" aria-label="npm: v4.1.1">
|
|
2
|
+
<title>npm: v4.1.1</title>
|
|
3
3
|
<rect width="38" height="20" fill="#374151"/>
|
|
4
4
|
<rect x="38" width="52" height="20" fill="#cb3837"/>
|
|
5
5
|
<text x="19" y="14" fill="#ffffff" font-family="Verdana,Geneva,DejaVu Sans,sans-serif" font-size="11" text-anchor="middle">npm</text>
|
|
6
|
-
<text x="64" y="14" fill="#ffffff" font-family="Verdana,Geneva,DejaVu Sans,sans-serif" font-size="11" text-anchor="middle">v4.
|
|
6
|
+
<text x="64" y="14" fill="#ffffff" font-family="Verdana,Geneva,DejaVu Sans,sans-serif" font-size="11" text-anchor="middle">v4.1.1</text>
|
|
7
7
|
</svg>
|
|
@@ -11,6 +11,12 @@ graph TD
|
|
|
11
11
|
package__ankhorage_runtime -.-> module_src_bindings_ts
|
|
12
12
|
module_src_capabilities_index_ts["src/capabilities/index.ts"]
|
|
13
13
|
package__ankhorage_runtime -.-> module_src_capabilities_index_ts
|
|
14
|
+
module_src_capabilities_resolveRuntimeContextCapability_test_ts["src/capabilities/resolveRuntimeContextCapability.test.ts"]
|
|
15
|
+
package__ankhorage_runtime -.-> module_src_capabilities_resolveRuntimeContextCapability_test_ts
|
|
16
|
+
module_src_capabilities_resolveRuntimeContextCapability_test_ts --> module_src_capabilities_resolveRuntimeContextCapability_ts
|
|
17
|
+
module_src_capabilities_resolveRuntimeContextCapability_ts["src/capabilities/resolveRuntimeContextCapability.ts"]
|
|
18
|
+
package__ankhorage_runtime -.-> module_src_capabilities_resolveRuntimeContextCapability_ts
|
|
19
|
+
module_src_capabilities_resolveRuntimeContextCapability_ts --> module_src_capabilities_index_ts
|
|
14
20
|
module_src_componentRegistry_ts["src/componentRegistry.ts"]
|
|
15
21
|
package__ankhorage_runtime -.-> module_src_componentRegistry_ts
|
|
16
22
|
module_src_index_ts["src/index.ts"]
|
|
@@ -3,6 +3,8 @@ graph LR
|
|
|
3
3
|
module_src_bindings_test_ts["src/bindings.test.ts"]
|
|
4
4
|
module_src_bindings_ts["src/bindings.ts"]
|
|
5
5
|
module_src_capabilities_index_ts["src/capabilities/index.ts"]
|
|
6
|
+
module_src_capabilities_resolveRuntimeContextCapability_test_ts["src/capabilities/resolveRuntimeContextCapability.test.ts"]
|
|
7
|
+
module_src_capabilities_resolveRuntimeContextCapability_ts["src/capabilities/resolveRuntimeContextCapability.ts"]
|
|
6
8
|
module_src_componentRegistry_ts["src/componentRegistry.ts"]
|
|
7
9
|
module_src_index_ts["src/index.ts"]
|
|
8
10
|
module_src_ManifestContext_tsx["src/ManifestContext.tsx"]
|
|
@@ -126,6 +128,8 @@ graph LR
|
|
|
126
128
|
export_executeRuntimeScreenOperationLoaders -.-> export_RuntimeScreenOperationLoaderExecutionResult
|
|
127
129
|
export_IDLE_RUNTIME_EVENT_OPERATION_STATE["IDLE_RUNTIME_EVENT_OPERATION_STATE"]
|
|
128
130
|
module_src_runtimeEventOperationLifecycle_ts --> export_IDLE_RUNTIME_EVENT_OPERATION_STATE
|
|
131
|
+
export_isRuntimeContextCapabilityOutputPath["isRuntimeContextCapabilityOutputPath"]
|
|
132
|
+
module_src_capabilities_resolveRuntimeContextCapability_ts --> export_isRuntimeContextCapabilityOutputPath
|
|
129
133
|
export_ManifestContext["ManifestContext"]
|
|
130
134
|
module_src_ManifestContext_tsx --> export_ManifestContext
|
|
131
135
|
export_ManifestProvider["ManifestProvider"]
|
|
@@ -159,6 +163,9 @@ graph LR
|
|
|
159
163
|
export_resolveRuntimeBindingValueSync["resolveRuntimeBindingValueSync"]
|
|
160
164
|
module_src_runtimeBindings_ts --> export_resolveRuntimeBindingValueSync
|
|
161
165
|
export_resolveRuntimeBindingValueSync -.-> export_RuntimeBindingResolutionContext
|
|
166
|
+
export_resolveRuntimeContextCapability["resolveRuntimeContextCapability"]
|
|
167
|
+
module_src_capabilities_resolveRuntimeContextCapability_ts --> export_resolveRuntimeContextCapability
|
|
168
|
+
export_resolveRuntimeContextCapability -.-> export_RuntimeContextCapabilityResolution
|
|
162
169
|
export_resolveRuntimeEventOperationErrorMessage["resolveRuntimeEventOperationErrorMessage"]
|
|
163
170
|
module_src_runtimeEventOperationLifecycle_ts --> export_resolveRuntimeEventOperationErrorMessage
|
|
164
171
|
export_resolveScreenOperationLoaders["resolveScreenOperationLoaders"]
|
|
@@ -218,6 +225,10 @@ graph LR
|
|
|
218
225
|
export_RuntimeComponentEventDispatchArgs -.-> export_RuntimeBindingOperationExecutor
|
|
219
226
|
export_RuntimeComponentEventDispatchArgs -.-> export_RuntimeBindingOperationResultWriter
|
|
220
227
|
export_RuntimeComponentEventDispatchArgs -.-> export_RuntimeEventOperationLifecycle
|
|
228
|
+
export_RuntimeContextCapabilityId["RuntimeContextCapabilityId"]
|
|
229
|
+
module_src_capabilities_resolveRuntimeContextCapability_ts --> export_RuntimeContextCapabilityId
|
|
230
|
+
export_RuntimeContextCapabilityResolution["RuntimeContextCapabilityResolution"]
|
|
231
|
+
module_src_capabilities_resolveRuntimeContextCapability_ts --> export_RuntimeContextCapabilityResolution
|
|
221
232
|
export_RuntimeDbPersistError["RuntimeDbPersistError"]
|
|
222
233
|
module_src_runtimeDbPersist_ts --> export_RuntimeDbPersistError
|
|
223
234
|
export_RuntimeDbPersistExecutionResult["RuntimeDbPersistExecutionResult"]
|
|
@@ -3,6 +3,8 @@ graph LR
|
|
|
3
3
|
module_src_bindings_test_ts["src/bindings.test.ts"]
|
|
4
4
|
module_src_bindings_ts["src/bindings.ts"]
|
|
5
5
|
module_src_capabilities_index_ts["src/capabilities/index.ts"]
|
|
6
|
+
module_src_capabilities_resolveRuntimeContextCapability_test_ts["src/capabilities/resolveRuntimeContextCapability.test.ts"]
|
|
7
|
+
module_src_capabilities_resolveRuntimeContextCapability_ts["src/capabilities/resolveRuntimeContextCapability.ts"]
|
|
6
8
|
module_src_componentRegistry_ts["src/componentRegistry.ts"]
|
|
7
9
|
module_src_index_ts["src/index.ts"]
|
|
8
10
|
module_src_ManifestContext_tsx["src/ManifestContext.tsx"]
|
|
@@ -56,6 +58,8 @@ graph LR
|
|
|
56
58
|
module_tests_reactNativeWebCompatibility_test_ts["tests/reactNativeWebCompatibility.test.ts"]
|
|
57
59
|
module_tests_runtime_test_ts["tests/runtime.test.ts"]
|
|
58
60
|
module_src_bindings_test_ts --> module_src_bindings_ts
|
|
61
|
+
module_src_capabilities_resolveRuntimeContextCapability_test_ts --> module_src_capabilities_resolveRuntimeContextCapability_ts
|
|
62
|
+
module_src_capabilities_resolveRuntimeContextCapability_ts --> module_src_capabilities_index_ts
|
|
59
63
|
module_src_react19Compatibility_test_tsx --> module_src_ManifestContext_tsx
|
|
60
64
|
module_src_react19Compatibility_test_tsx --> module_src_RuntimeRendererConfig_tsx
|
|
61
65
|
module_src_registry_test_ts --> module_src_registry_tsx
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
sequenceDiagram
|
|
2
|
+
participant participant_findRuntimeContextCapability as findRuntimeContextCapability
|
|
3
|
+
participant participant_resolveRepeatItemSchema as resolveRepeatItemSchema
|
|
4
|
+
participant participant_resolveRuntimeContextCapability as resolveRuntimeContextCapability
|
|
5
|
+
participant_resolveRuntimeContextCapability->>participant_resolveRepeatItemSchema: resolveRepeatItemSchema()
|
|
6
|
+
participant_resolveRepeatItemSchema-->>participant_resolveRuntimeContextCapability: return
|
|
7
|
+
participant_resolveRuntimeContextCapability->>participant_findRuntimeContextCapability: findRuntimeContextCapability()
|
|
8
|
+
participant_findRuntimeContextCapability-->>participant_resolveRuntimeContextCapability: return
|