@ankhorage/runtime 4.1.2 → 5.0.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.
Files changed (86) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/README.md +6 -6
  3. package/dist/RuntimeRenderer.d.ts +7 -7
  4. package/dist/RuntimeRenderer.d.ts.map +1 -1
  5. package/dist/RuntimeRenderer.js +40 -80
  6. package/dist/RuntimeRenderer.js.map +1 -1
  7. package/dist/RuntimeRendererConfig.d.ts +7 -22
  8. package/dist/RuntimeRendererConfig.d.ts.map +1 -1
  9. package/dist/RuntimeRendererConfig.js +5 -8
  10. package/dist/RuntimeRendererConfig.js.map +1 -1
  11. package/dist/RuntimeScreen.d.ts.map +1 -1
  12. package/dist/RuntimeScreen.js +10 -5
  13. package/dist/RuntimeScreen.js.map +1 -1
  14. package/dist/bindings.d.ts +4 -8
  15. package/dist/bindings.d.ts.map +1 -1
  16. package/dist/bindings.js +2 -4
  17. package/dist/bindings.js.map +1 -1
  18. package/dist/index.d.ts +10 -12
  19. package/dist/index.d.ts.map +1 -1
  20. package/dist/index.js +5 -6
  21. package/dist/index.js.map +1 -1
  22. package/dist/runtimeActionRegistry.d.ts +19 -24
  23. package/dist/runtimeActionRegistry.d.ts.map +1 -1
  24. package/dist/runtimeActionRegistry.js +90 -306
  25. package/dist/runtimeActionRegistry.js.map +1 -1
  26. package/dist/runtimeApiCapabilities.d.ts +11 -0
  27. package/dist/runtimeApiCapabilities.d.ts.map +1 -0
  28. package/dist/runtimeApiCapabilities.js +67 -0
  29. package/dist/runtimeApiCapabilities.js.map +1 -0
  30. package/dist/runtimeBindings.d.ts +28 -17
  31. package/dist/runtimeBindings.d.ts.map +1 -1
  32. package/dist/runtimeBindings.js +157 -197
  33. package/dist/runtimeBindings.js.map +1 -1
  34. package/dist/runtimeCapabilityExecutor.d.ts +8 -0
  35. package/dist/runtimeCapabilityExecutor.d.ts.map +1 -0
  36. package/dist/runtimeCapabilityExecutor.js +21 -0
  37. package/dist/runtimeCapabilityExecutor.js.map +1 -0
  38. package/dist/runtimeEventExecution.d.ts +1 -4
  39. package/dist/runtimeEventExecution.d.ts.map +1 -1
  40. package/dist/runtimeEventExecution.js.map +1 -1
  41. package/dist/runtimeEventOperationLifecycle.d.ts +4 -3
  42. package/dist/runtimeEventOperationLifecycle.d.ts.map +1 -1
  43. package/dist/runtimeEventOperationLifecycle.js +5 -5
  44. package/dist/runtimeEventOperationLifecycle.js.map +1 -1
  45. package/dist/runtimeNodeProps.d.ts +12 -24
  46. package/dist/runtimeNodeProps.d.ts.map +1 -1
  47. package/dist/runtimeNodeProps.js +27 -121
  48. package/dist/runtimeNodeProps.js.map +1 -1
  49. package/dist/runtimeRepeat.d.ts +6 -2
  50. package/dist/runtimeRepeat.d.ts.map +1 -1
  51. package/dist/runtimeRepeat.js +29 -108
  52. package/dist/runtimeRepeat.js.map +1 -1
  53. package/dist/runtimeScreenLoaders.d.ts +27 -42
  54. package/dist/runtimeScreenLoaders.d.ts.map +1 -1
  55. package/dist/runtimeScreenLoaders.js +113 -273
  56. package/dist/runtimeScreenLoaders.js.map +1 -1
  57. package/package.json +9 -3
  58. package/paradox/badges/npm.svg +3 -3
  59. package/paradox/components.md +6 -7
  60. package/paradox/diagrams/architecture-overview.mmd +25 -79
  61. package/paradox/diagrams/export-graph.mmd +67 -105
  62. package/paradox/diagrams/module-relationships.mmd +19 -59
  63. package/paradox/diagrams/sequences/apply-runtime-binding-data-path.mmd +14 -0
  64. package/paradox/diagrams/sequences/create-component-event-from-handler-args.mmd +0 -13
  65. package/paradox/diagrams/sequences/create-runtime-screen-loader-request-key.mmd +5 -0
  66. package/paradox/diagrams/sequences/execute-runtime-binding-invocation.mmd +19 -0
  67. package/paradox/diagrams/sequences/resolve-binding-input-map-sync.mmd +5 -0
  68. package/paradox/diagrams/sequences/resolve-binding-input-map.mmd +5 -0
  69. package/paradox/diagrams/sequences/runtime-screen.mmd +6 -3
  70. package/paradox/diagrams/sequences/use-runtime-screen-operation-loaders.mmd +6 -3
  71. package/paradox/exports.json +610 -848
  72. package/paradox/exports.md +280 -308
  73. package/paradox/index.html +1120 -2266
  74. package/paradox/paradox.json +2724 -5528
  75. package/dist/runtimeApiOperations.d.ts +0 -8
  76. package/dist/runtimeApiOperations.d.ts.map +0 -1
  77. package/dist/runtimeApiOperations.js +0 -38
  78. package/dist/runtimeApiOperations.js.map +0 -1
  79. package/dist/runtimeApiSelection.d.ts +0 -8
  80. package/dist/runtimeApiSelection.d.ts.map +0 -1
  81. package/dist/runtimeApiSelection.js +0 -52
  82. package/dist/runtimeApiSelection.js.map +0 -1
  83. package/dist/runtimeDbPersist.d.ts +0 -34
  84. package/dist/runtimeDbPersist.d.ts.map +0 -1
  85. package/dist/runtimeDbPersist.js +0 -73
  86. package/dist/runtimeDbPersist.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"runtimeScreenLoaders.js","sourceRoot":"","sources":["../src/runtimeScreenLoaders.ts"],"names":[],"mappings":"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","sourcesContent":["import type {\n BindingValue,\n DataSourceDiagnostic,\n OperationScreenDataLoaderDefinition,\n ScreenSpec,\n} from '@ankhorage/contracts';\nimport React from 'react';\n\nimport { resolveRuntimeBindingOperationSelection } from './runtimeApiSelection';\nimport {\n createRuntimeBindingOperationKey,\n resolveBindingInputMapSync,\n type RuntimeBindingOperationExecutor,\n type RuntimeBindingOperationResultCache,\n type RuntimeBindingResolutionContext,\n} from './runtimeBindings';\n\nexport interface RuntimeScreenOperationLoaderState {\n readonly dependencyKey: string;\n readonly diagnostics: readonly DataSourceDiagnostic[];\n readonly operationResults: RuntimeBindingOperationResultCache;\n readonly renderVersion: number;\n}\n\nexport interface RuntimeScreenOperationLoaderExecutionResult {\n readonly dependencyKey: string;\n readonly diagnostics: readonly DataSourceDiagnostic[];\n readonly operationResults: RuntimeBindingOperationResultCache;\n}\n\nexport interface RuntimeScreenOperationLoaderLifecycle {\n readonly activeRequestId: number;\n readonly activeRequestKey: string | null;\n}\n\nconst EMPTY_RUNTIME_SCREEN_OPERATION_LOADER_DIAGNOSTICS = Object.freeze(\n [],\n) as readonly DataSourceDiagnostic[];\nconst EMPTY_RUNTIME_SCREEN_OPERATION_RESULTS = Object.freeze(\n {},\n) as RuntimeBindingOperationResultCache;\n\nexport function resolveScreenOperationLoaders(\n screen: ScreenSpec,\n): readonly OperationScreenDataLoaderDefinition[] {\n return screen.dataLoaders ?? [];\n}\n\nexport function createRuntimeScreenLoaderRequestKey(args: {\n readonly screenId: string;\n readonly loaders: readonly OperationScreenDataLoaderDefinition[];\n readonly bindingContext?: Record<string, unknown>;\n readonly operationResults?: RuntimeBindingOperationResultCache;\n}): string {\n return createRuntimeScreenOperationLoaderPlan({\n bindingContext: args.bindingContext,\n loaders: args.loaders,\n operationResults: args.operationResults,\n screenId: args.screenId,\n }).requestKey;\n}\n\nexport function createRuntimeScreenOperationLoaderLifecycle(): RuntimeScreenOperationLoaderLifecycle {\n return {\n activeRequestId: 0,\n activeRequestKey: null,\n };\n}\n\nexport function createIdleRuntimeScreenOperationLoaderState(args: {\n readonly dependencyKey: string;\n readonly previousState?: RuntimeScreenOperationLoaderState;\n}): RuntimeScreenOperationLoaderState {\n return {\n dependencyKey: args.dependencyKey,\n diagnostics: EMPTY_RUNTIME_SCREEN_OPERATION_LOADER_DIAGNOSTICS,\n operationResults: EMPTY_RUNTIME_SCREEN_OPERATION_RESULTS,\n renderVersion: args.previousState?.renderVersion ?? 0,\n };\n}\n\nexport function createPendingRuntimeScreenOperationLoaderState(args: {\n readonly dependencyKey: string;\n readonly previousState?: RuntimeScreenOperationLoaderState;\n}): RuntimeScreenOperationLoaderState {\n return {\n dependencyKey: args.dependencyKey,\n diagnostics: [],\n operationResults: {},\n renderVersion: (args.previousState?.renderVersion ?? -1) + 1,\n };\n}\n\nexport function beginRuntimeScreenOperationLoaderRequest(args: {\n readonly hasLoaders: boolean;\n readonly lifecycle: RuntimeScreenOperationLoaderLifecycle;\n readonly requestKey: string;\n readonly state: RuntimeScreenOperationLoaderState;\n}): {\n readonly lifecycle: RuntimeScreenOperationLoaderLifecycle;\n readonly requestId?: number;\n readonly shouldExecute: boolean;\n readonly state: RuntimeScreenOperationLoaderState;\n} {\n if (!args.hasLoaders) {\n if (args.lifecycle.activeRequestKey === null) {\n return {\n lifecycle: args.lifecycle,\n shouldExecute: false,\n state: args.state,\n };\n }\n\n return {\n lifecycle: {\n activeRequestId: args.lifecycle.activeRequestId + 1,\n activeRequestKey: null,\n },\n shouldExecute: false,\n state: args.state,\n };\n }\n\n if (args.lifecycle.activeRequestKey === args.requestKey) {\n return {\n lifecycle: args.lifecycle,\n shouldExecute: false,\n state: args.state,\n };\n }\n\n const requestId = args.lifecycle.activeRequestId + 1;\n\n return {\n lifecycle: {\n activeRequestId: requestId,\n activeRequestKey: args.requestKey,\n },\n requestId,\n shouldExecute: true,\n state:\n args.state.dependencyKey === args.requestKey\n ? args.state\n : createPendingRuntimeScreenOperationLoaderState({\n dependencyKey: args.requestKey,\n previousState: args.state,\n }),\n };\n}\n\nexport function completeRuntimeScreenOperationLoaderRequest(args: {\n readonly lifecycle: RuntimeScreenOperationLoaderLifecycle;\n readonly requestId: number;\n readonly result: RuntimeScreenOperationLoaderExecutionResult;\n readonly state: RuntimeScreenOperationLoaderState;\n}): {\n readonly accepted: boolean;\n readonly state: RuntimeScreenOperationLoaderState;\n} {\n if (args.lifecycle.activeRequestId !== args.requestId) {\n return {\n accepted: false,\n state: args.state,\n };\n }\n\n return {\n accepted: true,\n state: {\n dependencyKey: args.result.dependencyKey,\n diagnostics: args.result.diagnostics,\n operationResults: args.result.operationResults,\n renderVersion: args.state.renderVersion,\n },\n };\n}\n\nexport async function executeRuntimeScreenOperationLoaders(args: {\n readonly bindingContext?: Record<string, unknown>;\n readonly apis?: RuntimeBindingResolutionContext['apis'];\n readonly executeOperation?: RuntimeBindingOperationExecutor;\n readonly operationResults?: RuntimeBindingOperationResultCache;\n readonly screen: ScreenSpec;\n readonly loaders: readonly OperationScreenDataLoaderDefinition[];\n}): Promise<RuntimeScreenOperationLoaderExecutionResult> {\n const plan = createRuntimeScreenOperationLoaderPlan({\n bindingContext: args.bindingContext,\n loaders: args.loaders,\n operationResults: args.operationResults,\n screenId: args.screen.id,\n });\n\n return executePreparedRuntimeScreenOperationLoaders({\n apis: args.apis,\n executeOperation: args.executeOperation,\n plan,\n screen: args.screen,\n });\n}\n\nfunction executePreparedRuntimeScreenOperationLoaders(args: {\n readonly apis?: RuntimeBindingResolutionContext['apis'];\n readonly executeOperation?: RuntimeBindingOperationExecutor;\n readonly plan: RuntimeScreenOperationLoaderPlan;\n readonly screen: ScreenSpec;\n}): Promise<RuntimeScreenOperationLoaderExecutionResult> {\n const diagnostics: DataSourceDiagnostic[] = [...args.plan.diagnostics];\n\n if (args.plan.loaders.length === 0) {\n return Promise.resolve({\n dependencyKey: args.plan.requestKey,\n diagnostics,\n operationResults: {},\n });\n }\n\n if (args.executeOperation === undefined) {\n diagnostics.push(\n ...args.plan.loaders.map((preparedLoader) =>\n createScreenOperationLoaderDiagnostic(\n preparedLoader.loader,\n 'missing-adapter',\n 'Screen API operation loader requires an injected operation executor.',\n ),\n ),\n );\n\n return Promise.resolve({\n dependencyKey: args.plan.requestKey,\n diagnostics,\n operationResults: {},\n });\n }\n const { executeOperation } = args;\n\n return (async () => {\n const operationResults: Record<string, BindingValue | undefined> = {};\n\n for (const preparedLoader of args.plan.loaders) {\n const selection = resolveRuntimeBindingOperationSelection(\n preparedLoader.loader.operation,\n args.apis,\n diagnostics,\n );\n if (selection === undefined) {\n continue;\n }\n\n const result = await executeOperation({\n api: selection.api,\n endpoint: selection.endpoint,\n input: preparedLoader.input,\n node: args.screen.root,\n operation: preparedLoader.loader.operation,\n });\n diagnostics.push(...(result.diagnostics ?? []));\n\n if (!result.ok) {\n continue;\n }\n\n operationResults[preparedLoader.operationKey] = result.data;\n }\n\n return {\n dependencyKey: args.plan.requestKey,\n diagnostics,\n operationResults,\n };\n })();\n}\n\nexport function useRuntimeScreenOperationLoaders(args: {\n readonly bindingContext?: Record<string, unknown>;\n readonly apis?: RuntimeBindingResolutionContext['apis'];\n readonly executeOperation?: RuntimeBindingOperationExecutor;\n readonly operationResults?: RuntimeBindingOperationResultCache;\n readonly onDiagnostics?: (diagnostics: readonly DataSourceDiagnostic[]) => void;\n readonly screen: ScreenSpec;\n}): RuntimeScreenOperationLoaderState {\n const { apis, bindingContext, executeOperation, onDiagnostics, operationResults, screen } = args;\n const loaders = React.useMemo(() => resolveScreenOperationLoaders(screen), [screen]);\n const hasLoaders = loaders.length > 0;\n const plan = React.useMemo(\n () =>\n createRuntimeScreenOperationLoaderPlan({\n bindingContext,\n loaders,\n operationResults,\n screenId: screen.id,\n }),\n [bindingContext, loaders, operationResults, screen.id],\n );\n const { requestKey } = plan;\n const emptyState = React.useMemo(\n () =>\n createIdleRuntimeScreenOperationLoaderState({\n dependencyKey: requestKey,\n }),\n [requestKey],\n );\n const [state, setState] = React.useState<RuntimeScreenOperationLoaderState>(() =>\n hasLoaders\n ? createPendingRuntimeScreenOperationLoaderState({ dependencyKey: requestKey })\n : emptyState,\n );\n const pendingState = React.useMemo(\n () =>\n state.dependencyKey === requestKey\n ? state\n : createPendingRuntimeScreenOperationLoaderState({\n dependencyKey: requestKey,\n previousState: state,\n }),\n [requestKey, state],\n );\n const effectiveState = hasLoaders ? pendingState : emptyState;\n const lastDiagnosticsKeyRef = React.useRef<string | null>(null);\n const lifecycleRef = React.useRef<RuntimeScreenOperationLoaderLifecycle>(\n createRuntimeScreenOperationLoaderLifecycle(),\n );\n\n React.useEffect(() => {\n const request = beginRuntimeScreenOperationLoaderRequest({\n hasLoaders,\n lifecycle: lifecycleRef.current,\n requestKey,\n state,\n });\n\n lifecycleRef.current = request.lifecycle;\n\n if (!request.shouldExecute || request.requestId === undefined) {\n return;\n }\n const { requestId } = request;\n\n void (async () => {\n const result = await executePreparedRuntimeScreenOperationLoaders({\n apis,\n executeOperation,\n plan,\n screen,\n });\n\n setState((currentState) => {\n const completion = completeRuntimeScreenOperationLoaderRequest({\n lifecycle: lifecycleRef.current,\n requestId,\n result,\n state: currentState.dependencyKey === requestKey ? currentState : request.state,\n });\n\n return completion.accepted ? completion.state : currentState;\n });\n })();\n }, [apis, executeOperation, hasLoaders, plan, requestKey, screen, state]);\n\n React.useEffect(() => {\n if (effectiveState.diagnostics.length === 0) {\n return;\n }\n\n const diagnosticsKey = stableSerialize(effectiveState.diagnostics);\n if (lastDiagnosticsKeyRef.current === diagnosticsKey) {\n return;\n }\n\n lastDiagnosticsKeyRef.current = diagnosticsKey;\n onDiagnostics?.(effectiveState.diagnostics);\n }, [effectiveState.diagnostics, onDiagnostics]);\n\n return effectiveState;\n}\n\ninterface PreparedRuntimeScreenOperationLoader {\n readonly input?: BindingValue;\n readonly loader: OperationScreenDataLoaderDefinition;\n readonly operationKey: string;\n}\n\ninterface RuntimeScreenOperationLoaderPlan {\n readonly diagnostics: readonly DataSourceDiagnostic[];\n readonly loaders: readonly PreparedRuntimeScreenOperationLoader[];\n readonly requestKey: string;\n}\n\nfunction createRuntimeScreenOperationLoaderPlan(args: {\n readonly bindingContext?: Record<string, unknown>;\n readonly loaders: readonly OperationScreenDataLoaderDefinition[];\n readonly operationResults?: RuntimeBindingOperationResultCache;\n readonly screenId: string;\n}): RuntimeScreenOperationLoaderPlan {\n if (args.loaders.length === 0) {\n return {\n diagnostics: EMPTY_RUNTIME_SCREEN_OPERATION_LOADER_DIAGNOSTICS,\n loaders: [],\n requestKey: createRuntimeScreenOperationLoaderIdleKey(args.screenId),\n };\n }\n\n const diagnostics: DataSourceDiagnostic[] = [];\n const preparedLoaders: PreparedRuntimeScreenOperationLoader[] = [];\n const operationKeys = new Set<string>();\n\n for (const loader of args.loaders) {\n const input = resolveBindingInputMapSync(\n loader.input,\n {\n context: args.bindingContext,\n operationResults: args.operationResults,\n },\n diagnostics,\n );\n const operationKey = createRuntimeBindingOperationKey(loader.operation);\n if (operationKeys.has(operationKey)) {\n diagnostics.push(\n createScreenOperationLoaderDiagnostic(\n loader,\n 'duplicate-operation-id',\n `Screen operation loaders must not reuse operation key '${operationKey}' on the same screen.`,\n ),\n );\n continue;\n }\n\n operationKeys.add(operationKey);\n preparedLoaders.push({\n input,\n loader,\n operationKey,\n });\n }\n\n return {\n diagnostics,\n loaders: preparedLoaders,\n requestKey: createRuntimeScreenOperationLoaderPlanRequestKey({\n loaders: preparedLoaders,\n screenId: args.screenId,\n }),\n };\n}\n\nfunction createRuntimeScreenOperationLoaderPlanRequestKey(args: {\n readonly loaders: readonly PreparedRuntimeScreenOperationLoader[];\n readonly screenId: string;\n}): string {\n return stableSerialize({\n loaders: args.loaders.map((loader) => ({\n id: loader.loader.id,\n input: loader.input,\n operation: loader.loader.operation,\n operationKey: loader.operationKey,\n })),\n screenId: args.screenId,\n });\n}\n\nfunction createScreenOperationLoaderDiagnostic(\n loader: OperationScreenDataLoaderDefinition,\n code: DataSourceDiagnostic['code'],\n message: string,\n): DataSourceDiagnostic {\n return {\n apiId: loader.operation.apiId,\n code,\n endpointId: loader.operation.endpointId,\n operationId: loader.operation.operationId,\n message,\n severity: 'error',\n };\n}\n\nfunction createRuntimeScreenOperationLoaderIdleKey(screenId: string): string {\n return `screen:${screenId}:no-operation-loaders`;\n}\n\nfunction stableSerialize(value: unknown): string {\n return JSON.stringify(sortSerializableValue(value));\n}\n\nfunction sortSerializableValue(value: unknown): unknown {\n if (Array.isArray(value)) {\n return value.map(sortSerializableValue);\n }\n\n if (typeof value !== 'object' || value === null) {\n return value;\n }\n\n return Object.keys(value)\n .sort((left, right) => left.localeCompare(right))\n .reduce<Record<string, unknown>>((result, key) => {\n result[key] = sortSerializableValue((value as Record<string, unknown>)[key]);\n return result;\n }, {});\n}\n"]}
