@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 @@
1
+ {"version":3,"file":"async-process.js","sourceRoot":"","sources":["../../../../../libs/core/src/lib/async-process.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n assertInInjectionContext,\n computed,\n batch as craftBatch,\n DestroyRef,\n inject,\n Injector,\n isSignal,\n Provider,\n ResourceLoaderParams,\n ResourceOptions,\n ResourceStreamingLoader,\n runInInjectionContext,\n Signal,\n signal,\n untracked,\n WritableSignal,\n} from './host/craft-compat';\nimport { InsertionsResourcesFactory } from './query.core';\nimport {\n executeGeneratorCompatibleFactory,\n GeneratorCompatibleFactory,\n isGenerator,\n isGeneratorFunction,\n runCraftGenerator,\n} from './craft-generator-runtime';\nimport { executeGeneratorCompatibleFactoryAsync } from './craft-program-runtime';\nimport {\n attachCraftSettledValue,\n createYieldableSettledValue,\n CraftNotSettled,\n type CraftSettledSignal,\n} from './craft-settled';\nimport type { ExtractCraftGenExceptions } from './craft-gen';\nimport { ReadonlySource } from './util/source.type';\nimport {\n CraftResourceStatus,\n toCraftStatus,\n} from './util/craft-resource-status';\nimport { resourceById, ResourceByIdRef } from './resource-by-id';\nimport { isSource } from './util/util';\nimport {\n methodParamsWrapperEqual,\n unwrapMethodParams,\n wrapMethodParams,\n} from './util/method-trigger-nonce';\nimport { MergeObjects } from './util/util.type';\nimport { craftResource } from './craft-resource';\nimport { preservedResource } from './preserved-resource';\nimport { CraftResourceRef } from './util/craft-resource-ref';\nimport {\n AnyCraftException,\n ExtractCraftException,\n InsertMetaInCraftExceptionIfExists,\n StripCraftException,\n isCraftException,\n} from './craft-exception';\nimport { CORRELATION_ID_SERVICE } from './correlation-id';\nimport {\n createNamedPrimitiveGen,\n type CraftPrimitiveGen,\n type NamedCraftPrimitiveGen,\n} from './craft-primitive-gen';\nimport { takeUntilDestroyed } from './host/craft-compat';\nimport {\n createSchemaValidationRuntime,\n type CraftSchema,\n type SchemaValidationPolicy,\n type SchemaParseExceptions,\n type SchemaInput,\n type SchemaOutput,\n useSchemaValidationPolicy,\n} from './schema-validation';\nimport {\n APP_SNAPSHOT_REGISTRY,\n INSERTION_SNAPSHOT_REGISTRY,\n InsertionSnapshotRegistry,\n TAKE_APP_SNAPSHOT,\n triggerAndCollectInsertions,\n} from './take-app-snapshot';\nimport {\n createResourceExceptionsRuntime,\n enrichResourceException,\n} from './resource-exception';\nimport type {\n BrandedServiceProvider,\n SERVICE_HELPER_DEPENDENCIES,\n ServiceDependencyMapFromYieldedAndValues,\n} from './craft-service';\nimport { ɵcreateHostTaggedInjector, ɵHOST_TAG_LIST } from './craft-service';\nimport { injectFnWrapper } from './fn-wrapper';\nimport { ɵprovidePrimitiveMethodRuntimeContext } from './primitive-method-runtime-context';\nimport {\n ɵcreatePrimitiveResourceByIdRuntimeContext,\n ɵcreatePrimitiveResourceRuntimeContext,\n ɵobservePrimitiveResourceRuntimeContext,\n} from './primitive-resource-runtime-context';\nimport {\n createYieldableInsertionMethod,\n isNonYieldableInsertionMethod,\n yieldableInvocation,\n} from './yieldable';\nimport type { YieldableInvocation } from './yieldable';\nimport type {\n BrandReactiveProperties,\n YieldableInsertionMethods,\n} from './yieldable';\nimport {\n createYieldableReactiveFacade,\n deepYieldable,\n hasDeepYieldableInsertion,\n isYieldableReactiveValue,\n nameInsertedReactiveValue,\n type YieldableReactiveProperties,\n type DeepYieldableReactiveValue,\n} from './reactive-read';\nimport { craftUse } from './craft-use';\n\ntype AsyncProcessConfigProviderNames<Providers> =\n Providers extends readonly (infer P)[]\n ? P extends BrandedServiceProvider<infer Name, any, any>\n ? Name\n : never\n : never;\n\ntype SatisfyDependencies<Deps, SatisfiedNames extends string> = {\n [K in keyof Deps as K extends SatisfiedNames ? never : K]: Deps[K];\n};\n\ntype AsyncProcessTrackedDependencies<\n ParamsYielded = never,\n MethodYielded = never,\n LoaderYielded = never,\n StreamYielded = never,\n InsertionsYielded = never,\n Providers = never,\n Insertions = never,\n> = [AsyncProcessConfigProviderNames<Providers>] extends [never]\n ? ServiceDependencyMapFromYieldedAndValues<\n | ParamsYielded\n | MethodYielded\n | LoaderYielded\n | StreamYielded\n | InsertionsYielded,\n Insertions\n >\n : SatisfyDependencies<\n ServiceDependencyMapFromYieldedAndValues<\n | ParamsYielded\n | MethodYielded\n | LoaderYielded\n | StreamYielded\n | InsertionsYielded,\n Insertions\n >,\n AsyncProcessConfigProviderNames<Providers>\n >;\n\ntype AsyncProcessDependenciesMetadata<Dependencies> = [\n keyof Dependencies,\n] extends [never]\n ? {}\n : {\n readonly [SERVICE_HELPER_DEPENDENCIES]?: Dependencies;\n };\n\nconst ASYNC_PROCESS_INVALID_YIELD_ERROR_MESSAGE =\n 'asyncProcess generators can only yield craftService dependencies or exposed dependency helpers.';\nconst ASYNC_PROCESS_APP_START_ERROR_MESSAGE =\n 'asyncProcess generators do not support onAppStart(...).';\n\n// ! It looks like TS does not handle to expose the ResourceByIdHandler without erasing the () => ... part\n/** The `craftException`s a resource-like async process may surface. */\nexport type ResourceLikeAsyncProcessExceptionUnion<\n AsyncProcessException extends AsyncProcessExceptionConstraints,\n> =\n ResourceLikeAsyncProcessExceptions<AsyncProcessException> extends {\n exception: Signal<infer Exception>;\n }\n ? Exclude<Exception, undefined>\n : never;\n\nexport type AsyncProcessRef<\n Value,\n ArgParams,\n Params,\n Insertions,\n IsMethod,\n SourceParams,\n GroupIdentifier,\n AsyncProcessExceptions extends\n AsyncProcessExceptionConstraints = AsyncProcessExceptionConstraints,\n Dependencies = {},\n HasSchema extends boolean = false,\n MethodYielded = never,\n Name extends string = string,\n> = MergeObjects<\n [\n HasSchema extends true ? { readonly hasSchema: Signal<true> } : {},\n [unknown] extends [GroupIdentifier]\n ? {\n readonly resource: CraftResourceRef<Value, Params>;\n readonly value: Signal<Value | undefined>;\n readonly status: Signal<CraftResourceStatus>;\n readonly isLoading: Signal<boolean>;\n hasValue(): boolean;\n /**\n * The settled read: never `undefined`, never a value while an\n * exception is carried — it suspends instead, to the nearest\n * `pendingBlock`.\n */\n readonly settledValue: CraftSettledSignal<\n Exclude<Value, undefined>,\n Name,\n ResourceLikeAsyncProcessExceptionUnion<AsyncProcessExceptions>\n >;\n } & ResourceLikeAsyncProcessExceptions<AsyncProcessExceptions>\n : {},\n YieldableInsertionMethods<Insertions>,\n IsMethod extends true\n ? {\n method: (\n args: ArgParams,\n ) => YieldableInvocation<MethodYielded, Params>;\n }\n : IsMethod extends 'params'\n ? {\n readonly resourceParamsSrc: Signal<Params | undefined>;\n }\n : {\n source: ReadonlySource<SourceParams>;\n },\n [unknown] extends [GroupIdentifier]\n ? {}\n : ResourceByIdRef<GroupIdentifier & string, Value, Params> & {\n _resourceById: ResourceByIdRef<\n GroupIdentifier & string,\n Value,\n Params\n >;\n /**\n * Get the associated resource by id\n *\n * Only added to help TS inference (TS cannot infer ResourceByIdHandler without erasing the signal getter, () => ResourceByIdRef<...>) )\n *\n * return the associated resource or undefined if not existing\n */\n select: (id: GroupIdentifier) =>\n | ({\n readonly value: Signal<Value | undefined>;\n readonly status: Signal<CraftResourceStatus>;\n readonly isLoading: Signal<boolean>;\n hasValue(): boolean;\n readonly settledValue: CraftSettledSignal<\n Exclude<Value, undefined>,\n Name,\n ResourceLikeAsyncProcessExceptionUnion<AsyncProcessExceptions>\n >;\n } & ResourceLikeAsyncProcessExceptions<\n AsyncProcessExceptions,\n GroupIdentifier\n >)\n | undefined;\n selectOrCreate: (id: GroupIdentifier) => {\n readonly value: Signal<Value | undefined>;\n readonly status: Signal<CraftResourceStatus>;\n readonly isLoading: Signal<boolean>;\n hasValue(): boolean;\n readonly settledValue: CraftSettledSignal<\n Exclude<Value, undefined>,\n Name,\n ResourceLikeAsyncProcessExceptionUnion<AsyncProcessExceptions>\n >;\n } & ResourceLikeAsyncProcessExceptions<\n AsyncProcessExceptions,\n GroupIdentifier\n >;\n } & ([GroupIdentifier] extends [string]\n ? ResourceByIdLikeAsyncProcessExceptions<\n AsyncProcessExceptions,\n GroupIdentifier\n >\n : {}),\n AsyncProcessDependenciesMetadata<Dependencies>,\n ]\n>;\n\ntype AsyncProcessConfig<\n ResourceState,\n Params,\n ParamsArgs,\n SourceParams,\n GroupIdentifier,\n ParamsYielded = never,\n MethodYielded = never,\n LoaderYielded = never,\n StreamYielded = never,\n> = Omit<ResourceOptions<NoInfer<ResourceState>, Params>, 'params' | 'loader'> &\n (\n | {\n /**\n * Used to generate a method in the store, when called will trigger the resource loader/stream.\n *\n * Only support one parameter which can be an object to pass multiple parameters.\n */\n method:\n | GeneratorCompatibleFactory<\n (args: ParamsArgs) => Params,\n MethodYielded\n >\n | ReadonlySource<SourceParams>;\n /**\n * A unique identifier for the resource, derived from the params.\n * It should be a string that uniquely identifies the resource based on the params.\n */\n identifier?: (\n params: NoInfer<NonNullable<StripCraftException<Params>>>,\n ) => GroupIdentifier;\n loader: GeneratorCompatibleFactory<\n (\n param: ResourceLoaderParams<\n NonNullable<\n [unknown] extends [Params]\n ? NoInfer<StripCraftException<SourceParams>>\n : NoInfer<StripCraftException<Params>>\n >\n >,\n ) => Promise<ResourceState>,\n LoaderYielded\n >;\n params?: never;\n stream?: never;\n preservePreviousValue?: () => boolean;\n }\n | {\n method:\n | GeneratorCompatibleFactory<\n (args: ParamsArgs) => Params,\n MethodYielded\n >\n | ReadonlySource<SourceParams>;\n loader?: never;\n identifier?: (\n params: NoInfer<NonNullable<StripCraftException<Params>>>,\n ) => GroupIdentifier;\n /**\n * Loading function which returns a `Promise` of a signal of the resource's value for a given\n * request, which can change over time as new values are received from a stream.\n */\n stream: GeneratorCompatibleFactory<\n ResourceStreamingLoader<\n ResourceState,\n ResourceLoaderParams<\n NonNullable<\n [unknown] extends [Params]\n ? NoInfer<StripCraftException<SourceParams>>\n : NoInfer<StripCraftException<Params>>\n >\n >\n >,\n StreamYielded\n >;\n params?: never;\n preservePreviousValue?: () => boolean;\n }\n | {\n /**\n * A reactive function which determines the request to be made. Whenever the request changes, the\n * loader will be triggered to fetch a new value for the resource.\n */\n params: GeneratorCompatibleFactory<() => Params, ParamsYielded>;\n /**\n * A unique identifier for the resource, derived from the params.\n * It should be a string that uniquely identifies the resource based on the params.\n */\n identifier?: (\n params: NoInfer<NonNullable<StripCraftException<Params>>>,\n ) => GroupIdentifier;\n loader: GeneratorCompatibleFactory<\n (\n param: ResourceLoaderParams<\n NonNullable<NoInfer<StripCraftException<Params>>>\n >,\n ) => Promise<ResourceState>,\n LoaderYielded\n >;\n method?: never;\n stream?: never;\n preservePreviousValue?: () => boolean;\n }\n ) & {\n methodSchema?: CraftSchema;\n paramsSchema?: CraftSchema;\n loaderSchema?: CraftSchema;\n schemaValidationPolicy?: SchemaValidationPolicy;\n };\n\nexport type AsyncProcessExceptionConstraints = {\n params: AnyCraftException;\n loader: AnyCraftException;\n};\n\nexport type ResourceLikeAsyncProcessExceptions<\n AsyncProcessException extends\n AsyncProcessExceptionConstraints = AsyncProcessExceptionConstraints,\n GroupIdentifier = unknown,\n> = {\n hasException: Signal<boolean>;\n exception: Signal<\n | InsertMetaInCraftExceptionIfExists<\n AsyncProcessException['params'],\n 'params',\n GroupIdentifier\n >\n | InsertMetaInCraftExceptionIfExists<\n AsyncProcessException['loader'],\n 'loader',\n GroupIdentifier\n >\n | undefined\n >;\n /** Deep reader: `exceptions.loader`, `exceptions.params`, and `exceptions.list`. */\n exceptions: DeepYieldableReactiveValue<{\n list: (\n | InsertMetaInCraftExceptionIfExists<\n AsyncProcessException['params'],\n 'params',\n GroupIdentifier\n >\n | InsertMetaInCraftExceptionIfExists<\n AsyncProcessException['loader'],\n 'loader',\n GroupIdentifier\n >\n )[];\n params?: InsertMetaInCraftExceptionIfExists<\n AsyncProcessException['params'],\n 'params',\n unknown\n >;\n loader?: InsertMetaInCraftExceptionIfExists<\n AsyncProcessException['loader'],\n 'loader',\n GroupIdentifier\n >;\n }> &\n (AsyncProcessException extends { parse: infer Parse }\n ? { parse: Parse }\n : {});\n};\n\nexport type ResourceByIdLikeAsyncProcessExceptions<\n AsyncProcessException extends\n AsyncProcessExceptionConstraints = AsyncProcessExceptionConstraints,\n GroupIdentifier extends string = string,\n> = {\n hasException: Signal<boolean>;\n /** Deep reader: `exceptions.loader`, `exceptions.params`, and `exceptions.list`. */\n exceptions: DeepYieldableReactiveValue<{\n list: (\n | InsertMetaInCraftExceptionIfExists<\n AsyncProcessException['params'],\n 'params',\n unknown\n >\n | InsertMetaInCraftExceptionIfExists<\n AsyncProcessException['loader'],\n 'loader',\n GroupIdentifier\n >\n )[];\n params?: InsertMetaInCraftExceptionIfExists<\n AsyncProcessException['params'],\n 'params',\n unknown\n >;\n loader: Partial<\n Record<\n GroupIdentifier,\n InsertMetaInCraftExceptionIfExists<\n AsyncProcessException['loader'],\n 'loader',\n GroupIdentifier\n >\n >\n >;\n }> &\n (AsyncProcessException extends { parse: infer Parse }\n ? { parse: Parse }\n : {});\n};\n\nexport type AsyncProcessOutput<\n State extends object | undefined,\n Params,\n ArgParams,\n SourceParams,\n GroupIdentifier,\n Insertions,\n AsyncProcessExceptions extends AsyncProcessExceptionConstraints,\n Dependencies = {},\n HasSchema extends boolean = false,\n MethodYielded = never,\n Name extends string = string,\n> = YieldableReactiveProperties<\n AsyncProcessRef<\n StripCraftException<State>,\n ArgParams,\n StripCraftException<Params>,\n BrandReactiveProperties<Insertions>,\n [unknown] extends [ArgParams]\n ? [unknown] extends [SourceParams]\n ? 'params'\n : false\n : true, // ! force to method to have one arg minimum, we can not compare SourceParams type, because it also infer Params\n SourceParams,\n GroupIdentifier,\n AsyncProcessExceptions,\n Dependencies,\n HasSchema,\n MethodYielded,\n Name\n >\n>;\n\ntype SchemaAsyncProcessConfig<\n MethodSchema extends CraftSchema,\n ParamsSchema extends CraftSchema,\n LoaderSchema extends CraftSchema,\n> = {\n methodSchema: MethodSchema;\n paramsSchema: ParamsSchema;\n loaderSchema: LoaderSchema;\n method: (args: SchemaOutput<MethodSchema>) => SchemaInput<ParamsSchema>;\n loader: (\n param: ResourceLoaderParams<SchemaOutput<ParamsSchema>>,\n ) => Promise<SchemaInput<LoaderSchema>> | SchemaInput<LoaderSchema>;\n [key: string]: unknown;\n};\n\nexport function asyncProcess<\n Name extends string,\n MethodSchema extends CraftSchema,\n ParamsSchema extends CraftSchema,\n LoaderSchema extends CraftSchema,\n>(\n name: Name,\n config: SchemaAsyncProcessConfig<MethodSchema, ParamsSchema, LoaderSchema>,\n): NamedCraftPrimitiveGen<\n Name,\n AsyncProcessOutput<\n SchemaOutput<LoaderSchema>,\n SchemaOutput<ParamsSchema>,\n SchemaInput<MethodSchema>,\n SchemaOutput<ParamsSchema>,\n unknown,\n {},\n AsyncProcessExceptionConstraints & { parse: SchemaParseExceptions },\n {},\n true,\n never,\n Name\n >\n>;\n\nexport function asyncProcess<\n Name extends string,\n MethodSchema extends CraftSchema,\n Params,\n State extends object | undefined,\n>(\n name: Name,\n config: {\n methodSchema: MethodSchema;\n method: (args: SchemaOutput<MethodSchema>) => Params;\n loader: (param: ResourceLoaderParams<Params>) => Promise<State> | State;\n [key: string]: unknown;\n },\n): NamedCraftPrimitiveGen<\n Name,\n AsyncProcessOutput<\n State,\n Params,\n SchemaInput<MethodSchema>,\n Params,\n unknown,\n {},\n AsyncProcessExceptionConstraints & { parse: SchemaParseExceptions },\n {},\n true,\n never,\n Name\n >\n>;\n\nexport function asyncProcess<\n Name extends string,\n ParamsSchema extends CraftSchema,\n ParamsState extends object | undefined,\n>(\n name: Name,\n config: {\n paramsSchema: ParamsSchema;\n params: () => SchemaInput<ParamsSchema>;\n loader: (\n param: ResourceLoaderParams<SchemaOutput<ParamsSchema>>,\n ) => Promise<ParamsState> | ParamsState;\n [key: string]: unknown;\n },\n): NamedCraftPrimitiveGen<\n Name,\n AsyncProcessOutput<\n ParamsState,\n SchemaOutput<ParamsSchema>,\n unknown,\n SchemaOutput<ParamsSchema>,\n unknown,\n {},\n AsyncProcessExceptionConstraints & { parse: SchemaParseExceptions },\n {},\n true,\n never,\n Name\n >\n>;\n\nexport function asyncProcess<\n Name extends string,\n LoaderSchema extends CraftSchema,\n LoaderParams,\n>(\n name: Name,\n config: {\n loaderSchema: LoaderSchema;\n params: () => LoaderParams;\n loader: (\n param: ResourceLoaderParams<LoaderParams>,\n ) => Promise<SchemaInput<LoaderSchema>> | SchemaInput<LoaderSchema>;\n [key: string]: unknown;\n },\n): NamedCraftPrimitiveGen<\n Name,\n AsyncProcessOutput<\n SchemaOutput<LoaderSchema>,\n LoaderParams,\n unknown,\n LoaderParams,\n unknown,\n {},\n AsyncProcessExceptionConstraints & { parse: SchemaParseExceptions },\n {},\n true,\n never,\n Name\n >\n>;\n\n/**\n * Creates an async method that manages asynchronous operations with automatic state tracking.\n *\n * This function creates a reactive async operation by:\n * - Managing loading, resolved, exception, and idle states automatically\n * - Supporting both method-based (manual) and source-based (automatic) triggering\n * - Enabling parallel execution with identifiers\n * - Providing signals for value, status, exceptions, and loading state\n * - Supporting streaming data with progressive updates\n * - Enabling custom insertions for extending functionality\n *\n * @remarks\n * **Trigger Patterns:**\n * - **Method-based**: Explicit `method` function returns params, called manually\n * - **Source-based**: Bound to a source using `afterRecomputation()`, triggers automatically\n *\n * **Use Cases:**\n * - **Debounced operations**: Search, validation with delay\n * - **Background tasks**: Processing without blocking UI\n * - **Polling**: Periodic data updates\n *\n * **State Management:**\n * - `idle`: Initial state, no operation started\n * - `loading`: Operation in progress\n * - `resolved`: Operation completed successfully\n * - `exception`: A `craftException` was returned by the method/loader (technical\n * errors are left to throw and are not part of the craft status)\n *\n * **Identifier Usage:**\n * - Without identifier: Single global state for the async method\n * - With identifier: Multiple parallel instances with independent states\n *\n * **Insertions:**\n * - Extend functionality with custom insertions\n * - Examples: persistence, caching, retry logic\n * - Insertions receive access to resource state and params\n *\n * @template AsyncProcesstate - The type of data returned by the async operation\n * @template AsyncProcessParams - The type of params passed to the loader\n * @template AsyncProcessArgsParams - The type of arguments for the method function\n * @template SourceParams - The type emitted by the source (for source-based methods)\n * @template GroupIdentifier - The type of identifier for parallel execution\n *\n * @param name - The async process name. Used to key the returned record\n * (`const loadUser = yield* asyncProcess('loadUser', config)`) and as the\n * injector host tag (`asyncProcess:loadUser`), so the primitive is precisely\n * locatable in snapshots and logs.\n * @param AsyncProcessConfig - Configuration object:\n * - `method`: Function returning params OR source for automatic triggering\n * - `loader`: Async function that performs the operation (mutually exclusive with `stream`)\n * - `stream`: Streaming loader for progressive updates (mutually exclusive with `loader`)\n * - `identifier`: Optional function to derive unique ID for parallel execution\n * - `preservePreviousValue`: Optional function returning whether to keep the previous value while loading (default: false)\n *\n * @returns A single-use primitive generator resolving to an async method\n * reference with:\n * - `value`: Signal containing the result (or undefined)\n * - `status`: Signal with the craft state ('idle' | 'loading' | 'reloading' | 'resolved' | 'local' | 'exception')\n * - `exception`: Signal with the primary `craftException` (or undefined)\n * - `exceptions`: Signal with the captured exceptions (`list` / `params` / `loader`)\n * - `hasException()`: Signal indicating whether an exception is captured\n * - `isLoading`: Signal for loading state\n * - `hasValue()`: Function to check if value exists\n * - `method`: (method-based only) Function to trigger the operation\n * - `source`: (source-based only) Readonly source for automatic triggering\n * - `select(id)`: (with identifier) Access individual instance by ID\n * - `selectOrCreate(id)`: (with identifier) Access or create an individual instance\n *\n * Consume it with `yield*` inside a generator host (craftService factory,\n * craftGen, …) or with `craftUse(...)` elsewhere (typically a component field).\n *\n * @example\n * Basic method-based async method\n * ```ts\n * const delay = craftUse(asyncProcess('delay', {\n * method: (delay: number) => delay,\n * loader: async ({ params }) => {\n * await new Promise(resolve => setTimeout(resolve, 500)); // Simulate delay\n * return 'done';\n * },\n * }));\n *\n * // Trigger manually\n * delay.method(500);\n *\n * // Track state\n * console.log(delay.status()); // 'loading'\n * console.log(delay.isLoading()); // true\n *\n * // After completion\n * console.log(delay.status()); // 'resolved'\n * console.log(delay.value()); // 'done'\n * console.log(delay.hasValue()); // true\n * ```\n *\n * @example\n * Source-based async method for automatic execution\n * ```ts\n * const delaySource = source<number>();\n *\n * const delay = craftUse(asyncProcess('delay', {\n * method: afterRecomputation(delaySource, (term) => term),\n * loader: async ({ params }) => {\n * // Debounce at source level\n * await new Promise(resolve => setTimeout(resolve, 300));\n * return 'done';\n * },\n * }));\n *\n * // Triggers automatically when source emits\n * delaySource.set(500);\n * // -> delay executes automatically\n *\n * // No manual method, only source\n * console.log(delay.source); // ReadonlySource<number>\n * console.log(delay.status()); // Current state\n * ```\n *\n * @example\n * Business exceptions with `craftException`\n * ```ts\n * import { asyncProcess, craftException } from '@craft-ts/core';\n *\n * const loadUser = craftUse(asyncProcess('loadUser', {\n * method: (value: string) =>\n * value.length < 3\n * ? craftException(\n * { code: 'SEARCH_TERM_TOO_SHORT' },\n * { min: 3, received: value.length },\n * )\n * : value,\n * loader: async ({ params }) =>\n * params === 'blocked'\n * ? craftException(\n * { code: 'USER_ACCESS_FORBIDDEN' },\n * { id: params },\n * )\n * : { id: params, name: 'John Doe' },\n * }));\n *\n * loadUser.method('ab');\n * console.log(loadUser.hasException()); // true\n * console.log(loadUser.exceptions().params?.SEARCH_TERM_TOO_SHORT);\n *\n * loadUser.method('blocked');\n * console.log(loadUser.exceptions().loader?.USER_ACCESS_FORBIDDEN);\n * ```\n *\n * @example\n * Async method with identifier for parallel operations\n * ```ts\n * const delayById = craftUse(asyncProcess('delayById', {\n * method: (id: string) => id,\n * identifier: (id) => id,\n * loader: async () => {\n * await new Promise(resolve => setTimeout(resolve, 300));\n * return 'done'; // Simulate delay\n * },\n * }));\n *\n * delayById.method('id1');\n * delayById.method('id2');\n * delayById.method('id3');\n *\n * // Access individual states\n * const delay1 = delayById.select('id1');\n * console.log(delay1?.status()); // 'loading' or 'resolved'\n * console.log(delay1?.value()); // 'done'\n *\n * const delay2 = delayById.select('id2');\n * console.log(delay2?.status()); // Independent state\n * ```\n *\n * @example\n * Calling async js native API\n * ```ts\n * const shareContent = craftUse(asyncProcess('shareContent', {\n * method: (payload: { title: string, url: string }) => payload,\n * loader: async ({ params }) => {\n * return navigator.share(params);\n * },\n * }, ({resource}) => ({isMenuOpen: computed(() => resource.status() === 'loading')} )));\n *\n * // Trigger shareContent\n * shareContent.method({ title: 'Hello AI!', url: 'https://example.com' });\n * shareContent.isMenuOpen(); // true while loading\n *\n * ```\n */\nexport function asyncProcess<\n Name extends string,\n AsyncProcesstate extends object | undefined,\n AsyncProcessParams,\n AsyncProcessArgsParams,\n SourceParams,\n GroupIdentifier,\n ParamsYielded = never,\n MethodYielded = never,\n LoaderYielded = never,\n StreamYielded = never,\n Config = {},\n Providers extends readonly Provider[] = Config extends {\n readonly providers: infer P extends readonly Provider[];\n }\n ? P\n : never[],\n Exceptions extends AsyncProcessExceptionConstraints = {\n params: ExtractCraftException<AsyncProcessParams>;\n loader:\n | ExtractCraftException<AsyncProcesstate>\n | Extract<ExtractCraftGenExceptions<LoaderYielded>, AnyCraftException>;\n },\n>(\n name: Name,\n AsyncProcessConfig: AsyncProcessConfig<\n AsyncProcesstate,\n AsyncProcessParams,\n AsyncProcessArgsParams,\n SourceParams,\n GroupIdentifier,\n ParamsYielded,\n MethodYielded,\n LoaderYielded,\n StreamYielded\n > &\n Config,\n): NamedCraftPrimitiveGen<\n Name,\n AsyncProcessOutput<\n StripCraftException<AsyncProcesstate>,\n StripCraftException<AsyncProcessParams>,\n AsyncProcessArgsParams,\n SourceParams,\n GroupIdentifier,\n {},\n Exceptions,\n AsyncProcessTrackedDependencies<\n ParamsYielded,\n MethodYielded,\n LoaderYielded,\n StreamYielded,\n never,\n Providers\n >,\n false,\n MethodYielded,\n Name\n >\n>;\nexport function asyncProcess<\n Name extends string,\n AsyncProcesstate extends object | undefined,\n AsyncProcessParams,\n AsyncProcessArgsParams,\n SourceParams,\n GroupIdentifier,\n Insertion1,\n ParamsYielded = never,\n MethodYielded = never,\n LoaderYielded = never,\n StreamYielded = never,\n Insertion1Yielded = never,\n Config = {},\n Providers extends readonly Provider[] = Config extends {\n readonly providers: infer P extends readonly Provider[];\n }\n ? P\n : never[],\n Exceptions extends AsyncProcessExceptionConstraints = {\n params: ExtractCraftException<AsyncProcessParams>;\n loader:\n | ExtractCraftException<AsyncProcesstate>\n | Extract<ExtractCraftGenExceptions<LoaderYielded>, AnyCraftException>;\n },\n>(\n name: Name,\n AsyncProcessConfig: AsyncProcessConfig<\n AsyncProcesstate,\n AsyncProcessParams,\n AsyncProcessArgsParams,\n SourceParams,\n GroupIdentifier,\n ParamsYielded,\n MethodYielded,\n LoaderYielded,\n StreamYielded\n > &\n Config,\n insertion1: InsertionsResourcesFactory<\n NoInfer<GroupIdentifier>,\n NoInfer<StripCraftException<AsyncProcesstate>>,\n NoInfer<StripCraftException<AsyncProcessParams>>,\n NoInfer<Exceptions>,\n Insertion1,\n {},\n Insertion1Yielded,\n Name\n >,\n): NamedCraftPrimitiveGen<\n Name,\n AsyncProcessOutput<\n StripCraftException<AsyncProcesstate>,\n StripCraftException<AsyncProcessParams>,\n AsyncProcessArgsParams,\n SourceParams,\n GroupIdentifier,\n Insertion1,\n Exceptions,\n AsyncProcessTrackedDependencies<\n ParamsYielded,\n MethodYielded,\n LoaderYielded,\n StreamYielded,\n Insertion1Yielded,\n Providers,\n Insertion1\n >,\n false,\n MethodYielded,\n Name\n >\n>;\n\nexport function asyncProcess(\n name: string,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n AsyncProcessConfig: any,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ...insertions: any[]\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n): any {\n return createNamedPrimitiveGen(\n name,\n createAsyncProcessRef(name, AsyncProcessConfig, ...insertions),\n );\n}\n\nfunction createAsyncProcessRef<\n AsyncProcesstate extends object | undefined,\n AsyncProcessParams,\n AsyncProcessArgsParams,\n SourceParams,\n GroupIdentifier,\n ParamsYielded = never,\n MethodYielded = never,\n LoaderYielded = never,\n StreamYielded = never,\n Config = {},\n Providers extends readonly Provider[] = Config extends {\n readonly providers: infer P extends readonly Provider[];\n }\n ? P\n : never[],\n Exceptions extends AsyncProcessExceptionConstraints = {\n params: ExtractCraftException<AsyncProcessParams>;\n loader:\n | ExtractCraftException<AsyncProcesstate>\n | Extract<ExtractCraftGenExceptions<LoaderYielded>, AnyCraftException>;\n },\n>(\n name: string,\n AsyncProcessConfig: AsyncProcessConfig<\n AsyncProcesstate,\n AsyncProcessParams,\n AsyncProcessArgsParams,\n SourceParams,\n GroupIdentifier,\n ParamsYielded,\n MethodYielded,\n LoaderYielded,\n StreamYielded\n > & { providers?: readonly Provider[] },\n ...insertions: any[]\n): AsyncProcessOutput<\n AsyncProcesstate,\n AsyncProcessParams,\n AsyncProcessArgsParams,\n SourceParams,\n GroupIdentifier,\n {},\n Exceptions,\n {},\n false,\n MethodYielded\n> {\n const insertionSnapshotRegistry = new InsertionSnapshotRegistry();\n const asyncExtraProviders = [\n {\n provide: INSERTION_SNAPSHOT_REGISTRY,\n useValue: insertionSnapshotRegistry,\n },\n ...(AsyncProcessConfig.providers ?? []),\n ];\n let injector: Injector | undefined;\n if (\n [\n 'params' in AsyncProcessConfig ? AsyncProcessConfig.params : undefined,\n 'method' in AsyncProcessConfig ? AsyncProcessConfig.method : undefined,\n 'loader' in AsyncProcessConfig ? AsyncProcessConfig.loader : undefined,\n 'stream' in AsyncProcessConfig ? AsyncProcessConfig.stream : undefined,\n ...insertions,\n ].some((value) => isGeneratorFunction(value))\n ) {\n assertInInjectionContext(asyncProcess);\n injector = ɵcreateHostTaggedInjector(\n inject(Injector),\n `asyncProcess:${name}`,\n asyncExtraProviders,\n );\n }\n\n const getInjector = () => {\n if (!injector) {\n assertInInjectionContext(asyncProcess);\n injector = ɵcreateHostTaggedInjector(\n inject(Injector),\n `asyncProcess:${name}`,\n asyncExtraProviders,\n );\n }\n\n return injector;\n };\n\n const AsyncProcessResourceParamsFnSignal = signal<\n AsyncProcessParams | undefined\n >(undefined);\n\n // Incremented on every explicit method call so the resource request always\n // changes, forcing the loader to re-run even when the method returns the same\n // value or `undefined`. Starts at 0 = \"never called\" to preserve idle.\n const methodTriggerSeq = signal(0);\n\n const hasParamsFn =\n 'params' in AsyncProcessConfig &&\n typeof AsyncProcessConfig.params === 'function';\n const isConnectedToSource =\n !hasParamsFn && isSource(AsyncProcessConfig.method);\n const hasMethodFn =\n !hasParamsFn &&\n typeof AsyncProcessConfig.method === 'function' &&\n !isSignal(AsyncProcessConfig.method);\n\n const isUsingIdentifier = 'identifier' in AsyncProcessConfig;\n\n const methodParamsException = signal<AnyCraftException | undefined>(\n undefined,\n );\n const schemaParseExceptions = signal<Record<string, AnyCraftException>>({});\n const configuredSchemas = {\n method: AsyncProcessConfig.methodSchema as CraftSchema | undefined,\n params: AsyncProcessConfig.paramsSchema as CraftSchema | undefined,\n loader: AsyncProcessConfig.loaderSchema as CraftSchema | undefined,\n };\n const hasConfiguredSchema = Object.values(configuredSchemas).some(Boolean);\n const setSchemaException = (\n stage: string,\n exception: AnyCraftException | undefined,\n ) => {\n untracked(() => {\n schemaParseExceptions.update((current) => {\n const next = { ...current };\n if (exception) next[stage] = exception;\n else delete next[stage];\n return next;\n });\n });\n };\n const schemaPolicy = useSchemaValidationPolicy(\n getInjector(),\n AsyncProcessConfig.schemaValidationPolicy as\n | SchemaValidationPolicy\n | undefined,\n );\n const schemaValidation = {\n method: createSchemaValidationRuntime({\n schema: configuredSchemas.method,\n primitive: 'asyncProcess',\n name,\n policy: schemaPolicy,\n setException: setSchemaException,\n }),\n params: createSchemaValidationRuntime({\n schema: configuredSchemas.params,\n primitive: 'asyncProcess',\n name,\n policy: schemaPolicy,\n setException: setSchemaException,\n }),\n loader: createSchemaValidationRuntime({\n schema: configuredSchemas.loader,\n primitive: 'asyncProcess',\n name,\n policy: schemaPolicy,\n setException: setSchemaException,\n }),\n };\n const schemaParse = computed(() => {\n const values = schemaParseExceptions();\n return {\n ...(values['method'] ? { method: values['method'] } : {}),\n ...(values['params'] ? { params: values['params'] } : {}),\n ...(values['loader'] ? { loader: values['loader'] } : {}),\n };\n });\n\n const getIdentifierFromParams = (params: unknown): string | undefined => {\n if (!isUsingIdentifier || !('identifier' in AsyncProcessConfig)) {\n return undefined;\n }\n\n if (params === undefined || params === null) {\n return undefined;\n }\n\n return AsyncProcessConfig.identifier?.(params as any) as string | undefined;\n };\n\n const sanitizeParamsResult = (value: AsyncProcessParams | undefined) => {\n if (isCraftException(value)) {\n return undefined;\n }\n\n return value;\n };\n\n const reactiveParamsException = computed(() => {\n if (hasMethodFn) {\n return undefined;\n }\n const schemaParamsException = schemaParseExceptions()['params'];\n if (schemaParamsException) {\n return enrichResourceException(schemaParamsException, {\n scope: 'params',\n });\n }\n\n if (hasParamsFn) {\n const paramsValue = executeGeneratorCompatibleFactory({\n factory: (AsyncProcessConfig as { params: () => AsyncProcessParams })\n .params,\n thisArg: undefined,\n getInjector,\n args: [],\n invalidYieldErrorMessage: ASYNC_PROCESS_INVALID_YIELD_ERROR_MESSAGE,\n multipleAppStartErrorMessage: ASYNC_PROCESS_APP_START_ERROR_MESSAGE,\n onAppStartNotSupportedErrorMessage:\n ASYNC_PROCESS_APP_START_ERROR_MESSAGE,\n });\n return isCraftException(paramsValue)\n ? enrichResourceException(paramsValue, { scope: 'params' })\n : undefined;\n }\n\n if (isConnectedToSource) {\n const sourceValue = (\n AsyncProcessConfig.method as unknown as Signal<\n AsyncProcessParams | undefined\n >\n )();\n return isCraftException(sourceValue)\n ? enrichResourceException(sourceValue, { scope: 'params' })\n : undefined;\n }\n\n return undefined;\n });\n\n const paramsException = computed(() => {\n return hasMethodFn ? methodParamsException() : reactiveParamsException();\n });\n\n const {\n setLoaderException,\n exceptions,\n hasException,\n createSelectExceptions,\n createSelectHasException,\n } = createResourceExceptionsRuntime({\n isUsingIdentifier,\n paramsException,\n });\n\n const wrappedSourceParams = isConnectedToSource\n ? ((() => {\n const value = sanitizeParamsResult(\n (\n AsyncProcessConfig.method as unknown as Signal<\n AsyncProcessParams | undefined\n >\n )(),\n );\n if (!configuredSchemas.params || isCraftException(value)) return value;\n const parsed = schemaValidation.params.parseSync<AsyncProcessParams>(\n value,\n 'params',\n 'source',\n );\n return parsed.accepted ? parsed.value : undefined;\n }) as Signal<AsyncProcessParams | undefined>)\n : undefined;\n\n const wrappedParamsFn = hasParamsFn\n ? ((() => {\n const value = executeGeneratorCompatibleFactory({\n factory: (\n AsyncProcessConfig as {\n params: () => AsyncProcessParams;\n }\n ).params,\n thisArg: undefined,\n getInjector,\n args: [],\n invalidYieldErrorMessage: ASYNC_PROCESS_INVALID_YIELD_ERROR_MESSAGE,\n multipleAppStartErrorMessage: ASYNC_PROCESS_APP_START_ERROR_MESSAGE,\n onAppStartNotSupportedErrorMessage:\n ASYNC_PROCESS_APP_START_ERROR_MESSAGE,\n }) as AsyncProcessParams;\n if (!configuredSchemas.params || isCraftException(value)) {\n return sanitizeParamsResult(value);\n }\n const parsed = schemaValidation.params.parseSync<AsyncProcessParams>(\n value,\n 'params',\n 'params',\n );\n return parsed.accepted ? parsed.value : undefined;\n }) as () => AsyncProcessParams | undefined)\n : undefined;\n\n const wrappedLoader =\n 'loader' in AsyncProcessConfig && AsyncProcessConfig.loader\n ? ((async (param: ResourceLoaderParams<any>) => {\n const injector = getInjector();\n const correlationSvc = injector.get(CORRELATION_ID_SERVICE, null);\n const operationId = correlationSvc?.lastCorrelationId() ?? null;\n if (operationId) correlationSvc?.startOperation(operationId);\n\n // Unwrap the method-trigger nonce so the user loader and identifier logic\n // only ever see plain params (no-op for source / params-fn / byId modes).\n const rawParams = unwrapMethodParams(param.params);\n const loaderParam = { ...param, params: rawParams };\n\n try {\n const step = await executeGeneratorCompatibleFactoryAsync({\n factory: AsyncProcessConfig.loader as (\n param: ResourceLoaderParams<any>,\n ) => Promise<any>,\n thisArg: undefined,\n getInjector,\n args: [loaderParam],\n invalidYieldErrorMessage:\n ASYNC_PROCESS_INVALID_YIELD_ERROR_MESSAGE,\n appStartNotSupportedErrorMessage:\n ASYNC_PROCESS_APP_START_ERROR_MESSAGE,\n });\n\n if (step.kind === 'shortCircuit') {\n const exceptionId = getIdentifierFromParams(rawParams);\n setLoaderException(\n enrichResourceException(step.exception, {\n scope: 'loader',\n identifier: exceptionId,\n }),\n exceptionId,\n );\n return undefined;\n }\n\n const result = step.value;\n\n if (isCraftException(result)) {\n const exceptionId = getIdentifierFromParams(rawParams);\n setLoaderException(\n enrichResourceException(result, {\n scope: 'loader',\n identifier: exceptionId,\n }),\n exceptionId,\n );\n return undefined;\n }\n\n let validatedResult = result;\n if (configuredSchemas.loader) {\n const parsed = await schemaValidation.loader.parseAsync<any>(\n result,\n 'loader',\n 'loader',\n getIdentifierFromParams(rawParams),\n );\n if (!parsed.accepted) {\n const exceptionId = getIdentifierFromParams(rawParams);\n setLoaderException(\n enrichResourceException(parsed.exception, {\n scope: 'loader',\n identifier: exceptionId,\n }),\n exceptionId,\n );\n return undefined;\n }\n validatedResult = parsed.value;\n }\n\n const successId = getIdentifierFromParams(rawParams);\n setLoaderException(undefined, successId);\n return validatedResult;\n } catch (error) {\n if (!isCraftException(error)) {\n injector.get(TAKE_APP_SNAPSHOT, null)?.();\n }\n throw error;\n } finally {\n if (operationId) correlationSvc?.endOperation(operationId);\n }\n }) as typeof AsyncProcessConfig.loader)\n : undefined;\n\n const wrappedStream =\n 'stream' in AsyncProcessConfig && AsyncProcessConfig.stream\n ? (((...args: unknown[]) => {\n const result = executeGeneratorCompatibleFactory({\n factory: AsyncProcessConfig.stream as (\n ...args: unknown[]\n ) => unknown,\n thisArg: undefined,\n getInjector,\n args,\n invalidYieldErrorMessage: ASYNC_PROCESS_INVALID_YIELD_ERROR_MESSAGE,\n multipleAppStartErrorMessage: ASYNC_PROCESS_APP_START_ERROR_MESSAGE,\n onAppStartNotSupportedErrorMessage:\n ASYNC_PROCESS_APP_START_ERROR_MESSAGE,\n });\n const wrapStreamSignal = (streamSignal: unknown) => {\n if (!configuredSchemas.loader || !isSignal(streamSignal)) {\n return streamSignal;\n }\n let lastValue: unknown;\n return computed(() => {\n const streamItem = (streamSignal as Signal<unknown>)();\n if (\n streamItem &&\n typeof streamItem === 'object' &&\n 'error' in streamItem\n ) {\n return streamItem;\n }\n const rawValue =\n streamItem &&\n typeof streamItem === 'object' &&\n 'value' in streamItem\n ? streamItem.value\n : streamItem;\n const parsed = schemaValidation.loader.parseSync<unknown>(\n rawValue,\n 'loader',\n 'stream',\n );\n if (!parsed.accepted) {\n return lastValue === undefined\n ? undefined\n : { value: lastValue };\n }\n lastValue = parsed.value;\n return { value: lastValue };\n });\n };\n if (\n result &&\n typeof (result as Promise<unknown>).then === 'function'\n ) {\n return Promise.resolve(result).then(wrapStreamSignal);\n }\n return wrapStreamSignal(result);\n }) as typeof AsyncProcessConfig.stream)\n : undefined;\n\n const resourceParamsSrc = isConnectedToSource\n ? (wrappedSourceParams as typeof AsyncProcessConfig.method)\n : hasParamsFn\n ? wrappedParamsFn\n : AsyncProcessResourceParamsFnSignal;\n\n // Method-based, non-grouped: feed the resource a nonce-tagged request so every\n // explicit call re-runs the loader (even for identical / `undefined` params),\n // while `resourceParamsSrc` stays the raw signal for all public consumers.\n const usesMethodParamsSignal = !isConnectedToSource && !hasParamsFn;\n const methodTaggedParams = computed(() => {\n const seq = methodTriggerSeq();\n if (seq === 0) return undefined; // idle until the first call\n return wrapMethodParams(AsyncProcessResourceParamsFnSignal(), seq);\n });\n\n const asyncProcessResourceOptions = {\n ...AsyncProcessConfig,\n params: usesMethodParamsSignal\n ? (methodTaggedParams as unknown as typeof resourceParamsSrc)\n : resourceParamsSrc,\n equal: usesMethodParamsSignal\n ? methodParamsWrapperEqual(\n (AsyncProcessConfig as { equal?: (a: any, b: any) => boolean }).equal,\n )\n : (AsyncProcessConfig as { equal?: (a: any, b: any) => boolean }).equal,\n loader: wrappedLoader,\n stream: wrappedStream,\n } as ResourceOptions<any, any>;\n\n const resourceTarget = isUsingIdentifier\n ? resourceById<\n AsyncProcesstate,\n AsyncProcessParams,\n GroupIdentifier & string,\n string,\n unknown,\n unknown\n >({\n ...AsyncProcessConfig,\n params: resourceParamsSrc,\n loader: wrappedLoader,\n stream: wrappedStream,\n identifier: AsyncProcessConfig.identifier,\n } as any)\n : AsyncProcessConfig.preservePreviousValue?.()\n ? preservedResource<AsyncProcesstate, AsyncProcessParams>(\n asyncProcessResourceOptions,\n )\n : craftResource<AsyncProcesstate, AsyncProcessParams>(\n asyncProcessResourceOptions,\n );\n\n if (configuredSchemas.loader) {\n const target = resourceTarget as any;\n const originalResourceSet = target.set.bind(target);\n const originalResourceUpdate = target.update.bind(target);\n target.set = (value: unknown) => {\n const parsed = schemaValidation.loader.parseSync<unknown>(\n value,\n 'loader',\n 'set',\n );\n if (parsed.accepted) originalResourceSet(parsed.value);\n };\n target.update = (updateFn: (current: unknown) => unknown) =>\n originalResourceUpdate((current: unknown) => {\n const parsed = schemaValidation.loader.parseSync<unknown>(\n updateFn(current),\n 'loader',\n 'update',\n );\n return parsed.accepted ? parsed.value : current;\n });\n }\n\n runInInjectionContext(getInjector(), () =>\n ɵobservePrimitiveResourceRuntimeContext(\n isUsingIdentifier\n ? ɵcreatePrimitiveResourceByIdRuntimeContext(\n 'asyncProcess',\n resourceTarget as any,\n )\n : ɵcreatePrimitiveResourceRuntimeContext(\n 'asyncProcess',\n resourceTarget as any,\n ),\n name,\n ),\n );\n\n // Capture the raw Angular status BEFORE `Object.assign` overrides\n // `resourceTarget.status` with the craft computed (avoids a computation cycle).\n const rawResourceStatus = (\n resourceTarget as CraftResourceRef<AsyncProcesstate, AsyncProcessParams>\n ).status;\n const publicExceptions = hasConfiguredSchema\n ? computed(() => ({ ...exceptions(), parse: schemaParse() }))\n : exceptions;\n\n const asyncOutput = Object.assign(\n resourceTarget,\n // byId is used to helps TS to correctly infer the resourceByGroup\n isUsingIdentifier\n ? {\n /**\n * Only added to help TS inference (TS cannot infer ResourceByIdHandler without erasing the signal getter, () => ResourceByIdRef<...>) )\n */\n _resourceById: resourceTarget as ResourceByIdRef<\n GroupIdentifier & string,\n AsyncProcesstate,\n AsyncProcessParams\n >,\n select: (id: GroupIdentifier) => {\n const selectExceptions = createSelectExceptions(\n id as unknown as string,\n );\n const selectHasException = createSelectHasException(\n id as unknown as string,\n );\n\n return computed(() => {\n const list = (\n resourceTarget as ResourceByIdRef<\n GroupIdentifier & string,\n AsyncProcesstate,\n AsyncProcessParams\n >\n )();\n //@ts-expect-error GroupIdentifier & string is not recognized correctly\n const resource = list[id];\n if (!resource) {\n return undefined;\n }\n\n const rawSelectStatus = resource.status;\n const result = Object.assign(resource, {\n status: computed(() =>\n toCraftStatus(rawSelectStatus(), selectHasException()),\n ),\n exception: computed(() => selectExceptions().list[0]),\n hasException: selectHasException,\n hasSchema: signal(hasConfiguredSchema),\n exceptions: hasConfiguredSchema\n ? computed(() => ({\n ...selectExceptions(),\n parse: schemaParse(),\n }))\n : selectExceptions,\n });\n attachCraftSettledValue(name, result);\n return result;\n })();\n },\n selectOrCreate: (id: GroupIdentifier) => {\n const selected = (\n resourceTarget as ResourceByIdRef<\n GroupIdentifier & string,\n AsyncProcesstate,\n AsyncProcessParams\n >\n ).addById(id as GroupIdentifier & string);\n const selectExceptions = createSelectExceptions(\n id as unknown as string,\n );\n const selectHasException = createSelectHasException(\n id as unknown as string,\n );\n const rawSelectStatus = selected.status;\n const result = Object.assign(selected, {\n status: computed(() =>\n toCraftStatus(rawSelectStatus(), selectHasException()),\n ),\n exception: computed(() => selectExceptions().list[0]),\n hasException: selectHasException,\n hasSchema: signal(hasConfiguredSchema),\n exceptions: hasConfiguredSchema\n ? computed(() => ({\n ...selectExceptions(),\n parse: schemaParse(),\n }))\n : selectExceptions,\n });\n attachCraftSettledValue(name, result);\n return result;\n },\n }\n : {},\n {\n ...(isUsingIdentifier\n ? {}\n : {\n status: computed(() =>\n toCraftStatus(rawResourceStatus(), hasException()),\n ),\n exception: computed(() => exceptions().list[0]),\n }),\n hasException,\n hasSchema: signal(hasConfiguredSchema),\n exceptions: publicExceptions,\n ...(hasParamsFn\n ? { resourceParamsSrc }\n : {\n method: isSignal(AsyncProcessConfig.method)\n ? undefined\n : (arg: AsyncProcessArgsParams) => {\n let methodArg: unknown = arg;\n if (configuredSchemas.method) {\n const parsedMethod =\n schemaValidation.method.parseSync<unknown>(\n arg,\n 'method',\n 'method',\n );\n if (!parsedMethod.accepted) {\n methodParamsException.set(\n enrichResourceException(parsedMethod.exception, {\n scope: 'params',\n }),\n );\n return yieldableInvocation<\n MethodYielded,\n AsyncProcessParams\n >(parsedMethod.exception as AsyncProcessParams);\n }\n methodArg = parsedMethod.value;\n }\n const result = executeGeneratorCompatibleFactory({\n factory: (\n AsyncProcessConfig as {\n method: (\n args: AsyncProcessArgsParams,\n ) => AsyncProcessParams;\n }\n ).method,\n thisArg: undefined,\n getInjector,\n args: [methodArg as AsyncProcessArgsParams],\n invalidYieldErrorMessage:\n ASYNC_PROCESS_INVALID_YIELD_ERROR_MESSAGE,\n multipleAppStartErrorMessage:\n ASYNC_PROCESS_APP_START_ERROR_MESSAGE,\n onAppStartNotSupportedErrorMessage:\n ASYNC_PROCESS_APP_START_ERROR_MESSAGE,\n });\n if (isCraftException(result)) {\n methodParamsException.set(\n enrichResourceException(result, { scope: 'params' }),\n );\n return yieldableInvocation<\n MethodYielded,\n AsyncProcessParams\n >(result as AsyncProcessParams);\n }\n\n let paramsResult = result as AsyncProcessParams;\n if (configuredSchemas.params) {\n const parsedParams =\n schemaValidation.params.parseSync<AsyncProcessParams>(\n result,\n 'params',\n 'method',\n );\n if (!parsedParams.accepted) {\n methodParamsException.set(\n enrichResourceException(parsedParams.exception, {\n scope: 'params',\n }),\n );\n return yieldableInvocation<\n MethodYielded,\n AsyncProcessParams\n >(parsedParams.exception as AsyncProcessParams);\n }\n paramsResult = parsedParams.value;\n }\n\n if (methodParamsException()) {\n methodParamsException.set(undefined);\n }\n\n if (isUsingIdentifier) {\n const id = AsyncProcessConfig.identifier?.(arg as any);\n (\n resourceTarget as ResourceByIdRef<\n GroupIdentifier & string,\n AsyncProcesstate,\n AsyncProcessParams\n >\n ).addById(id as GroupIdentifier & string);\n }\n // These two signals form one method request. Publish them as\n // one batch so the resource watch cannot start the loader\n // once for the nonce and once again for the params.\n craftBatch(() => {\n methodTriggerSeq.update((n) => n + 1);\n AsyncProcessResourceParamsFnSignal.set(paramsResult);\n });\n return yieldableInvocation<MethodYielded, AsyncProcessParams>(\n paramsResult,\n );\n },\n }),\n },\n ) as unknown as AsyncProcessOutput<\n AsyncProcesstate,\n AsyncProcessParams,\n AsyncProcessArgsParams,\n SourceParams,\n GroupIdentifier,\n {},\n Exceptions,\n {},\n false,\n MethodYielded\n >;\n\n if (!isUsingIdentifier) {\n attachCraftSettledValue(name, asyncOutput as object);\n }\n\n const publicAsyncContext = createYieldableReactiveFacade(asyncOutput, {\n name,\n primitive: 'asyncProcess',\n path: name,\n }) as any;\n\n const insertionSettledState = isUsingIdentifier\n ? createYieldableSettledValue(\n computed(() => {\n const params = craftUse(\n publicAsyncContext.resourceParamsSrc(),\n ) as any;\n if (params == null) throw new CraftNotSettled(name);\n const id = AsyncProcessConfig.identifier?.(params);\n if (id == null) throw new CraftNotSettled(name);\n const selected = publicAsyncContext.select(id);\n if (!selected) throw new CraftNotSettled(name);\n return craftUse(selected.settledValue());\n }),\n {\n primitive: 'asyncProcess',\n insertion: 'settledState',\n path: `${name}.settledState`,\n },\n )\n : createYieldableSettledValue(\n computed(() => craftUse(publicAsyncContext.settledValue())),\n {\n primitive: 'asyncProcess',\n insertion: 'settledState',\n path: `${name}.settledState`,\n },\n );\n\n const insertionsResult = (\n insertions as InsertionsResourcesFactory<\n NoInfer<GroupIdentifier>,\n NoInfer<StripCraftException<AsyncProcesstate>>,\n NoInfer<StripCraftException<AsyncProcessParams>>,\n AsyncProcessExceptionConstraints,\n {},\n {}\n >[]\n )?.reduce(\n (acc, insert) => {\n const rawResult = executeGeneratorCompatibleFactory({\n factory: insert as (context: unknown) => Record<string, unknown>,\n thisArg: undefined,\n getInjector,\n args: [\n {\n ...(isUsingIdentifier\n ? {\n resourceById: createYieldableReactiveFacade(resourceTarget, {\n name: 'resourceById',\n primitive: 'asyncProcess',\n path: `${name}.resourceById`,\n }),\n }\n : { resource: publicAsyncContext }),\n resourceParamsSrc: createYieldableReactiveFacade(\n resourceParamsSrc,\n {\n name: 'resourceParamsSrc',\n primitive: 'asyncProcess',\n path: `${name}.resourceParamsSrc`,\n },\n ),\n hasException: publicAsyncContext.hasException,\n exceptions: publicAsyncContext.exceptions,\n insertions: acc as {},\n state: createYieldableReactiveFacade(resourceTarget.state, {\n name: 'state',\n primitive: 'asyncProcess',\n path: `${name}.state`,\n }),\n settledState: insertionSettledState,\n set: (nextState: any) =>\n yieldableInvocation(resourceTarget.set(nextState)),\n update: (updateFn: (currentState: any) => any) =>\n yieldableInvocation(resourceTarget.update(updateFn)),\n patch: (patchFn: (currentState: any) => Partial<any>) =>\n yieldableInvocation(\n resourceTarget.update((current: any) => ({\n ...current,\n ...patchFn(current),\n })),\n ),\n __primitiveKind: 'asyncProcess',\n } as any,\n ],\n invalidYieldErrorMessage: ASYNC_PROCESS_INVALID_YIELD_ERROR_MESSAGE,\n multipleAppStartErrorMessage: ASYNC_PROCESS_APP_START_ERROR_MESSAGE,\n onAppStartNotSupportedErrorMessage:\n ASYNC_PROCESS_APP_START_ERROR_MESSAGE,\n });\n const wrappedResult = Object.entries(rawResult).reduce(\n (wrappedAcc, [key, value]) => {\n if (\n typeof value === 'function' &&\n !isSignal(value) &&\n !isYieldableReactiveValue(value) &&\n !isNonYieldableInsertionMethod(value)\n ) {\n const injector = getInjector();\n const methodInjector = ɵcreateHostTaggedInjector(\n injector,\n `method:${key}`,\n [\n ɵprovidePrimitiveMethodRuntimeContext(\n 'asyncProcess',\n {\n state: resourceTarget.state,\n set: resourceTarget.set,\n update: resourceTarget.update,\n patch: (patchFn) =>\n resourceTarget.update((current: any) => ({\n ...current,\n ...patchFn(current),\n })),\n },\n value as (...args: never[]) => unknown,\n ),\n ],\n );\n const wrappedFn = runInInjectionContext(methodInjector, () =>\n injectFnWrapper()(value as (...args: unknown[]) => unknown),\n );\n wrappedAcc[key] = createYieldableInsertionMethod(wrappedFn, {\n injector: methodInjector,\n invalidYieldErrorMessage:\n ASYNC_PROCESS_INVALID_YIELD_ERROR_MESSAGE,\n multipleAppStartErrorMessage:\n ASYNC_PROCESS_APP_START_ERROR_MESSAGE,\n onAppStartNotSupportedErrorMessage:\n ASYNC_PROCESS_APP_START_ERROR_MESSAGE,\n });\n } else {\n const namedValue = nameInsertedReactiveValue(\n value,\n key,\n 'asyncProcess',\n `${name}.${key}`,\n );\n wrappedAcc[key] = createYieldableReactiveFacade(namedValue, {\n name: key,\n primitive: 'asyncProcess',\n insertion: key,\n path: `${name}.${key}`,\n });\n }\n return wrappedAcc;\n },\n {} as Record<string, unknown>,\n );\n return { ...acc, ...wrappedResult };\n },\n {} as Record<string, unknown>,\n );\n\n Object.assign(asyncOutput, insertionsResult);\n\n const snapshotRegistry = injector\n ? injector.get(APP_SNAPSHOT_REGISTRY, null)\n : (() => {\n try {\n return inject(APP_SNAPSHOT_REGISTRY, { optional: true });\n } catch {\n return null;\n }\n })();\n\n const hostTagList: readonly string[] = injector\n ? (injector.get(ɵHOST_TAG_LIST, null) ?? [])\n : (() => {\n try {\n return inject(ɵHOST_TAG_LIST, { optional: true }) ?? [];\n } catch {\n return [];\n }\n })();\n\n const destroyRefAsync = injector\n ? injector.get(DestroyRef, null)\n : (() => {\n try {\n return inject(DestroyRef, { optional: true });\n } catch {\n return null;\n }\n })();\n\n if (snapshotRegistry && destroyRefAsync) {\n snapshotRegistry.triggerSnapshot$\n .pipe(takeUntilDestroyed(destroyRefAsync))\n .subscribe(() => {\n const insertionSnapshots = triggerAndCollectInsertions(\n insertionSnapshotRegistry,\n );\n let stateSnapshot: unknown;\n try {\n if (isUsingIdentifier) {\n const byId = (resourceTarget as any)();\n stateSnapshot = {\n params: AsyncProcessResourceParamsFnSignal(),\n resources: Object.entries(byId ?? {}).reduce(\n (acc, [id, res]: [string, any]) => {\n acc[id] = res?.state?.();\n return acc;\n },\n {} as Record<string, unknown>,\n ),\n ...(insertionSnapshots ? { insertions: insertionSnapshots } : {}),\n };\n } else {\n const resourceState = (asyncOutput as any).state();\n stateSnapshot = {\n params: AsyncProcessResourceParamsFnSignal(),\n ...resourceState,\n ...(insertionSnapshots ? { insertions: insertionSnapshots } : {}),\n };\n }\n } catch (error) {\n stateSnapshot = {\n error: error instanceof Error ? error.message : String(error),\n };\n }\n snapshotRegistry.allSnapShot$.next({\n source: 'asyncProcess',\n from: hostTagList,\n state: stateSnapshot,\n });\n });\n }\n\n if (!('resource' in asyncOutput)) {\n Object.defineProperty(asyncOutput, 'resource', {\n value: asyncOutput,\n enumerable: false,\n configurable: true,\n });\n }\n const publicAsyncProcess = createYieldableReactiveFacade(asyncOutput, {\n name,\n primitive: 'asyncProcess',\n path: name,\n });\n return (\n hasDeepYieldableInsertion(insertions)\n ? deepYieldable(publicAsyncProcess)\n : publicAsyncProcess\n ) as typeof asyncOutput;\n}\n"]}
@@ -0,0 +1,129 @@
1
+ import type { InputSignalWithTransform } from '../host/craft-compat';
2
+ import type { CompleteServiceDependencyMapFromYielded, ExtractServiceHelperDependencyMap, SERVICE_HELPER_DEPENDENCIES } from '../craft-service';
3
+ import type { CRAFT_SERVICE_PROVIDER_BRAND, MergeObjectUnion, RequirementScope, Simplify } from '../craft-service.shared';
4
+ export type AngularBrandDeps = {
5
+ injected?: readonly unknown[];
6
+ importDeps?: readonly unknown[];
7
+ providers?: readonly unknown[];
8
+ };
9
+ /**
10
+ * Type-only dependency metadata carried by functional Craft components and
11
+ * route fragments. The optional property never needs to exist at runtime.
12
+ */
13
+ export declare const CRAFT_COMPONENT_DEPS: unique symbol;
14
+ export type ComponentDepsCarrier<ComponentDeps extends object = object> = {
15
+ readonly [CRAFT_COMPONENT_DEPS]?: ComponentDeps;
16
+ };
17
+ /** Type-only exception contract carried by functional components and routes. */
18
+ export declare const CRAFT_COMPONENT_EXCEPTIONS: unique symbol;
19
+ export type ComponentExceptionsCarrier<Exceptions extends string = string> = {
20
+ readonly [CRAFT_COMPONENT_EXCEPTIONS]?: Exceptions;
21
+ };
22
+ type NarrowComponentExceptions<Exceptions> = [Exceptions] extends [string] ? string extends Exceptions ? never : Exceptions : never;
23
+ export type ComponentExceptionsOf<Value> = Value extends object ? typeof CRAFT_COMPONENT_EXCEPTIONS extends keyof Value ? Value extends ComponentExceptionsCarrier<infer Exceptions> ? NarrowComponentExceptions<Exceptions> : never : never : never;
24
+ export type ComponentDepsOf<Value> = Value extends {
25
+ readonly [CRAFT_COMPONENT_DEPS]?: infer ComponentDeps extends object;
26
+ } ? typeof CRAFT_COMPONENT_DEPS extends keyof Value ? ComponentDeps : {} : {};
27
+ type ExtractPublicInstance<Component> = Component extends abstract new (...args: unknown[]) => infer Instance ? Instance : Component;
28
+ type ToPublicSignalType<T> = T extends InputSignalWithTransform<infer ReadT, any> ? () => ReadT : T;
29
+ type InputSignalPropertyKeys<Instance> = Extract<{
30
+ [K in keyof Instance]: Instance[K] extends InputSignalWithTransform<any, any> ? K : never;
31
+ }[keyof Instance], string>;
32
+ export type GetPublicComponentProperties<Component> = ExtractPublicInstance<Component> extends object ? Simplify<{
33
+ [K in InputSignalPropertyKeys<ExtractPublicInstance<Component>>]: ToPublicSignalType<ExtractPublicInstance<Component>[K]>;
34
+ }> : never;
35
+ export type DerivedService<Service, Tracking extends object> = Simplify<Omit<Service, 'usesWholeService' | 'derivedPropertiesUsed' | 'derivedPropertiesExposed'> & Tracking>;
36
+ type GetDepsMap<Input> = Input extends {
37
+ deps: infer Deps extends object;
38
+ } ? Deps : {};
39
+ type GetPropertiesDepsMap<Input> = Input extends {
40
+ propertiesDeps: infer PropertiesDeps extends object;
41
+ } ? PropertiesDeps : {};
42
+ type GetProvidedMap<Input> = Input extends {
43
+ provided: infer Provided extends object;
44
+ } ? Provided : {};
45
+ type GetExplicitMissingProviderMap<Input> = Input extends {
46
+ missingProvider: infer MissingProvider extends object;
47
+ } ? MissingProvider : {};
48
+ type DependencyChildren<Node> = Node extends {
49
+ dependencies: infer Dependencies extends object;
50
+ } ? Dependencies : {};
51
+ type DependencyScope<Node> = Node extends {
52
+ providedIn: infer Scope;
53
+ } ? Scope : never;
54
+ type IsRequirementScopedServiceDependency<Dependency> = [
55
+ DependencyScope<Dependency>
56
+ ] extends [never] ? false : DependencyScope<Dependency> extends RequirementScope ? true : false;
57
+ type IsComponentGenDepsDependency<Dependency> = Dependency extends {
58
+ deps: infer _Deps extends object;
59
+ provided: infer _Provided extends object;
60
+ } ? true : false;
61
+ type IsTrackedDependencyNode<Dependency> = Dependency extends {
62
+ providedIn: infer _Scope;
63
+ dependencies: infer _Dependencies extends object;
64
+ } ? true : false;
65
+ type ExtractHelperMetadata<Value> = Value extends {
66
+ readonly [SERVICE_HELPER_DEPENDENCIES]?: infer Metadata;
67
+ } ? Metadata : never;
68
+ type NormalizeExtractedDeps<Value> = [
69
+ ExtractServiceHelperDependencyMap<Value>
70
+ ] extends [never] ? Value extends object ? [ExtractHelperMetadata<Value>] extends [never] ? IsComponentGenDepsDependency<Value> extends true ? GetDepsMap<Value> : IsTrackedDependencyNode<Value> extends true ? {} : {} : ExtractHelperMetadata<Value> extends object ? ExtractHelperMetadata<Value> : {} : {} : ExtractServiceHelperDependencyMap<Value>;
71
+ export type ExtractDeps<Value> = Simplify<NormalizeExtractedDeps<Value>>;
72
+ type ComponentProviderNames<Providers> = Providers extends readonly (infer Provider)[] ? ComponentProviderNames<Provider> : Providers extends {
73
+ readonly [CRAFT_SERVICE_PROVIDER_BRAND]?: infer Metadata;
74
+ } ? Metadata extends {
75
+ name: infer Name extends string;
76
+ } ? Name : never : never;
77
+ type ComponentProvidedMap<Providers> = {
78
+ [Name in ComponentProviderNames<Providers>]: true;
79
+ };
80
+ type ComponentTrackedContextValue<Context extends object> = {
81
+ [Key in keyof Context]: Context[Key] extends object ? typeof SERVICE_HELPER_DEPENDENCIES extends keyof Context[Key] ? Context[Key] : never : never;
82
+ }[keyof Context];
83
+ type ComponentContextDeps<Context> = Context extends object ? MergeObjectUnion<ExtractDeps<ComponentTrackedContextValue<Context>>> extends infer Dependencies extends object ? string extends keyof Dependencies ? {} : Dependencies : {} : {};
84
+ /**
85
+ * Builds the complete dependency contract of a functional component from its
86
+ * yielded requests, the tracked helpers returned in its context, its local
87
+ * providers, and its public input/output properties.
88
+ */
89
+ export type CraftComponentDependencies<Yielded, Context, Providers, PublicProperties extends object, TemplateDependencies extends object = never> = GetDeps<{
90
+ deps: Simplify<CompleteServiceDependencyMapFromYielded<Yielded> & Omit<ComponentContextDeps<Context>, keyof CompleteServiceDependencyMapFromYielded<Yielded>>>;
91
+ propertiesDeps: {};
92
+ provided: ComponentProvidedMap<Providers>;
93
+ publicProperties: PublicProperties;
94
+ missingProvider: [TemplateDependencies] extends [never] ? {} : MissingProvidersFromDepsMap<{
95
+ readonly __craft_template_dependencies__: TemplateDependencies;
96
+ }>;
97
+ }>;
98
+ type ComponentMissingProviderRecord<Dependency> = IsComponentGenDepsDependency<Dependency> extends true ? Dependency extends {
99
+ missingProvider: infer MissingProvider extends object;
100
+ } ? MissingProvider : {} : {};
101
+ type DependencyMapValue<Dependency> = Dependency extends object ? Dependency[Extract<keyof Dependency, string>] : never;
102
+ type ContainsNestedDependencyEntries<Dependency> = [
103
+ Extract<DependencyMapValue<Dependency>, {
104
+ scope: unknown;
105
+ dependencies: object;
106
+ } | {
107
+ deps: object;
108
+ provided: object;
109
+ }>
110
+ ] extends [never] ? false : true;
111
+ type NestedMissingProviderRecord<Dependency> = Dependency extends object ? IsComponentGenDepsDependency<Dependency> extends true ? {} : IsTrackedDependencyNode<Dependency> extends true ? {} : ContainsNestedDependencyEntries<Dependency> extends true ? MissingProvidersFromDepsMap<Dependency> : {} : {};
112
+ type DirectMissingProviderRecord<Name extends string, Dependency> = IsRequirementScopedServiceDependency<Dependency> extends true ? {
113
+ [Key in Name]: Dependency;
114
+ } : {};
115
+ type MissingProviderRecordFromDependency<Name extends string, Dependency> = MergeObjectUnion<DirectMissingProviderRecord<Name, Dependency> | ComponentMissingProviderRecord<Dependency> | NestedMissingProviderRecord<Dependency> | (IsTrackedDependencyNode<Dependency> extends true ? MissingProvidersFromDepsMap<DependencyChildren<Dependency>> : {})>;
116
+ export type MissingProvidersFromDepsMap<Deps extends object> = Simplify<MergeObjectUnion<{
117
+ [Name in Extract<keyof Deps, string>]: MissingProviderRecordFromDependency<Name, Deps[Name]>;
118
+ }[Extract<keyof Deps, string>]>>;
119
+ type MissingProvidersFromPropertiesDeps<Input> = Simplify<MergeObjectUnion<{
120
+ [PropertyName in Extract<keyof GetPropertiesDepsMap<Input>, string>]: GetPropertiesDepsMap<Input>[PropertyName] extends object ? MissingProvidersFromDepsMap<GetPropertiesDepsMap<Input>[PropertyName]> : {};
121
+ }[Extract<keyof GetPropertiesDepsMap<Input>, string>]>>;
122
+ type ComputedMissingProviders<Input> = Simplify<Omit<Simplify<MissingProvidersFromDepsMap<GetDepsMap<Input>> & MissingProvidersFromPropertiesDeps<Input> & GetExplicitMissingProviderMap<Input>>, keyof GetProvidedMap<Input>>>;
123
+ export type GetDeps<Input extends object> = Simplify<Omit<Input, 'missingProvider'> & {
124
+ missingProvider: ComputedMissingProviders<Input>;
125
+ }>;
126
+ export declare function deps(value?: AngularBrandDeps): AngularBrandDeps;
127
+ export declare function brandAngularSymbol<T extends object>(angularSymbol: T, _dependencyGroups?: AngularBrandDeps): T;
128
+ export {};
129
+ //# sourceMappingURL=branded-component.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"branded-component.d.ts","sourceRoot":"","sources":["../../../../../../libs/core/src/lib/branded-component/branded-component.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AACrE,OAAO,KAAK,EAEV,uCAAuC,EACvC,iCAAiC,EACjC,2BAA2B,EAC5B,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EACV,4BAA4B,EAC5B,gBAAgB,EAChB,gBAAgB,EAChB,QAAQ,EACT,MAAM,yBAAyB,CAAC;AAEjC,MAAM,MAAM,gBAAgB,GAAG;IAC7B,QAAQ,CAAC,EAAE,SAAS,OAAO,EAAE,CAAC;IAC9B,UAAU,CAAC,EAAE,SAAS,OAAO,EAAE,CAAC;IAChC,SAAS,CAAC,EAAE,SAAS,OAAO,EAAE,CAAC;CAChC,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,OAAO,CAAC,MAAM,oBAAoB,EAAE,OAAO,MAAM,CAAC;AAEzD,MAAM,MAAM,oBAAoB,CAAC,aAAa,SAAS,MAAM,GAAG,MAAM,IAAI;IACxE,QAAQ,CAAC,CAAC,oBAAoB,CAAC,CAAC,EAAE,aAAa,CAAC;CACjD,CAAC;AAEF,gFAAgF;AAChF,MAAM,CAAC,OAAO,CAAC,MAAM,0BAA0B,EAAE,OAAO,MAAM,CAAC;AAE/D,MAAM,MAAM,0BAA0B,CAAC,UAAU,SAAS,MAAM,GAAG,MAAM,IAAI;IAC3E,QAAQ,CAAC,CAAC,0BAA0B,CAAC,CAAC,EAAE,UAAU,CAAC;CACpD,CAAC;AAEF,KAAK,yBAAyB,CAAC,UAAU,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,MAAM,CAAC,GACtE,MAAM,SAAS,UAAU,GACvB,KAAK,GACL,UAAU,GACZ,KAAK,CAAC;AAEV,MAAM,MAAM,qBAAqB,CAAC,KAAK,IAAI,KAAK,SAAS,MAAM,GAC3D,OAAO,0BAA0B,SAAS,MAAM,KAAK,GACnD,KAAK,SAAS,0BAA0B,CAAC,MAAM,UAAU,CAAC,GACxD,yBAAyB,CAAC,UAAU,CAAC,GACrC,KAAK,GACP,KAAK,GACP,KAAK,CAAC;AAEV,MAAM,MAAM,eAAe,CAAC,KAAK,IAAI,KAAK,SAAS;IACjD,QAAQ,CAAC,CAAC,oBAAoB,CAAC,CAAC,EAAE,MAAM,aAAa,SAAS,MAAM,CAAC;CACtE,GACG,OAAO,oBAAoB,SAAS,MAAM,KAAK,GAC7C,aAAa,GACb,EAAE,GACJ,EAAE,CAAC;AAEP,KAAK,qBAAqB,CAAC,SAAS,IAAI,SAAS,SAAS,QAAQ,MAChE,GAAG,IAAI,EAAE,OAAO,EAAE,KACf,MAAM,QAAQ,GACf,QAAQ,GACR,SAAS,CAAC;AAId,KAAK,kBAAkB,CAAC,CAAC,IACvB,CAAC,SAAS,wBAAwB,CAAC,MAAM,KAAK,EAAE,GAAG,CAAC,GAAG,MAAM,KAAK,GAAG,CAAC,CAAC;AAEzE,KAAK,uBAAuB,CAAC,QAAQ,IAAI,OAAO,CAC9C;KACG,CAAC,IAAI,MAAM,QAAQ,GAAG,QAAQ,CAAC,CAAC,CAAC,SAAS,wBAAwB,CACjE,GAAG,EACH,GAAG,CACJ,GACG,CAAC,GACD,KAAK;CACV,CAAC,MAAM,QAAQ,CAAC,EACjB,MAAM,CACP,CAAC;AAKF,MAAM,MAAM,4BAA4B,CAAC,SAAS,IAChD,qBAAqB,CAAC,SAAS,CAAC,SAAS,MAAM,GAC3C,QAAQ,CAAC;KACN,CAAC,IAAI,uBAAuB,CAC3B,qBAAqB,CAAC,SAAS,CAAC,CACjC,GAAG,kBAAkB,CAAC,qBAAqB,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;CAC5D,CAAC,GACF,KAAK,CAAC;AAEZ,MAAM,MAAM,cAAc,CAAC,OAAO,EAAE,QAAQ,SAAS,MAAM,IAAI,QAAQ,CACrE,IAAI,CACF,OAAO,EACP,kBAAkB,GAAG,uBAAuB,GAAG,0BAA0B,CAC1E,GACC,QAAQ,CACX,CAAC;AAEF,KAAK,UAAU,CAAC,KAAK,IAAI,KAAK,SAAS;IAAE,IAAI,EAAE,MAAM,IAAI,SAAS,MAAM,CAAA;CAAE,GACtE,IAAI,GACJ,EAAE,CAAC;AAEP,KAAK,oBAAoB,CAAC,KAAK,IAAI,KAAK,SAAS;IAC/C,cAAc,EAAE,MAAM,cAAc,SAAS,MAAM,CAAC;CACrD,GACG,cAAc,GACd,EAAE,CAAC;AAEP,KAAK,cAAc,CAAC,KAAK,IAAI,KAAK,SAAS;IACzC,QAAQ,EAAE,MAAM,QAAQ,SAAS,MAAM,CAAC;CACzC,GACG,QAAQ,GACR,EAAE,CAAC;AAEP,KAAK,6BAA6B,CAAC,KAAK,IAAI,KAAK,SAAS;IACxD,eAAe,EAAE,MAAM,eAAe,SAAS,MAAM,CAAC;CACvD,GACG,eAAe,GACf,EAAE,CAAC;AAEP,KAAK,kBAAkB,CAAC,IAAI,IAAI,IAAI,SAAS;IAC3C,YAAY,EAAE,MAAM,YAAY,SAAS,MAAM,CAAC;CACjD,GACG,YAAY,GACZ,EAAE,CAAC;AAEP,KAAK,eAAe,CAAC,IAAI,IAAI,IAAI,SAAS;IAAE,UAAU,EAAE,MAAM,KAAK,CAAA;CAAE,GACjE,KAAK,GACL,KAAK,CAAC;AAEV,KAAK,oCAAoC,CAAC,UAAU,IAAI;IACtD,eAAe,CAAC,UAAU,CAAC;CAC5B,SAAS,CAAC,KAAK,CAAC,GACb,KAAK,GACL,eAAe,CAAC,UAAU,CAAC,SAAS,gBAAgB,GAClD,IAAI,GACJ,KAAK,CAAC;AAEZ,KAAK,4BAA4B,CAAC,UAAU,IAAI,UAAU,SAAS;IACjE,IAAI,EAAE,MAAM,KAAK,SAAS,MAAM,CAAC;IACjC,QAAQ,EAAE,MAAM,SAAS,SAAS,MAAM,CAAC;CAC1C,GACG,IAAI,GACJ,KAAK,CAAC;AAEV,KAAK,uBAAuB,CAAC,UAAU,IAAI,UAAU,SAAS;IAC5D,UAAU,EAAE,MAAM,MAAM,CAAC;IACzB,YAAY,EAAE,MAAM,aAAa,SAAS,MAAM,CAAC;CAClD,GACG,IAAI,GACJ,KAAK,CAAC;AAEV,KAAK,qBAAqB,CAAC,KAAK,IAAI,KAAK,SAAS;IAChD,QAAQ,CAAC,CAAC,2BAA2B,CAAC,CAAC,EAAE,MAAM,QAAQ,CAAC;CACzD,GACG,QAAQ,GACR,KAAK,CAAC;AAEV,KAAK,sBAAsB,CAAC,KAAK,IAAI;IACnC,iCAAiC,CAAC,KAAK,CAAC;CACzC,SAAS,CAAC,KAAK,CAAC,GACb,KAAK,SAAS,MAAM,GAClB,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,GAC5C,4BAA4B,CAAC,KAAK,CAAC,SAAS,IAAI,GAC9C,UAAU,CAAC,KAAK,CAAC,GACjB,uBAAuB,CAAC,KAAK,CAAC,SAAS,IAAI,GACzC,EAAE,GACF,EAAE,GACN,qBAAqB,CAAC,KAAK,CAAC,SAAS,MAAM,GACzC,qBAAqB,CAAC,KAAK,CAAC,GAC5B,EAAE,GACN,EAAE,GACJ,iCAAiC,CAAC,KAAK,CAAC,CAAC;AAE7C,MAAM,MAAM,WAAW,CAAC,KAAK,IAAI,QAAQ,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAC,CAAC;AAEzE,KAAK,sBAAsB,CAAC,SAAS,IACnC,SAAS,SAAS,SAAS,CAAC,MAAM,QAAQ,CAAC,EAAE,GACzC,sBAAsB,CAAC,QAAQ,CAAC,GAChC,SAAS,SAAS;IACd,QAAQ,CAAC,CAAC,4BAA4B,CAAC,CAAC,EAAE,MAAM,QAAQ,CAAC;CAC1D,GACD,QAAQ,SAAS;IAAE,IAAI,EAAE,MAAM,IAAI,SAAS,MAAM,CAAA;CAAE,GAClD,IAAI,GACJ,KAAK,GACP,KAAK,CAAC;AAEd,KAAK,oBAAoB,CAAC,SAAS,IAAI;KACpC,IAAI,IAAI,sBAAsB,CAAC,SAAS,CAAC,GAAG,IAAI;CAClD,CAAC;AAEF,KAAK,4BAA4B,CAAC,OAAO,SAAS,MAAM,IAAI;KACzD,GAAG,IAAI,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,SAAS,MAAM,GAC/C,OAAO,2BAA2B,SAAS,MAAM,OAAO,CAAC,GAAG,CAAC,GAC3D,OAAO,CAAC,GAAG,CAAC,GACZ,KAAK,GACP,KAAK;CACV,CAAC,MAAM,OAAO,CAAC,CAAC;AAEjB,KAAK,oBAAoB,CAAC,OAAO,IAAI,OAAO,SAAS,MAAM,GACvD,gBAAgB,CACd,WAAW,CAAC,4BAA4B,CAAC,OAAO,CAAC,CAAC,CACnD,SAAS,MAAM,YAAY,SAAS,MAAM,GACzC,MAAM,SAAS,MAAM,YAAY,GAC/B,EAAE,GACF,YAAY,GACd,EAAE,GACJ,EAAE,CAAC;AAEP;;;;GAIG;AACH,MAAM,MAAM,0BAA0B,CACpC,OAAO,EACP,OAAO,EACP,SAAS,EACT,gBAAgB,SAAS,MAAM,EAC/B,oBAAoB,SAAS,MAAM,GAAG,KAAK,IACzC,OAAO,CAAC;IACV,IAAI,EAAE,QAAQ,CACZ,uCAAuC,CAAC,OAAO,CAAC,GAC9C,IAAI,CACF,oBAAoB,CAAC,OAAO,CAAC,EAC7B,MAAM,uCAAuC,CAAC,OAAO,CAAC,CACvD,CACJ,CAAC;IACF,cAAc,EAAE,EAAE,CAAC;IACnB,QAAQ,EAAE,oBAAoB,CAAC,SAAS,CAAC,CAAC;IAC1C,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,eAAe,EAAE,CAAC,oBAAoB,CAAC,SAAS,CAAC,KAAK,CAAC,GACnD,EAAE,GACF,2BAA2B,CAAC;QAC1B,QAAQ,CAAC,+BAA+B,EAAE,oBAAoB,CAAC;KAChE,CAAC,CAAC;CACR,CAAC,CAAC;AAEH,KAAK,8BAA8B,CAAC,UAAU,IAC5C,4BAA4B,CAAC,UAAU,CAAC,SAAS,IAAI,GACjD,UAAU,SAAS;IACjB,eAAe,EAAE,MAAM,eAAe,SAAS,MAAM,CAAC;CACvD,GACC,eAAe,GACf,EAAE,GACJ,EAAE,CAAC;AAET,KAAK,kBAAkB,CAAC,UAAU,IAAI,UAAU,SAAS,MAAM,GAC3D,UAAU,CAAC,OAAO,CAAC,MAAM,UAAU,EAAE,MAAM,CAAC,CAAC,GAC7C,KAAK,CAAC;AAEV,KAAK,+BAA+B,CAAC,UAAU,IAAI;IACjD,OAAO,CACL,kBAAkB,CAAC,UAAU,CAAC,EAC5B;QACE,KAAK,EAAE,OAAO,CAAC;QACf,YAAY,EAAE,MAAM,CAAC;KACtB,GACD;QACE,IAAI,EAAE,MAAM,CAAC;QACb,QAAQ,EAAE,MAAM,CAAC;KAClB,CACJ;CACF,SAAS,CAAC,KAAK,CAAC,GACb,KAAK,GACL,IAAI,CAAC;AAET,KAAK,2BAA2B,CAAC,UAAU,IAAI,UAAU,SAAS,MAAM,GACpE,4BAA4B,CAAC,UAAU,CAAC,SAAS,IAAI,GACnD,EAAE,GACF,uBAAuB,CAAC,UAAU,CAAC,SAAS,IAAI,GAC9C,EAAE,GACF,+BAA+B,CAAC,UAAU,CAAC,SAAS,IAAI,GACtD,2BAA2B,CAAC,UAAU,CAAC,GACvC,EAAE,GACR,EAAE,CAAC;AAEP,KAAK,2BAA2B,CAAC,IAAI,SAAS,MAAM,EAAE,UAAU,IAC9D,oCAAoC,CAAC,UAAU,CAAC,SAAS,IAAI,GACzD;KACG,GAAG,IAAI,IAAI,GAAG,UAAU;CAC1B,GACD,EAAE,CAAC;AAET,KAAK,mCAAmC,CACtC,IAAI,SAAS,MAAM,EACnB,UAAU,IACR,gBAAgB,CAChB,2BAA2B,CAAC,IAAI,EAAE,UAAU,CAAC,GAC7C,8BAA8B,CAAC,UAAU,CAAC,GAC1C,2BAA2B,CAAC,UAAU,CAAC,GACvC,CAAC,uBAAuB,CAAC,UAAU,CAAC,SAAS,IAAI,GAC7C,2BAA2B,CAAC,kBAAkB,CAAC,UAAU,CAAC,CAAC,GAC3D,EAAE,CAAC,CACV,CAAC;AAEF,MAAM,MAAM,2BAA2B,CAAC,IAAI,SAAS,MAAM,IAAI,QAAQ,CACrE,gBAAgB,CACd;KACG,IAAI,IAAI,OAAO,CACd,MAAM,IAAI,EACV,MAAM,CACP,GAAG,mCAAmC,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;CAC1D,CAAC,OAAO,CAAC,MAAM,IAAI,EAAE,MAAM,CAAC,CAAC,CAC/B,CACF,CAAC;AAEF,KAAK,kCAAkC,CAAC,KAAK,IAAI,QAAQ,CACvD,gBAAgB,CACd;KACG,YAAY,IAAI,OAAO,CACtB,MAAM,oBAAoB,CAAC,KAAK,CAAC,EACjC,MAAM,CACP,GAAG,oBAAoB,CAAC,KAAK,CAAC,CAAC,YAAY,CAAC,SAAS,MAAM,GACxD,2BAA2B,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC,YAAY,CAAC,CAAC,GACtE,EAAE;CACP,CAAC,OAAO,CAAC,MAAM,oBAAoB,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,CAAC,CACtD,CACF,CAAC;AAEF,KAAK,wBAAwB,CAAC,KAAK,IAAI,QAAQ,CAC7C,IAAI,CACF,QAAQ,CACN,2BAA2B,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,GAC5C,kCAAkC,CAAC,KAAK,CAAC,GACzC,6BAA6B,CAAC,KAAK,CAAC,CACvC,EACD,MAAM,cAAc,CAAC,KAAK,CAAC,CAC5B,CACF,CAAC;AAEF,MAAM,MAAM,OAAO,CAAC,KAAK,SAAS,MAAM,IAAI,QAAQ,CAClD,IAAI,CAAC,KAAK,EAAE,iBAAiB,CAAC,GAAG;IAC/B,eAAe,EAAE,wBAAwB,CAAC,KAAK,CAAC,CAAC;CAClD,CACF,CAAC;AAEF,wBAAgB,IAAI,CAAC,KAAK,GAAE,gBAAqB,GAAG,gBAAgB,CAEnE;AAED,wBAAgB,kBAAkB,CAAC,CAAC,SAAS,MAAM,EACjD,aAAa,EAAE,CAAC,EAChB,iBAAiB,CAAC,EAAE,gBAAgB,GACnC,CAAC,CAEH"}
@@ -0,0 +1,7 @@
1
+ export function deps(value = {}) {
2
+ return value;
3
+ }
4
+ export function brandAngularSymbol(angularSymbol, _dependencyGroups) {
5
+ return angularSymbol;
6
+ }
7
+ //# sourceMappingURL=branded-component.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"branded-component.js","sourceRoot":"","sources":["../../../../../../libs/core/src/lib/branded-component/branded-component.ts"],"names":[],"mappings":"AAqVA,MAAM,UAAU,IAAI,CAAC,QAA0B,EAAE;IAC/C,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,UAAU,kBAAkB,CAChC,aAAgB,EAChB,iBAAoC;IAEpC,OAAO,aAAa,CAAC;AACvB,CAAC","sourcesContent":["import type { InputSignalWithTransform } from '../host/craft-compat';\nimport type {\n BrandedServiceProvider,\n CompleteServiceDependencyMapFromYielded,\n ExtractServiceHelperDependencyMap,\n SERVICE_HELPER_DEPENDENCIES,\n} from '../craft-service';\nimport type {\n CRAFT_SERVICE_PROVIDER_BRAND,\n MergeObjectUnion,\n RequirementScope,\n Simplify,\n} from '../craft-service.shared';\n\nexport type AngularBrandDeps = {\n injected?: readonly unknown[];\n importDeps?: readonly unknown[];\n providers?: readonly unknown[];\n};\n\n/**\n * Type-only dependency metadata carried by functional Craft components and\n * route fragments. The optional property never needs to exist at runtime.\n */\nexport declare const CRAFT_COMPONENT_DEPS: unique symbol;\n\nexport type ComponentDepsCarrier<ComponentDeps extends object = object> = {\n readonly [CRAFT_COMPONENT_DEPS]?: ComponentDeps;\n};\n\n/** Type-only exception contract carried by functional components and routes. */\nexport declare const CRAFT_COMPONENT_EXCEPTIONS: unique symbol;\n\nexport type ComponentExceptionsCarrier<Exceptions extends string = string> = {\n readonly [CRAFT_COMPONENT_EXCEPTIONS]?: Exceptions;\n};\n\ntype NarrowComponentExceptions<Exceptions> = [Exceptions] extends [string]\n ? string extends Exceptions\n ? never\n : Exceptions\n : never;\n\nexport type ComponentExceptionsOf<Value> = Value extends object\n ? typeof CRAFT_COMPONENT_EXCEPTIONS extends keyof Value\n ? Value extends ComponentExceptionsCarrier<infer Exceptions>\n ? NarrowComponentExceptions<Exceptions>\n : never\n : never\n : never;\n\nexport type ComponentDepsOf<Value> = Value extends {\n readonly [CRAFT_COMPONENT_DEPS]?: infer ComponentDeps extends object;\n}\n ? typeof CRAFT_COMPONENT_DEPS extends keyof Value\n ? ComponentDeps\n : {}\n : {};\n\ntype ExtractPublicInstance<Component> = Component extends abstract new (\n ...args: unknown[]\n) => infer Instance\n ? Instance\n : Component;\n\n// The `WriteT` side of `InputSignalWithTransform` is contravariant, so the\n// checks below must use `any` (not `unknown`) or no input property matches.\ntype ToPublicSignalType<T> =\n T extends InputSignalWithTransform<infer ReadT, any> ? () => ReadT : T;\n\ntype InputSignalPropertyKeys<Instance> = Extract<\n {\n [K in keyof Instance]: Instance[K] extends InputSignalWithTransform<\n any,\n any\n >\n ? K\n : never;\n }[keyof Instance],\n string\n>;\n\n// Accepts either a component class (`typeof MyComponent`) or an instance type,\n// keeps only `input()` properties, and exposes each one as a plain callable\n// (`() => T`) with the internal `InputSignal` brand symbols stripped.\nexport type GetPublicComponentProperties<Component> =\n ExtractPublicInstance<Component> extends object\n ? Simplify<{\n [K in InputSignalPropertyKeys<\n ExtractPublicInstance<Component>\n >]: ToPublicSignalType<ExtractPublicInstance<Component>[K]>;\n }>\n : never;\n\nexport type DerivedService<Service, Tracking extends object> = Simplify<\n Omit<\n Service,\n 'usesWholeService' | 'derivedPropertiesUsed' | 'derivedPropertiesExposed'\n > &\n Tracking\n>;\n\ntype GetDepsMap<Input> = Input extends { deps: infer Deps extends object }\n ? Deps\n : {};\n\ntype GetPropertiesDepsMap<Input> = Input extends {\n propertiesDeps: infer PropertiesDeps extends object;\n}\n ? PropertiesDeps\n : {};\n\ntype GetProvidedMap<Input> = Input extends {\n provided: infer Provided extends object;\n}\n ? Provided\n : {};\n\ntype GetExplicitMissingProviderMap<Input> = Input extends {\n missingProvider: infer MissingProvider extends object;\n}\n ? MissingProvider\n : {};\n\ntype DependencyChildren<Node> = Node extends {\n dependencies: infer Dependencies extends object;\n}\n ? Dependencies\n : {};\n\ntype DependencyScope<Node> = Node extends { providedIn: infer Scope }\n ? Scope\n : never;\n\ntype IsRequirementScopedServiceDependency<Dependency> = [\n DependencyScope<Dependency>,\n] extends [never]\n ? false\n : DependencyScope<Dependency> extends RequirementScope\n ? true\n : false;\n\ntype IsComponentGenDepsDependency<Dependency> = Dependency extends {\n deps: infer _Deps extends object;\n provided: infer _Provided extends object;\n}\n ? true\n : false;\n\ntype IsTrackedDependencyNode<Dependency> = Dependency extends {\n providedIn: infer _Scope;\n dependencies: infer _Dependencies extends object;\n}\n ? true\n : false;\n\ntype ExtractHelperMetadata<Value> = Value extends {\n readonly [SERVICE_HELPER_DEPENDENCIES]?: infer Metadata;\n}\n ? Metadata\n : never;\n\ntype NormalizeExtractedDeps<Value> = [\n ExtractServiceHelperDependencyMap<Value>,\n] extends [never]\n ? Value extends object\n ? [ExtractHelperMetadata<Value>] extends [never]\n ? IsComponentGenDepsDependency<Value> extends true\n ? GetDepsMap<Value>\n : IsTrackedDependencyNode<Value> extends true\n ? {}\n : {}\n : ExtractHelperMetadata<Value> extends object\n ? ExtractHelperMetadata<Value>\n : {}\n : {}\n : ExtractServiceHelperDependencyMap<Value>;\n\nexport type ExtractDeps<Value> = Simplify<NormalizeExtractedDeps<Value>>;\n\ntype ComponentProviderNames<Providers> =\n Providers extends readonly (infer Provider)[]\n ? ComponentProviderNames<Provider>\n : Providers extends {\n readonly [CRAFT_SERVICE_PROVIDER_BRAND]?: infer Metadata;\n }\n ? Metadata extends { name: infer Name extends string }\n ? Name\n : never\n : never;\n\ntype ComponentProvidedMap<Providers> = {\n [Name in ComponentProviderNames<Providers>]: true;\n};\n\ntype ComponentTrackedContextValue<Context extends object> = {\n [Key in keyof Context]: Context[Key] extends object\n ? typeof SERVICE_HELPER_DEPENDENCIES extends keyof Context[Key]\n ? Context[Key]\n : never\n : never;\n}[keyof Context];\n\ntype ComponentContextDeps<Context> = Context extends object\n ? MergeObjectUnion<\n ExtractDeps<ComponentTrackedContextValue<Context>>\n > extends infer Dependencies extends object\n ? string extends keyof Dependencies\n ? {}\n : Dependencies\n : {}\n : {};\n\n/**\n * Builds the complete dependency contract of a functional component from its\n * yielded requests, the tracked helpers returned in its context, its local\n * providers, and its public input/output properties.\n */\nexport type CraftComponentDependencies<\n Yielded,\n Context,\n Providers,\n PublicProperties extends object,\n TemplateDependencies extends object = never,\n> = GetDeps<{\n deps: Simplify<\n CompleteServiceDependencyMapFromYielded<Yielded> &\n Omit<\n ComponentContextDeps<Context>,\n keyof CompleteServiceDependencyMapFromYielded<Yielded>\n >\n >;\n propertiesDeps: {};\n provided: ComponentProvidedMap<Providers>;\n publicProperties: PublicProperties;\n missingProvider: [TemplateDependencies] extends [never]\n ? {}\n : MissingProvidersFromDepsMap<{\n readonly __craft_template_dependencies__: TemplateDependencies;\n }>;\n}>;\n\ntype ComponentMissingProviderRecord<Dependency> =\n IsComponentGenDepsDependency<Dependency> extends true\n ? Dependency extends {\n missingProvider: infer MissingProvider extends object;\n }\n ? MissingProvider\n : {}\n : {};\n\ntype DependencyMapValue<Dependency> = Dependency extends object\n ? Dependency[Extract<keyof Dependency, string>]\n : never;\n\ntype ContainsNestedDependencyEntries<Dependency> = [\n Extract<\n DependencyMapValue<Dependency>,\n | {\n scope: unknown;\n dependencies: object;\n }\n | {\n deps: object;\n provided: object;\n }\n >,\n] extends [never]\n ? false\n : true;\n\ntype NestedMissingProviderRecord<Dependency> = Dependency extends object\n ? IsComponentGenDepsDependency<Dependency> extends true\n ? {}\n : IsTrackedDependencyNode<Dependency> extends true\n ? {}\n : ContainsNestedDependencyEntries<Dependency> extends true\n ? MissingProvidersFromDepsMap<Dependency>\n : {}\n : {};\n\ntype DirectMissingProviderRecord<Name extends string, Dependency> =\n IsRequirementScopedServiceDependency<Dependency> extends true\n ? {\n [Key in Name]: Dependency;\n }\n : {};\n\ntype MissingProviderRecordFromDependency<\n Name extends string,\n Dependency,\n> = MergeObjectUnion<\n | DirectMissingProviderRecord<Name, Dependency>\n | ComponentMissingProviderRecord<Dependency>\n | NestedMissingProviderRecord<Dependency>\n | (IsTrackedDependencyNode<Dependency> extends true\n ? MissingProvidersFromDepsMap<DependencyChildren<Dependency>>\n : {})\n>;\n\nexport type MissingProvidersFromDepsMap<Deps extends object> = Simplify<\n MergeObjectUnion<\n {\n [Name in Extract<\n keyof Deps,\n string\n >]: MissingProviderRecordFromDependency<Name, Deps[Name]>;\n }[Extract<keyof Deps, string>]\n >\n>;\n\ntype MissingProvidersFromPropertiesDeps<Input> = Simplify<\n MergeObjectUnion<\n {\n [PropertyName in Extract<\n keyof GetPropertiesDepsMap<Input>,\n string\n >]: GetPropertiesDepsMap<Input>[PropertyName] extends object\n ? MissingProvidersFromDepsMap<GetPropertiesDepsMap<Input>[PropertyName]>\n : {};\n }[Extract<keyof GetPropertiesDepsMap<Input>, string>]\n >\n>;\n\ntype ComputedMissingProviders<Input> = Simplify<\n Omit<\n Simplify<\n MissingProvidersFromDepsMap<GetDepsMap<Input>> &\n MissingProvidersFromPropertiesDeps<Input> &\n GetExplicitMissingProviderMap<Input>\n >,\n keyof GetProvidedMap<Input>\n >\n>;\n\nexport type GetDeps<Input extends object> = Simplify<\n Omit<Input, 'missingProvider'> & {\n missingProvider: ComputedMissingProviders<Input>;\n }\n>;\n\nexport function deps(value: AngularBrandDeps = {}): AngularBrandDeps {\n return value;\n}\n\nexport function brandAngularSymbol<T extends object>(\n angularSymbol: T,\n _dependencyGroups?: AngularBrandDeps,\n): T {\n return angularSymbol;\n}\n"]}
@@ -0,0 +1,165 @@
1
+ import { type CraftServiceApi, type GetServiceYields, type ServiceTrackingMetadata } from './craft-service';
2
+ import { type TrackTag } from './host-tag';
3
+ import { type CorrelationIdMetadata } from './correlation-id';
4
+ import { SERVICE_YIELD_REQUEST_MARKER } from './craft-generator-runtime';
5
+ import type { Injector } from './host/craft-compat';
6
+ type BrowserBoundaryDsl<Service extends object, Yielded = unknown> = {
7
+ [Key in keyof Service]: Service[Key] extends (...args: infer Args) => infer Result ? (...args: Args) => Generator<Yielded, Result, unknown> : never;
8
+ };
9
+ type BrowserBoundaryService<Name extends string, Output> = CraftServiceApi<Name, 'global', {}, Output, ServiceTrackingMetadata<Name, 'global', Output, never, undefined, never, true>>;
10
+ type ConsoleMetaContext = {
11
+ from: readonly string[];
12
+ tags: readonly TrackTag[];
13
+ correlation: CorrelationIdMetadata;
14
+ };
15
+ type ConsoleMetaYield = Readonly<{
16
+ [SERVICE_YIELD_REQUEST_MARKER]: true;
17
+ providedIn: 'function';
18
+ resolve: (injector: Injector) => ConsoleMetaContext;
19
+ }>;
20
+ type ConsoleBoundaryYield = GetServiceYields<BrowserBoundaryService<'ConsoleService', ConsoleServiceApi>['ConsoleService']> | ConsoleMetaYield;
21
+ type BrowserCryptoYield = GetServiceYields<BrowserBoundaryService<'BrowserCryptoService', BrowserCryptoServiceApi>['BrowserCryptoService']>;
22
+ export type CookieSameSite = 'lax' | 'strict' | 'none';
23
+ export type CookieSetOptions = {
24
+ domain?: string;
25
+ expires?: Date | string;
26
+ maxAge?: number;
27
+ partitioned?: boolean;
28
+ path?: string;
29
+ sameSite?: CookieSameSite;
30
+ secure?: boolean;
31
+ };
32
+ export type CookieRemoveOptions = Omit<CookieSetOptions, 'expires' | 'maxAge'>;
33
+ export interface ConsoleServiceApi {
34
+ debug(...data: unknown[]): void;
35
+ info(...data: unknown[]): void;
36
+ log(...data: unknown[]): void;
37
+ warn(...data: unknown[]): void;
38
+ error(...data: unknown[]): void;
39
+ trace(...data: unknown[]): void;
40
+ group(...label: unknown[]): void;
41
+ groupCollapsed(...label: unknown[]): void;
42
+ groupEnd(): void;
43
+ time(label?: string): void;
44
+ timeEnd(label?: string): void;
45
+ }
46
+ export interface StorageServiceApi {
47
+ getItem(key: string): string | null;
48
+ setItem(key: string, value: string): void;
49
+ removeItem(key: string): void;
50
+ clear(): void;
51
+ key(index: number): string | null;
52
+ length(): number;
53
+ }
54
+ /** Storage backend selected by the application through DI. */
55
+ declare const storageService: import("./craft-service").AbstractServiceApi<"StorageService", StorageServiceApi>;
56
+ export declare const StorageService: typeof storageService.StorageService;
57
+ export declare const StorageServiceRequirement: typeof storageService.StorageServiceRequirement;
58
+ export declare const provideStorageService: typeof storageService.provideStorageService;
59
+ export interface CookiesServiceApi {
60
+ get(name: string): string | undefined;
61
+ getAll(): Record<string, string>;
62
+ set(name: string, value: string, options?: CookieSetOptions): void;
63
+ remove(name: string, options?: CookieRemoveOptions): void;
64
+ has(name: string): boolean;
65
+ }
66
+ export interface BrowserLocationServiceApi {
67
+ href(): string;
68
+ origin(): string;
69
+ protocol(): string;
70
+ host(): string;
71
+ hostname(): string;
72
+ port(): string;
73
+ pathname(): string;
74
+ search(): string;
75
+ hash(): string;
76
+ assign(url: string | URL): void;
77
+ replace(url: string | URL): void;
78
+ reload(): void;
79
+ }
80
+ export interface BrowserHistoryServiceApi {
81
+ length(): number;
82
+ state(): any;
83
+ back(): void;
84
+ forward(): void;
85
+ go(delta?: number): void;
86
+ pushState(data: any, unused: string, url?: string | URL | null): void;
87
+ replaceState(data: any, unused: string, url?: string | URL | null): void;
88
+ }
89
+ export interface BrowserNavigatorServiceApi {
90
+ userAgent(): string;
91
+ language(): string;
92
+ languages(): readonly string[];
93
+ onLine(): boolean;
94
+ cookieEnabled(): boolean;
95
+ sendBeacon(url: string | URL, data?: BodyInit | null): boolean;
96
+ share(data?: ShareData): Promise<void>;
97
+ }
98
+ export interface BrowserPerformanceServiceApi {
99
+ now(): number;
100
+ mark(name: string, options?: PerformanceMarkOptions): PerformanceMark;
101
+ measure(measureName: string, startOrMeasureOptions?: string | PerformanceMeasureOptions, endMark?: string): PerformanceMeasure;
102
+ clearMarks(markName?: string): void;
103
+ clearMeasures(measureName?: string): void;
104
+ }
105
+ export interface BrowserCryptoServiceApi {
106
+ randomUUID(): string;
107
+ getRandomValues<TypedArray extends ArrayBufferView>(typedArray: TypedArray): TypedArray;
108
+ digest(algorithm: AlgorithmIdentifier, data: BufferSource): Promise<ArrayBuffer>;
109
+ }
110
+ export interface BrowserDocumentServiceApi {
111
+ title(): string;
112
+ setTitle(value: string): void;
113
+ lang(): string;
114
+ setLang(value: string): void;
115
+ dir(): 'ltr' | 'rtl' | 'auto' | '';
116
+ setDir(value: 'ltr' | 'rtl' | 'auto' | ''): void;
117
+ visibilityState(): DocumentVisibilityState;
118
+ hasFocus(): boolean;
119
+ }
120
+ export interface BrowserWindowServiceApi {
121
+ innerWidth(): number;
122
+ innerHeight(): number;
123
+ scrollX(): number;
124
+ scrollY(): number;
125
+ scrollTo(...args: [options: ScrollToOptions] | [x: number, y: number]): void;
126
+ alert(message?: string): void;
127
+ confirm(message?: string): boolean;
128
+ }
129
+ /** @internal Angular TitleStrategy writes the document title through the same boundary as `BrowserDocument.setTitle`. */
130
+ export declare function ɵapplyBrowserDocumentTitle(value: string): void;
131
+ export declare const ConsoleService: BrowserBoundaryService<'ConsoleService', ConsoleServiceApi>['ConsoleService'];
132
+ export declare const CONSOLE_SERVICE_META_DATA: BrowserBoundaryService<'ConsoleService', ConsoleServiceApi>['CONSOLE_SERVICE_META_DATA'];
133
+ export declare const LocalStorageService: BrowserBoundaryService<'LocalStorageService', StorageServiceApi>['LocalStorageService'];
134
+ export declare const LOCAL_STORAGE_SERVICE_META_DATA: BrowserBoundaryService<'LocalStorageService', StorageServiceApi>['LOCAL_STORAGE_SERVICE_META_DATA'];
135
+ export declare const SessionStorageService: BrowserBoundaryService<'SessionStorageService', StorageServiceApi>['SessionStorageService'];
136
+ export declare const SESSION_STORAGE_SERVICE_META_DATA: BrowserBoundaryService<'SessionStorageService', StorageServiceApi>['SESSION_STORAGE_SERVICE_META_DATA'];
137
+ export declare const CookiesService: BrowserBoundaryService<'CookiesService', CookiesServiceApi>['CookiesService'];
138
+ export declare const COOKIES_SERVICE_META_DATA: BrowserBoundaryService<'CookiesService', CookiesServiceApi>['COOKIES_SERVICE_META_DATA'];
139
+ export declare const BrowserLocationService: BrowserBoundaryService<'BrowserLocationService', BrowserLocationServiceApi>['BrowserLocationService'];
140
+ export declare const BROWSER_LOCATION_SERVICE_META_DATA: BrowserBoundaryService<'BrowserLocationService', BrowserLocationServiceApi>['BROWSER_LOCATION_SERVICE_META_DATA'];
141
+ export declare const BrowserHistoryService: BrowserBoundaryService<'BrowserHistoryService', BrowserHistoryServiceApi>['BrowserHistoryService'];
142
+ export declare const BROWSER_HISTORY_SERVICE_META_DATA: BrowserBoundaryService<'BrowserHistoryService', BrowserHistoryServiceApi>['BROWSER_HISTORY_SERVICE_META_DATA'];
143
+ export declare const BrowserNavigatorService: BrowserBoundaryService<'BrowserNavigatorService', BrowserNavigatorServiceApi>['BrowserNavigatorService'];
144
+ export declare const BROWSER_NAVIGATOR_SERVICE_META_DATA: BrowserBoundaryService<'BrowserNavigatorService', BrowserNavigatorServiceApi>['BROWSER_NAVIGATOR_SERVICE_META_DATA'];
145
+ export declare const BrowserPerformanceService: BrowserBoundaryService<'BrowserPerformanceService', BrowserPerformanceServiceApi>['BrowserPerformanceService'];
146
+ export declare const BROWSER_PERFORMANCE_SERVICE_META_DATA: BrowserBoundaryService<'BrowserPerformanceService', BrowserPerformanceServiceApi>['BROWSER_PERFORMANCE_SERVICE_META_DATA'];
147
+ export declare const BrowserCryptoService: BrowserBoundaryService<'BrowserCryptoService', BrowserCryptoServiceApi>['BrowserCryptoService'];
148
+ export declare const BROWSER_CRYPTO_SERVICE_META_DATA: BrowserBoundaryService<'BrowserCryptoService', BrowserCryptoServiceApi>['BROWSER_CRYPTO_SERVICE_META_DATA'];
149
+ export declare const BrowserDocumentService: BrowserBoundaryService<'BrowserDocumentService', BrowserDocumentServiceApi>['BrowserDocumentService'];
150
+ export declare const BROWSER_DOCUMENT_SERVICE_META_DATA: BrowserBoundaryService<'BrowserDocumentService', BrowserDocumentServiceApi>['BROWSER_DOCUMENT_SERVICE_META_DATA'];
151
+ export declare const BrowserWindowService: BrowserBoundaryService<'BrowserWindowService', BrowserWindowServiceApi>['BrowserWindowService'];
152
+ export declare const BROWSER_WINDOW_SERVICE_META_DATA: BrowserBoundaryService<'BrowserWindowService', BrowserWindowServiceApi>['BROWSER_WINDOW_SERVICE_META_DATA'];
153
+ export declare const Console: BrowserBoundaryDsl<ConsoleServiceApi, ConsoleBoundaryYield>;
154
+ export declare const LocalStorage: BrowserBoundaryDsl<StorageServiceApi, GetServiceYields<typeof LocalStorageService>>;
155
+ export declare const SessionStorage: BrowserBoundaryDsl<StorageServiceApi, GetServiceYields<typeof SessionStorageService>>;
156
+ export declare const Cookies: BrowserBoundaryDsl<CookiesServiceApi, GetServiceYields<typeof CookiesService>>;
157
+ export declare const BrowserLocation: BrowserBoundaryDsl<BrowserLocationServiceApi, GetServiceYields<typeof BrowserLocationService>>;
158
+ export declare const BrowserHistory: BrowserBoundaryDsl<BrowserHistoryServiceApi, GetServiceYields<typeof BrowserHistoryService>>;
159
+ export declare const BrowserNavigator: BrowserBoundaryDsl<BrowserNavigatorServiceApi, GetServiceYields<typeof BrowserNavigatorService>>;
160
+ export declare const BrowserPerformance: BrowserBoundaryDsl<BrowserPerformanceServiceApi, GetServiceYields<typeof BrowserPerformanceService>>;
161
+ export declare const BrowserCrypto: BrowserBoundaryDsl<BrowserCryptoServiceApi, BrowserCryptoYield>;
162
+ export declare const BrowserDocument: BrowserBoundaryDsl<BrowserDocumentServiceApi, GetServiceYields<typeof BrowserDocumentService>>;
163
+ export declare const BrowserWindow: BrowserBoundaryDsl<BrowserWindowServiceApi, GetServiceYields<typeof BrowserWindowService>>;
164
+ export {};
165
+ //# sourceMappingURL=browser-boundaries.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"browser-boundaries.d.ts","sourceRoot":"","sources":["../../../../../libs/core/src/lib/browser-boundaries.ts"],"names":[],"mappings":"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"}