@exactjs/core 0.6.2 → 0.6.3

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 (125) hide show
  1. package/AGENTS.md +12 -14
  2. package/README.md +6 -8
  3. package/dist/client/component-contract/continuation-validation.d.ts +5 -0
  4. package/dist/client/component-contract/continuation-validation.d.ts.map +1 -1
  5. package/dist/client/component-contract/continuation-validation.js +7 -0
  6. package/dist/client/component-contract/continuation-validation.js.map +1 -1
  7. package/dist/client/component-contract/contract-validation.d.ts.map +1 -1
  8. package/dist/client/component-contract/contract-validation.js +4 -1
  9. package/dist/client/component-contract/contract-validation.js.map +1 -1
  10. package/dist/client/component-contracts.d.ts +5 -0
  11. package/dist/client/component-contracts.d.ts.map +1 -1
  12. package/dist/client/component-contracts.js.map +1 -1
  13. package/dist/client/framework/component-contract-validation.d.ts +1 -1
  14. package/dist/client/framework/component-contract-validation.d.ts.map +1 -1
  15. package/dist/client/framework/component-contract-validation.js +1 -1
  16. package/dist/client/framework/component-contract-validation.js.map +1 -1
  17. package/dist/client/framework/operation-protocol.d.ts +9 -0
  18. package/dist/client/framework/operation-protocol.d.ts.map +1 -1
  19. package/dist/client/framework/operation-protocol.js.map +1 -1
  20. package/dist/client/framework/server-task-helpers.d.ts +1 -0
  21. package/dist/client/framework/server-task-helpers.d.ts.map +1 -1
  22. package/dist/client/framework/server-task-helpers.js +1 -0
  23. package/dist/client/framework/server-task-helpers.js.map +1 -1
  24. package/dist/client/framework/task-frames.d.ts +2 -1
  25. package/dist/client/framework/task-frames.d.ts.map +1 -1
  26. package/dist/client/framework/task-frames.js +1 -0
  27. package/dist/client/framework/task-frames.js.map +1 -1
  28. package/dist/client/runtime/tasks.d.ts +1 -0
  29. package/dist/client/runtime/tasks.d.ts.map +1 -1
  30. package/dist/client/runtime/tasks.js +1 -0
  31. package/dist/client/runtime/tasks.js.map +1 -1
  32. package/dist/client/tasks/contracts.d.ts +2 -0
  33. package/dist/client/tasks/contracts.d.ts.map +1 -1
  34. package/dist/client/tasks/contracts.js.map +1 -1
  35. package/dist/client/tasks/progress-bindings.d.ts +20 -0
  36. package/dist/client/tasks/progress-bindings.d.ts.map +1 -0
  37. package/dist/client/tasks/progress-bindings.js +51 -0
  38. package/dist/client/tasks/progress-bindings.js.map +1 -0
  39. package/dist/client/tasks/progress-receiver.d.ts +24 -0
  40. package/dist/client/tasks/progress-receiver.d.ts.map +1 -0
  41. package/dist/client/tasks/progress-receiver.js +71 -0
  42. package/dist/client/tasks/progress-receiver.js.map +1 -0
  43. package/dist/component-contract/continuation-validation.d.ts +5 -0
  44. package/dist/component-contract/continuation-validation.d.ts.map +1 -1
  45. package/dist/component-contract/continuation-validation.js +7 -0
  46. package/dist/component-contract/continuation-validation.js.map +1 -1
  47. package/dist/component-contract/contract-validation.d.ts.map +1 -1
  48. package/dist/component-contract/contract-validation.js +4 -1
  49. package/dist/component-contract/contract-validation.js.map +1 -1
  50. package/dist/component-contracts.d.ts +5 -0
  51. package/dist/component-contracts.d.ts.map +1 -1
  52. package/dist/component-contracts.js.map +1 -1
  53. package/dist/framework/component-contract-validation.d.ts +1 -1
  54. package/dist/framework/component-contract-validation.d.ts.map +1 -1
  55. package/dist/framework/component-contract-validation.js +1 -1
  56. package/dist/framework/component-contract-validation.js.map +1 -1
  57. package/dist/framework/operation-protocol.d.ts +9 -0
  58. package/dist/framework/operation-protocol.d.ts.map +1 -1
  59. package/dist/framework/operation-protocol.js.map +1 -1
  60. package/dist/framework/server-task-helpers.d.ts +1 -0
  61. package/dist/framework/server-task-helpers.d.ts.map +1 -1
  62. package/dist/framework/server-task-helpers.js +1 -0
  63. package/dist/framework/server-task-helpers.js.map +1 -1
  64. package/dist/framework/task-frames.d.ts +2 -1
  65. package/dist/framework/task-frames.d.ts.map +1 -1
  66. package/dist/framework/task-frames.js +1 -0
  67. package/dist/framework/task-frames.js.map +1 -1
  68. package/dist/runtime/tasks.d.ts +1 -0
  69. package/dist/runtime/tasks.d.ts.map +1 -1
  70. package/dist/runtime/tasks.js +1 -0
  71. package/dist/runtime/tasks.js.map +1 -1
  72. package/dist/server/component-contract/continuation-validation.d.ts +5 -0
  73. package/dist/server/component-contract/continuation-validation.d.ts.map +1 -1
  74. package/dist/server/component-contract/continuation-validation.js +7 -0
  75. package/dist/server/component-contract/continuation-validation.js.map +1 -1
  76. package/dist/server/component-contract/contract-validation.d.ts.map +1 -1
  77. package/dist/server/component-contract/contract-validation.js +4 -1
  78. package/dist/server/component-contract/contract-validation.js.map +1 -1
  79. package/dist/server/component-contracts.d.ts +5 -0
  80. package/dist/server/component-contracts.d.ts.map +1 -1
  81. package/dist/server/component-contracts.js.map +1 -1
  82. package/dist/server/framework/component-contract-validation.d.ts +1 -1
  83. package/dist/server/framework/component-contract-validation.d.ts.map +1 -1
  84. package/dist/server/framework/component-contract-validation.js +1 -1
  85. package/dist/server/framework/component-contract-validation.js.map +1 -1
  86. package/dist/server/framework/operation-protocol.d.ts +9 -0
  87. package/dist/server/framework/operation-protocol.d.ts.map +1 -1
  88. package/dist/server/framework/operation-protocol.js.map +1 -1
  89. package/dist/server/framework/server-task-helpers.d.ts +1 -0
  90. package/dist/server/framework/server-task-helpers.d.ts.map +1 -1
  91. package/dist/server/framework/server-task-helpers.js +1 -0
  92. package/dist/server/framework/server-task-helpers.js.map +1 -1
  93. package/dist/server/framework/task-frames.d.ts +2 -1
  94. package/dist/server/framework/task-frames.d.ts.map +1 -1
  95. package/dist/server/framework/task-frames.js +1 -0
  96. package/dist/server/framework/task-frames.js.map +1 -1
  97. package/dist/server/runtime/tasks.d.ts +1 -0
  98. package/dist/server/runtime/tasks.d.ts.map +1 -1
  99. package/dist/server/runtime/tasks.js +1 -0
  100. package/dist/server/runtime/tasks.js.map +1 -1
  101. package/dist/server/tasks/contracts.d.ts +2 -0
  102. package/dist/server/tasks/contracts.d.ts.map +1 -1
  103. package/dist/server/tasks/contracts.js.map +1 -1
  104. package/dist/server/tasks/progress-bindings.d.ts +20 -0
  105. package/dist/server/tasks/progress-bindings.d.ts.map +1 -0
  106. package/dist/server/tasks/progress-bindings.js +51 -0
  107. package/dist/server/tasks/progress-bindings.js.map +1 -0
  108. package/dist/server/tasks/progress-receiver.d.ts +24 -0
  109. package/dist/server/tasks/progress-receiver.d.ts.map +1 -0
  110. package/dist/server/tasks/progress-receiver.js +71 -0
  111. package/dist/server/tasks/progress-receiver.js.map +1 -0
  112. package/dist/tasks/contracts.d.ts +2 -0
  113. package/dist/tasks/contracts.d.ts.map +1 -1
  114. package/dist/tasks/contracts.js.map +1 -1
  115. package/dist/tasks/progress-bindings.d.ts +20 -0
  116. package/dist/tasks/progress-bindings.d.ts.map +1 -0
  117. package/dist/tasks/progress-bindings.js +51 -0
  118. package/dist/tasks/progress-bindings.js.map +1 -0
  119. package/dist/tasks/progress-receiver.d.ts +24 -0
  120. package/dist/tasks/progress-receiver.d.ts.map +1 -0
  121. package/dist/tasks/progress-receiver.js +71 -0
  122. package/dist/tasks/progress-receiver.js.map +1 -0
  123. package/package.json +1 -1
  124. package/dist/client/component/error-boundary.js.map +0 -1
  125. package/dist/server/component/error-boundary.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"contract-validation.js","sourceRoot":"","sources":["../../src/component-contract/contract-validation.ts"],"names":[],"mappings":"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","sourcesContent":["import { componentContractVersion } from '../component/contract-versions.js';\nimport type {\n\tExactComponentContract,\n\tExactComponentExecutionContract,\n\tExactComponentImplementationContract,\n\tExactComponentContinuationExecutorContract,\n\tExactComponentResumptionContract\n} from '../component-contracts.js';\nimport {\n\thasConsistentStatelessServerExecution,\n\tisExactServerExecutionMetadata\n} from './server-execution-validation.js';\nimport { isExactComponentBoundaryContract } from './boundary-validation.js';\nimport {\n\tisExactContinuationDependency,\n\tisExactContinuationInvocation,\n\tisExactContinuationStatePath\n} from './continuation-validation.js';\nimport {\n\thasOnlyContractKeys,\n\tisContractRecord,\n\tisContractString,\n\tisReactiveAllocation,\n\tisSafeContractStringList,\n\tisSafeContractPropertyKeyList\n} from './metadata-validation.js';\nimport { allCompiledComponentABI } from '../component/compiled-abi.js';\nimport { isExactValueSerializationSchema } from '../component-abi/value-serialization.js';\n\n/** Validates all required metadata before a generated artifact gains runtime authority. */\nexport function isExactComponentContract(\n\tvalue: unknown,\n\tcomponentId: string\n): value is ExactComponentContract {\n\tif (!isContractRecord(value)) return false;\n\treturn (\n\t\thasOnlyContractKeys(value, [\n\t\t\t'version',\n\t\t\t'placement',\n\t\t\t'role',\n\t\t\t'implementations',\n\t\t\t'continuations',\n\t\t\t'executors',\n\t\t\t'boundaries',\n\t\t\t'resumption',\n\t\t\t'execution',\n\t\t\t'artifact'\n\t\t]) &&\n\t\tvalue.version === componentContractVersion &&\n\t\t(value.placement === 'client' ||\n\t\t\tvalue.placement === 'server' ||\n\t\t\tvalue.placement === 'isomorphic' ||\n\t\t\tvalue.placement === 'unknown') &&\n\t\t(value.role === 'client' || value.role === 'render' || value.role === 'executor') &&\n\t\tArray.isArray(value.implementations) &&\n\t\tvalue.implementations.every(isImplementation) &&\n\t\tArray.isArray(value.continuations) &&\n\t\tvalue.continuations.every(\n\t\t\t(continuation) => isContinuation(continuation) && continuation.componentId === componentId\n\t\t) &&\n\t\tArray.isArray(value.executors) &&\n\t\tvalue.executors.every(\n\t\t\t(executor) => isExecutor(executor) && executor.componentId === componentId\n\t\t) &&\n\t\tArray.isArray(value.boundaries) &&\n\t\tvalue.boundaries.every(\n\t\t\t(boundary) =>\n\t\t\t\tisExactComponentBoundaryContract(boundary) && boundary.ownerComponentId === componentId\n\t\t) &&\n\t\t(value.resumption === undefined ||\n\t\t\t(isResumption(value.resumption) && value.resumption.componentId === componentId)) &&\n\t\t(value.execution === undefined || isExecution(value.execution)) &&\n\t\tisExecutableArtifact(value.artifact, componentId, value.role) &&\n\t\thasConsistentServerPublication(value)\n\t);\n}\n\nfunction hasConsistentServerPublication(value: Record<PropertyKey, unknown>): boolean {\n\tif (!isContractRecord(value.artifact) || !isContractRecord(value.artifact.execution)) return true;\n\tconst resumable =\n\t\tvalue.resumption !== undefined &&\n\t\tArray.isArray(value.continuations) &&\n\t\tvalue.continuations.length !== 0;\n\treturn (value.artifact.execution.publication !== undefined) === resumable;\n}\n\nfunction isExecutableArtifact(value: unknown, componentId: string, role: unknown): boolean {\n\tif (\n\t\t!isContractRecord(value) ||\n\t\tvalue.version !== componentContractVersion ||\n\t\tvalue.id !== componentId\n\t)\n\t\treturn false;\n\tif (!hasCommonArtifactFields(value)) return false;\n\tif (value.target === 'client') return role === 'client' && isClientArtifact(value);\n\tif (value.target === 'server')\n\t\treturn (role === 'render' || role === 'executor') && isServerArtifact(value);\n\treturn false;\n}\n\nfunction hasCommonArtifactFields(value: Record<PropertyKey, unknown>): boolean {\n\treturn (\n\t\ttypeof value.instantiate === 'function' &&\n\t\ttypeof value.construct === 'function' &&\n\t\ttypeof value.abi === 'number' &&\n\t\tNumber.isSafeInteger(value.abi) &&\n\t\tvalue.abi >= 0 &&\n\t\t(value.abi & ~allCompiledComponentABI) === 0 &&\n\t\tisSafeContractStringList(value.state) &&\n\t\tisSafeContractStringList(value.props) &&\n\t\t(value.opaqueProps === undefined || isSafeContractPropertyKeyList(value.opaqueProps)) &&\n\t\t(value.identityProps === undefined || isSafeContractStringList(value.identityProps)) &&\n\t\t(value.serialization === undefined || isExactValueSerializationSchema(value.serialization)) &&\n\t\t(value.tasks === undefined || isSafeContractStringList(value.tasks)) &&\n\t\t(value.reactive === undefined ||\n\t\t\t(Array.isArray(value.reactive) && value.reactive.every(isReactiveAllocation))) &&\n\t\t(value.render === undefined || value.render === 'returned-function') &&\n\t\tArray.isArray(value.capabilities) &&\n\t\tvalue.capabilities.every(isCapability)\n\t);\n}\n\nfunction isClientArtifact(value: Record<PropertyKey, unknown>): boolean {\n\treturn (\n\t\thasOnlyContractKeys(value, [\n\t\t\t'version',\n\t\t\t'target',\n\t\t\t'id',\n\t\t\t'template',\n\t\t\t'construct',\n\t\t\t'attach',\n\t\t\t'receive',\n\t\t\t'dispose',\n\t\t\t'instantiate',\n\t\t\t'abi',\n\t\t\t'updates',\n\t\t\t'state',\n\t\t\t'props',\n\t\t\t'serialization',\n\t\t\t'opaqueProps',\n\t\t\t'identityProps',\n\t\t\t'tasks',\n\t\t\t'reactive',\n\t\t\t'render',\n\t\t\t'capabilities'\n\t\t]) &&\n\t\t(value.template === undefined || isContractRecord(value.template)) &&\n\t\ttypeof value.attach === 'function' &&\n\t\ttypeof value.receive === 'function' &&\n\t\ttypeof value.dispose === 'function' &&\n\t\t(value.updates === undefined || isComponentUpdates(value.updates))\n\t);\n}\n\nfunction isServerArtifact(value: Record<PropertyKey, unknown>): boolean {\n\treturn (\n\t\thasOnlyContractKeys(value, [\n\t\t\t'version',\n\t\t\t'target',\n\t\t\t'id',\n\t\t\t'issue',\n\t\t\t'write',\n\t\t\t'dispose',\n\t\t\t'execute',\n\t\t\t'instantiate',\n\t\t\t'construct',\n\t\t\t'abi',\n\t\t\t'state',\n\t\t\t'props',\n\t\t\t'serialization',\n\t\t\t'opaqueProps',\n\t\t\t'tasks',\n\t\t\t'reactive',\n\t\t\t'render',\n\t\t\t'capabilities',\n\t\t\t'execution',\n\t\t\t'selection'\n\t\t]) &&\n\t\ttypeof value.issue === 'function' &&\n\t\ttypeof value.write === 'function' &&\n\t\ttypeof value.dispose === 'function' &&\n\t\t(value.execute === undefined || typeof value.execute === 'function') &&\n\t\t(value.selection === undefined || isServerSelection(value.selection)) &&\n\t\tisServerExecution(value.execution, value.selection !== undefined) &&\n\t\thasConsistentStatelessServerExecution(value)\n\t);\n}\n\n/** Validates the finite registry resolver retained by a lazy server facade. */\nfunction isServerSelection(value: unknown): boolean {\n\treturn (\n\t\tisContractRecord(value) &&\n\t\thasOnlyContractKeys(value, ['key', 'resolve']) &&\n\t\tisContractString(value.key) &&\n\t\ttypeof value.resolve === 'function'\n\t);\n}\n\nfunction isCapability(value: unknown): boolean {\n\treturn (\n\t\ttypeof value === 'string' &&\n\t\t[\n\t\t\t'tasks',\n\t\t\t'continuations',\n\t\t\t'resumption',\n\t\t\t'inspection',\n\t\t\t'registry',\n\t\t\t'enhancements',\n\t\t\t'interactions',\n\t\t\t'compatibility',\n\t\t\t'dynamic-components',\n\t\t\t'collections',\n\t\t\t'contexts',\n\t\t\t'targets'\n\t\t].includes(value)\n\t);\n}\n\n/** Validates the closed server projection without accepting executable data from foreign input. */\nfunction isServerExecution(value: unknown, selection = false): boolean {\n\treturn isExactServerExecutionMetadata(value, selection);\n}\n\nfunction isComponentUpdates(value: unknown): boolean {\n\tif (\n\t\t!isContractRecord(value) ||\n\t\t!hasOnlyContractKeys(value, ['bindings', 'props', 'words', 'apply'])\n\t)\n\t\treturn false;\n\tconst words = value.words === undefined ? 2 : value.words;\n\treturn (\n\t\ttypeof words === 'number' &&\n\t\tNumber.isSafeInteger(words) &&\n\t\twords >= 2 &&\n\t\t(value.words === undefined || words >= 3) &&\n\t\tArray.isArray(value.bindings) &&\n\t\t(value.props === undefined ||\n\t\t\t(typeof value.props === 'number' &&\n\t\t\t\tNumber.isSafeInteger(value.props) &&\n\t\t\t\tvalue.props > 0 &&\n\t\t\t\tvalue.props <= value.bindings.length)) &&\n\t\tvalue.bindings.every(\n\t\t\t(binding) =>\n\t\t\t\tArray.isArray(binding) &&\n\t\t\t\tbinding.length === words + 1 &&\n\t\t\t\tNumber.isSafeInteger(binding[0]) &&\n\t\t\t\tbinding[0] >= 0 &&\n\t\t\t\tbinding\n\t\t\t\t\t.slice(1)\n\t\t\t\t\t.every((mask) => Number.isSafeInteger(mask) && mask >= 0 && mask <= 0xffff_ffff)\n\t\t) &&\n\t\ttypeof value.apply === 'function'\n\t);\n}\n\nfunction isImplementation(value: unknown): value is ExactComponentImplementationContract {\n\tif (!isContractRecord(value)) return false;\n\treturn (\n\t\thasOnlyContractKeys(value, ['id', 'name', 'role', 'implementation']) &&\n\t\tisContractString(value.id) &&\n\t\tisContractString(value.name) &&\n\t\t(value.role === 'root' || value.role === 'client-island' || value.role === 'server-part') &&\n\t\ttypeof value.implementation === 'function'\n\t);\n}\n\nfunction isContinuation(value: unknown): boolean {\n\tif (!isContractRecord(value)) return false;\n\treturn (\n\t\thasOnlyContractKeys(value, [\n\t\t\t'id',\n\t\t\t'kind',\n\t\t\t'componentId',\n\t\t\t'readiness',\n\t\t\t'concurrency',\n\t\t\t'dependencies',\n\t\t\t'stateReads',\n\t\t\t'stateWrites',\n\t\t\t'publicContexts',\n\t\t\t'serverContexts',\n\t\t\t'contextWrites',\n\t\t\t'serverContextWrites',\n\t\t\t'boundaries',\n\t\t\t'invocation'\n\t\t]) &&\n\t\tisContractString(value.id) &&\n\t\tvalue.kind === 'task' &&\n\t\tisContractString(value.componentId) &&\n\t\t(value.readiness === 'blocking' || value.readiness === 'nonblocking') &&\n\t\t(value.concurrency === undefined || isConcurrency(value.concurrency)) &&\n\t\tArray.isArray(value.dependencies) &&\n\t\tvalue.dependencies.every(isExactContinuationDependency) &&\n\t\tArray.isArray(value.stateReads) &&\n\t\tvalue.stateReads.every(isExactContinuationStatePath) &&\n\t\tArray.isArray(value.stateWrites) &&\n\t\tvalue.stateWrites.every(isExactContinuationStatePath) &&\n\t\tisSafeContractStringList(value.publicContexts) &&\n\t\tisSafeContractStringList(value.serverContexts) &&\n\t\tisSafeContractStringList(value.contextWrites) &&\n\t\t(value.serverContextWrites === undefined ||\n\t\t\tisSafeContractStringList(value.serverContextWrites)) &&\n\t\tisSafeContractStringList(value.boundaries) &&\n\t\t(value.invocation === undefined || isExactContinuationInvocation(value.invocation))\n\t);\n}\n\nfunction isExecutor(value: unknown): value is ExactComponentContinuationExecutorContract {\n\treturn (\n\t\tisContractRecord(value) &&\n\t\thasOnlyContractKeys(value, ['id', 'componentId', 'execute']) &&\n\t\tisContractString(value.id) &&\n\t\tisContractString(value.componentId) &&\n\t\ttypeof value.execute === 'function'\n\t);\n}\n\nfunction isResumption(value: unknown): value is ExactComponentResumptionContract {\n\treturn (\n\t\tisContractRecord(value) &&\n\t\thasOnlyContractKeys(value, [\n\t\t\t'componentId',\n\t\t\t'statePaths',\n\t\t\t'stateInputs',\n\t\t\t'stateDefaults',\n\t\t\t'continuations',\n\t\t\t'valueCaptures',\n\t\t\t'contexts',\n\t\t\t'boundaries'\n\t\t]) &&\n\t\tisContractString(value.componentId) &&\n\t\tisSafeContractStringList(value.statePaths) &&\n\t\tArray.isArray(value.stateInputs) &&\n\t\tvalue.stateInputs.every(\n\t\t\t(input) =>\n\t\t\t\tArray.isArray(input) &&\n\t\t\t\tinput.length === 2 &&\n\t\t\t\tisContractString(input[0]) &&\n\t\t\t\tisContractString(input[1])\n\t\t) &&\n\t\t(value.continuations === undefined || isSafeContractStringList(value.continuations)) &&\n\t\t(value.stateDefaults === undefined ||\n\t\t\t(Array.isArray(value.stateDefaults) &&\n\t\t\t\tvalue.stateDefaults.every(\n\t\t\t\t\t(input) =>\n\t\t\t\t\t\tArray.isArray(input) &&\n\t\t\t\t\t\tinput.length === 2 &&\n\t\t\t\t\t\tisContractString(input[0]) &&\n\t\t\t\t\t\t(input[1] === null ||\n\t\t\t\t\t\t\ttypeof input[1] === 'string' ||\n\t\t\t\t\t\t\ttypeof input[1] === 'boolean' ||\n\t\t\t\t\t\t\t(typeof input[1] === 'number' && Number.isFinite(input[1])))\n\t\t\t\t))) &&\n\t\tisSafeContractStringList(value.valueCaptures) &&\n\t\tisSafeContractStringList(value.contexts) &&\n\t\tisSafeContractStringList(value.boundaries)\n\t);\n}\n\nfunction isExecution(value: unknown): value is ExactComponentExecutionContract {\n\tif (!isContractRecord(value) || !Array.isArray(value.ports)) return false;\n\tconst ports = value.ports;\n\treturn (\n\t\thasOnlyContractKeys(value, ['version', 'ports', 'transitions', 'reactive']) &&\n\t\tvalue.version === 1 &&\n\t\tports.every(isExecutionPort) &&\n\t\tArray.isArray(value.transitions) &&\n\t\tvalue.transitions.every((transition) => isExecutionTransition(transition, ports.length)) &&\n\t\t(value.reactive === undefined ||\n\t\t\t(Array.isArray(value.reactive) && value.reactive.every(isReactiveAllocation)))\n\t);\n}\n\nfunction isExecutionPort(value: unknown): boolean {\n\treturn (\n\t\tArray.isArray(value) &&\n\t\tvalue.length === 3 &&\n\t\ttypeof value[0] === 'string' &&\n\t\t['state', 'props', 'context', 'derived', 'argument'].includes(value[0]) &&\n\t\tisContractString(value[1]) &&\n\t\ttypeof value[2] === 'string' &&\n\t\t['input', 'output', 'inout'].includes(value[2])\n\t);\n}\n\nfunction isExecutionTransition(value: unknown, portCount: number): boolean {\n\treturn (\n\t\tArray.isArray(value) &&\n\t\tvalue.length === 8 &&\n\t\tisContractString(value[0]) &&\n\t\tisContractString(value[1]) &&\n\t\t(value[2] === 'setup' || value[2] === 'interaction') &&\n\t\t(value[3] === 'client' || value[3] === 'server' || value[3] === 'isomorphic') &&\n\t\t(value[4] === 'blocking' || value[4] === 'nonblocking') &&\n\t\tisConcurrency(value[5]) &&\n\t\tisPortIndexList(value[6], portCount) &&\n\t\tisPortIndexList(value[7], portCount)\n\t);\n}\n\nfunction isConcurrency(value: unknown): boolean {\n\treturn value === 'parallel' || value === 'latest' || value === 'queue';\n}\n\nfunction isPortIndexList(value: unknown, portCount: number): boolean {\n\treturn (\n\t\tArray.isArray(value) &&\n\t\tvalue.every((index) => Number.isSafeInteger(index) && index >= 0 && index < portCount)\n\t);\n}\n"]}