1
+ {"version":3,"file":"runtimeScreenLoaders.js","sourceRoot":"","sources":["../src/runtimeScreenLoaders.ts"],"names":[],"mappings":"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","sourcesContent":["import type {\n BindingValue,\n DataSourceDiagnostic,\n ScreenDataLoaderDefinition,\n ScreenSpec,\n} from '@ankhorage/contracts';\nimport React from 'react';\n\nimport {\n executeRuntimeBindingInvocation,\n resolveBindingInputMapSync,\n type RuntimeBindingResultCache,\n type RuntimeBindingResultWriter,\n type RuntimeCapabilityExecutor,\n} from './runtimeBindings';\n\nexport interface RuntimeScreenOperationLoaderState {\n readonly dependencyKey: string;\n readonly diagnostics: readonly DataSourceDiagnostic[];\n readonly resultSlots: RuntimeBindingResultCache;\n readonly renderVersion: number;\n}\n\nexport interface RuntimeScreenOperationLoaderExecutionResult {\n readonly dependencyKey: string;\n readonly diagnostics: readonly DataSourceDiagnostic[];\n readonly resultSlots: RuntimeBindingResultCache;\n}\n\ninterface RuntimeScreenOperationLoaderRequestLifecycle {\n invalidate(): void;\n start(dependencyKey: string): number | undefined;\n isCurrent(args: { readonly dependencyKey: string; readonly requestId: number }): boolean;\n}\n\n/*** Tracks one active screen-loader request per effective dependency key. */\nexport function createRuntimeScreenOperationLoaderRequestLifecycle(): RuntimeScreenOperationLoaderRequestLifecycle {\n let dependencyKey: string | undefined;\n let requestId = 0;\n\n return {\n invalidate() {\n requestId += 1;\n },\n start(nextDependencyKey) {\n if (nextDependencyKey === dependencyKey) return undefined;\n dependencyKey = nextDependencyKey;\n requestId += 1;\n return requestId;\n },\n isCurrent(args) {\n return args.dependencyKey === dependencyKey && args.requestId === requestId;\n },\n };\n}\n\n/*** Returns the portable capability invocations authored on a screen. */\nexport function resolveScreenOperationLoaders(\n screen: ScreenSpec,\n): readonly ScreenDataLoaderDefinition[] {\n return screen.dataLoaders ?? [];\n}\n\n/*** Creates a deterministic loader request key from resolved inputs and declared result slots. */\nexport function createRuntimeScreenLoaderRequestKey(args: {\n readonly screenId: string;\n readonly loaders: readonly ScreenDataLoaderDefinition[];\n readonly bindingContext?: Record<string, unknown>;\n readonly resultSlots?: RuntimeBindingResultCache;\n}): string {\n return stableSerialize({\n loaders: args.loaders.map((loader) => ({\n capability: loader.capability,\n input: resolveBindingInputMapSync(loader.input, {\n context: args.bindingContext,\n resultSlots: args.resultSlots,\n }),\n result: loader.result,\n })),\n screenId: args.screenId,\n });\n}\n\n/*** Constructs a pending state for capability-backed screen loaders. */\nexport function createPendingRuntimeScreenOperationLoaderState(args: {\n readonly dependencyKey: string;\n readonly previousState?: RuntimeScreenOperationLoaderState;\n}): RuntimeScreenOperationLoaderState {\n return {\n dependencyKey: args.dependencyKey,\n diagnostics: [],\n resultSlots: {},\n renderVersion: (args.previousState?.renderVersion ?? -1) + 1,\n };\n}\n\n/*** Executes screen loaders through the same invocation and result-slot machinery as events. */\nexport async function executeRuntimeScreenOperationLoaders(args: {\n readonly bindingContext?: Record<string, unknown>;\n readonly executeCapability?: RuntimeCapabilityExecutor;\n readonly resultSlots?: RuntimeBindingResultCache;\n readonly screen: ScreenSpec;\n readonly loaders: readonly ScreenDataLoaderDefinition[];\n}): Promise<RuntimeScreenOperationLoaderExecutionResult> {\n const resultSlots: Record<string, BindingValue | undefined> = { ...(args.resultSlots ?? {}) };\n const diagnostics: DataSourceDiagnostic[] = [];\n const writeResultSlot: RuntimeBindingResultWriter = (slot, value) => {\n resultSlots[slot] = value;\n };\n\n for (const loader of args.loaders) {\n try {\n await executeRuntimeBindingInvocation(\n loader,\n {\n context: args.bindingContext,\n executeCapability: args.executeCapability,\n resultSlots,\n writeResultSlot,\n },\n { node: args.screen.root },\n diagnostics,\n );\n } catch {\n diagnostics.push({\n code: 'adapter-error',\n message: `Capability '${loader.capability}' could not be completed. Please try again.`,\n severity: 'error',\n });\n }\n }\n\n return {\n dependencyKey: createRuntimeScreenLoaderRequestKey({\n bindingContext: args.bindingContext,\n loaders: args.loaders,\n resultSlots: args.resultSlots,\n screenId: args.screen.id,\n }),\n diagnostics,\n resultSlots,\n };\n}\n\n/*** Runs screen capability invocations when their serialized request input changes. */\nexport function useRuntimeScreenOperationLoaders(args: {\n readonly bindingContext?: Record<string, unknown>;\n readonly executeCapability?: RuntimeCapabilityExecutor;\n readonly resultSlots?: RuntimeBindingResultCache;\n readonly onDiagnostics?: (diagnostics: readonly DataSourceDiagnostic[]) => void;\n readonly screen: ScreenSpec;\n}): RuntimeScreenOperationLoaderState {\n const { onDiagnostics } = args;\n const loaders = React.useMemo(() => resolveScreenOperationLoaders(args.screen), [args.screen]);\n const dependencyKey = React.useMemo(\n () =>\n createRuntimeScreenLoaderRequestKey({\n bindingContext: args.bindingContext,\n loaders,\n resultSlots: args.resultSlots,\n screenId: args.screen.id,\n }),\n [args.bindingContext, args.resultSlots, args.screen.id, loaders],\n );\n const [state, setState] = React.useState<RuntimeScreenOperationLoaderState>(() =>\n createPendingRuntimeScreenOperationLoaderState({ dependencyKey }),\n );\n const requestLifecycle = React.useRef(createRuntimeScreenOperationLoaderRequestLifecycle());\n\n React.useEffect(() => {\n if (loaders.length === 0) {\n requestLifecycle.current.invalidate();\n return;\n }\n const requestId = requestLifecycle.current.start(dependencyKey);\n if (requestId === undefined) return;\n void executeRuntimeScreenOperationLoaders({\n bindingContext: args.bindingContext,\n executeCapability: args.executeCapability,\n loaders,\n resultSlots: args.resultSlots,\n screen: args.screen,\n }).then((result) => {\n if (requestLifecycle.current.isCurrent({ dependencyKey, requestId })) {\n setState((current) => ({\n ...result,\n renderVersion:\n current.dependencyKey === dependencyKey\n ? current.renderVersion\n : current.renderVersion + 1,\n }));\n }\n });\n }, [\n args.bindingContext,\n args.executeCapability,\n args.resultSlots,\n args.screen,\n dependencyKey,\n loaders,\n ]);\n\n React.useEffect(\n () => () => {\n requestLifecycle.current.invalidate();\n },\n [],\n );\n\n React.useEffect(() => {\n if (state.diagnostics.length > 0) onDiagnostics?.(state.diagnostics);\n }, [onDiagnostics, state.diagnostics]);\n\n return state.dependencyKey === dependencyKey\n ? state\n : createPendingRuntimeScreenOperationLoaderState({ dependencyKey, previousState: state });\n}\n\nfunction stableSerialize(value: unknown): string {\n return JSON.stringify(value);\n}\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ankhorage/runtime",
3
- "version": "4.1.2",
3
+ "version": "5.0.1",
4
4
  "description": "Platform-neutral runtime renderer, contracts, and helpers for Ankhorage generated apps.",
5
5
  "license": "MIT",
6
6
  "engines": {
@@ -196,7 +196,7 @@
196
196
  },
197
197
  "dependencies": {
198
198
  "@ankhorage/capability": "^0.2.1",
199
- "@ankhorage/contracts": "^25.2.0",
199
+ "@ankhorage/contracts": "^26.0.0",
200
200
  "@ankhorage/data-sources": "^2.1.0",
201
201
  "@ankhorage/utility": "^1.9.85"
202
202
  },
@@ -224,5 +224,11 @@
224
224
  "typescript": "~6.0.3"
225
225
  },
226
226
  "sideEffects": false,
227
- "packageManager": "bun@1.4.2"
227
+ "packageManager": "bun@1.4.2",
228
+ "directories": {
229
+ "doc": "docs",
230
+ "example": "examples",
231
+ "test": "tests"
232
+ },
233
+ "author": ""
228
234
  }
