@exactjs/core 0.5.1 → 0.6.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1175) hide show
  1. package/AGENTS.md +4 -4
  2. package/README.md +8 -6
  3. package/dist/activity.js.map +1 -1
  4. package/dist/children/composition.d.ts +34 -0
  5. package/dist/children/composition.d.ts.map +1 -0
  6. package/dist/children/composition.js +74 -0
  7. package/dist/children/composition.js.map +1 -0
  8. package/dist/children.d.ts +4 -0
  9. package/dist/children.d.ts.map +1 -0
  10. package/dist/children.js +3 -0
  11. package/dist/children.js.map +1 -0
  12. package/dist/class-values.js.map +1 -1
  13. package/dist/cleanup.js.map +1 -1
  14. package/dist/client/activity.js.map +1 -1
  15. package/dist/client/children/composition.d.ts +34 -0
  16. package/dist/client/children/composition.d.ts.map +1 -0
  17. package/dist/client/children/composition.js +74 -0
  18. package/dist/client/children/composition.js.map +1 -0
  19. package/dist/client/children.d.ts +4 -0
  20. package/dist/client/children.d.ts.map +1 -0
  21. package/dist/client/children.js +3 -0
  22. package/dist/client/children.js.map +1 -0
  23. package/dist/client/class-values.js.map +1 -1
  24. package/dist/client/cleanup.js.map +1 -1
  25. package/dist/client/component/async-value.js.map +1 -1
  26. package/dist/client/component/async.js.map +1 -1
  27. package/dist/client/component/authorization.js.map +1 -1
  28. package/dist/client/component/compact-instance.js.map +1 -1
  29. package/dist/client/component/compiled-abi.js.map +1 -1
  30. package/dist/client/component/compiled-output.js.map +1 -1
  31. package/dist/client/component/construction.js.map +1 -1
  32. package/dist/client/component/context-api.js.map +1 -1
  33. package/dist/client/component/context-capability-integration.js.map +1 -1
  34. package/dist/client/component/context-capability.js.map +1 -1
  35. package/dist/client/component/context-inspection.js.map +1 -1
  36. package/dist/client/component/context-resumption.js.map +1 -1
  37. package/dist/client/component/contexts.js.map +1 -1
  38. package/dist/client/component/contract-versions.d.ts +2 -2
  39. package/dist/client/component/contract-versions.js +2 -2
  40. package/dist/client/component/contract-versions.js.map +1 -1
  41. package/dist/client/component/contracts.d.ts +4 -2
  42. package/dist/client/component/contracts.d.ts.map +1 -1
  43. package/dist/client/component/contracts.js.map +1 -1
  44. package/dist/client/component/default-logger.js.map +1 -1
  45. package/dist/client/component/derived.js.map +1 -1
  46. package/dist/client/component/direct-server-context-api.js.map +1 -1
  47. package/dist/client/component/direct-server-instance-construction.js.map +1 -1
  48. package/dist/client/component/domain.d.ts +2 -0
  49. package/dist/client/component/domain.d.ts.map +1 -1
  50. package/dist/client/component/domain.js +4 -0
  51. package/dist/client/component/domain.js.map +1 -1
  52. package/dist/client/component/durable-instance-construction.js.map +1 -1
  53. package/dist/client/component/element-identity.js.map +1 -1
  54. package/dist/client/component/error-boundary.js +2 -2
  55. package/dist/client/component/error-boundary.js.map +1 -1
  56. package/dist/client/component/error-view.js.map +1 -1
  57. package/dist/client/component/errors.js.map +1 -1
  58. package/dist/client/component/input-observation.js.map +1 -1
  59. package/dist/client/component/inspection-source.js.map +1 -1
  60. package/dist/client/component/inspection.js.map +1 -1
  61. package/dist/client/component/instance-construction.js.map +1 -1
  62. package/dist/client/component/instance-identity.js.map +1 -1
  63. package/dist/client/component/interaction-contracts.js.map +1 -1
  64. package/dist/client/component/lifecycle-handlers.js.map +1 -1
  65. package/dist/client/component/list-capability-integration.js.map +1 -1
  66. package/dist/client/component/list-capability.js.map +1 -1
  67. package/dist/client/component/list-controller.js.map +1 -1
  68. package/dist/client/component/localization-capability.js.map +1 -1
  69. package/dist/client/component/log.js.map +1 -1
  70. package/dist/client/component/logical-owner.d.ts.map +1 -1
  71. package/dist/client/component/logical-owner.js +3 -2
  72. package/dist/client/component/logical-owner.js.map +1 -1
  73. package/dist/client/component/ownership.js.map +1 -1
  74. package/dist/client/component/performance-trace.js.map +1 -1
  75. package/dist/client/component/plugins.js.map +1 -1
  76. package/dist/client/component/reactive-expression.js.map +1 -1
  77. package/dist/client/component/reactive-expressions.d.ts.map +1 -1
  78. package/dist/client/component/reactive-expressions.js +3 -2
  79. package/dist/client/component/reactive-expressions.js.map +1 -1
  80. package/dist/client/component/reactive-value.js.map +1 -1
  81. package/dist/client/component/readiness.js.map +1 -1
  82. package/dist/client/component/ref-capability-integration.js.map +1 -1
  83. package/dist/client/component/ref-capability.js.map +1 -1
  84. package/dist/client/component/ref-runtime.js.map +1 -1
  85. package/dist/client/component/render-instance-construction.js.map +1 -1
  86. package/dist/client/component/render-instance.js.map +1 -1
  87. package/dist/client/component/render.js.map +1 -1
  88. package/dist/client/component/resource-ownership.js.map +1 -1
  89. package/dist/client/component/resumption.js +3 -1
  90. package/dist/client/component/resumption.js.map +1 -1
  91. package/dist/client/component/root-lifecycle.js.map +1 -1
  92. package/dist/client/component/runtime-construction.js.map +1 -1
  93. package/dist/client/component/runtime-surface-contexts.js.map +1 -1
  94. package/dist/client/component/runtime-surface-lifecycle.js.map +1 -1
  95. package/dist/client/component/runtime-surface-lists.js.map +1 -1
  96. package/dist/client/component/runtime-surface-localization.js.map +1 -1
  97. package/dist/client/component/runtime-surface-logging.js.map +1 -1
  98. package/dist/client/component/runtime-surface-reactivity.js.map +1 -1
  99. package/dist/client/component/runtime-surface-refs.js.map +1 -1
  100. package/dist/client/component/runtime-surface-registration.js.map +1 -1
  101. package/dist/client/component/runtime-surface.js.map +1 -1
  102. package/dist/client/component/runtime.d.ts +3 -0
  103. package/dist/client/component/runtime.d.ts.map +1 -1
  104. package/dist/client/component/runtime.js +32 -6
  105. package/dist/client/component/runtime.js.map +1 -1
  106. package/dist/client/component/state.js.map +1 -1
  107. package/dist/client/component/task-capability-integration.js +1 -0
  108. package/dist/client/component/task-capability-integration.js.map +1 -1
  109. package/dist/client/component/task-capability.js.map +1 -1
  110. package/dist/client/component/task-inspection-history.js.map +1 -1
  111. package/dist/client/component/task-instance-construction.js.map +1 -1
  112. package/dist/client/component/task-instance.js.map +1 -1
  113. package/dist/client/component/task-observer.js.map +1 -1
  114. package/dist/client/component/task-owner-integration.js.map +1 -1
  115. package/dist/client/component/value-contracts.js.map +1 -1
  116. package/dist/client/component-abi/activity-receipt.js.map +1 -1
  117. package/dist/client/component-abi/artifact.js.map +1 -1
  118. package/dist/client/component-abi/child-range-receipt.js.map +1 -1
  119. package/dist/client/component-abi/client.d.ts +2 -1
  120. package/dist/client/component-abi/client.d.ts.map +1 -1
  121. package/dist/client/component-abi/client.js.map +1 -1
  122. package/dist/client/component-abi/compatibility-contribution.js.map +1 -1
  123. package/dist/client/component-abi/compiled-child-range.d.ts.map +1 -1
  124. package/dist/client/component-abi/compiled-child-range.js +6 -1
  125. package/dist/client/component-abi/compiled-child-range.js.map +1 -1
  126. package/dist/client/component-abi/compiled-runtime.js.map +1 -1
  127. package/dist/client/component-abi/executable-fields.js.map +1 -1
  128. package/dist/client/component-abi/fragment-receipt.d.ts +20 -0
  129. package/dist/client/component-abi/fragment-receipt.d.ts.map +1 -1
  130. package/dist/client/component-abi/fragment-receipt.js +35 -5
  131. package/dist/client/component-abi/fragment-receipt.js.map +1 -1
  132. package/dist/client/component-abi/intrinsic-receipt.d.ts +10 -0
  133. package/dist/client/component-abi/intrinsic-receipt.d.ts.map +1 -1
  134. package/dist/client/component-abi/intrinsic-receipt.js +44 -6
  135. package/dist/client/component-abi/intrinsic-receipt.js.map +1 -1
  136. package/dist/client/component-abi/keyed-child-receipt.js.map +1 -1
  137. package/dist/client/component-abi/opaque-operation.d.ts.map +1 -1
  138. package/dist/client/component-abi/opaque-operation.js +36 -3
  139. package/dist/client/component-abi/opaque-operation.js.map +1 -1
  140. package/dist/client/component-abi/portal-receipt.js.map +1 -1
  141. package/dist/client/component-abi/receipt.d.ts +7 -0
  142. package/dist/client/component-abi/receipt.d.ts.map +1 -1
  143. package/dist/client/component-abi/receipt.js +9 -0
  144. package/dist/client/component-abi/receipt.js.map +1 -1
  145. package/dist/client/component-abi/runtime.js.map +1 -1
  146. package/dist/client/component-abi/server-child-range.js +1 -1
  147. package/dist/client/component-abi/server-child-range.js.map +1 -1
  148. package/dist/client/component-abi/server-keyed-child.js.map +1 -1
  149. package/dist/client/component-abi/server-runtime.js.map +1 -1
  150. package/dist/client/component-abi/server-structure-receipts.js.map +1 -1
  151. package/dist/client/component-abi/server.d.ts +2 -1
  152. package/dist/client/component-abi/server.d.ts.map +1 -1
  153. package/dist/client/component-abi/server.js.map +1 -1
  154. package/dist/client/component-abi/suspense-receipt.js.map +1 -1
  155. package/dist/client/component-abi/target-receipt.d.ts +23 -1
  156. package/dist/client/component-abi/target-receipt.d.ts.map +1 -1
  157. package/dist/client/component-abi/target-receipt.js +46 -5
  158. package/dist/client/component-abi/target-receipt.js.map +1 -1
  159. package/dist/client/component-abi/text-projection-markup.d.ts +16 -0
  160. package/dist/client/component-abi/text-projection-markup.d.ts.map +1 -0
  161. package/dist/client/component-abi/text-projection-markup.js +110 -0
  162. package/dist/client/component-abi/text-projection-markup.js.map +1 -0
  163. package/dist/client/component-abi/text-projection.d.ts +12 -0
  164. package/dist/client/component-abi/text-projection.d.ts.map +1 -0
  165. package/dist/client/component-abi/text-projection.js +79 -0
  166. package/dist/client/component-abi/text-projection.js.map +1 -0
  167. package/dist/client/component-abi/unsafe-html-receipt.js.map +1 -1
  168. package/dist/client/component-abi/value-serialization.js.map +1 -1
  169. package/dist/client/component-contract/boundary-validation.js.map +1 -1
  170. package/dist/client/component-contract/composition-support.js.map +1 -1
  171. package/dist/client/component-contract/continuation-validation.js.map +1 -1
  172. package/dist/client/component-contract/contract-cache.js.map +1 -1
  173. package/dist/client/component-contract/contract-validation.d.ts.map +1 -1
  174. package/dist/client/component-contract/contract-validation.js +5 -13
  175. package/dist/client/component-contract/contract-validation.js.map +1 -1
  176. package/dist/client/component-contract/metadata-validation.d.ts +4 -0
  177. package/dist/client/component-contract/metadata-validation.d.ts.map +1 -1
  178. package/dist/client/component-contract/metadata-validation.js +16 -0
  179. package/dist/client/component-contract/metadata-validation.js.map +1 -1
  180. package/dist/client/component-contract/server-execution-validation.js.map +1 -1
  181. package/dist/client/component-contracts.d.ts +4 -3
  182. package/dist/client/component-contracts.d.ts.map +1 -1
  183. package/dist/client/component-contracts.js +7 -1
  184. package/dist/client/component-contracts.js.map +1 -1
  185. package/dist/client/component-definition-contracts.js.map +1 -1
  186. package/dist/client/component-registry/contracts.js.map +1 -1
  187. package/dist/client/component-registry/creation.d.ts.map +1 -1
  188. package/dist/client/component-registry/creation.js +4 -3
  189. package/dist/client/component-registry/creation.js.map +1 -1
  190. package/dist/client/component-registry/errors.js.map +1 -1
  191. package/dist/client/component-registry/loading.js.map +1 -1
  192. package/dist/client/component-registry/operations.js.map +1 -1
  193. package/dist/client/component-registry/storage.js.map +1 -1
  194. package/dist/client/component-registry/syntax.js.map +1 -1
  195. package/dist/client/document/composition.d.ts +7 -0
  196. package/dist/client/document/composition.d.ts.map +1 -0
  197. package/dist/client/document/composition.js +52 -0
  198. package/dist/client/document/composition.js.map +1 -0
  199. package/dist/client/document/definition.d.ts +10 -0
  200. package/dist/client/document/definition.d.ts.map +1 -0
  201. package/dist/client/document/definition.js +3 -0
  202. package/dist/client/document/definition.js.map +1 -0
  203. package/dist/client/document/doctype.d.ts +17 -0
  204. package/dist/client/document/doctype.d.ts.map +1 -0
  205. package/dist/client/document/doctype.js +35 -0
  206. package/dist/client/document/doctype.js.map +1 -0
  207. package/dist/client/document/output.d.ts +22 -0
  208. package/dist/client/document/output.d.ts.map +1 -0
  209. package/dist/client/document/output.js +30 -0
  210. package/dist/client/document/output.js.map +1 -0
  211. package/dist/client/document.d.ts +6 -0
  212. package/dist/client/document.d.ts.map +1 -0
  213. package/dist/client/document.js +5 -0
  214. package/dist/client/document.js.map +1 -0
  215. package/dist/client/dynamic-component/contracts.js.map +1 -1
  216. package/dist/client/dynamic-component/creation.js.map +1 -1
  217. package/dist/client/dynamic-component/runtime.js.map +1 -1
  218. package/dist/client/enhancements.d.ts +2 -0
  219. package/dist/client/enhancements.d.ts.map +1 -1
  220. package/dist/client/enhancements.js +8 -4
  221. package/dist/client/enhancements.js.map +1 -1
  222. package/dist/client/framework/async-values.js.map +1 -1
  223. package/dist/client/framework/compatibility-contributions.js.map +1 -1
  224. package/dist/client/framework/component-contract-validation.js.map +1 -1
  225. package/dist/client/framework/component-contracts.js.map +1 -1
  226. package/dist/client/framework/component-domains.js.map +1 -1
  227. package/dist/client/framework/component-execution.js.map +1 -1
  228. package/dist/client/framework/component-lifecycle.js.map +1 -1
  229. package/dist/client/framework/component-roots.js.map +1 -1
  230. package/dist/client/framework/enhancement-catalog.js.map +1 -1
  231. package/dist/client/framework/enhancement-fallback.d.ts +12 -0
  232. package/dist/client/framework/enhancement-fallback.d.ts.map +1 -0
  233. package/dist/client/framework/enhancement-fallback.js +41 -0
  234. package/dist/client/framework/enhancement-fallback.js.map +1 -0
  235. package/dist/client/framework/enhancement-order.d.ts +9 -0
  236. package/dist/client/framework/enhancement-order.d.ts.map +1 -0
  237. package/dist/client/framework/enhancement-order.js +34 -0
  238. package/dist/client/framework/enhancement-order.js.map +1 -0
  239. package/dist/client/framework/error-format.js.map +1 -1
  240. package/dist/client/framework/error-view.js.map +1 -1
  241. package/dist/client/framework/fragment-enhancement-chain.d.ts +4 -0
  242. package/dist/client/framework/fragment-enhancement-chain.d.ts.map +1 -0
  243. package/dist/client/framework/fragment-enhancement-chain.js +28 -0
  244. package/dist/client/framework/fragment-enhancement-chain.js.map +1 -0
  245. package/dist/client/framework/fragment-hosts.d.ts +30 -0
  246. package/dist/client/framework/fragment-hosts.d.ts.map +1 -0
  247. package/dist/client/framework/fragment-hosts.js +65 -0
  248. package/dist/client/framework/fragment-hosts.js.map +1 -0
  249. package/dist/client/framework/fragment-target-projection.d.ts +8 -0
  250. package/dist/client/framework/fragment-target-projection.d.ts.map +1 -0
  251. package/dist/client/framework/fragment-target-projection.js +98 -0
  252. package/dist/client/framework/fragment-target-projection.js.map +1 -0
  253. package/dist/client/framework/inspection-transport.js.map +1 -1
  254. package/dist/client/framework/operation-protocol.js.map +1 -1
  255. package/dist/client/framework/prepared-target-output.d.ts +11 -0
  256. package/dist/client/framework/prepared-target-output.d.ts.map +1 -0
  257. package/dist/client/framework/prepared-target-output.js +51 -0
  258. package/dist/client/framework/prepared-target-output.js.map +1 -0
  259. package/dist/client/framework/protocol-records.js.map +1 -1
  260. package/dist/client/framework/publication.js.map +1 -1
  261. package/dist/client/framework/render-structure.d.ts +10 -0
  262. package/dist/client/framework/render-structure.d.ts.map +1 -1
  263. package/dist/client/framework/render-structure.js +10 -0
  264. package/dist/client/framework/render-structure.js.map +1 -1
  265. package/dist/client/framework/server-component-contexts.js.map +1 -1
  266. package/dist/client/framework/server-component-execution.js.map +1 -1
  267. package/dist/client/framework/server-render-structure.js.map +1 -1
  268. package/dist/client/framework/server-task-helpers.d.ts +2 -1
  269. package/dist/client/framework/server-task-helpers.d.ts.map +1 -1
  270. package/dist/client/framework/server-task-helpers.js +2 -1
  271. package/dist/client/framework/server-task-helpers.js.map +1 -1
  272. package/dist/client/framework/supplied-placement.d.ts +8 -0
  273. package/dist/client/framework/supplied-placement.d.ts.map +1 -0
  274. package/dist/client/framework/supplied-placement.js +80 -0
  275. package/dist/client/framework/supplied-placement.js.map +1 -0
  276. package/dist/client/framework/target-contributions.d.ts +2 -0
  277. package/dist/client/framework/target-contributions.d.ts.map +1 -1
  278. package/dist/client/framework/target-contributions.js +38 -0
  279. package/dist/client/framework/target-contributions.js.map +1 -1
  280. package/dist/client/framework/task-frames.js.map +1 -1
  281. package/dist/client/framework/text-target-output.d.ts +6 -0
  282. package/dist/client/framework/text-target-output.d.ts.map +1 -0
  283. package/dist/client/framework/text-target-output.js +14 -0
  284. package/dist/client/framework/text-target-output.js.map +1 -0
  285. package/dist/client/hydration-boundary.js.map +1 -1
  286. package/dist/client/index.js.map +1 -1
  287. package/dist/client/inspection-transport.js.map +1 -1
  288. package/dist/client/interaction/execution.js.map +1 -1
  289. package/dist/client/json.js.map +1 -1
  290. package/dist/client/keys.js.map +1 -1
  291. package/dist/client/localization/component-integration.js.map +1 -1
  292. package/dist/client/localization/context.js.map +1 -1
  293. package/dist/client/localization/contracts.js.map +1 -1
  294. package/dist/client/localization/facade.js.map +1 -1
  295. package/dist/client/localization/formatter-pool.js.map +1 -1
  296. package/dist/client/localization.js.map +1 -1
  297. package/dist/client/logging.js.map +1 -1
  298. package/dist/client/native-props.js.map +1 -1
  299. package/dist/client/protocol-utf8.js.map +1 -1
  300. package/dist/client/protocol.js.map +1 -1
  301. package/dist/client/render-children.js.map +1 -1
  302. package/dist/client/render-program.d.ts +4 -1
  303. package/dist/client/render-program.d.ts.map +1 -1
  304. package/dist/client/render-program.js +1 -1
  305. package/dist/client/render-program.js.map +1 -1
  306. package/dist/client/runtime/collections.js.map +1 -1
  307. package/dist/client/runtime/compatibility-component-abi.js.map +1 -1
  308. package/dist/client/runtime/component-abi.d.ts +3 -3
  309. package/dist/client/runtime/component-abi.d.ts.map +1 -1
  310. package/dist/client/runtime/component-abi.js +3 -3
  311. package/dist/client/runtime/component-abi.js.map +1 -1
  312. package/dist/client/runtime/component-construction/direct-server.js.map +1 -1
  313. package/dist/client/runtime/component-construction/durable.js.map +1 -1
  314. package/dist/client/runtime/component-construction/render.js.map +1 -1
  315. package/dist/client/runtime/component-construction/task.js.map +1 -1
  316. package/dist/client/runtime/component-execution.js.map +1 -1
  317. package/dist/client/runtime/component-operations.d.ts +3 -0
  318. package/dist/client/runtime/component-operations.d.ts.map +1 -1
  319. package/dist/client/runtime/component-operations.js +3 -0
  320. package/dist/client/runtime/component-operations.js.map +1 -1
  321. package/dist/client/runtime/component-reactivity.js.map +1 -1
  322. package/dist/client/runtime/component-tasks.js.map +1 -1
  323. package/dist/client/runtime/contexts.js.map +1 -1
  324. package/dist/client/runtime/dynamic-components.js.map +1 -1
  325. package/dist/client/runtime/enhancements.js.map +1 -1
  326. package/dist/client/runtime/inspection.js.map +1 -1
  327. package/dist/client/runtime/lifecycle.js.map +1 -1
  328. package/dist/client/runtime/lists.js.map +1 -1
  329. package/dist/client/runtime/localization.js.map +1 -1
  330. package/dist/client/runtime/logging.js.map +1 -1
  331. package/dist/client/runtime/reactivity.js.map +1 -1
  332. package/dist/client/runtime/refs.js.map +1 -1
  333. package/dist/client/runtime/registry.js.map +1 -1
  334. package/dist/client/runtime/render-operations.js.map +1 -1
  335. package/dist/client/runtime/render.js.map +1 -1
  336. package/dist/client/runtime/tasks.js.map +1 -1
  337. package/dist/client/server-render-program.js.map +1 -1
  338. package/dist/client/ssr-independence.js.map +1 -1
  339. package/dist/client/symbols.js.map +1 -1
  340. package/dist/client/tasks/activation.js.map +1 -1
  341. package/dist/client/tasks/cancellation.js.map +1 -1
  342. package/dist/client/tasks/compiled-latest.js.map +1 -1
  343. package/dist/client/tasks/component-continuation.js.map +1 -1
  344. package/dist/client/tasks/component-execution-capability.js.map +1 -1
  345. package/dist/client/tasks/component-execution-plan.js.map +1 -1
  346. package/dist/client/tasks/component-execution-slice.js.map +1 -1
  347. package/dist/client/tasks/component-execution.js.map +1 -1
  348. package/dist/client/tasks/computation-activation.js.map +1 -1
  349. package/dist/client/tasks/continuations.js.map +1 -1
  350. package/dist/client/tasks/contracts.js.map +1 -1
  351. package/dist/client/tasks/definition-record.js.map +1 -1
  352. package/dist/client/tasks/dependency-provenance.js.map +1 -1
  353. package/dist/client/tasks/dependency-source.js.map +1 -1
  354. package/dist/client/tasks/dependency-watcher.js.map +1 -1
  355. package/dist/client/tasks/frame-context.js.map +1 -1
  356. package/dist/client/tasks/frame-continuation.js.map +1 -1
  357. package/dist/client/tasks/frame-contracts.js.map +1 -1
  358. package/dist/client/tasks/frame-inspection-capability.js.map +1 -1
  359. package/dist/client/tasks/frame-inspection.js.map +1 -1
  360. package/dist/client/tasks/frame-runtime.js.map +1 -1
  361. package/dist/client/tasks/frame-settlement.js.map +1 -1
  362. package/dist/client/tasks/generation-execution.js.map +1 -1
  363. package/dist/client/tasks/invocation.js.map +1 -1
  364. package/dist/client/tasks/observers.js.map +1 -1
  365. package/dist/client/tasks/optimism.js.map +1 -1
  366. package/dist/client/tasks/options.js.map +1 -1
  367. package/dist/client/tasks/owner-activations.js.map +1 -1
  368. package/dist/client/tasks/owner-hosts.js.map +1 -1
  369. package/dist/client/tasks/owner-record.js.map +1 -1
  370. package/dist/client/tasks/owners.js.map +1 -1
  371. package/dist/client/tasks/performance-trace.js.map +1 -1
  372. package/dist/client/tasks/policy.js.map +1 -1
  373. package/dist/client/tasks/priority.js.map +1 -1
  374. package/dist/client/tasks/public.js.map +1 -1
  375. package/dist/client/tasks/resources.js.map +1 -1
  376. package/dist/client/tasks/runtime-types.js.map +1 -1
  377. package/dist/client/tasks/runtime.js.map +1 -1
  378. package/dist/client/tasks/scheduled-reactions.js.map +1 -1
  379. package/dist/client/tasks/server-component-execution-contracts.js.map +1 -1
  380. package/dist/client/tasks/server-component-execution.d.ts +3 -0
  381. package/dist/client/tasks/server-component-execution.d.ts.map +1 -1
  382. package/dist/client/tasks/server-component-execution.js +16 -46
  383. package/dist/client/tasks/server-component-execution.js.map +1 -1
  384. package/dist/client/tasks/server-component-resources.js.map +1 -1
  385. package/dist/client/tasks/server-component-task-slice.d.ts +5 -0
  386. package/dist/client/tasks/server-component-task-slice.d.ts.map +1 -0
  387. package/dist/client/tasks/server-component-task-slice.js +56 -0
  388. package/dist/client/tasks/server-component-task-slice.js.map +1 -0
  389. package/dist/client/tasks/server-component-task-tree.d.ts +9 -0
  390. package/dist/client/tasks/server-component-task-tree.d.ts.map +1 -0
  391. package/dist/client/tasks/server-component-task-tree.js +38 -0
  392. package/dist/client/tasks/server-component-task-tree.js.map +1 -0
  393. package/dist/client/tasks/server-task-readiness.js.map +1 -1
  394. package/dist/client/tasks/signals.js.map +1 -1
  395. package/dist/client/tasks/status.js.map +1 -1
  396. package/dist/client/tasks/v1.js.map +1 -1
  397. package/dist/client/testing/runtime-artifacts.d.ts.map +1 -1
  398. package/dist/client/testing/runtime-artifacts.js +4 -3
  399. package/dist/client/testing/runtime-artifacts.js.map +1 -1
  400. package/dist/client/testing/runtime.d.ts.map +1 -1
  401. package/dist/client/testing/runtime.js +4 -2
  402. package/dist/client/testing/runtime.js.map +1 -1
  403. package/dist/client/testing.js.map +1 -1
  404. package/dist/client/url.js.map +1 -1
  405. package/dist/component/async-value.js.map +1 -1
  406. package/dist/component/async.js.map +1 -1
  407. package/dist/component/authorization.js.map +1 -1
  408. package/dist/component/compact-instance.js.map +1 -1
  409. package/dist/component/compiled-abi.js.map +1 -1
  410. package/dist/component/compiled-output.js.map +1 -1
  411. package/dist/component/construction.js.map +1 -1
  412. package/dist/component/context-api.js.map +1 -1
  413. package/dist/component/context-capability-integration.js.map +1 -1
  414. package/dist/component/context-capability.js.map +1 -1
  415. package/dist/component/context-inspection.js.map +1 -1
  416. package/dist/component/context-resumption.js.map +1 -1
  417. package/dist/component/contexts.js.map +1 -1
  418. package/dist/component/contract-versions.d.ts +2 -2
  419. package/dist/component/contract-versions.js +2 -2
  420. package/dist/component/contract-versions.js.map +1 -1
  421. package/dist/component/contracts.d.ts +4 -2
  422. package/dist/component/contracts.d.ts.map +1 -1
  423. package/dist/component/contracts.js.map +1 -1
  424. package/dist/component/default-logger.js.map +1 -1
  425. package/dist/component/derived.js.map +1 -1
  426. package/dist/component/direct-server-context-api.js.map +1 -1
  427. package/dist/component/direct-server-instance-construction.js.map +1 -1
  428. package/dist/component/domain.d.ts +2 -0
  429. package/dist/component/domain.d.ts.map +1 -1
  430. package/dist/component/domain.js +4 -0
  431. package/dist/component/domain.js.map +1 -1
  432. package/dist/component/durable-instance-construction.js.map +1 -1
  433. package/dist/component/element-identity.js.map +1 -1
  434. package/dist/component/error-boundary.js.map +1 -1
  435. package/dist/component/error-view.js.map +1 -1
  436. package/dist/component/errors.js.map +1 -1
  437. package/dist/component/input-observation.js.map +1 -1
  438. package/dist/component/inspection-source.js.map +1 -1
  439. package/dist/component/inspection.js.map +1 -1
  440. package/dist/component/instance-construction.js.map +1 -1
  441. package/dist/component/instance-identity.js.map +1 -1
  442. package/dist/component/interaction-contracts.js.map +1 -1
  443. package/dist/component/lifecycle-handlers.js.map +1 -1
  444. package/dist/component/list-capability-integration.js.map +1 -1
  445. package/dist/component/list-capability.js.map +1 -1
  446. package/dist/component/list-controller.js.map +1 -1
  447. package/dist/component/localization-capability.js.map +1 -1
  448. package/dist/component/log.js.map +1 -1
  449. package/dist/component/logical-owner.d.ts.map +1 -1
  450. package/dist/component/logical-owner.js +3 -2
  451. package/dist/component/logical-owner.js.map +1 -1
  452. package/dist/component/ownership.js.map +1 -1
  453. package/dist/component/performance-trace.js.map +1 -1
  454. package/dist/component/plugins.js.map +1 -1
  455. package/dist/component/reactive-expression.js.map +1 -1
  456. package/dist/component/reactive-expressions.d.ts.map +1 -1
  457. package/dist/component/reactive-expressions.js +3 -2
  458. package/dist/component/reactive-expressions.js.map +1 -1
  459. package/dist/component/reactive-value.js.map +1 -1
  460. package/dist/component/readiness.js.map +1 -1
  461. package/dist/component/ref-capability-integration.js.map +1 -1
  462. package/dist/component/ref-capability.js.map +1 -1
  463. package/dist/component/ref-runtime.js.map +1 -1
  464. package/dist/component/render-instance-construction.js.map +1 -1
  465. package/dist/component/render-instance.js.map +1 -1
  466. package/dist/component/render.js.map +1 -1
  467. package/dist/component/resource-ownership.js.map +1 -1
  468. package/dist/component/resumption.js +3 -1
  469. package/dist/component/resumption.js.map +1 -1
  470. package/dist/component/root-lifecycle.js.map +1 -1
  471. package/dist/component/runtime-construction.js.map +1 -1
  472. package/dist/component/runtime-surface-contexts.js.map +1 -1
  473. package/dist/component/runtime-surface-lifecycle.js.map +1 -1
  474. package/dist/component/runtime-surface-lists.js.map +1 -1
  475. package/dist/component/runtime-surface-localization.js.map +1 -1
  476. package/dist/component/runtime-surface-logging.js.map +1 -1
  477. package/dist/component/runtime-surface-reactivity.js.map +1 -1
  478. package/dist/component/runtime-surface-refs.js.map +1 -1
  479. package/dist/component/runtime-surface-registration.js.map +1 -1
  480. package/dist/component/runtime-surface.js.map +1 -1
  481. package/dist/component/runtime.d.ts +3 -0
  482. package/dist/component/runtime.d.ts.map +1 -1
  483. package/dist/component/runtime.js +32 -6
  484. package/dist/component/runtime.js.map +1 -1
  485. package/dist/component/state.js.map +1 -1
  486. package/dist/component/task-capability-integration.js +1 -0
  487. package/dist/component/task-capability-integration.js.map +1 -1
  488. package/dist/component/task-capability.js.map +1 -1
  489. package/dist/component/task-inspection-history.js.map +1 -1
  490. package/dist/component/task-instance-construction.js.map +1 -1
  491. package/dist/component/task-instance.js.map +1 -1
  492. package/dist/component/task-observer.js.map +1 -1
  493. package/dist/component/task-owner-integration.js.map +1 -1
  494. package/dist/component/value-contracts.js.map +1 -1
  495. package/dist/component-abi/activity-receipt.js.map +1 -1
  496. package/dist/component-abi/artifact.js.map +1 -1
  497. package/dist/component-abi/child-range-receipt.js.map +1 -1
  498. package/dist/component-abi/client.d.ts +2 -1
  499. package/dist/component-abi/client.d.ts.map +1 -1
  500. package/dist/component-abi/client.js.map +1 -1
  501. package/dist/component-abi/compatibility-contribution.js.map +1 -1
  502. package/dist/component-abi/compiled-child-range.d.ts.map +1 -1
  503. package/dist/component-abi/compiled-child-range.js +6 -1
  504. package/dist/component-abi/compiled-child-range.js.map +1 -1
  505. package/dist/component-abi/compiled-runtime.js.map +1 -1
  506. package/dist/component-abi/executable-fields.js.map +1 -1
  507. package/dist/component-abi/fragment-receipt.d.ts +20 -0
  508. package/dist/component-abi/fragment-receipt.d.ts.map +1 -1
  509. package/dist/component-abi/fragment-receipt.js +35 -5
  510. package/dist/component-abi/fragment-receipt.js.map +1 -1
  511. package/dist/component-abi/intrinsic-receipt.d.ts +10 -0
  512. package/dist/component-abi/intrinsic-receipt.d.ts.map +1 -1
  513. package/dist/component-abi/intrinsic-receipt.js +44 -6
  514. package/dist/component-abi/intrinsic-receipt.js.map +1 -1
  515. package/dist/component-abi/keyed-child-receipt.js.map +1 -1
  516. package/dist/component-abi/opaque-operation.d.ts.map +1 -1
  517. package/dist/component-abi/opaque-operation.js +36 -3
  518. package/dist/component-abi/opaque-operation.js.map +1 -1
  519. package/dist/component-abi/portal-receipt.js.map +1 -1
  520. package/dist/component-abi/receipt.d.ts +7 -0
  521. package/dist/component-abi/receipt.d.ts.map +1 -1
  522. package/dist/component-abi/receipt.js +9 -0
  523. package/dist/component-abi/receipt.js.map +1 -1
  524. package/dist/component-abi/runtime.js.map +1 -1
  525. package/dist/component-abi/server-child-range.js +1 -1
  526. package/dist/component-abi/server-child-range.js.map +1 -1
  527. package/dist/component-abi/server-keyed-child.js.map +1 -1
  528. package/dist/component-abi/server-runtime.js.map +1 -1
  529. package/dist/component-abi/server-structure-receipts.js.map +1 -1
  530. package/dist/component-abi/server.d.ts +2 -1
  531. package/dist/component-abi/server.d.ts.map +1 -1
  532. package/dist/component-abi/server.js.map +1 -1
  533. package/dist/component-abi/suspense-receipt.js.map +1 -1
  534. package/dist/component-abi/target-receipt.d.ts +23 -1
  535. package/dist/component-abi/target-receipt.d.ts.map +1 -1
  536. package/dist/component-abi/target-receipt.js +46 -5
  537. package/dist/component-abi/target-receipt.js.map +1 -1
  538. package/dist/component-abi/text-projection-markup.d.ts +16 -0
  539. package/dist/component-abi/text-projection-markup.d.ts.map +1 -0
  540. package/dist/component-abi/text-projection-markup.js +110 -0
  541. package/dist/component-abi/text-projection-markup.js.map +1 -0
  542. package/dist/component-abi/text-projection.d.ts +12 -0
  543. package/dist/component-abi/text-projection.d.ts.map +1 -0
  544. package/dist/component-abi/text-projection.js +79 -0
  545. package/dist/component-abi/text-projection.js.map +1 -0
  546. package/dist/component-abi/unsafe-html-receipt.js.map +1 -1
  547. package/dist/component-abi/value-serialization.js.map +1 -1
  548. package/dist/component-contract/boundary-validation.js.map +1 -1
  549. package/dist/component-contract/composition-support.js.map +1 -1
  550. package/dist/component-contract/continuation-validation.js.map +1 -1
  551. package/dist/component-contract/contract-cache.js.map +1 -1
  552. package/dist/component-contract/contract-validation.d.ts.map +1 -1
  553. package/dist/component-contract/contract-validation.js +5 -13
  554. package/dist/component-contract/contract-validation.js.map +1 -1
  555. package/dist/component-contract/metadata-validation.d.ts +4 -0
  556. package/dist/component-contract/metadata-validation.d.ts.map +1 -1
  557. package/dist/component-contract/metadata-validation.js +16 -0
  558. package/dist/component-contract/metadata-validation.js.map +1 -1
  559. package/dist/component-contract/server-execution-validation.js.map +1 -1
  560. package/dist/component-contracts.d.ts +4 -3
  561. package/dist/component-contracts.d.ts.map +1 -1
  562. package/dist/component-contracts.js +7 -1
  563. package/dist/component-contracts.js.map +1 -1
  564. package/dist/component-definition-contracts.js.map +1 -1
  565. package/dist/component-registry/contracts.js.map +1 -1
  566. package/dist/component-registry/creation.d.ts.map +1 -1
  567. package/dist/component-registry/creation.js +4 -3
  568. package/dist/component-registry/creation.js.map +1 -1
  569. package/dist/component-registry/errors.js.map +1 -1
  570. package/dist/component-registry/loading.js.map +1 -1
  571. package/dist/component-registry/operations.js.map +1 -1
  572. package/dist/component-registry/storage.js.map +1 -1
  573. package/dist/component-registry/syntax.js.map +1 -1
  574. package/dist/document/composition.d.ts +7 -0
  575. package/dist/document/composition.d.ts.map +1 -0
  576. package/dist/document/composition.js +52 -0
  577. package/dist/document/composition.js.map +1 -0
  578. package/dist/document/definition.d.ts +10 -0
  579. package/dist/document/definition.d.ts.map +1 -0
  580. package/dist/document/definition.js +3 -0
  581. package/dist/document/definition.js.map +1 -0
  582. package/dist/document/doctype.d.ts +17 -0
  583. package/dist/document/doctype.d.ts.map +1 -0
  584. package/dist/document/doctype.js +35 -0
  585. package/dist/document/doctype.js.map +1 -0
  586. package/dist/document/output.d.ts +22 -0
  587. package/dist/document/output.d.ts.map +1 -0
  588. package/dist/document/output.js +30 -0
  589. package/dist/document/output.js.map +1 -0
  590. package/dist/document.d.ts +6 -0
  591. package/dist/document.d.ts.map +1 -0
  592. package/dist/document.js +5 -0
  593. package/dist/document.js.map +1 -0
  594. package/dist/dynamic-component/contracts.js.map +1 -1
  595. package/dist/dynamic-component/creation.js.map +1 -1
  596. package/dist/dynamic-component/runtime.js.map +1 -1
  597. package/dist/enhancements.d.ts +2 -0
  598. package/dist/enhancements.d.ts.map +1 -1
  599. package/dist/enhancements.js +8 -4
  600. package/dist/enhancements.js.map +1 -1
  601. package/dist/framework/async-values.js.map +1 -1
  602. package/dist/framework/compatibility-contributions.js.map +1 -1
  603. package/dist/framework/component-contract-validation.js.map +1 -1
  604. package/dist/framework/component-contracts.js.map +1 -1
  605. package/dist/framework/component-domains.js.map +1 -1
  606. package/dist/framework/component-execution.js.map +1 -1
  607. package/dist/framework/component-lifecycle.js.map +1 -1
  608. package/dist/framework/component-roots.js.map +1 -1
  609. package/dist/framework/enhancement-catalog.js.map +1 -1
  610. package/dist/framework/enhancement-fallback.d.ts +12 -0
  611. package/dist/framework/enhancement-fallback.d.ts.map +1 -0
  612. package/dist/framework/enhancement-fallback.js +41 -0
  613. package/dist/framework/enhancement-fallback.js.map +1 -0
  614. package/dist/framework/enhancement-order.d.ts +9 -0
  615. package/dist/framework/enhancement-order.d.ts.map +1 -0
  616. package/dist/framework/enhancement-order.js +34 -0
  617. package/dist/framework/enhancement-order.js.map +1 -0
  618. package/dist/framework/error-format.js.map +1 -1
  619. package/dist/framework/error-view.js.map +1 -1
  620. package/dist/framework/fragment-enhancement-chain.d.ts +4 -0
  621. package/dist/framework/fragment-enhancement-chain.d.ts.map +1 -0
  622. package/dist/framework/fragment-enhancement-chain.js +28 -0
  623. package/dist/framework/fragment-enhancement-chain.js.map +1 -0
  624. package/dist/framework/fragment-hosts.d.ts +30 -0
  625. package/dist/framework/fragment-hosts.d.ts.map +1 -0
  626. package/dist/framework/fragment-hosts.js +65 -0
  627. package/dist/framework/fragment-hosts.js.map +1 -0
  628. package/dist/framework/fragment-target-projection.d.ts +8 -0
  629. package/dist/framework/fragment-target-projection.d.ts.map +1 -0
  630. package/dist/framework/fragment-target-projection.js +98 -0
  631. package/dist/framework/fragment-target-projection.js.map +1 -0
  632. package/dist/framework/inspection-transport.js.map +1 -1
  633. package/dist/framework/operation-protocol.js.map +1 -1
  634. package/dist/framework/prepared-target-output.d.ts +11 -0
  635. package/dist/framework/prepared-target-output.d.ts.map +1 -0
  636. package/dist/framework/prepared-target-output.js +51 -0
  637. package/dist/framework/prepared-target-output.js.map +1 -0
  638. package/dist/framework/protocol-records.js.map +1 -1
  639. package/dist/framework/publication.js.map +1 -1
  640. package/dist/framework/render-structure.d.ts +10 -0
  641. package/dist/framework/render-structure.d.ts.map +1 -1
  642. package/dist/framework/render-structure.js +10 -0
  643. package/dist/framework/render-structure.js.map +1 -1
  644. package/dist/framework/server-component-contexts.js.map +1 -1
  645. package/dist/framework/server-component-execution.js.map +1 -1
  646. package/dist/framework/server-render-structure.js.map +1 -1
  647. package/dist/framework/server-task-helpers.d.ts +2 -1
  648. package/dist/framework/server-task-helpers.d.ts.map +1 -1
  649. package/dist/framework/server-task-helpers.js +2 -1
  650. package/dist/framework/server-task-helpers.js.map +1 -1
  651. package/dist/framework/supplied-placement.d.ts +8 -0
  652. package/dist/framework/supplied-placement.d.ts.map +1 -0
  653. package/dist/framework/supplied-placement.js +80 -0
  654. package/dist/framework/supplied-placement.js.map +1 -0
  655. package/dist/framework/target-contributions.d.ts +2 -0
  656. package/dist/framework/target-contributions.d.ts.map +1 -1
  657. package/dist/framework/target-contributions.js +38 -0
  658. package/dist/framework/target-contributions.js.map +1 -1
  659. package/dist/framework/task-frames.js.map +1 -1
  660. package/dist/framework/text-target-output.d.ts +6 -0
  661. package/dist/framework/text-target-output.d.ts.map +1 -0
  662. package/dist/framework/text-target-output.js +14 -0
  663. package/dist/framework/text-target-output.js.map +1 -0
  664. package/dist/hydration-boundary.js.map +1 -1
  665. package/dist/index.js.map +1 -1
  666. package/dist/inspection-transport.js.map +1 -1
  667. package/dist/interaction/execution.js.map +1 -1
  668. package/dist/json.js.map +1 -1
  669. package/dist/keys.js.map +1 -1
  670. package/dist/localization/component-integration.js.map +1 -1
  671. package/dist/localization/context.js.map +1 -1
  672. package/dist/localization/contracts.js.map +1 -1
  673. package/dist/localization/facade.js.map +1 -1
  674. package/dist/localization/formatter-pool.js.map +1 -1
  675. package/dist/localization.js.map +1 -1
  676. package/dist/logging.js.map +1 -1
  677. package/dist/native-props.js.map +1 -1
  678. package/dist/protocol-utf8.js.map +1 -1
  679. package/dist/protocol.js.map +1 -1
  680. package/dist/render-children.js.map +1 -1
  681. package/dist/render-program.d.ts +4 -1
  682. package/dist/render-program.d.ts.map +1 -1
  683. package/dist/render-program.js +1 -1
  684. package/dist/render-program.js.map +1 -1
  685. package/dist/runtime/collections.js.map +1 -1
  686. package/dist/runtime/compatibility-component-abi.js.map +1 -1
  687. package/dist/runtime/component-abi.d.ts +3 -3
  688. package/dist/runtime/component-abi.d.ts.map +1 -1
  689. package/dist/runtime/component-abi.js +3 -3
  690. package/dist/runtime/component-abi.js.map +1 -1
  691. package/dist/runtime/component-construction/direct-server.js.map +1 -1
  692. package/dist/runtime/component-construction/durable.js.map +1 -1
  693. package/dist/runtime/component-construction/render.js.map +1 -1
  694. package/dist/runtime/component-construction/task.js.map +1 -1
  695. package/dist/runtime/component-execution.js.map +1 -1
  696. package/dist/runtime/component-operations.d.ts +3 -0
  697. package/dist/runtime/component-operations.d.ts.map +1 -1
  698. package/dist/runtime/component-operations.js +3 -0
  699. package/dist/runtime/component-operations.js.map +1 -1
  700. package/dist/runtime/component-reactivity.js.map +1 -1
  701. package/dist/runtime/component-tasks.js.map +1 -1
  702. package/dist/runtime/contexts.js.map +1 -1
  703. package/dist/runtime/dynamic-components.js.map +1 -1
  704. package/dist/runtime/enhancements.js.map +1 -1
  705. package/dist/runtime/inspection.js.map +1 -1
  706. package/dist/runtime/lifecycle.js.map +1 -1
  707. package/dist/runtime/lists.js.map +1 -1
  708. package/dist/runtime/localization.js.map +1 -1
  709. package/dist/runtime/logging.js.map +1 -1
  710. package/dist/runtime/reactivity.js.map +1 -1
  711. package/dist/runtime/refs.js.map +1 -1
  712. package/dist/runtime/registry.js.map +1 -1
  713. package/dist/runtime/render-operations.js.map +1 -1
  714. package/dist/runtime/render.js.map +1 -1
  715. package/dist/runtime/tasks.js.map +1 -1
  716. package/dist/server/activity.js.map +1 -1
  717. package/dist/server/children/composition.d.ts +34 -0
  718. package/dist/server/children/composition.d.ts.map +1 -0
  719. package/dist/server/children/composition.js +74 -0
  720. package/dist/server/children/composition.js.map +1 -0
  721. package/dist/server/children.d.ts +4 -0
  722. package/dist/server/children.d.ts.map +1 -0
  723. package/dist/server/children.js +3 -0
  724. package/dist/server/children.js.map +1 -0
  725. package/dist/server/class-values.js.map +1 -1
  726. package/dist/server/cleanup.js.map +1 -1
  727. package/dist/server/component/async-value.js.map +1 -1
  728. package/dist/server/component/async.js.map +1 -1
  729. package/dist/server/component/authorization.js.map +1 -1
  730. package/dist/server/component/compact-instance.js.map +1 -1
  731. package/dist/server/component/compiled-abi.js.map +1 -1
  732. package/dist/server/component/compiled-output.js.map +1 -1
  733. package/dist/server/component/construction.js.map +1 -1
  734. package/dist/server/component/context-api.js.map +1 -1
  735. package/dist/server/component/context-capability-integration.js.map +1 -1
  736. package/dist/server/component/context-capability.js.map +1 -1
  737. package/dist/server/component/context-inspection.js.map +1 -1
  738. package/dist/server/component/context-resumption.js.map +1 -1
  739. package/dist/server/component/contexts.js.map +1 -1
  740. package/dist/server/component/contract-versions.d.ts +2 -2
  741. package/dist/server/component/contract-versions.js +2 -2
  742. package/dist/server/component/contract-versions.js.map +1 -1
  743. package/dist/server/component/contracts.d.ts +4 -2
  744. package/dist/server/component/contracts.d.ts.map +1 -1
  745. package/dist/server/component/contracts.js.map +1 -1
  746. package/dist/server/component/default-logger.js.map +1 -1
  747. package/dist/server/component/derived.js.map +1 -1
  748. package/dist/server/component/direct-server-context-api.js.map +1 -1
  749. package/dist/server/component/direct-server-instance-construction.js.map +1 -1
  750. package/dist/server/component/domain.d.ts +2 -0
  751. package/dist/server/component/domain.d.ts.map +1 -1
  752. package/dist/server/component/domain.js +4 -0
  753. package/dist/server/component/domain.js.map +1 -1
  754. package/dist/server/component/durable-instance-construction.js.map +1 -1
  755. package/dist/server/component/element-identity.js.map +1 -1
  756. package/dist/server/component/error-boundary.js +2 -2
  757. package/dist/server/component/error-boundary.js.map +1 -1
  758. package/dist/server/component/error-view.js.map +1 -1
  759. package/dist/server/component/errors.js.map +1 -1
  760. package/dist/server/component/input-observation.js.map +1 -1
  761. package/dist/server/component/inspection-source.js.map +1 -1
  762. package/dist/server/component/inspection.js.map +1 -1
  763. package/dist/server/component/instance-construction.js.map +1 -1
  764. package/dist/server/component/instance-identity.js.map +1 -1
  765. package/dist/server/component/interaction-contracts.js.map +1 -1
  766. package/dist/server/component/lifecycle-handlers.js.map +1 -1
  767. package/dist/server/component/list-capability-integration.js.map +1 -1
  768. package/dist/server/component/list-capability.js.map +1 -1
  769. package/dist/server/component/list-controller.js.map +1 -1
  770. package/dist/server/component/localization-capability.js.map +1 -1
  771. package/dist/server/component/log.js.map +1 -1
  772. package/dist/server/component/logical-owner.d.ts.map +1 -1
  773. package/dist/server/component/logical-owner.js +3 -2
  774. package/dist/server/component/logical-owner.js.map +1 -1
  775. package/dist/server/component/ownership.js.map +1 -1
  776. package/dist/server/component/performance-trace.js.map +1 -1
  777. package/dist/server/component/plugins.js.map +1 -1
  778. package/dist/server/component/reactive-expression.js.map +1 -1
  779. package/dist/server/component/reactive-expressions.d.ts.map +1 -1
  780. package/dist/server/component/reactive-expressions.js +3 -2
  781. package/dist/server/component/reactive-expressions.js.map +1 -1
  782. package/dist/server/component/reactive-value.js.map +1 -1
  783. package/dist/server/component/readiness.js.map +1 -1
  784. package/dist/server/component/ref-capability-integration.js.map +1 -1
  785. package/dist/server/component/ref-capability.js.map +1 -1
  786. package/dist/server/component/ref-runtime.js.map +1 -1
  787. package/dist/server/component/render-instance-construction.js.map +1 -1
  788. package/dist/server/component/render-instance.js.map +1 -1
  789. package/dist/server/component/render.js.map +1 -1
  790. package/dist/server/component/resource-ownership.js.map +1 -1
  791. package/dist/server/component/resumption.js +3 -1
  792. package/dist/server/component/resumption.js.map +1 -1
  793. package/dist/server/component/root-lifecycle.js.map +1 -1
  794. package/dist/server/component/runtime-construction.js.map +1 -1
  795. package/dist/server/component/runtime-surface-contexts.js.map +1 -1
  796. package/dist/server/component/runtime-surface-lifecycle.js.map +1 -1
  797. package/dist/server/component/runtime-surface-lists.js.map +1 -1
  798. package/dist/server/component/runtime-surface-localization.js.map +1 -1
  799. package/dist/server/component/runtime-surface-logging.js.map +1 -1
  800. package/dist/server/component/runtime-surface-reactivity.js.map +1 -1
  801. package/dist/server/component/runtime-surface-refs.js.map +1 -1
  802. package/dist/server/component/runtime-surface-registration.js.map +1 -1
  803. package/dist/server/component/runtime-surface.js.map +1 -1
  804. package/dist/server/component/runtime.d.ts +3 -0
  805. package/dist/server/component/runtime.d.ts.map +1 -1
  806. package/dist/server/component/runtime.js +32 -6
  807. package/dist/server/component/runtime.js.map +1 -1
  808. package/dist/server/component/state.js.map +1 -1
  809. package/dist/server/component/task-capability-integration.js +1 -0
  810. package/dist/server/component/task-capability-integration.js.map +1 -1
  811. package/dist/server/component/task-capability.js.map +1 -1
  812. package/dist/server/component/task-inspection-history.js.map +1 -1
  813. package/dist/server/component/task-instance-construction.js.map +1 -1
  814. package/dist/server/component/task-instance.js.map +1 -1
  815. package/dist/server/component/task-observer.js.map +1 -1
  816. package/dist/server/component/task-owner-integration.js.map +1 -1
  817. package/dist/server/component/value-contracts.js.map +1 -1
  818. package/dist/server/component-abi/activity-receipt.js.map +1 -1
  819. package/dist/server/component-abi/artifact.js.map +1 -1
  820. package/dist/server/component-abi/child-range-receipt.js.map +1 -1
  821. package/dist/server/component-abi/client.d.ts +2 -1
  822. package/dist/server/component-abi/client.d.ts.map +1 -1
  823. package/dist/server/component-abi/client.js.map +1 -1
  824. package/dist/server/component-abi/compatibility-contribution.js.map +1 -1
  825. package/dist/server/component-abi/compiled-child-range.d.ts.map +1 -1
  826. package/dist/server/component-abi/compiled-child-range.js +6 -1
  827. package/dist/server/component-abi/compiled-child-range.js.map +1 -1
  828. package/dist/server/component-abi/compiled-runtime.js.map +1 -1
  829. package/dist/server/component-abi/executable-fields.js.map +1 -1
  830. package/dist/server/component-abi/fragment-receipt.d.ts +20 -0
  831. package/dist/server/component-abi/fragment-receipt.d.ts.map +1 -1
  832. package/dist/server/component-abi/fragment-receipt.js +35 -5
  833. package/dist/server/component-abi/fragment-receipt.js.map +1 -1
  834. package/dist/server/component-abi/intrinsic-receipt.d.ts +10 -0
  835. package/dist/server/component-abi/intrinsic-receipt.d.ts.map +1 -1
  836. package/dist/server/component-abi/intrinsic-receipt.js +44 -6
  837. package/dist/server/component-abi/intrinsic-receipt.js.map +1 -1
  838. package/dist/server/component-abi/keyed-child-receipt.js.map +1 -1
  839. package/dist/server/component-abi/opaque-operation.d.ts.map +1 -1
  840. package/dist/server/component-abi/opaque-operation.js +36 -3
  841. package/dist/server/component-abi/opaque-operation.js.map +1 -1
  842. package/dist/server/component-abi/portal-receipt.js.map +1 -1
  843. package/dist/server/component-abi/receipt.d.ts +7 -0
  844. package/dist/server/component-abi/receipt.d.ts.map +1 -1
  845. package/dist/server/component-abi/receipt.js +9 -0
  846. package/dist/server/component-abi/receipt.js.map +1 -1
  847. package/dist/server/component-abi/runtime.js.map +1 -1
  848. package/dist/server/component-abi/server-child-range.js +1 -1
  849. package/dist/server/component-abi/server-child-range.js.map +1 -1
  850. package/dist/server/component-abi/server-keyed-child.js.map +1 -1
  851. package/dist/server/component-abi/server-runtime.js.map +1 -1
  852. package/dist/server/component-abi/server-structure-receipts.js.map +1 -1
  853. package/dist/server/component-abi/server.d.ts +2 -1
  854. package/dist/server/component-abi/server.d.ts.map +1 -1
  855. package/dist/server/component-abi/server.js.map +1 -1
  856. package/dist/server/component-abi/suspense-receipt.js.map +1 -1
  857. package/dist/server/component-abi/target-receipt.d.ts +23 -1
  858. package/dist/server/component-abi/target-receipt.d.ts.map +1 -1
  859. package/dist/server/component-abi/target-receipt.js +46 -5
  860. package/dist/server/component-abi/target-receipt.js.map +1 -1
  861. package/dist/server/component-abi/text-projection-markup.d.ts +16 -0
  862. package/dist/server/component-abi/text-projection-markup.d.ts.map +1 -0
  863. package/dist/server/component-abi/text-projection-markup.js +110 -0
  864. package/dist/server/component-abi/text-projection-markup.js.map +1 -0
  865. package/dist/server/component-abi/text-projection.d.ts +12 -0
  866. package/dist/server/component-abi/text-projection.d.ts.map +1 -0
  867. package/dist/server/component-abi/text-projection.js +79 -0
  868. package/dist/server/component-abi/text-projection.js.map +1 -0
  869. package/dist/server/component-abi/unsafe-html-receipt.js.map +1 -1
  870. package/dist/server/component-abi/value-serialization.js.map +1 -1
  871. package/dist/server/component-contract/boundary-validation.js.map +1 -1
  872. package/dist/server/component-contract/composition-support.js.map +1 -1
  873. package/dist/server/component-contract/continuation-validation.js.map +1 -1
  874. package/dist/server/component-contract/contract-cache.js.map +1 -1
  875. package/dist/server/component-contract/contract-validation.d.ts.map +1 -1
  876. package/dist/server/component-contract/contract-validation.js +5 -13
  877. package/dist/server/component-contract/contract-validation.js.map +1 -1
  878. package/dist/server/component-contract/metadata-validation.d.ts +4 -0
  879. package/dist/server/component-contract/metadata-validation.d.ts.map +1 -1
  880. package/dist/server/component-contract/metadata-validation.js +16 -0
  881. package/dist/server/component-contract/metadata-validation.js.map +1 -1
  882. package/dist/server/component-contract/server-execution-validation.js.map +1 -1
  883. package/dist/server/component-contracts.d.ts +4 -3
  884. package/dist/server/component-contracts.d.ts.map +1 -1
  885. package/dist/server/component-contracts.js +7 -1
  886. package/dist/server/component-contracts.js.map +1 -1
  887. package/dist/server/component-definition-contracts.js.map +1 -1
  888. package/dist/server/component-registry/contracts.js.map +1 -1
  889. package/dist/server/component-registry/creation.d.ts.map +1 -1
  890. package/dist/server/component-registry/creation.js +4 -3
  891. package/dist/server/component-registry/creation.js.map +1 -1
  892. package/dist/server/component-registry/errors.js.map +1 -1
  893. package/dist/server/component-registry/loading.js.map +1 -1
  894. package/dist/server/component-registry/operations.js.map +1 -1
  895. package/dist/server/component-registry/storage.js.map +1 -1
  896. package/dist/server/component-registry/syntax.js.map +1 -1
  897. package/dist/server/document/composition.d.ts +7 -0
  898. package/dist/server/document/composition.d.ts.map +1 -0
  899. package/dist/server/document/composition.js +52 -0
  900. package/dist/server/document/composition.js.map +1 -0
  901. package/dist/server/document/definition.d.ts +10 -0
  902. package/dist/server/document/definition.d.ts.map +1 -0
  903. package/dist/server/document/definition.js +3 -0
  904. package/dist/server/document/definition.js.map +1 -0
  905. package/dist/server/document/doctype.d.ts +17 -0
  906. package/dist/server/document/doctype.d.ts.map +1 -0
  907. package/dist/server/document/doctype.js +35 -0
  908. package/dist/server/document/doctype.js.map +1 -0
  909. package/dist/server/document/output.d.ts +22 -0
  910. package/dist/server/document/output.d.ts.map +1 -0
  911. package/dist/server/document/output.js +30 -0
  912. package/dist/server/document/output.js.map +1 -0
  913. package/dist/server/document.d.ts +6 -0
  914. package/dist/server/document.d.ts.map +1 -0
  915. package/dist/server/document.js +5 -0
  916. package/dist/server/document.js.map +1 -0
  917. package/dist/server/dynamic-component/contracts.js.map +1 -1
  918. package/dist/server/dynamic-component/creation.js.map +1 -1
  919. package/dist/server/dynamic-component/runtime.js.map +1 -1
  920. package/dist/server/enhancements.d.ts +2 -0
  921. package/dist/server/enhancements.d.ts.map +1 -1
  922. package/dist/server/enhancements.js +8 -4
  923. package/dist/server/enhancements.js.map +1 -1
  924. package/dist/server/framework/async-values.js.map +1 -1
  925. package/dist/server/framework/compatibility-contributions.js.map +1 -1
  926. package/dist/server/framework/component-contract-validation.js.map +1 -1
  927. package/dist/server/framework/component-contracts.js.map +1 -1
  928. package/dist/server/framework/component-domains.js.map +1 -1
  929. package/dist/server/framework/component-execution.js.map +1 -1
  930. package/dist/server/framework/component-lifecycle.js.map +1 -1
  931. package/dist/server/framework/component-roots.js.map +1 -1
  932. package/dist/server/framework/enhancement-catalog.js.map +1 -1
  933. package/dist/server/framework/enhancement-fallback.d.ts +12 -0
  934. package/dist/server/framework/enhancement-fallback.d.ts.map +1 -0
  935. package/dist/server/framework/enhancement-fallback.js +41 -0
  936. package/dist/server/framework/enhancement-fallback.js.map +1 -0
  937. package/dist/server/framework/enhancement-order.d.ts +9 -0
  938. package/dist/server/framework/enhancement-order.d.ts.map +1 -0
  939. package/dist/server/framework/enhancement-order.js +34 -0
  940. package/dist/server/framework/enhancement-order.js.map +1 -0
  941. package/dist/server/framework/error-format.js.map +1 -1
  942. package/dist/server/framework/error-view.js.map +1 -1
  943. package/dist/server/framework/fragment-enhancement-chain.d.ts +4 -0
  944. package/dist/server/framework/fragment-enhancement-chain.d.ts.map +1 -0
  945. package/dist/server/framework/fragment-enhancement-chain.js +28 -0
  946. package/dist/server/framework/fragment-enhancement-chain.js.map +1 -0
  947. package/dist/server/framework/fragment-hosts.d.ts +30 -0
  948. package/dist/server/framework/fragment-hosts.d.ts.map +1 -0
  949. package/dist/server/framework/fragment-hosts.js +65 -0
  950. package/dist/server/framework/fragment-hosts.js.map +1 -0
  951. package/dist/server/framework/fragment-target-projection.d.ts +8 -0
  952. package/dist/server/framework/fragment-target-projection.d.ts.map +1 -0
  953. package/dist/server/framework/fragment-target-projection.js +98 -0
  954. package/dist/server/framework/fragment-target-projection.js.map +1 -0
  955. package/dist/server/framework/inspection-transport.js.map +1 -1
  956. package/dist/server/framework/operation-protocol.js.map +1 -1
  957. package/dist/server/framework/prepared-target-output.d.ts +11 -0
  958. package/dist/server/framework/prepared-target-output.d.ts.map +1 -0
  959. package/dist/server/framework/prepared-target-output.js +51 -0
  960. package/dist/server/framework/prepared-target-output.js.map +1 -0
  961. package/dist/server/framework/protocol-records.js.map +1 -1
  962. package/dist/server/framework/publication.js.map +1 -1
  963. package/dist/server/framework/render-structure.d.ts +10 -0
  964. package/dist/server/framework/render-structure.d.ts.map +1 -1
  965. package/dist/server/framework/render-structure.js +10 -0
  966. package/dist/server/framework/render-structure.js.map +1 -1
  967. package/dist/server/framework/server-component-contexts.js.map +1 -1
  968. package/dist/server/framework/server-component-execution.js.map +1 -1
  969. package/dist/server/framework/server-render-structure.js.map +1 -1
  970. package/dist/server/framework/server-task-helpers.d.ts +2 -1
  971. package/dist/server/framework/server-task-helpers.d.ts.map +1 -1
  972. package/dist/server/framework/server-task-helpers.js +2 -1
  973. package/dist/server/framework/server-task-helpers.js.map +1 -1
  974. package/dist/server/framework/supplied-placement.d.ts +8 -0
  975. package/dist/server/framework/supplied-placement.d.ts.map +1 -0
  976. package/dist/server/framework/supplied-placement.js +80 -0
  977. package/dist/server/framework/supplied-placement.js.map +1 -0
  978. package/dist/server/framework/target-contributions.d.ts +2 -0
  979. package/dist/server/framework/target-contributions.d.ts.map +1 -1
  980. package/dist/server/framework/target-contributions.js +38 -0
  981. package/dist/server/framework/target-contributions.js.map +1 -1
  982. package/dist/server/framework/task-frames.js.map +1 -1
  983. package/dist/server/framework/text-target-output.d.ts +6 -0
  984. package/dist/server/framework/text-target-output.d.ts.map +1 -0
  985. package/dist/server/framework/text-target-output.js +14 -0
  986. package/dist/server/framework/text-target-output.js.map +1 -0
  987. package/dist/server/hydration-boundary.js.map +1 -1
  988. package/dist/server/index.js.map +1 -1
  989. package/dist/server/inspection-transport.js.map +1 -1
  990. package/dist/server/interaction/execution.js.map +1 -1
  991. package/dist/server/json.js.map +1 -1
  992. package/dist/server/keys.js.map +1 -1
  993. package/dist/server/localization/component-integration.js.map +1 -1
  994. package/dist/server/localization/context.js.map +1 -1
  995. package/dist/server/localization/contracts.js.map +1 -1
  996. package/dist/server/localization/facade.js.map +1 -1
  997. package/dist/server/localization/formatter-pool.js.map +1 -1
  998. package/dist/server/localization.js.map +1 -1
  999. package/dist/server/logging.js.map +1 -1
  1000. package/dist/server/native-props.js.map +1 -1
  1001. package/dist/server/protocol-utf8.js.map +1 -1
  1002. package/dist/server/protocol.js.map +1 -1
  1003. package/dist/server/render-children.js.map +1 -1
  1004. package/dist/server/render-program.d.ts +4 -1
  1005. package/dist/server/render-program.d.ts.map +1 -1
  1006. package/dist/server/render-program.js +1 -1
  1007. package/dist/server/render-program.js.map +1 -1
  1008. package/dist/server/runtime/collections.js.map +1 -1
  1009. package/dist/server/runtime/compatibility-component-abi.js.map +1 -1
  1010. package/dist/server/runtime/component-abi.d.ts +3 -3
  1011. package/dist/server/runtime/component-abi.d.ts.map +1 -1
  1012. package/dist/server/runtime/component-abi.js +3 -3
  1013. package/dist/server/runtime/component-abi.js.map +1 -1
  1014. package/dist/server/runtime/component-construction/direct-server.js.map +1 -1
  1015. package/dist/server/runtime/component-construction/durable.js.map +1 -1
  1016. package/dist/server/runtime/component-construction/render.js.map +1 -1
  1017. package/dist/server/runtime/component-construction/task.js.map +1 -1
  1018. package/dist/server/runtime/component-execution.js.map +1 -1
  1019. package/dist/server/runtime/component-operations.d.ts +3 -0
  1020. package/dist/server/runtime/component-operations.d.ts.map +1 -1
  1021. package/dist/server/runtime/component-operations.js +3 -0
  1022. package/dist/server/runtime/component-operations.js.map +1 -1
  1023. package/dist/server/runtime/component-reactivity.js.map +1 -1
  1024. package/dist/server/runtime/component-tasks.js.map +1 -1
  1025. package/dist/server/runtime/contexts.js.map +1 -1
  1026. package/dist/server/runtime/dynamic-components.js.map +1 -1
  1027. package/dist/server/runtime/enhancements.js.map +1 -1
  1028. package/dist/server/runtime/inspection.js.map +1 -1
  1029. package/dist/server/runtime/lifecycle.js.map +1 -1
  1030. package/dist/server/runtime/lists.js.map +1 -1
  1031. package/dist/server/runtime/localization.js.map +1 -1
  1032. package/dist/server/runtime/logging.js.map +1 -1
  1033. package/dist/server/runtime/reactivity.js.map +1 -1
  1034. package/dist/server/runtime/refs.js.map +1 -1
  1035. package/dist/server/runtime/registry.js.map +1 -1
  1036. package/dist/server/runtime/render-operations.js.map +1 -1
  1037. package/dist/server/runtime/render.js.map +1 -1
  1038. package/dist/server/runtime/tasks.js.map +1 -1
  1039. package/dist/server/server-render-program.js.map +1 -1
  1040. package/dist/server/ssr-independence.js.map +1 -1
  1041. package/dist/server/symbols.js.map +1 -1
  1042. package/dist/server/tasks/activation.js.map +1 -1
  1043. package/dist/server/tasks/cancellation.js.map +1 -1
  1044. package/dist/server/tasks/compiled-latest.js.map +1 -1
  1045. package/dist/server/tasks/component-continuation.js.map +1 -1
  1046. package/dist/server/tasks/component-execution-capability.js.map +1 -1
  1047. package/dist/server/tasks/component-execution-plan.js.map +1 -1
  1048. package/dist/server/tasks/component-execution-slice.js.map +1 -1
  1049. package/dist/server/tasks/component-execution.js.map +1 -1
  1050. package/dist/server/tasks/computation-activation.js.map +1 -1
  1051. package/dist/server/tasks/continuations.js.map +1 -1
  1052. package/dist/server/tasks/contracts.js.map +1 -1
  1053. package/dist/server/tasks/definition-record.js.map +1 -1
  1054. package/dist/server/tasks/dependency-provenance.js.map +1 -1
  1055. package/dist/server/tasks/dependency-source.js.map +1 -1
  1056. package/dist/server/tasks/dependency-watcher.js.map +1 -1
  1057. package/dist/server/tasks/frame-context.js.map +1 -1
  1058. package/dist/server/tasks/frame-continuation.js.map +1 -1
  1059. package/dist/server/tasks/frame-contracts.js.map +1 -1
  1060. package/dist/server/tasks/frame-inspection-capability.js.map +1 -1
  1061. package/dist/server/tasks/frame-inspection.js.map +1 -1
  1062. package/dist/server/tasks/frame-runtime.js.map +1 -1
  1063. package/dist/server/tasks/frame-settlement.js.map +1 -1
  1064. package/dist/server/tasks/generation-execution.js.map +1 -1
  1065. package/dist/server/tasks/invocation.js.map +1 -1
  1066. package/dist/server/tasks/observers.js.map +1 -1
  1067. package/dist/server/tasks/optimism.js.map +1 -1
  1068. package/dist/server/tasks/options.js.map +1 -1
  1069. package/dist/server/tasks/owner-activations.js.map +1 -1
  1070. package/dist/server/tasks/owner-hosts.js.map +1 -1
  1071. package/dist/server/tasks/owner-record.js.map +1 -1
  1072. package/dist/server/tasks/owners.js.map +1 -1
  1073. package/dist/server/tasks/performance-trace.js.map +1 -1
  1074. package/dist/server/tasks/policy.js.map +1 -1
  1075. package/dist/server/tasks/priority.js.map +1 -1
  1076. package/dist/server/tasks/public.js.map +1 -1
  1077. package/dist/server/tasks/resources.js.map +1 -1
  1078. package/dist/server/tasks/runtime-types.js.map +1 -1
  1079. package/dist/server/tasks/runtime.js.map +1 -1
  1080. package/dist/server/tasks/scheduled-reactions.js.map +1 -1
  1081. package/dist/server/tasks/server-component-execution-contracts.js.map +1 -1
  1082. package/dist/server/tasks/server-component-execution.d.ts +3 -0
  1083. package/dist/server/tasks/server-component-execution.d.ts.map +1 -1
  1084. package/dist/server/tasks/server-component-execution.js +16 -46
  1085. package/dist/server/tasks/server-component-execution.js.map +1 -1
  1086. package/dist/server/tasks/server-component-resources.js.map +1 -1
  1087. package/dist/server/tasks/server-component-task-slice.d.ts +5 -0
  1088. package/dist/server/tasks/server-component-task-slice.d.ts.map +1 -0
  1089. package/dist/server/tasks/server-component-task-slice.js +56 -0
  1090. package/dist/server/tasks/server-component-task-slice.js.map +1 -0
  1091. package/dist/server/tasks/server-component-task-tree.d.ts +9 -0
  1092. package/dist/server/tasks/server-component-task-tree.d.ts.map +1 -0
  1093. package/dist/server/tasks/server-component-task-tree.js +38 -0
  1094. package/dist/server/tasks/server-component-task-tree.js.map +1 -0
  1095. package/dist/server/tasks/server-task-readiness.js.map +1 -1
  1096. package/dist/server/tasks/signals.js.map +1 -1
  1097. package/dist/server/tasks/status.js.map +1 -1
  1098. package/dist/server/tasks/v1.js.map +1 -1
  1099. package/dist/server/testing/runtime-artifacts.d.ts.map +1 -1
  1100. package/dist/server/testing/runtime-artifacts.js +4 -3
  1101. package/dist/server/testing/runtime-artifacts.js.map +1 -1
  1102. package/dist/server/testing/runtime.d.ts.map +1 -1
  1103. package/dist/server/testing/runtime.js +4 -2
  1104. package/dist/server/testing/runtime.js.map +1 -1
  1105. package/dist/server/testing.js.map +1 -1
  1106. package/dist/server/url.js.map +1 -1
  1107. package/dist/server-render-program.js.map +1 -1
  1108. package/dist/ssr-independence.js.map +1 -1
  1109. package/dist/symbols.js.map +1 -1
  1110. package/dist/tasks/activation.js.map +1 -1
  1111. package/dist/tasks/cancellation.js.map +1 -1
  1112. package/dist/tasks/compiled-latest.js.map +1 -1
  1113. package/dist/tasks/component-continuation.js.map +1 -1
  1114. package/dist/tasks/component-execution-capability.js.map +1 -1
  1115. package/dist/tasks/component-execution-plan.js.map +1 -1
  1116. package/dist/tasks/component-execution-slice.js.map +1 -1
  1117. package/dist/tasks/component-execution.js.map +1 -1
  1118. package/dist/tasks/computation-activation.js.map +1 -1
  1119. package/dist/tasks/continuations.js.map +1 -1
  1120. package/dist/tasks/contracts.js.map +1 -1
  1121. package/dist/tasks/definition-record.js.map +1 -1
  1122. package/dist/tasks/dependency-provenance.js.map +1 -1
  1123. package/dist/tasks/dependency-source.js.map +1 -1
  1124. package/dist/tasks/dependency-watcher.js.map +1 -1
  1125. package/dist/tasks/frame-context.js.map +1 -1
  1126. package/dist/tasks/frame-continuation.js.map +1 -1
  1127. package/dist/tasks/frame-contracts.js.map +1 -1
  1128. package/dist/tasks/frame-inspection-capability.js.map +1 -1
  1129. package/dist/tasks/frame-inspection.js.map +1 -1
  1130. package/dist/tasks/frame-runtime.js.map +1 -1
  1131. package/dist/tasks/frame-settlement.js.map +1 -1
  1132. package/dist/tasks/generation-execution.js.map +1 -1
  1133. package/dist/tasks/invocation.js.map +1 -1
  1134. package/dist/tasks/observers.js.map +1 -1
  1135. package/dist/tasks/optimism.js.map +1 -1
  1136. package/dist/tasks/options.js.map +1 -1
  1137. package/dist/tasks/owner-activations.js.map +1 -1
  1138. package/dist/tasks/owner-hosts.js.map +1 -1
  1139. package/dist/tasks/owner-record.js.map +1 -1
  1140. package/dist/tasks/owners.js.map +1 -1
  1141. package/dist/tasks/performance-trace.js.map +1 -1
  1142. package/dist/tasks/policy.js.map +1 -1
  1143. package/dist/tasks/priority.js.map +1 -1
  1144. package/dist/tasks/public.js.map +1 -1
  1145. package/dist/tasks/resources.js.map +1 -1
  1146. package/dist/tasks/runtime-types.js.map +1 -1
  1147. package/dist/tasks/runtime.js.map +1 -1
  1148. package/dist/tasks/scheduled-reactions.js.map +1 -1
  1149. package/dist/tasks/server-component-execution-contracts.js.map +1 -1
  1150. package/dist/tasks/server-component-execution.d.ts +3 -0
  1151. package/dist/tasks/server-component-execution.d.ts.map +1 -1
  1152. package/dist/tasks/server-component-execution.js +16 -46
  1153. package/dist/tasks/server-component-execution.js.map +1 -1
  1154. package/dist/tasks/server-component-resources.js.map +1 -1
  1155. package/dist/tasks/server-component-task-slice.d.ts +5 -0
  1156. package/dist/tasks/server-component-task-slice.d.ts.map +1 -0
  1157. package/dist/tasks/server-component-task-slice.js +56 -0
  1158. package/dist/tasks/server-component-task-slice.js.map +1 -0
  1159. package/dist/tasks/server-component-task-tree.d.ts +9 -0
  1160. package/dist/tasks/server-component-task-tree.d.ts.map +1 -0
  1161. package/dist/tasks/server-component-task-tree.js +38 -0
  1162. package/dist/tasks/server-component-task-tree.js.map +1 -0
  1163. package/dist/tasks/server-task-readiness.js.map +1 -1
  1164. package/dist/tasks/signals.js.map +1 -1
  1165. package/dist/tasks/status.js.map +1 -1
  1166. package/dist/tasks/v1.js.map +1 -1
  1167. package/dist/testing/runtime-artifacts.d.ts.map +1 -1
  1168. package/dist/testing/runtime-artifacts.js +4 -3
  1169. package/dist/testing/runtime-artifacts.js.map +1 -1
  1170. package/dist/testing/runtime.d.ts.map +1 -1
  1171. package/dist/testing/runtime.js +4 -2
  1172. package/dist/testing/runtime.js.map +1 -1
  1173. package/dist/testing.js.map +1 -1
  1174. package/dist/url.js.map +1 -1
  1175. package/package.json +13 -3
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../../../src/component-abi/server.ts"],"names":[],"mappings":"AAQA,iFAAiF;AACjF,MAAM,CAAC,MAAM,gBAAgB,GAAG,MAAM,CAAC,GAAG,CAAC,iCAAiC,CAAC,CAAC;AAE9E,qFAAqF;AACrF,MAAM,CAAC,MAAM,gBAAgB,GAAG,MAAM,CAAC,GAAG,CAAC,iCAAiC,CAAC,CAAC;AAE9E,6EAA6E;AAC7E,MAAM,CAAC,MAAM,kBAAkB,GAAG,MAAM,CAAC,GAAG,CAAC,mCAAmC,CAAC,CAAC"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../../../src/component-abi/server.ts"],"names":[],"mappings":"AASA,iFAAiF;AACjF,MAAM,CAAC,MAAM,gBAAgB,GAAG,MAAM,CAAC,GAAG,CAAC,iCAAiC,CAAC,CAAC;AAE9E,qFAAqF;AACrF,MAAM,CAAC,MAAM,gBAAgB,GAAG,MAAM,CAAC,GAAG,CAAC,iCAAiC,CAAC,CAAC;AAE9E,6EAA6E;AAC7E,MAAM,CAAC,MAAM,kBAAkB,GAAG,MAAM,CAAC,GAAG,CAAC,mCAAmC,CAAC,CAAC","sourcesContent":["import type { componentContractVersion } from '../component/contract-versions.js';\nimport type {\n\tAnyExactComponentCallable,\n\tExactComponentReactiveAllocation\n} from './executable-fields.js';\nimport type { ExactCompiledComponentCapability } from '../component-definition-contracts.js';\nimport type { CompiledComponentInstanceConstructor } from '../component/instance-construction.js';\nimport type { ExactValueSerializationSchema } from './value-serialization.js';\n\n/** Request protocol key that creates and owns one request-local server frame. */\nexport const exactServerIssue = Symbol.for('@exactjs/server-component-issue');\n\n/** Writer protocol key that serializes one issued frame in authored output order. */\nexport const exactServerWrite = Symbol.for('@exactjs/server-component-write');\n\n/** Frame protocol key that releases request-local ownership exactly once. */\nexport const exactServerDispose = Symbol.for('@exactjs/server-component-dispose');\n\n/** Request-owned issuance service invoked by a current server artifact. */\nexport type ExactRequestExecution = Readonly<{\n\t[exactServerIssue](\n\t\tartifact: ExactServerComponentArtifact,\n\t\tparent: object | undefined,\n\t\tprops: Record<string, unknown>\n\t): object | Promise<object>;\n}>;\n\n/** Ordered HTML writer invoked by a current server artifact. */\nexport type ExactHtmlWriter = Readonly<{\n\t[exactServerWrite](artifact: ExactServerComponentArtifact, frame: object): void | Promise<void>;\n}>;\n\n/** Request-local frame capable of releasing all ownership established during issuance. */\nexport type ExactServerFrame = Readonly<{\n\t[exactServerDispose](\n\t\tartifact: ExactServerComponentArtifact,\n\t\treason: unknown\n\t): void | Promise<void>;\n}>;\n\n/** Server-only scheduling and publication facts used by the current executable server artifact. */\nexport type ExactServerComponentExecution = Readonly<{\n\tversion: 1;\n\tclassification: 'synchronous' | 'scheduled' | 'dynamic';\n\tlane: 'direct' | 'generic' | 'compatibility';\n\t/** Compiler-known authored document view, discoverable before pending task values are read. */\n\tdocumentRoot?: true;\n\t/** Static head and effect-free intrinsic body permit task settlement at the body boundary. */\n\tstreamingDocument?: true;\n\tdeferredTaskProps?: readonly string[];\n\trender?: AnyExactComponentCallable;\n\t/** Compiler-proven setup entry without a returned render closure; stateless mode also omits a frame. */\n\tmode?: 'direct' | 'stateless';\n\tframe?: AnyExactComponentCallable;\n\tlifecycle?: Readonly<{\n\t\trendered: AnyExactComponentCallable;\n\t\tdispose: AnyExactComponentCallable;\n\t}>;\n\tpublication?: Readonly<{\n\t\tkind: 'resumption';\n\t\tname: string;\n\t}>;\n}>;\n\n/** Complete executable ABI carried by one compiler-produced server component export. */\nexport type ExactServerComponentArtifact = Readonly<{\n\tversion: typeof componentContractVersion;\n\ttarget: 'server';\n\tid: string;\n\tissue: AnyExactComponentCallable;\n\twrite: AnyExactComponentCallable;\n\tdispose: AnyExactComponentCallable;\n\texecute?: AnyExactComponentCallable;\n\t/** Setup implementation invoked only inside request-local artifact issuance. */\n\tinstantiate: AnyExactComponentCallable;\n\t/** Current request-frame construction entry selected statically by the compiler. */\n\tconstruct: CompiledComponentInstanceConstructor;\n\tabi: number;\n\tstate: readonly string[];\n\tprops: readonly string[];\n\t/** Finite compiler-owned shape used only for compact root-prop publication. */\n\tserialization?: ExactValueSerializationSchema;\n\t/** Foreign-owned prop values retained by identity without recursive reactive proxying. */\n\topaqueProps?: readonly PropertyKey[];\n\ttasks?: readonly string[];\n\treactive?: readonly ExactComponentReactiveAllocation[];\n\trender?: 'returned-function';\n\tcapabilities: readonly ExactCompiledComponentCapability[];\n\texecution: ExactServerComponentExecution;\n\t/** Finite registry selection resolved before request-local issuance. */\n\tselection?: Readonly<{\n\t\tkey: string;\n\t\tresolve: () => AnyExactComponentCallable | Promise<AnyExactComponentCallable>;\n\t}>;\n}>;\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"suspense-receipt.js","sourceRoot":"","sources":["../../../src/component-abi/suspense-receipt.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAAE,qBAAqB,EAAE,0BAA0B,EAAE,MAAM,uBAAuB,CAAC;AAiB1F,MAAM,gBAAgB,GAAG,0BAA0B,CAA2B,UAAU,CAAC,CAAC;AAC1F,kFAAkF;AAClF,MAAM,CAAC,MAAM,sBAAsB,GAAG,MAAM,CAAC,GAAG,CAAC,oCAAoC,CAAC,CAAC;AAMvF,SAAS,wBAAwB,CAAe,MAAc;IAC7D,MAAM,IAAI,GAAG,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACxC,IAAI,CAAC,IAAI;QAAE,MAAM,IAAI,SAAS,CAAC,qDAAqD,CAAC,CAAC;IACtF,OAAQ,MAAuC,CAAC,sBAAsB,CAAC,CACtE,IAA4B,EAC5B,IAAI,CACJ,CAAC;AACH,CAAC;AAED,sFAAsF;AACtF,MAAM,UAAU,6BAA6B,CAC5C,KAAqC,EACrC,GAAG,QAAmB;IAEtB,MAAM,EAAE,mBAAmB,EAAE,WAAW,EAAE,GAAG,aAAa,EAAE,GAAG,KAAK,IAAI,EAAE,CAAC;IAC3E,MAAM,MAAM,GAAG,sBAAsB,EAAE,CAAC;IACxC,MAAM,OAAO,GAAG,qBAAqB,CAAuB,wBAAwB,EAAE;QACrF,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC7B,CAAC,CAAC;IACH,gBAAgB,CAAC,GAAG,CAAC,OAAO,EAAE;QAC7B,KAAK,EAAE,aAAa;QACpB,QAAQ,EAAE,qBAAqB,CAAC,QAAQ,CAAC;QACzC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7B,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,WAAsC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC/E,CAAC,CAAC;IACH,OAAO,OAAO,CAAC;AAChB,CAAC;AAED,uEAAuE;AACvE,MAAM,UAAU,2BAA2B,CAAC,KAAc;IACzD,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,gBAAgB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AAC9F,CAAC;AAED,6FAA6F;AAC7F,MAAM,UAAU,yCAAyC,CACxD,KAAc;IAEd,MAAM,IAAI,GAAG,2BAA2B,CAAC,KAAK,CAAC,CAAC;IAChD,IAAI,CAAC,IAAI;QAAE,OAAO,SAAS,CAAC;IAC5B,IAAI,CAAC,IAAI,CAAC,WAAW;QAAE,OAAO,KAA6B,CAAC;IAC5D,MAAM,OAAO,GAAG,qBAAqB,CAAuB,wBAAwB,EAAE,IAAI,CAAC,CAAC;IAC5F,MAAM,EAAE,WAAW,EAAE,YAAY,EAAE,GAAG,KAAK,EAAE,GAAG,IAAI,CAAC;IACrD,gBAAgB,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IACrC,OAAO,OAAO,CAAC;AAChB,CAAC"}
1
+ {"version":3,"file":"suspense-receipt.js","sourceRoot":"","sources":["../../../src/component-abi/suspense-receipt.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAAE,qBAAqB,EAAE,0BAA0B,EAAE,MAAM,uBAAuB,CAAC;AAiB1F,MAAM,gBAAgB,GAAG,0BAA0B,CAA2B,UAAU,CAAC,CAAC;AAC1F,kFAAkF;AAClF,MAAM,CAAC,MAAM,sBAAsB,GAAG,MAAM,CAAC,GAAG,CAAC,oCAAoC,CAAC,CAAC;AAMvF,SAAS,wBAAwB,CAAe,MAAc;IAC7D,MAAM,IAAI,GAAG,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACxC,IAAI,CAAC,IAAI;QAAE,MAAM,IAAI,SAAS,CAAC,qDAAqD,CAAC,CAAC;IACtF,OAAQ,MAAuC,CAAC,sBAAsB,CAAC,CACtE,IAA4B,EAC5B,IAAI,CACJ,CAAC;AACH,CAAC;AAED,sFAAsF;AACtF,MAAM,UAAU,6BAA6B,CAC5C,KAAqC,EACrC,GAAG,QAAmB;IAEtB,MAAM,EAAE,mBAAmB,EAAE,WAAW,EAAE,GAAG,aAAa,EAAE,GAAG,KAAK,IAAI,EAAE,CAAC;IAC3E,MAAM,MAAM,GAAG,sBAAsB,EAAE,CAAC;IACxC,MAAM,OAAO,GAAG,qBAAqB,CAAuB,wBAAwB,EAAE;QACrF,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC7B,CAAC,CAAC;IACH,gBAAgB,CAAC,GAAG,CAAC,OAAO,EAAE;QAC7B,KAAK,EAAE,aAAa;QACpB,QAAQ,EAAE,qBAAqB,CAAC,QAAQ,CAAC;QACzC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7B,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,WAAsC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC/E,CAAC,CAAC;IACH,OAAO,OAAO,CAAC;AAChB,CAAC;AAED,uEAAuE;AACvE,MAAM,UAAU,2BAA2B,CAAC,KAAc;IACzD,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,gBAAgB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AAC9F,CAAC;AAED,6FAA6F;AAC7F,MAAM,UAAU,yCAAyC,CACxD,KAAc;IAEd,MAAM,IAAI,GAAG,2BAA2B,CAAC,KAAK,CAAC,CAAC;IAChD,IAAI,CAAC,IAAI;QAAE,OAAO,SAAS,CAAC;IAC5B,IAAI,CAAC,IAAI,CAAC,WAAW;QAAE,OAAO,KAA6B,CAAC;IAC5D,MAAM,OAAO,GAAG,qBAAqB,CAAuB,wBAAwB,EAAE,IAAI,CAAC,CAAC;IAC5F,MAAM,EAAE,WAAW,EAAE,YAAY,EAAE,GAAG,KAAK,EAAE,GAAG,IAAI,CAAC;IACrD,gBAAgB,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IACrC,OAAO,OAAO,CAAC;AAChB,CAAC","sourcesContent":["import type { Child, CompiledEnhancementNode, ComponentDomain } from '../component/contracts.js';\nimport { currentComponentDomain } from '../component/domain.js';\nimport { normalizeRenderResult } from '../render-children.js';\nimport { createOpaqueOperation, sharedOpaqueOperationStore } from './opaque-operation.js';\n\ndeclare const exactSuspenseReceiptBrand: unique symbol;\n\n/** Opaque compiler-issued operation for one native readiness boundary. */\nexport type ExactSuspenseReceipt = object & {\n\treadonly [exactSuspenseReceiptBrand]: never;\n};\n\n/** Private readiness-boundary inputs readable only by a selected target renderer. */\nexport type ExactSuspenseReceiptData = Readonly<{\n\tprops: Readonly<Record<string, unknown>>;\n\tchildren: readonly Child[];\n\tdomain?: ComponentDomain;\n\tenhancement?: CompiledEnhancementNode;\n}>;\n\nconst suspenseReceipts = sharedOpaqueOperationStore<ExactSuspenseReceiptData>('suspense');\n/** Dispatch key implemented by render targets that accept Suspense operations. */\nexport const exactSuspenseOperation = Symbol.for('@exactjs/target-operation/suspense');\n/** Target contract selected by an opaque Suspense operation. */\nexport type ExactSuspenseOperationTarget<Result = unknown> = Readonly<{\n\t[exactSuspenseOperation](operation: ExactSuspenseReceipt, data: ExactSuspenseReceiptData): Result;\n}>;\n\nfunction executeSuspenseOperation(this: object, target: object): unknown {\n\tconst data = suspenseReceipts.get(this);\n\tif (!data) throw new TypeError('Suspense operation lost its compiler-issued payload');\n\treturn (target as ExactSuspenseOperationTarget)[exactSuspenseOperation](\n\t\tthis as ExactSuspenseReceipt,\n\t\tdata\n\t);\n}\n\n/** Issues a focused readiness-boundary operation without exposing output topology. */\nexport function createCompiledSuspenseReceipt(\n\tprops: Record<string, unknown> | null,\n\t...children: unknown[]\n): ExactSuspenseReceipt {\n\tconst { __exactEnhancements: enhancement, ...suspenseProps } = props ?? {};\n\tconst domain = currentComponentDomain();\n\tconst receipt = createOpaqueOperation<ExactSuspenseReceipt>(executeSuspenseOperation, {\n\t\t...(domain ? { domain } : {})\n\t});\n\tsuspenseReceipts.set(receipt, {\n\t\tprops: suspenseProps,\n\t\tchildren: normalizeRenderResult(children),\n\t\t...(domain ? { domain } : {}),\n\t\t...(enhancement ? { enhancement: enhancement as CompiledEnhancementNode } : {})\n\t});\n\treturn receipt;\n}\n\n/** Reads only compiler-issued native readiness-boundary operations. */\nexport function readCompiledSuspenseReceipt(value: unknown): ExactSuspenseReceiptData | undefined {\n\treturn typeof value === 'object' && value !== null ? suspenseReceipts.get(value) : undefined;\n}\n\n/** Removes declaration metadata while preserving one compiler-issued readiness operation. */\nexport function withoutCompiledSuspenseReceiptEnhancement(\n\tvalue: unknown\n): ExactSuspenseReceipt | undefined {\n\tconst data = readCompiledSuspenseReceipt(value);\n\tif (!data) return undefined;\n\tif (!data.enhancement) return value as ExactSuspenseReceipt;\n\tconst receipt = createOpaqueOperation<ExactSuspenseReceipt>(executeSuspenseOperation, data);\n\tconst { enhancement: _enhancement, ...plain } = data;\n\tsuspenseReceipts.set(receipt, plain);\n\treturn receipt;\n}\n"]}
@@ -1,4 +1,4 @@
1
- import type { Child, ComponentDomain } from '../component/contracts.js';
1
+ import type { AnyComponentInstance, Child, ComponentDomain } from '../component/contracts.js';
2
2
  declare const exactTargetReceiptBrand: unique symbol;
3
3
  /** Opaque compiler-issued semantic-target child-range operation. */
4
4
  export type ExactTargetReceipt = object & {
@@ -8,9 +8,19 @@ export type ExactTargetReceipt = object & {
8
8
  export type ExactTargetReceiptData = Readonly<{
9
9
  props: Readonly<Record<string, unknown>>;
10
10
  children: readonly Child[];
11
+ /** A compiler-known host contribution survives server-only callback projection. */
12
+ declaredHostProps?: boolean;
13
+ /** Prepared contributions ordered outer-to-inner, independent of rendered wrapper topology. */
14
+ contributions?: readonly ExactTargetContribution[];
11
15
  key?: string;
12
16
  domain?: ComponentDomain;
13
17
  }>;
18
+ /** One independently released owner on a prepared shared target. Identity is runtime-local. */
19
+ export type ExactTargetContribution = Readonly<{
20
+ identity: object | symbol;
21
+ props: Readonly<Record<string, unknown>>;
22
+ owner?: AnyComponentInstance;
23
+ }>;
14
24
  /** Dispatch key implemented by render targets that accept semantic target ranges. */
15
25
  export declare const exactTargetOperation: unique symbol;
16
26
  /** Target contract selected by an opaque semantic-target operation. */
@@ -19,6 +29,18 @@ export type ExactTargetOperationTarget<Result = unknown> = Readonly<{
19
29
  }>;
20
30
  /** Issues a semantic-target range operation directly. */
21
31
  export declare function createCompiledTargetReceipt(props: Record<string, unknown> | null, ...children: unknown[]): ExactTargetReceipt;
32
+ /**
33
+ * Places one implicitly supplied logical child. Empty values stay empty; several independent
34
+ * children require an explicit fragment. This validates cardinality without executing components
35
+ * or interpreting the child's physical output. The compiler observes reactive inputs before calling.
36
+ */
37
+ export declare function createCompiledSuppliedTargetReceipt(props: Record<string, unknown> | null, supplied: unknown): ExactTargetReceipt;
38
+ /**
39
+ * Issues one target placement with separately owned layers, avoiding a rendered node per owner.
40
+ * Caller-provided identities are retained only for the lifetime of this operation and its mount.
41
+ * The target is already prepared; this helper does not evaluate children or choose enhancements.
42
+ */
43
+ export declare function createCompiledTargetContributions(contributions: readonly ExactTargetContribution[], target: Child): ExactTargetReceipt;
22
44
  /** Reads only compiler-issued semantic-target operations. */
23
45
  export declare function readCompiledTargetReceipt(value: unknown): ExactTargetReceiptData | undefined;
24
46
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"target-receipt.d.ts","sourceRoot":"","sources":["../../../src/component-abi/target-receipt.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAKxE,OAAO,CAAC,MAAM,uBAAuB,EAAE,OAAO,MAAM,CAAC;AAErD,oEAAoE;AACpE,MAAM,MAAM,kBAAkB,GAAG,MAAM,GAAG;IAAE,QAAQ,CAAC,CAAC,uBAAuB,CAAC,EAAE,KAAK,CAAA;CAAE,CAAC;AAExF,gEAAgE;AAChE,MAAM,MAAM,sBAAsB,GAAG,QAAQ,CAAC;IAC7C,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IACzC,QAAQ,EAAE,SAAS,KAAK,EAAE,CAAC;IAC3B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,eAAe,CAAC;CACzB,CAAC,CAAC;AAGH,qFAAqF;AACrF,eAAO,MAAM,oBAAoB,eAAiD,CAAC;AACnF,uEAAuE;AACvE,MAAM,MAAM,0BAA0B,CAAC,MAAM,GAAG,OAAO,IAAI,QAAQ,CAAC;IACnE,CAAC,oBAAoB,CAAC,CAAC,SAAS,EAAE,kBAAkB,EAAE,IAAI,EAAE,sBAAsB,GAAG,MAAM,CAAC;CAC5F,CAAC,CAAC;AAWH,yDAAyD;AACzD,wBAAgB,2BAA2B,CAC1C,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,EACrC,GAAG,QAAQ,EAAE,OAAO,EAAE,GACpB,kBAAkB,CAgBpB;AAED,6DAA6D;AAC7D,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,OAAO,GAAG,sBAAsB,GAAG,SAAS,CAE5F"}
1
+ {"version":3,"file":"target-receipt.d.ts","sourceRoot":"","sources":["../../../src/component-abi/target-receipt.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,oBAAoB,EAAE,KAAK,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAK9F,OAAO,CAAC,MAAM,uBAAuB,EAAE,OAAO,MAAM,CAAC;AAErD,oEAAoE;AACpE,MAAM,MAAM,kBAAkB,GAAG,MAAM,GAAG;IAAE,QAAQ,CAAC,CAAC,uBAAuB,CAAC,EAAE,KAAK,CAAA;CAAE,CAAC;AAExF,gEAAgE;AAChE,MAAM,MAAM,sBAAsB,GAAG,QAAQ,CAAC;IAC7C,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IACzC,QAAQ,EAAE,SAAS,KAAK,EAAE,CAAC;IAC3B,mFAAmF;IACnF,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,+FAA+F;IAC/F,aAAa,CAAC,EAAE,SAAS,uBAAuB,EAAE,CAAC;IACnD,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,eAAe,CAAC;CACzB,CAAC,CAAC;AAEH,+FAA+F;AAC/F,MAAM,MAAM,uBAAuB,GAAG,QAAQ,CAAC;IAC9C,QAAQ,EAAE,MAAM,GAAG,MAAM,CAAC;IAC1B,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IACzC,KAAK,CAAC,EAAE,oBAAoB,CAAC;CAC7B,CAAC,CAAC;AAGH,qFAAqF;AACrF,eAAO,MAAM,oBAAoB,eAAiD,CAAC;AACnF,uEAAuE;AACvE,MAAM,MAAM,0BAA0B,CAAC,MAAM,GAAG,OAAO,IAAI,QAAQ,CAAC;IACnE,CAAC,oBAAoB,CAAC,CAAC,SAAS,EAAE,kBAAkB,EAAE,IAAI,EAAE,sBAAsB,GAAG,MAAM,CAAC;CAC5F,CAAC,CAAC;AAWH,yDAAyD;AACzD,wBAAgB,2BAA2B,CAC1C,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,EACrC,GAAG,QAAQ,EAAE,OAAO,EAAE,GACpB,kBAAkB,CAiBpB;AAED;;;;GAIG;AACH,wBAAgB,mCAAmC,CAClD,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,EACrC,QAAQ,EAAE,OAAO,GACf,kBAAkB,CAepB;AAED;;;;GAIG;AACH,wBAAgB,iCAAiC,CAChD,aAAa,EAAE,SAAS,uBAAuB,EAAE,EACjD,MAAM,EAAE,KAAK,GACX,kBAAkB,CAapB;AAED,6DAA6D;AAC7D,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,OAAO,GAAG,sBAAsB,GAAG,SAAS,CAE5F"}
@@ -13,19 +13,60 @@ function executeTargetOperation(target) {
13
13
  }
14
14
  /** Issues a semantic-target range operation directly. */
15
15
  export function createCompiledTargetReceipt(props, ...children) {
16
- const { key: authoredKey, ...targetProps } = props ?? {};
16
+ const { key: authoredKey, __exactTargetHostProps, ...targetProps } = props ?? {};
17
17
  const rawKey = unwrap(authoredKey);
18
18
  const domain = currentComponentDomain();
19
19
  const key = rawKey === null || rawKey === undefined ? undefined : String(rawKey);
20
20
  const receipt = createOpaqueOperation(executeTargetOperation, {
21
- ...(key === undefined ? {} : { key }),
22
- ...(domain ? { domain } : {})
21
+ key,
22
+ domain
23
23
  });
24
24
  targets.set(receipt, {
25
25
  props: targetProps,
26
26
  children: normalizeRenderResult(children),
27
- ...(key === undefined ? {} : { key }),
28
- ...(domain ? { domain } : {})
27
+ declaredHostProps: __exactTargetHostProps === true ? true : undefined,
28
+ key,
29
+ domain
30
+ });
31
+ return receipt;
32
+ }
33
+ /**
34
+ * Places one implicitly supplied logical child. Empty values stay empty; several independent
35
+ * children require an explicit fragment. This validates cardinality without executing components
36
+ * or interpreting the child's physical output. The compiler observes reactive inputs before calling.
37
+ */
38
+ export function createCompiledSuppliedTargetReceipt(props, supplied) {
39
+ const value = unwrap(supplied);
40
+ if (!Array.isArray(value))
41
+ return createCompiledTargetReceipt(props, value);
42
+ let selected;
43
+ let found = false;
44
+ for (const child of normalizeRenderResult(value)) {
45
+ if (child === null || child === undefined || typeof child === 'boolean')
46
+ continue;
47
+ if (found)
48
+ throw new TypeError('_target requires one logical child; wrap multiple children in an explicit fragment');
49
+ selected = child;
50
+ found = true;
51
+ }
52
+ return createCompiledTargetReceipt(props, selected);
53
+ }
54
+ /**
55
+ * Issues one target placement with separately owned layers, avoiding a rendered node per owner.
56
+ * Caller-provided identities are retained only for the lifetime of this operation and its mount.
57
+ * The target is already prepared; this helper does not evaluate children or choose enhancements.
58
+ */
59
+ export function createCompiledTargetContributions(contributions, target) {
60
+ const identities = new Set();
61
+ for (const contribution of contributions) {
62
+ if (identities.has(contribution.identity))
63
+ throw new TypeError('Duplicate target contribution owner');
64
+ identities.add(contribution.identity);
65
+ }
66
+ const receipt = createCompiledTargetReceipt(null, target);
67
+ targets.set(receipt, {
68
+ ...targets.get(receipt),
69
+ contributions: Object.freeze([...contributions])
29
70
  });
30
71
  return receipt;
31
72
  }
@@ -1 +1 @@
1
- {"version":3,"file":"target-receipt.js","sourceRoot":"","sources":["../../../src/component-abi/target-receipt.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,oCAAoC,CAAC;AAE5D,OAAO,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAAE,qBAAqB,EAAE,0BAA0B,EAAE,MAAM,uBAAuB,CAAC;AAe1F,MAAM,OAAO,GAAG,0BAA0B,CAAyB,QAAQ,CAAC,CAAC;AAC7E,qFAAqF;AACrF,MAAM,CAAC,MAAM,oBAAoB,GAAG,MAAM,CAAC,GAAG,CAAC,kCAAkC,CAAC,CAAC;AAMnF,SAAS,sBAAsB,CAAe,MAAc;IAC3D,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC/B,IAAI,CAAC,IAAI;QAAE,MAAM,IAAI,SAAS,CAAC,mDAAmD,CAAC,CAAC;IACpF,OAAQ,MAAqC,CAAC,oBAAoB,CAAC,CAClE,IAA0B,EAC1B,IAAI,CACJ,CAAC;AACH,CAAC;AAED,yDAAyD;AACzD,MAAM,UAAU,2BAA2B,CAC1C,KAAqC,EACrC,GAAG,QAAmB;IAEtB,MAAM,EAAE,GAAG,EAAE,WAAW,EAAE,GAAG,WAAW,EAAE,GAAG,KAAK,IAAI,EAAE,CAAC;IACzD,MAAM,MAAM,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC;IACnC,MAAM,MAAM,GAAG,sBAAsB,EAAE,CAAC;IACxC,MAAM,GAAG,GAAG,MAAM,KAAK,IAAI,IAAI,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACjF,MAAM,OAAO,GAAG,qBAAqB,CAAqB,sBAAsB,EAAE;QACjF,GAAG,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC;QACrC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC7B,CAAC,CAAC;IACH,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE;QACpB,KAAK,EAAE,WAAW;QAClB,QAAQ,EAAE,qBAAqB,CAAC,QAAQ,CAAC;QACzC,GAAG,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC;QACrC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC7B,CAAC,CAAC;IACH,OAAO,OAAO,CAAC;AAChB,CAAC;AAED,6DAA6D;AAC7D,MAAM,UAAU,yBAAyB,CAAC,KAAc;IACvD,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AACrF,CAAC"}
1
+ {"version":3,"file":"target-receipt.js","sourceRoot":"","sources":["../../../src/component-abi/target-receipt.ts"],"names":[],"mappings":"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","sourcesContent":["import { unwrap } from '@exactjs/reactive/framework/values';\nimport type { AnyComponentInstance, Child, ComponentDomain } from '../component/contracts.js';\nimport { currentComponentDomain } from '../component/domain.js';\nimport { normalizeRenderResult } from '../render-children.js';\nimport { createOpaqueOperation, sharedOpaqueOperationStore } from './opaque-operation.js';\n\ndeclare const exactTargetReceiptBrand: unique symbol;\n\n/** Opaque compiler-issued semantic-target child-range operation. */\nexport type ExactTargetReceipt = object & { readonly [exactTargetReceiptBrand]: never };\n\n/** Private DOM and SSR inputs for one semantic target range. */\nexport type ExactTargetReceiptData = Readonly<{\n\tprops: Readonly<Record<string, unknown>>;\n\tchildren: readonly Child[];\n\t/** A compiler-known host contribution survives server-only callback projection. */\n\tdeclaredHostProps?: boolean;\n\t/** Prepared contributions ordered outer-to-inner, independent of rendered wrapper topology. */\n\tcontributions?: readonly ExactTargetContribution[];\n\tkey?: string;\n\tdomain?: ComponentDomain;\n}>;\n\n/** One independently released owner on a prepared shared target. Identity is runtime-local. */\nexport type ExactTargetContribution = Readonly<{\n\tidentity: object | symbol;\n\tprops: Readonly<Record<string, unknown>>;\n\towner?: AnyComponentInstance;\n}>;\n\nconst targets = sharedOpaqueOperationStore<ExactTargetReceiptData>('target');\n/** Dispatch key implemented by render targets that accept semantic target ranges. */\nexport const exactTargetOperation = Symbol.for('@exactjs/target-operation/target');\n/** Target contract selected by an opaque semantic-target operation. */\nexport type ExactTargetOperationTarget<Result = unknown> = Readonly<{\n\t[exactTargetOperation](operation: ExactTargetReceipt, data: ExactTargetReceiptData): Result;\n}>;\n\nfunction executeTargetOperation(this: object, target: object): unknown {\n\tconst data = targets.get(this);\n\tif (!data) throw new TypeError('Target operation lost its compiler-issued payload');\n\treturn (target as ExactTargetOperationTarget)[exactTargetOperation](\n\t\tthis as ExactTargetReceipt,\n\t\tdata\n\t);\n}\n\n/** Issues a semantic-target range operation directly. */\nexport function createCompiledTargetReceipt(\n\tprops: Record<string, unknown> | null,\n\t...children: unknown[]\n): ExactTargetReceipt {\n\tconst { key: authoredKey, __exactTargetHostProps, ...targetProps } = props ?? {};\n\tconst rawKey = unwrap(authoredKey);\n\tconst domain = currentComponentDomain();\n\tconst key = rawKey === null || rawKey === undefined ? undefined : String(rawKey);\n\tconst receipt = createOpaqueOperation<ExactTargetReceipt>(executeTargetOperation, {\n\t\tkey,\n\t\tdomain\n\t});\n\ttargets.set(receipt, {\n\t\tprops: targetProps,\n\t\tchildren: normalizeRenderResult(children),\n\t\tdeclaredHostProps: __exactTargetHostProps === true ? true : undefined,\n\t\tkey,\n\t\tdomain\n\t});\n\treturn receipt;\n}\n\n/**\n * Places one implicitly supplied logical child. Empty values stay empty; several independent\n * children require an explicit fragment. This validates cardinality without executing components\n * or interpreting the child's physical output. The compiler observes reactive inputs before calling.\n */\nexport function createCompiledSuppliedTargetReceipt(\n\tprops: Record<string, unknown> | null,\n\tsupplied: unknown\n): ExactTargetReceipt {\n\tconst value = unwrap(supplied);\n\tif (!Array.isArray(value)) return createCompiledTargetReceipt(props, value);\n\tlet selected: Child;\n\tlet found = false;\n\tfor (const child of normalizeRenderResult(value)) {\n\t\tif (child === null || child === undefined || typeof child === 'boolean') continue;\n\t\tif (found)\n\t\t\tthrow new TypeError(\n\t\t\t\t'_target requires one logical child; wrap multiple children in an explicit fragment'\n\t\t\t);\n\t\tselected = child;\n\t\tfound = true;\n\t}\n\treturn createCompiledTargetReceipt(props, selected);\n}\n\n/**\n * Issues one target placement with separately owned layers, avoiding a rendered node per owner.\n * Caller-provided identities are retained only for the lifetime of this operation and its mount.\n * The target is already prepared; this helper does not evaluate children or choose enhancements.\n */\nexport function createCompiledTargetContributions(\n\tcontributions: readonly ExactTargetContribution[],\n\ttarget: Child\n): ExactTargetReceipt {\n\tconst identities = new Set<object | symbol>();\n\tfor (const contribution of contributions) {\n\t\tif (identities.has(contribution.identity))\n\t\t\tthrow new TypeError('Duplicate target contribution owner');\n\t\tidentities.add(contribution.identity);\n\t}\n\tconst receipt = createCompiledTargetReceipt(null, target);\n\ttargets.set(receipt, {\n\t\t...targets.get(receipt)!,\n\t\tcontributions: Object.freeze([...contributions])\n\t});\n\treturn receipt;\n}\n\n/** Reads only compiler-issued semantic-target operations. */\nexport function readCompiledTargetReceipt(value: unknown): ExactTargetReceiptData | undefined {\n\treturn typeof value === 'object' && value !== null ? targets.get(value) : undefined;\n}\n"]}
@@ -0,0 +1,16 @@
1
+ import type { UnsafeHtmlAuditEvent } from '../component/contracts.js';
2
+ /** Root-owned unsafe HTML policy retained when markup is projected into text. */
3
+ export type TextProjectionPolicy = Readonly<{
4
+ allowUnsafeHtml?: boolean;
5
+ onUnsafeHtml?: (event: UnsafeHtmlAuditEvent) => void;
6
+ }>;
7
+ /** Void hosts have no closing tag in the literal markup projection. */
8
+ export declare const projectedVoidTags: Set<string>;
9
+ /** Escapes one layer of literal markup content without allocating a DOM node. */
10
+ export declare function escapeProjectedText(value: string): string;
11
+ /**
12
+ * Serializes native props into inert markup. Refs and renderer bookkeeping are not attributes;
13
+ * no element identity is reserved because this projection has no live element presentation.
14
+ */
15
+ export declare function projectedAttributes(props: Readonly<Record<string, unknown>>, tag: string, policy: TextProjectionPolicy): string;
16
+ //# sourceMappingURL=text-projection-markup.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"text-projection-markup.d.ts","sourceRoot":"","sources":["../../../src/component-abi/text-projection-markup.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAYtE,iFAAiF;AACjF,MAAM,MAAM,oBAAoB,GAAG,QAAQ,CAAC;IAC3C,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,oBAAoB,KAAK,IAAI,CAAC;CACrD,CAAC,CAAC;AAEH,uEAAuE;AACvE,eAAO,MAAM,iBAAiB,aAe5B,CAAC;AAEH,iFAAiF;AACjF,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAIzD;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAClC,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,EACxC,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,oBAAoB,GAC1B,MAAM,CA6CR"}
@@ -0,0 +1,110 @@
1
+ import { readUnsafeHtmlReceipt } from './unsafe-html-receipt.js';
2
+ import { unwrap } from '@exactjs/reactive/framework/values';
3
+ import { normalizeClassValue } from '../class-values.js';
4
+ import { assertNativeEventHandler, assertNativePropAllowed, isNativeEventProp, isNativeSrcdocProp } from '../native-props.js';
5
+ import { sanitizeUrlAttribute } from '../url.js';
6
+ /** Void hosts have no closing tag in the literal markup projection. */
7
+ export const projectedVoidTags = new Set([
8
+ 'area',
9
+ 'base',
10
+ 'br',
11
+ 'col',
12
+ 'embed',
13
+ 'hr',
14
+ 'img',
15
+ 'input',
16
+ 'link',
17
+ 'meta',
18
+ 'param',
19
+ 'source',
20
+ 'track',
21
+ 'wbr'
22
+ ]);
23
+ /** Escapes one layer of literal markup content without allocating a DOM node. */
24
+ export function escapeProjectedText(value) {
25
+ return value.replace(/[&<>]/g, (character) => character === '&' ? '&amp;' : character === '<' ? '&lt;' : '&gt;');
26
+ }
27
+ /**
28
+ * Serializes native props into inert markup. Refs and renderer bookkeeping are not attributes;
29
+ * no element identity is reserved because this projection has no live element presentation.
30
+ */
31
+ export function projectedAttributes(props, tag, policy) {
32
+ let result = '';
33
+ for (const [key, raw] of Object.entries(props)) {
34
+ assertNativePropAllowed(key);
35
+ if (key === 'ref' ||
36
+ key === 'children' ||
37
+ key === 'key' ||
38
+ key === 'data-exact-id' ||
39
+ key.startsWith('__exact'))
40
+ continue;
41
+ if (isNativeEventProp(key)) {
42
+ assertNativeEventHandler(unwrap(raw));
43
+ continue;
44
+ }
45
+ let value = unwrap(raw);
46
+ if (isNativeSrcdocProp(key)) {
47
+ const receipt = readUnsafeHtmlReceipt(value);
48
+ if (!receipt || !policy.allowUnsafeHtml)
49
+ throw new TypeError('Projected srcdoc requires unsafeHtml() and allowUnsafeHtml root opt-in');
50
+ value = String(unwrap(receipt.value) ?? '');
51
+ policy.onUnsafeHtml?.({ characters: value.length });
52
+ }
53
+ if (key === 'class' || key === 'className')
54
+ value = normalizeClassValue(value);
55
+ if (key === 'style')
56
+ value = projectedStyle(value);
57
+ if (key === 'value' &&
58
+ tag === 'input' &&
59
+ unwrap(props.type) === 'date' &&
60
+ value instanceof Date)
61
+ value = Number.isNaN(value.getTime()) ? '' : value.toISOString().slice(0, 10);
62
+ value = sanitizeUrlAttribute(key, value);
63
+ if (value == null || value === false || (key === 'style' && value === ''))
64
+ continue;
65
+ const name = projectedAttributeName(key, tag);
66
+ const safeName = /^[A-Za-z_:][A-Za-z0-9_:.-]*$/.test(name) ? name : 'data-exact-invalid-attr';
67
+ result +=
68
+ value === true
69
+ ? ` ${safeName}`
70
+ : ` ${safeName}="${escapeProjectedText(String(value)).replaceAll('"', '&quot;')}"`;
71
+ }
72
+ return result;
73
+ }
74
+ function projectedStyle(value) {
75
+ if (typeof value === 'string')
76
+ return value;
77
+ if (!value || typeof value !== 'object')
78
+ return '';
79
+ const declarations = [];
80
+ for (const [name, raw] of Object.entries(value)) {
81
+ const property = unwrap(raw);
82
+ if (property == null || property === false)
83
+ continue;
84
+ const css = name.startsWith('--')
85
+ ? name
86
+ : (name.startsWith('ms') ? '-' : '') +
87
+ name.replace(/[A-Z]/g, (letter) => `-${letter.toLowerCase()}`);
88
+ declarations.push(`${css}: ${String(property)};`);
89
+ }
90
+ return declarations.join(' ');
91
+ }
92
+ function projectedAttributeName(name, tag) {
93
+ if (isNativeSrcdocProp(name))
94
+ return 'srcdoc';
95
+ if (name === 'className')
96
+ return 'class';
97
+ if (name === 'commandFor')
98
+ return 'commandfor';
99
+ if (tag === 'script') {
100
+ switch (name) {
101
+ case 'crossOrigin':
102
+ case 'fetchPriority':
103
+ case 'noModule':
104
+ case 'referrerPolicy':
105
+ return name.toLowerCase();
106
+ }
107
+ }
108
+ return name;
109
+ }
110
+ //# sourceMappingURL=text-projection-markup.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"text-projection-markup.js","sourceRoot":"","sources":["../../../src/component-abi/text-projection-markup.ts"],"names":[],"mappings":"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","sourcesContent":["import type { UnsafeHtmlAuditEvent } from '../component/contracts.js';\nimport { readUnsafeHtmlReceipt } from './unsafe-html-receipt.js';\nimport { unwrap } from '@exactjs/reactive/framework/values';\nimport { normalizeClassValue } from '../class-values.js';\nimport {\n\tassertNativeEventHandler,\n\tassertNativePropAllowed,\n\tisNativeEventProp,\n\tisNativeSrcdocProp\n} from '../native-props.js';\nimport { sanitizeUrlAttribute } from '../url.js';\n\n/** Root-owned unsafe HTML policy retained when markup is projected into text. */\nexport type TextProjectionPolicy = Readonly<{\n\tallowUnsafeHtml?: boolean;\n\tonUnsafeHtml?: (event: UnsafeHtmlAuditEvent) => void;\n}>;\n\n/** Void hosts have no closing tag in the literal markup projection. */\nexport const projectedVoidTags = new Set([\n\t'area',\n\t'base',\n\t'br',\n\t'col',\n\t'embed',\n\t'hr',\n\t'img',\n\t'input',\n\t'link',\n\t'meta',\n\t'param',\n\t'source',\n\t'track',\n\t'wbr'\n]);\n\n/** Escapes one layer of literal markup content without allocating a DOM node. */\nexport function escapeProjectedText(value: string): string {\n\treturn value.replace(/[&<>]/g, (character) =>\n\t\tcharacter === '&' ? '&amp;' : character === '<' ? '&lt;' : '&gt;'\n\t);\n}\n\n/**\n * Serializes native props into inert markup. Refs and renderer bookkeeping are not attributes;\n * no element identity is reserved because this projection has no live element presentation.\n */\nexport function projectedAttributes(\n\tprops: Readonly<Record<string, unknown>>,\n\ttag: string,\n\tpolicy: TextProjectionPolicy\n): string {\n\tlet result = '';\n\tfor (const [key, raw] of Object.entries(props)) {\n\t\tassertNativePropAllowed(key);\n\t\tif (\n\t\t\tkey === 'ref' ||\n\t\t\tkey === 'children' ||\n\t\t\tkey === 'key' ||\n\t\t\tkey === 'data-exact-id' ||\n\t\t\tkey.startsWith('__exact')\n\t\t)\n\t\t\tcontinue;\n\t\tif (isNativeEventProp(key)) {\n\t\t\tassertNativeEventHandler(unwrap(raw));\n\t\t\tcontinue;\n\t\t}\n\t\tlet value = unwrap(raw);\n\t\tif (isNativeSrcdocProp(key)) {\n\t\t\tconst receipt = readUnsafeHtmlReceipt(value);\n\t\t\tif (!receipt || !policy.allowUnsafeHtml)\n\t\t\t\tthrow new TypeError(\n\t\t\t\t\t'Projected srcdoc requires unsafeHtml() and allowUnsafeHtml root opt-in'\n\t\t\t\t);\n\t\t\tvalue = String(unwrap(receipt.value) ?? '');\n\t\t\tpolicy.onUnsafeHtml?.({ characters: (value as string).length });\n\t\t}\n\t\tif (key === 'class' || key === 'className') value = normalizeClassValue(value);\n\t\tif (key === 'style') value = projectedStyle(value);\n\t\tif (\n\t\t\tkey === 'value' &&\n\t\t\ttag === 'input' &&\n\t\t\tunwrap(props.type) === 'date' &&\n\t\t\tvalue instanceof Date\n\t\t)\n\t\t\tvalue = Number.isNaN(value.getTime()) ? '' : value.toISOString().slice(0, 10);\n\t\tvalue = sanitizeUrlAttribute(key, value);\n\t\tif (value == null || value === false || (key === 'style' && value === '')) continue;\n\t\tconst name = projectedAttributeName(key, tag);\n\t\tconst safeName = /^[A-Za-z_:][A-Za-z0-9_:.-]*$/.test(name) ? name : 'data-exact-invalid-attr';\n\t\tresult +=\n\t\t\tvalue === true\n\t\t\t\t? ` ${safeName}`\n\t\t\t\t: ` ${safeName}=\"${escapeProjectedText(String(value)).replaceAll('\"', '&quot;')}\"`;\n\t}\n\treturn result;\n}\n\nfunction projectedStyle(value: unknown): string {\n\tif (typeof value === 'string') return value;\n\tif (!value || typeof value !== 'object') return '';\n\tconst declarations: string[] = [];\n\tfor (const [name, raw] of Object.entries(value)) {\n\t\tconst property = unwrap(raw);\n\t\tif (property == null || property === false) continue;\n\t\tconst css = name.startsWith('--')\n\t\t\t? name\n\t\t\t: (name.startsWith('ms') ? '-' : '') +\n\t\t\t\tname.replace(/[A-Z]/g, (letter) => `-${letter.toLowerCase()}`);\n\t\tdeclarations.push(`${css}: ${String(property)};`);\n\t}\n\treturn declarations.join(' ');\n}\n\nfunction projectedAttributeName(name: string, tag: string): string {\n\tif (isNativeSrcdocProp(name)) return 'srcdoc';\n\tif (name === 'className') return 'class';\n\tif (name === 'commandFor') return 'commandfor';\n\tif (tag === 'script') {\n\t\tswitch (name) {\n\t\t\tcase 'crossOrigin':\n\t\t\tcase 'fetchPriority':\n\t\t\tcase 'noModule':\n\t\t\tcase 'referrerPolicy':\n\t\t\t\treturn name.toLowerCase();\n\t\t}\n\t}\n\treturn name;\n}\n"]}
@@ -0,0 +1,12 @@
1
+ import type { Child } from '../component/contracts.js';
2
+ import { type TextProjectionPolicy } from './text-projection-markup.js';
3
+ /** Renderer-owned resolver for prepared component and program output within the same text projection. */
4
+ export type PreparedTextResolver = (value: unknown, project: (children: readonly Child[]) => string) => string | undefined;
5
+ /**
6
+ * Projects prepared intrinsic, fragment, and contribution operations into host text.
7
+ * Reads reactive values without mounting elements, fulfilling refs, or installing listeners.
8
+ * Unprepared component/enhancement operations must be resolved by their owning renderer first.
9
+ * The caller escapes the returned text once when embedding it in an HTML text-only host.
10
+ */
11
+ export declare function projectPreparedText(children: readonly Child[], policy?: TextProjectionPolicy, resolve?: PreparedTextResolver): string;
12
+ //# sourceMappingURL=text-projection.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"text-projection.d.ts","sourceRoot":"","sources":["../../../src/component-abi/text-projection.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,2BAA2B,CAAC;AASvD,OAAO,EAIN,KAAK,oBAAoB,EACzB,MAAM,6BAA6B,CAAC;AAErC,yGAAyG;AACzG,MAAM,MAAM,oBAAoB,GAAG,CAClC,KAAK,EAAE,OAAO,EACd,OAAO,EAAE,CAAC,QAAQ,EAAE,SAAS,KAAK,EAAE,KAAK,MAAM,KAC3C,MAAM,GAAG,SAAS,CAAC;AAIxB;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAClC,QAAQ,EAAE,SAAS,KAAK,EAAE,EAC1B,MAAM,GAAE,oBAAyB,EACjC,OAAO,CAAC,EAAE,oBAAoB,GAC5B,MAAM,CAER"}
@@ -0,0 +1,79 @@
1
+ import { unwrap } from '@exactjs/reactive/framework/values';
2
+ import { readSuppliedTargetValue } from '../framework/prepared-target-output.js';
3
+ import { composeTargetProps } from '../framework/target-contributions.js';
4
+ import { readCompiledFragmentReceipt } from './fragment-receipt.js';
5
+ import { readCompiledIntrinsicReceipt } from './intrinsic-receipt.js';
6
+ import { readCompiledTargetReceipt } from './target-receipt.js';
7
+ import { readCompiledKeyedChildReceipt } from './keyed-child-receipt.js';
8
+ import { readChildRangeReceipt } from './child-range-receipt.js';
9
+ import { readPreparedServerChildRange } from './server-child-range.js';
10
+ import { projectedAttributes, escapeProjectedText, projectedVoidTags } from './text-projection-markup.js';
11
+ /**
12
+ * Projects prepared intrinsic, fragment, and contribution operations into host text.
13
+ * Reads reactive values without mounting elements, fulfilling refs, or installing listeners.
14
+ * Unprepared component/enhancement operations must be resolved by their owning renderer first.
15
+ * The caller escapes the returned text once when embedding it in an HTML text-only host.
16
+ */
17
+ export function projectPreparedText(children, policy = {}, resolve) {
18
+ return projectChildren(children, [], false, policy, resolve);
19
+ }
20
+ function projectChildren(children, layers, markup, policy, resolve) {
21
+ let result = '';
22
+ for (const child of children)
23
+ result += projectChild(unwrap(child), layers, markup, policy, resolve);
24
+ return result;
25
+ }
26
+ function projectChild(value, layers, markup, policy, resolve) {
27
+ if (value == null || typeof value === 'boolean')
28
+ return '';
29
+ if (typeof value === 'string' || typeof value === 'number')
30
+ return markup ? escapeProjectedText(String(value)) : String(value);
31
+ if (Array.isArray(value))
32
+ return projectChildren(value, layers, markup, policy, resolve);
33
+ const prepared = resolve?.(value, (output) => projectChildren(output, layers, markup, policy, resolve));
34
+ if (prepared !== undefined)
35
+ return prepared;
36
+ const range = readChildRangeReceipt(value);
37
+ if (range && !range.dynamicComponent)
38
+ return projectChild(unwrap(range.value), layers, markup, policy, resolve);
39
+ const serverRange = readPreparedServerChildRange(value);
40
+ if (serverRange)
41
+ return projectChild(unwrap(serverRange.value), layers, markup, policy, resolve);
42
+ const keyed = readCompiledKeyedChildReceipt(value);
43
+ if (keyed)
44
+ return projectChild(unwrap(keyed.value), layers, markup, policy, resolve);
45
+ const target = readCompiledTargetReceipt(value);
46
+ if (target) {
47
+ const directFragment = readCompiledFragmentReceipt(readSuppliedTargetValue(target.children));
48
+ const own = (directFragment ? [] : (target.contributions ?? [{ props: target.props }])).map(({ props }) => ({
49
+ props,
50
+ consumed: false
51
+ }));
52
+ return projectChildren(target.children, [...layers, ...own], markup, policy, resolve);
53
+ }
54
+ const fragment = readCompiledFragmentReceipt(value);
55
+ if (fragment && !fragment.enhancement)
56
+ return projectChildren(fragment.children, layers, markup, policy, resolve);
57
+ const intrinsic = readCompiledIntrinsicReceipt(value);
58
+ if (intrinsic && !intrinsic.enhancement) {
59
+ let props = intrinsic.props;
60
+ for (let index = layers.length - 1; index >= 0; index--) {
61
+ const layer = layers[index];
62
+ if (layer.consumed)
63
+ continue;
64
+ layer.consumed = true;
65
+ props = composeTargetProps(props, layer.props);
66
+ }
67
+ const tag = intrinsic.tag;
68
+ const opening = `<${tag}${projectedAttributes(props, tag, policy)}>`;
69
+ if (projectedVoidTags.has(tag))
70
+ return opening;
71
+ const textHost = tag === 'title' || tag === 'textarea';
72
+ const rawHost = tag === 'script' || tag === 'style';
73
+ const content = projectChildren(intrinsic.children, layers, !textHost && !rawHost, policy, resolve);
74
+ const prefix = tag === 'textarea' && content.startsWith('\n') ? '\n' : '';
75
+ return `${opening}${prefix}${textHost ? escapeProjectedText(content) : content}</${tag}>`;
76
+ }
77
+ throw new TypeError('Text projection requires prepared intrinsic, fragment, or target output');
78
+ }
79
+ //# sourceMappingURL=text-projection.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"text-projection.js","sourceRoot":"","sources":["../../../src/component-abi/text-projection.ts"],"names":[],"mappings":"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","sourcesContent":["import { unwrap } from '@exactjs/reactive/framework/values';\nimport type { Child } from '../component/contracts.js';\nimport { readSuppliedTargetValue } from '../framework/prepared-target-output.js';\nimport { composeTargetProps } from '../framework/target-contributions.js';\nimport { readCompiledFragmentReceipt } from './fragment-receipt.js';\nimport { readCompiledIntrinsicReceipt } from './intrinsic-receipt.js';\nimport { readCompiledTargetReceipt } from './target-receipt.js';\nimport { readCompiledKeyedChildReceipt } from './keyed-child-receipt.js';\nimport { readChildRangeReceipt } from './child-range-receipt.js';\nimport { readPreparedServerChildRange } from './server-child-range.js';\nimport {\n\tprojectedAttributes,\n\tescapeProjectedText,\n\tprojectedVoidTags,\n\ttype TextProjectionPolicy\n} from './text-projection-markup.js';\n\n/** Renderer-owned resolver for prepared component and program output within the same text projection. */\nexport type PreparedTextResolver = (\n\tvalue: unknown,\n\tproject: (children: readonly Child[]) => string\n) => string | undefined;\n\ntype Layer = { props: Readonly<Record<string, unknown>>; consumed: boolean };\n\n/**\n * Projects prepared intrinsic, fragment, and contribution operations into host text.\n * Reads reactive values without mounting elements, fulfilling refs, or installing listeners.\n * Unprepared component/enhancement operations must be resolved by their owning renderer first.\n * The caller escapes the returned text once when embedding it in an HTML text-only host.\n */\nexport function projectPreparedText(\n\tchildren: readonly Child[],\n\tpolicy: TextProjectionPolicy = {},\n\tresolve?: PreparedTextResolver\n): string {\n\treturn projectChildren(children, [], false, policy, resolve);\n}\n\nfunction projectChildren(\n\tchildren: readonly Child[],\n\tlayers: Layer[],\n\tmarkup: boolean,\n\tpolicy: TextProjectionPolicy,\n\tresolve?: PreparedTextResolver\n): string {\n\tlet result = '';\n\tfor (const child of children)\n\t\tresult += projectChild(unwrap(child), layers, markup, policy, resolve);\n\treturn result;\n}\n\nfunction projectChild(\n\tvalue: unknown,\n\tlayers: Layer[],\n\tmarkup: boolean,\n\tpolicy: TextProjectionPolicy,\n\tresolve?: PreparedTextResolver\n): string {\n\tif (value == null || typeof value === 'boolean') return '';\n\tif (typeof value === 'string' || typeof value === 'number')\n\t\treturn markup ? escapeProjectedText(String(value)) : String(value);\n\tif (Array.isArray(value)) return projectChildren(value, layers, markup, policy, resolve);\n\tconst prepared = resolve?.(value, (output) =>\n\t\tprojectChildren(output, layers, markup, policy, resolve)\n\t);\n\tif (prepared !== undefined) return prepared;\n\tconst range = readChildRangeReceipt(value);\n\tif (range && !range.dynamicComponent)\n\t\treturn projectChild(unwrap(range.value), layers, markup, policy, resolve);\n\tconst serverRange = readPreparedServerChildRange(value);\n\tif (serverRange) return projectChild(unwrap(serverRange.value), layers, markup, policy, resolve);\n\tconst keyed = readCompiledKeyedChildReceipt(value);\n\tif (keyed) return projectChild(unwrap(keyed.value), layers, markup, policy, resolve);\n\tconst target = readCompiledTargetReceipt(value);\n\tif (target) {\n\t\tconst directFragment = readCompiledFragmentReceipt(readSuppliedTargetValue(target.children));\n\t\tconst own = (directFragment ? [] : (target.contributions ?? [{ props: target.props }])).map(\n\t\t\t({ props }) => ({\n\t\t\t\tprops,\n\t\t\t\tconsumed: false\n\t\t\t})\n\t\t);\n\t\treturn projectChildren(target.children, [...layers, ...own], markup, policy, resolve);\n\t}\n\tconst fragment = readCompiledFragmentReceipt(value);\n\tif (fragment && !fragment.enhancement)\n\t\treturn projectChildren(fragment.children, layers, markup, policy, resolve);\n\tconst intrinsic = readCompiledIntrinsicReceipt(value);\n\tif (intrinsic && !intrinsic.enhancement) {\n\t\tlet props = intrinsic.props;\n\t\tfor (let index = layers.length - 1; index >= 0; index--) {\n\t\t\tconst layer = layers[index]!;\n\t\t\tif (layer.consumed) continue;\n\t\t\tlayer.consumed = true;\n\t\t\tprops = composeTargetProps(props, layer.props);\n\t\t}\n\t\tconst tag = intrinsic.tag;\n\t\tconst opening = `<${tag}${projectedAttributes(props, tag, policy)}>`;\n\t\tif (projectedVoidTags.has(tag)) return opening;\n\t\tconst textHost = tag === 'title' || tag === 'textarea';\n\t\tconst rawHost = tag === 'script' || tag === 'style';\n\t\tconst content = projectChildren(\n\t\t\tintrinsic.children,\n\t\t\tlayers,\n\t\t\t!textHost && !rawHost,\n\t\t\tpolicy,\n\t\t\tresolve\n\t\t);\n\t\tconst prefix = tag === 'textarea' && content.startsWith('\\n') ? '\\n' : '';\n\t\treturn `${opening}${prefix}${textHost ? escapeProjectedText(content) : content}</${tag}>`;\n\t}\n\tthrow new TypeError('Text projection requires prepared intrinsic, fragment, or target output');\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"unsafe-html-receipt.js","sourceRoot":"","sources":["../../../src/component-abi/unsafe-html-receipt.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,EAAE,MAAM,EAAE,MAAM,oCAAoC,CAAC;AAC5D,OAAO,EAAE,qBAAqB,EAAE,0BAA0B,EAAE,MAAM,uBAAuB,CAAC;AAa1F,MAAM,kBAAkB,GAAG,0BAA0B,CAA6B,aAAa,CAAC,CAAC;AACjG,+EAA+E;AAC/E,MAAM,CAAC,MAAM,wBAAwB,GAAG,MAAM,CAAC,GAAG,CAAC,uCAAuC,CAAC,CAAC;AAS5F,SAAS,0BAA0B,CAAe,MAAc;IAC/D,MAAM,IAAI,GAAG,kBAAkB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC1C,IAAI,CAAC,IAAI;QAAE,MAAM,IAAI,SAAS,CAAC,wDAAwD,CAAC,CAAC;IACzF,OAAQ,MAAyC,CAAC,wBAAwB,CAAC,CAC1E,IAA8B,EAC9B,IAAI,CACJ,CAAC;AACH,CAAC;AAED,0DAA0D;AAC1D,MAAM,UAAU,uBAAuB,CAAC,KAAc;IACrD,MAAM,MAAM,GAAG,sBAAsB,EAAE,CAAC;IACxC,MAAM,OAAO,GAAG,qBAAqB,CAAyB,0BAA0B,EAAE;QACzF,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC7B,CAAC,CAAC;IACH,kBAAkB,CAAC,GAAG,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IAC1E,OAAO,OAAO,CAAC;AAChB,CAAC;AAED,kEAAkE;AAClE,MAAM,CAAC,MAAM,UAAU,GAAG,uBAAuB,CAAC;AAElD,uDAAuD;AACvD,MAAM,UAAU,+BAA+B,CAC9C,KAAqC;IAErC,OAAO,uBAAuB,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;AACtD,CAAC;AAED,0DAA0D;AAC1D,MAAM,UAAU,qBAAqB,CAAC,KAAc;IACnD,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,kBAAkB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AAChG,CAAC"}
1
+ {"version":3,"file":"unsafe-html-receipt.js","sourceRoot":"","sources":["../../../src/component-abi/unsafe-html-receipt.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,EAAE,MAAM,EAAE,MAAM,oCAAoC,CAAC;AAC5D,OAAO,EAAE,qBAAqB,EAAE,0BAA0B,EAAE,MAAM,uBAAuB,CAAC;AAa1F,MAAM,kBAAkB,GAAG,0BAA0B,CAA6B,aAAa,CAAC,CAAC;AACjG,+EAA+E;AAC/E,MAAM,CAAC,MAAM,wBAAwB,GAAG,MAAM,CAAC,GAAG,CAAC,uCAAuC,CAAC,CAAC;AAS5F,SAAS,0BAA0B,CAAe,MAAc;IAC/D,MAAM,IAAI,GAAG,kBAAkB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC1C,IAAI,CAAC,IAAI;QAAE,MAAM,IAAI,SAAS,CAAC,wDAAwD,CAAC,CAAC;IACzF,OAAQ,MAAyC,CAAC,wBAAwB,CAAC,CAC1E,IAA8B,EAC9B,IAAI,CACJ,CAAC;AACH,CAAC;AAED,0DAA0D;AAC1D,MAAM,UAAU,uBAAuB,CAAC,KAAc;IACrD,MAAM,MAAM,GAAG,sBAAsB,EAAE,CAAC;IACxC,MAAM,OAAO,GAAG,qBAAqB,CAAyB,0BAA0B,EAAE;QACzF,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC7B,CAAC,CAAC;IACH,kBAAkB,CAAC,GAAG,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IAC1E,OAAO,OAAO,CAAC;AAChB,CAAC;AAED,kEAAkE;AAClE,MAAM,CAAC,MAAM,UAAU,GAAG,uBAAuB,CAAC;AAElD,uDAAuD;AACvD,MAAM,UAAU,+BAA+B,CAC9C,KAAqC;IAErC,OAAO,uBAAuB,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;AACtD,CAAC;AAED,0DAA0D;AAC1D,MAAM,UAAU,qBAAqB,CAAC,KAAc;IACnD,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,kBAAkB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AAChG,CAAC","sourcesContent":["import type { ComponentDomain } from '../component/contracts.js';\nimport { currentComponentDomain } from '../component/domain.js';\nimport { unwrap } from '@exactjs/reactive/framework/values';\nimport { createOpaqueOperation, sharedOpaqueOperationStore } from './opaque-operation.js';\n\ndeclare const exactUnsafeHtmlReceiptBrand: unique symbol;\n\n/** Opaque compiler-selected raw-HTML range operation. */\nexport type ExactUnsafeHtmlReceipt = object & { readonly [exactUnsafeHtmlReceiptBrand]: never };\n\n/** Private raw-HTML input readable only by an enabled target capability. */\nexport type ExactUnsafeHtmlReceiptData = Readonly<{\n\tvalue: unknown;\n\tdomain?: ComponentDomain;\n}>;\n\nconst unsafeHtmlReceipts = sharedOpaqueOperationStore<ExactUnsafeHtmlReceiptData>('unsafe-html');\n/** Dispatch key implemented by render targets that accept audited raw HTML. */\nexport const exactUnsafeHtmlOperation = Symbol.for('@exactjs/target-operation/unsafe-html');\n/** Target contract selected by an opaque audited raw-HTML operation. */\nexport type ExactUnsafeHtmlOperationTarget<Result = unknown> = Readonly<{\n\t[exactUnsafeHtmlOperation](\n\t\toperation: ExactUnsafeHtmlReceipt,\n\t\tdata: ExactUnsafeHtmlReceiptData\n\t): Result;\n}>;\n\nfunction executeUnsafeHtmlOperation(this: object, target: object): unknown {\n\tconst data = unsafeHtmlReceipts.get(this);\n\tif (!data) throw new TypeError('Unsafe HTML operation lost its compiler-issued payload');\n\treturn (target as ExactUnsafeHtmlOperationTarget)[exactUnsafeHtmlOperation](\n\t\tthis as ExactUnsafeHtmlReceipt,\n\t\tdata\n\t);\n}\n\n/** Issues a focused raw-HTML range operation directly. */\nexport function createUnsafeHtmlReceipt(value: unknown): ExactUnsafeHtmlReceipt {\n\tconst domain = currentComponentDomain();\n\tconst receipt = createOpaqueOperation<ExactUnsafeHtmlReceipt>(executeUnsafeHtmlOperation, {\n\t\t...(domain ? { domain } : {})\n\t});\n\tunsafeHtmlReceipts.set(receipt, { value, ...(domain ? { domain } : {}) });\n\treturn receipt;\n}\n\n/** Creates an explicitly authorized opaque raw-HTML operation. */\nexport const unsafeHtml = createUnsafeHtmlReceipt;\n\n/** Issues raw HTML from compiler-lowered JSX props. */\nexport function createCompiledUnsafeHtmlReceipt(\n\tprops: Record<string, unknown> | null\n): ExactUnsafeHtmlReceipt {\n\treturn createUnsafeHtmlReceipt(unwrap(props?.value));\n}\n\n/** Reads only compiler-authorized raw-HTML operations. */\nexport function readUnsafeHtmlReceipt(value: unknown): ExactUnsafeHtmlReceiptData | undefined {\n\treturn typeof value === 'object' && value !== null ? unsafeHtmlReceipts.get(value) : undefined;\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"value-serialization.js","sourceRoot":"","sources":["../../../src/component-abi/value-serialization.ts"],"names":[],"mappings":"AASA,kGAAkG;AAClG,MAAM,UAAU,+BAA+B,CAAC,KAAc,EAAE,KAAK,GAAG,CAAC;IACxE,IAAI,KAAK,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAC7B,IAAI,KAAK,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IACtD,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC;QACjB,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,+BAA+B,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;IACnF,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IAC/E,MAAM,MAAM,GAAG,IAAI,GAAG,EAAU,CAAC;IACjC,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QACtD,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC;QAC3B,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,IAAI,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC;YAAE,OAAO,KAAK,CAAC;QAC3E,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAClB,IAAI,CAAC,+BAA+B,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC;YAAE,OAAO,KAAK,CAAC;IACjF,CAAC;IACD,OAAO,IAAI,CAAC;AACb,CAAC;AAED,mGAAmG;AACnG,MAAM,UAAU,0BAA0B,CACzC,KAAc,EACd,MAAqC;IAErC,IAAI,MAAM,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IAC/B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,MAAM,IAAI,SAAS,CAAC,4CAA4C,CAAC,CAAC;IAC7F,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,0BAA0B,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7F,MAAM,UAAU,GAAG,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;IAC3C,IAAI,KAAK,CAAC,MAAM,KAAK,UAAU;QAC9B,MAAM,IAAI,SAAS,CAAC,4CAA4C,CAAC,CAAC;IACnE,MAAM,MAAM,GAA4B,EAAE,CAAC;IAC3C,KAAK,IAAI,WAAW,GAAG,CAAC,EAAE,UAAU,GAAG,CAAC,EAAE,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,WAAW,IAAI,CAAC;QACtF,MAAM,CAAC,MAAM,CAAC,WAAW,CAAW,CAAC,GAAG,0BAA0B,CACjE,KAAK,CAAC,UAAU,EAAE,CAAC,EACnB,MAAM,CAAC,WAAW,GAAG,CAAC,CAAkC,CACxD,CAAC;IACH,OAAO,MAAM,CAAC;AACf,CAAC"}
1
+ {"version":3,"file":"value-serialization.js","sourceRoot":"","sources":["../../../src/component-abi/value-serialization.ts"],"names":[],"mappings":"AASA,kGAAkG;AAClG,MAAM,UAAU,+BAA+B,CAAC,KAAc,EAAE,KAAK,GAAG,CAAC;IACxE,IAAI,KAAK,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAC7B,IAAI,KAAK,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IACtD,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC;QACjB,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,+BAA+B,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;IACnF,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IAC/E,MAAM,MAAM,GAAG,IAAI,GAAG,EAAU,CAAC;IACjC,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QACtD,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC;QAC3B,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,IAAI,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC;YAAE,OAAO,KAAK,CAAC;QAC3E,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAClB,IAAI,CAAC,+BAA+B,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC;YAAE,OAAO,KAAK,CAAC;IACjF,CAAC;IACD,OAAO,IAAI,CAAC;AACb,CAAC;AAED,mGAAmG;AACnG,MAAM,UAAU,0BAA0B,CACzC,KAAc,EACd,MAAqC;IAErC,IAAI,MAAM,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IAC/B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,MAAM,IAAI,SAAS,CAAC,4CAA4C,CAAC,CAAC;IAC7F,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,0BAA0B,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7F,MAAM,UAAU,GAAG,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;IAC3C,IAAI,KAAK,CAAC,MAAM,KAAK,UAAU;QAC9B,MAAM,IAAI,SAAS,CAAC,4CAA4C,CAAC,CAAC;IACnE,MAAM,MAAM,GAA4B,EAAE,CAAC;IAC3C,KAAK,IAAI,WAAW,GAAG,CAAC,EAAE,UAAU,GAAG,CAAC,EAAE,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,WAAW,IAAI,CAAC;QACtF,MAAM,CAAC,MAAM,CAAC,WAAW,CAAW,CAAC,GAAG,0BAA0B,CACjE,KAAK,CAAC,UAAU,EAAE,CAAC,EACnB,MAAM,CAAC,WAAW,GAAG,CAAC,CAAkC,CACxD,CAAC;IACH,OAAO,MAAM,CAAC;AACf,CAAC","sourcesContent":["/** Opaque JSON-compatible value retained without positional transformation. */\nexport type ExactValueSerializationLeaf = 0;\n\n/** Immutable component-local schema for finite objects and homogeneous arrays. */\nexport type ExactValueSerializationSchema =\n\t| ExactValueSerializationLeaf\n\t| readonly [1, ...(string | ExactValueSerializationSchema)[]]\n\t| readonly [2, ExactValueSerializationSchema];\n\n/** Validates bounded immutable positional metadata before an artifact gains runtime authority. */\nexport function isExactValueSerializationSchema(value: unknown, depth = 0): boolean {\n\tif (value === 0) return true;\n\tif (depth > 32 || !Array.isArray(value)) return false;\n\tif (value[0] === 2)\n\t\treturn value.length === 2 && isExactValueSerializationSchema(value[1], depth + 1);\n\tif (value[0] !== 1 || value.length < 3 || value.length % 2 === 0) return false;\n\tconst fields = new Set<string>();\n\tfor (let index = 1; index < value.length; index += 2) {\n\t\tconst field = value[index];\n\t\tif (typeof field !== 'string' || !field || fields.has(field)) return false;\n\t\tfields.add(field);\n\t\tif (!isExactValueSerializationSchema(value[index + 1], depth + 1)) return false;\n\t}\n\treturn true;\n}\n\n/** Reconstructs one authored plain value from its validated component-local positional payload. */\nexport function decodeExactValueWithSchema(\n\tvalue: unknown,\n\tschema: ExactValueSerializationSchema\n): unknown {\n\tif (schema === 0) return value;\n\tif (!Array.isArray(value)) throw new TypeError('Malformed positional eXact component value');\n\tif (schema[0] === 2) return value.map((item) => decodeExactValueWithSchema(item, schema[1]));\n\tconst fieldCount = (schema.length - 1) / 2;\n\tif (value.length !== fieldCount)\n\t\tthrow new TypeError('Malformed positional eXact component value');\n\tconst output: Record<string, unknown> = {};\n\tfor (let schemaIndex = 1, inputIndex = 0; schemaIndex < schema.length; schemaIndex += 2)\n\t\toutput[schema[schemaIndex] as string] = decodeExactValueWithSchema(\n\t\t\tvalue[inputIndex++],\n\t\t\tschema[schemaIndex + 1] as ExactValueSerializationSchema\n\t\t);\n\treturn output;\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"boundary-validation.js","sourceRoot":"","sources":["../../../src/component-contract/boundary-validation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"boundary-validation.js","sourceRoot":"","sources":["../../../src/component-contract/boundary-validation.ts"],"names":[],"mappings":"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","sourcesContent":["import type { ExactComponentBoundaryContract } from '../component-contracts.js';\nimport {\n\thasOnlyContractKeys,\n\tisContractRecord,\n\tisContractString,\n\tisSafeContractStringList\n} from './metadata-validation.js';\n\n/** Validates generated boundary metadata, including the exact partition authority shape. */\nexport function isExactComponentBoundaryContract(\n\tvalue: unknown\n): value is ExactComponentBoundaryContract {\n\tif (!isContractRecord(value)) return false;\n\treturn (\n\t\thasOnlyContractKeys(value, [\n\t\t\t'id',\n\t\t\t'componentId',\n\t\t\t'ownerComponentId',\n\t\t\t'kind',\n\t\t\t'planVersion',\n\t\t\t'buildKey',\n\t\t\t'planEdgeId',\n\t\t\t'parentPlanId',\n\t\t\t'fallbackPlanId',\n\t\t\t'patchTargets',\n\t\t\t'discriminatorKind',\n\t\t\t'discriminatorValues',\n\t\t\t'generation'\n\t\t]) &&\n\t\tisContractString(value.id) &&\n\t\ttypeof value.componentId === 'string' &&\n\t\t(value.componentId.length > 0 ||\n\t\t\tvalue.kind === 'client-island' ||\n\t\t\tvalue.kind === 'server-slot') &&\n\t\tisContractString(value.ownerComponentId) &&\n\t\tisContractString(value.kind) &&\n\t\t(value.planVersion === undefined ||\n\t\t\t(Number.isSafeInteger(value.planVersion) && (value.planVersion as number) > 0)) &&\n\t\t(value.buildKey === undefined || isContractString(value.buildKey)) &&\n\t\t(value.planEdgeId === undefined || isContractString(value.planEdgeId)) &&\n\t\t(value.parentPlanId === undefined || isContractString(value.parentPlanId)) &&\n\t\t(value.fallbackPlanId === undefined || isContractString(value.fallbackPlanId)) &&\n\t\t(value.patchTargets === undefined || isSafeContractStringList(value.patchTargets)) &&\n\t\t(value.discriminatorKind === undefined ||\n\t\t\tvalue.discriminatorKind === 'single' ||\n\t\t\tvalue.discriminatorKind === 'branch' ||\n\t\t\tvalue.discriminatorKind === 'keyed') &&\n\t\t(value.discriminatorValues === undefined ||\n\t\t\tisSafeContractStringList(value.discriminatorValues)) &&\n\t\t(value.generation === undefined ||\n\t\t\t(Number.isSafeInteger(value.generation) && (value.generation as number) > 0)) &&\n\t\tvalidPartitionBoundaryFields(value)\n\t);\n}\n\nfunction validPartitionBoundaryFields(value: Record<string, unknown>): boolean {\n\tif (value.kind !== 'partition-range') return value.planVersion === undefined;\n\tif (\n\t\tvalue.planVersion !== 1 ||\n\t\t!isContractString(value.buildKey) ||\n\t\t!isContractString(value.planEdgeId) ||\n\t\t!isContractString(value.parentPlanId) ||\n\t\t!isContractString(value.fallbackPlanId) ||\n\t\t!isSafeContractStringList(value.patchTargets) ||\n\t\t!value.patchTargets.includes(value.planEdgeId) ||\n\t\t!isSafeContractStringList(value.discriminatorValues) ||\n\t\t!Number.isSafeInteger(value.generation) ||\n\t\t(value.generation as number) < 1\n\t)\n\t\treturn false;\n\tif (value.discriminatorKind === 'single') return value.discriminatorValues.length === 0;\n\tif (value.discriminatorKind === 'branch') return value.discriminatorValues.length > 0;\n\treturn value.discriminatorKind === 'keyed';\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"composition-support.js","sourceRoot":"","sources":["../../../src/component-contract/composition-support.ts"],"names":[],"mappings":"AAKA,0FAA0F;AAC1F,MAAM,UAAU,iBAAiB,CAChC,MAAkE,EAClE,QAAoD;IAEpD,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IACrC,IACC,QAAQ;QACR,CAAC,QAAQ,CAAC,WAAW,KAAK,QAAQ,CAAC,WAAW,IAAI,QAAQ,CAAC,OAAO,KAAK,QAAQ,CAAC,OAAO,CAAC;QAExF,MAAM,IAAI,KAAK,CAAC,qDAAqD,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAC;IACrF,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC;AAChC,CAAC;AAED,6EAA6E;AAC7E,MAAM,UAAU,uBAAuB,CACtC,MAAiD,EACjD,GAAW,EACX,cAAyC;IAEzC,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;IAC7B,IAAI,QAAQ,IAAI,QAAQ,KAAK,cAAc;QAC1C,MAAM,IAAI,KAAK,CAAC,8CAA8C,GAAG,EAAE,CAAC,CAAC;IACtE,MAAM,CAAC,GAAG,CAAC,GAAG,cAAc,CAAC;AAC9B,CAAC;AAED,kFAAkF;AAClF,MAAM,UAAU,aAAa,CAC5B,MAAyB,EACzB,GAAW,EACX,KAAQ,EACR,IAAY;IAEZ,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;IAC7B,IAAI,QAAQ,IAAI,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;QACjE,MAAM,IAAI,KAAK,CAAC,+BAA+B,IAAI,IAAI,GAAG,EAAE,CAAC,CAAC;IAC/D,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;AACrB,CAAC"}
1
+ {"version":3,"file":"composition-support.js","sourceRoot":"","sources":["../../../src/component-contract/composition-support.ts"],"names":[],"mappings":"AAKA,0FAA0F;AAC1F,MAAM,UAAU,iBAAiB,CAChC,MAAkE,EAClE,QAAoD;IAEpD,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IACrC,IACC,QAAQ;QACR,CAAC,QAAQ,CAAC,WAAW,KAAK,QAAQ,CAAC,WAAW,IAAI,QAAQ,CAAC,OAAO,KAAK,QAAQ,CAAC,OAAO,CAAC;QAExF,MAAM,IAAI,KAAK,CAAC,qDAAqD,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAC;IACrF,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC;AAChC,CAAC;AAED,6EAA6E;AAC7E,MAAM,UAAU,uBAAuB,CACtC,MAAiD,EACjD,GAAW,EACX,cAAyC;IAEzC,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;IAC7B,IAAI,QAAQ,IAAI,QAAQ,KAAK,cAAc;QAC1C,MAAM,IAAI,KAAK,CAAC,8CAA8C,GAAG,EAAE,CAAC,CAAC;IACtE,MAAM,CAAC,GAAG,CAAC,GAAG,cAAc,CAAC;AAC9B,CAAC;AAED,kFAAkF;AAClF,MAAM,UAAU,aAAa,CAC5B,MAAyB,EACzB,GAAW,EACX,KAAQ,EACR,IAAY;IAEZ,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;IAC7B,IAAI,QAAQ,IAAI,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;QACjE,MAAM,IAAI,KAAK,CAAC,+BAA+B,IAAI,IAAI,GAAG,EAAE,CAAC,CAAC;IAC/D,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;AACrB,CAAC","sourcesContent":["import type {\n\tAnyExactComponentCallable,\n\tExactComponentContinuationExecutorContract\n} from '../component-contracts.js';\n\n/** Adds one generated continuation implementation while rejecting ambiguous authority. */\nexport function addUniqueExecutor(\n\ttarget: Record<string, ExactComponentContinuationExecutorContract>,\n\texecutor: ExactComponentContinuationExecutorContract\n): void {\n\tconst previous = target[executor.id];\n\tif (\n\t\tprevious &&\n\t\t(previous.componentId !== executor.componentId || previous.execute !== executor.execute)\n\t)\n\t\tthrow new Error(`Conflicting eXact component continuation executor ${executor.id}`);\n\ttarget[executor.id] = executor;\n}\n\n/** Adds one implementation while rejecting ID or runtime-name collisions. */\nexport function addUniqueImplementation(\n\ttarget: Record<string, AnyExactComponentCallable>,\n\tkey: string,\n\timplementation: AnyExactComponentCallable\n): void {\n\tconst previous = target[key];\n\tif (previous && previous !== implementation)\n\t\tthrow new Error(`Conflicting eXact component implementation ${key}`);\n\ttarget[key] = implementation;\n}\n\n/** Adds immutable JSON-shaped metadata while rejecting conflicting identities. */\nexport function addUniqueJson<T>(\n\ttarget: Record<string, T>,\n\tkey: string,\n\tvalue: T,\n\tkind: string\n): void {\n\tconst previous = target[key];\n\tif (previous && JSON.stringify(previous) !== JSON.stringify(value))\n\t\tthrow new Error(`Conflicting eXact component ${kind} ${key}`);\n\ttarget[key] = value;\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"continuation-validation.js","sourceRoot":"","sources":["../../../src/component-contract/continuation-validation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"continuation-validation.js","sourceRoot":"","sources":["../../../src/component-contract/continuation-validation.ts"],"names":[],"mappings":"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","sourcesContent":["import type {\n\tExactComponentContinuationContract,\n\tExactContinuationStatePathContract\n} from '../component-contracts.js';\nimport { hasOnlyContractKeys, isContractRecord, isContractString } from './metadata-validation.js';\n\n/** Reports whether a generated continuation dependency has a supported source. */\nexport function isExactContinuationDependency(\n\tvalue: unknown\n): value is ExactComponentContinuationContract['dependencies'][number] {\n\treturn (\n\t\tisContractRecord(value) &&\n\t\thasOnlyContractKeys(value, ['index', 'source', 'path']) &&\n\t\t(value.index === undefined ||\n\t\t\t(typeof value.index === 'number' && Number.isSafeInteger(value.index) && value.index >= 0)) &&\n\t\t(value.path === undefined || isContractString(value.path)) &&\n\t\t(value.source === 'state' ||\n\t\t\tvalue.source === 'props' ||\n\t\t\tvalue.source === 'derived' ||\n\t\t\tvalue.source === 'argument')\n\t);\n}\n\n/** Reports whether generated continuation invocation metadata has a valid protocol shape. */\nexport function isExactContinuationInvocation(\n\tvalue: unknown\n): value is ExactComponentContinuationContract['invocation'];\nexport function isExactContinuationInvocation(\n\tvalue: unknown,\n\toptions: { argumentsOptional: true }\n): boolean;\nexport function isExactContinuationInvocation(\n\tvalue: unknown,\n\toptions: { argumentsOptional?: boolean } = {}\n): boolean {\n\tif (!isContractRecord(value) || !hasOnlyContractKeys(value, ['arguments', 'concurrency']))\n\t\treturn false;\n\tconst argumentsValue = value.arguments;\n\treturn (\n\t\t((options.argumentsOptional && argumentsValue === undefined) ||\n\t\t\t(Array.isArray(argumentsValue) &&\n\t\t\t\targumentsValue.every(\n\t\t\t\t\t(argument) =>\n\t\t\t\t\t\tisContractRecord(argument) &&\n\t\t\t\t\t\thasOnlyContractKeys(argument, ['index', 'source', 'path']) &&\n\t\t\t\t\t\t(argument.index === undefined ||\n\t\t\t\t\t\t\t(typeof argument.index === 'number' &&\n\t\t\t\t\t\t\t\tNumber.isSafeInteger(argument.index) &&\n\t\t\t\t\t\t\t\targument.index >= 0)) &&\n\t\t\t\t\t\t(argument.path === undefined || isContractString(argument.path)) &&\n\t\t\t\t\t\targument.source === 'argument'\n\t\t\t\t))) &&\n\t\t(value.concurrency === 'parallel' ||\n\t\t\tvalue.concurrency === 'latest' ||\n\t\t\tvalue.concurrency === 'queue')\n\t);\n}\n\n/** Reports whether a generated continuation state-path descriptor is valid. */\nexport function isExactContinuationStatePath(\n\tvalue: unknown\n): value is ExactContinuationStatePathContract {\n\treturn (\n\t\tisContractRecord(value) &&\n\t\thasOnlyContractKeys(value, ['path', 'kind', 'confidence', 'operation']) &&\n\t\tisContractString(value.path) &&\n\t\t(value.kind === 'read' || value.kind === 'write') &&\n\t\t(value.confidence === 'exact' ||\n\t\t\tvalue.confidence === 'broad' ||\n\t\t\tvalue.confidence === 'unknown') &&\n\t\t(value.operation === undefined ||\n\t\t\tvalue.operation === 'value' ||\n\t\t\tvalue.operation === 'map' ||\n\t\t\tvalue.operation === 'set')\n\t);\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"contract-cache.js","sourceRoot":"","sources":["../../../src/component-contract/contract-cache.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAC;AAOpE,MAAM,kBAAkB,GAAG,IAAI,OAAO,EAAsD,CAAC;AAE7F,kGAAkG;AAClG,MAAM,UAAU,0BAA0B,CACzC,SAAoC,EACpC,GAAY,EACZ,WAAmB;IAEnB,MAAM,MAAM,GAAG,kBAAkB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IACjD,IAAI,MAAM,IAAI,MAAM,CAAC,GAAG,KAAK,GAAG,IAAI,MAAM,CAAC,WAAW,KAAK,WAAW;QAAE,OAAO,MAAM,CAAC,GAAG,CAAC;IAC1F,IAAI,CAAC,wBAAwB,CAAC,GAAG,EAAE,WAAW,CAAC;QAC9C,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;IACzD,sBAAsB,CAAC,GAAG,CAAC,CAAC;IAC5B,kBAAkB,CAAC,GAAG,CAAC,SAAS,EAAE,EAAE,GAAG,EAAE,WAAW,EAAE,CAAC,CAAC;IACxD,OAAO,GAAG,CAAC;AACZ,CAAC;AAED,SAAS,sBAAsB,CAAC,QAAgC;IAC/D,MAAM,OAAO,GAAa,CAAC,QAAQ,CAAC,CAAC;IACrC,MAAM,OAAO,GAAG,IAAI,OAAO,EAAU,CAAC;IACtC,OAAO,OAAO,CAAC,MAAM,EAAE,CAAC;QACvB,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,EAAG,CAAC;QAC7B,IAAI,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC;YAAE,SAAS;QACjC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACnB,KAAK,MAAM,GAAG,IAAI,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YAC1C,MAAM,UAAU,GAAG,MAAM,CAAC,wBAAwB,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;YAC/D,MAAM,KAAK,GAAG,UAAU,IAAI,OAAO,IAAI,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;YACjF,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ;gBAAE,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACtE,CAAC;QACD,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACtB,CAAC;AACF,CAAC"}
1
+ {"version":3,"file":"contract-cache.js","sourceRoot":"","sources":["../../../src/component-contract/contract-cache.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAC;AAOpE,MAAM,kBAAkB,GAAG,IAAI,OAAO,EAAsD,CAAC;AAE7F,kGAAkG;AAClG,MAAM,UAAU,0BAA0B,CACzC,SAAoC,EACpC,GAAY,EACZ,WAAmB;IAEnB,MAAM,MAAM,GAAG,kBAAkB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IACjD,IAAI,MAAM,IAAI,MAAM,CAAC,GAAG,KAAK,GAAG,IAAI,MAAM,CAAC,WAAW,KAAK,WAAW;QAAE,OAAO,MAAM,CAAC,GAAG,CAAC;IAC1F,IAAI,CAAC,wBAAwB,CAAC,GAAG,EAAE,WAAW,CAAC;QAC9C,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;IACzD,sBAAsB,CAAC,GAAG,CAAC,CAAC;IAC5B,kBAAkB,CAAC,GAAG,CAAC,SAAS,EAAE,EAAE,GAAG,EAAE,WAAW,EAAE,CAAC,CAAC;IACxD,OAAO,GAAG,CAAC;AACZ,CAAC;AAED,SAAS,sBAAsB,CAAC,QAAgC;IAC/D,MAAM,OAAO,GAAa,CAAC,QAAQ,CAAC,CAAC;IACrC,MAAM,OAAO,GAAG,IAAI,OAAO,EAAU,CAAC;IACtC,OAAO,OAAO,CAAC,MAAM,EAAE,CAAC;QACvB,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,EAAG,CAAC;QAC7B,IAAI,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC;YAAE,SAAS;QACjC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACnB,KAAK,MAAM,GAAG,IAAI,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YAC1C,MAAM,UAAU,GAAG,MAAM,CAAC,wBAAwB,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;YAC/D,MAAM,KAAK,GAAG,UAAU,IAAI,OAAO,IAAI,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;YACjF,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ;gBAAE,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACtE,CAAC;QACD,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACtB,CAAC;AACF,CAAC","sourcesContent":["import type { AnyExactComponentCallable, ExactComponentContract } from '../component-contracts.js';\nimport { isExactComponentContract } from './contract-validation.js';\n\ntype CachedComponentContract = Readonly<{\n\traw: ExactComponentContract;\n\tcomponentId: string;\n}>;\n\nconst validatedContracts = new WeakMap<AnyExactComponentCallable, CachedComponentContract>();\n\n/** Validates and freezes compiler authority once while detecting later attachment replacement. */\nexport function validatedComponentContract(\n\tcomponent: AnyExactComponentCallable,\n\traw: unknown,\n\tcomponentId: string\n): ExactComponentContract {\n\tconst cached = validatedContracts.get(component);\n\tif (cached && cached.raw === raw && cached.componentId === componentId) return cached.raw;\n\tif (!isExactComponentContract(raw, componentId))\n\t\tthrow new Error('Unsupported eXact component contract');\n\tfreezeContractMetadata(raw);\n\tvalidatedContracts.set(component, { raw, componentId });\n\treturn raw;\n}\n\nfunction freezeContractMetadata(contract: ExactComponentContract): void {\n\tconst pending: object[] = [contract];\n\tconst visited = new WeakSet<object>();\n\twhile (pending.length) {\n\t\tconst value = pending.pop()!;\n\t\tif (visited.has(value)) continue;\n\t\tvisited.add(value);\n\t\tfor (const key of Reflect.ownKeys(value)) {\n\t\t\tconst descriptor = Object.getOwnPropertyDescriptor(value, key);\n\t\t\tconst child = descriptor && 'value' in descriptor ? descriptor.value : undefined;\n\t\t\tif (child !== null && typeof child === 'object') pending.push(child);\n\t\t}\n\t\tObject.freeze(value);\n\t}\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"contract-validation.d.ts","sourceRoot":"","sources":["../../../src/component-contract/contract-validation.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACX,sBAAsB,EAKtB,MAAM,2BAA2B,CAAC;AAoBnC,2FAA2F;AAC3F,wBAAgB,wBAAwB,CACvC,KAAK,EAAE,OAAO,EACd,WAAW,EAAE,MAAM,GACjB,KAAK,IAAI,sBAAsB,CA0CjC"}
1
+ {"version":3,"file":"contract-validation.d.ts","sourceRoot":"","sources":["../../../src/component-contract/contract-validation.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACX,sBAAsB,EAKtB,MAAM,2BAA2B,CAAC;AAsBnC,2FAA2F;AAC3F,wBAAgB,wBAAwB,CACvC,KAAK,EAAE,OAAO,EACd,WAAW,EAAE,MAAM,GACjB,KAAK,IAAI,sBAAsB,CA0CjC"}