@craft-ts/core 0.7.0-beta.13

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 (682) hide show
  1. package/LICENSE +21 -0
  2. package/package.json +58 -0
  3. package/src/index.d.ts +148 -0
  4. package/src/index.d.ts.map +1 -0
  5. package/src/index.js +150 -0
  6. package/src/index.js.map +1 -0
  7. package/src/lib/after-recomputation.d.ts +327 -0
  8. package/src/lib/after-recomputation.d.ts.map +1 -0
  9. package/src/lib/after-recomputation.js +25 -0
  10. package/src/lib/after-recomputation.js.map +1 -0
  11. package/src/lib/app-checked-di.d.ts +82 -0
  12. package/src/lib/app-checked-di.d.ts.map +1 -0
  13. package/src/lib/app-checked-di.js +1 -0
  14. package/src/lib/app-checked-di.js.map +1 -0
  15. package/src/lib/async-process.d.ts +411 -0
  16. package/src/lib/async-process.d.ts.map +1 -0
  17. package/src/lib/async-process.js +702 -0
  18. package/src/lib/async-process.js.map +1 -0
  19. package/src/lib/branded-component/branded-component.d.ts +129 -0
  20. package/src/lib/branded-component/branded-component.d.ts.map +1 -0
  21. package/src/lib/branded-component/branded-component.js +7 -0
  22. package/src/lib/branded-component/branded-component.js.map +1 -0
  23. package/src/lib/browser-boundaries.d.ts +165 -0
  24. package/src/lib/browser-boundaries.d.ts.map +1 -0
  25. package/src/lib/browser-boundaries.js +550 -0
  26. package/src/lib/browser-boundaries.js.map +1 -0
  27. package/src/lib/client-di-requirement.d.ts +28 -0
  28. package/src/lib/client-di-requirement.d.ts.map +1 -0
  29. package/src/lib/client-di-requirement.js +11 -0
  30. package/src/lib/client-di-requirement.js.map +1 -0
  31. package/src/lib/client-function-middleware.d.ts +130 -0
  32. package/src/lib/client-function-middleware.d.ts.map +1 -0
  33. package/src/lib/client-function-middleware.js +144 -0
  34. package/src/lib/client-function-middleware.js.map +1 -0
  35. package/src/lib/component-monitoring.d.ts +7 -0
  36. package/src/lib/component-monitoring.d.ts.map +1 -0
  37. package/src/lib/component-monitoring.js +28 -0
  38. package/src/lib/component-monitoring.js.map +1 -0
  39. package/src/lib/component-register.d.ts +12 -0
  40. package/src/lib/component-register.d.ts.map +1 -0
  41. package/src/lib/component-register.js +13 -0
  42. package/src/lib/component-register.js.map +1 -0
  43. package/src/lib/computed-source.d.ts +303 -0
  44. package/src/lib/computed-source.d.ts.map +1 -0
  45. package/src/lib/computed-source.js +319 -0
  46. package/src/lib/computed-source.js.map +1 -0
  47. package/src/lib/correlation-id-plugin.d.ts +3 -0
  48. package/src/lib/correlation-id-plugin.d.ts.map +1 -0
  49. package/src/lib/correlation-id-plugin.js +73 -0
  50. package/src/lib/correlation-id-plugin.js.map +1 -0
  51. package/src/lib/correlation-id.d.ts +30 -0
  52. package/src/lib/correlation-id.d.ts.map +1 -0
  53. package/src/lib/correlation-id.js +86 -0
  54. package/src/lib/correlation-id.js.map +1 -0
  55. package/src/lib/craft-a11y.d.ts +22 -0
  56. package/src/lib/craft-a11y.d.ts.map +1 -0
  57. package/src/lib/craft-a11y.js +32 -0
  58. package/src/lib/craft-a11y.js.map +1 -0
  59. package/src/lib/craft-activated-route.d.ts +21 -0
  60. package/src/lib/craft-activated-route.d.ts.map +1 -0
  61. package/src/lib/craft-activated-route.js +20 -0
  62. package/src/lib/craft-activated-route.js.map +1 -0
  63. package/src/lib/craft-app-config.d.ts +91 -0
  64. package/src/lib/craft-app-config.d.ts.map +1 -0
  65. package/src/lib/craft-app-config.js +64 -0
  66. package/src/lib/craft-app-config.js.map +1 -0
  67. package/src/lib/craft-codec.d.ts +16 -0
  68. package/src/lib/craft-codec.d.ts.map +1 -0
  69. package/src/lib/craft-codec.js +1 -0
  70. package/src/lib/craft-codec.js.map +1 -0
  71. package/src/lib/craft-computed.d.ts +31 -0
  72. package/src/lib/craft-computed.d.ts.map +1 -0
  73. package/src/lib/craft-computed.js +81 -0
  74. package/src/lib/craft-computed.js.map +1 -0
  75. package/src/lib/craft-control-flow.d.ts +14 -0
  76. package/src/lib/craft-control-flow.d.ts.map +1 -0
  77. package/src/lib/craft-control-flow.js +18 -0
  78. package/src/lib/craft-control-flow.js.map +1 -0
  79. package/src/lib/craft-effect.d.ts +13 -0
  80. package/src/lib/craft-effect.d.ts.map +1 -0
  81. package/src/lib/craft-effect.js +93 -0
  82. package/src/lib/craft-effect.js.map +1 -0
  83. package/src/lib/craft-exception.d.ts +40 -0
  84. package/src/lib/craft-exception.d.ts.map +1 -0
  85. package/src/lib/craft-exception.js +16 -0
  86. package/src/lib/craft-exception.js.map +1 -0
  87. package/src/lib/craft-gen.d.ts +123 -0
  88. package/src/lib/craft-gen.d.ts.map +1 -0
  89. package/src/lib/craft-gen.js +90 -0
  90. package/src/lib/craft-gen.js.map +1 -0
  91. package/src/lib/craft-generator-runtime.d.ts +110 -0
  92. package/src/lib/craft-generator-runtime.d.ts.map +1 -0
  93. package/src/lib/craft-generator-runtime.js +191 -0
  94. package/src/lib/craft-generator-runtime.js.map +1 -0
  95. package/src/lib/craft-guard-runtime.d.ts +70 -0
  96. package/src/lib/craft-guard-runtime.d.ts.map +1 -0
  97. package/src/lib/craft-guard-runtime.js +195 -0
  98. package/src/lib/craft-guard-runtime.js.map +1 -0
  99. package/src/lib/craft-handshake.d.ts +35 -0
  100. package/src/lib/craft-handshake.d.ts.map +1 -0
  101. package/src/lib/craft-handshake.js +34 -0
  102. package/src/lib/craft-handshake.js.map +1 -0
  103. package/src/lib/craft-http-client.d.ts +236 -0
  104. package/src/lib/craft-http-client.d.ts.map +1 -0
  105. package/src/lib/craft-http-client.js +437 -0
  106. package/src/lib/craft-http-client.js.map +1 -0
  107. package/src/lib/craft-http-trace.d.ts +12 -0
  108. package/src/lib/craft-http-trace.d.ts.map +1 -0
  109. package/src/lib/craft-http-trace.js +28 -0
  110. package/src/lib/craft-http-trace.js.map +1 -0
  111. package/src/lib/craft-lazy.d.ts +42 -0
  112. package/src/lib/craft-lazy.d.ts.map +1 -0
  113. package/src/lib/craft-lazy.js +83 -0
  114. package/src/lib/craft-lazy.js.map +1 -0
  115. package/src/lib/craft-load-retry.d.ts +76 -0
  116. package/src/lib/craft-load-retry.d.ts.map +1 -0
  117. package/src/lib/craft-load-retry.js +160 -0
  118. package/src/lib/craft-load-retry.js.map +1 -0
  119. package/src/lib/craft-machine-history.d.ts +145 -0
  120. package/src/lib/craft-machine-history.d.ts.map +1 -0
  121. package/src/lib/craft-machine-history.js +276 -0
  122. package/src/lib/craft-machine-history.js.map +1 -0
  123. package/src/lib/craft-match.d.ts +49 -0
  124. package/src/lib/craft-match.d.ts.map +1 -0
  125. package/src/lib/craft-match.js +58 -0
  126. package/src/lib/craft-match.js.map +1 -0
  127. package/src/lib/craft-method.d.ts +28 -0
  128. package/src/lib/craft-method.d.ts.map +1 -0
  129. package/src/lib/craft-method.js +45 -0
  130. package/src/lib/craft-method.js.map +1 -0
  131. package/src/lib/craft-node-directive.d.ts +32 -0
  132. package/src/lib/craft-node-directive.d.ts.map +1 -0
  133. package/src/lib/craft-node-directive.js +22 -0
  134. package/src/lib/craft-node-directive.js.map +1 -0
  135. package/src/lib/craft-pending.d.ts +115 -0
  136. package/src/lib/craft-pending.d.ts.map +1 -0
  137. package/src/lib/craft-pending.js +187 -0
  138. package/src/lib/craft-pending.js.map +1 -0
  139. package/src/lib/craft-pipe.d.ts +63 -0
  140. package/src/lib/craft-pipe.d.ts.map +1 -0
  141. package/src/lib/craft-pipe.js +57 -0
  142. package/src/lib/craft-pipe.js.map +1 -0
  143. package/src/lib/craft-platform.d.ts +50 -0
  144. package/src/lib/craft-platform.d.ts.map +1 -0
  145. package/src/lib/craft-platform.js +175 -0
  146. package/src/lib/craft-platform.js.map +1 -0
  147. package/src/lib/craft-primitive-gen.d.ts +137 -0
  148. package/src/lib/craft-primitive-gen.d.ts.map +1 -0
  149. package/src/lib/craft-primitive-gen.js +76 -0
  150. package/src/lib/craft-primitive-gen.js.map +1 -0
  151. package/src/lib/craft-primitive-registry.d.ts +113 -0
  152. package/src/lib/craft-primitive-registry.d.ts.map +1 -0
  153. package/src/lib/craft-primitive-registry.js +159 -0
  154. package/src/lib/craft-primitive-registry.js.map +1 -0
  155. package/src/lib/craft-program-operators.d.ts +101 -0
  156. package/src/lib/craft-program-operators.d.ts.map +1 -0
  157. package/src/lib/craft-program-operators.js +116 -0
  158. package/src/lib/craft-program-operators.js.map +1 -0
  159. package/src/lib/craft-program-runtime.d.ts +80 -0
  160. package/src/lib/craft-program-runtime.d.ts.map +1 -0
  161. package/src/lib/craft-program-runtime.js +166 -0
  162. package/src/lib/craft-program-runtime.js.map +1 -0
  163. package/src/lib/craft-register-for-runtime.d.ts +39 -0
  164. package/src/lib/craft-register-for-runtime.d.ts.map +1 -0
  165. package/src/lib/craft-register-for-runtime.js +96 -0
  166. package/src/lib/craft-register-for-runtime.js.map +1 -0
  167. package/src/lib/craft-register-for.d.ts +57 -0
  168. package/src/lib/craft-register-for.d.ts.map +1 -0
  169. package/src/lib/craft-register-for.js +200 -0
  170. package/src/lib/craft-register-for.js.map +1 -0
  171. package/src/lib/craft-render-identity.d.ts +19 -0
  172. package/src/lib/craft-render-identity.d.ts.map +1 -0
  173. package/src/lib/craft-render-identity.js +23 -0
  174. package/src/lib/craft-render-identity.js.map +1 -0
  175. package/src/lib/craft-replay.d.ts +5 -0
  176. package/src/lib/craft-replay.d.ts.map +1 -0
  177. package/src/lib/craft-replay.js +28 -0
  178. package/src/lib/craft-replay.js.map +1 -0
  179. package/src/lib/craft-resolve.d.ts +39 -0
  180. package/src/lib/craft-resolve.d.ts.map +1 -0
  181. package/src/lib/craft-resolve.js +9 -0
  182. package/src/lib/craft-resolve.js.map +1 -0
  183. package/src/lib/craft-resource.d.ts +11 -0
  184. package/src/lib/craft-resource.d.ts.map +1 -0
  185. package/src/lib/craft-resource.js +264 -0
  186. package/src/lib/craft-resource.js.map +1 -0
  187. package/src/lib/craft-route-exceptions.d.ts +785 -0
  188. package/src/lib/craft-route-exceptions.d.ts.map +1 -0
  189. package/src/lib/craft-route-exceptions.js +86 -0
  190. package/src/lib/craft-route-exceptions.js.map +1 -0
  191. package/src/lib/craft-route-load-error.d.ts +1145 -0
  192. package/src/lib/craft-route-load-error.d.ts.map +1 -0
  193. package/src/lib/craft-route-load-error.js +173 -0
  194. package/src/lib/craft-route-load-error.js.map +1 -0
  195. package/src/lib/craft-route-meta.d.ts +52 -0
  196. package/src/lib/craft-route-meta.d.ts.map +1 -0
  197. package/src/lib/craft-route-meta.js +16 -0
  198. package/src/lib/craft-route-meta.js.map +1 -0
  199. package/src/lib/craft-route-target.d.ts +27 -0
  200. package/src/lib/craft-route-target.d.ts.map +1 -0
  201. package/src/lib/craft-route-target.js +22 -0
  202. package/src/lib/craft-route-target.js.map +1 -0
  203. package/src/lib/craft-router-outlet.d.ts +105 -0
  204. package/src/lib/craft-router-outlet.d.ts.map +1 -0
  205. package/src/lib/craft-router-outlet.js +735 -0
  206. package/src/lib/craft-router-outlet.js.map +1 -0
  207. package/src/lib/craft-router-tokens.d.ts +49 -0
  208. package/src/lib/craft-router-tokens.d.ts.map +1 -0
  209. package/src/lib/craft-router-tokens.js +15 -0
  210. package/src/lib/craft-router-tokens.js.map +1 -0
  211. package/src/lib/craft-router-trace.d.ts +18 -0
  212. package/src/lib/craft-router-trace.d.ts.map +1 -0
  213. package/src/lib/craft-router-trace.js +54 -0
  214. package/src/lib/craft-router-trace.js.map +1 -0
  215. package/src/lib/craft-router.d.ts +248 -0
  216. package/src/lib/craft-router.d.ts.map +1 -0
  217. package/src/lib/craft-router.js +559 -0
  218. package/src/lib/craft-router.js.map +1 -0
  219. package/src/lib/craft-routes.d.ts +755 -0
  220. package/src/lib/craft-routes.d.ts.map +1 -0
  221. package/src/lib/craft-routes.js +510 -0
  222. package/src/lib/craft-routes.js.map +1 -0
  223. package/src/lib/craft-service.d.ts +1034 -0
  224. package/src/lib/craft-service.d.ts.map +1 -0
  225. package/src/lib/craft-service.js +1072 -0
  226. package/src/lib/craft-service.js.map +1 -0
  227. package/src/lib/craft-service.shared.d.ts +35 -0
  228. package/src/lib/craft-service.shared.d.ts.map +1 -0
  229. package/src/lib/craft-service.shared.js +4 -0
  230. package/src/lib/craft-service.shared.js.map +1 -0
  231. package/src/lib/craft-settled.d.ts +171 -0
  232. package/src/lib/craft-settled.d.ts.map +1 -0
  233. package/src/lib/craft-settled.js +130 -0
  234. package/src/lib/craft-settled.js.map +1 -0
  235. package/src/lib/craft-ssr.d.ts +29 -0
  236. package/src/lib/craft-ssr.d.ts.map +1 -0
  237. package/src/lib/craft-ssr.js +27 -0
  238. package/src/lib/craft-ssr.js.map +1 -0
  239. package/src/lib/craft-state-machine-runtime.d.ts +88 -0
  240. package/src/lib/craft-state-machine-runtime.d.ts.map +1 -0
  241. package/src/lib/craft-state-machine-runtime.js +167 -0
  242. package/src/lib/craft-state-machine-runtime.js.map +1 -0
  243. package/src/lib/craft-state-machine.d.ts +233 -0
  244. package/src/lib/craft-state-machine.d.ts.map +1 -0
  245. package/src/lib/craft-state-machine.js +254 -0
  246. package/src/lib/craft-state-machine.js.map +1 -0
  247. package/src/lib/craft-target-runtime.d.ts +20 -0
  248. package/src/lib/craft-target-runtime.d.ts.map +1 -0
  249. package/src/lib/craft-target-runtime.js +42 -0
  250. package/src/lib/craft-target-runtime.js.map +1 -0
  251. package/src/lib/craft-transfer-snapshot.d.ts +19 -0
  252. package/src/lib/craft-transfer-snapshot.d.ts.map +1 -0
  253. package/src/lib/craft-transfer-snapshot.js +90 -0
  254. package/src/lib/craft-transfer-snapshot.js.map +1 -0
  255. package/src/lib/craft-unique.d.ts +7 -0
  256. package/src/lib/craft-unique.d.ts.map +1 -0
  257. package/src/lib/craft-unique.js +16 -0
  258. package/src/lib/craft-unique.js.map +1 -0
  259. package/src/lib/craft-until-settled.d.ts +99 -0
  260. package/src/lib/craft-until-settled.d.ts.map +1 -0
  261. package/src/lib/craft-until-settled.js +81 -0
  262. package/src/lib/craft-until-settled.js.map +1 -0
  263. package/src/lib/craft-use.d.ts +26 -0
  264. package/src/lib/craft-use.d.ts.map +1 -0
  265. package/src/lib/craft-use.js +37 -0
  266. package/src/lib/craft-use.js.map +1 -0
  267. package/src/lib/craft-view-transition.d.ts +102 -0
  268. package/src/lib/craft-view-transition.d.ts.map +1 -0
  269. package/src/lib/craft-view-transition.js +130 -0
  270. package/src/lib/craft-view-transition.js.map +1 -0
  271. package/src/lib/dom-event-hook.d.ts +30 -0
  272. package/src/lib/dom-event-hook.d.ts.map +1 -0
  273. package/src/lib/dom-event-hook.js +16 -0
  274. package/src/lib/dom-event-hook.js.map +1 -0
  275. package/src/lib/fn-wrapper.d.ts +13 -0
  276. package/src/lib/fn-wrapper.d.ts.map +1 -0
  277. package/src/lib/fn-wrapper.js +66 -0
  278. package/src/lib/fn-wrapper.js.map +1 -0
  279. package/src/lib/form/craft-field.d.ts +155 -0
  280. package/src/lib/form/craft-field.d.ts.map +1 -0
  281. package/src/lib/form/craft-field.directive.d.ts +70 -0
  282. package/src/lib/form/craft-field.directive.d.ts.map +1 -0
  283. package/src/lib/form/craft-field.directive.js +549 -0
  284. package/src/lib/form/craft-field.directive.js.map +1 -0
  285. package/src/lib/form/craft-field.js +586 -0
  286. package/src/lib/form/craft-field.js.map +1 -0
  287. package/src/lib/form/field-exception.d.ts +62 -0
  288. package/src/lib/form/field-exception.d.ts.map +1 -0
  289. package/src/lib/form/field-exception.js +37 -0
  290. package/src/lib/form/field-exception.js.map +1 -0
  291. package/src/lib/form/field-lens.d.ts +29 -0
  292. package/src/lib/form/field-lens.d.ts.map +1 -0
  293. package/src/lib/form/field-lens.js +32 -0
  294. package/src/lib/form/field-lens.js.map +1 -0
  295. package/src/lib/form/insert-form-attributes.d.ts +69 -0
  296. package/src/lib/form/insert-form-attributes.d.ts.map +1 -0
  297. package/src/lib/form/insert-form-attributes.js +163 -0
  298. package/src/lib/form/insert-form-attributes.js.map +1 -0
  299. package/src/lib/form/insert-form-internals.d.ts +110 -0
  300. package/src/lib/form/insert-form-internals.d.ts.map +1 -0
  301. package/src/lib/form/insert-form-internals.js +276 -0
  302. package/src/lib/form/insert-form-internals.js.map +1 -0
  303. package/src/lib/form/insert-form-schema.d.ts +10 -0
  304. package/src/lib/form/insert-form-schema.d.ts.map +1 -0
  305. package/src/lib/form/insert-form-schema.js +62 -0
  306. package/src/lib/form/insert-form-schema.js.map +1 -0
  307. package/src/lib/form/insert-form-submit.d.ts +79 -0
  308. package/src/lib/form/insert-form-submit.d.ts.map +1 -0
  309. package/src/lib/form/insert-form-submit.js +126 -0
  310. package/src/lib/form/insert-form-submit.js.map +1 -0
  311. package/src/lib/form/insert-form.d.ts +39 -0
  312. package/src/lib/form/insert-form.d.ts.map +1 -0
  313. package/src/lib/form/insert-form.js +255 -0
  314. package/src/lib/form/insert-form.js.map +1 -0
  315. package/src/lib/form/insert-select-form-tree.d.ts +33 -0
  316. package/src/lib/form/insert-select-form-tree.d.ts.map +1 -0
  317. package/src/lib/form/insert-select-form-tree.js +144 -0
  318. package/src/lib/form/insert-select-form-tree.js.map +1 -0
  319. package/src/lib/form/insert-sub-form-field.d.ts +17 -0
  320. package/src/lib/form/insert-sub-form-field.d.ts.map +1 -0
  321. package/src/lib/form/insert-sub-form-field.js +41 -0
  322. package/src/lib/form/insert-sub-form-field.js.map +1 -0
  323. package/src/lib/form/make-form-tree-insert.d.ts +22 -0
  324. package/src/lib/form/make-form-tree-insert.d.ts.map +1 -0
  325. package/src/lib/form/make-form-tree-insert.js +43 -0
  326. package/src/lib/form/make-form-tree-insert.js.map +1 -0
  327. package/src/lib/form/target-form-field.d.ts +11 -0
  328. package/src/lib/form/target-form-field.d.ts.map +1 -0
  329. package/src/lib/form/target-form-field.js +1 -0
  330. package/src/lib/form/target-form-field.js.map +1 -0
  331. package/src/lib/form/validator.d.ts +174 -0
  332. package/src/lib/form/validator.d.ts.map +1 -0
  333. package/src/lib/form/validator.js +465 -0
  334. package/src/lib/form/validator.js.map +1 -0
  335. package/src/lib/from-event-to-source$.d.ts +210 -0
  336. package/src/lib/from-event-to-source$.d.ts.map +1 -0
  337. package/src/lib/from-event-to-source$.js +29 -0
  338. package/src/lib/from-event-to-source$.js.map +1 -0
  339. package/src/lib/global-persister-handler.service.d.ts +10 -0
  340. package/src/lib/global-persister-handler.service.d.ts.map +1 -0
  341. package/src/lib/global-persister-handler.service.js +40 -0
  342. package/src/lib/global-persister-handler.service.js.map +1 -0
  343. package/src/lib/host/craft-compat.d.ts +242 -0
  344. package/src/lib/host/craft-compat.d.ts.map +1 -0
  345. package/src/lib/host/craft-compat.js +444 -0
  346. package/src/lib/host/craft-compat.js.map +1 -0
  347. package/src/lib/host/craft-dom.d.ts +16 -0
  348. package/src/lib/host/craft-dom.d.ts.map +1 -0
  349. package/src/lib/host/craft-dom.js +24 -0
  350. package/src/lib/host/craft-dom.js.map +1 -0
  351. package/src/lib/host/craft-http.d.ts +22 -0
  352. package/src/lib/host/craft-http.d.ts.map +1 -0
  353. package/src/lib/host/craft-http.js +80 -0
  354. package/src/lib/host/craft-http.js.map +1 -0
  355. package/src/lib/host/craft-injector-host.d.ts +3 -0
  356. package/src/lib/host/craft-injector-host.d.ts.map +1 -0
  357. package/src/lib/host/craft-injector-host.js +2 -0
  358. package/src/lib/host/craft-injector-host.js.map +1 -0
  359. package/src/lib/host/craft-injector.d.ts +40 -0
  360. package/src/lib/host/craft-injector.d.ts.map +1 -0
  361. package/src/lib/host/craft-injector.js +318 -0
  362. package/src/lib/host/craft-injector.js.map +1 -0
  363. package/src/lib/host/craft-linked-signal.d.ts +17 -0
  364. package/src/lib/host/craft-linked-signal.d.ts.map +1 -0
  365. package/src/lib/host/craft-linked-signal.js +86 -0
  366. package/src/lib/host/craft-linked-signal.js.map +1 -0
  367. package/src/lib/host/craft-router-runtime.d.ts +61 -0
  368. package/src/lib/host/craft-router-runtime.d.ts.map +1 -0
  369. package/src/lib/host/craft-router-runtime.js +456 -0
  370. package/src/lib/host/craft-router-runtime.js.map +1 -0
  371. package/src/lib/host/craft-router-types.d.ts +84 -0
  372. package/src/lib/host/craft-router-types.d.ts.map +1 -0
  373. package/src/lib/host/craft-router-types.js +35 -0
  374. package/src/lib/host/craft-router-types.js.map +1 -0
  375. package/src/lib/host/craft-signal.d.ts +45 -0
  376. package/src/lib/host/craft-signal.d.ts.map +1 -0
  377. package/src/lib/host/craft-signal.js +161 -0
  378. package/src/lib/host/craft-signal.js.map +1 -0
  379. package/src/lib/host/craft-test-bed.d.ts +63 -0
  380. package/src/lib/host/craft-test-bed.d.ts.map +1 -0
  381. package/src/lib/host/craft-test-bed.js +114 -0
  382. package/src/lib/host/craft-test-bed.js.map +1 -0
  383. package/src/lib/host-tag.d.ts +2 -0
  384. package/src/lib/host-tag.d.ts.map +1 -0
  385. package/src/lib/host-tag.js +2 -0
  386. package/src/lib/host-tag.js.map +1 -0
  387. package/src/lib/insert-entities.d.ts +131 -0
  388. package/src/lib/insert-entities.d.ts.map +1 -0
  389. package/src/lib/insert-entities.js +159 -0
  390. package/src/lib/insert-entities.js.map +1 -0
  391. package/src/lib/insert-noop-typing-anchor.d.ts +15 -0
  392. package/src/lib/insert-noop-typing-anchor.d.ts.map +1 -0
  393. package/src/lib/insert-noop-typing-anchor.js +16 -0
  394. package/src/lib/insert-noop-typing-anchor.js.map +1 -0
  395. package/src/lib/insert-pagination-placeholder-data.d.ts +122 -0
  396. package/src/lib/insert-pagination-placeholder-data.d.ts.map +1 -0
  397. package/src/lib/insert-pagination-placeholder-data.js +244 -0
  398. package/src/lib/insert-pagination-placeholder-data.js.map +1 -0
  399. package/src/lib/insert-react-on-mutation.d.ts +261 -0
  400. package/src/lib/insert-react-on-mutation.d.ts.map +1 -0
  401. package/src/lib/insert-react-on-mutation.js +227 -0
  402. package/src/lib/insert-react-on-mutation.js.map +1 -0
  403. package/src/lib/insert-select-resource.d.ts +31 -0
  404. package/src/lib/insert-select-resource.d.ts.map +1 -0
  405. package/src/lib/insert-select-resource.js +27 -0
  406. package/src/lib/insert-select-resource.js.map +1 -0
  407. package/src/lib/insert-select.d.ts +126 -0
  408. package/src/lib/insert-select.d.ts.map +1 -0
  409. package/src/lib/insert-select.js +535 -0
  410. package/src/lib/insert-select.js.map +1 -0
  411. package/src/lib/insert-storage-persister.d.ts +27 -0
  412. package/src/lib/insert-storage-persister.d.ts.map +1 -0
  413. package/src/lib/insert-storage-persister.js +65 -0
  414. package/src/lib/insert-storage-persister.js.map +1 -0
  415. package/src/lib/insert-typed-pipes.d.ts +64 -0
  416. package/src/lib/insert-typed-pipes.d.ts.map +1 -0
  417. package/src/lib/insert-typed-pipes.js +32 -0
  418. package/src/lib/insert-typed-pipes.js.map +1 -0
  419. package/src/lib/linked-source.d.ts +8 -0
  420. package/src/lib/linked-source.d.ts.map +1 -0
  421. package/src/lib/linked-source.js +24 -0
  422. package/src/lib/linked-source.js.map +1 -0
  423. package/src/lib/local-storage-persister.d.ts +4 -0
  424. package/src/lib/local-storage-persister.d.ts.map +1 -0
  425. package/src/lib/local-storage-persister.js +342 -0
  426. package/src/lib/local-storage-persister.js.map +1 -0
  427. package/src/lib/middleware-schema-shared.d.ts +67 -0
  428. package/src/lib/middleware-schema-shared.d.ts.map +1 -0
  429. package/src/lib/middleware-schema-shared.js +34 -0
  430. package/src/lib/middleware-schema-shared.js.map +1 -0
  431. package/src/lib/mock-http-request-for-route.d.ts +173 -0
  432. package/src/lib/mock-http-request-for-route.d.ts.map +1 -0
  433. package/src/lib/mock-http-request-for-route.js +127 -0
  434. package/src/lib/mock-http-request-for-route.js.map +1 -0
  435. package/src/lib/mutation.d.ts +332 -0
  436. package/src/lib/mutation.d.ts.map +1 -0
  437. package/src/lib/mutation.js +923 -0
  438. package/src/lib/mutation.js.map +1 -0
  439. package/src/lib/on$.d.ts +26 -0
  440. package/src/lib/on$.d.ts.map +1 -0
  441. package/src/lib/on$.js +19 -0
  442. package/src/lib/on$.js.map +1 -0
  443. package/src/lib/portable-server-function.d.ts +68 -0
  444. package/src/lib/portable-server-function.d.ts.map +1 -0
  445. package/src/lib/portable-server-function.js +97 -0
  446. package/src/lib/portable-server-function.js.map +1 -0
  447. package/src/lib/preserved-resource.d.ts +4 -0
  448. package/src/lib/preserved-resource.d.ts.map +1 -0
  449. package/src/lib/preserved-resource.js +60 -0
  450. package/src/lib/preserved-resource.js.map +1 -0
  451. package/src/lib/primitive-method-runtime-context.d.ts +28 -0
  452. package/src/lib/primitive-method-runtime-context.d.ts.map +1 -0
  453. package/src/lib/primitive-method-runtime-context.js +38 -0
  454. package/src/lib/primitive-method-runtime-context.js.map +1 -0
  455. package/src/lib/primitive-resource-runtime-context.d.ts +46 -0
  456. package/src/lib/primitive-resource-runtime-context.d.ts.map +1 -0
  457. package/src/lib/primitive-resource-runtime-context.js +102 -0
  458. package/src/lib/primitive-resource-runtime-context.js.map +1 -0
  459. package/src/lib/query-params.d.ts +216 -0
  460. package/src/lib/query-params.d.ts.map +1 -0
  461. package/src/lib/query-params.js +324 -0
  462. package/src/lib/query-params.js.map +1 -0
  463. package/src/lib/query.core.d.ts +214 -0
  464. package/src/lib/query.core.d.ts.map +1 -0
  465. package/src/lib/query.core.js +210 -0
  466. package/src/lib/query.core.js.map +1 -0
  467. package/src/lib/query.d.ts +324 -0
  468. package/src/lib/query.d.ts.map +1 -0
  469. package/src/lib/query.js +971 -0
  470. package/src/lib/query.js.map +1 -0
  471. package/src/lib/reactive-read.d.ts +162 -0
  472. package/src/lib/reactive-read.d.ts.map +1 -0
  473. package/src/lib/reactive-read.js +389 -0
  474. package/src/lib/reactive-read.js.map +1 -0
  475. package/src/lib/resource-by-id.d.ts +71 -0
  476. package/src/lib/resource-by-id.d.ts.map +1 -0
  477. package/src/lib/resource-by-id.js +294 -0
  478. package/src/lib/resource-by-id.js.map +1 -0
  479. package/src/lib/resource-exception.d.ts +30 -0
  480. package/src/lib/resource-exception.d.ts.map +1 -0
  481. package/src/lib/resource-exception.js +86 -0
  482. package/src/lib/resource-exception.js.map +1 -0
  483. package/src/lib/route-checked-di.d.ts +229 -0
  484. package/src/lib/route-checked-di.d.ts.map +1 -0
  485. package/src/lib/route-checked-di.js +1 -0
  486. package/src/lib/route-checked-di.js.map +1 -0
  487. package/src/lib/schema-validation.d.ts +89 -0
  488. package/src/lib/schema-validation.d.ts.map +1 -0
  489. package/src/lib/schema-validation.js +110 -0
  490. package/src/lib/schema-validation.js.map +1 -0
  491. package/src/lib/send-context-to-ai.d.ts +20 -0
  492. package/src/lib/send-context-to-ai.d.ts.map +1 -0
  493. package/src/lib/send-context-to-ai.js +18 -0
  494. package/src/lib/send-context-to-ai.js.map +1 -0
  495. package/src/lib/send-context-to-ai.tokens.d.ts +12 -0
  496. package/src/lib/send-context-to-ai.tokens.d.ts.map +1 -0
  497. package/src/lib/send-context-to-ai.tokens.js +1 -0
  498. package/src/lib/send-context-to-ai.tokens.js.map +1 -0
  499. package/src/lib/server-function-client.d.ts +102 -0
  500. package/src/lib/server-function-client.d.ts.map +1 -0
  501. package/src/lib/server-function-client.js +106 -0
  502. package/src/lib/server-function-client.js.map +1 -0
  503. package/src/lib/server-function-contract.d.ts +42 -0
  504. package/src/lib/server-function-contract.d.ts.map +1 -0
  505. package/src/lib/server-function-contract.js +23 -0
  506. package/src/lib/server-function-contract.js.map +1 -0
  507. package/src/lib/server-function-middleware.d.ts +222 -0
  508. package/src/lib/server-function-middleware.d.ts.map +1 -0
  509. package/src/lib/server-function-middleware.js +189 -0
  510. package/src/lib/server-function-middleware.js.map +1 -0
  511. package/src/lib/server-function.d.ts +114 -0
  512. package/src/lib/server-function.d.ts.map +1 -0
  513. package/src/lib/server-function.js +80 -0
  514. package/src/lib/server-function.js.map +1 -0
  515. package/src/lib/server-layer.d.ts +185 -0
  516. package/src/lib/server-layer.d.ts.map +1 -0
  517. package/src/lib/server-layer.js +121 -0
  518. package/src/lib/server-layer.js.map +1 -0
  519. package/src/lib/server.d.ts +83 -0
  520. package/src/lib/server.d.ts.map +1 -0
  521. package/src/lib/server.js +266 -0
  522. package/src/lib/server.js.map +1 -0
  523. package/src/lib/setup-craft-service-test.d.ts +90 -0
  524. package/src/lib/setup-craft-service-test.d.ts.map +1 -0
  525. package/src/lib/setup-craft-service-test.js +193 -0
  526. package/src/lib/setup-craft-service-test.js.map +1 -0
  527. package/src/lib/setup-craft-service-testing-by-register.d.ts +245 -0
  528. package/src/lib/setup-craft-service-testing-by-register.d.ts.map +1 -0
  529. package/src/lib/setup-craft-service-testing-by-register.js +316 -0
  530. package/src/lib/setup-craft-service-testing-by-register.js.map +1 -0
  531. package/src/lib/signal-proxy.d.ts +21 -0
  532. package/src/lib/signal-proxy.d.ts.map +1 -0
  533. package/src/lib/signal-proxy.js +79 -0
  534. package/src/lib/signal-proxy.js.map +1 -0
  535. package/src/lib/signal-source.d.ts +392 -0
  536. package/src/lib/signal-source.d.ts.map +1 -0
  537. package/src/lib/signal-source.js +433 -0
  538. package/src/lib/signal-source.js.map +1 -0
  539. package/src/lib/source$.d.ts +121 -0
  540. package/src/lib/source$.d.ts.map +1 -0
  541. package/src/lib/source$.js +171 -0
  542. package/src/lib/source$.js.map +1 -0
  543. package/src/lib/source-from-event.d.ts +350 -0
  544. package/src/lib/source-from-event.d.ts.map +1 -0
  545. package/src/lib/source-from-event.js +26 -0
  546. package/src/lib/source-from-event.js.map +1 -0
  547. package/src/lib/stacked-source.d.ts +6 -0
  548. package/src/lib/stacked-source.d.ts.map +1 -0
  549. package/src/lib/stacked-source.js +29 -0
  550. package/src/lib/stacked-source.js.map +1 -0
  551. package/src/lib/standard-schema.d.ts +43 -0
  552. package/src/lib/standard-schema.d.ts.map +1 -0
  553. package/src/lib/standard-schema.js +1 -0
  554. package/src/lib/standard-schema.js.map +1 -0
  555. package/src/lib/state-method-runtime-context.d.ts +13 -0
  556. package/src/lib/state-method-runtime-context.d.ts.map +1 -0
  557. package/src/lib/state-method-runtime-context.js +11 -0
  558. package/src/lib/state-method-runtime-context.js.map +1 -0
  559. package/src/lib/state.d.ts +158 -0
  560. package/src/lib/state.d.ts.map +1 -0
  561. package/src/lib/state.js +388 -0
  562. package/src/lib/state.js.map +1 -0
  563. package/src/lib/storage-persister.service.d.ts +25 -0
  564. package/src/lib/storage-persister.service.d.ts.map +1 -0
  565. package/src/lib/storage-persister.service.js +27 -0
  566. package/src/lib/storage-persister.service.js.map +1 -0
  567. package/src/lib/take-app-snapshot.d.ts +31 -0
  568. package/src/lib/take-app-snapshot.d.ts.map +1 -0
  569. package/src/lib/take-app-snapshot.js +93 -0
  570. package/src/lib/take-app-snapshot.js.map +1 -0
  571. package/src/lib/template-trace.d.ts +37 -0
  572. package/src/lib/template-trace.d.ts.map +1 -0
  573. package/src/lib/template-trace.js +37 -0
  574. package/src/lib/template-trace.js.map +1 -0
  575. package/src/lib/temporal-runtime.d.ts +146 -0
  576. package/src/lib/temporal-runtime.d.ts.map +1 -0
  577. package/src/lib/temporal-runtime.js +375 -0
  578. package/src/lib/temporal-runtime.js.map +1 -0
  579. package/src/lib/to-source.d.ts +335 -0
  580. package/src/lib/to-source.d.ts.map +1 -0
  581. package/src/lib/to-source.js +359 -0
  582. package/src/lib/to-source.js.map +1 -0
  583. package/src/lib/util/craft-resource-ref.d.ts +29 -0
  584. package/src/lib/util/craft-resource-ref.d.ts.map +1 -0
  585. package/src/lib/util/craft-resource-ref.js +1 -0
  586. package/src/lib/util/craft-resource-ref.js.map +1 -0
  587. package/src/lib/util/craft-resource-status.d.ts +17 -0
  588. package/src/lib/util/craft-resource-status.d.ts.map +1 -0
  589. package/src/lib/util/craft-resource-status.js +14 -0
  590. package/src/lib/util/craft-resource-status.js.map +1 -0
  591. package/src/lib/util/entities-util.d.ts +340 -0
  592. package/src/lib/util/entities-util.d.ts.map +1 -0
  593. package/src/lib/util/entities-util.js +136 -0
  594. package/src/lib/util/entities-util.js.map +1 -0
  595. package/src/lib/util/explicit-effect.d.ts +42 -0
  596. package/src/lib/util/explicit-effect.d.ts.map +1 -0
  597. package/src/lib/util/explicit-effect.js +37 -0
  598. package/src/lib/util/explicit-effect.js.map +1 -0
  599. package/src/lib/util/extract-signal-props-and-methods.d.ts +20 -0
  600. package/src/lib/util/extract-signal-props-and-methods.d.ts.map +1 -0
  601. package/src/lib/util/extract-signal-props-and-methods.js +1 -0
  602. package/src/lib/util/extract-signal-props-and-methods.js.map +1 -0
  603. package/src/lib/util/method-trigger-nonce.d.ts +45 -0
  604. package/src/lib/util/method-trigger-nonce.d.ts.map +1 -0
  605. package/src/lib/util/method-trigger-nonce.js +58 -0
  606. package/src/lib/util/method-trigger-nonce.js.map +1 -0
  607. package/src/lib/util/persister.type.d.ts +37 -0
  608. package/src/lib/util/persister.type.d.ts.map +1 -0
  609. package/src/lib/util/persister.type.js +1 -0
  610. package/src/lib/util/persister.type.js.map +1 -0
  611. package/src/lib/util/persister.util.d.ts +8 -0
  612. package/src/lib/util/persister.util.d.ts.map +1 -0
  613. package/src/lib/util/persister.util.js +71 -0
  614. package/src/lib/util/persister.util.js.map +1 -0
  615. package/src/lib/util/react-on-mutation-effect.d.ts +16 -0
  616. package/src/lib/util/react-on-mutation-effect.d.ts.map +1 -0
  617. package/src/lib/util/react-on-mutation-effect.js +148 -0
  618. package/src/lib/util/react-on-mutation-effect.js.map +1 -0
  619. package/src/lib/util/resource-by-id-changes-tracker.util.d.ts +27 -0
  620. package/src/lib/util/resource-by-id-changes-tracker.util.d.ts.map +1 -0
  621. package/src/lib/util/resource-by-id-changes-tracker.util.js +97 -0
  622. package/src/lib/util/resource-by-id-changes-tracker.util.js.map +1 -0
  623. package/src/lib/util/source.type.d.ts +6 -0
  624. package/src/lib/util/source.type.d.ts.map +1 -0
  625. package/src/lib/util/source.type.js +1 -0
  626. package/src/lib/util/source.type.js.map +1 -0
  627. package/src/lib/util/types/access-type-object-property-by-dotted-path.type.d.ts +4 -0
  628. package/src/lib/util/types/access-type-object-property-by-dotted-path.type.d.ts.map +1 -0
  629. package/src/lib/util/types/access-type-object-property-by-dotted-path.type.js +1 -0
  630. package/src/lib/util/types/access-type-object-property-by-dotted-path.type.js.map +1 -0
  631. package/src/lib/util/types/boolean-or-mapper-fn-by-path-by-id.type.d.ts +27 -0
  632. package/src/lib/util/types/boolean-or-mapper-fn-by-path-by-id.type.d.ts.map +1 -0
  633. package/src/lib/util/types/boolean-or-mapper-fn-by-path-by-id.type.js +1 -0
  634. package/src/lib/util/types/boolean-or-mapper-fn-by-path-by-id.type.js.map +1 -0
  635. package/src/lib/util/types/boolean-or-mapper-fn-by-path.type.d.ts +24 -0
  636. package/src/lib/util/types/boolean-or-mapper-fn-by-path.type.d.ts.map +1 -0
  637. package/src/lib/util/types/boolean-or-mapper-fn-by-path.type.js +1 -0
  638. package/src/lib/util/types/boolean-or-mapper-fn-by-path.type.js.map +1 -0
  639. package/src/lib/util/types/brand.d.ts +7 -0
  640. package/src/lib/util/types/brand.d.ts.map +1 -0
  641. package/src/lib/util/types/brand.js +9 -0
  642. package/src/lib/util/types/brand.js.map +1 -0
  643. package/src/lib/util/types/object-deep-path-mapper.type.d.ts +13 -0
  644. package/src/lib/util/types/object-deep-path-mapper.type.d.ts.map +1 -0
  645. package/src/lib/util/types/object-deep-path-mapper.type.js +1 -0
  646. package/src/lib/util/types/object-deep-path-mapper.type.js.map +1 -0
  647. package/src/lib/util/types/resource-by-id-config.type.d.ts +115 -0
  648. package/src/lib/util/types/resource-by-id-config.type.d.ts.map +1 -0
  649. package/src/lib/util/types/resource-by-id-config.type.js +1 -0
  650. package/src/lib/util/types/resource-by-id-config.type.js.map +1 -0
  651. package/src/lib/util/types/resource-with-params-or-params-fn.type.d.ts +52 -0
  652. package/src/lib/util/types/resource-with-params-or-params-fn.type.d.ts.map +1 -0
  653. package/src/lib/util/types/resource-with-params-or-params-fn.type.js +1 -0
  654. package/src/lib/util/types/resource-with-params-or-params-fn.type.js.map +1 -0
  655. package/src/lib/util/types/shared.type.d.ts +66 -0
  656. package/src/lib/util/types/shared.type.d.ts.map +1 -0
  657. package/src/lib/util/types/shared.type.js +1 -0
  658. package/src/lib/util/types/shared.type.js.map +1 -0
  659. package/src/lib/util/types/util.d.ts +16 -0
  660. package/src/lib/util/types/util.d.ts.map +1 -0
  661. package/src/lib/util/types/util.js +60 -0
  662. package/src/lib/util/types/util.js.map +1 -0
  663. package/src/lib/util/types/util.type.d.ts +67 -0
  664. package/src/lib/util/types/util.type.d.ts.map +1 -0
  665. package/src/lib/util/types/util.type.js +5 -0
  666. package/src/lib/util/types/util.type.js.map +1 -0
  667. package/src/lib/util/update-state.util.d.ts +10 -0
  668. package/src/lib/util/update-state.util.d.ts.map +1 -0
  669. package/src/lib/util/update-state.util.js +31 -0
  670. package/src/lib/util/update-state.util.js.map +1 -0
  671. package/src/lib/util/util.d.ts +19 -0
  672. package/src/lib/util/util.d.ts.map +1 -0
  673. package/src/lib/util/util.js +50 -0
  674. package/src/lib/util/util.js.map +1 -0
  675. package/src/lib/util/util.type.d.ts +107 -0
  676. package/src/lib/util/util.type.d.ts.map +1 -0
  677. package/src/lib/util/util.type.js +9 -0
  678. package/src/lib/util/util.type.js.map +1 -0
  679. package/src/lib/yieldable.d.ts +94 -0
  680. package/src/lib/yieldable.d.ts.map +1 -0
  681. package/src/lib/yieldable.js +109 -0
  682. package/src/lib/yieldable.js.map +1 -0