@@ -1,7 +1,7 @@
1
- <svg xmlns="http://www.w3.org/2000/svg" width="90" height="20" role="img" aria-label="npm: v4.1.2">
2
- <title>npm: v4.1.2</title>
1
+ <svg xmlns="http://www.w3.org/2000/svg" width="90" height="20" role="img" aria-label="npm: v5.0.1">
2
+ <title>npm: v5.0.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.1.2</text>
6
+ <text x="64" y="14" fill="#ffffff" font-family="Verdana,Geneva,DejaVu Sans,sans-serif" font-size="11" text-anchor="middle">v5.0.1</text>
7
7
  </svg>
@@ -26,33 +26,32 @@ Export paths: `src/index.ts`
26
26
 
27
27
  ## RuntimeRenderer
28
28
 
29
- Source: `src/RuntimeRenderer.tsx:81:1`
29
+ Source: `src/RuntimeRenderer.tsx:73:1`
30
30
 
31
31
  Export paths: `src/index.ts`
32
32
 
33
33
  | Prop | Type | Required | Default | Description |
34
34
  | --- | --- | --- | --- | --- |
35
- | apis | `ApiDefinitionRegistry \| undefined` | no | — | |
36
35
  | bindingContext | `Record<string, unknown> \| undefined` | no | — | |
