@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":"craft-router-outlet.js","sourceRoot":"","sources":["../../../../../libs/core/src/lib/craft-router-outlet.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n DestroyRef,\n EnvironmentInjector,\n inject,\n Injector,\n InjectionToken,\n runInInjectionContext,\n type Type,\n} from './host/craft-compat';\nimport { DOCUMENT } from './host/craft-compat';\nimport { CRAFT_A11Y_NAVIGATION_FOCUS } from './craft-a11y';\nimport { isCraftException, type AnyCraftException } from './craft-exception';\nimport {\n evaluateCraftGuardSync,\n runCraftRouteChainAsync,\n type RouteChainOutcome,\n} from './craft-guard-runtime';\nimport {\n CRAFT_BLANK_MS,\n CRAFT_ERROR_COMPONENT,\n CRAFT_PENDING_COMPONENT,\n CRAFT_PENDING_MIN_MS,\n CRAFT_STAY_MS,\n} from './craft-pending';\nimport {\n CRAFT_GLOBAL_ERROR,\n type CraftExceptionComponentInput,\n type CraftPendingComponentInput,\n} from './craft-route-exceptions';\nimport {\n createRouteLoadError,\n isCraftRouteLoadError,\n setActiveCraftRouteLoadError,\n} from './craft-route-load-error';\nimport {\n getCraftRouteMeta,\n type CraftRouteMeta,\n type CraftRouteStepFactory,\n} from './craft-route-meta';\nimport {\n CRAFT_START_VIEW_TRANSITION,\n CRAFT_VIEW_TRANSITION,\n CRAFT_VIEW_TRANSITION_SKIP_BLANK,\n CRAFT_VIEW_TRANSITION_STATE_KEY,\n CRAFT_VIEW_TRANSITIONS_ENABLED,\n type CraftViewTransitionInput,\n} from './craft-view-transition';\nimport {\n CRAFT_TEMPORAL_RUNTIME,\n type TemporalTaskHandle,\n} from './temporal-runtime';\nimport {\n craftRouteTarget,\n CRAFT_ROUTE_TARGET,\n isCraftRouteTarget,\n normalizeCraftRouteTarget,\n type CraftRouteTarget,\n type CraftRouteTargetInput,\n} from './craft-route-target';\nimport {\n craftSignal,\n craftWatch,\n type CraftWritableSignal,\n} from './host/craft-signal';\nimport {\n serializeLocation,\n sliceCraftMatchForOutlet,\n type CraftCompiledRoute,\n type CraftMatch,\n} from './host/craft-router-runtime';\nimport {\n CRAFT_CHILD_MATCH,\n CRAFT_HISTORY,\n CRAFT_MATCH,\n CRAFT_ROUTER,\n type CraftRouterNavigationApi,\n} from './craft-router-tokens';\nimport { CRAFT_SSR_RUNTIME } from './craft-ssr';\nimport { CRAFT_PLATFORM } from './craft-platform';\n\nconst ROUTE_PROP_SKIP = new Set(['craftComponent', 'craftPendingComponent']);\n\nexport function collectMatchProps(\n match: CraftMatch | null | undefined,\n): Record<string, unknown> {\n if (!match) {\n return {};\n }\n const props: Record<string, unknown> = {};\n for (const route of match.routes) {\n assignRoutePropBag(\n props,\n route.data as Record<string, unknown> | undefined,\n );\n }\n assignRoutePropBag(props, match.params);\n assignRoutePropBag(props, match.queryParams);\n return props;\n}\n\n/** @deprecated Use {@link collectMatchProps}. */\nexport const collectActivatedRouteProps = collectMatchProps;\n\nfunction assignRoutePropBag(\n target: Record<string, unknown>,\n bag: Record<string, unknown> | undefined,\n): void {\n if (!bag) {\n return;\n }\n for (const [key, value] of Object.entries(bag)) {\n if (ROUTE_PROP_SKIP.has(key) || typeof value === 'function') {\n continue;\n }\n target[key] = value;\n }\n}\n\nexport type CraftOutletState =\n | 'idle'\n | 'stay'\n | 'blank'\n | 'pending'\n | 'loaded'\n | 'error';\n\nexport const CRAFT_ROUTE_CHAIN_RUNNER = new InjectionToken<\n typeof runCraftRouteChainAsync\n>('CRAFT_ROUTE_CHAIN_RUNNER', {\n providedIn: 'root',\n factory: () => runCraftRouteChainAsync,\n});\n\nconst syncTemplateFlushers = new Set<() => void>();\n\n/** Registers a synchronous template patch invoked from view-transition commits. */\nexport function registerCraftSyncTemplateFlush(fn: () => void): () => void {\n syncTemplateFlushers.add(fn);\n return () => {\n syncTemplateFlushers.delete(fn);\n };\n}\n\nfunction runRegisteredSyncTemplateFlush(): void {\n for (const flush of syncTemplateFlushers) {\n flush();\n }\n}\n\n/**\n * Runs inside `startViewTransition`'s callback after Craft signals commit, so\n * the displayed DOM is patched before the callback returns. Templates driven by\n * `craftEffect` otherwise bump an Angular signal asynchronously.\n */\nexport const CRAFT_SYNC_TEMPLATE_FLUSH = new InjectionToken<() => void>(\n 'CRAFT_SYNC_TEMPLATE_FLUSH',\n {\n providedIn: 'root',\n factory: () => runRegisteredSyncTemplateFlush,\n },\n);\n\n/**\n * A non-blocking replacement for `<router-outlet>`. The URL commits immediately\n * (history.push); this outlet reads the route's {@link CraftRouteMeta} and\n * drives canMatch → canActivate → resolve **after** commit.\n */\nexport class CraftRouterOutletController {\n name = 'primary';\n\n private readonly rootInjector = inject(EnvironmentInjector);\n private readonly router =\n inject(CRAFT_ROUTER, { optional: true }) ?? silentRouter();\n private readonly history = inject(CRAFT_HISTORY, { optional: true });\n private readonly destroyRef = inject(DestroyRef);\n private readonly temporalRuntime = inject(CRAFT_TEMPORAL_RUNTIME);\n\n private readonly defaultPendingComponent = inject(CRAFT_PENDING_COMPONENT);\n private readonly defaultErrorComponent = inject(CRAFT_ERROR_COMPONENT);\n private readonly defaultStayMs = inject(CRAFT_STAY_MS);\n private readonly defaultBlankMs = inject(CRAFT_BLANK_MS);\n private readonly defaultPendingMinMs = inject(CRAFT_PENDING_MIN_MS);\n private readonly chainRunner = inject(CRAFT_ROUTE_CHAIN_RUNNER);\n\n private readonly viewTransitionsEnabled = inject(\n CRAFT_VIEW_TRANSITIONS_ENABLED,\n );\n private readonly viewTransitionSkipBlank = inject(\n CRAFT_VIEW_TRANSITION_SKIP_BLANK,\n );\n private readonly startViewTransition = inject(CRAFT_START_VIEW_TRANSITION);\n private readonly syncTemplateFlush = inject(CRAFT_SYNC_TEMPLATE_FLUSH);\n private readonly viewTransitionSink = inject(\n CRAFT_VIEW_TRANSITION,\n ) as unknown as {\n set(value: CraftViewTransitionInput): void;\n };\n private readonly a11yNavigationFocus = inject(CRAFT_A11Y_NAVIGATION_FOCUS);\n private readonly platform = inject(CRAFT_PLATFORM, { optional: true });\n private readonly document = this.platform?.document ?? inject(DOCUMENT);\n private readonly ssrRuntime = inject(CRAFT_SSR_RUNTIME, { optional: true });\n private a11yHasCompletedInitialActivation = false;\n\n readonly displayedComponent: CraftWritableSignal<Type<unknown> | null> =\n craftSignal<Type<unknown> | null>(null);\n readonly displayedTarget: CraftWritableSignal<CraftRouteTarget | null> =\n craftSignal<CraftRouteTarget | null>(null);\n readonly displayedInjector: CraftWritableSignal<Injector | undefined> =\n craftSignal<Injector | undefined>(undefined);\n readonly displayedProps: CraftWritableSignal<\n Readonly<Record<string, unknown>>\n > = craftSignal<Readonly<Record<string, unknown>>>({});\n\n readonly state: CraftWritableSignal<CraftOutletState> =\n craftSignal<CraftOutletState>('idle');\n readonly targetComponent: CraftWritableSignal<Type<unknown> | null> =\n craftSignal<Type<unknown> | null>(null);\n readonly pendingComponent: CraftWritableSignal<Type<unknown> | null> =\n craftSignal<Type<unknown> | null>(null);\n readonly errorComponent: CraftWritableSignal<Type<unknown> | null> =\n craftSignal<Type<unknown> | null>(null);\n readonly pendingTarget: CraftWritableSignal<CraftRouteTarget | null> =\n craftSignal<CraftRouteTarget | null>(null);\n readonly errorTarget: CraftWritableSignal<CraftRouteTarget | null> =\n craftSignal<CraftRouteTarget | null>(null);\n\n private _match: CraftMatch | null = null;\n private _liveMatch: CraftWritableSignal<CraftMatch> | null = null;\n private _childMatch: CraftWritableSignal<CraftMatch | null> | null = null;\n private _activeRouteInjector: Injector | null = null;\n private _meta: CraftRouteMeta | null = null;\n private _navId = 0;\n private _stayTimer: TemporalTaskHandle | null = null;\n private _blankTimer: TemporalTaskHandle | null = null;\n private _pendingCommitTimer: TemporalTaskHandle | null = null;\n private _pendingShownAt = 0;\n private _previousUrl = this.router.url;\n private _pendingDeactivation = false;\n private _reactiveWatch: { destroy(): void } | null = null;\n private _matchWatch: { destroy(): void } | null = null;\n private _frozen = false;\n private _displayVersion = 0;\n\n get isActivated(): boolean {\n return this._match !== null;\n }\n\n get component(): object {\n if (!this._match) {\n throw new Error('CraftRouterOutlet is not activated');\n }\n return (this.targetComponent() ?? {}) as object;\n }\n\n constructor() {\n const matchSignal =\n inject(CRAFT_CHILD_MATCH, { optional: true }) ??\n inject(CRAFT_MATCH, { optional: true });\n if (matchSignal) {\n this._matchWatch = craftWatch(() => {\n const match = matchSignal();\n if (match) {\n this.activateMatch(match, this.rootInjector);\n } else if (this._match) {\n this.deactivate();\n }\n });\n }\n this.destroyRef.onDestroy(() => this.destroy());\n }\n\n destroy(): void {\n this._matchWatch?.destroy();\n this._matchWatch = null;\n this.teardown();\n }\n\n deactivate(): void {\n this.teardown();\n this._match = null;\n this._liveMatch = null;\n this._childMatch = null;\n this._activeRouteInjector = null;\n this._meta = null;\n this._previousUrl = this.router.url;\n this._pendingDeactivation = true;\n queueMicrotask(() => {\n if (this._pendingDeactivation) {\n this._pendingDeactivation = false;\n this.state.set('idle');\n this.displayedComponent.set(null);\n this.displayedTarget.set(null);\n this.targetComponent.set(null);\n this.errorComponent.set(null);\n }\n });\n }\n\n activateMatch(\n match: CraftMatch,\n environmentInjector?: EnvironmentInjector,\n ): void {\n this._pendingDeactivation = false;\n const previousMatchUrl = this._match\n ? serializeLocation(this._match)\n : this._previousUrl;\n const { activated, child } = sliceCraftMatchForOutlet(match);\n\n if (\n this._match &&\n this._liveMatch &&\n this._childMatch &&\n this._activeRouteInjector &&\n this.state() !== 'error' &&\n canReuseActivation(this._match, activated, this._meta)\n ) {\n this._liveMatch.set(activated);\n this._childMatch.set(child);\n this.displayedProps.set(collectMatchProps(activated));\n this.publishViewTransitionPayload();\n return;\n }\n\n this._previousUrl = previousMatchUrl;\n this.teardown();\n this._match = activated;\n this._liveMatch = craftSignal(activated);\n this._childMatch = craftSignal(child);\n const routeProviders = activated.route.providers;\n this._activeRouteInjector = Injector.create({\n providers: [\n { provide: CRAFT_MATCH, useValue: this._liveMatch },\n { provide: CRAFT_CHILD_MATCH, useValue: this._childMatch },\n ...(Array.isArray(routeProviders) ? (routeProviders as never[]) : []),\n ],\n parent: environmentInjector ?? this.rootInjector,\n name: 'CraftRouterOutlet',\n });\n\n this.publishViewTransitionPayload();\n\n const leafMeta = getCraftRouteMeta(\n (activated.route.data ?? activated.data) as Record<\n string | symbol,\n unknown\n >,\n );\n const meta = composeRouteMetas(\n collectAncestorGuardMetas(match, activated),\n leafMeta ?? null,\n );\n this._meta = meta ?? null;\n this.clearExceptionSinks(meta);\n const activation = this.finishActivation(activated, meta ?? null);\n if (this.ssrRuntime) {\n this.ssrRuntime.track(`route:${activated.route.path}`, activation);\n } else {\n void activation;\n }\n }\n\n private async finishActivation(\n match: CraftMatch,\n meta: CraftRouteMeta | null,\n ): Promise<void> {\n if (!this.isCurrentActivation(match)) {\n return;\n }\n if (\n typeof match.route.loadComponent === 'function' &&\n !match.route.component\n ) {\n try {\n const loaded = await runInInjectionContext(\n this._activeRouteInjector ?? this.rootInjector,\n () => Promise.resolve(match.route.loadComponent!()),\n );\n if (!this.isCurrentActivation(match)) {\n return;\n }\n const component =\n loaded && typeof loaded === 'object' && 'default' in loaded\n ? (loaded as { default: unknown }).default\n : loaded;\n match.route.component = component;\n } catch (error) {\n if (!this.isCurrentActivation(match)) {\n return;\n }\n const exception = isCraftRouteLoadError(error)\n ? error\n : createRouteLoadError({\n phase: 'component',\n routePath: match.route.path,\n targetUrl: this.router.url,\n cause: error,\n attempt: 1,\n });\n setActiveCraftRouteLoadError(exception, this.rootInjector);\n this.publishGlobalError(exception);\n void this.showErrorComponent(\n this._meta?.errorComponent ?? this.defaultErrorComponent,\n exception,\n );\n return;\n }\n }\n const component = this.resolveRouteComponent(match);\n this.displayedProps.set(collectMatchProps(match));\n\n if (!meta || (!meta.match && !meta.guard && !meta.resolve)) {\n this.showComponent(\n component,\n this._activeRouteInjector,\n this.resolveRouteTarget(component),\n );\n this.targetComponent.set(component);\n this.state.set('loaded');\n return;\n }\n\n await this.runChain(meta, component, 'enter');\n }\n\n private runChain(\n meta: CraftRouteMeta,\n component: Type<unknown> | null,\n phase: 'enter' | 'active',\n ): Promise<void> {\n const navId = ++this._navId;\n const injector = this._activeRouteInjector ?? this.rootInjector;\n const routeSnapshot = matchToSnapshot(this._match!);\n const stateSnapshot = { url: this.router.url, root: routeSnapshot };\n\n this.state.set('stay');\n void this.resolvePendingComponent(meta);\n\n const stayMs = meta.stayMs ?? this.defaultStayMs;\n const skipBlank = this.shouldSkipBlank(meta);\n const blankMs = skipBlank ? 0 : (meta.blankMs ?? this.defaultBlankMs);\n\n if (!skipBlank) {\n this._stayTimer = this.temporalRuntime.schedule(\n () => {\n if (this._navId === navId && this.state() === 'stay') {\n this.state.set('blank');\n this.displayedComponent.set(null);\n this.displayedTarget.set(null);\n }\n },\n stayMs,\n {\n kind: 'router-stay',\n owner: 'craft-router-outlet',\n destroyRef: this.destroyRef,\n },\n );\n }\n\n this._blankTimer = this.temporalRuntime.schedule(\n () => {\n if (\n this._navId === navId &&\n (this.state() === 'stay' || this.state() === 'blank')\n ) {\n this._pendingShownAt = this.temporalRuntime.now();\n this.state.set('pending');\n this.showComponent(\n this.pendingComponent(),\n injector,\n this.pendingTarget(),\n );\n }\n },\n stayMs + blankMs,\n {\n kind: 'router-pending',\n owner: 'craft-router-outlet',\n destroyRef: this.destroyRef,\n },\n );\n\n return this.chainRunner(\n {\n match: meta.match?.(routeSnapshot as never, stateSnapshot as never),\n guard: meta.guard?.(routeSnapshot as never, stateSnapshot as never),\n resolve:\n phase === 'enter'\n ? meta.resolve?.(routeSnapshot as never, stateSnapshot as never)\n : undefined,\n },\n injector,\n this.router as import('./craft-router').CraftRouter,\n meta.handleExceptions,\n phase,\n ).then(\n (outcome) => {\n if (this._navId === navId) {\n this.applyOutcome(outcome, meta, component, phase);\n }\n },\n (error) => {\n if (this._navId === navId) {\n this.applyOutcome(\n { kind: 'thrownError', error },\n meta,\n component,\n phase,\n );\n }\n },\n );\n }\n\n private applyOutcome(\n outcome: RouteChainOutcome,\n meta: CraftRouteMeta,\n component: Type<unknown> | null,\n _phase: 'enter' | 'active',\n ): void {\n this.clearTimers();\n\n switch (outcome.kind) {\n case 'data':\n meta.guardDataSink?.set(outcome.guardData);\n meta.resolveDataSink?.set(outcome.resolveData);\n this.showTarget(component, meta);\n this.installReactiveGuard(meta, component);\n return;\n case 'noop':\n this.showTarget(component, meta);\n this.installReactiveGuard(meta, component);\n return;\n case 'redirect':\n void this.router.navigateByUrl(String(outcome.target));\n return;\n case 'stay':\n if (this._previousUrl !== this.router.url) {\n void this.router.navigateByUrl(this._previousUrl);\n }\n return;\n case 'render':\n meta.exceptionSinks[outcome.exception._tag]?.set(outcome.exception);\n void this.showErrorComponent(outcome.component, outcome.exception);\n return;\n case 'global':\n this.publishGlobalError(outcome.exception);\n void this.showErrorComponent(\n meta.errorComponent ?? this.defaultErrorComponent,\n outcome.exception,\n );\n return;\n case 'thrownError': {\n const exception = isCraftException(outcome.error)\n ? outcome.error\n : null;\n this.publishGlobalError(exception);\n void this.showErrorComponent(\n meta.errorComponent ?? this.defaultErrorComponent,\n exception,\n );\n return;\n }\n }\n }\n\n private showComponent(\n component: Type<unknown> | null,\n injector: Injector | null,\n target: CraftRouteTarget | null = component\n ? craftRouteTarget(component)\n : null,\n ): void {\n const activationId = this._navId;\n const displayVersion = ++this._displayVersion;\n const props = this.routeProps();\n const commit = () => {\n // The browser may invoke a View Transition callback after a newer\n // activation or swap has already been requested. Such a callback must\n // not resurrect its old component, and its props must belong to the\n // component captured at request time rather than the current route.\n if (\n this._navId !== activationId ||\n this._displayVersion !== displayVersion\n ) {\n return;\n }\n this.displayedInjector.set(injector ?? undefined);\n this.displayedProps.set(props);\n // Publish the target last: CraftRouterOutlet mounts it as soon as the\n // target becomes visible, so its route injector and inputs must already\n // be available or the first render is created with the parent injector\n // and immediately remounted when the injector signal catches up.\n this.displayedTarget.set(target);\n this.displayedComponent.set(component);\n this.syncTemplateFlush();\n };\n\n if (!this.viewTransitionsEnabled) {\n commit();\n this.scheduleA11yNavigationFocus();\n return;\n }\n\n this.startViewTransition(() => {\n commit();\n });\n this.scheduleA11yNavigationFocus();\n }\n\n private scheduleA11yNavigationFocus(): void {\n if (!this.a11yNavigationFocus) {\n return;\n }\n if (!this.a11yHasCompletedInitialActivation) {\n this.a11yHasCompletedInitialActivation = true;\n return;\n }\n queueMicrotask(() => {\n const target =\n this.document.getElementById('main') ??\n this.document.querySelector('main');\n if (!target || target.nodeType !== 1) {\n return;\n }\n const element = target as HTMLElement;\n if (!element.hasAttribute('tabindex')) {\n element.tabIndex = -1;\n }\n element.focus();\n });\n }\n\n private showTarget(\n component: Type<unknown> | null,\n meta: CraftRouteMeta,\n ): void {\n const injector = this._activeRouteInjector ?? this.rootInjector;\n const commit = () => {\n this.showComponent(\n component,\n injector,\n this.resolveRouteTarget(component),\n );\n this.targetComponent.set(component);\n this.state.set('loaded');\n };\n this.commitWithAntiFlicker(commit, meta);\n }\n\n private async showErrorComponent(\n input: CraftExceptionComponentInput | null,\n _exception: AnyCraftException | null,\n ): Promise<void> {\n const resolved = await resolveComponentInput(input);\n const target = resolved ? normalizeCraftRouteTarget(resolved) : null;\n // Removing the Angular interop left this pinned at `null`, which silently\n // emptied the error surface: nothing was reported through\n // `errorComponent()` and nothing was mounted. The component IS the\n // normalized target's — everything Craft renders is a Craft component.\n const component = (target?.component ?? null) as Type<unknown> | null;\n this.errorComponent.set(component);\n this.errorTarget.set(target);\n this.showComponent(\n component,\n this._activeRouteInjector ?? this.rootInjector,\n target,\n );\n this.state.set('error');\n this._frozen = true;\n }\n\n private commitWithAntiFlicker(\n commit: () => void,\n meta: CraftRouteMeta,\n ): void {\n const minMs = meta.pendingMinMs ?? this.defaultPendingMinMs;\n if (this.state() === 'pending' && minMs > 0) {\n const elapsed = this.temporalRuntime.now() - this._pendingShownAt;\n const remaining = minMs - elapsed;\n if (remaining > 0) {\n const navId = this._navId;\n this._pendingCommitTimer = this.temporalRuntime.schedule(\n () => {\n if (this._navId === navId) {\n commit();\n }\n },\n remaining,\n {\n kind: 'router-anti-flicker',\n owner: 'craft-router-outlet',\n destroyRef: this.destroyRef,\n },\n );\n return;\n }\n }\n commit();\n }\n\n private installReactiveGuard(\n meta: CraftRouteMeta,\n component: Type<unknown> | null,\n ): void {\n this._frozen = false;\n\n if (meta.reactiveGuards === false || !meta.guard) {\n return;\n }\n\n const injector = this._activeRouteInjector ?? this.rootInjector;\n const guardFactory = meta.guard;\n const routeSnapshot = matchToSnapshot(this._match!);\n const stateSnapshot = { url: this.router.url, root: routeSnapshot };\n\n this._reactiveWatch = runInInjectionContext(injector, () =>\n craftWatch(() => {\n const result = evaluateCraftGuardSync(\n guardFactory(routeSnapshot as never, stateSnapshot as never),\n injector,\n );\n\n if (this._frozen || result.kind !== 'exception') {\n return;\n }\n\n void this.handleReactiveException(result.exception, meta, component);\n }),\n );\n }\n\n private async handleReactiveException(\n exception: AnyCraftException,\n meta: CraftRouteMeta,\n component: Type<unknown> | null,\n ): Promise<void> {\n const outcome = await this.chainRunner(\n {\n guard: (function* () {\n return exception;\n })(),\n },\n this._activeRouteInjector ?? this.rootInjector,\n this.router as import('./craft-router').CraftRouter,\n meta.handleExceptions,\n 'active',\n );\n this.applyOutcome(outcome, meta, component, 'active');\n }\n\n private shouldSkipBlank(meta: CraftRouteMeta): boolean {\n return (\n this.viewTransitionsEnabled &&\n (meta.withLoaderViewTransitionImage === true ||\n this.viewTransitionSkipBlank)\n );\n }\n\n private publishViewTransitionPayload(): void {\n const extras = this.router.getCurrentNavigation()?.extras;\n const fromNavigation = extras?.state as Record<string, unknown> | undefined;\n const craftState = this.history?.getState() as\n | Record<string, unknown>\n | null\n | undefined;\n const windowState =\n typeof history !== 'undefined'\n ? (history.state as Record<string, unknown> | null | undefined)\n : undefined;\n const source = this.history\n ? craftState\n : extras?.skipLocationChange\n ? fromNavigation\n : windowState;\n const raw =\n source?.[CRAFT_VIEW_TRANSITION_STATE_KEY] ??\n fromNavigation?.[CRAFT_VIEW_TRANSITION_STATE_KEY] ??\n null;\n\n this.viewTransitionSink.set(raw as CraftViewTransitionInput);\n }\n\n private publishGlobalError(exception: AnyCraftException | null): void {\n const sink = this.rootInjector.get(CRAFT_GLOBAL_ERROR) as unknown as {\n set(value: AnyCraftException | null): void;\n };\n sink.set(exception);\n }\n\n private async resolvePendingComponent(meta: CraftRouteMeta): Promise<void> {\n const resolved = await resolvePendingComponentInput(\n meta.pendingComponent ?? this.defaultPendingComponent,\n );\n const target = resolved ? normalizeCraftRouteTarget(resolved) : null;\n const component = null;\n this.pendingComponent.set(component);\n this.pendingTarget.set(target);\n }\n\n private resolveRouteComponent(match: CraftMatch): Type<unknown> | null {\n const component = match.route.component;\n return (component as Type<unknown> | undefined) ?? null;\n }\n\n private resolveRouteTarget(\n component: Type<unknown> | null,\n ): CraftRouteTarget | null {\n return (\n this._activeRouteInjector?.get(CRAFT_ROUTE_TARGET, null) ??\n (component ? craftRouteTarget(component) : null)\n );\n }\n\n private routeProps(): Readonly<Record<string, unknown>> {\n return collectMatchProps(this._match);\n }\n\n private clearTimers(): void {\n if (this._stayTimer !== null) {\n this._stayTimer.cancel();\n this._stayTimer = null;\n }\n if (this._blankTimer !== null) {\n this._blankTimer.cancel();\n this._blankTimer = null;\n }\n if (this._pendingCommitTimer !== null) {\n this._pendingCommitTimer.cancel();\n this._pendingCommitTimer = null;\n }\n }\n\n private teardown(): void {\n this._navId++;\n this.clearTimers();\n this._reactiveWatch?.destroy();\n this._reactiveWatch = null;\n this._frozen = false;\n this.clearExceptionSinks(this._meta);\n }\n\n private clearExceptionSinks(meta: CraftRouteMeta | null | undefined): void {\n if (!meta) return;\n for (const sink of Object.values(meta.exceptionSinks)) sink.set(null);\n }\n\n private isCurrentActivation(match: CraftMatch): boolean {\n return this._match !== null && isSameActivation(this._match, match);\n }\n}\n\nexport function createCraftRouterOutletController(): CraftRouterOutletController {\n return new CraftRouterOutletController();\n}\n\nexport async function resolveComponentInput(\n input: CraftExceptionComponentInput | null | undefined,\n): Promise<CraftRouteTargetInput | null> {\n if (!input) {\n return null;\n }\n if (input.loadComponent) {\n const loaded = await input.loadComponent();\n return loaded && typeof loaded === 'object' && 'default' in loaded\n ? loaded.default\n : loaded;\n }\n return input.component;\n}\n\nasync function resolvePendingComponentInput(\n input: CraftPendingComponentInput | null | undefined,\n): Promise<CraftRouteTargetInput | null> {\n if (!input) return null;\n if (isLazyPendingComponent(input)) {\n return (await input()).default;\n }\n return input;\n}\n\nfunction isLazyPendingComponent(\n input: CraftPendingComponentInput,\n): input is () => Promise<{ default: CraftRouteTargetInput }> {\n return (\n typeof input === 'function' &&\n !isCraftRouteTarget(input) &&\n input.prototype === undefined\n );\n}\n\nexport function craftOutletStateOf(\n outlet: CraftRouterOutletController,\n): CraftWritableSignal<CraftOutletState> {\n return outlet.state;\n}\n\nfunction silentRouter(): CraftRouterNavigationApi {\n return {\n url: '/',\n createUrlTree: (input) => ({\n toString: () => `/${input.to}`,\n __craftUrlTree: true as const,\n }),\n navigate: async () => true,\n navigateByUrl: async () => true,\n serializeUrl: (tree) => tree.toString(),\n getCurrentNavigation: () => null,\n };\n}\n\nfunction collectAncestorGuardMetas(\n fullMatch: CraftMatch,\n activated: CraftMatch,\n): CraftRouteMeta[] {\n const index = fullMatch.routes.indexOf(activated.route);\n if (index <= 0) {\n return [];\n }\n const metas: CraftRouteMeta[] = [];\n for (const route of fullMatch.routes.slice(0, index)) {\n const meta = getCraftRouteMeta(\n route.data as Record<string | symbol, unknown> | undefined,\n );\n if (meta?.match || meta?.guard) {\n metas.push(meta);\n }\n }\n return metas;\n}\n\nfunction composeRouteMetas(\n ancestors: CraftRouteMeta[],\n leaf: CraftRouteMeta | null,\n): CraftRouteMeta | null {\n if (ancestors.length === 0) {\n return leaf;\n }\n const guard: CraftRouteStepFactory = function* (route, state) {\n for (const ancestor of ancestors) {\n if (ancestor.match) {\n const matchResult = yield* ancestor.match(route, state);\n if (matchResult === false) {\n return false;\n }\n }\n if (ancestor.guard) {\n const guardResult = yield* ancestor.guard(route, state);\n if (guardResult === false) {\n return false;\n }\n }\n }\n if (leaf?.match) {\n const matchResult = yield* leaf.match(route, state);\n if (matchResult === false) {\n return false;\n }\n }\n if (leaf?.guard) {\n return yield* leaf.guard(route, state);\n }\n return true;\n };\n if (!leaf) {\n return {\n match: undefined,\n guard,\n resolve: undefined,\n handleExceptions: Object.assign(\n {},\n ...ancestors.map((ancestor) => ancestor.handleExceptions),\n ),\n guardDataSink: null,\n resolveDataSink: null,\n exceptionSinks: {},\n reactiveGuards: false,\n };\n }\n return {\n ...leaf,\n match: undefined,\n guard,\n };\n}\n\nfunction paramNamesForPath(path: string): string[] {\n if (!path || path === '**') {\n return [];\n }\n return path\n .split('/')\n .filter((segment) => segment.startsWith(':'))\n .map((segment) => segment.slice(1).replace(/\\?$/, ''));\n}\n\nfunction paramsForActivatedRoute(\n route: CraftCompiledRoute,\n params: Record<string, string>,\n): Record<string, string> {\n const names = paramNamesForPath(route.path);\n const owned: Record<string, string> = {};\n for (const name of names) {\n if (params[name] !== undefined) {\n owned[name] = params[name];\n }\n }\n return owned;\n}\n\n/**\n * Whether the live component survives this navigation.\n *\n * Angular decides this on the route config ALONE — `RouteReuseStrategy` keeps\n * the instance when `future.routeConfig === curr.routeConfig`, and a separate\n * `runGuardsAndResolvers` decides whether the chain re-runs on a param change.\n * Craft drove both from one comparison, so changing `:userId` tore the\n * component down and took with it whatever state it held — which is why a\n * `preservePreviousValue` query could never preserve anything across a\n * navigation.\n *\n * Craft keeps the component and lets reactivity carry the new params: the\n * fast-path publishes them on the live match signal, `injectRouteParamsSignal`\n * derives from it, and reactive guards re-evaluate off their own watch.\n *\n * Resolvers have no such reactivity yet — `meta.resolve` runs once, in the\n * `'enter'` phase — so a route carrying one still gets a full activation\n * instead of silently stale resolve data.\n */\nfunction canReuseActivation(\n current: CraftMatch,\n next: CraftMatch,\n meta: CraftRouteMeta | null,\n): boolean {\n if (current.route !== next.route) {\n return false;\n }\n return meta?.resolve ? isSameActivation(current, next) : true;\n}\n\nfunction isSameActivation(current: CraftMatch, next: CraftMatch): boolean {\n if (current.route !== next.route) {\n return false;\n }\n const currentParams = paramsForActivatedRoute(current.route, current.params);\n const nextParams = paramsForActivatedRoute(next.route, next.params);\n const currentKeys = Object.keys(currentParams);\n const nextKeys = Object.keys(nextParams);\n if (currentKeys.length !== nextKeys.length) {\n return false;\n }\n return currentKeys.every((key) => currentParams[key] === nextParams[key]);\n}\n\nfunction matchToSnapshot(match: CraftMatch): {\n params: Record<string, string>;\n queryParams: Record<string, string>;\n data: Record<string | symbol, unknown>;\n url: unknown[];\n routeConfig: { path: string };\n pathFromRoot: unknown[];\n component: unknown;\n} {\n return {\n params: match.params,\n queryParams: match.queryParams,\n data: match.data,\n url: [],\n routeConfig: { path: match.route.path },\n pathFromRoot: match.routes.map((route) => ({\n params: match.params,\n data: route.data ?? {},\n queryParams: match.queryParams,\n routeConfig: route,\n })),\n component: match.route.component,\n };\n}\n"]}
@@ -0,0 +1,49 @@
1
+ import { InjectionToken } from './host/craft-compat';
2
+ import type { CraftCompiledRoute, CraftHistory, CraftLocation, CraftMatch } from './host/craft-router-runtime';
3
+ import type { CraftSignal, CraftWritableSignal } from './host/craft-signal';
4
+ export type CraftUrlTree = {
5
+ readonly __craftUrlTree: true;
6
+ toString(): string;
7
+ };
8
+ export type CraftRouterEvent = {
9
+ readonly type: 'NavigationStart' | 'NavigationEnd';
10
+ readonly url: string;
11
+ };
12
+ export type CraftNavigationExtras = {
13
+ replaceUrl?: boolean;
14
+ skipLocationChange?: boolean;
15
+ state?: Record<string, unknown>;
16
+ queryParamsHandling?: 'merge' | 'preserve' | '';
17
+ fragment?: string | null;
18
+ preserveFragment?: boolean;
19
+ };
20
+ export type CraftNavigation = {
21
+ extras?: CraftNavigationExtras;
22
+ };
23
+ export type CraftRouterNavigationApi = {
24
+ readonly url: string;
25
+ createUrlTree(input: {
26
+ to: string;
27
+ params?: Record<string, string>;
28
+ queryParams?: Record<string, string> | null;
29
+ fragment?: string | null;
30
+ }): CraftUrlTree;
31
+ navigate(input: {
32
+ to: string;
33
+ params?: Record<string, string>;
34
+ queryParams?: Record<string, string> | null;
35
+ fragment?: string | null;
36
+ } & CraftNavigationExtras): Promise<boolean>;
37
+ navigateByUrl(url: string | CraftUrlTree | {
38
+ to: string;
39
+ }, extras?: CraftNavigationExtras): Promise<boolean>;
40
+ serializeUrl(tree: CraftUrlTree): string;
41
+ getCurrentNavigation(): CraftNavigation | null;
42
+ };
43
+ export declare const CRAFT_HISTORY: InjectionToken<CraftHistory>;
44
+ export declare const CRAFT_LOCATION: InjectionToken<CraftWritableSignal<CraftLocation>>;
45
+ export declare const CRAFT_MATCH: InjectionToken<CraftSignal<CraftMatch | null>>;
46
+ export declare const CRAFT_CHILD_MATCH: InjectionToken<CraftSignal<CraftMatch | null>>;
47
+ export declare const CRAFT_COMPILED_ROUTES: InjectionToken<readonly CraftCompiledRoute[]>;
48
+ export declare const CRAFT_ROUTER: InjectionToken<CraftRouterNavigationApi>;
49
+ //# sourceMappingURL=craft-router-tokens.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"craft-router-tokens.d.ts","sourceRoot":"","sources":["../../../../../libs/core/src/lib/craft-router-tokens.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAErD,OAAO,KAAK,EACV,kBAAkB,EAClB,YAAY,EACZ,aAAa,EACb,UAAU,EACX,MAAM,6BAA6B,CAAC;AACrC,OAAO,KAAK,EACV,WAAW,EACX,mBAAmB,EACpB,MAAM,qBAAqB,CAAC;AAS7B,MAAM,MAAM,YAAY,GAAG;IACzB,QAAQ,CAAC,cAAc,EAAE,IAAI,CAAC;IAC9B,QAAQ,IAAI,MAAM,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,QAAQ,CAAC,IAAI,EAAE,iBAAiB,GAAG,eAAe,CAAC;IACnD,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG;IAClC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,mBAAmB,CAAC,EAAE,OAAO,GAAG,UAAU,GAAG,EAAE,CAAC;IAChD,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,MAAM,CAAC,EAAE,qBAAqB,CAAC;CAChC,CAAC;AAEF,MAAM,MAAM,wBAAwB,GAAG;IACrC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,KAAK,EAAE;QACnB,EAAE,EAAE,MAAM,CAAC;QACX,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAChC,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC;QAC5C,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;KAC1B,GAAG,YAAY,CAAC;IACjB,QAAQ,CACN,KAAK,EAAE;QACL,EAAE,EAAE,MAAM,CAAC;QACX,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAChC,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC;QAC5C,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;KAC1B,GAAG,qBAAqB,GACxB,OAAO,CAAC,OAAO,CAAC,CAAC;IACpB,aAAa,CACX,GAAG,EAAE,MAAM,GAAG,YAAY,GAAG;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,EAC3C,MAAM,CAAC,EAAE,qBAAqB,GAC7B,OAAO,CAAC,OAAO,CAAC,CAAC;IACpB,YAAY,CAAC,IAAI,EAAE,YAAY,GAAG,MAAM,CAAC;IACzC,oBAAoB,IAAI,eAAe,GAAG,IAAI,CAAC;CAChD,CAAC;AAEF,eAAO,MAAM,aAAa,8BAAmD,CAAC;AAE9E,eAAO,MAAM,cAAc,oDAER,CAAC;AAEpB,eAAO,MAAM,WAAW,gDAEvB,CAAC;AAEF,eAAO,MAAM,iBAAiB,gDAER,CAAC;AAEvB,eAAO,MAAM,qBAAqB,+CAER,CAAC;AAE3B,eAAO,MAAM,YAAY,0CAExB,CAAC"}
@@ -0,0 +1,15 @@
1
+ import { InjectionToken } from './host/craft-compat';
2
+ import { craftToken, ɵregisterCraftTokenHostToken } from './host/craft-injector';
3
+ function angularCraftToken(debugName) {
4
+ const native = craftToken(debugName);
5
+ const host = new InjectionToken(debugName);
6
+ ɵregisterCraftTokenHostToken(native, host);
7
+ return host;
8
+ }
9
+ export const CRAFT_HISTORY = angularCraftToken('CRAFT_HISTORY');
10
+ export const CRAFT_LOCATION = angularCraftToken('CRAFT_LOCATION');
11
+ export const CRAFT_MATCH = angularCraftToken('CRAFT_MATCH');
12
+ export const CRAFT_CHILD_MATCH = angularCraftToken('CRAFT_CHILD_MATCH');
13
+ export const CRAFT_COMPILED_ROUTES = angularCraftToken('CRAFT_COMPILED_ROUTES');
14
+ export const CRAFT_ROUTER = angularCraftToken('CRAFT_ROUTER');
15
+ //# sourceMappingURL=craft-router-tokens.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"craft-router-tokens.js","sourceRoot":"","sources":["../../../../../libs/core/src/lib/craft-router-tokens.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,4BAA4B,EAAE,MAAM,uBAAuB,CAAC;AAYjF,SAAS,iBAAiB,CAAI,SAAiB;IAC7C,MAAM,MAAM,GAAG,UAAU,CAAI,SAAS,CAAC,CAAC;IACxC,MAAM,IAAI,GAAG,IAAI,cAAc,CAAI,SAAS,CAAC,CAAC;IAC9C,4BAA4B,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAC3C,OAAO,IAAI,CAAC;AACd,CAAC;AAiDD,MAAM,CAAC,MAAM,aAAa,GAAG,iBAAiB,CAAe,eAAe,CAAC,CAAC;AAE9E,MAAM,CAAC,MAAM,cAAc,GAAG,iBAAiB,CAE7C,gBAAgB,CAAC,CAAC;AAEpB,MAAM,CAAC,MAAM,WAAW,GAAG,iBAAiB,CAC1C,aAAa,CACd,CAAC;AAEF,MAAM,CAAC,MAAM,iBAAiB,GAAG,iBAAiB,CAEhD,mBAAmB,CAAC,CAAC;AAEvB,MAAM,CAAC,MAAM,qBAAqB,GAAG,iBAAiB,CAEpD,uBAAuB,CAAC,CAAC;AAE3B,MAAM,CAAC,MAAM,YAAY,GAAG,iBAAiB,CAC3C,cAAc,CACf,CAAC","sourcesContent":["import { InjectionToken } from './host/craft-compat';\nimport { craftToken, ɵregisterCraftTokenHostToken } from './host/craft-injector';\nimport type {\n CraftCompiledRoute,\n CraftHistory,\n CraftLocation,\n CraftMatch,\n} from './host/craft-router-runtime';\nimport type {\n CraftSignal,\n CraftWritableSignal,\n} from './host/craft-signal';\n\nfunction angularCraftToken<T>(debugName: string): InjectionToken<T> {\n const native = craftToken<T>(debugName);\n const host = new InjectionToken<T>(debugName);\n ɵregisterCraftTokenHostToken(native, host);\n return host;\n}\n\nexport type CraftUrlTree = {\n readonly __craftUrlTree: true;\n toString(): string;\n};\n\nexport type CraftRouterEvent = {\n readonly type: 'NavigationStart' | 'NavigationEnd';\n readonly url: string;\n};\n\nexport type CraftNavigationExtras = {\n replaceUrl?: boolean;\n skipLocationChange?: boolean;\n state?: Record<string, unknown>;\n queryParamsHandling?: 'merge' | 'preserve' | '';\n fragment?: string | null;\n preserveFragment?: boolean;\n};\n\nexport type CraftNavigation = {\n extras?: CraftNavigationExtras;\n};\n\nexport type CraftRouterNavigationApi = {\n readonly url: string;\n createUrlTree(input: {\n to: string;\n params?: Record<string, string>;\n queryParams?: Record<string, string> | null;\n fragment?: string | null;\n }): CraftUrlTree;\n navigate(\n input: {\n to: string;\n params?: Record<string, string>;\n queryParams?: Record<string, string> | null;\n fragment?: string | null;\n } & CraftNavigationExtras,\n ): Promise<boolean>;\n navigateByUrl(\n url: string | CraftUrlTree | { to: string },\n extras?: CraftNavigationExtras,\n ): Promise<boolean>;\n serializeUrl(tree: CraftUrlTree): string;\n getCurrentNavigation(): CraftNavigation | null;\n};\n\nexport const CRAFT_HISTORY = angularCraftToken<CraftHistory>('CRAFT_HISTORY');\n\nexport const CRAFT_LOCATION = angularCraftToken<\n CraftWritableSignal<CraftLocation>\n>('CRAFT_LOCATION');\n\nexport const CRAFT_MATCH = angularCraftToken<CraftSignal<CraftMatch | null>>(\n 'CRAFT_MATCH',\n);\n\nexport const CRAFT_CHILD_MATCH = angularCraftToken<\n CraftSignal<CraftMatch | null>\n>('CRAFT_CHILD_MATCH');\n\nexport const CRAFT_COMPILED_ROUTES = angularCraftToken<\n readonly CraftCompiledRoute[]\n>('CRAFT_COMPILED_ROUTES');\n\nexport const CRAFT_ROUTER = angularCraftToken<CraftRouterNavigationApi>(\n 'CRAFT_ROUTER',\n);\n"]}
@@ -0,0 +1,18 @@
1
+ import { InjectionToken, Injector, type EnvironmentProviders, type Provider } from './host/craft-compat';
2
+ import type { CraftRoutePhase } from './craft-route-exceptions';
3
+ import { type CraftRouterEvent } from './craft-router-tokens';
4
+ export type CraftRouterTraceStage = 'match' | 'guard' | 'resolve' | 'exceptionHandler';
5
+ export type CraftRouterTraceContext = Readonly<{
6
+ kind: 'routerEvent' | 'routeChain' | 'routeStage';
7
+ phase: 'event' | 'run';
8
+ eventName?: string;
9
+ event?: CraftRouterEvent;
10
+ stage?: CraftRouterTraceStage;
11
+ routePhase?: CraftRoutePhase;
12
+ url?: string;
13
+ }>;
14
+ export type CraftRouterTraceWrapper = (context: CraftRouterTraceContext, next: () => unknown) => unknown;
15
+ export declare const CRAFT_ROUTER_TRACE: InjectionToken<readonly CraftRouterTraceWrapper[]>;
16
+ export declare function provideCraftRouterTrace(wrapper: CraftRouterTraceWrapper): (Provider | EnvironmentProviders)[];
17
+ export declare function executeCraftRouterTrace<Value>(injector: Injector, context: CraftRouterTraceContext, next: () => Value): Value;
18
+ //# sourceMappingURL=craft-router-trace.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"craft-router-trace.d.ts","sourceRoot":"","sources":["../../../../../libs/core/src/lib/craft-router-trace.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,cAAc,EACd,QAAQ,EAGR,KAAK,oBAAoB,EACzB,KAAK,QAAQ,EACd,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAEL,KAAK,gBAAgB,EACtB,MAAM,uBAAuB,CAAC;AAE/B,MAAM,MAAM,qBAAqB,GAC7B,OAAO,GACP,OAAO,GACP,SAAS,GACT,kBAAkB,CAAC;AAEvB,MAAM,MAAM,uBAAuB,GAAG,QAAQ,CAAC;IAC7C,IAAI,EAAE,aAAa,GAAG,YAAY,GAAG,YAAY,CAAC;IAClD,KAAK,EAAE,OAAO,GAAG,KAAK,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,gBAAgB,CAAC;IACzB,KAAK,CAAC,EAAE,qBAAqB,CAAC;IAC9B,UAAU,CAAC,EAAE,eAAe,CAAC;IAC7B,GAAG,CAAC,EAAE,MAAM,CAAC;CACd,CAAC,CAAC;AAEH,MAAM,MAAM,uBAAuB,GAAG,CACpC,OAAO,EAAE,uBAAuB,EAChC,IAAI,EAAE,MAAM,OAAO,KAChB,OAAO,CAAC;AAEb,eAAO,MAAM,kBAAkB,oDAM7B,CAAC;AAeH,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,uBAAuB,GAC/B,CAAC,QAAQ,GAAG,oBAAoB,CAAC,EAAE,CAgCrC;AAED,wBAAgB,uBAAuB,CAAC,KAAK,EAC3C,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,uBAAuB,EAChC,IAAI,EAAE,MAAM,KAAK,GAChB,KAAK,CAgBP"}
@@ -0,0 +1,54 @@
1
+ import { inject, InjectionToken, Injector, provideAppInitializer, runInInjectionContext, } from './host/craft-compat';
2
+ import { CRAFT_ROUTER, } from './craft-router-tokens';
3
+ export const CRAFT_ROUTER_TRACE = new InjectionToken('CRAFT_ROUTER_TRACE', {
4
+ providedIn: 'root',
5
+ factory: () => [],
6
+ multi: true,
7
+ });
8
+ const routerTraceListeners = new WeakSet();
9
+ function craftRouterEvents(router) {
10
+ const events = router.events;
11
+ return events && typeof events.subscribe === 'function' ? events : undefined;
12
+ }
13
+ export function provideCraftRouterTrace(wrapper) {
14
+ return [
15
+ {
16
+ provide: CRAFT_ROUTER_TRACE,
17
+ useValue: wrapper,
18
+ multi: true,
19
+ },
20
+ provideAppInitializer(() => {
21
+ const injector = inject(Injector);
22
+ const router = inject(CRAFT_ROUTER, { optional: true });
23
+ const events = router ? craftRouterEvents(router) : undefined;
24
+ if (!events || routerTraceListeners.has(injector)) {
25
+ return;
26
+ }
27
+ routerTraceListeners.add(injector);
28
+ events.subscribe((event) => {
29
+ executeCraftRouterTrace(injector, {
30
+ kind: 'routerEvent',
31
+ phase: 'event',
32
+ eventName: event.type,
33
+ event,
34
+ url: event.url,
35
+ }, () => undefined);
36
+ });
37
+ }),
38
+ ];
39
+ }
40
+ export function executeCraftRouterTrace(injector, context, next) {
41
+ const wrappers = injector.get(CRAFT_ROUTER_TRACE, []);
42
+ if (wrappers.length === 0) {
43
+ return next();
44
+ }
45
+ const run = (index) => {
46
+ if (index === wrappers.length) {
47
+ return next();
48
+ }
49
+ const wrapper = wrappers[index];
50
+ return wrapper(context, () => run(index + 1));
51
+ };
52
+ return runInInjectionContext(injector, () => run(0));
53
+ }
54
+ //# sourceMappingURL=craft-router-trace.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"craft-router-trace.js","sourceRoot":"","sources":["../../../../../libs/core/src/lib/craft-router-trace.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,MAAM,EACN,cAAc,EACd,QAAQ,EACR,qBAAqB,EACrB,qBAAqB,GAGtB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EACL,YAAY,GAEb,MAAM,uBAAuB,CAAC;AAuB/B,MAAM,CAAC,MAAM,kBAAkB,GAAG,IAAI,cAAc,CAElD,oBAAoB,EAAE;IACtB,UAAU,EAAE,MAAM;IAClB,OAAO,EAAE,GAAG,EAAE,CAAC,EAAE;IACjB,KAAK,EAAE,IAAI;CACZ,CAAC,CAAC;AAEH,MAAM,oBAAoB,GAAG,IAAI,OAAO,EAAY,CAAC;AAMrD,SAAS,iBAAiB,CACxB,MAAc;IAEd,MAAM,MAAM,GAAI,MAAyC,CAAC,MAAM,CAAC;IACjE,OAAO,MAAM,IAAI,OAAO,MAAM,CAAC,SAAS,KAAK,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;AAC/E,CAAC;AAED,MAAM,UAAU,uBAAuB,CACrC,OAAgC;IAEhC,OAAO;QACL;YACE,OAAO,EAAE,kBAAkB;YAC3B,QAAQ,EAAE,OAAO;YACjB,KAAK,EAAE,IAAI;SACZ;QACD,qBAAqB,CAAC,GAAG,EAAE;YACzB,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;YAClC,MAAM,MAAM,GAAG,MAAM,CAAC,YAAY,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;YACxD,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YAE9D,IAAI,CAAC,MAAM,IAAI,oBAAoB,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAClD,OAAO;YACT,CAAC;YACD,oBAAoB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YAEnC,MAAM,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,EAAE;gBACzB,uBAAuB,CACrB,QAAQ,EACR;oBACE,IAAI,EAAE,aAAa;oBACnB,KAAK,EAAE,OAAO;oBACd,SAAS,EAAE,KAAK,CAAC,IAAI;oBACrB,KAAK;oBACL,GAAG,EAAE,KAAK,CAAC,GAAG;iBACf,EACD,GAAG,EAAE,CAAC,SAAS,CAChB,CAAC;YACJ,CAAC,CAAC,CAAC;QACL,CAAC,CAAC;KACH,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,uBAAuB,CACrC,QAAkB,EAClB,OAAgC,EAChC,IAAiB;IAEjB,MAAM,QAAQ,GAAG,QAAQ,CAAC,GAAG,CAAC,kBAAkB,EAAE,EAAE,CAAC,CAAC;IACtD,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO,IAAI,EAAE,CAAC;IAChB,CAAC;IAED,MAAM,GAAG,GAAG,CAAC,KAAa,EAAS,EAAE;QACnC,IAAI,KAAK,KAAK,QAAQ,CAAC,MAAM,EAAE,CAAC;YAC9B,OAAO,IAAI,EAAE,CAAC;QAChB,CAAC;QAED,MAAM,OAAO,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;QAChC,OAAO,OAAO,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC,CAAU,CAAC;IACzD,CAAC,CAAC;IAEF,OAAO,qBAAqB,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AACvD,CAAC","sourcesContent":["import {\n inject,\n InjectionToken,\n Injector,\n provideAppInitializer,\n runInInjectionContext,\n type EnvironmentProviders,\n type Provider,\n} from './host/craft-compat';\nimport type { CraftRoutePhase } from './craft-route-exceptions';\nimport {\n CRAFT_ROUTER,\n type CraftRouterEvent,\n} from './craft-router-tokens';\n\nexport type CraftRouterTraceStage =\n | 'match'\n | 'guard'\n | 'resolve'\n | 'exceptionHandler';\n\nexport type CraftRouterTraceContext = Readonly<{\n kind: 'routerEvent' | 'routeChain' | 'routeStage';\n phase: 'event' | 'run';\n eventName?: string;\n event?: CraftRouterEvent;\n stage?: CraftRouterTraceStage;\n routePhase?: CraftRoutePhase;\n url?: string;\n}>;\n\nexport type CraftRouterTraceWrapper = (\n context: CraftRouterTraceContext,\n next: () => unknown,\n) => unknown;\n\nexport const CRAFT_ROUTER_TRACE = new InjectionToken<\n readonly CraftRouterTraceWrapper[]\n>('CRAFT_ROUTER_TRACE', {\n providedIn: 'root',\n factory: () => [],\n multi: true,\n});\n\nconst routerTraceListeners = new WeakSet<Injector>();\n\ntype CraftRouterEvents = {\n subscribe(fn: (event: CraftRouterEvent) => void): { unsubscribe(): void };\n};\n\nfunction craftRouterEvents(\n router: object,\n): CraftRouterEvents | undefined {\n const events = (router as { events?: CraftRouterEvents }).events;\n return events && typeof events.subscribe === 'function' ? events : undefined;\n}\n\nexport function provideCraftRouterTrace(\n wrapper: CraftRouterTraceWrapper,\n): (Provider | EnvironmentProviders)[] {\n return [\n {\n provide: CRAFT_ROUTER_TRACE,\n useValue: wrapper,\n multi: true,\n },\n provideAppInitializer(() => {\n const injector = inject(Injector);\n const router = inject(CRAFT_ROUTER, { optional: true });\n const events = router ? craftRouterEvents(router) : undefined;\n\n if (!events || routerTraceListeners.has(injector)) {\n return;\n }\n routerTraceListeners.add(injector);\n\n events.subscribe((event) => {\n executeCraftRouterTrace(\n injector,\n {\n kind: 'routerEvent',\n phase: 'event',\n eventName: event.type,\n event,\n url: event.url,\n },\n () => undefined,\n );\n });\n }),\n ];\n}\n\nexport function executeCraftRouterTrace<Value>(\n injector: Injector,\n context: CraftRouterTraceContext,\n next: () => Value,\n): Value {\n const wrappers = injector.get(CRAFT_ROUTER_TRACE, []);\n if (wrappers.length === 0) {\n return next();\n }\n\n const run = (index: number): Value => {\n if (index === wrappers.length) {\n return next();\n }\n\n const wrapper = wrappers[index];\n return wrapper(context, () => run(index + 1)) as Value;\n };\n\n return runInInjectionContext(injector, () => run(0));\n}\n"]}
@@ -0,0 +1,248 @@
1
+ import { type EnvironmentProviders, type Provider } from './host/craft-compat';
2
+ import type { GetDeps } from './branded-component/branded-component';
3
+ import { type CraftLoadingFeature } from './craft-pending';
4
+ import { type GetServiceYields, type SERVICE_HELPER_DEPENDENCIES, type ServiceTrackingMetadata } from './craft-service';
5
+ import type { Simplify } from './craft-service.shared';
6
+ import { type CraftViewTransitionInput, type ViewTransitionPayloadDef } from './craft-view-transition';
7
+ import { type CraftCompiledRoute } from './host/craft-router-runtime';
8
+ import { type CraftNavigation, type CraftNavigationExtras, type CraftRouterEvent, type CraftUrlTree } from './craft-router-tokens';
9
+ export { createBrowserHistory, createMemoryHistory, matchCraftRoutes, matchCraftRoutesAsync, type CraftCompiledRoute, type CraftHistory, type CraftLocation, type CraftMatch, } from './host/craft-router-runtime';
10
+ export { CRAFT_COMPILED_ROUTES, CRAFT_HISTORY, CRAFT_LOCATION, CRAFT_MATCH, CRAFT_ROUTER, type CraftNavigationExtras, type CraftRouterNavigationApi, type CraftUrlTree, } from './craft-router-tokens';
11
+ export interface CraftRouterRoutesRegistry {
12
+ }
13
+ type CraftRouterRoutesRegistryKey = Extract<keyof CraftRouterRoutesRegistry, string>;
14
+ type RegisteredRouteMetaData = CraftRouterRoutesRegistry[CraftRouterRoutesRegistryKey] extends infer Routes ? Routes extends readonly unknown[] ? Routes[number] : never : never;
15
+ type RegisteredRoutePath = RegisteredRouteMetaData extends {
16
+ path: infer Path extends string;
17
+ } ? Path : never;
18
+ export type NavigableRoutePath = Exclude<RegisteredRoutePath, `${string}**${string}`>;
19
+ type RemoveOptionalMarker<Value extends string> = Value extends `${infer Name}?` ? Name : Value;
20
+ type SegmentParamName<Segment extends string> = Segment extends `:${infer Param}` ? RemoveOptionalMarker<Param> : never;
21
+ type PathParamNames<Path extends string> = Path extends `${infer Segment}/${infer Rest}` ? SegmentParamName<Segment> | PathParamNames<Rest> : SegmentParamName<Path>;
22
+ type RouteParamMap<Path extends string> = Simplify<{
23
+ [Key in PathParamNames<Path>]: string;
24
+ }>;
25
+ type RegisteredRouteMetaDataForPath<Path extends string> = Extract<RegisteredRouteMetaData, {
26
+ path: Path;
27
+ }>;
28
+ type QueryParamsNamesFromRouteMetaData<RouteMetaData> = RouteMetaData extends {
29
+ queryParams: infer QueryParams extends object;
30
+ } ? Extract<keyof QueryParams, string> : never;
31
+ type QueryParamsNamesForPath<Path extends string> = QueryParamsNamesFromRouteMetaData<RegisteredRouteMetaDataForPath<Path>>;
32
+ type RouteQueryParamsMap<Path extends string> = Simplify<{
33
+ [Key in QueryParamsNamesForPath<Path>]?: string;
34
+ }>;
35
+ type RouteParamsField<Path extends string> = [PathParamNames<Path>] extends [
36
+ never
37
+ ] ? {
38
+ params?: never;
39
+ } : {
40
+ params: RouteParamMap<Path>;
41
+ };
42
+ type RouteQueryParamsField<Path extends string> = [
43
+ QueryParamsNamesForPath<Path>
44
+ ] extends [never] ? {
45
+ queryParams?: never;
46
+ } : {
47
+ queryParams?: RouteQueryParamsMap<Path>;
48
+ };
49
+ type ViewTransitionInputForPath<Path extends string> = string extends Path ? never : RegisteredRouteMetaDataForPath<Path> extends {
50
+ viewTransition: ViewTransitionPayloadDef<infer Payload>;
51
+ } ? Payload | null : never;
52
+ type RouteViewTransitionField<Path extends string> = [
53
+ ViewTransitionInputForPath<Path>
54
+ ] extends [never] ? {
55
+ viewTransition?: never;
56
+ } : {
57
+ viewTransition: ViewTransitionInputForPath<Path>;
58
+ };
59
+ type CraftRouterAbsoluteTarget<Path extends NavigableRoutePath> = Simplify<{
60
+ to: Path;
61
+ } & RouteParamsField<Path> & RouteQueryParamsField<Path> & RouteViewTransitionField<Path>>;
62
+ type CraftRouterUrlCreationOptions<Path extends string> = Simplify<Omit<CraftNavigationExtras, 'state'> & RouteQueryParamsField<Path>>;
63
+ type CraftRouterNavigationOptions<Path extends string> = Simplify<CraftNavigationExtras & RouteQueryParamsField<Path>>;
64
+ type CraftRouterLinkOptions<Path extends string> = Simplify<Omit<CraftNavigationExtras, 'onSameUrlNavigation' | 'browserUrl' | 'scroll'> & RouteQueryParamsField<Path>>;
65
+ export type CraftRouterUrlTreeInput<Path extends NavigableRoutePath = NavigableRoutePath> = Path extends NavigableRoutePath ? Simplify<Omit<CraftRouterAbsoluteTarget<Path>, 'queryParams'> & CraftRouterUrlCreationOptions<Path>> : never;
66
+ export type CraftRouterNavigationInput<Path extends NavigableRoutePath = NavigableRoutePath> = Path extends NavigableRoutePath ? Simplify<Omit<CraftRouterAbsoluteTarget<Path>, 'queryParams'> & CraftRouterNavigationOptions<Path>> : never;
67
+ export type CraftRouterLinkInput<Path extends NavigableRoutePath = NavigableRoutePath> = Path extends NavigableRoutePath ? Simplify<Omit<CraftRouterAbsoluteTarget<Path>, 'queryParams'> & CraftRouterLinkOptions<Path>> : never;
68
+ export type CraftRouter = {
69
+ readonly url: string;
70
+ createUrlTree(input: CraftRouterUrlTreeInput): CraftUrlTree;
71
+ navigate(input: CraftRouterNavigationInput): Promise<boolean>;
72
+ navigateByUrl(url: string | CraftUrlTree, extras?: CraftNavigationExtras): Promise<boolean>;
73
+ navigateByUrl(input: CraftRouterNavigationInput): Promise<boolean>;
74
+ serializeUrl(tree: CraftUrlTree): string;
75
+ isActive(url: string | CraftUrlTree, extras?: {
76
+ paths?: 'exact' | 'subset';
77
+ queryParams?: string;
78
+ fragment?: string;
79
+ matrixParams?: string;
80
+ }): boolean;
81
+ events: {
82
+ subscribe(fn: (event: CraftRouterEvent) => void): {
83
+ unsubscribe(): void;
84
+ };
85
+ };
86
+ getCurrentNavigation(): CraftNavigation | null;
87
+ };
88
+ type HelperDependencies<Helper> = Helper extends {
89
+ readonly [SERVICE_HELPER_DEPENDENCIES]?: infer Metadata;
90
+ } ? Metadata : never;
91
+ type WithInternalHelperDependencies<Helper> = {
92
+ readonly [SERVICE_HELPER_DEPENDENCIES]?: HelperDependencies<Helper>;
93
+ };
94
+ type CraftRouterInputWithOptionalQueryParams = {
95
+ to: string;
96
+ params?: Record<string, string>;
97
+ queryParams?: Record<string, string> | null;
98
+ fragment?: string | null;
99
+ viewTransition?: CraftViewTransitionInput;
100
+ };
101
+ type CraftRouterTrackingMetadata = ServiceTrackingMetadata<'CraftRouter', 'manuallyProvidedAtRoot', CraftRouter, never, undefined, [
102
+ routes: readonly CraftCompiledRoute[],
103
+ ...features: unknown[]
104
+ ], false, false>;
105
+ type CraftRouterTrackedHelper = {
106
+ readonly [SERVICE_HELPER_DEPENDENCIES]?: CraftRouterTrackingMetadata;
107
+ };
108
+ declare const CraftRouterInternal: Function & CraftRouterTrackedHelper;
109
+ export type CraftRouterYieldRequest = GetServiceYields<typeof CraftRouterInternal>;
110
+ type RoutePathFromInput<Input extends {
111
+ to: NavigableRoutePath;
112
+ }> = Extract<Input['to'], NavigableRoutePath>;
113
+ /**
114
+ * Derived shortcuts for `createUrlTree`, `navigate`, `navigateByUrl`.
115
+ *
116
+ * `to` is constrained to `NavigableRoutePath`, so typos in the path produce a
117
+ * "Did you mean…" error pointing at every registered route. `params` and
118
+ * `queryParams` are validated against that route's definition.
119
+ *
120
+ * This works because the registry is augmented with the slim
121
+ * `CraftRoutesPathRegistry` view (`typeof routes.META_PATHS`) rather than the
122
+ * full `CraftRoutesMetaData`. The slim view excludes `componentDeps`-derived
123
+ * fields, which would otherwise create a self-referencing cycle when the
124
+ * shortcut is called from a component whose own `GenDeps_*` is registered:
125
+ *
126
+ * navigate(...) signature
127
+ * → NavigableRoutePath
128
+ * → CraftRouterRoutesRegistry
129
+ * → componentDeps (GenDeps_X) // ← excluded by META_PATHS
130
+ * → propertiesDeps.method = ExtractDeps<X['method']>
131
+ * → X['method'] inferred from body
132
+ * → body calls navigate(...) ↺ back to the top
133
+ *
134
+ * If a registry augmentation uses `typeof X.META_DATA` instead of
135
+ * `typeof X.META_PATHS`, the cycle returns and TypeScript falls back to
136
+ * `nextPage: any` with TS7022.
137
+ */
138
+ type CraftRouterCraftMethodShortcuts = {
139
+ createUrlTree: <Input extends {
140
+ to: NavigableRoutePath;
141
+ }>(input: Input & CraftRouterUrlTreeInput<RoutePathFromInput<Input>>) => Generator<CraftRouterYieldRequest, CraftUrlTree, unknown>;
142
+ navigate: <Input extends {
143
+ to: NavigableRoutePath;
144
+ }>(input: Input & CraftRouterNavigationInput<RoutePathFromInput<Input>>) => Generator<CraftRouterYieldRequest, Promise<boolean>, unknown>;
145
+ navigateByUrl: <Input extends {
146
+ to: NavigableRoutePath;
147
+ }>(input: Input & CraftRouterNavigationInput<RoutePathFromInput<Input>>) => Generator<CraftRouterYieldRequest, Promise<boolean>, unknown>;
148
+ };
149
+ type RouterPropertyShortcut<Value> = Value extends (...args: infer Args) => infer Result ? Args extends [] ? {
150
+ (): Generator<CraftRouterYieldRequest, Value, unknown>;
151
+ } : {
152
+ (): Generator<CraftRouterYieldRequest, Value, unknown>;
153
+ (...args: Args): Generator<CraftRouterYieldRequest, Result, unknown>;
154
+ } : {
155
+ (): Generator<CraftRouterYieldRequest, Value, unknown>;
156
+ };
157
+ type CraftRouterPropertyShortcuts = CraftRouterCraftMethodShortcuts & {
158
+ [Key in Exclude<keyof CraftRouter, keyof Function | 'then' | 'createUrlTree' | 'navigate' | 'navigateByUrl'>]: RouterPropertyShortcut<CraftRouter[Key]>;
159
+ };
160
+ export type CraftRouterHelper = WithInternalHelperDependencies<typeof CraftRouterInternal> & CraftRouterPropertyShortcuts & {
161
+ (): Generator<CraftRouterYieldRequest, CraftRouter, unknown>;
162
+ <Exposed extends object>(bindings: undefined, expose: (router: CraftRouter) => Exposed): Generator<CraftRouterYieldRequest, Exposed, unknown>;
163
+ };
164
+ /**
165
+ * Registers the Craft history matcher AND the non-blocking outlet's
166
+ * pending/error surface in one call. Craft loading features
167
+ * (`withErrorComponent()`, `withTransitionTimings()`, `withPendingComponent()`,
168
+ * `withLoadingText()`, `withCraftViewTransitions()`) are applied; leftover
169
+ * Angular `RouterFeatures` such as `withComponentInputBinding()` are ignored
170
+ * (input binding is owned by the outlet).
171
+ *
172
+ * ```ts
173
+ * provideCraftRouter(
174
+ * demoRoutes.toRoutes(),
175
+ * withErrorComponent({ component: CraftGlobalErrorComponentHost }),
176
+ * withTransitionTimings({ stayMs: 300, blankMs: 300, pendingMinMs: 500 }),
177
+ * )
178
+ * ```
179
+ */
180
+ export declare function provideCraftRouter(routes: readonly CraftCompiledRoute[] | readonly {
181
+ readonly path?: string;
182
+ }[], ...features: Array<CraftLoadingFeature | unknown>): (Provider | EnvironmentProviders)[];
183
+ /**
184
+ * Yields the `CraftRouter` inside a generator. Two equivalent forms.
185
+ *
186
+ * # Derived shortcut — recommended
187
+ *
188
+ * ```ts
189
+ * yield* CraftRouter.navigate({
190
+ * to: 'query/:userId', // validated against the registry
191
+ * params: { userId: '1' }, // validated against the path's :params
192
+ * });
193
+ * ```
194
+ *
195
+ * `to` must match a path in `CraftRouterRoutesRegistry`; typos produce a
196
+ * "Did you mean…" error. `params` and `queryParams` are validated against
197
+ * that route's declaration.
198
+ *
199
+ * # Full router access
200
+ *
201
+ * ```ts
202
+ * const router = yield* CraftRouter();
203
+ * router.events.subscribe(...);
204
+ * ```
205
+ *
206
+ * Use this when you need a router property the shortcut doesn't expose
207
+ * (e.g. `events`, `routerState`, `url`).
208
+ *
209
+ * # Registry setup
210
+ *
211
+ * For the path validation to work without creating a self-referencing cycle,
212
+ * the registry augmentation must use the slim `META_PATHS` view, not
213
+ * `META_DATA`:
214
+ *
215
+ * ```ts
216
+ * declare module '@craft-ts/core' {
217
+ * interface CraftRouterRoutesRegistry {
218
+ * Demo: typeof demoRoutes.META_PATHS;
219
+ * }
220
+ * }
221
+ * ```
222
+ *
223
+ * `META_DATA` stays available on the same `craftRoutes` result for tooling
224
+ * that needs the full per-route component dependencies (e.g. an e2e test
225
+ * runner that mocks every endpoint a route can reach).
226
+ */
227
+ export declare const CraftRouter: CraftRouterHelper;
228
+ type CraftRouterLinkProps = {
229
+ readonly craftRouterLink: CraftRouterLinkInput | null | undefined;
230
+ };
231
+ /**
232
+ * Functional Craft directive for type-safe router links.
233
+ *
234
+ * @example
235
+ * a({ craftRouterLink: { to: 'tasks' } }, 'Tasks').pipe(CraftRouterLink)
236
+ */
237
+ export declare const CraftRouterLink: import("./craft-node-directive").CraftNodeDirective<CraftRouterLinkProps>;
238
+ export declare function shouldHandleCraftRouterLinkClick(event: MouseEvent, element: Element): boolean;
239
+ export declare function createCraftRouterCommands(input: CraftRouterInputWithOptionalQueryParams): readonly unknown[];
240
+ /** @deprecated Moved to `@craft-ts/angular`. */
241
+ export type GenDeps_LegacyCraftRouterLink = GetDeps<{
242
+ deps: Record<string, never>;
243
+ provided: Record<never, never>;
244
+ missingProvider: Record<string, never>;
245
+ }>;
246
+ /** @deprecated DI metadata belongs to `LegacyCraftRouterLink` only. */
247
+ export type GenDeps_CraftRouterLink = GenDeps_LegacyCraftRouterLink;
248
+ //# sourceMappingURL=craft-router.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"craft-router.d.ts","sourceRoot":"","sources":["../../../../../libs/core/src/lib/craft-router.ts"],"names":[],"mappings":"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"}