1
+ {"version":3,"file":"contract-validation.js","sourceRoot":"","sources":["../../src/component-contract/contract-validation.ts"],"names":[],"mappings":"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","sourcesContent":["import { componentContractVersion } from '../component/contract-versions.js';\nimport type {\n\tExactComponentContract,\n\tExactComponentExecutionContract,\n\tExactComponentImplementationContract,\n\tExactComponentContinuationExecutorContract,\n\tExactComponentResumptionContract\n} from '../component-contracts.js';\nimport {\n\thasConsistentStatelessServerExecution,\n\tisExactServerExecutionMetadata\n} from './server-execution-validation.js';\nimport { isExactComponentBoundaryContract } from './boundary-validation.js';\nimport {\n\tisExactProgressReceiver,\n\tisExactContinuationDependency,\n\tisExactContinuationInvocation,\n\tisExactContinuationStatePath\n} from './continuation-validation.js';\nimport {\n\thasOnlyContractKeys,\n\tisContractRecord,\n\tisContractString,\n\tisReactiveAllocation,\n\tisSafeContractStringList,\n\tisSafeContractPropertyKeyList\n} from './metadata-validation.js';\nimport { allCompiledComponentABI } from '../component/compiled-abi.js';\nimport { isExactValueSerializationSchema } from '../component-abi/value-serialization.js';\n\n/** Validates all required metadata before a generated artifact gains runtime authority. */\nexport function isExactComponentContract(\n\tvalue: unknown,\n\tcomponentId: string\n): value is ExactComponentContract {\n\tif (!isContractRecord(value)) return false;\n\treturn (\n\t\thasOnlyContractKeys(value, [\n\t\t\t'version',\n\t\t\t'placement',\n\t\t\t'role',\n\t\t\t'implementations',\n\t\t\t'continuations',\n\t\t\t'executors',\n\t\t\t'boundaries',\n\t\t\t'resumption',\n\t\t\t'execution',\n\t\t\t'artifact'\n\t\t]) &&\n\t\tvalue.version === componentContractVersion &&\n\t\t(value.placement === 'client' ||\n\t\t\tvalue.placement === 'server' ||\n\t\t\tvalue.placement === 'isomorphic' ||\n\t\t\tvalue.placement === 'unknown') &&\n\t\t(value.role === 'client' || value.role === 'render' || value.role === 'executor') &&\n\t\tArray.isArray(value.implementations) &&\n\t\tvalue.implementations.every(isImplementation) &&\n\t\tArray.isArray(value.continuations) &&\n\t\tvalue.continuations.every(\n\t\t\t(continuation) => isContinuation(continuation) && continuation.componentId === componentId\n\t\t) &&\n\t\tArray.isArray(value.executors) &&\n\t\tvalue.executors.every(\n\t\t\t(executor) => isExecutor(executor) && executor.componentId === componentId\n\t\t) &&\n\t\tArray.isArray(value.boundaries) &&\n\t\tvalue.boundaries.every(\n\t\t\t(boundary) =>\n\t\t\t\tisExactComponentBoundaryContract(boundary) && boundary.ownerComponentId === componentId\n\t\t) &&\n\t\t(value.resumption === undefined ||\n\t\t\t(isResumption(value.resumption) && value.resumption.componentId === componentId)) &&\n\t\t(value.execution === undefined || isExecution(value.execution)) &&\n\t\tisExecutableArtifact(value.artifact, componentId, value.role) &&\n\t\thasConsistentServerPublication(value)\n\t);\n}\n\nfunction hasConsistentServerPublication(value: Record<PropertyKey, unknown>): boolean {\n\tif (!isContractRecord(value.artifact) || !isContractRecord(value.artifact.execution)) return true;\n\tconst resumable =\n\t\tvalue.resumption !== undefined &&\n\t\tArray.isArray(value.continuations) &&\n\t\tvalue.continuations.length !== 0;\n\treturn (value.artifact.execution.publication !== undefined) === resumable;\n}\n\nfunction isExecutableArtifact(value: unknown, componentId: string, role: unknown): boolean {\n\tif (\n\t\t!isContractRecord(value) ||\n\t\tvalue.version !== componentContractVersion ||\n\t\tvalue.id !== componentId\n\t)\n\t\treturn false;\n\tif (!hasCommonArtifactFields(value)) return false;\n\tif (value.target === 'client') return role === 'client' && isClientArtifact(value);\n\tif (value.target === 'server')\n\t\treturn (role === 'render' || role === 'executor') && isServerArtifact(value);\n\treturn false;\n}\n\nfunction hasCommonArtifactFields(value: Record<PropertyKey, unknown>): boolean {\n\treturn (\n\t\ttypeof value.instantiate === 'function' &&\n\t\ttypeof value.construct === 'function' &&\n\t\ttypeof value.abi === 'number' &&\n\t\tNumber.isSafeInteger(value.abi) &&\n\t\tvalue.abi >= 0 &&\n\t\t(value.abi & ~allCompiledComponentABI) === 0 &&\n\t\tisSafeContractStringList(value.state) &&\n\t\tisSafeContractStringList(value.props) &&\n\t\t(value.opaqueProps === undefined || isSafeContractPropertyKeyList(value.opaqueProps)) &&\n\t\t(value.identityProps === undefined || isSafeContractStringList(value.identityProps)) &&\n\t\t(value.serialization === undefined || isExactValueSerializationSchema(value.serialization)) &&\n\t\t(value.tasks === undefined || isSafeContractStringList(value.tasks)) &&\n\t\t(value.reactive === undefined ||\n\t\t\t(Array.isArray(value.reactive) && value.reactive.every(isReactiveAllocation))) &&\n\t\t(value.render === undefined || value.render === 'returned-function') &&\n\t\tArray.isArray(value.capabilities) &&\n\t\tvalue.capabilities.every(isCapability)\n\t);\n}\n\nfunction isClientArtifact(value: Record<PropertyKey, unknown>): boolean {\n\treturn (\n\t\thasOnlyContractKeys(value, [\n\t\t\t'version',\n\t\t\t'target',\n\t\t\t'id',\n\t\t\t'template',\n\t\t\t'construct',\n\t\t\t'attach',\n\t\t\t'receive',\n\t\t\t'dispose',\n\t\t\t'instantiate',\n\t\t\t'abi',\n\t\t\t'updates',\n\t\t\t'state',\n\t\t\t'props',\n\t\t\t'serialization',\n\t\t\t'opaqueProps',\n\t\t\t'identityProps',\n\t\t\t'tasks',\n\t\t\t'reactive',\n\t\t\t'render',\n\t\t\t'capabilities'\n\t\t]) &&\n\t\t(value.template === undefined || isContractRecord(value.template)) &&\n\t\ttypeof value.attach === 'function' &&\n\t\ttypeof value.receive === 'function' &&\n\t\ttypeof value.dispose === 'function' &&\n\t\t(value.updates === undefined || isComponentUpdates(value.updates))\n\t);\n}\n\nfunction isServerArtifact(value: Record<PropertyKey, unknown>): boolean {\n\treturn (\n\t\thasOnlyContractKeys(value, [\n\t\t\t'version',\n\t\t\t'target',\n\t\t\t'id',\n\t\t\t'issue',\n\t\t\t'write',\n\t\t\t'dispose',\n\t\t\t'execute',\n\t\t\t'instantiate',\n\t\t\t'construct',\n\t\t\t'abi',\n\t\t\t'state',\n\t\t\t'props',\n\t\t\t'serialization',\n\t\t\t'opaqueProps',\n\t\t\t'tasks',\n\t\t\t'reactive',\n\t\t\t'render',\n\t\t\t'capabilities',\n\t\t\t'execution',\n\t\t\t'selection'\n\t\t]) &&\n\t\ttypeof value.issue === 'function' &&\n\t\ttypeof value.write === 'function' &&\n\t\ttypeof value.dispose === 'function' &&\n\t\t(value.execute === undefined || typeof value.execute === 'function') &&\n\t\t(value.selection === undefined || isServerSelection(value.selection)) &&\n\t\tisServerExecution(value.execution, value.selection !== undefined) &&\n\t\thasConsistentStatelessServerExecution(value)\n\t);\n}\n\n/** Validates the finite registry resolver retained by a lazy server facade. */\nfunction isServerSelection(value: unknown): boolean {\n\treturn (\n\t\tisContractRecord(value) &&\n\t\thasOnlyContractKeys(value, ['key', 'resolve']) &&\n\t\tisContractString(value.key) &&\n\t\ttypeof value.resolve === 'function'\n\t);\n}\n\nfunction isCapability(value: unknown): boolean {\n\treturn (\n\t\ttypeof value === 'string' &&\n\t\t[\n\t\t\t'tasks',\n\t\t\t'continuations',\n\t\t\t'resumption',\n\t\t\t'inspection',\n\t\t\t'registry',\n\t\t\t'enhancements',\n\t\t\t'interactions',\n\t\t\t'compatibility',\n\t\t\t'dynamic-components',\n\t\t\t'collections',\n\t\t\t'contexts',\n\t\t\t'targets'\n\t\t].includes(value)\n\t);\n}\n\n/** Validates the closed server projection without accepting executable data from foreign input. */\nfunction isServerExecution(value: unknown, selection = false): boolean {\n\treturn isExactServerExecutionMetadata(value, selection);\n}\n\nfunction isComponentUpdates(value: unknown): boolean {\n\tif (\n\t\t!isContractRecord(value) ||\n\t\t!hasOnlyContractKeys(value, ['bindings', 'props', 'words', 'apply'])\n\t)\n\t\treturn false;\n\tconst words = value.words === undefined ? 2 : value.words;\n\treturn (\n\t\ttypeof words === 'number' &&\n\t\tNumber.isSafeInteger(words) &&\n\t\twords >= 2 &&\n\t\t(value.words === undefined || words >= 3) &&\n\t\tArray.isArray(value.bindings) &&\n\t\t(value.props === undefined ||\n\t\t\t(typeof value.props === 'number' &&\n\t\t\t\tNumber.isSafeInteger(value.props) &&\n\t\t\t\tvalue.props > 0 &&\n\t\t\t\tvalue.props <= value.bindings.length)) &&\n\t\tvalue.bindings.every(\n\t\t\t(binding) =>\n\t\t\t\tArray.isArray(binding) &&\n\t\t\t\tbinding.length === words + 1 &&\n\t\t\t\tNumber.isSafeInteger(binding[0]) &&\n\t\t\t\tbinding[0] >= 0 &&\n\t\t\t\tbinding\n\t\t\t\t\t.slice(1)\n\t\t\t\t\t.every((mask) => Number.isSafeInteger(mask) && mask >= 0 && mask <= 0xffff_ffff)\n\t\t) &&\n\t\ttypeof value.apply === 'function'\n\t);\n}\n\nfunction isImplementation(value: unknown): value is ExactComponentImplementationContract {\n\tif (!isContractRecord(value)) return false;\n\treturn (\n\t\thasOnlyContractKeys(value, ['id', 'name', 'role', 'implementation']) &&\n\t\tisContractString(value.id) &&\n\t\tisContractString(value.name) &&\n\t\t(value.role === 'root' || value.role === 'client-island' || value.role === 'server-part') &&\n\t\ttypeof value.implementation === 'function'\n\t);\n}\n\nfunction isContinuation(value: unknown): boolean {\n\tif (!isContractRecord(value)) return false;\n\treturn (\n\t\thasOnlyContractKeys(value, [\n\t\t\t'id',\n\t\t\t'kind',\n\t\t\t'componentId',\n\t\t\t'readiness',\n\t\t\t'concurrency',\n\t\t\t'progress',\n\t\t\t'dependencies',\n\t\t\t'stateReads',\n\t\t\t'stateWrites',\n\t\t\t'publicContexts',\n\t\t\t'serverContexts',\n\t\t\t'contextWrites',\n\t\t\t'serverContextWrites',\n\t\t\t'boundaries',\n\t\t\t'invocation'\n\t\t]) &&\n\t\tisContractString(value.id) &&\n\t\tvalue.kind === 'task' &&\n\t\tisContractString(value.componentId) &&\n\t\t(value.readiness === 'blocking' || value.readiness === 'nonblocking') &&\n\t\t(value.concurrency === undefined || isConcurrency(value.concurrency)) &&\n\t\t(value.progress === undefined ||\n\t\t\t(Array.isArray(value.progress) && value.progress.every(isExactProgressReceiver))) &&\n\t\tArray.isArray(value.dependencies) &&\n\t\tvalue.dependencies.every(isExactContinuationDependency) &&\n\t\tArray.isArray(value.stateReads) &&\n\t\tvalue.stateReads.every(isExactContinuationStatePath) &&\n\t\tArray.isArray(value.stateWrites) &&\n\t\tvalue.stateWrites.every(isExactContinuationStatePath) &&\n\t\tisSafeContractStringList(value.publicContexts) &&\n\t\tisSafeContractStringList(value.serverContexts) &&\n\t\tisSafeContractStringList(value.contextWrites) &&\n\t\t(value.serverContextWrites === undefined ||\n\t\t\tisSafeContractStringList(value.serverContextWrites)) &&\n\t\tisSafeContractStringList(value.boundaries) &&\n\t\t(value.invocation === undefined || isExactContinuationInvocation(value.invocation))\n\t);\n}\n\nfunction isExecutor(value: unknown): value is ExactComponentContinuationExecutorContract {\n\treturn (\n\t\tisContractRecord(value) &&\n\t\thasOnlyContractKeys(value, ['id', 'componentId', 'execute']) &&\n\t\tisContractString(value.id) &&\n\t\tisContractString(value.componentId) &&\n\t\ttypeof value.execute === 'function'\n\t);\n}\n\nfunction isResumption(value: unknown): value is ExactComponentResumptionContract {\n\treturn (\n\t\tisContractRecord(value) &&\n\t\thasOnlyContractKeys(value, [\n\t\t\t'componentId',\n\t\t\t'statePaths',\n\t\t\t'stateInputs',\n\t\t\t'stateDefaults',\n\t\t\t'continuations',\n\t\t\t'valueCaptures',\n\t\t\t'contexts',\n\t\t\t'boundaries'\n\t\t]) &&\n\t\tisContractString(value.componentId) &&\n\t\tisSafeContractStringList(value.statePaths) &&\n\t\tArray.isArray(value.stateInputs) &&\n\t\tvalue.stateInputs.every(\n\t\t\t(input) =>\n\t\t\t\tArray.isArray(input) &&\n\t\t\t\tinput.length === 2 &&\n\t\t\t\tisContractString(input[0]) &&\n\t\t\t\tisContractString(input[1])\n\t\t) &&\n\t\t(value.continuations === undefined || isSafeContractStringList(value.continuations)) &&\n\t\t(value.stateDefaults === undefined ||\n\t\t\t(Array.isArray(value.stateDefaults) &&\n\t\t\t\tvalue.stateDefaults.every(\n\t\t\t\t\t(input) =>\n\t\t\t\t\t\tArray.isArray(input) &&\n\t\t\t\t\t\tinput.length === 2 &&\n\t\t\t\t\t\tisContractString(input[0]) &&\n\t\t\t\t\t\t(input[1] === null ||\n\t\t\t\t\t\t\ttypeof input[1] === 'string' ||\n\t\t\t\t\t\t\ttypeof input[1] === 'boolean' ||\n\t\t\t\t\t\t\t(typeof input[1] === 'number' && Number.isFinite(input[1])))\n\t\t\t\t))) &&\n\t\tisSafeContractStringList(value.valueCaptures) &&\n\t\tisSafeContractStringList(value.contexts) &&\n\t\tisSafeContractStringList(value.boundaries)\n\t);\n}\n\nfunction isExecution(value: unknown): value is ExactComponentExecutionContract {\n\tif (!isContractRecord(value) || !Array.isArray(value.ports)) return false;\n\tconst ports = value.ports;\n\treturn (\n\t\thasOnlyContractKeys(value, ['version', 'ports', 'transitions', 'reactive']) &&\n\t\tvalue.version === 1 &&\n\t\tports.every(isExecutionPort) &&\n\t\tArray.isArray(value.transitions) &&\n\t\tvalue.transitions.every((transition) => isExecutionTransition(transition, ports.length)) &&\n\t\t(value.reactive === undefined ||\n\t\t\t(Array.isArray(value.reactive) && value.reactive.every(isReactiveAllocation)))\n\t);\n}\n\nfunction isExecutionPort(value: unknown): boolean {\n\treturn (\n\t\tArray.isArray(value) &&\n\t\tvalue.length === 3 &&\n\t\ttypeof value[0] === 'string' &&\n\t\t['state', 'props', 'context', 'derived', 'argument'].includes(value[0]) &&\n\t\tisContractString(value[1]) &&\n\t\ttypeof value[2] === 'string' &&\n\t\t['input', 'output', 'inout'].includes(value[2])\n\t);\n}\n\nfunction isExecutionTransition(value: unknown, portCount: number): boolean {\n\treturn (\n\t\tArray.isArray(value) &&\n\t\tvalue.length === 8 &&\n\t\tisContractString(value[0]) &&\n\t\tisContractString(value[1]) &&\n\t\t(value[2] === 'setup' || value[2] === 'interaction') &&\n\t\t(value[3] === 'client' || value[3] === 'server' || value[3] === 'isomorphic') &&\n\t\t(value[4] === 'blocking' || value[4] === 'nonblocking') &&\n\t\tisConcurrency(value[5]) &&\n\t\tisPortIndexList(value[6], portCount) &&\n\t\tisPortIndexList(value[7], portCount)\n\t);\n}\n\nfunction isConcurrency(value: unknown): boolean {\n\treturn value === 'parallel' || value === 'latest' || value === 'queue';\n}\n\nfunction isPortIndexList(value: unknown, portCount: number): boolean {\n\treturn (\n\t\tArray.isArray(value) &&\n\t\tvalue.every((index) => Number.isSafeInteger(index) && index >= 0 && index < portCount)\n\t);\n}\n"]}
@@ -60,6 +60,11 @@ export type ExactComponentContinuationContract = Readonly<{
60
60
  componentId: string;
61
61
  readiness: 'blocking' | 'nonblocking';
62
62
  concurrency?: 'parallel' | 'latest' | 'queue';
63
+ /** Compiler-owned progress receivers allowed for this operation. */
64
+ progress?: readonly Readonly<{
65
+ id: string;
66
+ label: string;
67
+ }>[];
63
68
  dependencies: readonly Readonly<{
64
69
  index?: number;
65
70
  source: 'state' | 'props' | 'derived' | 'argument';
@@ -1 +1 @@
1
- {"version":3,"file":"component-contracts.d.ts","sourceRoot":"","sources":["../src/component-contracts.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"component-contracts.d.ts","sourceRoot":"","sources":["../src/component-contracts.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"component-contracts.js","sourceRoot":"","sources":["../src/component-contracts.ts"],"names":[],"mappings":"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","sourcesContent":["import { componentContractVersion } from './component/contract-versions.js';\nimport type { ContextToken } from './component/contracts.js';\nimport type { TaskContext } from './tasks/contracts.js';\nimport { validatedComponentContract } from './component-contract/contract-cache.js';\nimport {\n\taddUniqueExecutor,\n\taddUniqueImplementation,\n\taddUniqueJson\n} from './component-contract/composition-support.js';\nimport type { ExactComponentExecutableArtifact } from './component-abi/artifact.js';\nimport type { ExactClientComponentArtifact } from './component-abi/client.js';\nimport type { ExactServerComponentArtifact } from './component-abi/server.js';\nimport type {\n\tAnyExactComponentCallable,\n\tExactComponentReactiveAllocation\n} from './component-abi/executable-fields.js';\n\nexport type { ExactComponentExecutableArtifact } from './component-abi/artifact.js';\nexport type { ExactClientComponentArtifact } from './component-abi/client.js';\nexport type {\n\tExactServerComponentArtifact,\n\tExactServerComponentExecution\n} from './component-abi/server.js';\nexport type { AnyExactComponentCallable } from './component-abi/executable-fields.js';\nexport {\n\tdecodeExactValueWithSchema,\n\ttype ExactValueSerializationSchema\n} from './component-abi/value-serialization.js';\n\n/** Global property under which compiled artifacts carry their target-local contract. */\nexport const exactComponentContract = Symbol.for('@exactjs/component-contract');\n\n/** Global marker distinguishing a native eXact component from compatibility-owned functions. */\nexport const exactComponentType = Symbol.for('@exactjs/component');\n\n/** One executable implementation owned by a compiled component artifact. */\nexport type ExactComponentImplementationContract = Readonly<{\n\tid: string;\n\tname: string;\n\trole: 'root' | 'client-island' | 'server-part';\n\timplementation: AnyExactComponentCallable;\n}>;\n\n/** Runtime-neutral state path used by a generated continuation contract. */\nexport type ExactContinuationStatePathContract = Readonly<{\n\tpath: string;\n\tkind: 'read' | 'write';\n\tconfidence: 'exact' | 'broad' | 'unknown';\n\toperation?: 'value' | 'map' | 'set';\n}>;\n\n/** One ordered Map or Set mutation returned by a server continuation. */\nexport type ExactCollectionMutation =\n\t| Readonly<{ path: string; operation: 'map-set'; key: unknown; value: unknown }>\n\t| Readonly<{ path: string; operation: 'map-delete'; key: unknown }>\n\t| Readonly<{ path: string; operation: 'map-clear' }>\n\t| Readonly<{ path: string; operation: 'set-add'; value: unknown }>\n\t| Readonly<{ path: string; operation: 'set-delete'; value: unknown }>\n\t| Readonly<{ path: string; operation: 'set-clear' }>;\n\n/** Private operation contract attached to the component artifact that owns it. */\nexport type ExactComponentContinuationContract = Readonly<{\n\tid: string;\n\tkind: 'task';\n\tcomponentId: string;\n\treadiness: 'blocking' | 'nonblocking';\n\tconcurrency?: 'parallel' | 'latest' | 'queue';\n\tdependencies: readonly Readonly<{\n\t\tindex?: number;\n\t\tsource: 'state' | 'props' | 'derived' | 'argument';\n\t\tpath?: string;\n\t}>[];\n\tinvocation?: Readonly<{\n\t\targuments: readonly Readonly<{ index?: number; source: 'argument'; path?: string }>[];\n\t\tconcurrency: 'parallel' | 'latest' | 'queue';\n\t}>;\n\tstateReads: readonly ExactContinuationStatePathContract[];\n\tstateWrites: readonly ExactContinuationStatePathContract[];\n\tpublicContexts: readonly string[];\n\tserverContexts: readonly string[];\n\tcontextWrites: readonly string[];\n\t/** Server-owned context mutations which never enter the client response. */\n\tserverContextWrites?: readonly string[];\n\tboundaries: readonly string[];\n}>;\n\n/** Serializable activation record accepted by one generated server continuation. */\nexport type ExactComponentContinuationActivation = Readonly<{\n\tstate: Record<string, unknown>;\n\tdependencies: readonly unknown[];\n\tpublicContext: Readonly<Record<string, unknown>>;\n\tgeneration?: number;\n}>;\n\n/** Trusted invocation resources available only while a server continuation executes. */\nexport type ExactComponentContinuationExecution = Readonly<{\n\ttask: TaskContext;\n\tsignal: AbortSignal;\n\tgetContext<T>(token: ContextToken<T>, authoredName?: string): T;\n\tsetContext<T>(token: ContextToken<T>, value: T, authoredName?: string): void;\n}>;\n\n/** State accumulated by a generated continuation before write-contract projection. */\nexport type ExactComponentContinuationExecutionResult = Readonly<{\n\tstate: Record<string, unknown>;\n\tcontexts?: Readonly<Record<string, unknown>>;\n\tvalue?: unknown;\n}>;\n\n/** Executable server half paired with one inert continuation descriptor. */\nexport type ExactComponentContinuationExecutorContract = Readonly<{\n\tid: string;\n\tcomponentId: string;\n\texecute(\n\t\tactivation: ExactComponentContinuationActivation,\n\t\texecution: ExactComponentContinuationExecution\n\t): ExactComponentContinuationExecutionResult | Promise<ExactComponentContinuationExecutionResult>;\n}>;\n\n/** One compiler-owned DOM boundary and its component ownership. */\nexport type ExactComponentBoundaryContract = Readonly<{\n\tid: string;\n\tcomponentId: string;\n\townerComponentId: string;\n\tkind: string;\n\tplanVersion?: number;\n\tbuildKey?: string;\n\tplanEdgeId?: string;\n\tparentPlanId?: string;\n\tfallbackPlanId?: string;\n\tpatchTargets?: readonly string[];\n\tdiscriminatorKind?: 'single' | 'branch' | 'keyed';\n\tdiscriminatorValues?: readonly string[];\n\tgeneration?: number;\n}>;\n\n/** Minimum browser-visible values required to resume one SSR component. */\nexport type ExactComponentResumptionContract = Readonly<{\n\tcomponentId: string;\n\tstatePaths: readonly string[];\n\t/** State path and root-prop path pairs that client setup can reconstruct. */\n\tstateInputs: readonly (readonly [statePath: string, propPath: string])[];\n\t/** Compact completion allowlist when a hydration artifact omits its execution catalog. */\n\tcontinuations?: readonly string[];\n\t/** Server-only primitive setup values that sparse capture may omit. */\n\tstateDefaults?: readonly (readonly [\n\t\tstatePath: string,\n\t\tvalue: string | number | boolean | null\n\t])[];\n\tvalueCaptures: readonly string[];\n\tcontexts: readonly string[];\n\tboundaries: readonly string[];\n}>;\n\n/** Compact target-local execution wiring emitted for one semantic component. */\nexport type ExactComponentExecutionContract = Readonly<{\n\tversion: 1;\n\t/** Port tuple: kind, authored path, direction. Its array position is its index. */\n\tports: readonly (readonly [\n\t\tkind: 'state' | 'props' | 'context' | 'derived' | 'argument',\n\t\tpath: string,\n\t\tdirection: 'input' | 'output' | 'inout'\n\t])[];\n\t/** Transition tuple: identity, task, activation, placement, readiness, concurrency, inputs, outputs. */\n\ttransitions: readonly (readonly [\n\t\tid: string,\n\t\ttaskId: string,\n\t\tactivation: 'setup' | 'interaction',\n\t\tplacement: 'client' | 'server' | 'isomorphic',\n\t\treadiness: 'blocking' | 'nonblocking',\n\t\tconcurrency: 'parallel' | 'latest' | 'queue',\n\t\tinputs: readonly number[],\n\t\toutputs: readonly number[]\n\t])[];\n\t/** Build-inspection inventory omitted from render-mode-projected runtime bundles. */\n\treactive?: readonly ExactComponentReactiveAllocation[];\n}>;\n\n/** One component-owned direct DOM update program shared by every instance of its definition. */\nexport type {\n\tExactCompiledComponentCapability,\n\tExactCompiledComponentInputUpdateContract,\n\tExactCompiledComponentUpdateContract,\n\tExactNarrowComponentUpdateContract,\n\tExactWideComponentUpdateContract\n} from './component-definition-contracts.js';\n\n/** Target-local executable contract attached to a public component root. */\nexport type ExactComponentContract = Readonly<{\n\t/** Target-discriminated component contract for this compiler/runtime generation. */\n\tversion: typeof componentContractVersion;\n\tplacement: 'client' | 'server' | 'isomorphic' | 'unknown';\n\trole: 'client' | 'render' | 'executor';\n\timplementations: readonly ExactComponentImplementationContract[];\n\tcontinuations: readonly ExactComponentContinuationContract[];\n\texecutors: readonly ExactComponentContinuationExecutorContract[];\n\tboundaries: readonly ExactComponentBoundaryContract[];\n\tresumption?: ExactComponentResumptionContract;\n\texecution?: ExactComponentExecutionContract;\n\tartifact: ExactComponentExecutableArtifact;\n}>;\n\n/** Build-projected runtime attachment after adapter-owned composition facts are erased. */\nexport type ExactPreparedComponentContract = Readonly<\n\tPick<ExactComponentContract, 'artifact'> & Partial<Omit<ExactComponentContract, 'artifact'>>\n>;\n\n/** Runtime attachment whose single executable artifact is guaranteed by the current target ABI. */\nexport type ExactExecutableComponentContract = ExactPreparedComponentContract;\n\n/** Prepared attachment whose target-local artifact is always executable. */\nexport type ExactPreparedExecutableComponentContract = ExactExecutableComponentContract;\n\n/** Current executable contract proven to carry the client target ABI. */\nexport type ExactClientExecutableComponentContract = ExactExecutableComponentContract &\n\tReadonly<{ artifact: ExactClientComponentArtifact }>;\n\n/** Current executable contract proven to carry the server target ABI. */\nexport type ExactServerExecutableComponentContract = ExactComponentContract &\n\tReadonly<{ artifact: ExactServerComponentArtifact }>;\n\n/** Composed target-local contracts indexed for runtime use. */\nexport type ExactComposedComponentContracts = Readonly<{\n\timplementations: Record<string, AnyExactComponentCallable>;\n\timplementationsById: Record<string, AnyExactComponentCallable>;\n\tcontinuations: Record<string, ExactComponentContinuationContract>;\n\texecutors: Record<string, ExactComponentContinuationExecutorContract>;\n\tboundaries: Record<string, ExactComponentBoundaryContract>;\n\tresumptions: Record<string, ExactComponentResumptionContract>;\n\texecutions: Record<string, ExactComponentExecutionContract>;\n\tartifacts: Record<string, ExactComponentExecutableArtifact>;\n}>;\n\ntype ContractComponent = AnyExactComponentCallable & {\n\t[exactComponentContract]?: ExactComponentContract;\n\t[exactComponentType]?: string;\n};\n\n/** Returns whether a callable carries a valid native eXact component identity. */\nexport function isExactComponent(component: unknown): component is AnyExactComponentCallable {\n\tif (typeof component !== 'function') return false;\n\tconst identity = (component as ContractComponent)[exactComponentType];\n\treturn typeof identity === 'string' && identity.length > 0;\n}\n\n/** Reads and validates compiler-attached metadata from one target-local component export. */\nexport function readExactComponentContract(\n\tcomponent: AnyExactComponentCallable\n): ExactComponentContract | undefined {\n\tconst contract = (component as ContractComponent)[exactComponentContract];\n\tif (!contract) return undefined;\n\tconst componentId = exactComponentIdentity(component);\n\treturn validatedComponentContract(component, contract, componentId);\n}\n\n/** Reads one current executable target artifact and rejects obsolete or identity-only values. */\nexport function readExactExecutableComponentContract(\n\tcomponent: AnyExactComponentCallable\n): ExactExecutableComponentContract {\n\tconst contract = readExactComponentContract(component);\n\tif (!contract?.artifact)\n\t\tthrow new TypeError('Native eXact component execution requires a compiled component artifact');\n\treturn contract;\n}\n\n/** Reads and validates one client-target executable component contract. */\nexport function readExactClientExecutableComponentContract(\n\tcomponent: AnyExactComponentCallable\n): ExactClientExecutableComponentContract {\n\tconst contract = readExactExecutableComponentContract(component);\n\tif (contract.artifact.target !== 'client')\n\t\tthrow new TypeError('Client execution requires a current client component artifact');\n\treturn contract as ExactClientExecutableComponentContract;\n}\n\n/** Reads and validates one server-target executable component contract. */\nexport function readExactServerExecutableComponentContract(\n\tcomponent: AnyExactComponentCallable\n): ExactServerExecutableComponentContract {\n\tconst contract = readExactExecutableComponentContract(component);\n\tif (contract.artifact.target !== 'server')\n\t\tthrow new TypeError('Server execution requires a current server component artifact');\n\treturn contract as ExactServerExecutableComponentContract;\n}\n\n/** Reads build-validated compiler metadata without repeating recursive runtime validation. */\nexport function readPreparedExactComponentContract(\n\tcomponent: AnyExactComponentCallable\n): ExactPreparedComponentContract | undefined {\n\tconst contract = (component as ContractComponent)[exactComponentContract];\n\tif (contract && contract.artifact?.version !== componentContractVersion)\n\t\tthrow new TypeError(\n\t\t\t`Unsupported eXact component artifact version ${contract.artifact?.version}; expected ${componentContractVersion}. Recompile with the matching eXact compiler.`\n\t\t);\n\treturn contract;\n}\n\n/** Reads a build-validated current executable target artifact. */\nexport function readPreparedExactExecutableComponentContract(\n\tcomponent: AnyExactComponentCallable\n): ExactPreparedExecutableComponentContract {\n\tconst contract = readPreparedExactComponentContract(component);\n\tif (!contract?.artifact)\n\t\tthrow new TypeError(\n\t\t\t`Native eXact component execution requires a compiled component artifact: ${component.name || '<anonymous>'}`\n\t\t);\n\treturn contract;\n}\n\n/** Reads one build-validated client-target executable component contract. */\nexport function readPreparedExactClientExecutableComponentContract(\n\tcomponent: AnyExactComponentCallable\n): ExactPreparedComponentContract & Readonly<{ artifact: ExactClientComponentArtifact }> {\n\tconst contract = readPreparedExactExecutableComponentContract(component);\n\tif (contract.artifact.target !== 'client')\n\t\tthrow new TypeError('Client execution requires a current client component artifact');\n\treturn contract as ExactPreparedComponentContract &\n\t\tReadonly<{ artifact: ExactClientComponentArtifact }>;\n}\n\n/** Reads one build-validated server-target executable component contract. */\nexport function readPreparedExactServerExecutableComponentContract(\n\tcomponent: AnyExactComponentCallable\n): ExactServerExecutableComponentContract {\n\tconst contract = readPreparedExactExecutableComponentContract(component);\n\tif (contract.artifact.target !== 'server')\n\t\tthrow new TypeError('Server execution requires a current server component artifact');\n\treturn contract as ExactServerExecutableComponentContract;\n}\n\n/** Returns the stable compiler identity used to pair SSR and client component boundaries. */\nexport function exactComponentIdentity(component: AnyExactComponentCallable): string {\n\tconst identity = (component as ContractComponent)[exactComponentType];\n\tif (typeof identity === 'string' && identity) return identity;\n\tthrow new Error('Native eXact components require compiler-owned identity');\n}\n\n/** Composes reachable imported component contracts into duplicate-checked runtime indexes. */\nexport function composeExactComponentContracts(\n\tcomponents: readonly AnyExactComponentCallable[],\n\trole: ExactComponentContract['role']\n): ExactComposedComponentContracts {\n\treturn composeComponentContracts(components, role, readExactComponentContract);\n}\n\n/** Composes build-validated compiler metadata without repeating recursive validation. */\nexport function composePreparedExactComponentContracts(\n\tcomponents: readonly AnyExactComponentCallable[],\n\trole: ExactComponentContract['role']\n): ExactComposedComponentContracts {\n\treturn composeComponentContracts(components, role, readPreparedExactComponentContract);\n}\n\nfunction composeComponentContracts(\n\tcomponents: readonly AnyExactComponentCallable[],\n\trole: ExactComponentContract['role'],\n\treadContract: (component: AnyExactComponentCallable) => ExactPreparedComponentContract | undefined\n): ExactComposedComponentContracts {\n\tconst implementations: Record<string, AnyExactComponentCallable> = {};\n\tconst implementationsById: Record<string, AnyExactComponentCallable> = {};\n\tconst continuations: Record<string, ExactComponentContinuationContract> = {};\n\tconst executors: Record<string, ExactComponentContinuationExecutorContract> = {};\n\tconst boundaries: Record<string, ExactComponentBoundaryContract> = {};\n\tconst resumptions: Record<string, ExactComponentResumptionContract> = {};\n\tconst executions: Record<string, ExactComponentExecutionContract> = {};\n\tconst artifacts: Record<string, ExactComponentExecutableArtifact> = {};\n\n\tfor (const component of components) {\n\t\tconst contract = readContract(component);\n\t\tif (!contract) continue;\n\t\tconst componentId = exactComponentIdentity(component);\n\t\tconst projectedRole =\n\t\t\tcontract.role ?? (contract.artifact.target === 'client' ? 'client' : 'render');\n\t\tif (projectedRole !== role)\n\t\t\tthrow new Error(\n\t\t\t\t`Expected eXact ${role} component contract for ${componentId}, received ${projectedRole}`\n\t\t\t);\n\t\tconst projectedImplementations = contract.implementations ?? [\n\t\t\t{\n\t\t\t\tid: componentId,\n\t\t\t\tname: component.name,\n\t\t\t\trole: 'root' as const,\n\t\t\t\timplementation: component\n\t\t\t}\n\t\t];\n\t\tfor (const implementation of projectedImplementations) {\n\t\t\taddUniqueImplementation(\n\t\t\t\timplementationsById,\n\t\t\t\timplementation.id,\n\t\t\t\timplementation.implementation\n\t\t\t);\n\t\t\taddUniqueImplementation(implementations, implementation.name, implementation.implementation);\n\t\t}\n\t\tfor (const continuation of contract.continuations ?? [])\n\t\t\taddUniqueJson(continuations, continuation.id, continuation, 'continuation');\n\t\tfor (const executor of contract.executors ?? []) addUniqueExecutor(executors, executor);\n\t\tfor (const boundary of contract.boundaries ?? [])\n\t\t\taddUniqueJson(boundaries, boundary.id, boundary, 'boundary');\n\t\tif (contract.resumption)\n\t\t\taddUniqueJson(\n\t\t\t\tresumptions,\n\t\t\t\tcontract.resumption.componentId,\n\t\t\t\tcontract.resumption,\n\t\t\t\t'resumption'\n\t\t\t);\n\t\tif (contract.execution)\n\t\t\taddUniqueJson(executions, componentId, contract.execution, 'execution plan');\n\t\tartifacts[componentId] = contract.artifact;\n\t}\n\n\treturn Object.freeze({\n\t\timplementations,\n\t\timplementationsById,\n\t\tcontinuations,\n\t\texecutors,\n\t\tboundaries,\n\t\tresumptions,\n\t\texecutions,\n\t\tartifacts\n\t});\n}\n"]}
1
+ {"version":3,"file":"component-contracts.js","sourceRoot":"","sources":["../src/component-contracts.ts"],"names":[],"mappings":"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","sourcesContent":["import { componentContractVersion } from './component/contract-versions.js';\nimport type { ContextToken } from './component/contracts.js';\nimport type { TaskContext } from './tasks/contracts.js';\nimport { validatedComponentContract } from './component-contract/contract-cache.js';\nimport {\n\taddUniqueExecutor,\n\taddUniqueImplementation,\n\taddUniqueJson\n} from './component-contract/composition-support.js';\nimport type { ExactComponentExecutableArtifact } from './component-abi/artifact.js';\nimport type { ExactClientComponentArtifact } from './component-abi/client.js';\nimport type { ExactServerComponentArtifact } from './component-abi/server.js';\nimport type {\n\tAnyExactComponentCallable,\n\tExactComponentReactiveAllocation\n} from './component-abi/executable-fields.js';\n\nexport type { ExactComponentExecutableArtifact } from './component-abi/artifact.js';\nexport type { ExactClientComponentArtifact } from './component-abi/client.js';\nexport type {\n\tExactServerComponentArtifact,\n\tExactServerComponentExecution\n} from './component-abi/server.js';\nexport type { AnyExactComponentCallable } from './component-abi/executable-fields.js';\nexport {\n\tdecodeExactValueWithSchema,\n\ttype ExactValueSerializationSchema\n} from './component-abi/value-serialization.js';\n\n/** Global property under which compiled artifacts carry their target-local contract. */\nexport const exactComponentContract = Symbol.for('@exactjs/component-contract');\n\n/** Global marker distinguishing a native eXact component from compatibility-owned functions. */\nexport const exactComponentType = Symbol.for('@exactjs/component');\n\n/** One executable implementation owned by a compiled component artifact. */\nexport type ExactComponentImplementationContract = Readonly<{\n\tid: string;\n\tname: string;\n\trole: 'root' | 'client-island' | 'server-part';\n\timplementation: AnyExactComponentCallable;\n}>;\n\n/** Runtime-neutral state path used by a generated continuation contract. */\nexport type ExactContinuationStatePathContract = Readonly<{\n\tpath: string;\n\tkind: 'read' | 'write';\n\tconfidence: 'exact' | 'broad' | 'unknown';\n\toperation?: 'value' | 'map' | 'set';\n}>;\n\n/** One ordered Map or Set mutation returned by a server continuation. */\nexport type ExactCollectionMutation =\n\t| Readonly<{ path: string; operation: 'map-set'; key: unknown; value: unknown }>\n\t| Readonly<{ path: string; operation: 'map-delete'; key: unknown }>\n\t| Readonly<{ path: string; operation: 'map-clear' }>\n\t| Readonly<{ path: string; operation: 'set-add'; value: unknown }>\n\t| Readonly<{ path: string; operation: 'set-delete'; value: unknown }>\n\t| Readonly<{ path: string; operation: 'set-clear' }>;\n\n/** Private operation contract attached to the component artifact that owns it. */\nexport type ExactComponentContinuationContract = Readonly<{\n\tid: string;\n\tkind: 'task';\n\tcomponentId: string;\n\treadiness: 'blocking' | 'nonblocking';\n\tconcurrency?: 'parallel' | 'latest' | 'queue';\n\t/** Compiler-owned progress receivers allowed for this operation. */\n\tprogress?: readonly Readonly<{ id: string; label: string }>[];\n\tdependencies: readonly Readonly<{\n\t\tindex?: number;\n\t\tsource: 'state' | 'props' | 'derived' | 'argument';\n\t\tpath?: string;\n\t}>[];\n\tinvocation?: Readonly<{\n\t\targuments: readonly Readonly<{ index?: number; source: 'argument'; path?: string }>[];\n\t\tconcurrency: 'parallel' | 'latest' | 'queue';\n\t}>;\n\tstateReads: readonly ExactContinuationStatePathContract[];\n\tstateWrites: readonly ExactContinuationStatePathContract[];\n\tpublicContexts: readonly string[];\n\tserverContexts: readonly string[];\n\tcontextWrites: readonly string[];\n\t/** Server-owned context mutations which never enter the client response. */\n\tserverContextWrites?: readonly string[];\n\tboundaries: readonly string[];\n}>;\n\n/** Serializable activation record accepted by one generated server continuation. */\nexport type ExactComponentContinuationActivation = Readonly<{\n\tstate: Record<string, unknown>;\n\tdependencies: readonly unknown[];\n\tpublicContext: Readonly<Record<string, unknown>>;\n\tgeneration?: number;\n}>;\n\n/** Trusted invocation resources available only while a server continuation executes. */\nexport type ExactComponentContinuationExecution = Readonly<{\n\ttask: TaskContext;\n\tsignal: AbortSignal;\n\tgetContext<T>(token: ContextToken<T>, authoredName?: string): T;\n\tsetContext<T>(token: ContextToken<T>, value: T, authoredName?: string): void;\n}>;\n\n/** State accumulated by a generated continuation before write-contract projection. */\nexport type ExactComponentContinuationExecutionResult = Readonly<{\n\tstate: Record<string, unknown>;\n\tcontexts?: Readonly<Record<string, unknown>>;\n\tvalue?: unknown;\n}>;\n\n/** Executable server half paired with one inert continuation descriptor. */\nexport type ExactComponentContinuationExecutorContract = Readonly<{\n\tid: string;\n\tcomponentId: string;\n\texecute(\n\t\tactivation: ExactComponentContinuationActivation,\n\t\texecution: ExactComponentContinuationExecution\n\t): ExactComponentContinuationExecutionResult | Promise<ExactComponentContinuationExecutionResult>;\n}>;\n\n/** One compiler-owned DOM boundary and its component ownership. */\nexport type ExactComponentBoundaryContract = Readonly<{\n\tid: string;\n\tcomponentId: string;\n\townerComponentId: string;\n\tkind: string;\n\tplanVersion?: number;\n\tbuildKey?: string;\n\tplanEdgeId?: string;\n\tparentPlanId?: string;\n\tfallbackPlanId?: string;\n\tpatchTargets?: readonly string[];\n\tdiscriminatorKind?: 'single' | 'branch' | 'keyed';\n\tdiscriminatorValues?: readonly string[];\n\tgeneration?: number;\n}>;\n\n/** Minimum browser-visible values required to resume one SSR component. */\nexport type ExactComponentResumptionContract = Readonly<{\n\tcomponentId: string;\n\tstatePaths: readonly string[];\n\t/** State path and root-prop path pairs that client setup can reconstruct. */\n\tstateInputs: readonly (readonly [statePath: string, propPath: string])[];\n\t/** Compact completion allowlist when a hydration artifact omits its execution catalog. */\n\tcontinuations?: readonly string[];\n\t/** Server-only primitive setup values that sparse capture may omit. */\n\tstateDefaults?: readonly (readonly [\n\t\tstatePath: string,\n\t\tvalue: string | number | boolean | null\n\t])[];\n\tvalueCaptures: readonly string[];\n\tcontexts: readonly string[];\n\tboundaries: readonly string[];\n}>;\n\n/** Compact target-local execution wiring emitted for one semantic component. */\nexport type ExactComponentExecutionContract = Readonly<{\n\tversion: 1;\n\t/** Port tuple: kind, authored path, direction. Its array position is its index. */\n\tports: readonly (readonly [\n\t\tkind: 'state' | 'props' | 'context' | 'derived' | 'argument',\n\t\tpath: string,\n\t\tdirection: 'input' | 'output' | 'inout'\n\t])[];\n\t/** Transition tuple: identity, task, activation, placement, readiness, concurrency, inputs, outputs. */\n\ttransitions: readonly (readonly [\n\t\tid: string,\n\t\ttaskId: string,\n\t\tactivation: 'setup' | 'interaction',\n\t\tplacement: 'client' | 'server' | 'isomorphic',\n\t\treadiness: 'blocking' | 'nonblocking',\n\t\tconcurrency: 'parallel' | 'latest' | 'queue',\n\t\tinputs: readonly number[],\n\t\toutputs: readonly number[]\n\t])[];\n\t/** Build-inspection inventory omitted from render-mode-projected runtime bundles. */\n\treactive?: readonly ExactComponentReactiveAllocation[];\n}>;\n\n/** One component-owned direct DOM update program shared by every instance of its definition. */\nexport type {\n\tExactCompiledComponentCapability,\n\tExactCompiledComponentInputUpdateContract,\n\tExactCompiledComponentUpdateContract,\n\tExactNarrowComponentUpdateContract,\n\tExactWideComponentUpdateContract\n} from './component-definition-contracts.js';\n\n/** Target-local executable contract attached to a public component root. */\nexport type ExactComponentContract = Readonly<{\n\t/** Target-discriminated component contract for this compiler/runtime generation. */\n\tversion: typeof componentContractVersion;\n\tplacement: 'client' | 'server' | 'isomorphic' | 'unknown';\n\trole: 'client' | 'render' | 'executor';\n\timplementations: readonly ExactComponentImplementationContract[];\n\tcontinuations: readonly ExactComponentContinuationContract[];\n\texecutors: readonly ExactComponentContinuationExecutorContract[];\n\tboundaries: readonly ExactComponentBoundaryContract[];\n\tresumption?: ExactComponentResumptionContract;\n\texecution?: ExactComponentExecutionContract;\n\tartifact: ExactComponentExecutableArtifact;\n}>;\n\n/** Build-projected runtime attachment after adapter-owned composition facts are erased. */\nexport type ExactPreparedComponentContract = Readonly<\n\tPick<ExactComponentContract, 'artifact'> & Partial<Omit<ExactComponentContract, 'artifact'>>\n>;\n\n/** Runtime attachment whose single executable artifact is guaranteed by the current target ABI. */\nexport type ExactExecutableComponentContract = ExactPreparedComponentContract;\n\n/** Prepared attachment whose target-local artifact is always executable. */\nexport type ExactPreparedExecutableComponentContract = ExactExecutableComponentContract;\n\n/** Current executable contract proven to carry the client target ABI. */\nexport type ExactClientExecutableComponentContract = ExactExecutableComponentContract &\n\tReadonly<{ artifact: ExactClientComponentArtifact }>;\n\n/** Current executable contract proven to carry the server target ABI. */\nexport type ExactServerExecutableComponentContract = ExactComponentContract &\n\tReadonly<{ artifact: ExactServerComponentArtifact }>;\n\n/** Composed target-local contracts indexed for runtime use. */\nexport type ExactComposedComponentContracts = Readonly<{\n\timplementations: Record<string, AnyExactComponentCallable>;\n\timplementationsById: Record<string, AnyExactComponentCallable>;\n\tcontinuations: Record<string, ExactComponentContinuationContract>;\n\texecutors: Record<string, ExactComponentContinuationExecutorContract>;\n\tboundaries: Record<string, ExactComponentBoundaryContract>;\n\tresumptions: Record<string, ExactComponentResumptionContract>;\n\texecutions: Record<string, ExactComponentExecutionContract>;\n\tartifacts: Record<string, ExactComponentExecutableArtifact>;\n}>;\n\ntype ContractComponent = AnyExactComponentCallable & {\n\t[exactComponentContract]?: ExactComponentContract;\n\t[exactComponentType]?: string;\n};\n\n/** Returns whether a callable carries a valid native eXact component identity. */\nexport function isExactComponent(component: unknown): component is AnyExactComponentCallable {\n\tif (typeof component !== 'function') return false;\n\tconst identity = (component as ContractComponent)[exactComponentType];\n\treturn typeof identity === 'string' && identity.length > 0;\n}\n\n/** Reads and validates compiler-attached metadata from one target-local component export. */\nexport function readExactComponentContract(\n\tcomponent: AnyExactComponentCallable\n): ExactComponentContract | undefined {\n\tconst contract = (component as ContractComponent)[exactComponentContract];\n\tif (!contract) return undefined;\n\tconst componentId = exactComponentIdentity(component);\n\treturn validatedComponentContract(component, contract, componentId);\n}\n\n/** Reads one current executable target artifact and rejects obsolete or identity-only values. */\nexport function readExactExecutableComponentContract(\n\tcomponent: AnyExactComponentCallable\n): ExactExecutableComponentContract {\n\tconst contract = readExactComponentContract(component);\n\tif (!contract?.artifact)\n\t\tthrow new TypeError('Native eXact component execution requires a compiled component artifact');\n\treturn contract;\n}\n\n/** Reads and validates one client-target executable component contract. */\nexport function readExactClientExecutableComponentContract(\n\tcomponent: AnyExactComponentCallable\n): ExactClientExecutableComponentContract {\n\tconst contract = readExactExecutableComponentContract(component);\n\tif (contract.artifact.target !== 'client')\n\t\tthrow new TypeError('Client execution requires a current client component artifact');\n\treturn contract as ExactClientExecutableComponentContract;\n}\n\n/** Reads and validates one server-target executable component contract. */\nexport function readExactServerExecutableComponentContract(\n\tcomponent: AnyExactComponentCallable\n): ExactServerExecutableComponentContract {\n\tconst contract = readExactExecutableComponentContract(component);\n\tif (contract.artifact.target !== 'server')\n\t\tthrow new TypeError('Server execution requires a current server component artifact');\n\treturn contract as ExactServerExecutableComponentContract;\n}\n\n/** Reads build-validated compiler metadata without repeating recursive runtime validation. */\nexport function readPreparedExactComponentContract(\n\tcomponent: AnyExactComponentCallable\n): ExactPreparedComponentContract | undefined {\n\tconst contract = (component as ContractComponent)[exactComponentContract];\n\tif (contract && contract.artifact?.version !== componentContractVersion)\n\t\tthrow new TypeError(\n\t\t\t`Unsupported eXact component artifact version ${contract.artifact?.version}; expected ${componentContractVersion}. Recompile with the matching eXact compiler.`\n\t\t);\n\treturn contract;\n}\n\n/** Reads a build-validated current executable target artifact. */\nexport function readPreparedExactExecutableComponentContract(\n\tcomponent: AnyExactComponentCallable\n): ExactPreparedExecutableComponentContract {\n\tconst contract = readPreparedExactComponentContract(component);\n\tif (!contract?.artifact)\n\t\tthrow new TypeError(\n\t\t\t`Native eXact component execution requires a compiled component artifact: ${component.name || '<anonymous>'}`\n\t\t);\n\treturn contract;\n}\n\n/** Reads one build-validated client-target executable component contract. */\nexport function readPreparedExactClientExecutableComponentContract(\n\tcomponent: AnyExactComponentCallable\n): ExactPreparedComponentContract & Readonly<{ artifact: ExactClientComponentArtifact }> {\n\tconst contract = readPreparedExactExecutableComponentContract(component);\n\tif (contract.artifact.target !== 'client')\n\t\tthrow new TypeError('Client execution requires a current client component artifact');\n\treturn contract as ExactPreparedComponentContract &\n\t\tReadonly<{ artifact: ExactClientComponentArtifact }>;\n}\n\n/** Reads one build-validated server-target executable component contract. */\nexport function readPreparedExactServerExecutableComponentContract(\n\tcomponent: AnyExactComponentCallable\n): ExactServerExecutableComponentContract {\n\tconst contract = readPreparedExactExecutableComponentContract(component);\n\tif (contract.artifact.target !== 'server')\n\t\tthrow new TypeError('Server execution requires a current server component artifact');\n\treturn contract as ExactServerExecutableComponentContract;\n}\n\n/** Returns the stable compiler identity used to pair SSR and client component boundaries. */\nexport function exactComponentIdentity(component: AnyExactComponentCallable): string {\n\tconst identity = (component as ContractComponent)[exactComponentType];\n\tif (typeof identity === 'string' && identity) return identity;\n\tthrow new Error('Native eXact components require compiler-owned identity');\n}\n\n/** Composes reachable imported component contracts into duplicate-checked runtime indexes. */\nexport function composeExactComponentContracts(\n\tcomponents: readonly AnyExactComponentCallable[],\n\trole: ExactComponentContract['role']\n): ExactComposedComponentContracts {\n\treturn composeComponentContracts(components, role, readExactComponentContract);\n}\n\n/** Composes build-validated compiler metadata without repeating recursive validation. */\nexport function composePreparedExactComponentContracts(\n\tcomponents: readonly AnyExactComponentCallable[],\n\trole: ExactComponentContract['role']\n): ExactComposedComponentContracts {\n\treturn composeComponentContracts(components, role, readPreparedExactComponentContract);\n}\n\nfunction composeComponentContracts(\n\tcomponents: readonly AnyExactComponentCallable[],\n\trole: ExactComponentContract['role'],\n\treadContract: (component: AnyExactComponentCallable) => ExactPreparedComponentContract | undefined\n): ExactComposedComponentContracts {\n\tconst implementations: Record<string, AnyExactComponentCallable> = {};\n\tconst implementationsById: Record<string, AnyExactComponentCallable> = {};\n\tconst continuations: Record<string, ExactComponentContinuationContract> = {};\n\tconst executors: Record<string, ExactComponentContinuationExecutorContract> = {};\n\tconst boundaries: Record<string, ExactComponentBoundaryContract> = {};\n\tconst resumptions: Record<string, ExactComponentResumptionContract> = {};\n\tconst executions: Record<string, ExactComponentExecutionContract> = {};\n\tconst artifacts: Record<string, ExactComponentExecutableArtifact> = {};\n\n\tfor (const component of components) {\n\t\tconst contract = readContract(component);\n\t\tif (!contract) continue;\n\t\tconst componentId = exactComponentIdentity(component);\n\t\tconst projectedRole =\n\t\t\tcontract.role ?? (contract.artifact.target === 'client' ? 'client' : 'render');\n\t\tif (projectedRole !== role)\n\t\t\tthrow new Error(\n\t\t\t\t`Expected eXact ${role} component contract for ${componentId}, received ${projectedRole}`\n\t\t\t);\n\t\tconst projectedImplementations = contract.implementations ?? [\n\t\t\t{\n\t\t\t\tid: componentId,\n\t\t\t\tname: component.name,\n\t\t\t\trole: 'root' as const,\n\t\t\t\timplementation: component\n\t\t\t}\n\t\t];\n\t\tfor (const implementation of projectedImplementations) {\n\t\t\taddUniqueImplementation(\n\t\t\t\timplementationsById,\n\t\t\t\timplementation.id,\n\t\t\t\timplementation.implementation\n\t\t\t);\n\t\t\taddUniqueImplementation(implementations, implementation.name, implementation.implementation);\n\t\t}\n\t\tfor (const continuation of contract.continuations ?? [])\n\t\t\taddUniqueJson(continuations, continuation.id, continuation, 'continuation');\n\t\tfor (const executor of contract.executors ?? []) addUniqueExecutor(executors, executor);\n\t\tfor (const boundary of contract.boundaries ?? [])\n\t\t\taddUniqueJson(boundaries, boundary.id, boundary, 'boundary');\n\t\tif (contract.resumption)\n\t\t\taddUniqueJson(\n\t\t\t\tresumptions,\n\t\t\t\tcontract.resumption.componentId,\n\t\t\t\tcontract.resumption,\n\t\t\t\t'resumption'\n\t\t\t);\n\t\tif (contract.execution)\n\t\t\taddUniqueJson(executions, componentId, contract.execution, 'execution plan');\n\t\tartifacts[componentId] = contract.artifact;\n\t}\n\n\treturn Object.freeze({\n\t\timplementations,\n\t\timplementationsById,\n\t\tcontinuations,\n\t\texecutors,\n\t\tboundaries,\n\t\tresumptions,\n\t\texecutions,\n\t\tartifacts\n\t});\n}\n"]}
@@ -1,2 +1,2 @@
1
- export { isExactContinuationDependency, isExactContinuationInvocation, isExactContinuationStatePath } from '../component-contract/continuation-validation.js';
1
+ export { isExactProgressReceiver, isExactContinuationDependency, isExactContinuationInvocation, isExactContinuationStatePath } from '../component-contract/continuation-validation.js';
2
2
  //# sourceMappingURL=component-contract-validation.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"component-contract-validation.d.ts","sourceRoot":"","sources":["../../src/framework/component-contract-validation.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,6BAA6B,EAC7B,6BAA6B,EAC7B,4BAA4B,EAC5B,MAAM,kDAAkD,CAAC"}
1
+ {"version":3,"file":"component-contract-validation.d.ts","sourceRoot":"","sources":["../../src/framework/component-contract-validation.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,uBAAuB,EACvB,6BAA6B,EAC7B,6BAA6B,EAC7B,4BAA4B,EAC5B,MAAM,kDAAkD,CAAC"}
@@ -1,2 +1,2 @@
1
- export { isExactContinuationDependency, isExactContinuationInvocation, isExactContinuationStatePath } from '../component-contract/continuation-validation.js';
1
+ export { isExactProgressReceiver, isExactContinuationDependency, isExactContinuationInvocation, isExactContinuationStatePath } from '../component-contract/continuation-validation.js';
2
2
  //# sourceMappingURL=component-contract-validation.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"component-contract-validation.js","sourceRoot":"","sources":["../../src/framework/component-contract-validation.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,6BAA6B,EAC7B,6BAA6B,EAC7B,4BAA4B,EAC5B,MAAM,kDAAkD,CAAC","sourcesContent":["export {\n\tisExactContinuationDependency,\n\tisExactContinuationInvocation,\n\tisExactContinuationStatePath\n} from '../component-contract/continuation-validation.js';\n"]}
1
+ {"version":3,"file":"component-contract-validation.js","sourceRoot":"","sources":["../../src/framework/component-contract-validation.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,uBAAuB,EACvB,6BAA6B,EAC7B,6BAA6B,EAC7B,4BAA4B,EAC5B,MAAM,kDAAkD,CAAC","sourcesContent":["export {\n\tisExactProgressReceiver,\n\tisExactContinuationDependency,\n\tisExactContinuationInvocation,\n\tisExactContinuationStatePath\n} from '../component-contract/continuation-validation.js';\n"]}
@@ -83,6 +83,15 @@ export type ExactBatchResult = {
83
83
  };
84
84
  /** Reports one event in an incremental operation response. */
85
85
  export type ExactStreamEvent = {
86
+ event: 'progress';
87
+ version: 1;
88
+ index: number;
89
+ type: ExactInvocationKind;
90
+ id: string;
91
+ opId?: string;
92
+ receiver: string;
93
+ snapshot: unknown;
94
+ } | {
86
95
  event: 'start';
87
96
  version: 1;
88
97
  operations: number;
@@ -1 +1 @@
1
- {"version":3,"file":"operation-protocol.d.ts","sourceRoot":"","sources":["../../src/framework/operation-protocol.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACzE,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,4BAA4B,CAAC;AAE9E,4EAA4E;AAC5E,MAAM,MAAM,mBAAmB,GAAG,QAAQ,GAAG,SAAS,CAAC;AAEvD,gEAAgE;AAChE,MAAM,MAAM,2BAA2B,GACpC,QAAQ,CAAC;IAAE,IAAI,EAAE,QAAQ,CAAA;CAAE,CAAC,GAC5B,QAAQ,CAAC;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,GAC5C,QAAQ,CAAC;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC;AAE/D,4EAA4E;AAC5E,MAAM,MAAM,uBAAuB,GAAG,QAAQ,CAAC;IAC9C,OAAO,EAAE,CAAC,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,gBAAgB,EAAE,MAAM,CAAC;IACzB,aAAa,EAAE,2BAA2B,CAAC;IAC3C,UAAU,EAAE,MAAM,CAAC;CACnB,CAAC,CAAC;AAEH,8EAA8E;AAC9E,MAAM,MAAM,mBAAmB,GAAG;IACjC,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACrC,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACpC,CAAC;AAEF,kFAAkF;AAClF,MAAM,MAAM,sBAAsB,GAAG;IACpC,IAAI,EAAE,mBAAmB,CAAC;IAC1B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,CAAC,EAAE,uBAAuB,CAAC;IACpC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACxC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACvC,CAAC;AAEF,mEAAmE;AACnE,MAAM,MAAM,iBAAiB,GAAG;IAC/B,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,CAAC,EAAE,CAAC,CAAC;IACZ,UAAU,EAAE,sBAAsB,EAAE,CAAC;CACrC,CAAC;AAEF,6DAA6D;AAC7D,MAAM,MAAM,qBAAqB,GAAG;IACnC,OAAO,CAAC,EAAE,UAAU,EAAE,CAAC;IACvB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,SAAS,CAAC,EAAE,uBAAuB,EAAE,CAAC;IACtC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnC,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,iDAAiD;AACjD,MAAM,MAAM,qBAAqB,GAAG;IACnC,EAAE,EAAE,IAAI,CAAC;IACT,IAAI,EAAE,mBAAmB,CAAC;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,CAAC,EAAE,MAAM,CAAC;CACd,GAAG,qBAAqB,CAAC;AAE1B,yDAAyD;AACzD,MAAM,MAAM,mBAAmB,GAAG;IACjC,EAAE,EAAE,KAAK,CAAC;IACV,IAAI,EAAE,mBAAmB,CAAC;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,aAAa,GAAG,WAAW,GAAG,WAAW,GAAG,gBAAgB,GAAG,mBAAmB,CAAC;CAC1F,CAAC;AAEF,6CAA6C;AAC7C,MAAM,MAAM,oBAAoB,GAAG,qBAAqB,GAAG,mBAAmB,CAAC;AAE/E,4CAA4C;AAC5C,MAAM,MAAM,gBAAgB,GAAG;IAC9B,EAAE,EAAE,IAAI,CAAC;IACT,OAAO,EAAE,CAAC,CAAC;IACX,OAAO,EAAE,oBAAoB,EAAE,CAAC;CAChC,CAAC;AAEF,8DAA8D;AAC9D,MAAM,MAAM,gBAAgB,GACzB;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,CAAC,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,GAClD;IACA,KAAK,EAAE,OAAO,CAAC;IACf,OAAO,EAAE,CAAC,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,mBAAmB,CAAC;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,UAAU,CAAC;CACjB,GACD;IACA,KAAK,EAAE,OAAO,CAAC;IACf,OAAO,EAAE,CAAC,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,mBAAmB,CAAC;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,OAAO,CAAC;CACd,GACD;IACA,KAAK,EAAE,WAAW,CAAC;IACnB,OAAO,EAAE,CAAC,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,mBAAmB,CAAC;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,uBAAuB,EAAE,CAAC;CACpC,GACD;IACA,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,CAAC,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,mBAAmB,CAAC;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;CACZ,GACD;IAAE,KAAK,EAAE,QAAQ,CAAC;IAAC,OAAO,EAAE,CAAC,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,oBAAoB,CAAA;CAAE,GAC5E;IAAE,KAAK,EAAE,cAAc,CAAC;IAAC,OAAO,EAAE,CAAC,CAAC;IAAC,YAAY,EAAE,SAAS,2BAA2B,EAAE,CAAA;CAAE,GAC3F;IAAE,KAAK,EAAE,UAAU,CAAC;IAAC,OAAO,EAAE,CAAC,CAAA;CAAE,CAAC;AAErC,oDAAoD;AACpD,MAAM,MAAM,UAAU,GACnB;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAC3C;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,OAAO,CAAA;CAAE,GAC1D;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,GACjE;IACA,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,EAAE,EAAE,QAAQ,GAAG,MAAM,GAAG,QAAQ,CAAC;IACjC,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;CACb,GACD;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,OAAO,CAAA;CAAE,GAC7C;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AAejD;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAK5D;AAED,YAAY,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC"}
1
+ {"version":3,"file":"operation-protocol.d.ts","sourceRoot":"","sources":["../../src/framework/operation-protocol.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"operation-protocol.js","sourceRoot":"","sources":["../../src/framework/operation-protocol.ts"],"names":[],"mappings":"AAoJA,MAAM,2BAA2B,GAAG,IAAI,GAAG,CAAC;IAC3C,WAAW;IACX,aAAa;IACb,yBAAyB;IACzB,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,QAAQ;IACR,aAAa;CACb,CAAC,CAAC;AAEH;;;;GAIG;AACH,MAAM,UAAU,sBAAsB,CAAC,IAAY;IAClD,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;IACtC,OAAO,CACN,CAAC,CAAC,UAAU,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,2BAA2B,CAAC,GAAG,CAAC,UAAU,CAAC,CAC5F,CAAC;AACH,CAAC","sourcesContent":["import type { ExactCollectionMutation } from '../component-contracts.js';\nimport type { ExactRuntimeInspectionEvent } from '@exactjs/devtools-protocol';\n\n/** Identifies the operation represented by a framework protocol request. */\nexport type ExactInvocationKind = 'invoke' | 'refresh';\n\n/** Selects one concrete compiler-planned partition instance. */\nexport type ExactPartitionDiscriminator =\n\t| Readonly<{ kind: 'single' }>\n\t| Readonly<{ kind: 'branch'; branch: string }>\n\t| Readonly<{ kind: 'keyed'; list: string; keyToken: string }>;\n\n/** Carries generation-fenced authority for a compiler-planned partition. */\nexport type ExactPartitionAuthority = Readonly<{\n\tversion: 1;\n\tbuildKey: string;\n\texecutionRoot: string;\n\tplanEdgeId: string;\n\townerComponentId: string;\n\tdiscriminator: ExactPartitionDiscriminator;\n\tgeneration: number;\n}>;\n\n/** Maps compiler-owned operation identities to configured endpoint routes. */\nexport type ExactEndpointRoutes = {\n\tinvocations?: Record<string, string>;\n\tboundaries?: Record<string, string>;\n};\n\n/** Describes one invocation or refresh request on the framework wire protocol. */\nexport type ExactInvocationRequest = {\n\ttype: ExactInvocationKind;\n\troot?: string;\n\tid: string;\n\tpartition?: ExactPartitionAuthority;\n\topId?: string;\n\tdependsOn?: string[];\n\tpayload?: unknown;\n\tstate?: unknown;\n\tpublicContext?: Record<string, unknown>;\n\tboundaryHtml?: string;\n\tboundaryHtmls?: Record<string, string>;\n};\n\n/** Groups invocation requests for bounded concurrent execution. */\nexport type ExactBatchRequest = {\n\ttype: 'batch';\n\tversion?: 1;\n\toperations: ExactInvocationRequest[];\n};\n\n/** Describes the transport-safe result of one invocation. */\nexport type ExactInvocationResult = {\n\tpatches?: ExactPatch[];\n\tstate?: unknown;\n\tmutations?: ExactCollectionMutation[];\n\tcontexts?: Record<string, unknown>;\n\tvalue?: unknown;\n\thtml?: string;\n};\n\n/** Describes a successful operation response. */\nexport type ExactOperationSuccess = {\n\tok: true;\n\ttype: ExactInvocationKind;\n\tid: string;\n\topId?: string;\n} & ExactInvocationResult;\n\n/** Describes a rejected or failed operation response. */\nexport type ExactOperationError = {\n\tok: false;\n\ttype: ExactInvocationKind;\n\tid: string;\n\topId?: string;\n\tstatus: number;\n\terror: 'bad_request' | 'not_found' | 'forbidden' | 'internal_error' | 'dependency_failed';\n};\n\n/** Describes the result of one operation. */\nexport type ExactOperationResult = ExactOperationSuccess | ExactOperationError;\n\n/** Describes a completed batch response. */\nexport type ExactBatchResult = {\n\tok: true;\n\tversion: 1;\n\tresults: ExactOperationResult[];\n};\n\n/** Reports one event in an incremental operation response. */\nexport type ExactStreamEvent =\n\t| { event: 'start'; version: 1; operations: number }\n\t| {\n\t\t\tevent: 'patch';\n\t\t\tversion: 1;\n\t\t\tindex: number;\n\t\t\ttype: ExactInvocationKind;\n\t\t\tid: string;\n\t\t\topId?: string;\n\t\t\tpatch: ExactPatch;\n\t }\n\t| {\n\t\t\tevent: 'state';\n\t\t\tversion: 1;\n\t\t\tindex: number;\n\t\t\ttype: ExactInvocationKind;\n\t\t\tid: string;\n\t\t\topId?: string;\n\t\t\tvalue: unknown;\n\t }\n\t| {\n\t\t\tevent: 'mutations';\n\t\t\tversion: 1;\n\t\t\tindex: number;\n\t\t\ttype: ExactInvocationKind;\n\t\t\tid: string;\n\t\t\topId?: string;\n\t\t\tmutations: ExactCollectionMutation[];\n\t }\n\t| {\n\t\t\tevent: 'html';\n\t\t\tversion: 1;\n\t\t\tindex: number;\n\t\t\ttype: ExactInvocationKind;\n\t\t\tid: string;\n\t\t\topId?: string;\n\t\t\thtml: string;\n\t }\n\t| { event: 'result'; version: 1; index: number; result: ExactOperationResult }\n\t| { event: 'observations'; version: 1; observations: readonly ExactRuntimeInspectionEvent[] }\n\t| { event: 'complete'; version: 1 };\n\n/** Describes one client-applied operation patch. */\nexport type ExactPatch =\n\t| { type: 'text'; id: string; value: string }\n\t| { type: 'prop'; id: string; name: string; value: unknown }\n\t| { type: 'style'; id: string; name: string; value: string | null }\n\t| {\n\t\t\ttype: 'list';\n\t\t\tid: string;\n\t\t\top: 'insert' | 'move' | 'remove';\n\t\t\tkey: string;\n\t\t\tbefore?: string;\n\t\t\thtml?: string;\n\t }\n\t| { type: 'state'; id: string; value: unknown }\n\t| { type: 'replace'; id: string; html: string };\n\nconst forbiddenDomPatchProperties = new Set([\n\t'__proto__',\n\t'constructor',\n\t'dangerouslysetinnerhtml',\n\t'innerhtml',\n\t'innertext',\n\t'outerhtml',\n\t'outertext',\n\t'prototype',\n\t'srcdoc',\n\t'textcontent'\n]);\n\n/**\n * Reports whether a server property patch may cross the operation boundary.\n * Structural HTML/text setters, inline event handlers, iframe documents, and\n * JavaScript prototype controls require dedicated framework-owned operations.\n */\nexport function isSafeDomPatchProperty(name: string): boolean {\n\tconst normalized = name.toLowerCase();\n\treturn (\n\t\t!!normalized && !normalized.startsWith('on') && !forbiddenDomPatchProperties.has(normalized)\n\t);\n}\n\nexport type { ExactCollectionMutation } from '../component-contracts.js';\n"]}
1
+ {"version":3,"file":"operation-protocol.js","sourceRoot":"","sources":["../../src/framework/operation-protocol.ts"],"names":[],"mappings":"AA8JA,MAAM,2BAA2B,GAAG,IAAI,GAAG,CAAC;IAC3C,WAAW;IACX,aAAa;IACb,yBAAyB;IACzB,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,QAAQ;IACR,aAAa;CACb,CAAC,CAAC;AAEH;;;;GAIG;AACH,MAAM,UAAU,sBAAsB,CAAC,IAAY;IAClD,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;IACtC,OAAO,CACN,CAAC,CAAC,UAAU,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,2BAA2B,CAAC,GAAG,CAAC,UAAU,CAAC,CAC5F,CAAC;AACH,CAAC","sourcesContent":["import type { ExactCollectionMutation } from '../component-contracts.js';\nimport type { ExactRuntimeInspectionEvent } from '@exactjs/devtools-protocol';\n\n/** Identifies the operation represented by a framework protocol request. */\nexport type ExactInvocationKind = 'invoke' | 'refresh';\n\n/** Selects one concrete compiler-planned partition instance. */\nexport type ExactPartitionDiscriminator =\n\t| Readonly<{ kind: 'single' }>\n\t| Readonly<{ kind: 'branch'; branch: string }>\n\t| Readonly<{ kind: 'keyed'; list: string; keyToken: string }>;\n\n/** Carries generation-fenced authority for a compiler-planned partition. */\nexport type ExactPartitionAuthority = Readonly<{\n\tversion: 1;\n\tbuildKey: string;\n\texecutionRoot: string;\n\tplanEdgeId: string;\n\townerComponentId: string;\n\tdiscriminator: ExactPartitionDiscriminator;\n\tgeneration: number;\n}>;\n\n/** Maps compiler-owned operation identities to configured endpoint routes. */\nexport type ExactEndpointRoutes = {\n\tinvocations?: Record<string, string>;\n\tboundaries?: Record<string, string>;\n};\n\n/** Describes one invocation or refresh request on the framework wire protocol. */\nexport type ExactInvocationRequest = {\n\ttype: ExactInvocationKind;\n\troot?: string;\n\tid: string;\n\tpartition?: ExactPartitionAuthority;\n\topId?: string;\n\tdependsOn?: string[];\n\tpayload?: unknown;\n\tstate?: unknown;\n\tpublicContext?: Record<string, unknown>;\n\tboundaryHtml?: string;\n\tboundaryHtmls?: Record<string, string>;\n};\n\n/** Groups invocation requests for bounded concurrent execution. */\nexport type ExactBatchRequest = {\n\ttype: 'batch';\n\tversion?: 1;\n\toperations: ExactInvocationRequest[];\n};\n\n/** Describes the transport-safe result of one invocation. */\nexport type ExactInvocationResult = {\n\tpatches?: ExactPatch[];\n\tstate?: unknown;\n\tmutations?: ExactCollectionMutation[];\n\tcontexts?: Record<string, unknown>;\n\tvalue?: unknown;\n\thtml?: string;\n};\n\n/** Describes a successful operation response. */\nexport type ExactOperationSuccess = {\n\tok: true;\n\ttype: ExactInvocationKind;\n\tid: string;\n\topId?: string;\n} & ExactInvocationResult;\n\n/** Describes a rejected or failed operation response. */\nexport type ExactOperationError = {\n\tok: false;\n\ttype: ExactInvocationKind;\n\tid: string;\n\topId?: string;\n\tstatus: number;\n\terror: 'bad_request' | 'not_found' | 'forbidden' | 'internal_error' | 'dependency_failed';\n};\n\n/** Describes the result of one operation. */\nexport type ExactOperationResult = ExactOperationSuccess | ExactOperationError;\n\n/** Describes a completed batch response. */\nexport type ExactBatchResult = {\n\tok: true;\n\tversion: 1;\n\tresults: ExactOperationResult[];\n};\n\n/** Reports one event in an incremental operation response. */\nexport type ExactStreamEvent =\n\t| {\n\t\t\tevent: 'progress';\n\t\t\tversion: 1;\n\t\t\tindex: number;\n\t\t\ttype: ExactInvocationKind;\n\t\t\tid: string;\n\t\t\topId?: string;\n\t\t\treceiver: string;\n\t\t\tsnapshot: unknown;\n\t }\n\t| { event: 'start'; version: 1; operations: number }\n\t| {\n\t\t\tevent: 'patch';\n\t\t\tversion: 1;\n\t\t\tindex: number;\n\t\t\ttype: ExactInvocationKind;\n\t\t\tid: string;\n\t\t\topId?: string;\n\t\t\tpatch: ExactPatch;\n\t }\n\t| {\n\t\t\tevent: 'state';\n\t\t\tversion: 1;\n\t\t\tindex: number;\n\t\t\ttype: ExactInvocationKind;\n\t\t\tid: string;\n\t\t\topId?: string;\n\t\t\tvalue: unknown;\n\t }\n\t| {\n\t\t\tevent: 'mutations';\n\t\t\tversion: 1;\n\t\t\tindex: number;\n\t\t\ttype: ExactInvocationKind;\n\t\t\tid: string;\n\t\t\topId?: string;\n\t\t\tmutations: ExactCollectionMutation[];\n\t }\n\t| {\n\t\t\tevent: 'html';\n\t\t\tversion: 1;\n\t\t\tindex: number;\n\t\t\ttype: ExactInvocationKind;\n\t\t\tid: string;\n\t\t\topId?: string;\n\t\t\thtml: string;\n\t }\n\t| { event: 'result'; version: 1; index: number; result: ExactOperationResult }\n\t| { event: 'observations'; version: 1; observations: readonly ExactRuntimeInspectionEvent[] }\n\t| { event: 'complete'; version: 1 };\n\n/** Describes one client-applied operation patch. */\nexport type ExactPatch =\n\t| { type: 'text'; id: string; value: string }\n\t| { type: 'prop'; id: string; name: string; value: unknown }\n\t| { type: 'style'; id: string; name: string; value: string | null }\n\t| {\n\t\t\ttype: 'list';\n\t\t\tid: string;\n\t\t\top: 'insert' | 'move' | 'remove';\n\t\t\tkey: string;\n\t\t\tbefore?: string;\n\t\t\thtml?: string;\n\t }\n\t| { type: 'state'; id: string; value: unknown }\n\t| { type: 'replace'; id: string; html: string };\n\nconst forbiddenDomPatchProperties = new Set([\n\t'__proto__',\n\t'constructor',\n\t'dangerouslysetinnerhtml',\n\t'innerhtml',\n\t'innertext',\n\t'outerhtml',\n\t'outertext',\n\t'prototype',\n\t'srcdoc',\n\t'textcontent'\n]);\n\n/**\n * Reports whether a server property patch may cross the operation boundary.\n * Structural HTML/text setters, inline event handlers, iframe documents, and\n * JavaScript prototype controls require dedicated framework-owned operations.\n */\nexport function isSafeDomPatchProperty(name: string): boolean {\n\tconst normalized = name.toLowerCase();\n\treturn (\n\t\t!!normalized && !normalized.startsWith('on') && !forbiddenDomPatchProperties.has(normalized)\n\t);\n}\n\nexport type { ExactCollectionMutation } from '../component-contracts.js';\n"]}
@@ -10,4 +10,5 @@ export { bindTaskForHost, defineTask, invokeTask } from '../tasks/runtime.js';
10
10
  export { activateServerComponentTaskTreeForHost } from '../tasks/server-component-task-tree.js';
11
11
  export { mutateTaskCollection, ownTaskResource, stageTaskMutation, taskAnimationFrame, taskAwait, taskFetch, taskIdleCallback, taskInterval, taskObserver, taskTimeout } from '../tasks/resources.js';
12
12
  export { combineTaskSignal, withAbortSignal, withTaskSignal } from '../tasks/signals.js';
13
+ export { createTaskProgressReporter, registerTaskProgressReceiver } from '../tasks/progress-bindings.js';
13
14
  //# sourceMappingURL=server-task-helpers.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"server-task-helpers.d.ts","sourceRoot":"","sources":["../../src/framework/server-task-helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qCAAqC,EAAE,MAAM,oCAAoC,CAAC;AAC3F,OAAO,EAAE,6BAA6B,EAAE,MAAM,wBAAwB,CAAC;AACvE,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,EAAE,0BAA0B,EAAE,MAAM,oCAAoC,CAAC;AAChF,OAAO,EACN,mCAAmC,EACnC,mCAAmC,EACnC,MAAM,+BAA+B,CAAC;AACvC,OAAO,EACN,uCAAuC,EACvC,mCAAmC,EACnC,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,6BAA6B,EAAE,MAAM,oCAAoC,CAAC;AACnF,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAC9E,OAAO,EAAE,sCAAsC,EAAE,MAAM,wCAAwC,CAAC;AAChG,OAAO,EACN,oBAAoB,EACpB,eAAe,EACf,iBAAiB,EACjB,kBAAkB,EAClB,SAAS,EACT,SAAS,EACT,gBAAgB,EAChB,YAAY,EACZ,YAAY,EACZ,WAAW,EACX,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC"}
1
+ {"version":3,"file":"server-task-helpers.d.ts","sourceRoot":"","sources":["../../src/framework/server-task-helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qCAAqC,EAAE,MAAM,oCAAoC,CAAC;AAC3F,OAAO,EAAE,6BAA6B,EAAE,MAAM,wBAAwB,CAAC;AACvE,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,EAAE,0BAA0B,EAAE,MAAM,oCAAoC,CAAC;AAChF,OAAO,EACN,mCAAmC,EACnC,mCAAmC,EACnC,MAAM,+BAA+B,CAAC;AACvC,OAAO,EACN,uCAAuC,EACvC,mCAAmC,EACnC,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,6BAA6B,EAAE,MAAM,oCAAoC,CAAC;AACnF,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAC9E,OAAO,EAAE,sCAAsC,EAAE,MAAM,wCAAwC,CAAC;AAChG,OAAO,EACN,oBAAoB,EACpB,eAAe,EACf,iBAAiB,EACjB,kBAAkB,EAClB,SAAS,EACT,SAAS,EACT,gBAAgB,EAChB,YAAY,EACZ,YAAY,EACZ,WAAW,EACX,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAEzF,OAAO,EACN,0BAA0B,EAC1B,4BAA4B,EAC5B,MAAM,+BAA+B,CAAC"}
@@ -10,4 +10,5 @@ export { bindTaskForHost, defineTask, invokeTask } from '../tasks/runtime.js';
10
10
  export { activateServerComponentTaskTreeForHost } from '../tasks/server-component-task-tree.js';
11
11
  export { mutateTaskCollection, ownTaskResource, stageTaskMutation, taskAnimationFrame, taskAwait, taskFetch, taskIdleCallback, taskInterval, taskObserver, taskTimeout } from '../tasks/resources.js';
12
12
  export { combineTaskSignal, withAbortSignal, withTaskSignal } from '../tasks/signals.js';
13
+ export { createTaskProgressReporter, registerTaskProgressReceiver } from '../tasks/progress-bindings.js';
13
14
  //# sourceMappingURL=server-task-helpers.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"server-task-helpers.js","sourceRoot":"","sources":["../../src/framework/server-task-helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qCAAqC,EAAE,MAAM,oCAAoC,CAAC;AAC3F,OAAO,EAAE,6BAA6B,EAAE,MAAM,wBAAwB,CAAC;AACvE,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,EAAE,0BAA0B,EAAE,MAAM,oCAAoC,CAAC;AAChF,OAAO,EACN,mCAAmC,EACnC,mCAAmC,EACnC,MAAM,+BAA+B,CAAC;AACvC,OAAO,EACN,uCAAuC,EACvC,mCAAmC,EACnC,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,6BAA6B,EAAE,MAAM,oCAAoC,CAAC;AACnF,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAC9E,OAAO,EAAE,sCAAsC,EAAE,MAAM,wCAAwC,CAAC;AAChG,OAAO,EACN,oBAAoB,EACpB,eAAe,EACf,iBAAiB,EACjB,kBAAkB,EAClB,SAAS,EACT,SAAS,EACT,gBAAgB,EAChB,YAAY,EACZ,YAAY,EACZ,WAAW,EACX,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC","sourcesContent":["export { registerComponentContinuationContexts } from '../component/context-resumption.js';\nexport { dispatchComponentContinuation } from '../component/domain.js';\nexport { activateTaskForHost } from '../tasks/activation.js';\nexport { activateComputationForHost } from '../tasks/computation-activation.js';\nexport {\n\tcreateIndexedContinuationDependency,\n\tcreateTrackedContinuationDependency\n} from '../tasks/dependency-source.js';\nexport {\n\tactivateCompiledClientLatestTaskForHost,\n\tbindCompiledClientLatestTaskForHost\n} from '../tasks/compiled-latest.js';\nexport { markComponentContinuationTask } from '../tasks/component-continuation.js';\nexport { taskMutation } from '../tasks/frame-runtime.js';\nexport { bindTaskForHost, defineTask, invokeTask } from '../tasks/runtime.js';\nexport { activateServerComponentTaskTreeForHost } from '../tasks/server-component-task-tree.js';\nexport {\n\tmutateTaskCollection,\n\townTaskResource,\n\tstageTaskMutation,\n\ttaskAnimationFrame,\n\ttaskAwait,\n\ttaskFetch,\n\ttaskIdleCallback,\n\ttaskInterval,\n\ttaskObserver,\n\ttaskTimeout\n} from '../tasks/resources.js';\nexport { combineTaskSignal, withAbortSignal, withTaskSignal } from '../tasks/signals.js';\n"]}
1
+ {"version":3,"file":"server-task-helpers.js","sourceRoot":"","sources":["../../src/framework/server-task-helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qCAAqC,EAAE,MAAM,oCAAoC,CAAC;AAC3F,OAAO,EAAE,6BAA6B,EAAE,MAAM,wBAAwB,CAAC;AACvE,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,EAAE,0BAA0B,EAAE,MAAM,oCAAoC,CAAC;AAChF,OAAO,EACN,mCAAmC,EACnC,mCAAmC,EACnC,MAAM,+BAA+B,CAAC;AACvC,OAAO,EACN,uCAAuC,EACvC,mCAAmC,EACnC,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,6BAA6B,EAAE,MAAM,oCAAoC,CAAC;AACnF,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAC9E,OAAO,EAAE,sCAAsC,EAAE,MAAM,wCAAwC,CAAC;AAChG,OAAO,EACN,oBAAoB,EACpB,eAAe,EACf,iBAAiB,EACjB,kBAAkB,EAClB,SAAS,EACT,SAAS,EACT,gBAAgB,EAChB,YAAY,EACZ,YAAY,EACZ,WAAW,EACX,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAEzF,OAAO,EACN,0BAA0B,EAC1B,4BAA4B,EAC5B,MAAM,+BAA+B,CAAC","sourcesContent":["export { registerComponentContinuationContexts } from '../component/context-resumption.js';\nexport { dispatchComponentContinuation } from '../component/domain.js';\nexport { activateTaskForHost } from '../tasks/activation.js';\nexport { activateComputationForHost } from '../tasks/computation-activation.js';\nexport {\n\tcreateIndexedContinuationDependency,\n\tcreateTrackedContinuationDependency\n} from '../tasks/dependency-source.js';\nexport {\n\tactivateCompiledClientLatestTaskForHost,\n\tbindCompiledClientLatestTaskForHost\n} from '../tasks/compiled-latest.js';\nexport { markComponentContinuationTask } from '../tasks/component-continuation.js';\nexport { taskMutation } from '../tasks/frame-runtime.js';\nexport { bindTaskForHost, defineTask, invokeTask } from '../tasks/runtime.js';\nexport { activateServerComponentTaskTreeForHost } from '../tasks/server-component-task-tree.js';\nexport {\n\tmutateTaskCollection,\n\townTaskResource,\n\tstageTaskMutation,\n\ttaskAnimationFrame,\n\ttaskAwait,\n\ttaskFetch,\n\ttaskIdleCallback,\n\ttaskInterval,\n\ttaskObserver,\n\ttaskTimeout\n} from '../tasks/resources.js';\nexport { combineTaskSignal, withAbortSignal, withTaskSignal } from '../tasks/signals.js';\n\nexport {\n\tcreateTaskProgressReporter,\n\tregisterTaskProgressReceiver\n} from '../tasks/progress-bindings.js';\n"]}
@@ -69,5 +69,6 @@ export declare function runTaskFrame<T>(options: RunTaskFrameOptions, hooks: Run
69
69
  export declare function reserveTaskFrame(options: RunTaskFrameOptions): TaskFrameReservation;
70
70
  /** Restores a captured frame for one synchronous callback segment. */
71
71
  export declare function runWithTaskFrame<T>(frame: TaskFrameToken, work: () => T): T;
72
- export {};
72
+ export { attachTaskProgressReporter, taskProgressReceiverForHost } from '../tasks/progress-bindings.js';
73
+ export type { TaskProgressReceiver } from '../tasks/progress-receiver.js';
73
74
  //# sourceMappingURL=task-frames.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"task-frames.d.ts","sourceRoot":"","sources":["../../src/framework/task-frames.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"task-frames.d.ts","sourceRoot":"","sources":["../../src/framework/task-frames.ts"],"names":[],"mappings":"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"}
@@ -156,4 +156,5 @@ function rejectedTaskFrameExecution(error) {
156
156
  export function runWithTaskFrame(frame, work) {
157
157
  return withTaskFrameRecord(frame, work);
158
158
  }
159
+ export { attachTaskProgressReporter, taskProgressReceiverForHost } from '../tasks/progress-bindings.js';
159
160
  //# sourceMappingURL=task-frames.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"task-frames.js","sourceRoot":"","sources":["../../src/framework/task-frames.ts"],"names":[],"mappings":"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","sourcesContent":["import type { TaskContext } from '../tasks/contracts.js';\nimport { TaskCancellation } from '../tasks/cancellation.js';\nimport {\n\tattachTaskFrameSettlement,\n\tcurrentTaskFrameRecord,\n\texecuteTaskFrame,\n\twithTaskFrameRecord,\n\ttype TaskFrameRecord\n} from '../tasks/frame-runtime.js';\n\ndeclare const taskFrameTokenBrand: unique symbol;\n\n/** Opaque authority identifying a live task frame. */\nexport interface TaskFrameToken {\n\treadonly [taskFrameTokenBrand]: true;\n}\n\n/** Framework-owned child frame policy. */\nexport interface RunTaskFrameOptions {\n\treadonly parent?: TaskFrameToken;\n\treadonly kind: string;\n\treadonly label?: string;\n\treadonly generation?: number;\n\treadonly detached?: boolean;\n\treadonly priority?: 'immediate' | 'normal' | 'deferred';\n\treadonly readiness?: 'blocking' | 'nonblocking';\n}\n\n/** Terminal structural outcome reported to framework coordinators. */\nexport type TaskFrameOutcome<T> =\n\t| { readonly status: 'fulfilled'; readonly value: T }\n\t| { readonly status: 'rejected'; readonly error: unknown }\n\t| { readonly status: 'cancelled'; readonly reason: unknown };\n\n/** Foreground readiness outcome reported exactly once. */\nexport type TaskForegroundOutcome =\n\t| { readonly status: 'ready' }\n\t| { readonly status: 'rejected'; readonly error: unknown }\n\t| { readonly status: 'cancelled'; readonly reason: unknown };\n\n/**\n * Structurally settled framework work with cooperative cancellation.\n *\n * Cancelling aborts the frame and every attached descendant. The promise does\n * not settle until foreground work, descendants, and cleanup have responded.\n */\nexport interface TaskFrameExecution<T> extends Promise<T> {\n\t/** Signal inherited by the frame's context and attached descendants. */\n\treadonly signal: AbortSignal;\n\n\t/** Requests cooperative cancellation while preserving structural settlement. */\n\tcancel(reason?: unknown): void;\n}\n\n/** Work and settlement hooks for a framework-created task frame. */\nexport interface RunTaskFrameHooks<T> {\n\twork(context: TaskContext): T | Promise<T>;\n\tafterForeground?(outcome: TaskForegroundOutcome): void | Promise<void>;\n\tafterChildren?(outcome: TaskFrameOutcome<T>): void | Promise<void>;\n}\n\n/** Atomically reserved frame that must be run or released exactly once. */\nexport interface TaskFrameReservation extends Disposable {\n\trun<T>(work: (context: TaskContext) => T | Promise<T>): TaskFrameExecution<T>;\n\tcancel(reason?: unknown): void;\n}\n\n/** Captures the synchronously active opaque task frame. */\nexport function captureTaskFrame(): TaskFrameToken | undefined {\n\treturn currentTaskFrameRecord() as TaskFrameToken | undefined;\n}\n\n/**\n * Runs framework work in a structurally attached, cooperatively cancelable\n * task frame.\n */\nexport function runTaskFrame<T>(\n\toptions: RunTaskFrameOptions,\n\thooks: RunTaskFrameHooks<T>\n): TaskFrameExecution<T> {\n\treturn createTaskFrameExecution(options, hooks, false);\n}\n\n/** Creates the cancelable public execution around one internal frame. */\nfunction createTaskFrameExecution<T>(\n\toptions: RunTaskFrameOptions,\n\thooks: RunTaskFrameHooks<T>,\n\tparentReserved: boolean\n): TaskFrameExecution<T> {\n\tconst controller = new AbortController();\n\tconst execution = runTaskFrameInternal(options, hooks, parentReserved, controller);\n\tconst parent = options.detached\n\t\t? undefined\n\t\t: ((options.parent as TaskFrameRecord | undefined) ?? currentTaskFrameRecord());\n\tif (parent && !parentReserved && parent.producerOpen && !parent.settled)\n\t\tattachTaskFrameSettlement(parent, execution);\n\treturn exposeTaskFrameExecution(execution, controller);\n}\n\n/** Adds framework cancellation authority to a native settlement promise. */\nfunction exposeTaskFrameExecution<T>(\n\texecution: Promise<T>,\n\tcontroller: AbortController\n): TaskFrameExecution<T> {\n\tlet settled = false;\n\tvoid execution.then(\n\t\t() => {\n\t\t\tsettled = true;\n\t\t},\n\t\t() => {\n\t\t\tsettled = true;\n\t\t}\n\t);\n\treturn Object.defineProperties(execution, {\n\t\tsignal: {\n\t\t\tconfigurable: false,\n\t\t\tenumerable: true,\n\t\t\tvalue: controller.signal,\n\t\t\twritable: false\n\t\t},\n\t\tcancel: {\n\t\t\tconfigurable: false,\n\t\t\tenumerable: false,\n\t\t\tvalue(reason?: unknown) {\n\t\t\t\tif (!settled) controller.abort(reason);\n\t\t\t},\n\t\t\twritable: false\n\t\t}\n\t}) as TaskFrameExecution<T>;\n}\n\nasync function runTaskFrameInternal<T>(\n\toptions: RunTaskFrameOptions,\n\thooks: RunTaskFrameHooks<T>,\n\tparentReserved: boolean,\n\tcontroller: AbortController\n): Promise<T> {\n\tlet foregroundReported = false;\n\tlet childrenReported = false;\n\ttry {\n\t\tconst value = await executeTaskFrame(\n\t\t\t{\n\t\t\t\tparent: options.parent as TaskFrameRecord | undefined,\n\t\t\t\tparentReserved,\n\t\t\t\tcontroller,\n\t\t\t\tgeneration: options.generation,\n\t\t\t\tdetached: options.detached,\n\t\t\t\tkind: options.kind,\n\t\t\t\tlabel: options.label,\n\t\t\t\tpriority: options.priority,\n\t\t\t\treadiness: options.readiness\n\t\t\t},\n\t\t\tasync (context) => {\n\t\t\t\ttry {\n\t\t\t\t\tconst result = await hooks.work(context);\n\t\t\t\t\tforegroundReported = true;\n\t\t\t\t\tawait hooks.afterForeground?.({ status: 'ready' });\n\t\t\t\t\treturn result;\n\t\t\t\t} catch (error) {\n\t\t\t\t\tif (!foregroundReported) {\n\t\t\t\t\t\tforegroundReported = true;\n\t\t\t\t\t\tawait hooks.afterForeground?.(foregroundOutcome(controller.signal, error));\n\t\t\t\t\t}\n\t\t\t\t\tthrow error;\n\t\t\t\t}\n\t\t\t}\n\t\t);\n\t\tchildrenReported = true;\n\t\tawait hooks.afterChildren?.({ status: 'fulfilled', value });\n\t\treturn value;\n\t} catch (error) {\n\t\tif (!foregroundReported) {\n\t\t\tforegroundReported = true;\n\t\t\tawait hooks.afterForeground?.(foregroundOutcome(controller.signal, error));\n\t\t}\n\t\tif (!childrenReported) {\n\t\t\tchildrenReported = true;\n\t\t\tawait hooks.afterChildren?.(structuralOutcome(controller.signal, error));\n\t\t}\n\t\tthrow error;\n\t}\n}\n\n/** Classifies foreground failure using the frame's cancellation authority. */\nfunction foregroundOutcome(signal: AbortSignal, error: unknown): TaskForegroundOutcome {\n\treturn signal.aborted || error instanceof TaskCancellation\n\t\t? { status: 'cancelled', reason: cancellationReason(signal, error) }\n\t\t: { status: 'rejected', error };\n}\n\n/** Classifies structural failure using the frame's cancellation authority. */\nfunction structuralOutcome<T>(signal: AbortSignal, error: unknown): TaskFrameOutcome<T> {\n\treturn error instanceof TaskCancellation\n\t\t? { status: 'cancelled', reason: cancellationReason(signal, error) }\n\t\t: { status: 'rejected', error };\n}\n\n/** Preserves the originating abort reason after runtime cancellation wrapping. */\nfunction cancellationReason(signal: AbortSignal, error: unknown): unknown {\n\tif (error instanceof TaskCancellation) return error.reason;\n\treturn signal.aborted ? signal.reason : error;\n}\n\n/** Reserves an attached child before handing work to an external scheduler. */\nexport function reserveTaskFrame(options: RunTaskFrameOptions): TaskFrameReservation {\n\tconst parent = (options.parent as TaskFrameRecord | undefined) ?? currentTaskFrameRecord();\n\tif (!parent) throw new Error('A task frame reservation requires an active or explicit parent');\n\tlet used = false;\n\tlet release!: () => void;\n\tconst placeholder = new Promise<void>((resolve) => {\n\t\trelease = resolve;\n\t});\n\tattachTaskFrameSettlement(parent, placeholder);\n\treturn {\n\t\trun<T>(work: (context: TaskContext) => T | Promise<T>): TaskFrameExecution<T> {\n\t\t\tif (used)\n\t\t\t\treturn rejectedTaskFrameExecution(new Error('Task frame reservation was already released'));\n\t\t\tused = true;\n\t\t\tconst execution = createTaskFrameExecution(\n\t\t\t\t{ ...options, parent: parent as unknown as TaskFrameToken },\n\t\t\t\t{ work },\n\t\t\t\ttrue\n\t\t\t);\n\t\t\t// Keep the atomic placeholder until the public execution, including\n\t\t\t// its structural finalizer, has settled.\n\t\t\tvoid execution.then(release, release);\n\t\t\treturn execution;\n\t\t},\n\t\tcancel() {\n\t\t\tif (used) return;\n\t\t\tused = true;\n\t\t\trelease();\n\t\t},\n\t\t[Symbol.dispose]() {\n\t\t\tif (used) return;\n\t\t\tused = true;\n\t\t\trelease();\n\t\t}\n\t};\n}\n\n/** Creates a settled execution for invalid reservation reuse. */\nfunction rejectedTaskFrameExecution<T>(error: unknown): TaskFrameExecution<T> {\n\tconst controller = new AbortController();\n\treturn exposeTaskFrameExecution(Promise.reject<T>(error), controller);\n}\n\n/** Restores a captured frame for one synchronous callback segment. */\nexport function runWithTaskFrame<T>(frame: TaskFrameToken, work: () => T): T {\n\treturn withTaskFrameRecord(frame as unknown as TaskFrameRecord, work);\n}\n"]}
1
+ {"version":3,"file":"task-frames.js","sourceRoot":"","sources":["../../src/framework/task-frames.ts"],"names":[],"mappings":"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","sourcesContent":["import type { TaskContext } from '../tasks/contracts.js';\nimport { TaskCancellation } from '../tasks/cancellation.js';\nimport {\n\tattachTaskFrameSettlement,\n\tcurrentTaskFrameRecord,\n\texecuteTaskFrame,\n\twithTaskFrameRecord,\n\ttype TaskFrameRecord\n} from '../tasks/frame-runtime.js';\n\ndeclare const taskFrameTokenBrand: unique symbol;\n\n/** Opaque authority identifying a live task frame. */\nexport interface TaskFrameToken {\n\treadonly [taskFrameTokenBrand]: true;\n}\n\n/** Framework-owned child frame policy. */\nexport interface RunTaskFrameOptions {\n\treadonly parent?: TaskFrameToken;\n\treadonly kind: string;\n\treadonly label?: string;\n\treadonly generation?: number;\n\treadonly detached?: boolean;\n\treadonly priority?: 'immediate' | 'normal' | 'deferred';\n\treadonly readiness?: 'blocking' | 'nonblocking';\n}\n\n/** Terminal structural outcome reported to framework coordinators. */\nexport type TaskFrameOutcome<T> =\n\t| { readonly status: 'fulfilled'; readonly value: T }\n\t| { readonly status: 'rejected'; readonly error: unknown }\n\t| { readonly status: 'cancelled'; readonly reason: unknown };\n\n/** Foreground readiness outcome reported exactly once. */\nexport type TaskForegroundOutcome =\n\t| { readonly status: 'ready' }\n\t| { readonly status: 'rejected'; readonly error: unknown }\n\t| { readonly status: 'cancelled'; readonly reason: unknown };\n\n/**\n * Structurally settled framework work with cooperative cancellation.\n *\n * Cancelling aborts the frame and every attached descendant. The promise does\n * not settle until foreground work, descendants, and cleanup have responded.\n */\nexport interface TaskFrameExecution<T> extends Promise<T> {\n\t/** Signal inherited by the frame's context and attached descendants. */\n\treadonly signal: AbortSignal;\n\n\t/** Requests cooperative cancellation while preserving structural settlement. */\n\tcancel(reason?: unknown): void;\n}\n\n/** Work and settlement hooks for a framework-created task frame. */\nexport interface RunTaskFrameHooks<T> {\n\twork(context: TaskContext): T | Promise<T>;\n\tafterForeground?(outcome: TaskForegroundOutcome): void | Promise<void>;\n\tafterChildren?(outcome: TaskFrameOutcome<T>): void | Promise<void>;\n}\n\n/** Atomically reserved frame that must be run or released exactly once. */\nexport interface TaskFrameReservation extends Disposable {\n\trun<T>(work: (context: TaskContext) => T | Promise<T>): TaskFrameExecution<T>;\n\tcancel(reason?: unknown): void;\n}\n\n/** Captures the synchronously active opaque task frame. */\nexport function captureTaskFrame(): TaskFrameToken | undefined {\n\treturn currentTaskFrameRecord() as TaskFrameToken | undefined;\n}\n\n/**\n * Runs framework work in a structurally attached, cooperatively cancelable\n * task frame.\n */\nexport function runTaskFrame<T>(\n\toptions: RunTaskFrameOptions,\n\thooks: RunTaskFrameHooks<T>\n): TaskFrameExecution<T> {\n\treturn createTaskFrameExecution(options, hooks, false);\n}\n\n/** Creates the cancelable public execution around one internal frame. */\nfunction createTaskFrameExecution<T>(\n\toptions: RunTaskFrameOptions,\n\thooks: RunTaskFrameHooks<T>,\n\tparentReserved: boolean\n): TaskFrameExecution<T> {\n\tconst controller = new AbortController();\n\tconst execution = runTaskFrameInternal(options, hooks, parentReserved, controller);\n\tconst parent = options.detached\n\t\t? undefined\n\t\t: ((options.parent as TaskFrameRecord | undefined) ?? currentTaskFrameRecord());\n\tif (parent && !parentReserved && parent.producerOpen && !parent.settled)\n\t\tattachTaskFrameSettlement(parent, execution);\n\treturn exposeTaskFrameExecution(execution, controller);\n}\n\n/** Adds framework cancellation authority to a native settlement promise. */\nfunction exposeTaskFrameExecution<T>(\n\texecution: Promise<T>,\n\tcontroller: AbortController\n): TaskFrameExecution<T> {\n\tlet settled = false;\n\tvoid execution.then(\n\t\t() => {\n\t\t\tsettled = true;\n\t\t},\n\t\t() => {\n\t\t\tsettled = true;\n\t\t}\n\t);\n\treturn Object.defineProperties(execution, {\n\t\tsignal: {\n\t\t\tconfigurable: false,\n\t\t\tenumerable: true,\n\t\t\tvalue: controller.signal,\n\t\t\twritable: false\n\t\t},\n\t\tcancel: {\n\t\t\tconfigurable: false,\n\t\t\tenumerable: false,\n\t\t\tvalue(reason?: unknown) {\n\t\t\t\tif (!settled) controller.abort(reason);\n\t\t\t},\n\t\t\twritable: false\n\t\t}\n\t}) as TaskFrameExecution<T>;\n}\n\nasync function runTaskFrameInternal<T>(\n\toptions: RunTaskFrameOptions,\n\thooks: RunTaskFrameHooks<T>,\n\tparentReserved: boolean,\n\tcontroller: AbortController\n): Promise<T> {\n\tlet foregroundReported = false;\n\tlet childrenReported = false;\n\ttry {\n\t\tconst value = await executeTaskFrame(\n\t\t\t{\n\t\t\t\tparent: options.parent as TaskFrameRecord | undefined,\n\t\t\t\tparentReserved,\n\t\t\t\tcontroller,\n\t\t\t\tgeneration: options.generation,\n\t\t\t\tdetached: options.detached,\n\t\t\t\tkind: options.kind,\n\t\t\t\tlabel: options.label,\n\t\t\t\tpriority: options.priority,\n\t\t\t\treadiness: options.readiness\n\t\t\t},\n\t\t\tasync (context) => {\n\t\t\t\ttry {\n\t\t\t\t\tconst result = await hooks.work(context);\n\t\t\t\t\tforegroundReported = true;\n\t\t\t\t\tawait hooks.afterForeground?.({ status: 'ready' });\n\t\t\t\t\treturn result;\n\t\t\t\t} catch (error) {\n\t\t\t\t\tif (!foregroundReported) {\n\t\t\t\t\t\tforegroundReported = true;\n\t\t\t\t\t\tawait hooks.afterForeground?.(foregroundOutcome(controller.signal, error));\n\t\t\t\t\t}\n\t\t\t\t\tthrow error;\n\t\t\t\t}\n\t\t\t}\n\t\t);\n\t\tchildrenReported = true;\n\t\tawait hooks.afterChildren?.({ status: 'fulfilled', value });\n\t\treturn value;\n\t} catch (error) {\n\t\tif (!foregroundReported) {\n\t\t\tforegroundReported = true;\n\t\t\tawait hooks.afterForeground?.(foregroundOutcome(controller.signal, error));\n\t\t}\n\t\tif (!childrenReported) {\n\t\t\tchildrenReported = true;\n\t\t\tawait hooks.afterChildren?.(structuralOutcome(controller.signal, error));\n\t\t}\n\t\tthrow error;\n\t}\n}\n\n/** Classifies foreground failure using the frame's cancellation authority. */\nfunction foregroundOutcome(signal: AbortSignal, error: unknown): TaskForegroundOutcome {\n\treturn signal.aborted || error instanceof TaskCancellation\n\t\t? { status: 'cancelled', reason: cancellationReason(signal, error) }\n\t\t: { status: 'rejected', error };\n}\n\n/** Classifies structural failure using the frame's cancellation authority. */\nfunction structuralOutcome<T>(signal: AbortSignal, error: unknown): TaskFrameOutcome<T> {\n\treturn error instanceof TaskCancellation\n\t\t? { status: 'cancelled', reason: cancellationReason(signal, error) }\n\t\t: { status: 'rejected', error };\n}\n\n/** Preserves the originating abort reason after runtime cancellation wrapping. */\nfunction cancellationReason(signal: AbortSignal, error: unknown): unknown {\n\tif (error instanceof TaskCancellation) return error.reason;\n\treturn signal.aborted ? signal.reason : error;\n}\n\n/** Reserves an attached child before handing work to an external scheduler. */\nexport function reserveTaskFrame(options: RunTaskFrameOptions): TaskFrameReservation {\n\tconst parent = (options.parent as TaskFrameRecord | undefined) ?? currentTaskFrameRecord();\n\tif (!parent) throw new Error('A task frame reservation requires an active or explicit parent');\n\tlet used = false;\n\tlet release!: () => void;\n\tconst placeholder = new Promise<void>((resolve) => {\n\t\trelease = resolve;\n\t});\n\tattachTaskFrameSettlement(parent, placeholder);\n\treturn {\n\t\trun<T>(work: (context: TaskContext) => T | Promise<T>): TaskFrameExecution<T> {\n\t\t\tif (used)\n\t\t\t\treturn rejectedTaskFrameExecution(new Error('Task frame reservation was already released'));\n\t\t\tused = true;\n\t\t\tconst execution = createTaskFrameExecution(\n\t\t\t\t{ ...options, parent: parent as unknown as TaskFrameToken },\n\t\t\t\t{ work },\n\t\t\t\ttrue\n\t\t\t);\n\t\t\t// Keep the atomic placeholder until the public execution, including\n\t\t\t// its structural finalizer, has settled.\n\t\t\tvoid execution.then(release, release);\n\t\t\treturn execution;\n\t\t},\n\t\tcancel() {\n\t\t\tif (used) return;\n\t\t\tused = true;\n\t\t\trelease();\n\t\t},\n\t\t[Symbol.dispose]() {\n\t\t\tif (used) return;\n\t\t\tused = true;\n\t\t\trelease();\n\t\t}\n\t};\n}\n\n/** Creates a settled execution for invalid reservation reuse. */\nfunction rejectedTaskFrameExecution<T>(error: unknown): TaskFrameExecution<T> {\n\tconst controller = new AbortController();\n\treturn exposeTaskFrameExecution(Promise.reject<T>(error), controller);\n}\n\n/** Restores a captured frame for one synchronous callback segment. */\nexport function runWithTaskFrame<T>(frame: TaskFrameToken, work: () => T): T {\n\treturn withTaskFrameRecord(frame as unknown as TaskFrameRecord, work);\n}\n\nexport {\n\tattachTaskProgressReporter,\n\ttaskProgressReceiverForHost\n} from '../tasks/progress-bindings.js';\nexport type { TaskProgressReceiver } from '../tasks/progress-receiver.js';\n"]}
@@ -10,4 +10,5 @@ export { taskMutation } from '../tasks/frame-runtime.js';
10
10
  export { bindTaskForHost, defineTask, invokeTask } from '../tasks/runtime.js';
11
11
  export { mutateTaskCollection, ownTaskResource, stageTaskMutation, taskAnimationFrame, taskAwait, taskFetch, taskIdleCallback, taskInterval, taskObserver, taskTimeout } from '../tasks/resources.js';
12
12
  export { combineTaskSignal, withAbortSignal, withTaskSignal } from '../tasks/signals.js';
13
+ export { createTaskProgressReporter, registerTaskProgressReceiver } from '../tasks/progress-bindings.js';
13
14
  //# sourceMappingURL=tasks.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"tasks.d.ts","sourceRoot":"","sources":["../../src/runtime/tasks.ts"],"names":[],"mappings":"AAAA,OAAO,sBAAsB,CAAC;AAE9B,OAAO,EAAE,qCAAqC,EAAE,MAAM,oCAAoC,CAAC;AAC3F,OAAO,EAAE,6BAA6B,EAAE,MAAM,wBAAwB,CAAC;AACvE,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,EAAE,0BAA0B,EAAE,MAAM,oCAAoC,CAAC;AAChF,OAAO,EACN,mCAAmC,EACnC,mCAAmC,EACnC,MAAM,+BAA+B,CAAC;AACvC,OAAO,EACN,uCAAuC,EACvC,mCAAmC,EACnC,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,6BAA6B,EAAE,MAAM,oCAAoC,CAAC;AACnF,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAC9E,OAAO,EACN,oBAAoB,EACpB,eAAe,EACf,iBAAiB,EACjB,kBAAkB,EAClB,SAAS,EACT,SAAS,EACT,gBAAgB,EAChB,YAAY,EACZ,YAAY,EACZ,WAAW,EACX,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC"}
1
+ {"version":3,"file":"tasks.d.ts","sourceRoot":"","sources":["../../src/runtime/tasks.ts"],"names":[],"mappings":"AAAA,OAAO,sBAAsB,CAAC;AAE9B,OAAO,EAAE,qCAAqC,EAAE,MAAM,oCAAoC,CAAC;AAC3F,OAAO,EAAE,6BAA6B,EAAE,MAAM,wBAAwB,CAAC;AACvE,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,EAAE,0BAA0B,EAAE,MAAM,oCAAoC,CAAC;AAChF,OAAO,EACN,mCAAmC,EACnC,mCAAmC,EACnC,MAAM,+BAA+B,CAAC;AACvC,OAAO,EACN,uCAAuC,EACvC,mCAAmC,EACnC,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,6BAA6B,EAAE,MAAM,oCAAoC,CAAC;AACnF,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAC9E,OAAO,EACN,oBAAoB,EACpB,eAAe,EACf,iBAAiB,EACjB,kBAAkB,EAClB,SAAS,EACT,SAAS,EACT,gBAAgB,EAChB,YAAY,EACZ,YAAY,EACZ,WAAW,EACX,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAEzF,OAAO,EACN,0BAA0B,EAC1B,4BAA4B,EAC5B,MAAM,+BAA+B,CAAC"}
@@ -10,4 +10,5 @@ export { taskMutation } from '../tasks/frame-runtime.js';
10
10
  export { bindTaskForHost, defineTask, invokeTask } from '../tasks/runtime.js';
11
11
  export { mutateTaskCollection, ownTaskResource, stageTaskMutation, taskAnimationFrame, taskAwait, taskFetch, taskIdleCallback, taskInterval, taskObserver, taskTimeout } from '../tasks/resources.js';
12
12
  export { combineTaskSignal, withAbortSignal, withTaskSignal } from '../tasks/signals.js';
13
+ export { createTaskProgressReporter, registerTaskProgressReceiver } from '../tasks/progress-bindings.js';
13
14
  //# sourceMappingURL=tasks.js.map