37
36
  | dataBindings | `ComponentDataBindingRegistry \| undefined` | no | — | |
38
37
  | dbAdapter | `DbAdapter \| undefined` | no | — | |
39
38
  | dbRealtimeAdapter | `DbRealtimeAdapter \| undefined` | no | — | |
40
39
  | disableActions | `boolean \| undefined` | no | — | |
41
- | executeAction | `RuntimeActionExecutor \| undefined` | no | — | |
42
- | executeOperation | `RuntimeBindingOperationExecutor \| undefined` | no | — | |
40
+ | executeCapability | `RuntimeCapabilityExecutor \| undefined` | no | — | |
43
41
  | isRoot | `boolean \| undefined` | no | — | |
44
42
  | mediaAssets | `MediaAssetRegistry \| undefined` | no | — | |
45
43
  | node | `UiNode` | yes | — | |
46
44
  | onDiagnostics | `(diagnostics: readonly DataSourceDiagnostic[]) => void \| undefined` | no | — | |
47
- | operationResults | `RuntimeBindingOperationResultCache \| undefined` | no | — | |
48
45
  | registry | `ComponentRegistry \| undefined` | no | — | |
46
+ | resolveEventCapability | `RuntimeEventCapabilityResolver \| undefined` | no | — | |
49
47
  | resolveMediaAsset | `RuntimeMediaAssetResolver \| undefined` | no | — | |
