@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
@@ -4,7 +4,7 @@ export function createPreparedServerChildRange(value, markerId, mayReplaceSubtre
4
4
  const range = {
5
5
  [PreparedServerChildRange]: true,
6
6
  value,
7
- ...(markerId === undefined ? {} : { markerId }),
7
+ markerId,
8
8
  mayReplaceSubtree
9
9
  };
10
10
  return range;
@@ -1 +1 @@
1
- {"version":3,"file":"server-child-range.js","sourceRoot":"","sources":["../../src/component-abi/server-child-range.ts"],"names":[],"mappings":"AAEA,MAAM,wBAAwB,GAAG,MAAM,CAAC,GAAG,CAAC,sCAAsC,CAAC,CAAC;AASpF,+FAA+F;AAC/F,MAAM,UAAU,8BAA8B,CAC7C,KAAmB,EACnB,QAAiB,EACjB,iBAAiB,GAAG,IAAI;IAExB,MAAM,KAAK,GAAG;QACb,CAAC,wBAAwB,CAAC,EAAE,IAAI;QAChC,KAAK;QACL,GAAG,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC;QAC/C,iBAAiB;KACjB,CAAC;IACF,OAAO,KAAK,CAAC;AACd,CAAC;AAED,iFAAiF;AACjF,MAAM,UAAU,4BAA4B,CAC3C,KAAc;IAEd,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,wBAAwB,IAAI,KAAK;QACtF,CAAC,CAAE,KAAkD;QACrD,CAAC,CAAC,SAAS,CAAC;AACd,CAAC"}
1
+ {"version":3,"file":"server-child-range.js","sourceRoot":"","sources":["../../src/component-abi/server-child-range.ts"],"names":[],"mappings":"AAEA,MAAM,wBAAwB,GAAG,MAAM,CAAC,GAAG,CAAC,sCAAsC,CAAC,CAAC;AASpF,+FAA+F;AAC/F,MAAM,UAAU,8BAA8B,CAC7C,KAAmB,EACnB,QAAiB,EACjB,iBAAiB,GAAG,IAAI;IAExB,MAAM,KAAK,GAAG;QACb,CAAC,wBAAwB,CAAC,EAAE,IAAI;QAChC,KAAK;QACL,QAAQ;QACR,iBAAiB;KACjB,CAAC;IACF,OAAO,KAAK,CAAC;AACd,CAAC;AAED,iFAAiF;AACjF,MAAM,UAAU,4BAA4B,CAC3C,KAAc;IAEd,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,wBAAwB,IAAI,KAAK;QACtF,CAAC,CAAE,KAAkD;QACrD,CAAC,CAAC,SAAS,CAAC;AACd,CAAC","sourcesContent":["import type { RenderResult } from '../component/contracts.js';\n\nconst PreparedServerChildRange = Symbol.for('@exactjs/server/prepared-child-range');\n\n/** Direct request-local child range emitted only by compiler-closed server artifacts. */\nexport type ExactPreparedServerChildRange = Readonly<{\n\treadonly value: RenderResult;\n\treadonly markerId?: string;\n\treadonly mayReplaceSubtree: boolean;\n}>;\n\n/** Creates a direct server range without allocating an opaque operation or private payload. */\nexport function createPreparedServerChildRange(\n\tvalue: RenderResult,\n\tmarkerId?: string,\n\tmayReplaceSubtree = true\n): ExactPreparedServerChildRange {\n\tconst range = {\n\t\t[PreparedServerChildRange]: true,\n\t\tvalue,\n\t\tmarkerId,\n\t\tmayReplaceSubtree\n\t};\n\treturn range;\n}\n\n/** Reads only direct child ranges issued by compiler-closed server artifacts. */\nexport function readPreparedServerChildRange(\n\tvalue: unknown\n): ExactPreparedServerChildRange | undefined {\n\treturn typeof value === 'object' && value !== null && PreparedServerChildRange in value\n\t\t? (value as unknown as ExactPreparedServerChildRange)\n\t\t: undefined;\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"server-keyed-child.js","sourceRoot":"","sources":["../../src/component-abi/server-keyed-child.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,oCAAoC,CAAC;AAG5D,MAAM,wBAAwB,GAAG,MAAM,CAAC,GAAG,CAAC,sCAAsC,CAAC,CAAC;AAmBpF,sGAAsG;AACtG,MAAM,UAAU,8BAA8B,CAC7C,KAAc,EACd,WAAoB,EACpB,OAAO,GAAG,KAAK;IAEf,MAAM,GAAG,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC;IAChC,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,SAAS;QAAE,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;IAC7F,MAAM,aAAa,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;IAClC,IAAI,OAAO;QAAE,OAAO,KAAyC,CAAC;IAC9D,MAAM,KAAK,GAAG,EAAE,CAAC,wBAAwB,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,aAAa,EAAE,CAAC;IAC9E,OAAO,KAAK,CAAC;AACd,CAAC;AAED,mFAAmF;AACnF,MAAM,UAAU,4BAA4B,CAC3C,KAAc;IAEd,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,wBAAwB,IAAI,KAAK;QACtF,CAAC,CAAE,KAAkD;QACrD,CAAC,CAAC,SAAS,CAAC;AACd,CAAC"}
1
+ {"version":3,"file":"server-keyed-child.js","sourceRoot":"","sources":["../../src/component-abi/server-keyed-child.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,oCAAoC,CAAC;AAG5D,MAAM,wBAAwB,GAAG,MAAM,CAAC,GAAG,CAAC,sCAAsC,CAAC,CAAC;AAmBpF,sGAAsG;AACtG,MAAM,UAAU,8BAA8B,CAC7C,KAAc,EACd,WAAoB,EACpB,OAAO,GAAG,KAAK;IAEf,MAAM,GAAG,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC;IAChC,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,SAAS;QAAE,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;IAC7F,MAAM,aAAa,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;IAClC,IAAI,OAAO;QAAE,OAAO,KAAyC,CAAC;IAC9D,MAAM,KAAK,GAAG,EAAE,CAAC,wBAAwB,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,aAAa,EAAE,CAAC;IAC9E,OAAO,KAAK,CAAC;AACd,CAAC;AAED,mFAAmF;AACnF,MAAM,UAAU,4BAA4B,CAC3C,KAAc;IAEd,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,wBAAwB,IAAI,KAAK;QACtF,CAAC,CAAE,KAAkD;QACrD,CAAC,CAAC,SAAS,CAAC;AACd,CAAC","sourcesContent":["import { unwrap } from '@exactjs/reactive/framework/values';\nimport type { ExactPreparedServerRenderProgram } from '../render-program.js';\n\nconst PreparedServerKeyedChild = Symbol.for('@exactjs/server/prepared-keyed-child');\n\n/** Direct request-local keyed child emitted only by compiler-closed server artifacts. */\nexport type ExactPreparedServerKeyedChild = Readonly<{\n\treadonly value: unknown;\n\treadonly key: string;\n}>;\n\n/** Validates a list key while reusing the compiler-proven program's existing item boundary. */\nexport function createPreparedServerKeyedChild(\n\tvalue: ExactPreparedServerRenderProgram,\n\tauthoredKey: unknown,\n\tprogram: true\n): ExactPreparedServerRenderProgram;\n/** Retains server-local list identity for values requiring a separate keyed boundary. */\nexport function createPreparedServerKeyedChild(\n\tvalue: unknown,\n\tauthoredKey: unknown\n): ExactPreparedServerKeyedChild;\n/** Only compiler-proven program children may omit the wrapper; key validation and coercion remain. */\nexport function createPreparedServerKeyedChild(\n\tvalue: unknown,\n\tauthoredKey: unknown,\n\tprogram = false\n): ExactPreparedServerKeyedChild | ExactPreparedServerRenderProgram {\n\tconst key = unwrap(authoredKey);\n\tif (key === null || key === undefined) throw new Error('Compiled keyed lists require a key');\n\tconst normalizedKey = String(key);\n\tif (program) return value as ExactPreparedServerRenderProgram;\n\tconst child = { [PreparedServerKeyedChild]: true, value, key: normalizedKey };\n\treturn child;\n}\n\n/** Reads only direct keyed children issued by compiler-closed server artifacts. */\nexport function readPreparedServerKeyedChild(\n\tvalue: unknown\n): ExactPreparedServerKeyedChild | undefined {\n\treturn typeof value === 'object' && value !== null && PreparedServerKeyedChild in value\n\t\t? (value as unknown as ExactPreparedServerKeyedChild)\n\t\t: undefined;\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"server-runtime.js","sourceRoot":"","sources":["../../src/component-abi/server-runtime.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,kBAAkB,EAClB,gBAAgB,EAChB,gBAAgB,EAKhB,MAAM,aAAa,CAAC;AAErB,4EAA4E;AAC5E,MAAM,UAAU,yBAAyB,CAExC,OAA8B,EAC9B,MAA0B,EAC1B,KAA8B;IAE9B,OAAO,OAAO,CAAC,gBAAgB,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;AACvD,CAAC;AAED,+EAA+E;AAC/E,MAAM,UAAU,yBAAyB,CAExC,KAAa,EACb,MAAuB;IAEvB,OAAO,MAAM,CAAC,gBAAgB,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;AAC9C,CAAC;AAED,4FAA4F;AAC5F,MAAM,UAAU,2BAA2B,CAE1C,KAAuB,EACvB,MAAe;IAEf,OAAO,KAAK,CAAC,kBAAkB,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AAChD,CAAC"}
1
+ {"version":3,"file":"server-runtime.js","sourceRoot":"","sources":["../../src/component-abi/server-runtime.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,kBAAkB,EAClB,gBAAgB,EAChB,gBAAgB,EAKhB,MAAM,aAAa,CAAC;AAErB,4EAA4E;AAC5E,MAAM,UAAU,yBAAyB,CAExC,OAA8B,EAC9B,MAA0B,EAC1B,KAA8B;IAE9B,OAAO,OAAO,CAAC,gBAAgB,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;AACvD,CAAC;AAED,+EAA+E;AAC/E,MAAM,UAAU,yBAAyB,CAExC,KAAa,EACb,MAAuB;IAEvB,OAAO,MAAM,CAAC,gBAAgB,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;AAC9C,CAAC;AAED,4FAA4F;AAC5F,MAAM,UAAU,2BAA2B,CAE1C,KAAuB,EACvB,MAAe;IAEf,OAAO,KAAK,CAAC,kBAAkB,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AAChD,CAAC","sourcesContent":["import {\n\texactServerDispose,\n\texactServerIssue,\n\texactServerWrite,\n\ttype ExactHtmlWriter,\n\ttype ExactRequestExecution,\n\ttype ExactServerComponentArtifact,\n\ttype ExactServerFrame\n} from './server.js';\n\n/** Establishes request ownership through the request execution protocol. */\nexport function issueExactServerComponent(\n\tthis: ExactServerComponentArtifact,\n\trequest: ExactRequestExecution,\n\tparent: object | undefined,\n\tprops: Record<string, unknown>\n): object | Promise<object> {\n\treturn request[exactServerIssue](this, parent, props);\n}\n\n/** Publishes an issued frame through the writer protocol in authored order. */\nexport function writeExactServerComponent(\n\tthis: ExactServerComponentArtifact,\n\tframe: object,\n\toutput: ExactHtmlWriter\n): void | Promise<void> {\n\treturn output[exactServerWrite](this, frame);\n}\n\n/** Releases request-local frame ownership without storing request state on the artifact. */\nexport function disposeExactServerComponent(\n\tthis: ExactServerComponentArtifact,\n\tframe: ExactServerFrame,\n\treason: unknown\n): void | Promise<void> {\n\treturn frame[exactServerDispose](this, reason);\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"server-structure-receipts.js","sourceRoot":"","sources":["../../src/component-abi/server-structure-receipts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,oCAAoC,CAAC;AAE5D,OAAO,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AACvD,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAAE,qBAAqB,EAAE,0BAA0B,EAAE,MAAM,uBAAuB,CAAC;AAkC1F,MAAM,UAAU,GAAG,0BAA0B,CAAiC,iBAAiB,CAAC,CAAC;AACjG,MAAM,KAAK,GAAG,0BAA0B,CAA6B,aAAa,CAAC,CAAC;AACpF,4EAA4E;AAC5E,MAAM,CAAC,MAAM,4BAA4B,GAAG,MAAM,CAAC,GAAG,CAAC,2CAA2C,CAAC,CAAC;AACpG,gFAAgF;AAChF,MAAM,CAAC,MAAM,wBAAwB,GAAG,MAAM,CAAC,GAAG,CAAC,uCAAuC,CAAC,CAAC;AAgB5F,SAAS,8BAA8B,CAAe,MAAc;IACnE,MAAM,IAAI,GAAG,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAClC,IAAI,CAAC,IAAI;QAAE,MAAM,IAAI,SAAS,CAAC,4DAA4D,CAAC,CAAC;IAC7F,OAAQ,MAA6C,CAAC,4BAA4B,CAAC,CAClF,IAAkC,EAClC,IAAI,CACJ,CAAC;AACH,CAAC;AAED,SAAS,0BAA0B,CAAe,MAAc;IAC/D,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC7B,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,qEAAqE;AACrE,MAAM,UAAU,2BAA2B,CAC1C,EAAU,EACV,IAAY,EACZ,QAAiC,EAAE,EACnC,GAAG,QAAmB;IAEtB,MAAM,OAAO,GAAG,qBAAqB,CAA6B,8BAA8B,CAAC,CAAC;IAClG,UAAU,CAAC,GAAG,CAAC,OAAO,EAAE;QACvB,EAAE,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC;QAC5B,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;QAChC,KAAK;QACL,QAAQ,EAAE,qBAAqB,CAAC,QAAQ,CAAC;KACzC,CAAC,CAAC;IACH,OAAO,OAAO,CAAC;AAChB,CAAC;AAED,oEAAoE;AACpE,MAAM,CAAC,MAAM,oBAAoB,GAAG,2BAA2B,CAAC;AAEhE,gEAAgE;AAChE,MAAM,UAAU,mCAAmC,CAClD,KAAqC,EACrC,GAAG,QAAmB;IAEtB,MAAM,KAAK,GAAG,KAAK,IAAI,EAAE,CAAC;IAC1B,OAAO,2BAA2B,CACjC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,EAC9B,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,EAChC,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,CAA4B,EACtD,GAAG,QAAQ,CACX,CAAC;AACH,CAAC;AAED,iEAAiE;AACjE,MAAM,UAAU,uBAAuB,CACtC,EAAU,EACV,YAAqC,EAAE,EACvC,GAAG,QAAmB;IAEtB,OAAO,sBAAsB,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;AAC9E,CAAC;AAED,kEAAkE;AAClE,MAAM,CAAC,MAAM,gBAAgB,GAAG,uBAAuB,CAAC;AAExD,sEAAsE;AACtE,MAAM,UAAU,+BAA+B,CAC9C,KAAqC,EACrC,GAAG,QAAmB;IAEtB,MAAM,EAAE,EAAE,EAAE,GAAG,SAAS,EAAE,GAAG,KAAK,IAAI,EAAE,CAAC;IACzC,OAAO,uBAAuB,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,SAAS,EAAE,GAAG,QAAQ,CAAC,CAAC;AAClF,CAAC;AAED,0DAA0D;AAC1D,MAAM,UAAU,4BAA4B,CAC3C,EAAU,EACV,IAAY,EACZ,GAAY,EACZ,YAAqC,EAAE,EACvC,GAAG,QAAmB;IAEtB,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;IAC3B,IAAI,MAAM,KAAK,IAAI,IAAI,MAAM,KAAK,SAAS;QAC1C,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;IAChE,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;IAChC,OAAO,sBAAsB,CAC5B,GAAG,EAAE,QAAQ,qBAAqB,CAAC,QAAQ,CAAC,EAAE,EAC9C,EAAE,GAAG,SAAS,EAAE,GAAG,EAAE,QAAQ,EAAE,aAAa,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EACjF,QAAQ,CACR,CAAC;AACH,CAAC;AAED,gDAAgD;AAChD,MAAM,CAAC,MAAM,qBAAqB,GAAG,4BAA4B,CAAC;AAElE,SAAS,sBAAsB,CAC9B,EAAU,EACV,SAAkC,EAClC,QAAmB;IAEnB,MAAM,EAAE,GAAG,EAAE,GAAG,iBAAiB,EAAE,GAAG,SAAS,CAAC;IAChD,MAAM,OAAO,GAAG,qBAAqB,CAAyB,0BAA0B,CAAC,CAAC;IAC1F,KAAK,CAAC,GAAG,CAAC,OAAO,EAAE;QAClB,EAAE;QACF,QAAQ,EAAE,qBAAqB,CAAC,QAAQ,CAAC;QACzC,GAAG,CAAC,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;QAC1E,GAAG,iBAAiB;KACpB,CAAC,CAAC;IACH,OAAO,OAAO,CAAC;AAChB,CAAC;AAED,uGAAuG;AACvG,MAAM,UAAU,yBAAyB,CACxC,KAAc;IAEd,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AACxF,CAAC;AAED,mGAAmG;AACnG,MAAM,UAAU,qBAAqB,CAAC,KAAc;IACnD,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AACnF,CAAC"}
1
+ {"version":3,"file":"server-structure-receipts.js","sourceRoot":"","sources":["../../src/component-abi/server-structure-receipts.ts"],"names":[],"mappings":"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","sourcesContent":["import { unwrap } from '@exactjs/reactive/framework/values';\nimport type { Child } from '../component/contracts.js';\nimport { encodeExactMarkerPart } from '../protocol.js';\nimport { normalizeRenderResult } from '../render-children.js';\nimport { createOpaqueOperation, sharedOpaqueOperationStore } from './opaque-operation.js';\n\ndeclare const exactServerBoundaryReceiptBrand: unique symbol;\ndeclare const exactServerSlotReceiptBrand: unique symbol;\n\n/** Opaque compiler-owned client-island publication operation. */\nexport type ExactServerBoundaryReceipt = object & {\n\treadonly [exactServerBoundaryReceiptBrand]: never;\n};\n\n/** Opaque compiler-owned retained server-range operation. */\nexport type ExactServerSlotReceipt = object & { readonly [exactServerSlotReceiptBrand]: never };\n\n/** Private compiler-selected client-island publication inputs consumed by SSR. */\nexport type ExactServerBoundaryReceiptData = Readonly<{\n\tid: string;\n\tname: string;\n\tprops: Readonly<Record<string, unknown>>;\n\tchildren: readonly Child[];\n}>;\n\n/** Private retained server-range inputs and compiler-owned protocol authority. */\nexport type ExactServerSlotReceiptData = Readonly<{\n\tid: string;\n\tchildren: readonly Child[];\n\tkey?: string;\n\tplanVersion?: unknown;\n\tbuildKey?: unknown;\n\tplanEdgeId?: unknown;\n\townerComponentId?: unknown;\n\tdiscriminator?: unknown;\n\tgeneration?: unknown;\n}>;\n\nconst boundaries = sharedOpaqueOperationStore<ExactServerBoundaryReceiptData>('server-boundary');\nconst slots = sharedOpaqueOperationStore<ExactServerSlotReceiptData>('server-slot');\n/** Dispatch key implemented by SSR targets that publish a client island. */\nexport const exactServerBoundaryOperation = Symbol.for('@exactjs/target-operation/server-boundary');\n/** Dispatch key implemented by SSR targets that retain a server-owned range. */\nexport const exactServerSlotOperation = Symbol.for('@exactjs/target-operation/server-slot');\n/** Target contract selected by an opaque client-island publication. */\nexport type ExactServerBoundaryOperationTarget<Result = unknown> = Readonly<{\n\t[exactServerBoundaryOperation](\n\t\toperation: ExactServerBoundaryReceipt,\n\t\tdata: ExactServerBoundaryReceiptData\n\t): Result;\n}>;\n/** Target contract selected by an opaque retained server range. */\nexport type ExactServerSlotOperationTarget<Result = unknown> = Readonly<{\n\t[exactServerSlotOperation](\n\t\toperation: ExactServerSlotReceipt,\n\t\tdata: ExactServerSlotReceiptData\n\t): Result;\n}>;\n\nfunction executeServerBoundaryOperation(this: object, target: object): unknown {\n\tconst data = boundaries.get(this);\n\tif (!data) throw new TypeError('Server-boundary operation lost its compiler-issued payload');\n\treturn (target as ExactServerBoundaryOperationTarget)[exactServerBoundaryOperation](\n\t\tthis as ExactServerBoundaryReceipt,\n\t\tdata\n\t);\n}\n\nfunction executeServerSlotOperation(this: object, target: object): unknown {\n\tconst data = slots.get(this);\n\tif (!data) throw new TypeError('Server-slot operation lost its compiler-issued payload');\n\treturn (target as ExactServerSlotOperationTarget)[exactServerSlotOperation](\n\t\tthis as ExactServerSlotReceipt,\n\t\tdata\n\t);\n}\n\n/** Issues one compiler-owned client-island publication operation. */\nexport function createServerBoundaryReceipt(\n\tid: string,\n\tname: string,\n\tprops: Record<string, unknown> = {},\n\t...children: unknown[]\n): ExactServerBoundaryReceipt {\n\tconst receipt = createOpaqueOperation<ExactServerBoundaryReceipt>(executeServerBoundaryOperation);\n\tboundaries.set(receipt, {\n\t\tid: String(unwrap(id) ?? ''),\n\t\tname: String(unwrap(name) ?? ''),\n\t\tprops,\n\t\tchildren: normalizeRenderResult(children)\n\t});\n\treturn receipt;\n}\n\n/** Creates a compiler-owned client-island publication operation. */\nexport const createServerBoundary = createServerBoundaryReceipt;\n\n/** Issues a client boundary from compiler-lowered JSX props. */\nexport function createCompiledServerBoundaryReceipt(\n\tinput: Record<string, unknown> | null,\n\t...children: unknown[]\n): ExactServerBoundaryReceipt {\n\tconst props = input ?? {};\n\treturn createServerBoundaryReceipt(\n\t\tString(unwrap(props.id) ?? ''),\n\t\tString(unwrap(props.name) ?? ''),\n\t\t(unwrap(props.props) ?? {}) as Record<string, unknown>,\n\t\t...children\n\t);\n}\n\n/** Issues one compiler-owned retained server-range operation. */\nexport function createServerSlotReceipt(\n\tid: string,\n\tauthority: Record<string, unknown> = {},\n\t...children: unknown[]\n): ExactServerSlotReceipt {\n\treturn issueServerSlotReceipt(String(unwrap(id) ?? ''), authority, children);\n}\n\n/** Creates or adopts one compiler-owned retained server range. */\nexport const createServerSlot = createServerSlotReceipt;\n\n/** Issues a retained server range from compiler-lowered JSX props. */\nexport function createCompiledServerSlotReceipt(\n\tinput: Record<string, unknown> | null,\n\t...children: unknown[]\n): ExactServerSlotReceipt {\n\tconst { id, ...authority } = input ?? {};\n\treturn createServerSlotReceipt(String(unwrap(id) ?? ''), authority, ...children);\n}\n\n/** Issues one canonically keyed retained server range. */\nexport function createKeyedServerSlotReceipt(\n\tid: string,\n\tlist: string,\n\tkey: unknown,\n\tauthority: Record<string, unknown> = {},\n\t...children: unknown[]\n): ExactServerSlotReceipt {\n\tconst rawKey = unwrap(key);\n\tif (rawKey === null || rawKey === undefined)\n\t\tthrow new Error('Keyed server ranges require a canonical key');\n\tconst keyToken = String(rawKey);\n\treturn issueServerSlotReceipt(\n\t\t`${id}:key:${encodeExactMarkerPart(keyToken)}`,\n\t\t{ ...authority, key: keyToken, discriminator: { kind: 'keyed', list, keyToken } },\n\t\tchildren\n\t);\n}\n\n/** Creates one canonical keyed server range. */\nexport const createKeyedServerSlot = createKeyedServerSlotReceipt;\n\nfunction issueServerSlotReceipt(\n\tid: string,\n\tauthority: Record<string, unknown>,\n\tchildren: unknown[]\n): ExactServerSlotReceipt {\n\tconst { key, ...protocolAuthority } = authority;\n\tconst receipt = createOpaqueOperation<ExactServerSlotReceipt>(executeServerSlotOperation);\n\tslots.set(receipt, {\n\t\tid,\n\t\tchildren: normalizeRenderResult(children),\n\t\t...(key === null || key === undefined ? {} : { key: String(unwrap(key)) }),\n\t\t...protocolAuthority\n\t});\n\treturn receipt;\n}\n\n/** Reads a compiler-issued client-island publication operation without accepting arbitrary objects. */\nexport function readServerBoundaryReceipt(\n\tvalue: unknown\n): ExactServerBoundaryReceiptData | undefined {\n\treturn typeof value === 'object' && value !== null ? boundaries.get(value) : undefined;\n}\n\n/** Reads a compiler-issued retained server-range operation without accepting arbitrary objects. */\nexport function readServerSlotReceipt(value: unknown): ExactServerSlotReceiptData | undefined {\n\treturn typeof value === 'object' && value !== null ? slots.get(value) : undefined;\n}\n"]}
@@ -1,3 +1,4 @@
1
+ import type { componentContractVersion } from '../component/contract-versions.js';
1
2
  import type { AnyExactComponentCallable, ExactComponentReactiveAllocation } from './executable-fields.js';
2
3
  import type { ExactCompiledComponentCapability } from '../component-definition-contracts.js';
3
4
  import type { CompiledComponentInstanceConstructor } from '../component/instance-construction.js';
@@ -45,7 +46,7 @@ export type ExactServerComponentExecution = Readonly<{
45
46
  }>;
46
47
  /** Complete executable ABI carried by one compiler-produced server component export. */
47
48
  export type ExactServerComponentArtifact = Readonly<{
48
- version: 1;
49
+ version: typeof componentContractVersion;
49
50
  target: 'server';
50
51
  id: string;
51
52
  issue: AnyExactComponentCallable;
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/component-abi/server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/component-abi/server.ts"],"names":[],"mappings":"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"}
@@ -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"]}