@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,437 @@
1
+ import { craftException, } from './craft-exception';
2
+ import { SERVICE_RUNTIME_OVERRIDES, SERVICE_YIELD_REQUEST_MARKER, } from './craft-service';
3
+ import { executeCraftHttpTrace } from './craft-http-trace';
4
+ import { craftFetchTransport, ɵgetCraftHttpResponseMetadata, } from './host/craft-http';
5
+ const CRAFT_HTTP_CLIENT_EXCEPTION_DEPENDENCIES_MARKER = Symbol('craft-http-client-exception-dependencies-marker');
6
+ const CRAFT_HTTP_CLIENT_EXCEPTION_DEPENDENCY_REQUEST_MARKER = Symbol('craft-http-client-exception-dependency-request-marker');
7
+ const craftHttpClientBuilderHelpers = {
8
+ response,
9
+ };
10
+ export const CraftHttpClient = {
11
+ get: function* (build) {
12
+ const config = build(craftHttpClientBuilderHelpers);
13
+ return (yield createCraftHttpClientYieldRequest((injector) => createCraftHttpRequest(injector, 'GET', config)));
14
+ },
15
+ delete: function* (build) {
16
+ const config = build(craftHttpClientBuilderHelpers);
17
+ return (yield createCraftHttpClientYieldRequest((injector) => createCraftHttpRequest(injector, 'DELETE', config)));
18
+ },
19
+ post: function* (build) {
20
+ const config = build(craftHttpClientBuilderHelpers);
21
+ return (yield createCraftHttpClientYieldRequest((injector) => createCraftHttpRequest(injector, 'POST', config)));
22
+ },
23
+ put: function* (build) {
24
+ const config = build(craftHttpClientBuilderHelpers);
25
+ return (yield createCraftHttpClientYieldRequest((injector) => createCraftHttpRequest(injector, 'PUT', config)));
26
+ },
27
+ patch: function* (build) {
28
+ const config = build(craftHttpClientBuilderHelpers);
29
+ return (yield createCraftHttpClientYieldRequest((injector) => createCraftHttpRequest(injector, 'PATCH', config)));
30
+ },
31
+ request: function* (build) {
32
+ const config = build(craftHttpClientBuilderHelpers);
33
+ return (yield createCraftHttpClientYieldRequest((injector) => createCraftHttpRequest(injector, config.method, config)));
34
+ },
35
+ };
36
+ export function response(decoder) {
37
+ return decoder === undefined
38
+ ? undefined
39
+ : { decoder };
40
+ }
41
+ export function getCraftHttpRequestExceptionDependencies(request) {
42
+ const metadata = request[CRAFT_HTTP_CLIENT_EXCEPTION_DEPENDENCIES_MARKER];
43
+ if (!metadata) {
44
+ return [];
45
+ }
46
+ if (metadata.value === undefined) {
47
+ metadata.value = metadata.resolve();
48
+ }
49
+ return metadata.value;
50
+ }
51
+ function createCraftHttpClientYieldRequest(factory) {
52
+ return {
53
+ [SERVICE_YIELD_REQUEST_MARKER]: true,
54
+ name: 'CraftHttpClient',
55
+ providedIn: 'global',
56
+ resolve: (injector) => {
57
+ const override = injector
58
+ .get(SERVICE_RUNTIME_OVERRIDES)
59
+ .get('CraftHttpClient');
60
+ if (override?.kind === 'useValue') {
61
+ return override.value;
62
+ }
63
+ if (override?.kind === 'instantiate') {
64
+ if (override.instance === undefined) {
65
+ override.instance = factory(injector);
66
+ }
67
+ return override.instance;
68
+ }
69
+ return factory(injector);
70
+ },
71
+ };
72
+ }
73
+ function createCraftHttpRequest(injector, method, config) {
74
+ const normalizedMethod = normalizeMethod(method);
75
+ const exceptionDependencies = createCraftHttpClientExceptionDependenciesMetadata(config.exceptions);
76
+ const request = async () => executeCraftHttpTrace(injector, {
77
+ method: normalizedMethod,
78
+ url: config.url,
79
+ params: config.params,
80
+ payload: getConfigPayload(config),
81
+ }, async () => {
82
+ try {
83
+ const response = await craftFetchTransport(toCraftFetchRequest(normalizedMethod, config));
84
+ const responseBody = response.body;
85
+ if (response.status >= 400) {
86
+ return resolveCraftHttpClientError(normalizedMethod, config, toCraftHttpClientErrorResponse(config.url, response));
87
+ }
88
+ const decoder = config.success?.decoder;
89
+ if (!decoder) {
90
+ return responseBody;
91
+ }
92
+ try {
93
+ return (await decoder.decode(responseBody));
94
+ }
95
+ catch (error) {
96
+ return toHttpResponseDecodeError(normalizedMethod, config.url, responseBody, error);
97
+ }
98
+ }
99
+ catch (error) {
100
+ return resolveCraftHttpClientError(normalizedMethod, config, normalizeHttpClientError(config.url, error));
101
+ }
102
+ });
103
+ return Object.defineProperties(request, {
104
+ method: {
105
+ value: normalizedMethod,
106
+ enumerable: false,
107
+ configurable: false,
108
+ },
109
+ url: {
110
+ value: config.url,
111
+ enumerable: false,
112
+ configurable: false,
113
+ },
114
+ params: {
115
+ value: config.params,
116
+ enumerable: false,
117
+ configurable: false,
118
+ },
119
+ payload: {
120
+ value: getConfigPayload(config),
121
+ enumerable: false,
122
+ configurable: false,
123
+ },
124
+ [CRAFT_HTTP_CLIENT_EXCEPTION_DEPENDENCIES_MARKER]: {
125
+ value: exceptionDependencies,
126
+ enumerable: false,
127
+ configurable: false,
128
+ },
129
+ then: {
130
+ value: function (onfulfilled, onrejected) {
131
+ return request().then(onfulfilled, onrejected);
132
+ },
133
+ enumerable: false,
134
+ configurable: false,
135
+ },
136
+ catch: {
137
+ value: function (onrejected) {
138
+ return request().catch(onrejected);
139
+ },
140
+ enumerable: false,
141
+ configurable: false,
142
+ },
143
+ finally: {
144
+ value: function (onfinally) {
145
+ return request().finally(onfinally);
146
+ },
147
+ enumerable: false,
148
+ configurable: false,
149
+ },
150
+ [Symbol.toStringTag]: {
151
+ value: 'Promise',
152
+ enumerable: false,
153
+ configurable: false,
154
+ },
155
+ });
156
+ }
157
+ function toCraftFetchRequest(method, config) {
158
+ const urlSearchParams = config.params instanceof URLSearchParams ? config.params : undefined;
159
+ return {
160
+ url: urlSearchParams === undefined
161
+ ? config.url
162
+ : appendCraftHttpClientSearchParams(config.url, urlSearchParams),
163
+ method,
164
+ headers: config.headers,
165
+ params: urlSearchParams === undefined
166
+ ? normalizeCraftHttpClientParams(config.params)
167
+ : undefined,
168
+ body: getConfigPayload(config),
169
+ signal: config.signal,
170
+ timeout: config.timeout,
171
+ };
172
+ }
173
+ function appendCraftHttpClientSearchParams(url, params) {
174
+ const serialized = params.toString();
175
+ if (!serialized) {
176
+ return url;
177
+ }
178
+ const hashIndex = url.indexOf('#');
179
+ const hash = hashIndex === -1 ? '' : url.slice(hashIndex);
180
+ const baseUrl = hashIndex === -1 ? url : url.slice(0, hashIndex);
181
+ return `${baseUrl}${baseUrl.includes('?') ? '&' : '?'}${serialized}${hash}`;
182
+ }
183
+ function normalizeCraftHttpClientParams(params) {
184
+ if (params === undefined) {
185
+ return undefined;
186
+ }
187
+ return params instanceof URLSearchParams ? undefined : { ...params };
188
+ }
189
+ function getConfigPayload(config) {
190
+ return 'payload' in config ? config.payload : undefined;
191
+ }
192
+ function normalizeMethod(method) {
193
+ return method.toUpperCase();
194
+ }
195
+ function collectCraftHttpClientExceptionDependencies(rules) {
196
+ if (!rules?.length) {
197
+ return [];
198
+ }
199
+ return rules.map((rule, ruleIndex) => ({
200
+ ruleIndex,
201
+ dependencies: collectCraftHttpClientExceptionRuleDependencies(rule),
202
+ }));
203
+ }
204
+ function createCraftHttpClientExceptionDependenciesMetadata(rules) {
205
+ return {
206
+ resolve: () => collectCraftHttpClientExceptionDependencies(rules),
207
+ };
208
+ }
209
+ function collectCraftHttpClientExceptionRuleDependencies(rule) {
210
+ const dependencies = [];
211
+ executeCraftHttpClientExceptionRule(rule, {
212
+ resolveRequest: (request) => request.preview(),
213
+ onDependency: (dependency) => {
214
+ dependencies.push(dependency);
215
+ },
216
+ });
217
+ return dependencies;
218
+ }
219
+ function resolveCraftHttpClientError(method, config, error) {
220
+ const customException = resolveCraftHttpClientException(config.exceptions, error);
221
+ return customException ?? toCraftHttpClientError(method, config.url, error);
222
+ }
223
+ function resolveCraftHttpClientException(rules, error) {
224
+ if (!rules?.length) {
225
+ return undefined;
226
+ }
227
+ for (const rule of rules) {
228
+ const customException = executeCraftHttpClientExceptionRule(rule, {
229
+ resolveRequest: (request) => request.evaluate(error),
230
+ });
231
+ if (customException) {
232
+ return customException;
233
+ }
234
+ }
235
+ return undefined;
236
+ }
237
+ function executeCraftHttpClientExceptionRule(rule, options) {
238
+ const iterator = rule(craftHttpClientExceptionRuleHelpers);
239
+ let current = iterator.next();
240
+ while (!current.done) {
241
+ const yielded = current.value;
242
+ if (isCraftHttpClientExceptionDependencyRequest(yielded)) {
243
+ options.onDependency?.(yielded.dependency);
244
+ current = iterator.next(options.resolveRequest(yielded));
245
+ continue;
246
+ }
247
+ throw new Error('CraftHttpClient exception rules must only yield status, code, content, body or header helpers.');
248
+ }
249
+ return current.value ?? undefined;
250
+ }
251
+ const craftHttpClientExceptionRuleHelpers = {
252
+ status: ((expected) => createCraftHttpClientExceptionToken({
253
+ dependency: expected === undefined
254
+ ? {
255
+ source: 'status',
256
+ mode: 'read',
257
+ }
258
+ : {
259
+ source: 'status',
260
+ mode: 'match',
261
+ expected,
262
+ },
263
+ evaluate: (error) => expected === undefined
264
+ ? error.status
265
+ : matchHttpClientExceptionValue(error.status, expected),
266
+ preview: () => (expected === undefined ? 400 : expected),
267
+ })),
268
+ code: ((expected) => createCraftHttpClientExceptionToken({
269
+ dependency: expected === undefined
270
+ ? {
271
+ source: 'code',
272
+ mode: 'read',
273
+ }
274
+ : {
275
+ source: 'code',
276
+ mode: 'match',
277
+ expected,
278
+ },
279
+ evaluate: (error) => {
280
+ const code = readCraftHttpClientErrorCode(error);
281
+ return expected === undefined
282
+ ? code
283
+ : matchHttpClientExceptionValue(code, expected);
284
+ },
285
+ preview: () => (expected === undefined ? 'preview-code' : expected),
286
+ })),
287
+ content: ((expected) => createCraftHttpClientExceptionToken({
288
+ dependency: expected === undefined
289
+ ? {
290
+ source: 'content',
291
+ mode: 'read',
292
+ }
293
+ : {
294
+ source: 'content',
295
+ mode: 'match',
296
+ expected,
297
+ },
298
+ evaluate: (error) => {
299
+ const content = readCraftHttpClientErrorContent(error);
300
+ return expected === undefined
301
+ ? content
302
+ : matchHttpClientExceptionValue(content, expected);
303
+ },
304
+ preview: () => (expected === undefined ? 'preview-content' : expected),
305
+ })),
306
+ body: () => createCraftHttpClientExceptionToken({
307
+ dependency: {
308
+ source: 'body',
309
+ mode: 'read',
310
+ },
311
+ evaluate: (error) => error.error,
312
+ preview: () => craftHttpClientExceptionPreviewValue,
313
+ }),
314
+ header: ((name, expected) => createCraftHttpClientExceptionToken({
315
+ dependency: expected === undefined
316
+ ? {
317
+ source: 'header',
318
+ mode: 'read',
319
+ name,
320
+ }
321
+ : {
322
+ source: 'header',
323
+ mode: 'match',
324
+ name,
325
+ expected,
326
+ },
327
+ evaluate: (error) => {
328
+ const headerValue = normalizeCraftHttpClientHeaderValue(error.headers.get(name));
329
+ return expected === undefined
330
+ ? headerValue
331
+ : matchHttpClientExceptionValue(headerValue, expected);
332
+ },
333
+ preview: () => (expected === undefined ? 'preview-header' : expected),
334
+ })),
335
+ };
336
+ const craftHttpClientExceptionPreviewValue = new Proxy(() => craftHttpClientExceptionPreviewValue, {
337
+ apply: () => craftHttpClientExceptionPreviewValue,
338
+ get: () => craftHttpClientExceptionPreviewValue,
339
+ });
340
+ function createCraftHttpClientExceptionToken(request) {
341
+ const dependencyRequest = createCraftHttpClientExceptionDependencyRequest(request);
342
+ return (function* () {
343
+ return (yield dependencyRequest);
344
+ })();
345
+ }
346
+ function createCraftHttpClientExceptionDependencyRequest(request) {
347
+ return {
348
+ [CRAFT_HTTP_CLIENT_EXCEPTION_DEPENDENCY_REQUEST_MARKER]: true,
349
+ ...request,
350
+ };
351
+ }
352
+ function isCraftHttpClientExceptionDependencyRequest(value) {
353
+ return (typeof value === 'object' &&
354
+ value !== null &&
355
+ CRAFT_HTTP_CLIENT_EXCEPTION_DEPENDENCY_REQUEST_MARKER in value);
356
+ }
357
+ function matchHttpClientExceptionValue(value, expected) {
358
+ return Object.is(value, expected) ? expected : undefined;
359
+ }
360
+ function readCraftHttpClientErrorCode(error) {
361
+ const payload = error.error;
362
+ return payload && typeof payload === 'object' && 'code' in payload
363
+ ? payload.code
364
+ : undefined;
365
+ }
366
+ function readCraftHttpClientErrorContent(error) {
367
+ if (typeof error.error === 'string') {
368
+ return error.error;
369
+ }
370
+ if (error.error &&
371
+ typeof error.error === 'object' &&
372
+ 'message' in error.error &&
373
+ typeof error.error.message === 'string') {
374
+ return error.error.message;
375
+ }
376
+ return undefined;
377
+ }
378
+ function normalizeCraftHttpClientHeaderValue(value) {
379
+ return value ?? undefined;
380
+ }
381
+ function normalizeHttpClientError(url, error) {
382
+ return {
383
+ error,
384
+ headers: new Headers(),
385
+ status: 0,
386
+ statusText: 'Unknown Error',
387
+ url,
388
+ };
389
+ }
390
+ function toCraftHttpClientErrorResponse(url, response) {
391
+ const metadata = ɵgetCraftHttpResponseMetadata(response);
392
+ return {
393
+ error: response.body,
394
+ headers: metadata?.headers ?? new Headers(),
395
+ status: response.status,
396
+ statusText: metadata?.statusText ?? '',
397
+ url: metadata?.url ?? url,
398
+ };
399
+ }
400
+ function toCraftHttpClientError(method, url, error) {
401
+ return craftException({
402
+ _tag: 'HttpError',
403
+ scope: 'HttpClient',
404
+ identifier: `${method} ${url}`,
405
+ }, {
406
+ error,
407
+ method,
408
+ url,
409
+ });
410
+ }
411
+ function toHttpResponseDecodeError(method, url, response, error) {
412
+ const issues = extractDecodeIssues(error);
413
+ return craftException({
414
+ _tag: 'HttpResponseDecodeError',
415
+ scope: 'HttpClient',
416
+ identifier: `${method} ${url}`,
417
+ }, {
418
+ method,
419
+ url,
420
+ response,
421
+ error,
422
+ ...(issues === undefined ? {} : { issues }),
423
+ });
424
+ }
425
+ function extractDecodeIssues(error) {
426
+ if (!error || typeof error !== 'object') {
427
+ return undefined;
428
+ }
429
+ if ('issues' in error) {
430
+ return error.issues;
431
+ }
432
+ if ('issue' in error && error.issue && typeof error.issue === 'object') {
433
+ return error.issue;
434
+ }
435
+ return undefined;
436
+ }
437
+ //# sourceMappingURL=craft-http-client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"craft-http-client.js","sourceRoot":"","sources":["../../../../../libs/core/src/lib/craft-http-client.ts"],"names":[],"mappings":"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","sourcesContent":["import type { Injector } from './host/craft-compat';\nimport {\n craftException,\n type AnyCraftException,\n type CraftExceptionResult,\n} from './craft-exception';\nimport {\n SERVICE_RUNTIME_OVERRIDES,\n SERVICE_YIELD_REQUEST_MARKER,\n type ServiceTrackingMetadata,\n type ServiceYieldRequest,\n} from './craft-service';\nimport type { CraftDecoder } from './craft-codec';\nimport { executeCraftHttpTrace } from './craft-http-trace';\nimport {\n craftFetchTransport,\n type CraftHttpResponse,\n ɵgetCraftHttpResponseMetadata,\n} from './host/craft-http';\n\ndeclare const CRAFT_HTTP_CLIENT_SUCCESS_MARKER: unique symbol;\ndeclare const CRAFT_HTTP_CLIENT_EXCEPTIONS_MARKER: unique symbol;\ndeclare const CRAFT_HTTP_CLIENT_EXCEPTION_TYPE_DEPENDENCIES_MARKER: unique symbol;\ndeclare const CRAFT_HTTP_CLIENT_EXCEPTION_BODY_TYPE_MARKER: unique symbol;\nconst CRAFT_HTTP_CLIENT_EXCEPTION_DEPENDENCIES_MARKER = Symbol(\n 'craft-http-client-exception-dependencies-marker',\n);\n\nconst CRAFT_HTTP_CLIENT_EXCEPTION_DEPENDENCY_REQUEST_MARKER = Symbol(\n 'craft-http-client-exception-dependency-request-marker',\n);\n\nexport type CraftHttpClientParams =\n | URLSearchParams\n | Readonly<Record<string, string | number | boolean | undefined>>;\n\nexport type CraftHttpClientJsonOptions = {\n headers?: Readonly<Record<string, string>>;\n params?: CraftHttpClientParams;\n signal?: AbortSignal;\n timeout?: number;\n};\n\nexport type CraftHttpClientJsonRequestOptions<Payload = unknown> =\n CraftHttpClientJsonOptions & {\n payload?: Payload | null;\n };\n\nexport type CraftHttpClientErrorResponse = {\n error: unknown;\n headers: Headers;\n status: number;\n statusText: string;\n url: string;\n};\n\nexport type CraftHttpClientErrorPayload = {\n error: CraftHttpClientErrorResponse;\n method: string;\n url: string;\n};\n\nexport type CraftHttpClientError = CraftExceptionResult<\n {\n _tag: 'HttpError';\n scope: 'HttpClient';\n identifier?: string;\n },\n CraftHttpClientErrorPayload\n>;\n\nexport type CraftHttpResponseDecodeErrorPayload = {\n method: string;\n url: string;\n response: unknown;\n error: unknown;\n issues?: unknown;\n};\n\nexport type HttpResponseDecodeError = CraftExceptionResult<\n {\n _tag: 'HttpResponseDecodeError';\n scope: 'HttpClient';\n identifier?: string;\n },\n CraftHttpResponseDecodeErrorPayload\n>;\n\ntype CraftHttpClientExceptionDependencyMode = 'read' | 'match';\n\nexport type CraftHttpClientBodyExceptionDependency<Body = unknown> = {\n source: 'body';\n mode: 'read';\n readonly [CRAFT_HTTP_CLIENT_EXCEPTION_BODY_TYPE_MARKER]?: Body;\n};\n\nexport type CraftHttpClientExceptionDependency =\n | {\n source: 'status';\n mode: CraftHttpClientExceptionDependencyMode;\n expected?: number;\n }\n | {\n source: 'code';\n mode: CraftHttpClientExceptionDependencyMode;\n expected?: unknown;\n }\n | {\n source: 'content';\n mode: CraftHttpClientExceptionDependencyMode;\n expected?: string;\n }\n | CraftHttpClientBodyExceptionDependency\n | {\n source: 'header';\n mode: CraftHttpClientExceptionDependencyMode;\n name: string;\n expected?: string;\n };\n\nexport type CraftHttpClientExceptionRuleDependencies = {\n ruleIndex: number;\n dependencies: readonly CraftHttpClientExceptionDependency[];\n};\n\ntype CraftHttpClientExceptionDependencies =\n readonly CraftHttpClientExceptionRuleDependencies[];\ntype CraftHttpClientExceptionDependenciesMetadata = {\n value?: CraftHttpClientExceptionDependencies;\n resolve: () => CraftHttpClientExceptionDependencies;\n};\n\ntype CraftHttpClientExceptionDependencyRequest<\n Dependency extends\n CraftHttpClientExceptionDependency = CraftHttpClientExceptionDependency,\n Result = unknown,\n> = Readonly<{\n [CRAFT_HTTP_CLIENT_EXCEPTION_DEPENDENCY_REQUEST_MARKER]: true;\n dependency: Dependency;\n evaluate: (error: CraftHttpClientErrorResponse) => Result;\n preview: () => Result;\n}>;\n\ntype CraftHttpClientStatusExceptionHelper = {\n (): Generator<\n CraftHttpClientExceptionDependencyRequest<\n {\n source: 'status';\n mode: 'read';\n },\n number\n >,\n number,\n unknown\n >;\n <const Expected extends number>(\n expected: Expected,\n ): Generator<\n CraftHttpClientExceptionDependencyRequest<\n {\n source: 'status';\n mode: 'match';\n expected: Expected;\n },\n Expected | undefined\n >,\n Expected | undefined,\n unknown\n >;\n};\n\ntype CraftHttpClientCodeExceptionHelper = {\n (): Generator<\n CraftHttpClientExceptionDependencyRequest<\n {\n source: 'code';\n mode: 'read';\n },\n unknown\n >,\n unknown,\n unknown\n >;\n <const Expected>(expected: Expected): Generator<\n CraftHttpClientExceptionDependencyRequest<\n {\n source: 'code';\n mode: 'match';\n expected: Expected;\n },\n Expected | undefined\n >,\n Expected | undefined,\n unknown\n >;\n};\n\ntype CraftHttpClientContentExceptionHelper = {\n (): Generator<\n CraftHttpClientExceptionDependencyRequest<\n {\n source: 'content';\n mode: 'read';\n },\n string | undefined\n >,\n string | undefined,\n unknown\n >;\n <const Expected extends string>(\n expected: Expected,\n ): Generator<\n CraftHttpClientExceptionDependencyRequest<\n {\n source: 'content';\n mode: 'match';\n expected: Expected;\n },\n Expected | undefined\n >,\n Expected | undefined,\n unknown\n >;\n};\n\ntype CraftHttpClientHeaderExceptionHelper = {\n <const HeaderName extends string>(\n name: HeaderName,\n ): Generator<\n CraftHttpClientExceptionDependencyRequest<\n {\n source: 'header';\n mode: 'read';\n name: HeaderName;\n },\n string | undefined\n >,\n string | undefined,\n unknown\n >;\n <const HeaderName extends string, const Expected extends string>(\n name: HeaderName,\n expected: Expected,\n ): Generator<\n CraftHttpClientExceptionDependencyRequest<\n {\n source: 'header';\n mode: 'match';\n name: HeaderName;\n expected: Expected;\n },\n Expected | undefined\n >,\n Expected | undefined,\n unknown\n >;\n};\n\ntype CraftHttpClientExceptionRuleHelpers = Readonly<{\n status: CraftHttpClientStatusExceptionHelper;\n code: CraftHttpClientCodeExceptionHelper;\n content: CraftHttpClientContentExceptionHelper;\n body: <Body = unknown>() => Generator<\n CraftHttpClientExceptionDependencyRequest<\n CraftHttpClientBodyExceptionDependency<Body>,\n Body\n >,\n Body,\n unknown\n >;\n header: CraftHttpClientHeaderExceptionHelper;\n}>;\n\nexport type CraftHttpClientExceptionRule<\n CustomException extends AnyCraftException = AnyCraftException,\n> = (\n helpers: CraftHttpClientExceptionRuleHelpers,\n) => Generator<\n CraftHttpClientExceptionDependencyRequest<any, unknown>,\n CustomException | undefined | void,\n unknown\n>;\n\ntype AttachCraftHttpClientExceptionDependencies<Exception, Dependencies> =\n Exception extends AnyCraftException\n ? Exception & {\n readonly [CRAFT_HTTP_CLIENT_EXCEPTION_TYPE_DEPENDENCIES_MARKER]?: Dependencies;\n }\n : never;\n\nexport type ExtractCraftHttpClientExceptionDependencies<Exception> =\n Exception extends {\n readonly [CRAFT_HTTP_CLIENT_EXCEPTION_TYPE_DEPENDENCIES_MARKER]?: infer Dependencies;\n }\n ? Dependencies\n : never;\n\nexport type ExtractCraftHttpClientExceptionBodyTypeFromDependency<Dependency> =\n Dependency extends {\n readonly [CRAFT_HTTP_CLIENT_EXCEPTION_BODY_TYPE_MARKER]?: infer Body;\n }\n ? Body\n : never;\n\nexport type ExtractCraftHttpClientExceptionBodyType<Exception> =\n ExtractCraftHttpClientExceptionBodyTypeFromDependency<\n Extract<\n ExtractCraftHttpClientExceptionDependencies<Exception>,\n { source: 'body' }\n >\n >;\n\ntype CraftHttpClientSuccessToken<Success> = {\n readonly [CRAFT_HTTP_CLIENT_SUCCESS_MARKER]?: Success;\n};\n\ntype CraftHttpClientDecodedSuccessToken<Success> =\n CraftHttpClientSuccessToken<Success> & {\n readonly decoder: CraftDecoder<Success>;\n };\n\ntype CraftHttpClientBaseConfig = Omit<CraftHttpClientJsonOptions, 'params'> & {\n url: string;\n params?: CraftHttpClientParams;\n success: CraftHttpClientSuccessToken<unknown>;\n exceptions?: readonly CraftHttpClientExceptionRule[];\n};\n\ntype CraftHttpClientBodyConfig = CraftHttpClientBaseConfig & {\n payload: unknown | null;\n};\n\ntype CraftHttpClientRequestConfig = CraftHttpClientBaseConfig & {\n method: string;\n payload?: unknown | null;\n};\n\ntype ExtractCraftHttpClientUrl<Config> = Config extends {\n url: infer Url extends string;\n}\n ? Url\n : never;\n\ntype ExtractCraftHttpClientMethod<Config> = Config extends {\n method: infer Method extends string;\n}\n ? Method\n : never;\n\ntype ExtractCraftHttpClientSuccess<Config> = Config extends {\n success: CraftHttpClientSuccessToken<infer Success>;\n}\n ? Success\n : never;\n\ntype ExtractCraftHttpClientResponseDecodeError<Config> = Config extends {\n success: { readonly decoder: CraftDecoder<any> };\n}\n ? HttpResponseDecodeError\n : never;\n\ntype ExtractCraftHttpClientParams<Config> = Config extends {\n params: infer Params;\n}\n ? Params\n : undefined;\n\ntype ExtractCraftHttpClientPayload<Config> = Config extends {\n payload: infer Payload;\n}\n ? Payload\n : undefined;\n\ntype ExtractCraftHttpClientExceptionDependenciesFromYielded<Yielded> =\n Yielded extends CraftHttpClientExceptionDependencyRequest<\n infer Dependency,\n any\n >\n ? Dependency\n : never;\n\ntype ExtractCraftHttpClientExceptionFromRule<Rule> = Rule extends (\n ...args: any[]\n) => Generator<infer Yielded, infer CustomException, unknown>\n ? AttachCraftHttpClientExceptionDependencies<\n Extract<Exclude<CustomException, undefined | void>, AnyCraftException>,\n ExtractCraftHttpClientExceptionDependenciesFromYielded<Yielded>\n >\n : never;\n\ntype ExtractCraftHttpClientExceptions<Config> = Config extends {\n exceptions: ReadonlyArray<infer Rule>;\n}\n ? ExtractCraftHttpClientExceptionFromRule<Rule>\n : never;\n\nexport type CraftHttpClientResolved<\n Success,\n CustomException extends AnyCraftException = never,\n ResponseDecodeException extends AnyCraftException = never,\n> = Success | CustomException | ResponseDecodeException | CraftHttpClientError;\n\nexport type CraftHttpClientResult<\n Success,\n CustomException extends AnyCraftException = never,\n ResponseDecodeException extends AnyCraftException = never,\n> = Promise<\n CraftHttpClientResolved<Success, CustomException, ResponseDecodeException>\n>;\n\nexport type CraftHttpRequest<\n Method extends string = string,\n Url extends string = string,\n Success = unknown,\n Params = undefined,\n Payload = undefined,\n CustomException extends AnyCraftException = never,\n ResponseDecodeException extends AnyCraftException = never,\n> = (() => CraftHttpClientResult<\n Success,\n CustomException,\n ResponseDecodeException\n>) &\n Promise<\n CraftHttpClientResolved<Success, CustomException, ResponseDecodeException>\n > & {\n readonly method: Method;\n readonly url: Url;\n readonly params: Params;\n readonly payload: Payload;\n readonly [CRAFT_HTTP_CLIENT_SUCCESS_MARKER]?: Success;\n readonly [CRAFT_HTTP_CLIENT_EXCEPTIONS_MARKER]?: CustomException;\n readonly [CRAFT_HTTP_CLIENT_EXCEPTION_DEPENDENCIES_MARKER]?: CraftHttpClientExceptionDependenciesMetadata;\n };\n\ntype AnyCraftHttpRequest = CraftHttpRequest<\n string,\n string,\n unknown,\n unknown,\n unknown,\n AnyCraftException\n>;\n\ntype CraftHttpTrackedRequest<Request extends AnyCraftHttpRequest> =\n ServiceYieldRequest<\n 'global',\n Request,\n ServiceTrackingMetadata<\n 'CraftHttpClient',\n 'global',\n Request,\n never,\n {\n derivedPropertiesUsed: {\n $self: Request;\n };\n derivedPropertiesExposed: {\n $self: Request;\n };\n },\n never,\n true\n >\n >;\n\ntype CraftHttpRequestFromConfig<\n Method extends string,\n Config extends CraftHttpClientBaseConfig,\n> = CraftHttpRequest<\n Method,\n ExtractCraftHttpClientUrl<Config>,\n ExtractCraftHttpClientSuccess<Config>,\n ExtractCraftHttpClientParams<Config>,\n ExtractCraftHttpClientPayload<Config>,\n ExtractCraftHttpClientExceptions<Config>,\n ExtractCraftHttpClientResponseDecodeError<Config>\n>;\n\ntype CraftHttpRequestFromRequestConfig<\n Config extends CraftHttpClientRequestConfig,\n> = CraftHttpRequest<\n Uppercase<ExtractCraftHttpClientMethod<Config>>,\n ExtractCraftHttpClientUrl<Config>,\n ExtractCraftHttpClientSuccess<Config>,\n ExtractCraftHttpClientParams<Config>,\n ExtractCraftHttpClientPayload<Config>,\n ExtractCraftHttpClientExceptions<Config>,\n ExtractCraftHttpClientResponseDecodeError<Config>\n>;\n\ntype CraftHttpClientBuilderHelpers = {\n response: typeof response;\n};\n\ntype CraftHttpClientDsl = {\n get: <const Config extends CraftHttpClientBaseConfig>(\n build: (helpers: CraftHttpClientBuilderHelpers) => Config,\n ) => Generator<\n CraftHttpTrackedRequest<CraftHttpRequestFromConfig<'GET', Config>>,\n CraftHttpRequestFromConfig<'GET', Config>,\n unknown\n >;\n delete: <const Config extends CraftHttpClientBaseConfig>(\n build: (helpers: CraftHttpClientBuilderHelpers) => Config,\n ) => Generator<\n CraftHttpTrackedRequest<CraftHttpRequestFromConfig<'DELETE', Config>>,\n CraftHttpRequestFromConfig<'DELETE', Config>,\n unknown\n >;\n post: <const Config extends CraftHttpClientBodyConfig>(\n build: (helpers: CraftHttpClientBuilderHelpers) => Config,\n ) => Generator<\n CraftHttpTrackedRequest<CraftHttpRequestFromConfig<'POST', Config>>,\n CraftHttpRequestFromConfig<'POST', Config>,\n unknown\n >;\n put: <const Config extends CraftHttpClientBodyConfig>(\n build: (helpers: CraftHttpClientBuilderHelpers) => Config,\n ) => Generator<\n CraftHttpTrackedRequest<CraftHttpRequestFromConfig<'PUT', Config>>,\n CraftHttpRequestFromConfig<'PUT', Config>,\n unknown\n >;\n patch: <const Config extends CraftHttpClientBodyConfig>(\n build: (helpers: CraftHttpClientBuilderHelpers) => Config,\n ) => Generator<\n CraftHttpTrackedRequest<CraftHttpRequestFromConfig<'PATCH', Config>>,\n CraftHttpRequestFromConfig<'PATCH', Config>,\n unknown\n >;\n request: <const Config extends CraftHttpClientRequestConfig>(\n build: (helpers: CraftHttpClientBuilderHelpers) => Config,\n ) => Generator<\n CraftHttpTrackedRequest<CraftHttpRequestFromRequestConfig<Config>>,\n CraftHttpRequestFromRequestConfig<Config>,\n unknown\n >;\n};\n\nconst craftHttpClientBuilderHelpers: CraftHttpClientBuilderHelpers = {\n response,\n};\n\nexport const CraftHttpClient: CraftHttpClientDsl = {\n get: function* <const Config extends CraftHttpClientBaseConfig>(\n build: (helpers: CraftHttpClientBuilderHelpers) => Config,\n ) {\n const config = build(craftHttpClientBuilderHelpers);\n\n return (yield createCraftHttpClientYieldRequest((injector) =>\n createCraftHttpRequest(injector, 'GET', config),\n )) as CraftHttpRequestFromConfig<'GET', Config>;\n },\n\n delete: function* <const Config extends CraftHttpClientBaseConfig>(\n build: (helpers: CraftHttpClientBuilderHelpers) => Config,\n ) {\n const config = build(craftHttpClientBuilderHelpers);\n\n return (yield createCraftHttpClientYieldRequest((injector) =>\n createCraftHttpRequest(injector, 'DELETE', config),\n )) as CraftHttpRequestFromConfig<'DELETE', Config>;\n },\n\n post: function* <const Config extends CraftHttpClientBodyConfig>(\n build: (helpers: CraftHttpClientBuilderHelpers) => Config,\n ) {\n const config = build(craftHttpClientBuilderHelpers);\n\n return (yield createCraftHttpClientYieldRequest((injector) =>\n createCraftHttpRequest(injector, 'POST', config),\n )) as CraftHttpRequestFromConfig<'POST', Config>;\n },\n\n put: function* <const Config extends CraftHttpClientBodyConfig>(\n build: (helpers: CraftHttpClientBuilderHelpers) => Config,\n ) {\n const config = build(craftHttpClientBuilderHelpers);\n\n return (yield createCraftHttpClientYieldRequest((injector) =>\n createCraftHttpRequest(injector, 'PUT', config),\n )) as CraftHttpRequestFromConfig<'PUT', Config>;\n },\n\n patch: function* <const Config extends CraftHttpClientBodyConfig>(\n build: (helpers: CraftHttpClientBuilderHelpers) => Config,\n ) {\n const config = build(craftHttpClientBuilderHelpers);\n\n return (yield createCraftHttpClientYieldRequest((injector) =>\n createCraftHttpRequest(injector, 'PATCH', config),\n )) as CraftHttpRequestFromConfig<'PATCH', Config>;\n },\n\n request: function* <const Config extends CraftHttpClientRequestConfig>(\n build: (helpers: CraftHttpClientBuilderHelpers) => Config,\n ) {\n const config = build(craftHttpClientBuilderHelpers);\n\n return (yield createCraftHttpClientYieldRequest(\n (injector) =>\n createCraftHttpRequest(\n injector,\n config.method,\n config,\n ) as CraftHttpRequestFromRequestConfig<Config>,\n )) as CraftHttpRequestFromRequestConfig<Config>;\n },\n};\n\nexport function response<Success>(): CraftHttpClientSuccessToken<Success>;\nexport function response<Success>(\n decoder: CraftDecoder<Success>,\n): CraftHttpClientDecodedSuccessToken<Success>;\nexport function response<Success>(decoder?: CraftDecoder<Success>) {\n return decoder === undefined\n ? (undefined as unknown as CraftHttpClientSuccessToken<Success>)\n : { decoder };\n}\n\nexport function getCraftHttpRequestExceptionDependencies(\n request: AnyCraftHttpRequest,\n): CraftHttpClientExceptionDependencies {\n const metadata = request[CRAFT_HTTP_CLIENT_EXCEPTION_DEPENDENCIES_MARKER];\n\n if (!metadata) {\n return [];\n }\n\n if (metadata.value === undefined) {\n metadata.value = metadata.resolve();\n }\n\n return metadata.value;\n}\n\nfunction createCraftHttpClientYieldRequest<Request extends AnyCraftHttpRequest>(\n factory: (injector: Injector) => Request,\n): CraftHttpTrackedRequest<Request> {\n return {\n [SERVICE_YIELD_REQUEST_MARKER]: true,\n name: 'CraftHttpClient',\n providedIn: 'global',\n resolve: (injector) => {\n const override = injector\n .get(SERVICE_RUNTIME_OVERRIDES)\n .get('CraftHttpClient');\n\n if (override?.kind === 'useValue') {\n return override.value as Request;\n }\n\n if (override?.kind === 'instantiate') {\n if (override.instance === undefined) {\n override.instance = factory(injector);\n }\n\n return override.instance as Request;\n }\n\n return factory(injector);\n },\n } as CraftHttpTrackedRequest<Request>;\n}\n\nfunction createCraftHttpRequest<\n Method extends string,\n Config extends CraftHttpClientBaseConfig,\n>(\n injector: Injector,\n method: Method,\n config: Config,\n): CraftHttpRequestFromConfig<Uppercase<Method>, Config> {\n const normalizedMethod = normalizeMethod(method) as Uppercase<Method>;\n const exceptionDependencies =\n createCraftHttpClientExceptionDependenciesMetadata(config.exceptions);\n const request = async (): CraftHttpClientResult<\n ExtractCraftHttpClientSuccess<Config>,\n ExtractCraftHttpClientExceptions<Config>,\n ExtractCraftHttpClientResponseDecodeError<Config>\n > =>\n executeCraftHttpTrace(\n injector,\n {\n method: normalizedMethod,\n url: config.url,\n params: config.params,\n payload: getConfigPayload(config),\n },\n async () => {\n try {\n const response = await craftFetchTransport(\n toCraftFetchRequest(normalizedMethod, config),\n );\n const responseBody = response.body;\n\n if (response.status >= 400) {\n return resolveCraftHttpClientError(\n normalizedMethod,\n config,\n toCraftHttpClientErrorResponse(config.url, response),\n );\n }\n\n const decoder = (\n config.success as\n | (CraftHttpClientSuccessToken<unknown> & {\n readonly decoder?: CraftDecoder<unknown>;\n })\n | undefined\n )?.decoder;\n if (!decoder) {\n return responseBody as ExtractCraftHttpClientSuccess<Config>;\n }\n\n try {\n return (await decoder.decode(\n responseBody,\n )) as ExtractCraftHttpClientSuccess<Config>;\n } catch (error) {\n return toHttpResponseDecodeError(\n normalizedMethod,\n config.url,\n responseBody,\n error,\n ) as ExtractCraftHttpClientResponseDecodeError<Config>;\n }\n } catch (error) {\n return resolveCraftHttpClientError(\n normalizedMethod,\n config,\n normalizeHttpClientError(config.url, error),\n );\n }\n },\n );\n\n return Object.defineProperties(request, {\n method: {\n value: normalizedMethod,\n enumerable: false,\n configurable: false,\n },\n url: {\n value: config.url,\n enumerable: false,\n configurable: false,\n },\n params: {\n value: config.params as ExtractCraftHttpClientParams<Config>,\n enumerable: false,\n configurable: false,\n },\n payload: {\n value: getConfigPayload(config) as ExtractCraftHttpClientPayload<Config>,\n enumerable: false,\n configurable: false,\n },\n [CRAFT_HTTP_CLIENT_EXCEPTION_DEPENDENCIES_MARKER]: {\n value: exceptionDependencies,\n enumerable: false,\n configurable: false,\n },\n then: {\n value: function (\n onfulfilled: Parameters<Promise<unknown>['then']>[0],\n onrejected: Parameters<Promise<unknown>['then']>[1],\n ) {\n return request().then(onfulfilled, onrejected);\n },\n enumerable: false,\n configurable: false,\n },\n catch: {\n value: function (onrejected: Parameters<Promise<unknown>['catch']>[0]) {\n return request().catch(onrejected);\n },\n enumerable: false,\n configurable: false,\n },\n finally: {\n value: function (onfinally: Parameters<Promise<unknown>['finally']>[0]) {\n return request().finally(onfinally);\n },\n enumerable: false,\n configurable: false,\n },\n [Symbol.toStringTag]: {\n value: 'Promise',\n enumerable: false,\n configurable: false,\n },\n }) as CraftHttpRequestFromConfig<Uppercase<Method>, Config>;\n}\n\nfunction toCraftFetchRequest(\n method: string,\n config: CraftHttpClientBaseConfig,\n) {\n const urlSearchParams =\n config.params instanceof URLSearchParams ? config.params : undefined;\n\n return {\n url:\n urlSearchParams === undefined\n ? config.url\n : appendCraftHttpClientSearchParams(config.url, urlSearchParams),\n method,\n headers: config.headers,\n params:\n urlSearchParams === undefined\n ? normalizeCraftHttpClientParams(config.params)\n : undefined,\n body: getConfigPayload(config),\n signal: config.signal,\n timeout: config.timeout,\n };\n}\n\nfunction appendCraftHttpClientSearchParams(\n url: string,\n params: URLSearchParams,\n): string {\n const serialized = params.toString();\n if (!serialized) {\n return url;\n }\n\n const hashIndex = url.indexOf('#');\n const hash = hashIndex === -1 ? '' : url.slice(hashIndex);\n const baseUrl = hashIndex === -1 ? url : url.slice(0, hashIndex);\n\n return `${baseUrl}${baseUrl.includes('?') ? '&' : '?'}${serialized}${hash}`;\n}\n\nfunction normalizeCraftHttpClientParams(\n params: CraftHttpClientParams | undefined,\n): Record<string, string | number | boolean | undefined> | undefined {\n if (params === undefined) {\n return undefined;\n }\n\n return params instanceof URLSearchParams ? undefined : { ...params };\n}\n\nfunction getConfigPayload(config: CraftHttpClientBaseConfig): unknown {\n return 'payload' in config ? config.payload : undefined;\n}\n\nfunction normalizeMethod(method: string): string {\n return method.toUpperCase();\n}\n\nfunction collectCraftHttpClientExceptionDependencies(\n rules: readonly CraftHttpClientExceptionRule[] | undefined,\n): CraftHttpClientExceptionDependencies {\n if (!rules?.length) {\n return [];\n }\n\n return rules.map((rule, ruleIndex) => ({\n ruleIndex,\n dependencies: collectCraftHttpClientExceptionRuleDependencies(rule),\n }));\n}\n\nfunction createCraftHttpClientExceptionDependenciesMetadata(\n rules: readonly CraftHttpClientExceptionRule[] | undefined,\n): CraftHttpClientExceptionDependenciesMetadata {\n return {\n resolve: () => collectCraftHttpClientExceptionDependencies(rules),\n };\n}\n\nfunction collectCraftHttpClientExceptionRuleDependencies(\n rule: CraftHttpClientExceptionRule,\n): readonly CraftHttpClientExceptionDependency[] {\n const dependencies: CraftHttpClientExceptionDependency[] = [];\n\n executeCraftHttpClientExceptionRule(rule, {\n resolveRequest: (request) => request.preview(),\n onDependency: (dependency) => {\n dependencies.push(dependency);\n },\n });\n\n return dependencies;\n}\n\nfunction resolveCraftHttpClientError<Config extends CraftHttpClientBaseConfig>(\n method: string,\n config: Config,\n error: CraftHttpClientErrorResponse,\n): ExtractCraftHttpClientExceptions<Config> | CraftHttpClientError {\n const customException = resolveCraftHttpClientException(\n config.exceptions,\n error,\n ) as ExtractCraftHttpClientExceptions<Config> | undefined;\n\n return customException ?? toCraftHttpClientError(method, config.url, error);\n}\n\nfunction resolveCraftHttpClientException(\n rules: readonly CraftHttpClientExceptionRule[] | undefined,\n error: CraftHttpClientErrorResponse,\n): AnyCraftException | undefined {\n if (!rules?.length) {\n return undefined;\n }\n\n for (const rule of rules) {\n const customException = executeCraftHttpClientExceptionRule(rule, {\n resolveRequest: (request) => request.evaluate(error),\n });\n\n if (customException) {\n return customException;\n }\n }\n\n return undefined;\n}\n\nfunction executeCraftHttpClientExceptionRule(\n rule: CraftHttpClientExceptionRule,\n options: {\n resolveRequest: (\n request: CraftHttpClientExceptionDependencyRequest<any, unknown>,\n ) => unknown;\n onDependency?: (dependency: CraftHttpClientExceptionDependency) => void;\n },\n): AnyCraftException | undefined {\n const iterator = rule(craftHttpClientExceptionRuleHelpers);\n let current = iterator.next();\n\n while (!current.done) {\n const yielded = current.value;\n\n if (isCraftHttpClientExceptionDependencyRequest(yielded)) {\n options.onDependency?.(yielded.dependency);\n current = iterator.next(options.resolveRequest(yielded));\n continue;\n }\n\n throw new Error(\n 'CraftHttpClient exception rules must only yield status, code, content, body or header helpers.',\n );\n }\n\n return current.value ?? undefined;\n}\n\nconst craftHttpClientExceptionRuleHelpers: CraftHttpClientExceptionRuleHelpers =\n {\n status: ((expected?: number) =>\n createCraftHttpClientExceptionToken({\n dependency:\n expected === undefined\n ? {\n source: 'status',\n mode: 'read',\n }\n : {\n source: 'status',\n mode: 'match',\n expected,\n },\n evaluate: (error) =>\n expected === undefined\n ? error.status\n : matchHttpClientExceptionValue(error.status, expected),\n preview: () => (expected === undefined ? 400 : expected),\n })) as CraftHttpClientStatusExceptionHelper,\n code: ((expected?: unknown) =>\n createCraftHttpClientExceptionToken({\n dependency:\n expected === undefined\n ? {\n source: 'code',\n mode: 'read',\n }\n : {\n source: 'code',\n mode: 'match',\n expected,\n },\n evaluate: (error) => {\n const code = readCraftHttpClientErrorCode(error);\n return expected === undefined\n ? code\n : matchHttpClientExceptionValue(code, expected);\n },\n preview: () => (expected === undefined ? 'preview-code' : expected),\n })) as CraftHttpClientCodeExceptionHelper,\n content: ((expected?: string) =>\n createCraftHttpClientExceptionToken({\n dependency:\n expected === undefined\n ? {\n source: 'content',\n mode: 'read',\n }\n : {\n source: 'content',\n mode: 'match',\n expected,\n },\n evaluate: (error) => {\n const content = readCraftHttpClientErrorContent(error);\n return expected === undefined\n ? content\n : matchHttpClientExceptionValue(content, expected);\n },\n preview: () =>\n (expected === undefined ? 'preview-content' : expected) as\n | string\n | undefined,\n })) as CraftHttpClientContentExceptionHelper,\n body: <Body = unknown>() =>\n createCraftHttpClientExceptionToken({\n dependency: {\n source: 'body',\n mode: 'read',\n },\n evaluate: (error) => error.error as Body,\n preview: () => craftHttpClientExceptionPreviewValue as Body,\n }),\n header: ((name: string, expected?: string) =>\n createCraftHttpClientExceptionToken({\n dependency:\n expected === undefined\n ? {\n source: 'header',\n mode: 'read',\n name,\n }\n : {\n source: 'header',\n mode: 'match',\n name,\n expected,\n },\n evaluate: (error) => {\n const headerValue = normalizeCraftHttpClientHeaderValue(\n error.headers.get(name),\n );\n return expected === undefined\n ? headerValue\n : matchHttpClientExceptionValue(headerValue, expected);\n },\n preview: () =>\n (expected === undefined ? 'preview-header' : expected) as\n | string\n | undefined,\n })) as CraftHttpClientHeaderExceptionHelper,\n };\n\nconst craftHttpClientExceptionPreviewValue: unknown = new Proxy(\n () => craftHttpClientExceptionPreviewValue,\n {\n apply: () => craftHttpClientExceptionPreviewValue,\n get: () => craftHttpClientExceptionPreviewValue,\n },\n);\n\nfunction createCraftHttpClientExceptionToken<Result>(\n request: Omit<\n CraftHttpClientExceptionDependencyRequest<any, Result>,\n typeof CRAFT_HTTP_CLIENT_EXCEPTION_DEPENDENCY_REQUEST_MARKER\n >,\n): Generator<\n CraftHttpClientExceptionDependencyRequest<any, Result>,\n Result,\n unknown\n> {\n const dependencyRequest =\n createCraftHttpClientExceptionDependencyRequest(request);\n\n return (function* () {\n return (yield dependencyRequest) as Result;\n })();\n}\n\nfunction createCraftHttpClientExceptionDependencyRequest<\n Dependency extends CraftHttpClientExceptionDependency,\n Result,\n>(\n request: Omit<\n CraftHttpClientExceptionDependencyRequest<Dependency, Result>,\n typeof CRAFT_HTTP_CLIENT_EXCEPTION_DEPENDENCY_REQUEST_MARKER\n >,\n): CraftHttpClientExceptionDependencyRequest<Dependency, Result> {\n return {\n [CRAFT_HTTP_CLIENT_EXCEPTION_DEPENDENCY_REQUEST_MARKER]: true,\n ...request,\n };\n}\n\nfunction isCraftHttpClientExceptionDependencyRequest(\n value: unknown,\n): value is CraftHttpClientExceptionDependencyRequest<any, unknown> {\n return (\n typeof value === 'object' &&\n value !== null &&\n CRAFT_HTTP_CLIENT_EXCEPTION_DEPENDENCY_REQUEST_MARKER in value\n );\n}\n\nfunction matchHttpClientExceptionValue<Value, Expected>(\n value: Value,\n expected: Expected,\n): Expected | undefined {\n return Object.is(value, expected) ? expected : undefined;\n}\n\nfunction readCraftHttpClientErrorCode(\n error: CraftHttpClientErrorResponse,\n): unknown {\n const payload = error.error;\n\n return payload && typeof payload === 'object' && 'code' in payload\n ? payload.code\n : undefined;\n}\n\nfunction readCraftHttpClientErrorContent(\n error: CraftHttpClientErrorResponse,\n): string | undefined {\n if (typeof error.error === 'string') {\n return error.error;\n }\n\n if (\n error.error &&\n typeof error.error === 'object' &&\n 'message' in error.error &&\n typeof error.error.message === 'string'\n ) {\n return error.error.message;\n }\n\n return undefined;\n}\n\nfunction normalizeCraftHttpClientHeaderValue(\n value: string | null,\n): string | undefined {\n return value ?? undefined;\n}\n\nfunction normalizeHttpClientError(\n url: string,\n error: unknown,\n): CraftHttpClientErrorResponse {\n return {\n error,\n headers: new Headers(),\n status: 0,\n statusText: 'Unknown Error',\n url,\n };\n}\n\nfunction toCraftHttpClientErrorResponse(\n url: string,\n response: CraftHttpResponse<unknown>,\n): CraftHttpClientErrorResponse {\n const metadata = ɵgetCraftHttpResponseMetadata(response);\n\n return {\n error: response.body,\n headers: metadata?.headers ?? new Headers(),\n status: response.status,\n statusText: metadata?.statusText ?? '',\n url: metadata?.url ?? url,\n };\n}\n\nfunction toCraftHttpClientError(\n method: string,\n url: string,\n error: CraftHttpClientErrorResponse,\n): CraftHttpClientError {\n return craftException(\n {\n _tag: 'HttpError',\n scope: 'HttpClient',\n identifier: `${method} ${url}`,\n },\n {\n error,\n method,\n url,\n },\n );\n}\n\nfunction toHttpResponseDecodeError(\n method: string,\n url: string,\n response: unknown,\n error: unknown,\n): HttpResponseDecodeError {\n const issues = extractDecodeIssues(error);\n\n return craftException(\n {\n _tag: 'HttpResponseDecodeError',\n scope: 'HttpClient',\n identifier: `${method} ${url}`,\n },\n {\n method,\n url,\n response,\n error,\n ...(issues === undefined ? {} : { issues }),\n },\n );\n}\n\nfunction extractDecodeIssues(error: unknown): unknown {\n if (!error || typeof error !== 'object') {\n return undefined;\n }\n\n if ('issues' in error) {\n return (error as { issues?: unknown }).issues;\n }\n\n if ('issue' in error && error.issue && typeof error.issue === 'object') {\n return error.issue;\n }\n\n return undefined;\n}\n"]}
@@ -0,0 +1,12 @@
1
+ import { InjectionToken, Injector, type Provider } from './host/craft-compat';
2
+ export type CraftHttpTraceContext = Readonly<{
3
+ method: string;
4
+ url: string;
5
+ params?: unknown;
6
+ payload?: unknown;
7
+ }>;
8
+ export type CraftHttpTraceWrapper = (context: CraftHttpTraceContext, next: () => Promise<unknown>) => Promise<unknown>;
9
+ export declare const CRAFT_HTTP_TRACE: InjectionToken<readonly CraftHttpTraceWrapper[]>;
10
+ export declare function provideCraftHttpTrace(wrapper: CraftHttpTraceWrapper): Provider;
11
+ export declare function executeCraftHttpTrace<Value>(injector: Injector, context: CraftHttpTraceContext, next: () => Promise<Value>): Promise<Value>;
12
+ //# sourceMappingURL=craft-http-trace.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"craft-http-trace.d.ts","sourceRoot":"","sources":["../../../../../libs/core/src/lib/craft-http-trace.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EACd,QAAQ,EAER,KAAK,QAAQ,EACd,MAAM,qBAAqB,CAAC;AAE7B,MAAM,MAAM,qBAAqB,GAAG,QAAQ,CAAC;IAC3C,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC,CAAC;AAEH,MAAM,MAAM,qBAAqB,GAAG,CAClC,OAAO,EAAE,qBAAqB,EAC9B,IAAI,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,KACzB,OAAO,CAAC,OAAO,CAAC,CAAC;AAEtB,eAAO,MAAM,gBAAgB,kDAM3B,CAAC;AAEH,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,qBAAqB,GAC7B,QAAQ,CAMV;AAED,wBAAgB,qBAAqB,CAAC,KAAK,EACzC,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,qBAAqB,EAC9B,IAAI,EAAE,MAAM,OAAO,CAAC,KAAK,CAAC,GACzB,OAAO,CAAC,KAAK,CAAC,CAgBhB"}
@@ -0,0 +1,28 @@
1
+ import { InjectionToken, runInInjectionContext, } from './host/craft-compat';
2
+ export const CRAFT_HTTP_TRACE = new InjectionToken('CRAFT_HTTP_TRACE', {
3
+ providedIn: 'root',
4
+ factory: () => [],
5
+ multi: true,
6
+ });
7
+ export function provideCraftHttpTrace(wrapper) {
8
+ return {
9
+ provide: CRAFT_HTTP_TRACE,
10
+ useValue: wrapper,
11
+ multi: true,
12
+ };
13
+ }
14
+ export function executeCraftHttpTrace(injector, context, next) {
15
+ const wrappers = injector.get(CRAFT_HTTP_TRACE, []);
16
+ if (wrappers.length === 0) {
17
+ return next();
18
+ }
19
+ const run = (index) => {
20
+ if (index === wrappers.length) {
21
+ return next();
22
+ }
23
+ const wrapper = wrappers[index];
24
+ return wrapper(context, () => run(index + 1));
25
+ };
26
+ return runInInjectionContext(injector, () => run(0));
27
+ }
28
+ //# sourceMappingURL=craft-http-trace.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"craft-http-trace.js","sourceRoot":"","sources":["../../../../../libs/core/src/lib/craft-http-trace.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EAEd,qBAAqB,GAEtB,MAAM,qBAAqB,CAAC;AAc7B,MAAM,CAAC,MAAM,gBAAgB,GAAG,IAAI,cAAc,CAEhD,kBAAkB,EAAE;IACpB,UAAU,EAAE,MAAM;IAClB,OAAO,EAAE,GAAG,EAAE,CAAC,EAAE;IACjB,KAAK,EAAE,IAAI;CACZ,CAAC,CAAC;AAEH,MAAM,UAAU,qBAAqB,CACnC,OAA8B;IAE9B,OAAO;QACL,OAAO,EAAE,gBAAgB;QACzB,QAAQ,EAAE,OAAO;QACjB,KAAK,EAAE,IAAI;KACZ,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,qBAAqB,CACnC,QAAkB,EAClB,OAA8B,EAC9B,IAA0B;IAE1B,MAAM,QAAQ,GAAG,QAAQ,CAAC,GAAG,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAC;IACpD,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO,IAAI,EAAE,CAAC;IAChB,CAAC;IAED,MAAM,GAAG,GAAG,CAAC,KAAa,EAAkB,EAAE;QAC5C,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,CAAmB,CAAC;IAClE,CAAC,CAAC;IAEF,OAAO,qBAAqB,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AACvD,CAAC","sourcesContent":["import {\n InjectionToken,\n Injector,\n runInInjectionContext,\n type Provider,\n} from './host/craft-compat';\n\nexport type CraftHttpTraceContext = Readonly<{\n method: string;\n url: string;\n params?: unknown;\n payload?: unknown;\n}>;\n\nexport type CraftHttpTraceWrapper = (\n context: CraftHttpTraceContext,\n next: () => Promise<unknown>,\n) => Promise<unknown>;\n\nexport const CRAFT_HTTP_TRACE = new InjectionToken<\n readonly CraftHttpTraceWrapper[]\n>('CRAFT_HTTP_TRACE', {\n providedIn: 'root',\n factory: () => [],\n multi: true,\n});\n\nexport function provideCraftHttpTrace(\n wrapper: CraftHttpTraceWrapper,\n): Provider {\n return {\n provide: CRAFT_HTTP_TRACE,\n useValue: wrapper,\n multi: true,\n };\n}\n\nexport function executeCraftHttpTrace<Value>(\n injector: Injector,\n context: CraftHttpTraceContext,\n next: () => Promise<Value>,\n): Promise<Value> {\n const wrappers = injector.get(CRAFT_HTTP_TRACE, []);\n if (wrappers.length === 0) {\n return next();\n }\n\n const run = (index: number): Promise<Value> => {\n if (index === wrappers.length) {\n return next();\n }\n\n const wrapper = wrappers[index];\n return wrapper(context, () => run(index + 1)) as Promise<Value>;\n };\n\n return runInInjectionContext(injector, () => run(0));\n}\n"]}
@@ -0,0 +1,42 @@
1
+ import { type CraftGenInvocation } from './craft-gen';
2
+ import { type CraftLazyLoadHelpers } from './craft-load-retry';
3
+ export declare const CRAFT_LAZY_LOAD_ERROR_CODE: "CRAFT_LAZY_LOAD_ERROR";
4
+ export interface CraftLazyLoadErrorPayload {
5
+ readonly cause: unknown;
6
+ }
7
+ /** Builds the `craftException` `craftLazy` returns when an import finally fails. */
8
+ export declare function createCraftLazyLoadError(cause: unknown): import("./craft-exception").CraftExceptionResult<{
9
+ _tag: "CRAFT_LAZY_LOAD_ERROR";
10
+ scope: "CraftLazy";
11
+ identifier?: undefined;
12
+ }, {
13
+ cause: unknown;
14
+ }>;
15
+ export type CraftLazyLoadError = ReturnType<typeof createCraftLazyLoadError>;
16
+ /**
17
+ * Lazily imports a module from inside an `asyncProcess` loader, reusing the same
18
+ * retry/cache-busting engine as route lazy loading (`loadComponent`).
19
+ *
20
+ * `craftLazy(load)` is a `craftGen`-built program: `yield*`-composable inside an
21
+ * async craft loader, `.pipe(...)`-able (so `catchTag('CRAFT_LAZY_LOAD_ERROR', …)`
22
+ * applies directly), and it awaits the import through the async program pump. On
23
+ * a final import failure it returns a {@link CraftLazyLoadError} `craftException`,
24
+ * which `craftGen` surfaces as a short-circuit → the enclosing resource's
25
+ * `status()` becomes `'exception'`.
26
+ *
27
+ * It must run in an async driver (an `asyncProcess` loader); it cannot be
28
+ * `yield*`-ed from a synchronous `craftMethod`, whose driver throws on the
29
+ * await-request. A `craftMethod` may only *trigger* the enclosing `asyncProcess`.
30
+ *
31
+ * @example
32
+ * ```ts
33
+ * const searchProcess = craftUse(asyncProcess({
34
+ * method: on$(prefetch$, () => undefined),
35
+ * loader: function* () {
36
+ * return yield* craftLazy(({ withRetry }) => withRetry(import('./search')));
37
+ * },
38
+ * }));
39
+ * ```
40
+ */
41
+ export declare function craftLazy<T>(load: (helpers: CraftLazyLoadHelpers) => Promise<T>): CraftGenInvocation<never, T | CraftLazyLoadError>;
42
+ //# sourceMappingURL=craft-lazy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"craft-lazy.d.ts","sourceRoot":"","sources":["../../../../../libs/core/src/lib/craft-lazy.ts"],"names":[],"mappings":"AAEA,OAAO,EAAY,KAAK,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAKhE,OAAO,EAKL,KAAK,oBAAoB,EAE1B,MAAM,oBAAoB,CAAC;AAE5B,eAAO,MAAM,0BAA0B,EAAG,uBAAgC,CAAC;AAE3E,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;CACzB;AAED,oFAAoF;AACpF,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,OAAO;;;;;;GAKtD;AAED,MAAM,MAAM,kBAAkB,GAAG,UAAU,CAAC,OAAO,wBAAwB,CAAC,CAAC;AA8C7E;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,SAAS,CAAC,CAAC,EACzB,IAAI,EAAE,CAAC,OAAO,EAAE,oBAAoB,KAAK,OAAO,CAAC,CAAC,CAAC,GAClD,kBAAkB,CAAC,KAAK,EAAE,CAAC,GAAG,kBAAkB,CAAC,CAgBnD"}