48
+ | resultSlots | `RuntimeBindingResultCache \| undefined` | no | — | |
50
49
  | stateAdapter | `StateAdapter \| undefined` | no | — | |
51
50
  | wrapNode | `(args: RuntimeRendererWrapArgs) => React.ReactNode \| undefined` | no | — | |
52
51
 
53
52
  ## RuntimeRendererConfigProvider
54
53
 
55
- Source: `src/RuntimeRendererConfig.tsx:167:1`
54
+ Source: `src/RuntimeRendererConfig.tsx:139:1`
56
55
 
57
56
  Export paths: `src/index.ts`
58
57
 
@@ -63,7 +62,7 @@ Export paths: `src/index.ts`
63
62
 
64
63
  ## RuntimeScreen
65
64
 
66
- Source: `src/RuntimeScreen.tsx:17:1`
65
+ Source: `src/RuntimeScreen.tsx:19:1`
67
66
 
68
67
  Export paths: `src/index.ts`
69
68
 
@@ -4,9 +4,6 @@ graph TD
4
4
  package__ankhorage_runtime --> entrypoint_src_index_ts
5
5
  module_paradox_config_ts["paradox.config.ts"]
6
6
  package__ankhorage_runtime -.-> module_paradox_config_ts
7
- module_src_bindings_test_ts["src/bindings.test.ts"]
8
- package__ankhorage_runtime -.-> module_src_bindings_test_ts
9
- module_src_bindings_test_ts --> module_src_bindings_ts
10
7
  module_src_bindings_ts["src/bindings.ts"]