@@ -0,0 +1,43 @@
1
+ /**
2
+ * Minimal local copy of the Standard Schema V1 types used by Craft.
3
+ *
4
+ * Source: https://github.com/standard-schema/standard-schema/blob/main/packages/spec/src/index.ts
5
+ * The upstream project is distributed under the MIT license.
6
+ *
7
+ * Nested types used to live in `export namespace StandardSchemaV1`; that form
8
+ * is replaced by sibling interfaces so the package stays `erasableSyntaxOnly`.
9
+ */
10
+ export interface StandardSchemaV1<Input = unknown, Output = Input> {
11
+ readonly '~standard': StandardSchemaV1Props<Input, Output>;
12
+ }
13
+ export interface StandardSchemaV1Props<Input = unknown, Output = Input> {
14
+ readonly version: 1;
15
+ readonly vendor: string;
16
+ readonly types?: StandardSchemaV1Types<Input, Output>;
17
+ readonly validate: (value: unknown, options?: StandardSchemaV1Options) => StandardSchemaV1Result<Output> | Promise<StandardSchemaV1Result<Output>>;
18
+ }
19
+ export interface StandardSchemaV1Types<Input = unknown, Output = Input> {
20
+ readonly input: Input;
21
+ readonly output: Output;
22
+ }
23
+ export interface StandardSchemaV1Options {
24
+ readonly libraryOptions?: Record<string, unknown>;
25
+ }
26
+ export type StandardSchemaV1Result<Output> = StandardSchemaV1SuccessResult<Output> | StandardSchemaV1FailureResult;
27
+ export interface StandardSchemaV1SuccessResult<Output> {
28
+ readonly value: Output;
29
+ readonly issues?: undefined;
30
+ }
31
+ export interface StandardSchemaV1FailureResult {
32
+ readonly issues: ReadonlyArray<StandardSchemaV1Issue>;
33
+ }
34
+ export interface StandardSchemaV1Issue {
35
+ readonly message: string;
36
+ readonly path?: ReadonlyArray<PropertyKey | StandardSchemaV1PathSegment>;
37
+ }
38
+ export interface StandardSchemaV1PathSegment {
39
+ readonly key: PropertyKey;
40
+ }
41
+ export type StandardSchemaV1InferInput<Schema extends StandardSchemaV1> = NonNullable<Schema['~standard']['types']>['input'];
42
+ export type StandardSchemaV1InferOutput<Schema extends StandardSchemaV1> = NonNullable<Schema['~standard']['types']>['output'];
43
+ //# sourceMappingURL=standard-schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"standard-schema.d.ts","sourceRoot":"","sources":["../../../../../libs/core/src/lib/standard-schema.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,MAAM,WAAW,gBAAgB,CAAC,KAAK,GAAG,OAAO,EAAE,MAAM,GAAG,KAAK;IAC/D,QAAQ,CAAC,WAAW,EAAE,qBAAqB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;CAC5D;AAED,MAAM,WAAW,qBAAqB,CAAC,KAAK,GAAG,OAAO,EAAE,MAAM,GAAG,KAAK;IACpE,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC;IACpB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,KAAK,CAAC,EAAE,qBAAqB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IACtD,QAAQ,CAAC,QAAQ,EAAE,CACjB,KAAK,EAAE,OAAO,EACd,OAAO,CAAC,EAAE,uBAAuB,KAC9B,sBAAsB,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,sBAAsB,CAAC,MAAM,CAAC,CAAC,CAAC;CAC/E;AAED,MAAM,WAAW,qBAAqB,CAAC,KAAK,GAAG,OAAO,EAAE,MAAM,GAAG,KAAK;IACpE,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACnD;AAED,MAAM,MAAM,sBAAsB,CAAC,MAAM,IACrC,6BAA6B,CAAC,MAAM,CAAC,GACrC,6BAA6B,CAAC;AAElC,MAAM,WAAW,6BAA6B,CAAC,MAAM;IACnD,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,CAAC;CAC7B;AAED,MAAM,WAAW,6BAA6B;IAC5C,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC,qBAAqB,CAAC,CAAC;CACvD;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,IAAI,CAAC,EAAE,aAAa,CAAC,WAAW,GAAG,2BAA2B,CAAC,CAAC;CAC1E;AAED,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,GAAG,EAAE,WAAW,CAAC;CAC3B;AAED,MAAM,MAAM,0BAA0B,CAAC,MAAM,SAAS,gBAAgB,IACpE,WAAW,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;AAErD,MAAM,MAAM,2BAA2B,CAAC,MAAM,SAAS,gBAAgB,IACrE,WAAW,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC"}
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=standard-schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"standard-schema.js","sourceRoot":"","sources":["../../../../../libs/core/src/lib/standard-schema.ts"],"names":[],"mappings":"","sourcesContent":["/**\n * Minimal local copy of the Standard Schema V1 types used by Craft.\n *\n * Source: https://github.com/standard-schema/standard-schema/blob/main/packages/spec/src/index.ts\n * The upstream project is distributed under the MIT license.\n *\n * Nested types used to live in `export namespace StandardSchemaV1`; that form\n * is replaced by sibling interfaces so the package stays `erasableSyntaxOnly`.\n */\nexport interface StandardSchemaV1<Input = unknown, Output = Input> {\n readonly '~standard': StandardSchemaV1Props<Input, Output>;\n}\n\nexport interface StandardSchemaV1Props<Input = unknown, Output = Input> {\n readonly version: 1;\n readonly vendor: string;\n readonly types?: StandardSchemaV1Types<Input, Output>;\n readonly validate: (\n value: unknown,\n options?: StandardSchemaV1Options,\n ) => StandardSchemaV1Result<Output> | Promise<StandardSchemaV1Result<Output>>;\n}\n\nexport interface StandardSchemaV1Types<Input = unknown, Output = Input> {\n readonly input: Input;\n readonly output: Output;\n}\n\nexport interface StandardSchemaV1Options {\n readonly libraryOptions?: Record<string, unknown>;\n}\n\nexport type StandardSchemaV1Result<Output> =\n | StandardSchemaV1SuccessResult<Output>\n | StandardSchemaV1FailureResult;\n\nexport interface StandardSchemaV1SuccessResult<Output> {\n readonly value: Output;\n readonly issues?: undefined;\n}\n\nexport interface StandardSchemaV1FailureResult {\n readonly issues: ReadonlyArray<StandardSchemaV1Issue>;\n}\n\nexport interface StandardSchemaV1Issue {\n readonly message: string;\n readonly path?: ReadonlyArray<PropertyKey | StandardSchemaV1PathSegment>;\n}\n\nexport interface StandardSchemaV1PathSegment {\n readonly key: PropertyKey;\n}\n\nexport type StandardSchemaV1InferInput<Schema extends StandardSchemaV1> =\n NonNullable<Schema['~standard']['types']>['input'];\n\nexport type StandardSchemaV1InferOutput<Schema extends StandardSchemaV1> =\n NonNullable<Schema['~standard']['types']>['output'];\n"]}
@@ -0,0 +1,13 @@
1
+ import type { Provider, Signal } from './host/craft-compat';
2
+ import { type PrimitiveMethodRuntimeContext } from './primitive-method-runtime-context';
3
+ export type StateMethodRuntimeContext = PrimitiveMethodRuntimeContext<'state'>;
4
+ type StateInsertionContext = Readonly<{
5
+ state: Signal<unknown>;
6
+ set(value: unknown): unknown;
7
+ update(updater: (current: unknown) => unknown): unknown;
8
+ patch(updater: (current: unknown) => object): unknown;
9
+ }>;
10
+ export declare function injectStateMethodRuntimeContext(): StateMethodRuntimeContext | undefined;
11
+ export declare function ɵprovideStateMethodRuntimeContext(context: StateInsertionContext, originalFactory: (...args: never[]) => unknown): Provider;
12
+ export {};
13
+ //# sourceMappingURL=state-method-runtime-context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"state-method-runtime-context.d.ts","sourceRoot":"","sources":["../../../../../libs/core/src/lib/state-method-runtime-context.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAGL,KAAK,6BAA6B,EACnC,MAAM,oCAAoC,CAAC;AAE5C,MAAM,MAAM,yBAAyB,GAAG,6BAA6B,CAAC,OAAO,CAAC,CAAC;AAE/E,KAAK,qBAAqB,GAAG,QAAQ,CAAC;IACpC,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;IACvB,GAAG,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC;IAC7B,MAAM,CAAC,OAAO,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,OAAO,GAAG,OAAO,CAAC;IACxD,KAAK,CAAC,OAAO,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,MAAM,GAAG,OAAO,CAAC;CACvD,CAAC,CAAC;AAEH,wBAAgB,+BAA+B,IAC3C,yBAAyB,GACzB,SAAS,CAKZ;AAED,wBAAgB,iCAAiC,CAC/C,OAAO,EAAE,qBAAqB,EAC9B,eAAe,EAAE,CAAC,GAAG,IAAI,EAAE,KAAK,EAAE,KAAK,OAAO,GAC7C,QAAQ,CAMV"}
@@ -0,0 +1,11 @@
1
+ import { injectPrimitiveMethodRuntimeContext, ɵprovidePrimitiveMethodRuntimeContext, } from './primitive-method-runtime-context';
2
+ export function injectStateMethodRuntimeContext() {
3
+ const context = injectPrimitiveMethodRuntimeContext();
4
+ return context?.kind === 'state'
5
+ ? context
6
+ : undefined;
7
+ }
8
+ export function ɵprovideStateMethodRuntimeContext(context, originalFactory) {
9
+ return ɵprovidePrimitiveMethodRuntimeContext('state', context, originalFactory);
10
+ }
11
+ //# sourceMappingURL=state-method-runtime-context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"state-method-runtime-context.js","sourceRoot":"","sources":["../../../../../libs/core/src/lib/state-method-runtime-context.ts"],"names":[],"mappings":"AACA,OAAO,EACL,mCAAmC,EACnC,qCAAqC,GAEtC,MAAM,oCAAoC,CAAC;AAW5C,MAAM,UAAU,+BAA+B;IAG7C,MAAM,OAAO,GAAG,mCAAmC,EAAE,CAAC;IACtD,OAAO,OAAO,EAAE,IAAI,KAAK,OAAO;QAC9B,CAAC,CAAE,OAAqC;QACxC,CAAC,CAAC,SAAS,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,iCAAiC,CAC/C,OAA8B,EAC9B,eAA8C;IAE9C,OAAO,qCAAqC,CAC1C,OAAO,EACP,OAAO,EACP,eAAe,CAChB,CAAC;AACJ,CAAC","sourcesContent":["import type { Provider, Signal } from './host/craft-compat';\nimport {\n injectPrimitiveMethodRuntimeContext,\n ɵprovidePrimitiveMethodRuntimeContext,\n type PrimitiveMethodRuntimeContext,\n} from './primitive-method-runtime-context';\n\nexport type StateMethodRuntimeContext = PrimitiveMethodRuntimeContext<'state'>;\n\ntype StateInsertionContext = Readonly<{\n state: Signal<unknown>;\n set(value: unknown): unknown;\n update(updater: (current: unknown) => unknown): unknown;\n patch(updater: (current: unknown) => object): unknown;\n}>;\n\nexport function injectStateMethodRuntimeContext():\n | StateMethodRuntimeContext\n | undefined {\n const context = injectPrimitiveMethodRuntimeContext();\n return context?.kind === 'state'\n ? (context as StateMethodRuntimeContext)\n : undefined;\n}\n\nexport function ɵprovideStateMethodRuntimeContext(\n context: StateInsertionContext,\n originalFactory: (...args: never[]) => unknown,\n): Provider {\n return ɵprovidePrimitiveMethodRuntimeContext(\n 'state',\n context,\n originalFactory,\n );\n}\n"]}
@@ -0,0 +1,158 @@
1
+ import { type Provider, Signal } from './host/craft-compat';
2
+ import { type CraftSignal } from './host/craft-signal';
3
+ import { InsertionsStateFactory } from './query.core';
4
+ import { type CraftPrimitiveGen, type NamedPrimitive } from './craft-primitive-gen';
5
+ import type { BrandedServiceProvider, MergeServiceDependencyMaps, SERVICE_HELPER_DEPENDENCIES, ServiceDependencyMapFromValues, ServiceDependencyMapFromYielded } from './craft-service';
6
+ import { Source$ as SourceDollarType } from './source$';
7
+ import { MergeObject } from './util/types/util.type';
8
+ import { FilterSource, IsEmptyObject } from './util/util.type';
9
+ import { type BrandReactiveProperties, type YieldableInsertionMethods } from './yieldable';
10
+ import type { StandardSchemaV1InferInput, StandardSchemaV1InferOutput } from './standard-schema';
11
+ import { type CraftSchema, type SchemaValidationPolicy } from './schema-validation';
12
+ import type { AnyCraftException } from './craft-exception';
13
+ import { DEEP_YIELDABLE_INSERTION, type DeepYieldableReaderOf, type YieldableReactiveValue } from './reactive-read';
14
+ type Source$Method<SourceType> = [SourceType] extends [void] ? () => Generator<never, void, unknown> : (value: SourceType) => Generator<never, void, unknown>;
15
+ export type ExposedStateInsertions<Insertions> = YieldableInsertionMethods<MergeObject<IsEmptyObject<Insertions> extends true ? {} : FilterSource<Insertions>, {
16
+ [K in keyof FilterSource<Insertions> as FilterSource<Insertions>[K] extends SourceDollarType<any> ? K : never]: FilterSource<Insertions>[K] extends SourceDollarType<infer SourceType> ? Source$Method<SourceType> : never;
17
+ }>>;
18
+ type StateReader<StateType, Insertions, Deep extends boolean = false, Name extends string = string> = Deep extends true ? DeepYieldableReaderOf<YieldableReactiveValue<StateType, Name>> : Insertions extends {
19
+ readonly [DEEP_YIELDABLE_INSERTION]: true;
20
+ } ? DeepYieldableReaderOf<YieldableReactiveValue<StateType, Name>> : YieldableReactiveValue<StateType, Name>;
21
+ export type StateOutput<StateType, Insertions, Dependencies = {}, HasSchema extends boolean = false, Deep extends boolean = false, Name extends string = string> = HasSchema extends true ? MergeObject<StateReader<StateType, Insertions, Deep, Name>, MergeObject<BrandReactiveProperties<ExposedStateInsertions<Insertions>>, {
22
+ readonly hasSchema: YieldableReactiveValue<true, 'hasSchema'>;
23
+ readonly hasException: YieldableReactiveValue<boolean, 'hasException'>;
24
+ readonly exceptions: YieldableReactiveValue<{
25
+ list: AnyCraftException[];
26
+ parse: {
27
+ state?: AnyCraftException;
28
+ };
29
+ }, 'exceptions'>;
30
+ readonly [SERVICE_HELPER_DEPENDENCIES]?: Dependencies;
31
+ }>> : MergeObject<StateReader<StateType, Insertions, Deep, Name>, MergeObject<BrandReactiveProperties<ExposedStateInsertions<Insertions>>, {
32
+ readonly [SERVICE_HELPER_DEPENDENCIES]?: Dependencies;
33
+ }>>;
34
+ export type StateSchemaConfig<Schema extends CraftSchema> = {
35
+ readonly $self: StandardSchemaV1InferInput<Schema> | Signal<StandardSchemaV1InferInput<Schema>>;
36
+ readonly schema: Schema;
37
+ readonly providers?: readonly Provider[];
38
+ readonly schemaValidationPolicy?: SchemaValidationPolicy;
39
+ };
40
+ type ResolvedStateType<StateInput> = StateInput extends {
41
+ readonly $self: infer V;
42
+ } ? ResolvedStateType<V> : StateInput extends Signal<infer State> ? State : StateInput extends CraftSignal<infer State> ? State : StateInput extends (...args: any[]) => Generator<any, infer Output, unknown> ? ResolvedStateType<Output> : StateInput;
43
+ type StateConfigYielded<StateInput> = StateInput extends {
44
+ readonly $self: infer V;
45
+ } ? StateConfigYielded<V> : StateInput extends (...args: any[]) => Generator<infer Yielded, any, unknown> ? Yielded : never;
46
+ type StateInputProviderNames<StateInput> = StateInput extends {
47
+ readonly $self: any;
48
+ readonly providers: readonly (infer P)[];
49
+ } ? P extends BrandedServiceProvider<infer Name, any, any> ? Name : never : never;
50
+ type SatisfyDependencies<Deps, SatisfiedNames extends string> = {
51
+ [K in keyof Deps as K extends SatisfiedNames ? never : K]: Deps[K];
52
+ };
53
+ type StateTrackedDependencies<StateInput = never, InsertionsYielded = never, Insertions = never> = [StateInputProviderNames<StateInput>] extends [never] ? MergeServiceDependencyMaps<ServiceDependencyMapFromYielded<StateConfigYielded<StateInput> | InsertionsYielded>, ServiceDependencyMapFromValues<Insertions>> : SatisfyDependencies<MergeServiceDependencyMaps<ServiceDependencyMapFromYielded<StateConfigYielded<StateInput> | InsertionsYielded>, ServiceDependencyMapFromValues<Insertions>>, StateInputProviderNames<StateInput>>;
54
+ /**
55
+ * Creates a signal state with an optional insertion for adding methods and computed properties.
56
+ *
57
+ * The `state` function allows you to create a Signal-based state that can be extended with custom
58
+ * methods and properties through an insertion. The insertion receives a context object with
59
+ * `state`, `set` and `update` methods. Compose several insertions with
60
+ * `insertStatePipe(insertion1, insertion2)`.
61
+ *
62
+ * @remarks
63
+ * For the best TypeScript inference, pass Angular `Signal` values (e.g. `signal`, `linkedSignal`)
64
+ * rather than manually widening to `WritableSignal`. This avoids some overload inference limits
65
+ * and keeps the public state read-only.
66
+ *
67
+ * @param name - The state name. Used for host tagging and reactive branding
68
+ * (`const counter = yield* state('counter', 0)`) and as the injector host
69
+ * tag (`state:counter`), so the state is precisely locatable in snapshots and logs.
70
+ * @param stateConfig - The initial state value or a Signal (e.g., linkedSignal)
71
+ * @param insertion1 - Optional single insertion factory to extend the state with methods and properties
72
+ * @returns A single-use primitive generator resolving to the state Signal
73
+ * merged with all insertion properties
74
+ * and methods. Consume it with `yield*`
75
+ * inside a generator host (craftService factory, craftGen, …) or with
76
+ * `craftUse(...)` elsewhere (typically a component field).
77
+ *
78
+ * @example
79
+ * // Simple state with a primitive value (component field)
80
+ * const counter = craftUse(state('counter', 0));
81
+ * console.log(counter()); // 0
82
+ *
83
+ * @example
84
+ * // Inside a craftService generator factory
85
+ * const { Counter } = craftService(
86
+ * { name: 'Counter', providedIn: 'global' },
87
+ * function* () {
88
+ * const counter = yield* state('counter', 0);
89
+ * return { counter };
90
+ * },
91
+ * );
92
+ *
93
+ * @example
94
+ * // State with a computed
95
+ * const origin = signal(5);
96
+ * const doubled = craftUse(state('doubled', computed(() => origin() * 2)));
97
+ * console.log(doubled()); // 10
98
+ *
99
+ * @example
100
+ * // State with insertions to add methods (Method-based)
101
+ * const origin = signal(5);
102
+ * const counter = craftUse(state(
103
+ * 'counter',
104
+ * computed(() => origin() * 2),
105
+ * ({ update, set }) => ({
106
+ * increment: () => update((current) => current + 1),
107
+ * reset: () => set(0),
108
+ * })
109
+ * ));
110
+ * console.log(counter()); // 10
111
+ * craftUse(counter.increment());
112
+ * console.log(counter()); // 11
113
+ * craftUse(counter.reset());
114
+ * console.log(counter()); // 0
115
+ *
116
+ * @example
117
+ * // State with multiple insertions, composed with insertStatePipe
118
+ * const origin = signal(5);
119
+ * const counterDouble = craftUse(state(
120
+ * 'counterDouble',
121
+ * computed(() => origin() * 2),
122
+ * insertStatePipe(
123
+ * ({ update, set }) => ({
124
+ * increment: () => update((current) => current + 1),
125
+ * reset: () => set(0),
126
+ * }),
127
+ * ({ state }) => ({
128
+ * isOdd: computed(() => state() % 2 === 1),
129
+ * }),
130
+ * ),
131
+ * ));
132
+ * console.log(counterDouble()); // 10
133
+ * console.log(counterDouble.isOdd()); // false
134
+ * craftUse(counterDouble.increment());
135
+ * console.log(counterDouble()); // 11
136
+ * console.log(counterDouble.isOdd()); // true
137
+ *
138
+ * @example
139
+ * // State with source binding (Event-based)
140
+ * const increment = source$<void>('increment');
141
+ * const reset = source$<void>('reset');
142
+ * const myState = craftUse(state('myState', 0, ({ update, set }) => ({
143
+ * setValue: on$(increment, () => update(value => value + 1)),
144
+ * reset: () => on$(reset, () => set(0)),
145
+ * })));
146
+ * console.log(myState()); // 0
147
+ * // Note: setValue is not exposed on myState, only used internally
148
+ * increment.emit();
149
+ * console.log(myState()); // 34
150
+ * reset.emit();
151
+ * console.log(myState()); // 0
152
+ */
153
+ export declare function state<StateInput>(stateConfig: StateInput): CraftPrimitiveGen<StateOutput<ResolvedStateType<StateInput>, {}, StateTrackedDependencies<StateInput>>>;
154
+ export declare function state<Name extends string, Schema extends CraftSchema>(name: Name, stateConfig: StateSchemaConfig<Schema>): CraftPrimitiveGen<NamedPrimitive<Name, StateOutput<StandardSchemaV1InferOutput<Schema>, {}, {}, true, false, Name>>>;
155
+ export declare function state<Name extends string, StateInput>(name: Name, stateConfig: StateInput): CraftPrimitiveGen<NamedPrimitive<Name, StateOutput<ResolvedStateType<StateInput>, {}, StateTrackedDependencies<StateInput>, false, false, Name>>>;
156
+ export declare function state<Name extends string, StateInput, Insertion1, Insertion1Yielded = never>(name: Name, stateConfig: StateInput, insertion1: InsertionsStateFactory<NoInfer<ResolvedStateType<StateInput>>, Insertion1, {}, Insertion1Yielded>): CraftPrimitiveGen<NamedPrimitive<Name, StateOutput<ResolvedStateType<StateInput>, Insertion1, StateTrackedDependencies<StateInput, Insertion1Yielded, Insertion1>, false, false, Name>>>;
157
+ export {};
158
+ //# sourceMappingURL=state.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../../../../../libs/core/src/lib/state.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,388 @@
1
+ import { assertInInjectionContext, DestroyRef, inject, Injector, isSignal, isWritableSignal, linkedSignal, runInInjectionContext, } from './host/craft-compat';
2
+ import { takeUntilDestroyed } from './host/craft-compat';
3
+ const UNSET_ANGULAR_STATE = Symbol('unset-angular-state');
4
+ import { craftComputed, craftLinkedSignal, craftSignal, isCraftSignal, } from './host/craft-signal';
5
+ import { createNamedPrimitiveGen, createPrimitiveGen, } from './craft-primitive-gen';
6
+ import { isGenerator, runCraftGenerator } from './craft-generator-runtime';
7
+ import { injectFnWrapper } from './fn-wrapper';
8
+ import { ɵcreateHostTaggedInjector, ɵHOST_TAG_LIST } from './craft-service';
9
+ import { APP_SNAPSHOT_REGISTRY, INSERTION_SNAPSHOT_REGISTRY, InsertionSnapshotRegistry, triggerAndCollectInsertions, } from './take-app-snapshot';
10
+ import { isSource } from './util/util';
11
+ import { ɵprovideStateMethodRuntimeContext } from './state-method-runtime-context';
12
+ import { ɵregisterCraftPrimitive } from './craft-primitive-registry';
13
+ import { createYieldableInsertionMethod, isNonYieldableInsertionMethod, yieldableInvocation, } from './yieldable';
14
+ import { decideSchemaValidation, parseSchema, useSchemaValidationPolicy, } from './schema-validation';
15
+ import { createYieldableReactiveFacade, createYieldableReactiveValue, deepYieldable, hasDeepYieldableInsertion, DEEP_YIELDABLE_INSERTION, isYieldableReactiveValue, nameInsertedReactiveValue, } from './reactive-read';
16
+ const createLinkedSignalWithOptions = craftLinkedSignal;
17
+ const createCraftLinkedSignalWithOptions = linkedSignal;
18
+ const STATE_INVALID_YIELD_ERROR_MESSAGE = 'state generators can only yield craftService dependencies or exposed dependency helpers.';
19
+ const STATE_APP_START_ERROR_MESSAGE = 'state generators do not support onAppStart(...).';
20
+ function isSource$(value) {
21
+ return (typeof value === 'object' &&
22
+ value !== null &&
23
+ 'emit' in value &&
24
+ typeof value.emit === 'function' &&
25
+ 'subscribe' in value &&
26
+ typeof value.subscribe === 'function');
27
+ }
28
+ function isGeneratorFunction(value) {
29
+ return (typeof value === 'function' &&
30
+ (value.constructor?.name === 'GeneratorFunction' ||
31
+ Object.prototype.toString.call(value) === '[object GeneratorFunction]'));
32
+ }
33
+ function executeStateFactory(factory, thisArg, getInjector, ...args) {
34
+ const injector = getInjector();
35
+ const wrappedFactory = runInInjectionContext(injector, () => injectFnWrapper()(factory));
36
+ const result = wrappedFactory.apply(thisArg, args);
37
+ if (!isGenerator(result)) {
38
+ return result;
39
+ }
40
+ return runInInjectionContext(injector, () => {
41
+ return runCraftGenerator({
42
+ iterator: result,
43
+ injector,
44
+ hostScope: 'function',
45
+ invalidYieldErrorMessage: STATE_INVALID_YIELD_ERROR_MESSAGE,
46
+ multipleAppStartErrorMessage: STATE_APP_START_ERROR_MESSAGE,
47
+ onAppStartNotSupportedErrorMessage: STATE_APP_START_ERROR_MESSAGE,
48
+ }).value;
49
+ });
50
+ }
51
+ export function state(nameOrStateConfig,
52
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
53
+ stateConfig,
54
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
55
+ ...insertions
56
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
57
+ ) {
58
+ const isNamed = typeof nameOrStateConfig === 'string' && arguments.length >= 2;
59
+ const name = isNamed ? nameOrStateConfig : 'state';
60
+ const config = isNamed ? stateConfig : nameOrStateConfig;
61
+ const ref = createStateRef(name, config, ...(isNamed ? insertions : []));
62
+ return isNamed ? createNamedPrimitiveGen(name, ref) : createPrimitiveGen(ref);
63
+ }
64
+ function createStateRef(name,
65
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
66
+ stateConfig,
67
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
68
+ ...insertions
69
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
70
+ ) {
71
+ const insertionSnapshotRegistry = new InsertionSnapshotRegistry();
72
+ const hasSelfConfig = typeof stateConfig === 'object' &&
73
+ stateConfig !== null &&
74
+ '$self' in stateConfig;
75
+ const extraProviders = hasSelfConfig ? (stateConfig.providers ?? []) : [];
76
+ const rawConfig = hasSelfConfig ? stateConfig.$self : stateConfig;
77
+ const schema = hasSelfConfig
78
+ ? stateConfig.schema
79
+ : undefined;
80
+ const localSchemaPolicy = hasSelfConfig
81
+ ? stateConfig.schemaValidationPolicy
82
+ : undefined;
83
+ let baseInjector;
84
+ try {
85
+ baseInjector = inject(Injector);
86
+ }
87
+ catch {
88
+ // A state can still be constructed outside an injection context when no
89
+ // generator/schema work needs the injector until it is read.
90
+ }
91
+ const getBaseInjector = () => (baseInjector ??= (() => {
92
+ assertInInjectionContext(state);
93
+ return inject(Injector);
94
+ })());
95
+ let injector;
96
+ const getInjector = () => {
97
+ injector ??= ɵcreateHostTaggedInjector(getBaseInjector(), `state:${name}`, [
98
+ {
99
+ provide: INSERTION_SNAPSHOT_REGISTRY,
100
+ useValue: insertionSnapshotRegistry,
101
+ },
102
+ ...extraProviders,
103
+ ]);
104
+ return injector;
105
+ };
106
+ const resolvedStateConfig = isGeneratorFunction(rawConfig)
107
+ ? executeStateFactory(rawConfig, undefined, getInjector)
108
+ : rawConfig;
109
+ const isSignalState = isCraftSignal(resolvedStateConfig) || isSignal(resolvedStateConfig);
110
+ const isAngularSignalState = isSignal(resolvedStateConfig) && !isCraftSignal(resolvedStateConfig);
111
+ const isCraftWritableState = isCraftSignal(resolvedStateConfig) &&
112
+ typeof Reflect.get(resolvedStateConfig, 'set') === 'function';
113
+ const readResolvedState = () => resolvedStateConfig();
114
+ const wrapAngularReadonlyState = () => {
115
+ const override = craftSignal(UNSET_ANGULAR_STATE);
116
+ const value = (() => {
117
+ const local = override();
118
+ return local === UNSET_ANGULAR_STATE
119
+ ? readResolvedState()
120
+ : local;
121
+ });
122
+ value.set = (next) => {
123
+ override.set(next);
124
+ };
125
+ value.update = (updateFn) => value.set(updateFn(value()));
126
+ value.asReadonly = () => value;
127
+ return value;
128
+ };
129
+ let lastValidState;
130
+ let latestStateException;
131
+ let skipInitialSourceValidation = isSignalState;
132
+ const applySchema = (value, operation) => {
133
+ if (!schema) {
134
+ return value;
135
+ }
136
+ if (operation === 'source' && skipInitialSourceValidation) {
137
+ skipInitialSourceValidation = false;
138
+ return lastValidState;
139
+ }
140
+ const parsed = parseSchema(schema, value, {
141
+ primitive: 'state',
142
+ name,
143
+ stage: 'state',
144
+ operation,
145
+ });
146
+ if (parsed instanceof Promise) {
147
+ // Signals are synchronous. Async Standard Schema implementations are
148
+ // supported by the resource primitives, but cannot safely publish a
149
+ // pending state value.
150
+ return lastValidState;
151
+ }
152
+ const decision = decideSchemaValidation(parsed, {
153
+ primitive: 'state',
154
+ name,
155
+ stage: 'state',
156
+ operation,
157
+ }, useSchemaValidationPolicy(getInjector(), localSchemaPolicy));
158
+ if (!decision.accepted) {
159
+ latestStateException = decision.exception;
160
+ return lastValidState;
161
+ }
162
+ latestStateException = undefined;
163
+ lastValidState = decision.value;
164
+ return lastValidState;
165
+ };
166
+ const initialStateValue = applySchema(isSignalState ? readResolvedState() : resolvedStateConfig, 'initial');
167
+ const stateSignal = !schema && isSignalState
168
+ ? isWritableSignal(resolvedStateConfig) || isCraftWritableState
169
+ ? resolvedStateConfig
170
+ : isAngularSignalState
171
+ ? wrapAngularReadonlyState()
172
+ : craftLinkedSignal({
173
+ source: readResolvedState,
174
+ computation: () => readResolvedState(),
175
+ })
176
+ : isSignalState
177
+ ? isAngularSignalState
178
+ ? createCraftLinkedSignalWithOptions({
179
+ source: readResolvedState,
180
+ computation: () => applySchema(readResolvedState(), 'source'),
181
+ equal: () => false,
182
+ })
183
+ : createLinkedSignalWithOptions({
184
+ source: readResolvedState,
185
+ computation: () => applySchema(readResolvedState(), 'source'),
186
+ equal: () => false,
187
+ })
188
+ : craftSignal(initialStateValue);
189
+ const readonlyStateSignal = isAngularSignalState &&
190
+ !(isWritableSignal(resolvedStateConfig) || isCraftWritableState)
191
+ ? stateSignal
192
+ : isCraftSignal(stateSignal)
193
+ ? craftComputed(() => stateSignal())
194
+ : 'asReadonly' in stateSignal &&
195
+ typeof stateSignal.asReadonly ===
196
+ 'function'
197
+ ? stateSignal.asReadonly()
198
+ : stateSignal;
199
+ const publicStateReader = createYieldableReactiveValue(readonlyStateSignal, name, { primitive: 'state', path: name });
200
+ const originalSet = stateSignal.set.bind(stateSignal);
201
+ const setState = (newState) => {
202
+ if (!schema) {
203
+ originalSet(newState);
204
+ return newState;
205
+ }
206
+ const next = applySchema(newState, 'set');
207
+ if (!latestStateException) {
208
+ originalSet(next);
209
+ }
210
+ return next;
211
+ };
212
+ const updateState = (updateFn) => {
213
+ if (!schema) {
214
+ const next = updateFn(stateSignal());
215
+ originalSet(next);
216
+ return next;
217
+ }
218
+ const next = applySchema(updateFn(stateSignal()), 'update');
219
+ if (!latestStateException) {
220
+ originalSet(next);
221
+ }
222
+ return next;
223
+ };
224
+ if (schema) {
225
+ stateSignal.set = setState;
226
+ stateSignal.update = updateState;
227
+ }
228
+ const insertionsOutput = insertions.reduce((acc, insert) => {
229
+ const insertionContext = {
230
+ state: publicStateReader,
231
+ set: (newState) => yieldableInvocation(setState(newState)),
232
+ update: (updateFn) => yieldableInvocation(updateState(updateFn)),
233
+ patch: (patchFn) => yieldableInvocation(updateState((current) => ({
234
+ ...current,
235
+ ...patchFn(current),
236
+ }))),
237
+ insertions: Object.entries(acc.rawInsertionsOutput).reduce((previous, [key, value]) => {
238
+ if (isSource$(value))
239
+ previous[key] = value;
240
+ return previous;
241
+ }, { ...acc.exposedInsertionsOutput }),
242
+ };
243
+ const nextRawInsertions = executeStateFactory(insert, undefined, getBaseInjector, insertionContext);
244
+ const nextExposedInsertions = Object.entries(nextRawInsertions).reduce((exposedAcc, [key, value]) => {
245
+ if (isSource(value)) {
246
+ return exposedAcc;
247
+ }
248
+ if (isSource$(value)) {
249
+ const localSource = value;
250
+ const sourceInjector = ɵcreateHostTaggedInjector(getInjector(), `source:${key}`);
251
+ const wrappedEmit = runInInjectionContext(sourceInjector, () => injectFnWrapper()((payload) => localSource.emit(payload)));
252
+ exposedAcc[key] = createYieldableInsertionMethod((payload) => wrappedEmit(payload), {
253
+ injector: sourceInjector,
254
+ invalidYieldErrorMessage: STATE_INVALID_YIELD_ERROR_MESSAGE,
255
+ multipleAppStartErrorMessage: STATE_APP_START_ERROR_MESSAGE,
256
+ onAppStartNotSupportedErrorMessage: STATE_APP_START_ERROR_MESSAGE,
257
+ });
258
+ return exposedAcc;
259
+ }
260
+ if (isYieldableReactiveValue(value)) {
261
+ exposedAcc[key] = nameInsertedReactiveValue(value, key, 'state', `${name}.${key}`);
262
+ return exposedAcc;
263
+ }
264
+ if (typeof value === 'function' &&
265
+ !isCraftSignal(value) &&
266
+ !isSignal(value) &&
267
+ !isYieldableReactiveValue(value) &&
268
+ !isNonYieldableInsertionMethod(value)) {
269
+ const methodInjector = ɵcreateHostTaggedInjector(getInjector(), `method:${key}`, [
270
+ ɵprovideStateMethodRuntimeContext(insertionContext, value),
271
+ ]);
272
+ const wrappedFn = runInInjectionContext(methodInjector, () => injectFnWrapper()(value));
273
+ exposedAcc[key] = createYieldableInsertionMethod(wrappedFn, {
274
+ injector: methodInjector,
275
+ invalidYieldErrorMessage: STATE_INVALID_YIELD_ERROR_MESSAGE,
276
+ multipleAppStartErrorMessage: STATE_APP_START_ERROR_MESSAGE,
277
+ onAppStartNotSupportedErrorMessage: STATE_APP_START_ERROR_MESSAGE,
278
+ });
279
+ }
280
+ else {
281
+ exposedAcc[key] = value;
282
+ }
283
+ return exposedAcc;
284
+ }, {});
285
+ return {
286
+ rawInsertionsOutput: {
287
+ ...acc.rawInsertionsOutput,
288
+ ...nextRawInsertions,
289
+ },
290
+ exposedInsertionsOutput: {
291
+ ...acc.exposedInsertionsOutput,
292
+ ...nextExposedInsertions,
293
+ },
294
+ };
295
+ }, {
296
+ rawInsertionsOutput: {},
297
+ exposedInsertionsOutput: {},
298
+ });
299
+ const stateOutput = Object.assign(readonlyStateSignal, insertionsOutput.exposedInsertionsOutput, {
300
+ hasSchema: craftSignal(schema !== undefined),
301
+ exceptions: craftComputed(() => {
302
+ // Keep the exception signal reactive when a derived source changes.
303
+ stateSignal();
304
+ const parse = latestStateException
305
+ ? { state: latestStateException }
306
+ : {};
307
+ return { list: Object.values(parse), parse };
308
+ }),
309
+ hasException: craftComputed(() => {
310
+ stateSignal();
311
+ return latestStateException !== undefined;
312
+ }),
313
+ });
314
+ const snapshotRegistry = injector
315
+ ? injector.get(APP_SNAPSHOT_REGISTRY, null)
316
+ : (() => {
317
+ try {
318
+ return inject(APP_SNAPSHOT_REGISTRY, { optional: true });
319
+ }
320
+ catch {
321
+ return null;
322
+ }
323
+ })();
324
+ const hostTagList = injector
325
+ ? (injector.get(ɵHOST_TAG_LIST, null) ?? [])
326
+ : (() => {
327
+ try {
328
+ return inject(ɵHOST_TAG_LIST, { optional: true }) ?? [];
329
+ }
330
+ catch {
331
+ return [];
332
+ }
333
+ })();
334
+ const destroyRef = injector
335
+ ? injector.get(DestroyRef, null)
336
+ : (() => {
337
+ try {
338
+ return inject(DestroyRef, { optional: true });
339
+ }
340
+ catch {
341
+ return null;
342
+ }
343
+ })();
344
+ // Addressable handle for tooling: read and write this very instance by name.
345
+ const registration = ɵregisterCraftPrimitive({
346
+ kind: 'state',
347
+ name,
348
+ read: () => stateSignal(),
349
+ write: (value) => setState(value),
350
+ ...(injector ? { injector } : {}),
351
+ });
352
+ if (snapshotRegistry && destroyRef) {
353
+ snapshotRegistry.triggerSnapshot$
354
+ .pipe(takeUntilDestroyed(destroyRef))
355
+ .subscribe(() => {
356
+ const insertionSnapshots = triggerAndCollectInsertions(insertionSnapshotRegistry);
357
+ let stateSnapshot;
358
+ try {
359
+ stateSnapshot = {
360
+ value: stateSignal(),
361
+ ...(insertionSnapshots ? { insertions: insertionSnapshots } : {}),
362
+ };
363
+ }
364
+ catch (error) {
365
+ stateSnapshot = {
366
+ error: error instanceof Error ? error.message : String(error),
367
+ };
368
+ }
369
+ snapshotRegistry.allSnapShot$.next({
370
+ source: 'state',
371
+ from: hostTagList,
372
+ state: stateSnapshot,
373
+ });
374
+ });
375
+ }
376
+ const publicState = createYieldableReactiveFacade(stateOutput, {
377
+ name,
378
+ primitive: 'state',
379
+ path: name,
380
+ });
381
+ // The ref the application holds is what a feature names when it has to
382
+ // capture a primitive declared outside its own host.
383
+ registration.link(publicState);
384
+ return hasDeepYieldableInsertion(insertions)
385
+ ? deepYieldable(publicState)
386
+ : publicState;
387
+ }
388
+ //# sourceMappingURL=state.js.map