@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,1072 @@
1
+ import { assertInInjectionContext, createEnvironmentInjector, DestroyRef, EnvironmentInjector, inject, InjectionToken, Injector, isSignal, runInInjectionContext, untracked, } from './host/craft-compat';
2
+ import { isGenerator, runCraftGenerator, SERVICE_APP_START_REQUEST_MARKER, SERVICE_DEPENDENCY_ACCESS_MARKER, SERVICE_YIELD_REQUEST_MARKER, } from './craft-generator-runtime';
3
+ import { registerResolvedService } from './craft-register-for-runtime';
4
+ import { createYieldableReactiveValue, isYieldableReactiveValue, rawReactiveValue, } from './reactive-read';
5
+ export { SERVICE_APP_START_REQUEST_MARKER, SERVICE_DEPENDENCY_ACCESS_MARKER, SERVICE_YIELD_REQUEST_MARKER, } from './craft-generator-runtime';
6
+ import { CRAFT_SERVICE_PROVIDER_BRAND, SERVICE_PROVIDED_INPUT_KEY, SERVICE_ROOT_EXPOSURE_KEY, } from './craft-service.shared';
7
+ import { COMPONENT_REGISTER, ɵfallbackComponentRegister, } from './component-register';
8
+ import { injectFnWrapper } from './fn-wrapper';
9
+ import { markNamedReactiveProperties, markYieldableMethod, yieldableInvocation, } from './yieldable';
10
+ import { craftToken, ɵregisterCraftTokenHostToken, } from './host/craft-injector';
11
+ import { ɵcraftInjectorFromHost } from './host/craft-injector-host';
12
+ export const SERVICE_EXPOSURE_TOKEN_MARKER = Symbol('service-exposure-token-marker');
13
+ export const SERVICE_RUNTIME_META = Symbol('service-runtime-meta');
14
+ const SERVICE_RUNTIME_META_GLOBAL = Symbol.for('@craft-ts/core/service-runtime-meta');
15
+ const SERVICE_RUNTIME_DEFINITION = Symbol('service-runtime-definition');
16
+ const REGISTERED_SERVICES = new Map();
17
+ const REGISTERED_APP_START_SERVICES = new Map();
18
+ const ABSTRACT_SERVICE_MARKER = Symbol('abstract-service-marker');
19
+ const SERVICE_REQUIREMENT_MARKER = Symbol('service-requirement-marker');
20
+ const PROVIDED_ELSEWHERE = 'Provided elsewhere #warn-check-docs:inputs';
21
+ const OMIT_INPUTS_BINDINGS = Symbol('craft-ts.omit-inputs-bindings');
22
+ function wrapOmitInputsHelper(value) {
23
+ if (typeof value !== 'function') {
24
+ return value;
25
+ }
26
+ return new Proxy(value, {
27
+ get(target, property, receiver) {
28
+ const nested = Reflect.get(target, property, receiver);
29
+ return typeof nested === 'function'
30
+ ? wrapOmitInputsHelper(nested)
31
+ : nested;
32
+ },
33
+ apply(target, thisArg, args) {
34
+ return Reflect.apply(target, thisArg, [OMIT_INPUTS_BINDINGS, ...args]);
35
+ },
36
+ });
37
+ }
38
+ export const SERVICE_RUNTIME_OVERRIDES = new InjectionToken('service-runtime-overrides', {
39
+ factory: () => new Map(),
40
+ });
41
+ const SERVICE_INPUT_SOURCE = Symbol('craft-service-input-source');
42
+ export function toValue(value) {
43
+ if (isServiceInputReader(value)) {
44
+ return resolveServiceInputSource(value[SERVICE_INPUT_SOURCE]);
45
+ }
46
+ if (isYieldableReactiveValue(value)) {
47
+ return rawReactiveValue(value)();
48
+ }
49
+ if (isSignal(value))
50
+ return value();
51
+ return value;
52
+ }
53
+ function isServiceInputReader(value) {
54
+ return typeof value === 'function' && SERVICE_INPUT_SOURCE in value;
55
+ }
56
+ function resolveServiceInputSource(value) {
57
+ if (isYieldableReactiveValue(value)) {
58
+ return rawReactiveValue(value)();
59
+ }
60
+ if (isSignal(value)) {
61
+ return value();
62
+ }
63
+ if (typeof value === 'function') {
64
+ return value();
65
+ }
66
+ return value;
67
+ }
68
+ export function* onAppStart(run) {
69
+ yield createAppStartRequest(run);
70
+ }
71
+ export function abstract() {
72
+ return {
73
+ [ABSTRACT_SERVICE_MARKER]: () => undefined,
74
+ };
75
+ }
76
+ export function craftRequirement() {
77
+ return createServiceRequirement('AnonymousCraftRequirement', new InjectionToken('CraftRequirementToken'));
78
+ }
79
+ export function ɵtoCraftService(options, adaptFactory) {
80
+ const api = (adaptFactory
81
+ ? craftService({
82
+ name: options.name,
83
+ providedIn: options.providedIn,
84
+ browserBoundary: options.browserBoundary,
85
+ }, (inputs) => {
86
+ const dependencyValue = adaptExternalDependencyValue('inject' in options ? options.inject() : inject(options.token), options.name, true);
87
+ return adaptFactory(dependencyValue, inputs);
88
+ })
89
+ : craftService({
90
+ name: options.name,
91
+ providedIn: options.providedIn,
92
+ browserBoundary: options.browserBoundary,
93
+ }, () => {
94
+ const dependencyValue = 'inject' in options ? options.inject() : inject(options.token);
95
+ return adaptExternalDependencyValue(dependencyValue);
96
+ }));
97
+ const internalMetaData = getServiceMetaData(api[capitalize(options.name)]);
98
+ const runtimeDefinition = internalMetaData[SERVICE_RUNTIME_DEFINITION];
99
+ if (adaptFactory) {
100
+ runtimeDefinition.hasPublicInput = adaptFactory.length > 1;
101
+ runtimeDefinition.hasProvidedInput = factoryUsesProvidedInput(adaptFactory);
102
+ }
103
+ if ('provide' in options) {
104
+ runtimeDefinition.externalProviders = options.provide;
105
+ runtimeDefinition.hasProvidedInput =
106
+ runtimeDefinition.hasProvidedInput ||
107
+ provideFactoryUsesProvidedInput(options.provide);
108
+ }
109
+ Reflect.set(internalMetaData, 'usesProvidedInput', runtimeDefinition.hasProvidedInput);
110
+ return api;
111
+ }
112
+ export function craftService(options, factoryOrMarker) {
113
+ const capitalizedName = capitalize(options.name);
114
+ const provideName = `provide${capitalizedName}`;
115
+ const serviceName = capitalizedName;
116
+ const requirementName = `${capitalizedName}Requirement`;
117
+ const toProvideName = `${capitalizedName}ToProvide`;
118
+ const metaDataName = toMetaDataPropertyName(options.name);
119
+ if (options.providedIn === 'abstract') {
120
+ assertAbstractMarker(factoryOrMarker);
121
+ const token = new InjectionToken(`${capitalizedName}AbstractServiceToken`);
122
+ const nativeToken = craftToken(`${capitalizedName}AbstractServiceToken`);
123
+ ɵregisterCraftTokenHostToken(nativeToken, token);
124
+ const requirement = createServiceRequirement(options.name, token);
125
+ // A minimal definition so `X()` resolves the requirement token (the
126
+ // concrete implementation bound through `provideX`) via the injector. The
127
+ // factory is never invoked: scope is not `function`, so resolution goes
128
+ // straight to `injector.get(token)` (or a registered test override by name).
129
+ const abstractYieldDefinition = {
130
+ factory: () => undefined,
131
+ name: options.name,
132
+ providedIn: 'toProvide',
133
+ browserBoundary: false,
134
+ appStart: false,
135
+ token,
136
+ craftToken: nativeToken,
137
+ requirement,
138
+ hasPublicInput: false,
139
+ hasProvidedInput: false,
140
+ appStartHooks: new Map(),
141
+ startedAppStartServices: new Set(),
142
+ };
143
+ // The helper closes over metadata that is initialized immediately below.
144
+ // eslint-disable-next-line prefer-const
145
+ let abstractMetaData;
146
+ const abstractInjectHelper = () => {
147
+ assertInInjectionContext(abstractInject);
148
+ return inject(token);
149
+ };
150
+ const abstractHelper = createHelper(abstractYieldDefinition, () => abstractMetaData);
151
+ const abstractApi = {
152
+ [serviceName]: abstractHelper,
153
+ [requirementName]: requirement,
154
+ [provideName]: (factory) => {
155
+ const abstractRuntimeDefinition = {
156
+ factory,
157
+ name: options.name,
158
+ providedIn: 'toProvide',
159
+ browserBoundary: false,
160
+ appStart: false,
161
+ token: new InjectionToken(`${capitalizedName}ServiceToken`),
162
+ craftToken: craftToken(`${capitalizedName}ServiceToken`),
163
+ requirement,
164
+ hasPublicInput: factoryUsesPublicInput(factory),
165
+ hasProvidedInput: factoryUsesProvidedInput(factory),
166
+ appStartHooks: new Map(),
167
+ startedAppStartServices: new Set(),
168
+ };
169
+ ɵregisterCraftTokenHostToken(abstractRuntimeDefinition.craftToken, abstractRuntimeDefinition.token);
170
+ return createProviders(abstractRuntimeDefinition);
171
+ },
172
+ };
173
+ abstractMetaData = createServiceMetaData({
174
+ name: options.name,
175
+ providedIn: 'toProvide',
176
+ inject: abstractInjectHelper,
177
+ runtimeDefinition: abstractYieldDefinition,
178
+ });
179
+ abstractApi[metaDataName] = abstractMetaData;
180
+ attachServiceRuntimeMeta(abstractHelper, abstractMetaData);
181
+ attachServiceRuntimeMeta(abstractInjectHelper, abstractMetaData);
182
+ REGISTERED_SERVICES.set(options.name, abstractInjectHelper);
183
+ return abstractApi;
184
+ }
185
+ const concreteFactory = factoryOrMarker;
186
+ const runtimeDefinition = {
187
+ factory: concreteFactory,
188
+ name: options.name,
189
+ providedIn: options.providedIn,
190
+ browserBoundary: options.browserBoundary ?? false,
191
+ appStart: options.appStart ?? false,
192
+ providers: options.providers,
193
+ requirement: options.requirement,
194
+ hasPublicInput: factoryUsesPublicInput(concreteFactory),
195
+ hasProvidedInput: factoryUsesProvidedInput(concreteFactory),
196
+ appStartHooks: new Map(),
197
+ startedAppStartServices: new Set(),
198
+ };
199
+ const token = options.providedIn === 'global'
200
+ ? new InjectionToken(`${capitalizedName}ServiceToken`, {
201
+ providedIn: 'root',
202
+ factory: () => createConcreteServiceInstance(runtimeDefinition, inject(Injector)),
203
+ })
204
+ : options.providedIn === 'function'
205
+ ? undefined
206
+ : new InjectionToken(options.providedIn === 'manuallyProvidedAtRoot'
207
+ ? `${capitalizedName}ToProvide`
208
+ : `${capitalizedName}ServiceToken`);
209
+ const nativeToken = options.providedIn === 'function'
210
+ ? undefined
211
+ : craftToken(options.providedIn === 'manuallyProvidedAtRoot'
212
+ ? `${capitalizedName}ToProvide`
213
+ : `${capitalizedName}ServiceToken`);
214
+ runtimeDefinition.token = token;
215
+ runtimeDefinition.craftToken = nativeToken;
216
+ if (token && nativeToken) {
217
+ ɵregisterCraftTokenHostToken(nativeToken, token);
218
+ }
219
+ // The helper closes over metadata that is initialized immediately below.
220
+ // eslint-disable-next-line prefer-const
221
+ let serviceMetaData;
222
+ const api = {
223
+ [serviceName]: createHelper(runtimeDefinition, () => serviceMetaData),
224
+ };
225
+ const injectHelper = createInjectHelper(runtimeDefinition, () => serviceMetaData, concreteInject);
226
+ if (options.providedIn === 'toProvide' ||
227
+ options.providedIn === 'manuallyProvidedAtRoot') {
228
+ api[provideName] = (...provided) => createProviders(runtimeDefinition, provided);
229
+ }
230
+ if (options.providedIn === 'manuallyProvidedAtRoot' && token) {
231
+ api[toProvideName] = token;
232
+ }
233
+ serviceMetaData = createServiceMetaData({
234
+ name: options.name,
235
+ providedIn: options.providedIn,
236
+ inject: injectHelper,
237
+ provide: options.providedIn === 'toProvide' ||
238
+ options.providedIn === 'manuallyProvidedAtRoot'
239
+ ? api[provideName]
240
+ : undefined,
241
+ token: options.providedIn === 'manuallyProvidedAtRoot'
242
+ ? token
243
+ : undefined,
244
+ runtimeDefinition,
245
+ });
246
+ api[metaDataName] = serviceMetaData;
247
+ attachServiceRuntimeMeta(injectHelper, serviceMetaData);
248
+ attachServiceRuntimeMeta(api[serviceName], serviceMetaData);
249
+ REGISTERED_SERVICES.set(runtimeDefinition.name, injectHelper);
250
+ if (runtimeDefinition.appStart) {
251
+ REGISTERED_APP_START_SERVICES.set(runtimeDefinition.name, injectHelper);
252
+ }
253
+ return api;
254
+ function abstractInject() {
255
+ return;
256
+ }
257
+ function concreteInject() {
258
+ return;
259
+ }
260
+ }
261
+ function createInjectHelper(definition, getMetaData, injectMarker) {
262
+ const propertyHelpers = new Map();
263
+ let omitInputsProxy = null;
264
+ const injectHelper = (bindings, expose) => {
265
+ assertInInjectionContext(injectMarker);
266
+ const injector = inject(Injector);
267
+ const serviceValue = resolveConcreteService(definition, injector, bindings);
268
+ return expose
269
+ ? resolveExposedService(serviceValue, expose, injector, definition.providedIn)
270
+ : serviceValue;
271
+ };
272
+ const outerProxy = new Proxy(injectHelper, {
273
+ get(target, property, receiver) {
274
+ if (typeof property !== 'string') {
275
+ return Reflect.get(target, property, receiver);
276
+ }
277
+ if (property === 'then' || property in target) {
278
+ return Reflect.get(target, property, receiver);
279
+ }
280
+ if (property === 'OmitInputs') {
281
+ if (!omitInputsProxy) {
282
+ omitInputsProxy = new Proxy({}, {
283
+ get(_, subProp, subReceiver) {
284
+ return wrapOmitInputsHelper(Reflect.get(outerProxy, subProp, subReceiver));
285
+ },
286
+ });
287
+ }
288
+ return omitInputsProxy;
289
+ }
290
+ if (!propertyHelpers.has(property)) {
291
+ const nestedPropertyHelpers = new Map();
292
+ const propertyHelperFn = (...args) => {
293
+ assertInInjectionContext(injectMarker);
294
+ const omitInputs = args[0] === OMIT_INPUTS_BINDINGS;
295
+ const callArgs = omitInputs ? args.slice(1) : args;
296
+ const isDirectCall = callArgs.length > 0 && !definition.hasPublicInput;
297
+ const injector = inject(Injector);
298
+ const serviceValue = resolveConcreteService(definition, injector, omitInputs
299
+ ? OMIT_INPUTS_BINDINGS
300
+ : isDirectCall
301
+ ? undefined
302
+ : callArgs[0]);
303
+ const propertyValue = Reflect.get(Object(serviceValue), property);
304
+ if (!isDirectCall) {
305
+ return propertyValue;
306
+ }
307
+ return Reflect.apply(propertyValue, Object(serviceValue), callArgs);
308
+ };
309
+ const propertyHelper = new Proxy(propertyHelperFn, {
310
+ get(fnTarget, nestedProperty, fnReceiver) {
311
+ if (typeof nestedProperty !== 'string') {
312
+ return Reflect.get(fnTarget, nestedProperty, fnReceiver);
313
+ }
314
+ if (nestedProperty === 'then' || nestedProperty in fnTarget) {
315
+ return Reflect.get(fnTarget, nestedProperty, fnReceiver);
316
+ }
317
+ if (!nestedPropertyHelpers.has(nestedProperty)) {
318
+ nestedPropertyHelpers.set(nestedProperty, (...nestedArgs) => {
319
+ assertInInjectionContext(injectMarker);
320
+ const injector = inject(Injector);
321
+ const serviceValue = resolveConcreteService(definition, injector, nestedArgs[0] === OMIT_INPUTS_BINDINGS
322
+ ? OMIT_INPUTS_BINDINGS
323
+ : nestedArgs[0]);
324
+ const propValue = Reflect.get(Object(serviceValue), property);
325
+ return Reflect.get(Object(propValue), nestedProperty);
326
+ });
327
+ }
328
+ return nestedPropertyHelpers.get(nestedProperty);
329
+ },
330
+ });
331
+ const metaData = getMetaData();
332
+ if (metaData) {
333
+ attachServiceRuntimeMeta(propertyHelper, metaData);
334
+ }
335
+ propertyHelpers.set(property, propertyHelper);
336
+ }
337
+ return propertyHelpers.get(property);
338
+ },
339
+ });
340
+ return outerProxy;
341
+ }
342
+ function createHelper(definition, getMetaData) {
343
+ const propertyHelpers = new Map();
344
+ let omitInputsProxy = null;
345
+ const toYieldHelper = function* (bindings, expose) {
346
+ const serviceValue = (yield createYieldRequest(definition, bindings));
347
+ if (!expose) {
348
+ return serviceValue;
349
+ }
350
+ return (yield* exposeServiceValue(serviceValue, expose));
351
+ };
352
+ const outerProxy = new Proxy(toYieldHelper, {
353
+ get(target, property, receiver) {
354
+ if (typeof property !== 'string') {
355
+ return Reflect.get(target, property, receiver);
356
+ }
357
+ if (property === 'then' || property in target) {
358
+ return Reflect.get(target, property, receiver);
359
+ }
360
+ if (property === 'OmitInputs') {
361
+ if (!omitInputsProxy) {
362
+ omitInputsProxy = new Proxy({}, {
363
+ get(_, subProp, subReceiver) {
364
+ return wrapOmitInputsHelper(Reflect.get(outerProxy, subProp, subReceiver));
365
+ },
366
+ });
367
+ }
368
+ return omitInputsProxy;
369
+ }
370
+ if (!propertyHelpers.has(property)) {
371
+ const nestedPropertyHelpers = new Map();
372
+ const propertyHelperFn = function* (...args) {
373
+ const omitInputs = args[0] === OMIT_INPUTS_BINDINGS;
374
+ const callArgs = omitInputs ? args.slice(1) : args;
375
+ const isDirectCall = callArgs.length > 0 && !definition.hasPublicInput;
376
+ const serviceValue = (yield createYieldRequest(definition, omitInputs
377
+ ? OMIT_INPUTS_BINDINGS
378
+ : isDirectCall
379
+ ? undefined
380
+ : callArgs[0]));
381
+ const propertyValue = Reflect.get(Object(serviceValue), property);
382
+ if (!isDirectCall) {
383
+ return propertyValue;
384
+ }
385
+ const result = Reflect.apply(propertyValue, Object(serviceValue), callArgs);
386
+ return isGenerator(result) ? yield* result : result;
387
+ };
388
+ const propertyHelper = new Proxy(propertyHelperFn, {
389
+ get(fnTarget, nestedProperty, fnReceiver) {
390
+ if (typeof nestedProperty !== 'string') {
391
+ return Reflect.get(fnTarget, nestedProperty, fnReceiver);
392
+ }
393
+ if (nestedProperty === 'then' || nestedProperty in fnTarget) {
394
+ return Reflect.get(fnTarget, nestedProperty, fnReceiver);
395
+ }
396
+ if (!nestedPropertyHelpers.has(nestedProperty)) {
397
+ nestedPropertyHelpers.set(nestedProperty, function* (...nestedArgs) {
398
+ const serviceValue = (yield createYieldRequest(definition, nestedArgs[0] === OMIT_INPUTS_BINDINGS
399
+ ? OMIT_INPUTS_BINDINGS
400
+ : nestedArgs[0]));
401
+ const propValue = Reflect.get(Object(serviceValue), property);
402
+ return Reflect.get(Object(propValue), nestedProperty);
403
+ });
404
+ }
405
+ return nestedPropertyHelpers.get(nestedProperty);
406
+ },
407
+ });
408
+ const metaData = getMetaData();
409
+ if (metaData) {
410
+ attachServiceRuntimeMeta(propertyHelper, metaData);
411
+ }
412
+ propertyHelpers.set(property, propertyHelper);
413
+ }
414
+ return propertyHelpers.get(property);
415
+ },
416
+ });
417
+ return outerProxy;
418
+ }
419
+ function createServiceRequirement(name, token) {
420
+ return {
421
+ [SERVICE_REQUIREMENT_MARKER]: true,
422
+ token,
423
+ name,
424
+ };
425
+ }
426
+ function createServiceMetaData(config) {
427
+ const metaData = {
428
+ kind: 'service-meta-data',
429
+ name: config.name,
430
+ providedIn: config.providedIn,
431
+ browserBoundary: config.runtimeDefinition.browserBoundary,
432
+ appStart: config.runtimeDefinition.appStart,
433
+ inject: config.inject,
434
+ usesProvidedInput: config.runtimeDefinition.hasProvidedInput,
435
+ };
436
+ if (config.provide) {
437
+ metaData['provide'] = config.provide;
438
+ }
439
+ if (config.token) {
440
+ metaData['token'] = config.token;
441
+ }
442
+ Object.defineProperty(metaData, SERVICE_RUNTIME_DEFINITION, {
443
+ value: config.runtimeDefinition,
444
+ enumerable: false,
445
+ configurable: false,
446
+ });
447
+ Object.defineProperty(metaData, SERVICE_RUNTIME_META, {
448
+ value: metaData,
449
+ enumerable: false,
450
+ configurable: false,
451
+ });
452
+ Object.defineProperty(metaData, SERVICE_RUNTIME_META_GLOBAL, {
453
+ value: metaData,
454
+ enumerable: false,
455
+ configurable: false,
456
+ });
457
+ return metaData;
458
+ }
459
+ function attachServiceRuntimeMeta(helper, metaData) {
460
+ if (typeof helper !== 'function') {
461
+ return;
462
+ }
463
+ Object.defineProperty(helper, SERVICE_RUNTIME_META, {
464
+ value: metaData,
465
+ enumerable: false,
466
+ configurable: false,
467
+ });
468
+ Object.defineProperty(helper, SERVICE_RUNTIME_META_GLOBAL, {
469
+ value: metaData,
470
+ enumerable: false,
471
+ configurable: false,
472
+ });
473
+ }
474
+ export function getServiceMetaData(target) {
475
+ if (isServiceMetaData(target)) {
476
+ return target;
477
+ }
478
+ if (typeof target === 'object' || typeof target === 'function') {
479
+ const runtimeMeta = (Reflect.get(target, SERVICE_RUNTIME_META) ??
480
+ Reflect.get(target, SERVICE_RUNTIME_META_GLOBAL));
481
+ if (runtimeMeta) {
482
+ return runtimeMeta;
483
+ }
484
+ }
485
+ throw new Error('Expected a craftService/toCraftService service helper or a service metadata object.');
486
+ }
487
+ function isServiceMetaData(value) {
488
+ return (typeof value === 'object' &&
489
+ value !== null &&
490
+ Reflect.get(value, 'kind') === 'service-meta-data' &&
491
+ SERVICE_RUNTIME_DEFINITION in value);
492
+ }
493
+ function createProviders(definition, providedArgs = []) {
494
+ const concreteToken = definition.token;
495
+ if (!concreteToken) {
496
+ throw new Error(`craftService("${definition.name}") cannot create providers for scope "${definition.providedIn}".`);
497
+ }
498
+ const providers = [];
499
+ const providedConfig = normalizeProvidedConfig(providedArgs);
500
+ if (definition.externalProviders) {
501
+ providers.push(definition.externalProviders(...providedArgs));
502
+ }
503
+ const concreteProviders = [
504
+ {
505
+ provide: concreteToken,
506
+ useFactory: () => createConcreteServiceInstance(definition, inject(Injector), undefined, providedConfig),
507
+ },
508
+ ];
509
+ if (definition.craftToken && definition.craftToken !== concreteToken) {
510
+ concreteProviders.push({
511
+ provide: definition.craftToken,
512
+ useExisting: concreteToken,
513
+ });
514
+ }
515
+ if (definition.requirement) {
516
+ concreteProviders.push({
517
+ provide: definition.requirement.token,
518
+ useExisting: concreteToken,
519
+ });
520
+ }
521
+ providers.push(concreteProviders);
522
+ const brandedProviders = providers;
523
+ Object.defineProperty(brandedProviders, CRAFT_SERVICE_PROVIDER_BRAND, {
524
+ value: {
525
+ name: definition.name,
526
+ providedIn: definition.providedIn,
527
+ output: undefined,
528
+ yielded: undefined,
529
+ },
530
+ enumerable: false,
531
+ configurable: false,
532
+ });
533
+ return brandedProviders;
534
+ }
535
+ function normalizeProvidedConfig(providedArgs) {
536
+ if (providedArgs.length === 0) {
537
+ return undefined;
538
+ }
539
+ return providedArgs.length === 1 ? providedArgs[0] : providedArgs;
540
+ }
541
+ function adaptExternalDependencyValue(value, dependencyName = 'externalDependency', trackReactiveProperties = false) {
542
+ if (!isObjectLike(value)) {
543
+ return value;
544
+ }
545
+ const target = value;
546
+ const boundMethods = new Map();
547
+ const reactiveProperties = new Map();
548
+ return new Proxy(target, {
549
+ get(_proxyTarget, property) {
550
+ const entry = Reflect.get(target, property, target);
551
+ if (typeof entry === 'function' && !isSignal(entry)) {
552
+ if (!boundMethods.has(property)) {
553
+ boundMethods.set(property, (...args) => untracked(() => Reflect.apply(entry, target, args)));
554
+ }
555
+ return boundMethods.get(property);
556
+ }
557
+ if (trackReactiveProperties &&
558
+ isSignal(entry) &&
559
+ !isYieldableReactiveValue(entry)) {
560
+ if (!reactiveProperties.has(property)) {
561
+ reactiveProperties.set(property, createYieldableReactiveValue(entry, `${dependencyName}.${String(property)}`, {
562
+ primitive: 'toCraftService',
563
+ path: `${dependencyName}.${String(property)}`,
564
+ }));
565
+ }
566
+ return reactiveProperties.get(property);
567
+ }
568
+ return entry;
569
+ },
570
+ apply(proxyTarget, _thisArg, args) {
571
+ return Reflect.apply(proxyTarget, target, args);
572
+ },
573
+ });
574
+ }
575
+ function createYieldRequest(definition, bindings) {
576
+ return {
577
+ [SERVICE_YIELD_REQUEST_MARKER]: true,
578
+ name: definition.name,
579
+ providedIn: definition.providedIn,
580
+ resolve: (injector, hostScope) => {
581
+ assertDependencyScope(hostScope, definition.providedIn, definition.name);
582
+ return resolveConcreteService(definition, injector, bindings);
583
+ },
584
+ };
585
+ }
586
+ function resolveConcreteService(definition, injector, bindings) {
587
+ const serviceOverride = getServiceRuntimeOverride(injector, definition.name);
588
+ if (serviceOverride) {
589
+ if (serviceOverride.kind === 'useValue') {
590
+ return trackResolvedService(definition, injector, markNamedReactiveProperties(serviceOverride.value));
591
+ }
592
+ if (bindings !== undefined &&
593
+ bindings !== OMIT_INPUTS_BINDINGS &&
594
+ definition.initialBindings === undefined) {
595
+ definition.initialBindings = bindings;
596
+ }
597
+ if (serviceOverride.instance === undefined) {
598
+ serviceOverride.instance = createConcreteServiceInstance(definition, injector, bindings, undefined);
599
+ }
600
+ return trackResolvedService(definition, injector, markNamedReactiveProperties(serviceOverride.instance));
601
+ }
602
+ if (definition.providedIn === 'function') {
603
+ return trackResolvedService(definition, injector, markNamedReactiveProperties(createConcreteServiceInstance(definition, injector, bindings)));
604
+ }
605
+ if (bindings !== undefined &&
606
+ bindings !== OMIT_INPUTS_BINDINGS &&
607
+ definition.initialBindings === undefined) {
608
+ definition.initialBindings = bindings;
609
+ }
610
+ return trackResolvedService(definition, injector, markNamedReactiveProperties(ɵcraftInjectorFromHost(injector).get((definition.token ?? definition.craftToken))));
611
+ }
612
+ function trackResolvedService(definition, injector, value) {
613
+ const hostTags = injector.get(ɵHOST_TAG_LIST, []);
614
+ registerResolvedService(injector, definition.name, value, hostTags[hostTags.length - 1] ?? `service:${definition.name}`, definition.providedIn);
615
+ return value;
616
+ }
617
+ function getServiceRuntimeOverride(injector, serviceName) {
618
+ return injector.get(SERVICE_RUNTIME_OVERRIDES).get(serviceName);
619
+ }
620
+ function createConcreteServiceInstance(definition, injector, bindingsOverride, providedConfig) {
621
+ const scopedInjector = ɵcreateHostTaggedInjector(injector, `service:${definition.name}`, definition.providers ?? [], {
622
+ instanced: definition.providedIn === 'function' ||
623
+ definition.providedIn === 'toProvide',
624
+ });
625
+ return runInInjectionContext(scopedInjector, () => ɵcraftInjectorFromHost(scopedInjector).run(() => {
626
+ const omitInputs = bindingsOverride === OMIT_INPUTS_BINDINGS;
627
+ const bindings = omitInputs
628
+ ? {}
629
+ : (bindingsOverride ?? definition.initialBindings ?? {});
630
+ const inputs = createInputProxy(bindings, providedConfig, omitInputs, definition.name);
631
+ const wrappedFactory = injectFnWrapper()(definition.factory);
632
+ const result = definition.factory.length > 0
633
+ ? wrappedFactory(inputs)
634
+ : wrappedFactory();
635
+ if (!isGenerator(result)) {
636
+ return result;
637
+ }
638
+ const resolved = runCraftGenerator({
639
+ iterator: result,
640
+ injector: scopedInjector,
641
+ hostScope: definition.providedIn,
642
+ invalidYieldErrorMessage: 'craftService/toCraftService generators can only yield craftService dependencies, exposed dependency helpers, or onAppStart(...).',
643
+ multipleAppStartErrorMessage: 'craftService generators can only declare onAppStart(...) once.',
644
+ createAppStartHook: (run) => () => runAppStartCallback(run, scopedInjector, definition.providedIn),
645
+ reactiveReader: {
646
+ name: definition.name,
647
+ primitive: 'craftService',
648
+ path: `service:${definition.name}`,
649
+ },
650
+ });
651
+ if (resolved.appStartHook) {
652
+ if (!definition.appStart) {
653
+ throw new Error(`craftService("${definition.name}") used onAppStart(...) without enabling appStart: true.`);
654
+ }
655
+ definition.appStartHooks.set(resolved.value, resolved.appStartHook);
656
+ }
657
+ return resolved.value;
658
+ }));
659
+ }
660
+ function runAppStartCallback(run, injector, hostScope) {
661
+ const result = run();
662
+ if (!isGenerator(result)) {
663
+ return result;
664
+ }
665
+ return runCraftGenerator({
666
+ iterator: result,
667
+ injector,
668
+ hostScope,
669
+ invalidYieldErrorMessage: 'craftService/toCraftService generators can only yield craftService dependencies, exposed dependency helpers, or onAppStart(...).',
670
+ multipleAppStartErrorMessage: 'craftService generators can only declare onAppStart(...) once.',
671
+ onAppStartNotSupportedErrorMessage: 'onAppStart(...) generator callbacks cannot declare onAppStart(...) recursively.',
672
+ reactiveReader: {
673
+ name: `${hostScope}:appStart`,
674
+ primitive: 'craftService',
675
+ path: `appStart:${hostScope}`,
676
+ },
677
+ }).value;
678
+ }
679
+ function createInputProxy(bindings, providedConfig, allowMissing = false, serviceName = 'craftService') {
680
+ const resolvedBindings = providedConfig === undefined
681
+ ? bindings
682
+ : {
683
+ ...bindings,
684
+ [SERVICE_PROVIDED_INPUT_KEY]: providedConfig,
685
+ };
686
+ return new Proxy({}, {
687
+ get(_target, property) {
688
+ if (typeof property !== 'string') {
689
+ return undefined;
690
+ }
691
+ if (!Object.prototype.hasOwnProperty.call(resolvedBindings, property)) {
692
+ if (allowMissing) {
693
+ return undefined;
694
+ }
695
+ throw new Error(`Inputs Error, ${property} is not provided`);
696
+ }
697
+ const value = resolvedBindings[property];
698
+ if (value === PROVIDED_ELSEWHERE) {
699
+ throw new Error(`Inputs Error, ${property} is not provided`);
700
+ }
701
+ return isReactiveServiceInput(value)
702
+ ? createServiceInputReader(value, serviceName, property)
703
+ : value;
704
+ },
705
+ });
706
+ }
707
+ function isReactiveServiceInput(value) {
708
+ return (isSignal(value) ||
709
+ isYieldableReactiveValue(value) ||
710
+ typeof value === 'function');
711
+ }
712
+ function createServiceInputReader(source, serviceName, property) {
713
+ const reactiveSource = isSignal(source) && !isYieldableReactiveValue(source)
714
+ ? createYieldableReactiveValue(source, `${serviceName}.${property}`, {
715
+ primitive: 'craftService',
716
+ path: `service:${serviceName}.input.${property}`,
717
+ })
718
+ : source;
719
+ const reader = markYieldableMethod((...args) => {
720
+ const value = typeof reactiveSource === 'function'
721
+ ? reactiveSource(...args)
722
+ : reactiveSource;
723
+ return isGenerator(value)
724
+ ? value
725
+ : yieldableInvocation(value);
726
+ });
727
+ Object.defineProperty(reader, SERVICE_INPUT_SOURCE, {
728
+ value: reactiveSource,
729
+ enumerable: false,
730
+ configurable: false,
731
+ });
732
+ return reader;
733
+ }
734
+ function resolveExposedService(serviceValue, expose, injector, hostScope) {
735
+ const exposure = expose(createExposureTokens(serviceValue));
736
+ const resolvedExposure = isGenerator(exposure)
737
+ ? runCraftGenerator({
738
+ iterator: exposure,
739
+ injector,
740
+ hostScope,
741
+ invalidYieldErrorMessage: 'craftService/toCraftService generators can only yield craftService dependencies, exposed dependency helpers, or onAppStart(...).',
742
+ multipleAppStartErrorMessage: 'craftService generators can only declare onAppStart(...) once.',
743
+ }).value
744
+ : exposure;
745
+ return createExposedServiceValue(resolvedExposure);
746
+ }
747
+ function* exposeServiceValue(serviceValue, expose) {
748
+ const exposure = expose(createExposureTokens(serviceValue));
749
+ const resolvedExposure = isGenerator(exposure)
750
+ ? yield* exposure
751
+ : exposure;
752
+ return createExposedServiceValue(resolvedExposure);
753
+ }
754
+ function createExposureTokens(serviceValue) {
755
+ return new Proxy({}, {
756
+ get(_target, property) {
757
+ if (typeof property !== 'string') {
758
+ return undefined;
759
+ }
760
+ if (property === SERVICE_ROOT_EXPOSURE_KEY &&
761
+ typeof serviceValue !== 'function') {
762
+ return undefined;
763
+ }
764
+ return createExposureToken(serviceValue, property);
765
+ },
766
+ });
767
+ }
768
+ function createExposureToken(serviceValue, key) {
769
+ const resolve = key === SERVICE_ROOT_EXPOSURE_KEY
770
+ ? () => serviceValue
771
+ : () => Reflect.get(Object(serviceValue), key);
772
+ const token = function* () {
773
+ return (yield createDependencyAccessRequest(key, resolve));
774
+ };
775
+ Object.defineProperty(token, SERVICE_EXPOSURE_TOKEN_MARKER, {
776
+ value: {
777
+ key,
778
+ resolve,
779
+ },
780
+ enumerable: false,
781
+ configurable: false,
782
+ });
783
+ return token;
784
+ }
785
+ function createDependencyAccessRequest(key, resolve) {
786
+ return {
787
+ [SERVICE_DEPENDENCY_ACCESS_MARKER]: true,
788
+ key,
789
+ resolve,
790
+ };
791
+ }
792
+ function createAppStartRequest(run) {
793
+ return {
794
+ [SERVICE_APP_START_REQUEST_MARKER]: true,
795
+ run,
796
+ };
797
+ }
798
+ export function runServiceAppStart(reference, serviceValue) {
799
+ const metaData = getServiceMetaData(reference);
800
+ const definition = metaData[SERVICE_RUNTIME_DEFINITION];
801
+ if (!definition.appStart) {
802
+ throw new Error(`craftService("${definition.name}") is not configured with appStart: true.`);
803
+ }
804
+ if (definition.startedAppStartServices.has(serviceValue)) {
805
+ return;
806
+ }
807
+ const hook = definition.appStartHooks.get(serviceValue);
808
+ if (!hook) {
809
+ throw new Error(`craftService("${definition.name}") is configured with appStart: true but did not declare onAppStart(...).`);
810
+ }
811
+ definition.startedAppStartServices.add(serviceValue);
812
+ return hook();
813
+ }
814
+ export function getRegisteredAppStartServices() {
815
+ return Array.from(REGISTERED_APP_START_SERVICES.values());
816
+ }
817
+ export function getRegisteredServices() {
818
+ return Array.from(REGISTERED_SERVICES.values());
819
+ }
820
+ export function createExposedServiceValue(exposedValue) {
821
+ const materializedExposure = materializeExposedValue(exposedValue);
822
+ markNamedReactiveProperties(materializedExposure.value);
823
+ if (!materializedExposure.rootCallable) {
824
+ return materializedExposure.value;
825
+ }
826
+ if (!isNonCallableObject(materializedExposure.value) ||
827
+ Reflect.ownKeys(materializedExposure.value).length === 0) {
828
+ return materializedExposure.rootCallable;
829
+ }
830
+ return createCallableExposureProxy(materializedExposure.rootCallable, materializedExposure.value);
831
+ }
832
+ function materializeExposedValue(exposedValue) {
833
+ if (isRuntimeExposureToken(exposedValue)) {
834
+ const resolvedValue = exposedValue[SERVICE_EXPOSURE_TOKEN_MARKER].resolve();
835
+ return isRootRuntimeExposureToken(exposedValue) &&
836
+ typeof resolvedValue === 'function'
837
+ ? {
838
+ value: resolvedValue,
839
+ rootCallable: resolvedValue,
840
+ }
841
+ : { value: resolvedValue };
842
+ }
843
+ if (!isNonCallableObject(exposedValue)) {
844
+ return { value: exposedValue };
845
+ }
846
+ const materialized = {};
847
+ let rootCallable;
848
+ for (const key of Reflect.ownKeys(exposedValue)) {
849
+ const resolvedValue = unwrapDirectExposureToken(Reflect.get(exposedValue, key, exposedValue));
850
+ if (key === SERVICE_ROOT_EXPOSURE_KEY &&
851
+ typeof resolvedValue === 'function') {
852
+ rootCallable = resolvedValue;
853
+ continue;
854
+ }
855
+ materialized[key] = resolvedValue;
856
+ }
857
+ if (rootCallable && Reflect.ownKeys(materialized).length === 0) {
858
+ return {
859
+ value: rootCallable,
860
+ rootCallable,
861
+ };
862
+ }
863
+ return {
864
+ value: materialized,
865
+ rootCallable,
866
+ };
867
+ }
868
+ function unwrapDirectExposureToken(value) {
869
+ return isRuntimeExposureToken(value)
870
+ ? value[SERVICE_EXPOSURE_TOKEN_MARKER].resolve()
871
+ : value;
872
+ }
873
+ function createCallableExposureProxy(serviceValue, exposedValue) {
874
+ const exposedKeys = new Set(Reflect.ownKeys(exposedValue));
875
+ const forwardedTargetKeys = new Set(Reflect.ownKeys(serviceValue).filter((key) => typeof key === 'symbol' ||
876
+ Reflect.getOwnPropertyDescriptor(serviceValue, key)?.configurable ===
877
+ false));
878
+ return new Proxy(serviceValue, {
879
+ get(target, property, receiver) {
880
+ if (exposedKeys.has(property)) {
881
+ return Reflect.get(exposedValue, property, exposedValue);
882
+ }
883
+ if (forwardedTargetKeys.has(property) ||
884
+ (typeof property === 'string' && property in Function.prototype)) {
885
+ return Reflect.get(target, property, receiver);
886
+ }
887
+ return undefined;
888
+ },
889
+ has(_target, property) {
890
+ return (exposedKeys.has(property) ||
891
+ forwardedTargetKeys.has(property) ||
892
+ (typeof property === 'string' && property in Function.prototype));
893
+ },
894
+ ownKeys() {
895
+ return Array.from(new Set([
896
+ ...Array.from(forwardedTargetKeys),
897
+ ...Reflect.ownKeys(exposedValue),
898
+ ]));
899
+ },
900
+ getOwnPropertyDescriptor(target, property) {
901
+ if (exposedKeys.has(property)) {
902
+ return (Reflect.getOwnPropertyDescriptor(exposedValue, property) ?? {
903
+ configurable: true,
904
+ enumerable: true,
905
+ writable: true,
906
+ value: Reflect.get(exposedValue, property, exposedValue),
907
+ });
908
+ }
909
+ if (forwardedTargetKeys.has(property)) {
910
+ return Reflect.getOwnPropertyDescriptor(target, property);
911
+ }
912
+ return undefined;
913
+ },
914
+ });
915
+ }
916
+ function isObjectLike(value) {
917
+ return ((typeof value === 'object' && value !== null) || typeof value === 'function');
918
+ }
919
+ function isNonCallableObject(value) {
920
+ return typeof value === 'object' && value !== null;
921
+ }
922
+ function isRuntimeExposureToken(value) {
923
+ return typeof value === 'function' && SERVICE_EXPOSURE_TOKEN_MARKER in value;
924
+ }
925
+ function isRootRuntimeExposureToken(value) {
926
+ return value[SERVICE_EXPOSURE_TOKEN_MARKER].key === SERVICE_ROOT_EXPOSURE_KEY;
927
+ }
928
+ function assertAbstractMarker(value) {
929
+ if (typeof value !== 'object' ||
930
+ value === null ||
931
+ !(ABSTRACT_SERVICE_MARKER in value)) {
932
+ throw new Error('craftService scope "abstract" expects abstract<T>().');
933
+ }
934
+ }
935
+ function assertDependencyScope(hostScope, dependencyScope, dependencyName) {
936
+ if (hostScope === 'global' && dependencyScope === 'toProvide') {
937
+ throw new Error(`Global craftService cannot depend on toProvide craftService "${dependencyName}".`);
938
+ }
939
+ }
940
+ function factoryUsesProvidedInput(factory) {
941
+ return factory.toString().includes(SERVICE_PROVIDED_INPUT_KEY);
942
+ }
943
+ function factoryUsesPublicInput(factory) {
944
+ return factory.length > 0;
945
+ }
946
+ function provideFactoryUsesProvidedInput(provideFactory) {
947
+ return provideFactory.length > 0;
948
+ }
949
+ function capitalize(value) {
950
+ return value ? value.charAt(0).toUpperCase() + value.slice(1) : value;
951
+ }
952
+ function toMetaDataPropertyName(value) {
953
+ return `${value
954
+ .replace(/([a-z0-9])([A-Z])/g, '$1_$2')
955
+ .replace(/[\s-]+/g, '_')
956
+ .toUpperCase()}_META_DATA`;
957
+ }
958
+ const HOST_TAG_INTERNAL_SERVICE_NAMES = new Set(['service:HostName']);
959
+ export const ɵHOST_TAG_LIST = new InjectionToken('HostTagList', {
960
+ providedIn: 'root',
961
+ factory: () => [],
962
+ });
963
+ export const ɵTRACK_TAGS_LIST = new InjectionToken('TrackTagsList', {
964
+ providedIn: 'root',
965
+ factory: () => [],
966
+ });
967
+ const hostNameApi = craftService({ name: 'HostName', providedIn: 'manuallyProvidedAtRoot' }, (inputs) => inputs.$provided);
968
+ export const ɵinjectHostName = hostNameApi.HOST_NAME_META_DATA.inject;
969
+ export const ɵHostName = hostNameApi.HostName;
970
+ export const ɵHostNameToProvide = hostNameApi.HostNameToProvide;
971
+ export const ɵHOST_NAME_META_DATA = hostNameApi.HOST_NAME_META_DATA;
972
+ const ɵprovideHostNameProvider = hostNameApi.provideHostName;
973
+ export function ɵprovideHostName(name) {
974
+ return [
975
+ ɵprovideHostNameProvider(name),
976
+ {
977
+ provide: ɵHOST_TAG_LIST,
978
+ useFactory: () => {
979
+ const parentTags = inject(ɵHOST_TAG_LIST, {
980
+ optional: true,
981
+ skipSelf: true,
982
+ }) ?? [];
983
+ const id = (inject(COMPONENT_REGISTER, { optional: true }) ?? ɵfallbackComponentRegister).next();
984
+ return [...parentTags, `${name}#${id}`];
985
+ },
986
+ },
987
+ ];
988
+ }
989
+ export function ɵprovideTrackTags(tags) {
990
+ return [
991
+ {
992
+ provide: ɵTRACK_TAGS_LIST,
993
+ useFactory: () => {
994
+ const parentTags = inject(ɵTRACK_TAGS_LIST, {
995
+ optional: true,
996
+ skipSelf: true,
997
+ }) ?? [];
998
+ return [...parentTags, ...tags];
999
+ },
1000
+ },
1001
+ ];
1002
+ }
1003
+ export function ɵinjectTrackTags() {
1004
+ return inject(ɵTRACK_TAGS_LIST);
1005
+ }
1006
+ export function* ɵHostTag() {
1007
+ return (yield {
1008
+ [SERVICE_YIELD_REQUEST_MARKER]: true,
1009
+ providedIn: 'function',
1010
+ resolve: (injector) => injector.get(ɵHOST_TAG_LIST),
1011
+ });
1012
+ }
1013
+ export function* ɵTrackTags() {
1014
+ return (yield {
1015
+ [SERVICE_YIELD_REQUEST_MARKER]: true,
1016
+ providedIn: 'function',
1017
+ resolve: (injector) => injector.get(ɵTRACK_TAGS_LIST),
1018
+ });
1019
+ }
1020
+ export function ɵcreateHostTaggedInjector(injector, hostName, extraProviders = [], options = {}) {
1021
+ if (HOST_TAG_INTERNAL_SERVICE_NAMES.has(hostName)) {
1022
+ return injector;
1023
+ }
1024
+ let parentDestroyRef = null;
1025
+ try {
1026
+ parentDestroyRef = inject(DestroyRef, { optional: true });
1027
+ }
1028
+ catch {
1029
+ // not in an injection context
1030
+ }
1031
+ // Collect tags from the node injector chain
1032
+ const nodeTags = injector.get(ɵHOST_TAG_LIST, []);
1033
+ // Collect tags exclusive to the env injector chain (e.g. route-level providers
1034
+ // that are shadowed by a parent component's node injector providing the same token)
1035
+ let envOnlyTags = [];
1036
+ const associatedEnvInjector = injector.get(EnvironmentInjector, null);
1037
+ if (associatedEnvInjector) {
1038
+ const envTags = associatedEnvInjector.get(ɵHOST_TAG_LIST, null) ?? [];
1039
+ envOnlyTags = envTags.filter((t) => !nodeTags.includes(t));
1040
+ }
1041
+ // Insert env-only tags before the last element of nodeTags (the current component's tag)
1042
+ // to preserve semantic order: parent components → route → current component → method
1043
+ // EXPERIMENT (option A): stamp the instance ordinal that provideHostName's
1044
+ // factory would have produced, which this useValue would otherwise discard.
1045
+ // A host that can exist several times at once carries which one it is, the
1046
+ // way a component tag already does. A singleton does not: a number on a host
1047
+ // there is exactly one of reads as noise, and would change every log line and
1048
+ // snapshot for nothing.
1049
+ const taggedHostName = options.instanced
1050
+ ? `${hostName}#${(injector.get(COMPONENT_REGISTER, null) ?? ɵfallbackComponentRegister).next()}`
1051
+ : hostName;
1052
+ const mergedTags = nodeTags.length > 0
1053
+ ? [
1054
+ ...nodeTags.slice(0, -1),
1055
+ ...envOnlyTags,
1056
+ nodeTags[nodeTags.length - 1],
1057
+ taggedHostName,
1058
+ ]
1059
+ : [...envOnlyTags, taggedHostName];
1060
+ const envInjector = createEnvironmentInjector([
1061
+ ɵprovideHostName(hostName),
1062
+ { provide: ɵHOST_TAG_LIST, useValue: mergedTags },
1063
+ ...extraProviders,
1064
+ ], injector, `HostTag(${hostName})`);
1065
+ parentDestroyRef?.onDestroy(() => {
1066
+ if (!envInjector.destroyed) {
1067
+ envInjector.destroy();
1068
+ }
1069
+ });
1070
+ return envInjector;
1071
+ }
1072
+ //# sourceMappingURL=craft-service.js.map