11
8
  package__ankhorage_runtime -.-> module_src_bindings_ts
12
9
  module_src_capabilities_index_ts["src/capabilities/index.ts"]
@@ -38,59 +35,34 @@ graph TD
38
35
  module_src_rendering_ts["src/rendering.ts"]
39
36
  package__ankhorage_runtime -.-> module_src_rendering_ts
40
37
  module_src_rendering_ts --> module_src_registry_tsx
41
- module_src_runtimeActionRegistry_actions_test_ts["src/runtimeActionRegistry.actions.test.ts"]
42
- package__ankhorage_runtime -.-> module_src_runtimeActionRegistry_actions_test_ts
43
- module_src_runtimeActionRegistry_actions_test_ts --> module_src_runtimeActionRegistry_ts
44
- module_src_runtimeActionRegistry_chains_test_ts["src/runtimeActionRegistry.chains.test.ts"]
45
- package__ankhorage_runtime -.-> module_src_runtimeActionRegistry_chains_test_ts
46
- module_src_runtimeActionRegistry_chains_test_ts --> module_src_runtimeActionRegistry_ts
47
- module_src_runtimeActionRegistry_operations_test_ts["src/runtimeActionRegistry.operations.test.ts"]
48
- package__ankhorage_runtime -.-> module_src_runtimeActionRegistry_operations_test_ts
49
- module_src_runtimeActionRegistry_operations_test_ts --> module_src_runtimeActionRegistry_ts
50
- module_src_runtimeActionRegistry_operations_test_ts --> module_src_runtimeBindings_ts
38
+ module_src_runtimeActionRegistry_test_ts["src/runtimeActionRegistry.test.ts"]
39
+ package__ankhorage_runtime -.-> module_src_runtimeActionRegistry_test_ts
40
+ module_src_runtimeActionRegistry_test_ts --> module_src_runtimeActionRegistry_ts
51
41
  module_src_runtimeActionRegistry_ts["src/runtimeActionRegistry.ts"]
52
42
  package__ankhorage_runtime -.-> module_src_runtimeActionRegistry_ts
53
- module_src_runtimeActionRegistry_ts --> module_src_runtimeApiSelection_ts
54
43
  module_src_runtimeActionRegistry_ts --> module_src_runtimeBindings_ts
55
44
  module_src_runtimeActionRegistry_ts --> module_src_runtimeEventOperationLifecycle_ts
56
- module_src_runtimeActionRegistry_ts --> module_src_RuntimeRendererConfig_tsx
57
- module_src_runtimeApiOperations_test_ts["src/runtimeApiOperations.test.ts"]
58
- package__ankhorage_runtime -.-> module_src_runtimeApiOperations_test_ts
59
- module_src_runtimeApiOperations_test_ts --> module_src_runtimeApiOperations_ts
60
- module_src_runtimeApiOperations_ts["src/runtimeApiOperations.ts"]
61
- package__ankhorage_runtime -.-> module_src_runtimeApiOperations_ts
62
- module_src_runtimeApiOperations_ts --> module_src_runtimeBindings_ts
63
- module_src_runtimeApiSelection_test_ts["src/runtimeApiSelection.test.ts"]
64
- package__ankhorage_runtime -.-> module_src_runtimeApiSelection_test_ts
65
- module_src_runtimeApiSelection_test_ts --> module_src_runtimeApiSelection_ts
66
- module_src_runtimeApiSelection_ts["src/runtimeApiSelection.ts"]
67
- package__ankhorage_runtime -.-> module_src_runtimeApiSelection_ts
68
- module_src_runtimeBindings_test_ts["src/runtimeBindings.test.ts"]
69
- package__ankhorage_runtime -.-> module_src_runtimeBindings_test_ts
70
- module_src_runtimeBindings_test_ts --> module_src_runtimeApiSelection_ts
71
- module_src_runtimeBindings_test_ts --> module_src_runtimeBindings_ts
72
- module_src_runtimeBindings_test_ts --> module_src_runtimeNodeProps_ts
45
+ module_src_runtimeApiCapabilities_ts["src/runtimeApiCapabilities.ts"]
46
+ package__ankhorage_runtime -.-> module_src_runtimeApiCapabilities_ts
47
+ module_src_runtimeApiCapabilities_ts --> module_src_runtimeBindings_ts
48
+ module_src_runtimeBindings_contracts26_test_ts["src/runtimeBindings.contracts26.test.ts"]
49
+ package__ankhorage_runtime -.-> module_src_runtimeBindings_contracts26_test_ts
50
+ module_src_runtimeBindings_contracts26_test_ts --> module_src_runtimeActionRegistry_ts
51
+ module_src_runtimeBindings_contracts26_test_ts --> module_src_runtimeBindings_ts
52
+ module_src_runtimeBindings_contracts26_test_ts --> module_src_runtimeRepeat_ts
53
+ module_src_runtimeBindings_contracts26_test_ts --> module_src_runtimeScreenLoaders_ts
73
54
  module_src_runtimeBindings_ts["src/runtimeBindings.ts"]
74
55
  package__ankhorage_runtime -.-> module_src_runtimeBindings_ts
75
- module_src_runtimeBindings_ts --> module_src_runtimeApiSelection_ts
76
- module_src_runtimeDbPersist_test_ts["src/runtimeDbPersist.test.ts"]
77
- package__ankhorage_runtime -.-> module_src_runtimeDbPersist_test_ts
78
- module_src_runtimeDbPersist_test_ts --> module_src_runtimeActionRegistry_ts
79
- module_src_runtimeDbPersist_test_ts --> module_src_runtimeDbPersist_ts
80
- module_src_runtimeDbPersist_ts["src/runtimeDbPersist.ts"]
81
- package__ankhorage_runtime -.-> module_src_runtimeDbPersist_ts
82
- module_src_runtimeDbPersist_ts --> module_src_RuntimeRendererConfig_tsx
83
- module_src_runtimeEventExecution_test_ts["src/runtimeEventExecution.test.ts"]
84
- package__ankhorage_runtime -.-> module_src_runtimeEventExecution_test_ts
85
- module_src_runtimeEventExecution_test_ts --> module_src_runtimeEventExecution_ts
56
+ module_src_runtimeCapabilityExecutor_test_ts["src/runtimeCapabilityExecutor.test.ts"]
57
+ package__ankhorage_runtime -.-> module_src_runtimeCapabilityExecutor_test_ts
58
+ module_src_runtimeCapabilityExecutor_test_ts --> module_src_runtimeCapabilityExecutor_ts
59
+ module_src_runtimeCapabilityExecutor_test_ts --> module_src_runtimeScreenLoaders_ts
60
+ module_src_runtimeCapabilityExecutor_ts["src/runtimeCapabilityExecutor.ts"]
61
+ package__ankhorage_runtime -.-> module_src_runtimeCapabilityExecutor_ts
62
+ module_src_runtimeCapabilityExecutor_ts --> module_src_runtimeBindings_ts
86
63
  module_src_runtimeEventExecution_ts["src/runtimeEventExecution.ts"]
87
64
  package__ankhorage_runtime -.-> module_src_runtimeEventExecution_ts
88
65
  module_src_runtimeEventExecution_ts --> module_src_runtimeActionRegistry_ts
89
- module_src_runtimeEventExecution_ts --> module_src_RuntimeRendererConfig_tsx
90
- module_src_runtimeEventOperationLifecycle_test_ts["src/runtimeEventOperationLifecycle.test.ts"]
91
- package__ankhorage_runtime -.-> module_src_runtimeEventOperationLifecycle_test_ts
92
- module_src_runtimeEventOperationLifecycle_test_ts --> module_src_runtimeActionRegistry_ts
93
- module_src_runtimeEventOperationLifecycle_test_ts --> module_src_runtimeEventOperationLifecycle_ts
94
66
  module_src_runtimeEventOperationLifecycle_ts["src/runtimeEventOperationLifecycle.ts"]
95
67
  package__ankhorage_runtime -.-> module_src_runtimeEventOperationLifecycle_ts
96
68
  module_src_runtimeImageMedia_test_ts["src/runtimeImageMedia.test.ts"]
@@ -110,10 +82,6 @@ graph TD
110
82
  module_src_runtimeMediaConfig_test_ts["src/runtimeMediaConfig.test.ts"]
111
83
  package__ankhorage_runtime -.-> module_src_runtimeMediaConfig_test_ts
112
84
  module_src_runtimeMediaConfig_test_ts --> module_src_RuntimeRendererConfig_tsx
113
- module_src_runtimeNodeProps_test_ts["src/runtimeNodeProps.test.ts"]
114
- package__ankhorage_runtime -.-> module_src_runtimeNodeProps_test_ts
115
- module_src_runtimeNodeProps_test_ts --> module_src_runtimeNodeProps_ts
116
- module_src_runtimeNodeProps_test_ts --> module_src_RuntimeRendererConfig_tsx
117
85
  module_src_runtimeNodeProps_ts["src/runtimeNodeProps.ts"]
118
86
  package__ankhorage_runtime -.-> module_src_runtimeNodeProps_ts
119
87
  module_src_runtimeNodeProps_ts --> module_src_runtimeBindings_ts
@@ -129,7 +97,6 @@ graph TD
129
97
  module_src_RuntimeRenderer_tsx --> module_src_rendering_ts
130
98
  module_src_RuntimeRenderer_tsx --> module_src_runtimeActionRegistry_ts
131
99
  module_src_RuntimeRenderer_tsx --> module_src_runtimeBindings_ts
132
- module_src_RuntimeRenderer_tsx --> module_src_runtimeDbPersist_ts
133
100
  module_src_RuntimeRenderer_tsx --> module_src_runtimeEventExecution_ts
134
101
  module_src_RuntimeRenderer_tsx --> module_src_runtimeEventOperationLifecycle_ts
135
102
  module_src_RuntimeRenderer_tsx --> module_src_runtimeMedia_ts
@@ -140,23 +107,15 @@ graph TD
140
107
  module_src_RuntimeRenderer_tsx --> module_src_runtimeRepeatDiagnostics_ts
141
108
  module_src_RuntimeRenderer_tsx --> module_src_runtimeRepeatEmptyState_ts
142
109
  module_src_RuntimeRenderer_tsx --> module_src_useRuntimeMediaProps_ts
143
- module_src_RuntimeRendererConfig_test_tsx["src/RuntimeRendererConfig.test.tsx"]
144
- package__ankhorage_runtime -.-> module_src_RuntimeRendererConfig_test_tsx
145
- module_src_RuntimeRendererConfig_test_tsx --> module_src_RuntimeRendererConfig_tsx
146
110
  module_src_RuntimeRendererConfig_tsx["src/RuntimeRendererConfig.tsx"]
147
111
  package__ankhorage_runtime -.-> module_src_RuntimeRendererConfig_tsx
148
112
  module_src_RuntimeRendererConfig_tsx --> module_src_registry_tsx
113
+ module_src_RuntimeRendererConfig_tsx --> module_src_runtimeActionRegistry_ts
149
114
  module_src_RuntimeRendererConfig_tsx --> module_src_runtimeBindings_ts
150
115
  module_src_RuntimeRendererConfig_tsx --> module_src_runtimeEventOperationLifecycle_ts
151
116
  module_src_RuntimeRendererConfig_tsx --> module_src_runtimeMedia_ts
152
- module_src_runtimeRepeat_test_ts["src/runtimeRepeat.test.ts"]
153
- package__ankhorage_runtime -.-> module_src_runtimeRepeat_test_ts
154
- module_src_runtimeRepeat_test_ts --> module_src_runtimeActionRegistry_ts
155
- module_src_runtimeRepeat_test_ts --> module_src_runtimeBindings_ts
156
- module_src_runtimeRepeat_test_ts --> module_src_runtimeRepeat_ts
157
117
  module_src_runtimeRepeat_ts["src/runtimeRepeat.ts"]
158
118
  package__ankhorage_runtime -.-> module_src_runtimeRepeat_ts
159
- module_src_runtimeRepeat_ts --> module_src_runtimeApiSelection_ts
160
119
  module_src_runtimeRepeat_ts --> module_src_runtimeBindings_ts
161
120
  module_src_runtimeRepeatDiagnostics_ts["src/runtimeRepeatDiagnostics.ts"]
162
121
  package__ankhorage_runtime -.-> module_src_runtimeRepeatDiagnostics_ts
@@ -165,33 +124,20 @@ graph TD
165
124
  module_src_RuntimeScreen_tsx["src/RuntimeScreen.tsx"]
166
125
  package__ankhorage_runtime -.-> module_src_RuntimeScreen_tsx
167
126
  module_src_RuntimeScreen_tsx --> module_src_registry_tsx
127
+ module_src_RuntimeScreen_tsx --> module_src_runtimeApiCapabilities_ts
128
+ module_src_RuntimeScreen_tsx --> module_src_runtimeCapabilityExecutor_ts
168
129
  module_src_RuntimeScreen_tsx --> module_src_RuntimeRenderer_tsx
169
130
  module_src_RuntimeScreen_tsx --> module_src_RuntimeRendererConfig_tsx
170
131
  module_src_RuntimeScreen_tsx --> module_src_runtimeScreenLoaders_ts
171
132
  module_src_RuntimeScreen_tsx --> module_src_runtimeStateAdapter_ts
172
- module_src_runtimeScreenLoaders_arrayPath_test_ts["src/runtimeScreenLoaders.arrayPath.test.ts"]
173
- package__ankhorage_runtime -.-> module_src_runtimeScreenLoaders_arrayPath_test_ts
174
- module_src_runtimeScreenLoaders_arrayPath_test_ts --> module_src_runtimeBindings_ts
175
- module_src_runtimeScreenLoaders_arrayPath_test_ts --> module_src_runtimeScreenLoaders_ts
176
- module_src_runtimeScreenLoaders_execution_test_ts["src/runtimeScreenLoaders.execution.test.ts"]
177
- package__ankhorage_runtime -.-> module_src_runtimeScreenLoaders_execution_test_ts
178
- module_src_runtimeScreenLoaders_execution_test_ts --> module_src_runtimeBindings_ts
179
- module_src_runtimeScreenLoaders_execution_test_ts --> module_src_runtimeScreenLoaders_ts
180
- module_src_runtimeScreenLoaders_lifecycle_test_ts["src/runtimeScreenLoaders.lifecycle.test.ts"]
181
- package__ankhorage_runtime -.-> module_src_runtimeScreenLoaders_lifecycle_test_ts
182
- module_src_runtimeScreenLoaders_lifecycle_test_ts --> module_src_runtimeBindings_ts
183
- module_src_runtimeScreenLoaders_lifecycle_test_ts --> module_src_runtimeScreenLoaders_ts
133
+ module_src_runtimeScreenLoaders_test_ts["src/runtimeScreenLoaders.test.ts"]
134
+ package__ankhorage_runtime -.-> module_src_runtimeScreenLoaders_test_ts
135
+ module_src_runtimeScreenLoaders_test_ts --> module_src_runtimeScreenLoaders_ts
184
136
  module_src_runtimeScreenLoaders_ts["src/runtimeScreenLoaders.ts"]
185
137
  package__ankhorage_runtime -.-> module_src_runtimeScreenLoaders_ts
186
- module_src_runtimeScreenLoaders_ts --> module_src_runtimeApiSelection_ts
187
138
  module_src_runtimeScreenLoaders_ts --> module_src_runtimeBindings_ts
188
139
  module_src_runtimeStateAdapter_ts["src/runtimeStateAdapter.ts"]
189
140
  package__ankhorage_runtime -.-> module_src_runtimeStateAdapter_ts
190
- module_src_runtimeStateAdapterConfig_test_ts["src/runtimeStateAdapterConfig.test.ts"]
191
- package__ankhorage_runtime -.-> module_src_runtimeStateAdapterConfig_test_ts
192
- module_src_runtimeStateAdapterConfig_test_ts --> module_src_runtimeBindings_ts
193
- module_src_runtimeStateAdapterConfig_test_ts --> module_src_runtimeNodeProps_ts
194
- module_src_runtimeStateAdapterConfig_test_ts --> module_src_RuntimeRendererConfig_tsx
195
141
  module_src_useRuntimeMediaProps_ts["src/useRuntimeMediaProps.ts"]
196
142
  package__ankhorage_runtime -.-> module_src_useRuntimeMediaProps_ts
197
143
  module_src_useRuntimeMediaProps_ts --> module_src_runtimeMedia_ts