@warp-drive/core 5.9.0-beta.0 → 5.9.0-beta.1

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 (436) hide show
  1. package/declarations/aliases-BWYW5EhX.d.ts +17 -0
  2. package/declarations/aliases-BWYW5EhX.d.ts.map +1 -0
  3. package/declarations/build-config/babel-macros.d.ts +2 -1
  4. package/declarations/build-config/canary-features.d.ts +1 -1
  5. package/declarations/build-config/debugging.d.ts +1 -1
  6. package/declarations/build-config/deprecations.d.ts +1 -1
  7. package/declarations/build-config/env.d.ts +2 -1
  8. package/declarations/build-config/macros.d.ts +2 -1
  9. package/declarations/build-config.d.ts +2 -18
  10. package/declarations/change-C7kqv2kW.d.ts +41 -0
  11. package/declarations/change-C7kqv2kW.d.ts.map +1 -0
  12. package/declarations/concepts-LHsLJZMl.d.ts +77 -0
  13. package/declarations/concepts-LHsLJZMl.d.ts.map +1 -0
  14. package/declarations/configure-B_F639tN.d.ts +134 -0
  15. package/declarations/configure-B_F639tN.d.ts.map +1 -0
  16. package/declarations/configure.d.ts +2 -7
  17. package/declarations/document-BEn91SwT.d.ts +129 -0
  18. package/declarations/document-BEn91SwT.d.ts.map +1 -0
  19. package/declarations/error-50OSEhsF.d.ts +77 -0
  20. package/declarations/error-50OSEhsF.d.ts.map +1 -0
  21. package/declarations/fields-FM7peCiM.d.ts +2327 -0
  22. package/declarations/fields-FM7peCiM.d.ts.map +1 -0
  23. package/declarations/graph/-private.d.ts +2 -13
  24. package/declarations/graph-DLqYXP2z.d.ts +186 -0
  25. package/declarations/graph-DLqYXP2z.d.ts.map +1 -0
  26. package/declarations/identifier-DQnqOSJK.d.ts +112 -0
  27. package/declarations/identifier-DQnqOSJK.d.ts.map +1 -0
  28. package/declarations/index.d.ts +2 -96
  29. package/declarations/internal-Cz-893zD.d.ts +8690 -0
  30. package/declarations/internal-Cz-893zD.d.ts.map +1 -0
  31. package/declarations/json-api-raw-C5APJHHB.d.ts +378 -0
  32. package/declarations/json-api-raw-C5APJHHB.d.ts.map +1 -0
  33. package/declarations/mutations-CqtoGB4t.d.ts +165 -0
  34. package/declarations/mutations-CqtoGB4t.d.ts.map +1 -0
  35. package/declarations/operations-D1qA6r0_.d.ts +244 -0
  36. package/declarations/operations-D1qA6r0_.d.ts.map +1 -0
  37. package/declarations/params-DrEx3bf8.d.ts +41 -0
  38. package/declarations/params-DrEx3bf8.d.ts.map +1 -0
  39. package/declarations/raw-D5hnjiq7.d.ts +31 -0
  40. package/declarations/raw-D5hnjiq7.d.ts.map +1 -0
  41. package/declarations/reactive/-private.d.ts +2 -2
  42. package/declarations/reactive.d.ts +2 -286
  43. package/declarations/record-D3QQcaIR.d.ts +254 -0
  44. package/declarations/record-D3QQcaIR.d.ts.map +1 -0
  45. package/declarations/relationship-CmHzMPKf.d.ts +65 -0
  46. package/declarations/relationship-CmHzMPKf.d.ts.map +1 -0
  47. package/declarations/request.d.ts +2 -52
  48. package/declarations/signals/-leaked.d.ts +63 -2
  49. package/declarations/signals/-leaked.d.ts.map +1 -0
  50. package/declarations/store/-private.d.ts +2 -24
  51. package/declarations/store.d.ts +8358 -2
  52. package/declarations/store.d.ts.map +1 -0
  53. package/declarations/symbols-DjRDCeX0.d.ts +88 -0
  54. package/declarations/symbols-DjRDCeX0.d.ts.map +1 -0
  55. package/declarations/types/-private.d.ts +71 -17
  56. package/declarations/types/-private.d.ts.map +1 -0
  57. package/declarations/types/cache/aliases.d.ts +2 -1
  58. package/declarations/types/cache/change.d.ts +2 -6
  59. package/declarations/types/cache/mutations.d.ts +2 -38
  60. package/declarations/types/cache/operations.d.ts +2 -168
  61. package/declarations/types/cache/relationship.d.ts +2 -13
  62. package/declarations/types/cache.d.ts +2 -429
  63. package/declarations/types/graph.d.ts +2 -47
  64. package/declarations/types/identifier.d.ts +2 -86
  65. package/declarations/types/json/raw.d.ts +2 -6
  66. package/declarations/types/params.d.ts +2 -8
  67. package/declarations/types/record.d.ts +2 -269
  68. package/declarations/types/request.d.ts +2 -367
  69. package/declarations/types/runtime.d.ts +53 -12
  70. package/declarations/types/runtime.d.ts.map +1 -0
  71. package/declarations/types/schema/concepts.d.ts +2 -23
  72. package/declarations/types/schema/fields.d.ts +2 -2200
  73. package/declarations/types/schema/fields.type-test.d.ts +1 -1
  74. package/declarations/types/schema/schema-service.d.ts +2 -380
  75. package/declarations/types/spec/document.d.ts +2 -67
  76. package/declarations/types/spec/error.d.ts +2 -18
  77. package/declarations/types/spec/json-api-raw.d.ts +2 -139
  78. package/declarations/types/symbols.d.ts +2 -78
  79. package/declarations/types/utils.d.ts +2 -5
  80. package/declarations/types.d.ts +3 -11
  81. package/declarations/utils/string.d.ts +51 -44
  82. package/declarations/utils/string.d.ts.map +1 -0
  83. package/declarations/utils-BtURiy8l.d.ts +24 -0
  84. package/declarations/utils-BtURiy8l.d.ts.map +1 -0
  85. package/dist/-private-DMzvF_Q6.js +120 -0
  86. package/dist/-private-DMzvF_Q6.js.map +1 -0
  87. package/dist/-private-HjaQ1wp1.js +1695 -0
  88. package/dist/-private-HjaQ1wp1.js.map +1 -0
  89. package/dist/-private-b1g4dhl0.js +22 -0
  90. package/dist/-private-b1g4dhl0.js.map +1 -0
  91. package/dist/build-config/babel-macros.js +3 -1
  92. package/dist/build-config/canary-features.js +1 -1
  93. package/dist/build-config/debugging.js +1 -1
  94. package/dist/build-config/deprecations.js +1 -1
  95. package/dist/build-config/env.js +3 -1
  96. package/dist/build-config/macros.js +3 -1
  97. package/dist/build-config.js +3 -1
  98. package/dist/configure.js +3 -2
  99. package/dist/graph/-private.js +2183 -3192
  100. package/dist/graph/-private.js.map +1 -0
  101. package/dist/index.js +3 -8
  102. package/dist/reactive/-private.js +3 -1
  103. package/dist/reactive.js +5 -4
  104. package/dist/request--vRFALbQ.js +766 -0
  105. package/dist/request--vRFALbQ.js.map +1 -0
  106. package/dist/request.js +2 -48
  107. package/dist/signals/-leaked.js +3 -1
  108. package/dist/src-Dex_phWI.js +9088 -0
  109. package/dist/src-Dex_phWI.js.map +1 -0
  110. package/dist/store/-private.js +3 -1
  111. package/dist/store-DNF9Rgoh.js +462 -0
  112. package/dist/store-DNF9Rgoh.js.map +1 -0
  113. package/dist/store.js +3 -1
  114. package/dist/types/-private.js +1 -77
  115. package/dist/types/identifier.js +60 -52
  116. package/dist/types/identifier.js.map +1 -0
  117. package/dist/types/record.js +211 -181
  118. package/dist/types/record.js.map +1 -0
  119. package/dist/types/request.js +138 -69
  120. package/dist/types/request.js.map +1 -0
  121. package/dist/types/runtime.js +54 -26
  122. package/dist/types/runtime.js.map +1 -0
  123. package/dist/types/schema/fields.js +501 -495
  124. package/dist/types/schema/fields.js.map +1 -0
  125. package/dist/types/schema/fields.type-test.js +79 -0
  126. package/dist/types/schema/fields.type-test.js.map +1 -0
  127. package/dist/types/symbols.js +84 -77
  128. package/dist/types/symbols.js.map +1 -0
  129. package/dist/unpkg/dev/-private-2RfQ2761.js +111 -0
  130. package/dist/unpkg/dev/-private-2RfQ2761.js.map +1 -0
  131. package/dist/unpkg/dev/-private-CM1zxNws.js +1684 -0
  132. package/dist/unpkg/dev/-private-CM1zxNws.js.map +1 -0
  133. package/dist/unpkg/dev/-private-DL4tfrv9.js +22 -0
  134. package/dist/unpkg/dev/-private-DL4tfrv9.js.map +1 -0
  135. package/dist/unpkg/dev/build-config/babel-macros.js +3 -1
  136. package/dist/unpkg/dev/build-config/canary-features.js +1 -1
  137. package/dist/unpkg/dev/build-config/debugging.js +1 -1
  138. package/dist/unpkg/dev/build-config/deprecations.js +1 -1
  139. package/dist/unpkg/dev/build-config/env.js +3 -1
  140. package/dist/unpkg/dev/build-config/macros.js +3 -1
  141. package/dist/unpkg/dev/build-config.js +3 -1
  142. package/dist/unpkg/dev/configure.js +3 -1
  143. package/dist/unpkg/dev/graph/-private.js +1941 -2949
  144. package/dist/unpkg/dev/graph/-private.js.map +1 -0
  145. package/dist/unpkg/dev/index.js +3 -6
  146. package/dist/unpkg/dev/reactive/-private.js +3 -1
  147. package/dist/unpkg/dev/reactive.js +5 -3
  148. package/dist/unpkg/dev/request-DAuXbfYi.js +756 -0
  149. package/dist/unpkg/dev/request-DAuXbfYi.js.map +1 -0
  150. package/dist/unpkg/dev/request.js +2 -48
  151. package/dist/unpkg/dev/runtime-EoVKAhTv.js +110 -0
  152. package/dist/unpkg/dev/runtime-EoVKAhTv.js.map +1 -0
  153. package/dist/unpkg/dev/signals/-leaked.js +3 -1
  154. package/dist/unpkg/dev/src-Bxlr_vue.js +8192 -0
  155. package/dist/unpkg/dev/src-Bxlr_vue.js.map +1 -0
  156. package/dist/unpkg/dev/store/-private.js +3 -55
  157. package/dist/unpkg/dev/store-DmiFvT1B.js +427 -0
  158. package/dist/unpkg/dev/store-DmiFvT1B.js.map +1 -0
  159. package/dist/unpkg/dev/store.js +1 -556
  160. package/dist/unpkg/dev/types/-private.js +1 -67
  161. package/dist/unpkg/dev/types/identifier.js +63 -56
  162. package/dist/unpkg/dev/types/identifier.js.map +1 -0
  163. package/dist/unpkg/dev/types/record.js +211 -181
  164. package/dist/unpkg/dev/types/record.js.map +1 -0
  165. package/dist/unpkg/dev/types/request.js +138 -69
  166. package/dist/unpkg/dev/types/request.js.map +1 -0
  167. package/dist/unpkg/dev/types/runtime.js +54 -26
  168. package/dist/unpkg/dev/types/runtime.js.map +1 -0
  169. package/dist/unpkg/dev/types/schema/fields.js +501 -495
  170. package/dist/unpkg/dev/types/schema/fields.js.map +1 -0
  171. package/dist/unpkg/dev/types/schema/fields.type-test.js +79 -0
  172. package/dist/unpkg/dev/types/schema/fields.type-test.js.map +1 -0
  173. package/dist/unpkg/dev/types/symbols.js +84 -77
  174. package/dist/unpkg/dev/types/symbols.js.map +1 -0
  175. package/dist/unpkg/dev/utils/string.js +79 -85
  176. package/dist/unpkg/dev/utils/string.js.map +1 -0
  177. package/dist/unpkg/dev-deprecated/-private-2RfQ2761.js +111 -0
  178. package/dist/unpkg/dev-deprecated/-private-2RfQ2761.js.map +1 -0
  179. package/dist/unpkg/dev-deprecated/-private-CM1zxNws.js +1684 -0
  180. package/dist/unpkg/dev-deprecated/-private-CM1zxNws.js.map +1 -0
  181. package/dist/unpkg/dev-deprecated/-private-DL4tfrv9.js +22 -0
  182. package/dist/unpkg/dev-deprecated/-private-DL4tfrv9.js.map +1 -0
  183. package/dist/unpkg/dev-deprecated/build-config/babel-macros.js +3 -1
  184. package/dist/unpkg/dev-deprecated/build-config/canary-features.js +1 -1
  185. package/dist/unpkg/dev-deprecated/build-config/debugging.js +1 -1
  186. package/dist/unpkg/dev-deprecated/build-config/deprecations.js +1 -1
  187. package/dist/unpkg/dev-deprecated/build-config/env.js +3 -1
  188. package/dist/unpkg/dev-deprecated/build-config/macros.js +3 -1
  189. package/dist/unpkg/dev-deprecated/build-config.js +3 -1
  190. package/dist/unpkg/dev-deprecated/configure.js +3 -1
  191. package/dist/unpkg/dev-deprecated/graph/-private.js +2060 -3143
  192. package/dist/unpkg/dev-deprecated/graph/-private.js.map +1 -0
  193. package/dist/unpkg/dev-deprecated/index.js +3 -5
  194. package/dist/unpkg/dev-deprecated/reactive/-private.js +3 -1
  195. package/dist/unpkg/dev-deprecated/reactive.js +5 -3
  196. package/dist/unpkg/dev-deprecated/request-DAuXbfYi.js +756 -0
  197. package/dist/unpkg/dev-deprecated/request-DAuXbfYi.js.map +1 -0
  198. package/dist/unpkg/dev-deprecated/request.js +2 -48
  199. package/dist/unpkg/dev-deprecated/runtime-BacZMq1r.js +110 -0
  200. package/dist/unpkg/dev-deprecated/runtime-BacZMq1r.js.map +1 -0
  201. package/dist/unpkg/dev-deprecated/signals/-leaked.js +3 -1
  202. package/dist/unpkg/dev-deprecated/src-DEl2Ca3T.js +8745 -0
  203. package/dist/unpkg/dev-deprecated/src-DEl2Ca3T.js.map +1 -0
  204. package/dist/unpkg/dev-deprecated/store/-private.js +3 -1
  205. package/dist/unpkg/dev-deprecated/store-TcP2H4Af.js +427 -0
  206. package/dist/unpkg/dev-deprecated/store-TcP2H4Af.js.map +1 -0
  207. package/dist/unpkg/dev-deprecated/store.js +1 -556
  208. package/dist/unpkg/dev-deprecated/types/-private.js +1 -67
  209. package/dist/unpkg/dev-deprecated/types/identifier.js +63 -56
  210. package/dist/unpkg/dev-deprecated/types/identifier.js.map +1 -0
  211. package/dist/unpkg/dev-deprecated/types/record.js +211 -181
  212. package/dist/unpkg/dev-deprecated/types/record.js.map +1 -0
  213. package/dist/unpkg/dev-deprecated/types/request.js +138 -69
  214. package/dist/unpkg/dev-deprecated/types/request.js.map +1 -0
  215. package/dist/unpkg/dev-deprecated/types/runtime.js +54 -26
  216. package/dist/unpkg/dev-deprecated/types/runtime.js.map +1 -0
  217. package/dist/unpkg/dev-deprecated/types/schema/fields.js +501 -495
  218. package/dist/unpkg/dev-deprecated/types/schema/fields.js.map +1 -0
  219. package/dist/unpkg/dev-deprecated/types/schema/fields.type-test.js +79 -0
  220. package/dist/unpkg/dev-deprecated/types/schema/fields.type-test.js.map +1 -0
  221. package/dist/unpkg/dev-deprecated/types/symbols.js +84 -77
  222. package/dist/unpkg/dev-deprecated/types/symbols.js.map +1 -0
  223. package/dist/unpkg/dev-deprecated/utils/string.js +79 -85
  224. package/dist/unpkg/dev-deprecated/utils/string.js.map +1 -0
  225. package/dist/unpkg/prod/-private-BK71-uXR.js +99 -0
  226. package/dist/unpkg/prod/-private-BK71-uXR.js.map +1 -0
  227. package/dist/unpkg/prod/-private-TNaS5Piv.js +1494 -0
  228. package/dist/unpkg/prod/-private-TNaS5Piv.js.map +1 -0
  229. package/dist/unpkg/prod/-private-Z9i0icpE.js +22 -0
  230. package/dist/unpkg/prod/-private-Z9i0icpE.js.map +1 -0
  231. package/dist/unpkg/prod/build-config/babel-macros.js +3 -1
  232. package/dist/unpkg/prod/build-config/canary-features.js +1 -1
  233. package/dist/unpkg/prod/build-config/debugging.js +1 -1
  234. package/dist/unpkg/prod/build-config/deprecations.js +1 -1
  235. package/dist/unpkg/prod/build-config/env.js +3 -1
  236. package/dist/unpkg/prod/build-config/macros.js +3 -1
  237. package/dist/unpkg/prod/build-config.js +3 -1
  238. package/dist/unpkg/prod/configure.js +3 -2
  239. package/dist/unpkg/prod/graph/-private.js +1475 -2095
  240. package/dist/unpkg/prod/graph/-private.js.map +1 -0
  241. package/dist/unpkg/prod/index.js +2 -482
  242. package/dist/unpkg/prod/reactive/-private.js +3 -1
  243. package/dist/unpkg/prod/reactive.js +5 -30
  244. package/dist/unpkg/prod/request-BcJNzSgv.js +480 -0
  245. package/dist/unpkg/prod/request-BcJNzSgv.js.map +1 -0
  246. package/dist/unpkg/prod/request.js +3 -2
  247. package/dist/unpkg/prod/signals/-leaked.js +3 -1
  248. package/dist/unpkg/prod/src-Dzz-j6pp.js +6799 -0
  249. package/dist/unpkg/prod/src-Dzz-j6pp.js.map +1 -0
  250. package/dist/unpkg/prod/store/-private.js +3 -126
  251. package/dist/unpkg/prod/store-BWhmb7Ob.js +359 -0
  252. package/dist/unpkg/prod/store-BWhmb7Ob.js.map +1 -0
  253. package/dist/unpkg/prod/store.js +1 -435
  254. package/dist/unpkg/prod/types/-private.js +1 -47
  255. package/dist/unpkg/prod/types/identifier.js +63 -56
  256. package/dist/unpkg/prod/types/identifier.js.map +1 -0
  257. package/dist/unpkg/prod/types/record.js +211 -181
  258. package/dist/unpkg/prod/types/record.js.map +1 -0
  259. package/dist/unpkg/prod/types/request.js +138 -69
  260. package/dist/unpkg/prod/types/request.js.map +1 -0
  261. package/dist/unpkg/prod/types/runtime.js +54 -26
  262. package/dist/unpkg/prod/types/runtime.js.map +1 -0
  263. package/dist/unpkg/prod/types/schema/fields.js +501 -495
  264. package/dist/unpkg/prod/types/schema/fields.js.map +1 -0
  265. package/dist/unpkg/prod/types/schema/fields.type-test.js +79 -0
  266. package/dist/unpkg/prod/types/schema/fields.type-test.js.map +1 -0
  267. package/dist/unpkg/prod/types/symbols.js +84 -77
  268. package/dist/unpkg/prod/types/symbols.js.map +1 -0
  269. package/dist/unpkg/prod/utils/string.js +70 -66
  270. package/dist/unpkg/prod/utils/string.js.map +1 -0
  271. package/dist/unpkg/prod-deprecated/-private-BK71-uXR.js +99 -0
  272. package/dist/unpkg/prod-deprecated/-private-BK71-uXR.js.map +1 -0
  273. package/dist/unpkg/prod-deprecated/-private-TNaS5Piv.js +1494 -0
  274. package/dist/unpkg/prod-deprecated/-private-TNaS5Piv.js.map +1 -0
  275. package/dist/unpkg/prod-deprecated/-private-Z9i0icpE.js +22 -0
  276. package/dist/unpkg/prod-deprecated/-private-Z9i0icpE.js.map +1 -0
  277. package/dist/unpkg/prod-deprecated/build-config/babel-macros.js +3 -1
  278. package/dist/unpkg/prod-deprecated/build-config/canary-features.js +1 -1
  279. package/dist/unpkg/prod-deprecated/build-config/debugging.js +1 -1
  280. package/dist/unpkg/prod-deprecated/build-config/deprecations.js +1 -1
  281. package/dist/unpkg/prod-deprecated/build-config/env.js +3 -1
  282. package/dist/unpkg/prod-deprecated/build-config/macros.js +3 -1
  283. package/dist/unpkg/prod-deprecated/build-config.js +3 -1
  284. package/dist/unpkg/prod-deprecated/configure.js +3 -2
  285. package/dist/unpkg/prod-deprecated/graph/-private.js +1586 -2266
  286. package/dist/unpkg/prod-deprecated/graph/-private.js.map +1 -0
  287. package/dist/unpkg/prod-deprecated/index.js +2 -482
  288. package/dist/unpkg/prod-deprecated/reactive/-private.js +3 -1
  289. package/dist/unpkg/prod-deprecated/reactive.js +5 -5
  290. package/dist/unpkg/prod-deprecated/request-BcJNzSgv.js +480 -0
  291. package/dist/unpkg/prod-deprecated/request-BcJNzSgv.js.map +1 -0
  292. package/dist/unpkg/prod-deprecated/request.js +3 -2
  293. package/dist/unpkg/prod-deprecated/signals/-leaked.js +3 -1
  294. package/dist/unpkg/prod-deprecated/src-BOifHFQ5.js +7232 -0
  295. package/dist/unpkg/prod-deprecated/src-BOifHFQ5.js.map +1 -0
  296. package/dist/unpkg/prod-deprecated/store/-private.js +3 -88
  297. package/dist/unpkg/prod-deprecated/store-BWhmb7Ob.js +359 -0
  298. package/dist/unpkg/prod-deprecated/store-BWhmb7Ob.js.map +1 -0
  299. package/dist/unpkg/prod-deprecated/store.js +1 -435
  300. package/dist/unpkg/prod-deprecated/types/-private.js +1 -47
  301. package/dist/unpkg/prod-deprecated/types/identifier.js +63 -56
  302. package/dist/unpkg/prod-deprecated/types/identifier.js.map +1 -0
  303. package/dist/unpkg/prod-deprecated/types/record.js +211 -181
  304. package/dist/unpkg/prod-deprecated/types/record.js.map +1 -0
  305. package/dist/unpkg/prod-deprecated/types/request.js +138 -69
  306. package/dist/unpkg/prod-deprecated/types/request.js.map +1 -0
  307. package/dist/unpkg/prod-deprecated/types/runtime.js +54 -26
  308. package/dist/unpkg/prod-deprecated/types/runtime.js.map +1 -0
  309. package/dist/unpkg/prod-deprecated/types/schema/fields.js +501 -495
  310. package/dist/unpkg/prod-deprecated/types/schema/fields.js.map +1 -0
  311. package/dist/unpkg/prod-deprecated/types/schema/fields.type-test.js +79 -0
  312. package/dist/unpkg/prod-deprecated/types/schema/fields.type-test.js.map +1 -0
  313. package/dist/unpkg/prod-deprecated/types/symbols.js +84 -77
  314. package/dist/unpkg/prod-deprecated/types/symbols.js.map +1 -0
  315. package/dist/unpkg/prod-deprecated/utils/string.js +70 -66
  316. package/dist/unpkg/prod-deprecated/utils/string.js.map +1 -0
  317. package/dist/utils/string.js +84 -85
  318. package/dist/utils/string.js.map +1 -0
  319. package/package.json +9 -9
  320. package/declarations/graph/-private/-diff.d.ts +0 -19
  321. package/declarations/graph/-private/-edge-definition.d.ts +0 -149
  322. package/declarations/graph/-private/-state.d.ts +0 -9
  323. package/declarations/graph/-private/-utils.d.ts +0 -25
  324. package/declarations/graph/-private/coerce-id.d.ts +0 -4
  325. package/declarations/graph/-private/debug/assert-polymorphic-type.d.ts +0 -6
  326. package/declarations/graph/-private/edges/collection.d.ts +0 -39
  327. package/declarations/graph/-private/edges/implicit.d.ts +0 -43
  328. package/declarations/graph/-private/edges/resource.d.ts +0 -23
  329. package/declarations/graph/-private/graph.d.ts +0 -56
  330. package/declarations/graph/-private/normalize-link.d.ts +0 -2
  331. package/declarations/graph/-private/operations/add-to-related-records.d.ts +0 -4
  332. package/declarations/graph/-private/operations/merge-identifier.d.ts +0 -3
  333. package/declarations/graph/-private/operations/remove-from-related-records.d.ts +0 -4
  334. package/declarations/graph/-private/operations/replace-related-record.d.ts +0 -3
  335. package/declarations/graph/-private/operations/replace-related-records.d.ts +0 -7
  336. package/declarations/graph/-private/operations/update-relationship.d.ts +0 -9
  337. package/declarations/reactive/-private/default-mode.d.ts +0 -73
  338. package/declarations/reactive/-private/document.d.ts +0 -142
  339. package/declarations/reactive/-private/fields/extension.d.ts +0 -8
  340. package/declarations/reactive/-private/fields/get-field-key.d.ts +0 -8
  341. package/declarations/reactive/-private/fields/managed-array.d.ts +0 -18
  342. package/declarations/reactive/-private/fields/managed-object.d.ts +0 -17
  343. package/declarations/reactive/-private/fields/many-array-manager.d.ts +0 -19
  344. package/declarations/reactive/-private/hooks.d.ts +0 -5
  345. package/declarations/reactive/-private/kind/alias-field.d.ts +0 -4
  346. package/declarations/reactive/-private/kind/array-field.d.ts +0 -4
  347. package/declarations/reactive/-private/kind/attribute-field.d.ts +0 -4
  348. package/declarations/reactive/-private/kind/belongs-to-field.d.ts +0 -4
  349. package/declarations/reactive/-private/kind/collection-field.d.ts +0 -4
  350. package/declarations/reactive/-private/kind/derived-field.d.ts +0 -4
  351. package/declarations/reactive/-private/kind/generic-field.d.ts +0 -4
  352. package/declarations/reactive/-private/kind/has-many-field.d.ts +0 -4
  353. package/declarations/reactive/-private/kind/hash-field.d.ts +0 -4
  354. package/declarations/reactive/-private/kind/identity-field.d.ts +0 -4
  355. package/declarations/reactive/-private/kind/local-field.d.ts +0 -4
  356. package/declarations/reactive/-private/kind/object-field.d.ts +0 -4
  357. package/declarations/reactive/-private/kind/resource-field.d.ts +0 -4
  358. package/declarations/reactive/-private/kind/schema-array-field.d.ts +0 -4
  359. package/declarations/reactive/-private/kind/schema-object-field.d.ts +0 -4
  360. package/declarations/reactive/-private/record.d.ts +0 -83
  361. package/declarations/reactive/-private/schema.d.ts +0 -326
  362. package/declarations/reactive/-private/symbols.d.ts +0 -5
  363. package/declarations/request/-private/context.d.ts +0 -39
  364. package/declarations/request/-private/debug.d.ts +0 -4
  365. package/declarations/request/-private/fetch.d.ts +0 -33
  366. package/declarations/request/-private/future.d.ts +0 -7
  367. package/declarations/request/-private/manager.d.ts +0 -158
  368. package/declarations/request/-private/promise-cache.d.ts +0 -28
  369. package/declarations/request/-private/types.d.ts +0 -234
  370. package/declarations/request/-private/utils.d.ts +0 -57
  371. package/declarations/signals/-private.d.ts +0 -6
  372. package/declarations/signals/promise-state.d.ts +0 -264
  373. package/declarations/signals/reactivity/configure.d.ts +0 -138
  374. package/declarations/signals/reactivity/internal.d.ts +0 -154
  375. package/declarations/signals/reactivity/signal.d.ts +0 -56
  376. package/declarations/signals/request-state.d.ts +0 -372
  377. package/declarations/signals/request-subscription.d.ts +0 -177
  378. package/declarations/store/-private/cache-handler/handler.d.ts +0 -56
  379. package/declarations/store/-private/cache-handler/types.d.ts +0 -84
  380. package/declarations/store/-private/cache-handler/utils.d.ts +0 -31
  381. package/declarations/store/-private/caches/instance-cache.d.ts +0 -58
  382. package/declarations/store/-private/caches/resource-utils.d.ts +0 -9
  383. package/declarations/store/-private/debug/utils.d.ts +0 -7
  384. package/declarations/store/-private/default-cache-policy.d.ts +0 -387
  385. package/declarations/store/-private/managers/cache-capabilities-manager.d.ts +0 -34
  386. package/declarations/store/-private/managers/cache-key-manager.d.ts +0 -304
  387. package/declarations/store/-private/managers/cache-manager.d.ts +0 -367
  388. package/declarations/store/-private/managers/notification-manager.d.ts +0 -83
  389. package/declarations/store/-private/managers/record-array-manager.d.ts +0 -100
  390. package/declarations/store/-private/network/request-cache.d.ts +0 -103
  391. package/declarations/store/-private/record-arrays/-utils.d.ts +0 -80
  392. package/declarations/store/-private/record-arrays/legacy-live-array.d.ts +0 -81
  393. package/declarations/store/-private/record-arrays/legacy-many-array.d.ts +0 -133
  394. package/declarations/store/-private/record-arrays/legacy-query.d.ts +0 -81
  395. package/declarations/store/-private/record-arrays/native-proxy-type-fix.d.ts +0 -3
  396. package/declarations/store/-private/record-arrays/resource-array.d.ts +0 -67
  397. package/declarations/store/-private/store-service.d.ts +0 -874
  398. package/declarations/store/-private/utils/coerce-id.d.ts +0 -4
  399. package/declarations/store/-private/utils/construct-resource.d.ts +0 -6
  400. package/declarations/store/-private/utils/is-non-empty-string.d.ts +0 -1
  401. package/declarations/store/-private/utils/normalize-model-name.d.ts +0 -1
  402. package/declarations/store/-private/utils/uuid-polyfill.d.ts +0 -1
  403. package/declarations/store/-types/q/cache-capabilities-manager.d.ts +0 -90
  404. package/declarations/store/-types/q/identifier.d.ts +0 -23
  405. package/declarations/store/-types/q/record-instance.d.ts +0 -22
  406. package/declarations/store/-types/q/store.d.ts +0 -31
  407. package/declarations/store/deprecated/-private.d.ts +0 -223
  408. package/declarations/store/deprecated/store.d.ts +0 -784
  409. package/dist/configure-DPUFCemT.js +0 -1940
  410. package/dist/default-cache-policy-D7_u4YRH.js +0 -572
  411. package/dist/future-BKkJJkj7.js +0 -678
  412. package/dist/index-CQP2NSqg.js +0 -9982
  413. package/dist/symbols-3C1OkYtZ.js +0 -39
  414. package/dist/unpkg/dev/-leaked-Co0EI6Go.js +0 -1939
  415. package/dist/unpkg/dev/-private-sql1_mdx.js +0 -39
  416. package/dist/unpkg/dev/future-DFfOzSoe.js +0 -672
  417. package/dist/unpkg/dev/index-BzcBOnw9.js +0 -9392
  418. package/dist/unpkg/dev/runtime-E1M51_-O.js +0 -135
  419. package/dist/unpkg/dev-deprecated/-leaked-DjMeRqdU.js +0 -1939
  420. package/dist/unpkg/dev-deprecated/-private-3C1OkYtZ.js +0 -39
  421. package/dist/unpkg/dev-deprecated/future-DFfOzSoe.js +0 -672
  422. package/dist/unpkg/dev-deprecated/index-6TnTv-WG.js +0 -10007
  423. package/dist/unpkg/dev-deprecated/runtime-DAu5b0IR.js +0 -135
  424. package/dist/unpkg/prod/-leaked-DUONXQDB.js +0 -1676
  425. package/dist/unpkg/prod/-private-sql1_mdx.js +0 -39
  426. package/dist/unpkg/prod/handler-EU_8ncB2.js +0 -1619
  427. package/dist/unpkg/prod/promise-cache-DIT8Ypjq.js +0 -19
  428. package/dist/unpkg/prod/request-BrJSCG6r.js +0 -421
  429. package/dist/unpkg/prod/schema-BSkHyoWz.js +0 -5219
  430. package/dist/unpkg/prod-deprecated/-leaked-DRNv9VIX.js +0 -1676
  431. package/dist/unpkg/prod-deprecated/-private-3C1OkYtZ.js +0 -39
  432. package/dist/unpkg/prod-deprecated/handler-CCIu4sQ3.js +0 -334
  433. package/dist/unpkg/prod-deprecated/hooks-Dv4Np0MY.js +0 -26
  434. package/dist/unpkg/prod-deprecated/promise-cache-DIT8Ypjq.js +0 -19
  435. package/dist/unpkg/prod-deprecated/request-BrJSCG6r.js +0 -421
  436. package/dist/unpkg/prod-deprecated/schema-CJcjHv0E.js +0 -6939
@@ -0,0 +1,480 @@
1
+ import { n as getOrSetUniversal, t as getOrSetGlobal } from "./-private-BK71-uXR.js";
2
+ import { IS_FUTURE, STRUCTURED } from "./types/request.js";
3
+
4
+ //#region src/request/-private/context.ts
5
+ function upgradeHeaders(headers) {
6
+ headers.clone = () => {
7
+ return new Headers(headers);
8
+ };
9
+ headers.toJSON = () => {
10
+ return Array.from(headers);
11
+ };
12
+ return headers;
13
+ }
14
+ function cloneResponseProperties(response) {
15
+ const { headers, ok, redirected, status, statusText, type, url } = response;
16
+ upgradeHeaders(headers);
17
+ return {
18
+ headers,
19
+ ok,
20
+ redirected,
21
+ status,
22
+ statusText,
23
+ type,
24
+ url
25
+ };
26
+ }
27
+ var ContextOwner = class {
28
+ hasSetStream = false;
29
+ hasSetResponse = false;
30
+ hasSubscribers = false;
31
+ stream = createDeferred();
32
+ response = null;
33
+ nextCalled = 0;
34
+ constructor(request, god, isRoot = false) {
35
+ this.isRoot = isRoot;
36
+ this.requestId = god.id;
37
+ this.controller = request.controller || god.controller;
38
+ this.stream.promise.sizeHint = 0;
39
+ if (request.controller) {
40
+ if (request.controller !== god.controller) god.controller.signal.addEventListener("abort", () => {
41
+ this.controller.abort(god.controller.signal.reason);
42
+ });
43
+ delete request.controller;
44
+ }
45
+ let enhancedRequest = Object.assign({ signal: this.controller.signal }, request);
46
+ if (request.headers) upgradeHeaders(request.headers);
47
+ this.enhancedRequest = enhancedRequest;
48
+ this.request = request;
49
+ this.god = god;
50
+ this.stream.promise = this.stream.promise.then((stream) => {
51
+ if (this.god.stream === stream && this.hasSubscribers) this.god.stream = null;
52
+ return stream;
53
+ });
54
+ }
55
+ get hasRequestedStream() {
56
+ return this.god.hasRequestedStream;
57
+ }
58
+ getResponse() {
59
+ if (this.hasSetResponse) return this.response;
60
+ if (this.nextCalled === 1) return this.god.response;
61
+ return null;
62
+ }
63
+ getStream() {
64
+ if (this.isRoot) this.god.hasRequestedStream = true;
65
+ if (!this.hasSetResponse) {
66
+ const hint = this.god.response?.headers?.get("content-length");
67
+ this.stream.promise.sizeHint = hint ? parseInt(hint, 10) : 0;
68
+ }
69
+ this.hasSubscribers = true;
70
+ return this.stream.promise;
71
+ }
72
+ abort(reason) {
73
+ this.controller.abort(reason);
74
+ }
75
+ setStream(stream) {
76
+ if (!this.hasSetStream) {
77
+ this.hasSetStream = true;
78
+ if (!(stream instanceof Promise)) this.god.stream = stream;
79
+ this.stream.resolve(stream);
80
+ }
81
+ }
82
+ resolveStream() {
83
+ this.setStream(this.nextCalled === 1 ? this.god.stream : null);
84
+ }
85
+ setResponse(response) {
86
+ if (this.hasSetResponse) return;
87
+ this.hasSetResponse = true;
88
+ if (response instanceof Response) {
89
+ let responseData = cloneResponseProperties(response);
90
+ this.response = responseData;
91
+ this.god.response = responseData;
92
+ const sizeHint = response.headers?.get("content-length");
93
+ this.stream.promise.sizeHint = sizeHint ? parseInt(sizeHint, 10) : 0;
94
+ } else {
95
+ this.response = response;
96
+ this.god.response = response;
97
+ }
98
+ }
99
+ };
100
+ /**
101
+ * The context object given to each {@link Handler} (or {@link CacheHandler})
102
+ * as it processes a request. It exposes the (immutable, enhanced) request
103
+ * along with the methods a handler uses to build up the {@link Future} and
104
+ * {@link StructuredDataDocument} that will ultimately be returned by the
105
+ * {@link RequestManager}.
106
+ *
107
+ * @public
108
+ */
109
+ var Context = class {
110
+ /** @internal */
111
+ /**
112
+ * A readonly, immutable version of the request being handled, including
113
+ * any defaults or enhancements applied by the {@link RequestManager}.
114
+ *
115
+ * @public
116
+ */
117
+ /**
118
+ * The id of this request as assigned by the {@link RequestManager}. Not
119
+ * unique across manager instances.
120
+ *
121
+ * @public
122
+ */
123
+ /** @internal */
124
+ /** @internal */
125
+ constructor(owner, isCacheHandler) {
126
+ this.id = owner.requestId;
127
+ this.___owner = owner;
128
+ this.request = owner.enhancedRequest;
129
+ this._isCacheHandler = isCacheHandler;
130
+ this._finalized = false;
131
+ }
132
+ /**
133
+ * Set the response stream for this request. May be called at most once,
134
+ * and may be called at any point up until the handler's `request` method
135
+ * resolves.
136
+ *
137
+ * @public
138
+ */
139
+ setStream(stream) {
140
+ this.___owner.setStream(stream);
141
+ }
142
+ /**
143
+ * Set the {@link ResponseInfo} (or raw `Response`) associated with this
144
+ * request. Used to populate the response information available on the
145
+ * resulting {@link StructuredDataDocument}.
146
+ *
147
+ * @public
148
+ */
149
+ setResponse(response) {
150
+ this.___owner.setResponse(response);
151
+ }
152
+ /**
153
+ * Associate a {@link RequestKey} with this request. May only be called
154
+ * synchronously from a {@link CacheHandler}.
155
+ *
156
+ * @public
157
+ */
158
+ setIdentifier(identifier) {
159
+ this.___owner.god.identifier = identifier;
160
+ }
161
+ /**
162
+ * Whether the application (or a downstream handler) has requested access
163
+ * to the response stream via {@link Future.getStream}. Handlers can use
164
+ * this to avoid the cost of streaming when nothing will consume it.
165
+ *
166
+ * @public
167
+ */
168
+ get hasRequestedStream() {
169
+ return this.___owner.hasRequestedStream;
170
+ }
171
+ /** @private */
172
+ _finalize() {
173
+ this._finalized = true;
174
+ }
175
+ };
176
+
177
+ //#endregion
178
+ //#region src/request/-private/promise-cache.ts
179
+ /**
180
+ * The minimal, structural subset of the `Promise` interface required to be
181
+ * cached and inspected by {@link setPromiseResult} / {@link getPromiseResult}
182
+ * (and by `getPromiseState`). Anything that is at least `then`/`catch`/`finally`
183
+ * "shaped" (including a real `Promise` or {@link Future}) satisfies this.
184
+ *
185
+ * @public
186
+ */
187
+ const PromiseCache = getOrSetUniversal("PromiseCache", /* @__PURE__ */ new WeakMap());
188
+ const RequestMap = getOrSetUniversal("RequestMap", /* @__PURE__ */ new Map());
189
+ function setRequestResult(requestId, result) {
190
+ RequestMap.set(requestId, result);
191
+ }
192
+ function clearRequestResult(requestId) {
193
+ RequestMap.delete(requestId);
194
+ }
195
+ function getRequestResult(requestId) {
196
+ return RequestMap.get(requestId);
197
+ }
198
+ /**
199
+ * Cache the settled result (or error) of a promise-like value so that its
200
+ * outcome can be synchronously read later via {@link getPromiseResult},
201
+ * without needing to await it again.
202
+ *
203
+ * @public
204
+ */
205
+ function setPromiseResult(promise, result) {
206
+ PromiseCache.set(promise, result);
207
+ }
208
+ /**
209
+ * Synchronously read the settled result (or error) previously recorded for
210
+ * a promise-like value via {@link setPromiseResult}, if any.
211
+ *
212
+ * @public
213
+ */
214
+ function getPromiseResult(promise) {
215
+ return PromiseCache.get(promise);
216
+ }
217
+
218
+ //#endregion
219
+ //#region src/request/-private/utils.ts
220
+ const IS_CACHE_HANDLER = getOrSetGlobal("IS_CACHE_HANDLER", Symbol("IS_CACHE_HANDLER"));
221
+ /**
222
+ * A ponyfill for the global {@link DOMException} constructor.
223
+ *
224
+ * Some non-DOM environments (e.g. React Native, some Node/worker
225
+ * environments) don't provide `DOMException` as a global, which would
226
+ * otherwise throw a `ReferenceError` the first time any code referenced it
227
+ * (for instance when classifying an abort/network error). `DOMError` falls
228
+ * back to the global {@link Error} constructor in that case so callers can
229
+ * uniformly use `new DOMError(...)` / `error instanceof DOMError` without
230
+ * guarding for the global's presence themselves.
231
+ *
232
+ * @internal
233
+ */
234
+ const DOMError = typeof DOMException !== "undefined" ? DOMException : Error;
235
+ function curryFuture(owner, inbound, outbound) {
236
+ owner.setStream(inbound.getStream());
237
+ inbound.then((doc) => {
238
+ const document = {
239
+ [STRUCTURED]: true,
240
+ request: owner.request,
241
+ response: doc.response,
242
+ content: doc.content
243
+ };
244
+ outbound.resolve(document);
245
+ }, (error) => {
246
+ if (isDoc(error)) owner.setStream(owner.god.stream);
247
+ if (!error || !(error instanceof Error)) try {
248
+ throw new Error(error ? error : `Request Rejected with an Unknown Error`);
249
+ } catch (e) {
250
+ if (error && typeof error === "object") {
251
+ Object.assign(e, error);
252
+ e.message = error.message || `Request Rejected with an Unknown Error`;
253
+ }
254
+ error = e;
255
+ }
256
+ error[STRUCTURED] = true;
257
+ error.request = owner.request;
258
+ error.response = owner.getResponse();
259
+ error.error = error.error || error.message;
260
+ outbound.reject(error);
261
+ });
262
+ return outbound.promise;
263
+ }
264
+ function isDoc(doc) {
265
+ return doc && doc[STRUCTURED] === true;
266
+ }
267
+ function ensureDoc(owner, content, isError) {
268
+ if (isDoc(content)) return content;
269
+ if (isError) return {
270
+ [STRUCTURED]: true,
271
+ request: owner.request,
272
+ response: owner.getResponse(),
273
+ error: content
274
+ };
275
+ return {
276
+ [STRUCTURED]: true,
277
+ request: owner.request,
278
+ response: owner.getResponse(),
279
+ content
280
+ };
281
+ }
282
+ /**
283
+ * Additional properties exposed on errors thrown by the
284
+ * {@link Fetch | Fetch Handler}.
285
+ *
286
+ * In the case of an Abort or system/browser level issue,
287
+ * this extends {@link DOMException}.
288
+ *
289
+ * Else it extends from {@link AggregateError} if the
290
+ * response includes an array of errors, falling back
291
+ * to {@link Error} as its base.
292
+ */
293
+ function enhanceReason(reason) {
294
+ const error = new DOMError(reason || "The user aborted a request.", "AbortError");
295
+ if (error.name !== "AbortError") error.name = "AbortError";
296
+ return error;
297
+ }
298
+ function handleOutcome(owner, inbound, outbound) {
299
+ inbound.then((content) => {
300
+ if (owner.controller.signal.aborted) {
301
+ outbound.reject(enhanceReason(owner.controller.signal.reason));
302
+ return;
303
+ }
304
+ if (isDoc(content)) {
305
+ owner.setStream(owner.god.stream);
306
+ content = content.content;
307
+ }
308
+ const document = {
309
+ [STRUCTURED]: true,
310
+ request: owner.request,
311
+ response: owner.getResponse(),
312
+ content
313
+ };
314
+ outbound.resolve(document);
315
+ }, (error) => {
316
+ if (isDoc(error)) owner.setStream(owner.god.stream);
317
+ if (!error || !(error instanceof Error)) try {
318
+ throw new Error(error ? error : `Request Rejected with an Unknown Error`);
319
+ } catch (e) {
320
+ if (error && typeof error === "object") {
321
+ Object.assign(e, error);
322
+ e.message = error.message || `Request Rejected with an Unknown Error`;
323
+ }
324
+ error = e;
325
+ }
326
+ error[STRUCTURED] = true;
327
+ error.request = owner.request;
328
+ error.response = owner.getResponse();
329
+ error.error = error.error || error.message;
330
+ outbound.reject(error);
331
+ });
332
+ return outbound.promise;
333
+ }
334
+ function isCacheHandler(handler, index) {
335
+ return index === 0 && Boolean(handler[IS_CACHE_HANDLER]);
336
+ }
337
+ function executeNextHandler(wares, request, i, god) {
338
+ const owner = new ContextOwner(request, god, i === 0);
339
+ function next(r) {
340
+ owner.nextCalled++;
341
+ return executeNextHandler(wares, r, i + 1, god);
342
+ }
343
+ const _isCacheHandler = isCacheHandler(wares[i], i);
344
+ const context = new Context(owner, _isCacheHandler);
345
+ let outcome;
346
+ try {
347
+ outcome = wares[i].request(context, next);
348
+ if (_isCacheHandler) context._finalize();
349
+ if (!!outcome && _isCacheHandler) {
350
+ if (!(outcome instanceof Promise)) {
351
+ setRequestResult(owner.requestId, {
352
+ isError: false,
353
+ result: ensureDoc(owner, outcome, false)
354
+ });
355
+ outcome = Promise.resolve(outcome);
356
+ }
357
+ }
358
+ } catch (e) {
359
+ if (_isCacheHandler) setRequestResult(owner.requestId, {
360
+ isError: true,
361
+ result: ensureDoc(owner, e, true)
362
+ });
363
+ outcome = Promise.reject(e);
364
+ }
365
+ const future = createFuture(owner);
366
+ if (isFuture(outcome)) return curryFuture(owner, outcome, future);
367
+ return handleOutcome(owner, outcome, future);
368
+ }
369
+
370
+ //#endregion
371
+ //#region src/request/-private/future.ts
372
+ function isFuture(maybe) {
373
+ return Boolean(maybe && maybe instanceof Promise && maybe[IS_FUTURE] === true);
374
+ }
375
+ /**
376
+ * Create a {@link Deferred}: a promise along with the `resolve`/`reject`
377
+ * callbacks that settle it, so the promise can be handed out before the
378
+ * work that will settle it has started.
379
+ *
380
+ * @public
381
+ */
382
+ function createDeferred() {
383
+ let resolve;
384
+ let reject;
385
+ const promise = new Promise((res, rej) => {
386
+ resolve = res;
387
+ reject = rej;
388
+ });
389
+ return {
390
+ resolve,
391
+ reject,
392
+ promise
393
+ };
394
+ }
395
+ function upgradePromise(promise, future) {
396
+ promise[IS_FUTURE] = true;
397
+ promise.getStream = future.getStream;
398
+ promise.abort = future.abort;
399
+ promise.onFinalize = future.onFinalize;
400
+ promise.id = future.id;
401
+ promise.lid = future.lid;
402
+ promise.requester = future.requester;
403
+ return promise;
404
+ }
405
+ function createFuture(owner) {
406
+ const deferred = createDeferred();
407
+ let { promise } = deferred;
408
+ let cbs;
409
+ promise = promise.finally(() => {
410
+ owner.resolveStream();
411
+ if (cbs) cbs.forEach((cb) => cb());
412
+ });
413
+ promise.onFinalize = (fn) => {
414
+ cbs = cbs || [];
415
+ cbs.push(fn);
416
+ };
417
+ promise[IS_FUTURE] = true;
418
+ promise.getStream = () => {
419
+ return owner.getStream();
420
+ };
421
+ promise.abort = (reason) => {
422
+ owner.abort(enhanceReason(reason));
423
+ };
424
+ promise.id = owner.requestId;
425
+ promise.lid = owner.god.identifier;
426
+ promise.requester = owner.god.requester;
427
+ deferred.promise = promise;
428
+ return deferred;
429
+ }
430
+
431
+ //#endregion
432
+ //#region src/request.ts
433
+ /**
434
+ * Brands the supplied object with the supplied response type.
435
+ *
436
+ * ```ts
437
+ * import type { ReactiveDataDocument } from '@warp-drive/core/reactive';
438
+ * import { withResponseType } from '@warp-drive/core/request';
439
+ * import type { User } from '#/data/user.ts'
440
+ *
441
+ * const result = await store.request(
442
+ * withResponseType<ReactiveDataDocument<User>>({ url: '/users/1' })
443
+ * );
444
+ *
445
+ * result.content.data; // will have type User
446
+ * ```
447
+ *
448
+ */
449
+ function withResponseType(obj) {
450
+ return obj;
451
+ }
452
+ /**
453
+ * Brands the supplied object with the supplied response type
454
+ * wrapped in {@link ReactiveDataDocument}. This is a convenience for
455
+ * the common case of using {@link withResponseType} with `ReactiveDataDocument`.
456
+ *
457
+ * ```ts
458
+ * import { withReactiveResponse } from '@warp-drive/core/request';
459
+ * import type { User } from '#/data/user.ts'
460
+ *
461
+ * const result = await store.request(
462
+ * withReactiveResponse<User>({ url: '/users/1' })
463
+ * );
464
+ *
465
+ * result.content.data; // will have type User
466
+ * ```
467
+ *
468
+ * @public
469
+ */
470
+ function withReactiveResponse(obj) {
471
+ return obj;
472
+ }
473
+ /**
474
+ * @deprecated use {@link withResponseType} instead
475
+ */
476
+ const withBrand = withResponseType;
477
+
478
+ //#endregion
479
+ export { upgradePromise as a, executeNextHandler as c, getRequestResult as d, setPromiseResult as f, createDeferred as i, clearRequestResult as l, withReactiveResponse as n, DOMError as o, cloneResponseProperties as p, withResponseType as r, IS_CACHE_HANDLER as s, withBrand as t, getPromiseResult as u };
480
+ //# sourceMappingURL=request-BcJNzSgv.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"request-BcJNzSgv.js","names":["SkipCache","deepFreeze","createDeferred","upgradeHeaders","headers","clone","Headers","toJSON","Array","from","cloneResponseProperties","response","ok","redirected","status","statusText","type","url","ContextOwner","hasSetStream","hasSetResponse","hasSubscribers","stream","nextCalled","constructor","request","god","isRoot","requestId","id","controller","promise","sizeHint","signal","addEventListener","abort","reason","enhancedRequest","Object","assign","then","hasRequestedStream","getResponse","getStream","hint","get","parseInt","setStream","Promise","resolve","resolveStream","setResponse","Response","responseData","Context","owner","isCacheHandler","___owner","_isCacheHandler","_finalized","setIdentifier","identifier","_finalize","getOrSetUniversal","PromiseCache","WeakMap","RequestMap","Map","setRequestResult","requestId","result","set","clearRequestResult","delete","getRequestResult","get","setPromiseResult","promise","getPromiseResult","getOrSetGlobal","STRUCTURED","Context","ContextOwner","assertValidRequest","createFuture","isFuture","setRequestResult","IS_CACHE_HANDLER","Symbol","DOMError","DOMException","Error","curryFuture","owner","inbound","outbound","setStream","getStream","then","doc","document","request","response","content","resolve","error","isDoc","god","stream","e","Object","assign","message","getResponse","reject","promise","ensureDoc","isError","enhanceReason","reason","name","handleOutcome","controller","signal","aborted","isCacheHandler","handler","index","Boolean","executeNextHandler","wares","i","next","r","nextCalled","_isCacheHandler","context","outcome","_finalize","Promise","requestId","result","future","IS_FUTURE","enhanceReason","isFuture","maybe","Boolean","Promise","createDeferred","resolve","reject","promise","res","rej","upgradePromise","future","getStream","abort","onFinalize","id","lid","requester","createFuture","owner","deferred","cbs","finally","resolveStream","forEach","cb","fn","push","reason","requestId","god","identifier","createDeferred","setPromiseResult","getPromiseResult","withResponseType","obj","withReactiveResponse","withBrand"],"sources":["../../../src/request/-private/context.ts","../../../src/request/-private/promise-cache.ts","../../../src/request/-private/utils.ts","../../../src/request/-private/future.ts","../../../src/request.ts"],"sourcesContent":["import { DEBUG } from '@warp-drive/core/build-config/env';\nimport { assert } from '@warp-drive/core/build-config/macros';\n\nimport type { RequestKey } from '../../types/identifier';\nimport type { ImmutableHeaders, ImmutableRequestInfo, RequestInfo, ResponseInfo } from '../../types/request';\nimport { SkipCache } from '../../types/request';\nimport { deepFreeze } from './debug';\nimport { createDeferred } from './future';\nimport type { DeferredStream, GodContext } from './types';\n\nexport function upgradeHeaders(headers: Headers | ImmutableHeaders): ImmutableHeaders {\n (headers as ImmutableHeaders).clone = () => {\n return new Headers(headers);\n };\n (headers as ImmutableHeaders).toJSON = () => {\n return Array.from(headers as unknown as Iterable<[string, string]>);\n };\n return headers as ImmutableHeaders;\n}\n\nexport function cloneResponseProperties(response: Response): ResponseInfo {\n const { headers, ok, redirected, status, statusText, type, url } = response;\n upgradeHeaders(headers);\n return {\n headers: headers as ImmutableHeaders,\n ok,\n redirected,\n status,\n statusText,\n type,\n url,\n };\n}\n\nexport class ContextOwner {\n hasSetStream = false;\n hasSetResponse = false;\n hasSubscribers = false;\n stream: DeferredStream = createDeferred<ReadableStream | null>();\n response: ResponseInfo | null = null;\n declare request: ImmutableRequestInfo;\n declare enhancedRequest: ImmutableRequestInfo;\n nextCalled = 0;\n declare god: GodContext;\n declare controller: AbortController;\n declare requestId: number;\n declare isRoot: boolean;\n\n constructor(request: RequestInfo, god: GodContext, isRoot = false) {\n this.isRoot = isRoot;\n this.requestId = god.id;\n this.controller = request.controller || god.controller;\n this.stream.promise.sizeHint = 0;\n\n if (request.controller) {\n if (request.controller !== god.controller) {\n god.controller.signal.addEventListener('abort', () => {\n this.controller.abort(god.controller.signal.reason);\n });\n }\n delete request.controller;\n }\n let enhancedRequest: ImmutableRequestInfo = Object.assign(\n { signal: this.controller.signal },\n request\n ) as ImmutableRequestInfo;\n if (DEBUG) {\n if (!request?.cacheOptions?.[SkipCache]) {\n request = deepFreeze(request) as ImmutableRequestInfo;\n enhancedRequest = deepFreeze(enhancedRequest);\n }\n } else {\n if (request.headers) {\n upgradeHeaders(request.headers);\n }\n }\n this.enhancedRequest = enhancedRequest;\n this.request = request as ImmutableRequestInfo;\n this.god = god;\n this.stream.promise = this.stream.promise.then((stream: ReadableStream | null) => {\n if (this.god.stream === stream && this.hasSubscribers) {\n this.god.stream = null;\n }\n return stream;\n });\n }\n\n get hasRequestedStream(): boolean {\n return this.god.hasRequestedStream;\n }\n\n getResponse(): ResponseInfo | null {\n if (this.hasSetResponse) {\n return this.response;\n }\n if (this.nextCalled === 1) {\n return this.god.response;\n }\n return null;\n }\n getStream(): Promise<ReadableStream | null> {\n if (this.isRoot) {\n this.god.hasRequestedStream = true;\n }\n if (!this.hasSetResponse) {\n const hint = this.god.response?.headers?.get('content-length');\n this.stream.promise.sizeHint = hint ? parseInt(hint, 10) : 0;\n }\n this.hasSubscribers = true;\n return this.stream.promise;\n }\n abort(reason: DOMException): void {\n this.controller.abort(reason);\n }\n\n setStream(stream: ReadableStream | Promise<ReadableStream | null> | null): void {\n if (!this.hasSetStream) {\n this.hasSetStream = true;\n\n if (!(stream instanceof Promise)) {\n this.god.stream = stream;\n }\n // @ts-expect-error\n this.stream.resolve(stream);\n }\n }\n\n resolveStream(): void {\n this.setStream(this.nextCalled === 1 ? this.god.stream : null);\n }\n\n setResponse(response: ResponseInfo | Response | null): void {\n if (this.hasSetResponse) {\n if (DEBUG) {\n throw new Error(`Cannot setResponse when a response has already been set`);\n }\n return;\n }\n this.hasSetResponse = true;\n if (response instanceof Response) {\n // TODO potentially avoid cloning in prod\n let responseData = cloneResponseProperties(response);\n\n if (DEBUG) {\n responseData = deepFreeze(responseData);\n }\n this.response = responseData;\n this.god.response = responseData;\n const sizeHint = response.headers?.get('content-length');\n this.stream.promise.sizeHint = sizeHint ? parseInt(sizeHint, 10) : 0;\n } else {\n this.response = response;\n this.god.response = response;\n }\n }\n}\n\n/**\n * The context object given to each {@link Handler} (or {@link CacheHandler})\n * as it processes a request. It exposes the (immutable, enhanced) request\n * along with the methods a handler uses to build up the {@link Future} and\n * {@link StructuredDataDocument} that will ultimately be returned by the\n * {@link RequestManager}.\n *\n * @public\n */\nexport class Context {\n /** @internal */\n declare private ___owner: ContextOwner;\n /**\n * A readonly, immutable version of the request being handled, including\n * any defaults or enhancements applied by the {@link RequestManager}.\n *\n * @public\n */\n declare request: ImmutableRequestInfo;\n /**\n * The id of this request as assigned by the {@link RequestManager}. Not\n * unique across manager instances.\n *\n * @public\n */\n declare id: number;\n /** @internal */\n declare private _isCacheHandler: boolean;\n /** @internal */\n declare private _finalized: boolean;\n\n constructor(owner: ContextOwner, isCacheHandler: boolean) {\n this.id = owner.requestId;\n this.___owner = owner;\n this.request = owner.enhancedRequest;\n this._isCacheHandler = isCacheHandler;\n this._finalized = false;\n }\n /**\n * Set the response stream for this request. May be called at most once,\n * and may be called at any point up until the handler's `request` method\n * resolves.\n *\n * @public\n */\n setStream(stream: ReadableStream | Promise<ReadableStream | null>): void {\n this.___owner.setStream(stream);\n }\n /**\n * Set the {@link ResponseInfo} (or raw `Response`) associated with this\n * request. Used to populate the response information available on the\n * resulting {@link StructuredDataDocument}.\n *\n * @public\n */\n setResponse(response: ResponseInfo | Response | null): void {\n this.___owner.setResponse(response);\n }\n\n /**\n * Associate a {@link RequestKey} with this request. May only be called\n * synchronously from a {@link CacheHandler}.\n *\n * @public\n */\n setIdentifier(identifier: RequestKey): void {\n assert(\n `setIdentifier may only be used synchronously from a CacheHandler`,\n identifier && this._isCacheHandler && !this._finalized\n );\n this.___owner.god.identifier = identifier;\n }\n\n /**\n * Whether the application (or a downstream handler) has requested access\n * to the response stream via {@link Future.getStream}. Handlers can use\n * this to avoid the cost of streaming when nothing will consume it.\n *\n * @public\n */\n get hasRequestedStream(): boolean {\n return this.___owner.hasRequestedStream;\n }\n\n /** @private */\n _finalize(): void {\n this._finalized = true;\n }\n}\nexport type HandlerRequestContext = Context;\n","import { getOrSetUniversal } from '../../types/-private';\n\nexport type CacheResult<T = unknown, E = unknown> = { isError: true; result: E } | { isError: false; result: T };\n\n/**\n * The minimal, structural subset of the `Promise` interface required to be\n * cached and inspected by {@link setPromiseResult} / {@link getPromiseResult}\n * (and by `getPromiseState`). Anything that is at least `then`/`catch`/`finally`\n * \"shaped\" (including a real `Promise` or {@link Future}) satisfies this.\n *\n * @public\n */\nexport type Awaitable<T = unknown, E = unknown> = {\n /**\n * Registers fulfillment/rejection handlers, `Promise.prototype.then`-style.\n *\n * @public\n */\n then: (onFulfilled: (value: T) => unknown, onRejected: (reason: E) => unknown) => unknown;\n /**\n * Registers a rejection handler, `Promise.prototype.catch`-style.\n *\n * @public\n */\n catch: (onRejected: (reason: E) => unknown) => unknown;\n /**\n * Registers a handler run on settlement, `Promise.prototype.finally`-style.\n *\n * @public\n */\n finally: (onFinally: () => unknown) => unknown;\n};\n\nexport const PromiseCache: WeakMap<Awaitable, CacheResult> = getOrSetUniversal(\n 'PromiseCache',\n new WeakMap<Awaitable, CacheResult>()\n);\nexport const RequestMap: Map<number, CacheResult> = getOrSetUniversal('RequestMap', new Map<number, CacheResult>());\n\nexport function setRequestResult(requestId: number, result: CacheResult): void {\n RequestMap.set(requestId, result);\n}\nexport function clearRequestResult(requestId: number): void {\n RequestMap.delete(requestId);\n}\nexport function getRequestResult(requestId: number): CacheResult | undefined {\n return RequestMap.get(requestId);\n}\n\n/**\n * Cache the settled result (or error) of a promise-like value so that its\n * outcome can be synchronously read later via {@link getPromiseResult},\n * without needing to await it again.\n *\n * @public\n */\nexport function setPromiseResult(promise: Promise<unknown> | Awaitable, result: CacheResult): void {\n PromiseCache.set(promise, result);\n}\n\n/**\n * Synchronously read the settled result (or error) previously recorded for\n * a promise-like value via {@link setPromiseResult}, if any.\n *\n * @public\n */\nexport function getPromiseResult<T, E>(promise: Promise<T> | Awaitable<T, E>): CacheResult<T, E> | undefined {\n return PromiseCache.get(promise) as CacheResult<T, E> | undefined;\n}\n","import { DEBUG } from '@warp-drive/core/build-config/env';\n\nimport { getOrSetGlobal } from '../../types/-private';\nimport type {\n RequestInfo,\n StructuredDataDocument,\n StructuredDocument,\n StructuredErrorDocument,\n} from '../../types/request';\nimport { STRUCTURED } from '../../types/request';\nimport { Context, ContextOwner } from './context';\nimport { assertValidRequest } from './debug';\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nimport type { Fetch } from './fetch.ts';\nimport { createFuture, isFuture } from './future';\nimport { setRequestResult } from './promise-cache';\nimport type { DeferredFuture, Future, GodContext, Handler } from './types';\n\nexport const IS_CACHE_HANDLER: '___(unique) Symbol(IS_CACHE_HANDLER)' = getOrSetGlobal(\n 'IS_CACHE_HANDLER',\n Symbol('IS_CACHE_HANDLER')\n);\n\n/**\n * A ponyfill for the global {@link DOMException} constructor.\n *\n * Some non-DOM environments (e.g. React Native, some Node/worker\n * environments) don't provide `DOMException` as a global, which would\n * otherwise throw a `ReferenceError` the first time any code referenced it\n * (for instance when classifying an abort/network error). `DOMError` falls\n * back to the global {@link Error} constructor in that case so callers can\n * uniformly use `new DOMError(...)` / `error instanceof DOMError` without\n * guarding for the global's presence themselves.\n *\n * @internal\n */\nexport const DOMError: typeof DOMException =\n typeof DOMException !== 'undefined' ? DOMException : (Error as unknown as typeof DOMException);\nexport function curryFuture<T>(owner: ContextOwner, inbound: Future<T>, outbound: DeferredFuture<T>): Future<T> {\n owner.setStream(inbound.getStream());\n\n inbound.then(\n (doc: StructuredDataDocument<T>) => {\n const document = {\n [STRUCTURED]: true as const,\n request: owner.request,\n response: doc.response,\n content: doc.content,\n };\n outbound.resolve(document);\n },\n (error: Error & StructuredErrorDocument) => {\n if (isDoc(error)) {\n owner.setStream(owner.god.stream);\n }\n if (!error || !(error instanceof Error)) {\n try {\n throw new Error(error ? error : `Request Rejected with an Unknown Error`);\n } catch (e: unknown) {\n if (error && typeof error === 'object') {\n Object.assign(e as Error, error);\n (e as Error & StructuredErrorDocument).message =\n (error as Error).message || `Request Rejected with an Unknown Error`;\n }\n error = e as Error & StructuredErrorDocument;\n }\n }\n\n error[STRUCTURED] = true;\n error.request = owner.request;\n error.response = owner.getResponse();\n error.error = error.error || error.message;\n\n outbound.reject(error);\n }\n );\n return outbound.promise;\n}\n\nfunction isDoc<T>(doc: T | StructuredDataDocument<T>): doc is StructuredDataDocument<T> {\n return doc && (doc as StructuredDataDocument<T>)[STRUCTURED] === true;\n}\n\nfunction ensureDoc<T>(owner: ContextOwner, content: T | Error, isError: boolean): StructuredDocument<T> {\n if (isDoc(content)) {\n return content as StructuredDocument<T>;\n }\n\n if (isError) {\n return {\n [STRUCTURED]: true,\n request: owner.request,\n response: owner.getResponse(),\n error: content as Error,\n } as StructuredErrorDocument<T>;\n }\n\n return {\n [STRUCTURED]: true,\n request: owner.request,\n response: owner.getResponse(),\n content: content as T,\n };\n}\n\n/**\n * Additional properties exposed on errors thrown by the\n * {@link Fetch | Fetch Handler}.\n *\n * In the case of an Abort or system/browser level issue,\n * this extends {@link DOMException}.\n *\n * Else it extends from {@link AggregateError} if the\n * response includes an array of errors, falling back\n * to {@link Error} as its base.\n */\nexport interface FetchError extends DOMException {\n /**\n * Alias for {@link FetchError.status | status}.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Response/status)\n */\n code: number;\n /**\n * The name associated to the {@link FetchError.status | status code}.\n *\n * Typically this will be of the formula `StatusTextError` for instance\n * a 404 status with status text of `Not Found` would have the name\n * `NotFoundError`.\n */\n name: string;\n /**\n * The http status code associated to the returned error.\n *\n * Browser/System level network errors will often have an error code of `0` or `5`.\n * Aborted requests will have an error code of `20`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Response/status)\n */\n status: number;\n /**\n * The Status Text associated to the {@link FetchError.status | status code}\n * for the error.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Response/statusText)\n *\n */\n statusText: string;\n /**\n * A property signifying that an Error uses the {@link FetchError}\n * interface.\n */\n isRequestError: true;\n}\n\nexport function enhanceReason(reason?: string): DOMException {\n const error = new DOMError(reason || 'The user aborted a request.', 'AbortError');\n // `DOMError` may be the `Error` constructor as a fallback, whose\n // constructor doesn't accept a `name`, so set it explicitly in that case.\n // We can't unconditionally assign `error.name` here: when `DOMError` is\n // the real `DOMException`, `name` is already `'AbortError'` (set by its\n // constructor) *and* `DOMException.prototype.name` is a getter-only\n // accessor with no setter, so reassigning it throws a `TypeError` in\n // strict-mode JS (which is how our ES modules run) - even when assigning\n // the very same value it already holds.\n if (error.name !== 'AbortError') {\n (error as unknown as { name: string }).name = 'AbortError';\n }\n return error;\n}\n\nexport function handleOutcome<T>(\n owner: ContextOwner,\n inbound: Promise<T | StructuredDataDocument<T>>,\n outbound: DeferredFuture<T>\n): Future<T> {\n inbound.then(\n (content: T | StructuredDataDocument<T>) => {\n if (owner.controller.signal.aborted) {\n // the next function did not respect the signal, we handle it here\n outbound.reject(enhanceReason(owner.controller.signal.reason as string));\n return;\n }\n if (isDoc(content)) {\n owner.setStream(owner.god.stream);\n content = content.content;\n }\n const document = {\n [STRUCTURED]: true as const,\n request: owner.request,\n response: owner.getResponse(),\n content,\n };\n outbound.resolve(document);\n },\n (error: Error & StructuredErrorDocument) => {\n if (isDoc(error)) {\n owner.setStream(owner.god.stream);\n }\n if (!error || !(error instanceof Error)) {\n try {\n throw new Error(error ? error : `Request Rejected with an Unknown Error`);\n } catch (e: unknown) {\n if (error && typeof error === 'object') {\n Object.assign(e as Error, error);\n (e as Error & StructuredErrorDocument).message =\n (error as Error).message || `Request Rejected with an Unknown Error`;\n }\n error = e as Error & StructuredErrorDocument;\n }\n }\n\n error[STRUCTURED] = true;\n error.request = owner.request;\n error.response = owner.getResponse();\n error.error = error.error || error.message;\n outbound.reject(error);\n }\n );\n return outbound.promise;\n}\n\nfunction isCacheHandler(handler: Handler & { [IS_CACHE_HANDLER]?: boolean }, index: number): boolean {\n return index === 0 && Boolean(handler[IS_CACHE_HANDLER]);\n}\n\nexport function executeNextHandler<T>(\n wares: Readonly<Handler[]>,\n request: RequestInfo,\n i: number,\n god: GodContext\n): Future<T> {\n if (DEBUG) {\n if (i === wares.length) {\n throw new Error(`No handler was able to handle this request.`);\n }\n assertValidRequest(request, false);\n }\n const owner = new ContextOwner(request, god, i === 0);\n\n function next(r: RequestInfo): Future<T> {\n owner.nextCalled++;\n return executeNextHandler(wares, r, i + 1, god);\n }\n\n const _isCacheHandler = isCacheHandler(wares[i], i);\n const context = new Context(owner, _isCacheHandler);\n let outcome: Promise<T | StructuredDataDocument<T>> | Future<T>;\n try {\n outcome = wares[i].request<T>(context, next);\n if (_isCacheHandler) {\n context._finalize();\n }\n if (!!outcome && _isCacheHandler) {\n if (!(outcome instanceof Promise)) {\n setRequestResult(owner.requestId, { isError: false, result: ensureDoc(owner, outcome, false) });\n outcome = Promise.resolve(outcome);\n }\n } else if (DEBUG) {\n if (!outcome || (!(outcome instanceof Promise) && !(typeof outcome === 'object' && 'then' in outcome))) {\n // eslint-disable-next-line no-console\n console.log({ request, handler: wares[i], outcome });\n if (outcome === undefined) {\n throw new Error(`Expected handler.request to return a promise, instead received undefined.`);\n }\n throw new Error(`Expected handler.request to return a promise, instead received a synchronous value.`);\n }\n }\n } catch (e) {\n if (_isCacheHandler) {\n setRequestResult(owner.requestId, { isError: true, result: ensureDoc(owner, e, true) });\n }\n // eslint-disable-next-line @typescript-eslint/prefer-promise-reject-errors\n outcome = Promise.reject<StructuredDataDocument<T>>(e);\n }\n const future = createFuture<T>(owner);\n\n if (isFuture<T>(outcome)) {\n return curryFuture(owner, outcome, future);\n }\n\n return handleOutcome(owner, outcome, future);\n}\n","import { DEBUG } from '@warp-drive/build-config/env';\n\nimport { IS_FUTURE, type StructuredDocument } from '../../types/request';\nimport type { ContextOwner } from './context';\nimport type { Deferred, DeferredFuture, Future } from './types';\nimport { enhanceReason } from './utils';\n\nexport function isFuture<T>(maybe: unknown): maybe is Future<T> {\n return Boolean(maybe && maybe instanceof Promise && (maybe as Future<T>)[IS_FUTURE] === true);\n}\n\n/**\n * Create a {@link Deferred}: a promise along with the `resolve`/`reject`\n * callbacks that settle it, so the promise can be handed out before the\n * work that will settle it has started.\n *\n * @public\n */\nexport function createDeferred<T>(): Deferred<T> {\n let resolve!: (v: T) => void;\n let reject!: (v: unknown) => void;\n const promise = new Promise<T>((res, rej) => {\n resolve = res;\n reject = rej;\n });\n return { resolve, reject, promise };\n}\n\nexport function upgradePromise<T>(promise: Promise<StructuredDocument<T>>, future: Future<T>): Future<T> {\n (promise as Future<T>)[IS_FUTURE] = true;\n // eslint-disable-next-line @typescript-eslint/unbound-method\n (promise as Future<T>).getStream = future.getStream;\n // eslint-disable-next-line @typescript-eslint/unbound-method\n (promise as Future<T>).abort = future.abort;\n // eslint-disable-next-line @typescript-eslint/unbound-method\n (promise as Future<T>).onFinalize = future.onFinalize;\n (promise as Future<T>).id = future.id;\n (promise as Future<T>).lid = future.lid;\n (promise as Future<T>).requester = future.requester;\n\n if (DEBUG) {\n // @ts-expect-error\n promise.toJSON = () => {\n const id = 'Future<' + (promise as Future<T>).id + '>';\n if ((promise as Future<T>).lid) {\n return `${id} (${(promise as Future<T>).lid!.lid})`;\n }\n return id;\n };\n }\n\n return promise as Future<T>;\n}\n\nexport function createFuture<T>(owner: ContextOwner): DeferredFuture<T> {\n const deferred = createDeferred<T>() as unknown as DeferredFuture<T>;\n let { promise } = deferred;\n let cbs: Array<() => void> | undefined;\n promise = promise.finally(() => {\n owner.resolveStream();\n if (cbs) {\n cbs.forEach((cb) => cb());\n }\n }) as Future<T>;\n promise.onFinalize = (fn: () => void) => {\n cbs = cbs || [];\n cbs.push(fn);\n };\n promise[IS_FUTURE] = true;\n promise.getStream = () => {\n return owner.getStream();\n };\n promise.abort = (reason?: string) => {\n owner.abort(enhanceReason(reason));\n };\n promise.id = owner.requestId;\n promise.lid = owner.god.identifier;\n promise.requester = owner.god.requester;\n\n if (DEBUG) {\n // @ts-expect-error\n promise.toJSON = () => {\n const id = 'Future<' + promise.id + '>';\n if (promise.lid) {\n return `${id} (${promise.lid.lid})`;\n }\n return id;\n };\n }\n\n deferred.promise = promise;\n return deferred;\n}\n","import type { ReactiveDataDocument } from './reactive.ts';\nimport type { RequestInfo } from './types/request.ts';\nimport type { RequestSignature } from './types/symbols.ts';\n\nexport { createDeferred } from './request/-private/future.ts';\nexport type {\n Future,\n Handler,\n CacheHandler,\n NextFn,\n Deferred,\n ManagedRequestPriority,\n} from './request/-private/types.ts';\nexport { setPromiseResult, getPromiseResult } from './request/-private/promise-cache.ts';\nexport type { Awaitable } from './request/-private/promise-cache.ts';\nexport type { Context } from './request/-private/context.ts';\n\n/**\n * Brands the supplied object with the supplied response type.\n *\n * ```ts\n * import type { ReactiveDataDocument } from '@warp-drive/core/reactive';\n * import { withResponseType } from '@warp-drive/core/request';\n * import type { User } from '#/data/user.ts'\n *\n * const result = await store.request(\n * withResponseType<ReactiveDataDocument<User>>({ url: '/users/1' })\n * );\n *\n * result.content.data; // will have type User\n * ```\n *\n */\nexport function withResponseType<T>(obj: RequestInfo): RequestInfo<T> & {\n /** The branded response type. Present only at the type level; carries no runtime value. */\n [RequestSignature]: T;\n} {\n return obj as RequestInfo<T> & {\n [RequestSignature]: T;\n };\n}\n\n/**\n * Brands the supplied object with the supplied response type\n * wrapped in {@link ReactiveDataDocument}. This is a convenience for\n * the common case of using {@link withResponseType} with `ReactiveDataDocument`.\n *\n * ```ts\n * import { withReactiveResponse } from '@warp-drive/core/request';\n * import type { User } from '#/data/user.ts'\n *\n * const result = await store.request(\n * withReactiveResponse<User>({ url: '/users/1' })\n * );\n *\n * result.content.data; // will have type User\n * ```\n *\n * @public\n */\nexport function withReactiveResponse<T>(obj: RequestInfo): RequestInfo<ReactiveDataDocument<T>> & {\n /** The branded response type. Present only at the type level; carries no runtime value. */\n [RequestSignature]: ReactiveDataDocument<T>;\n} {\n return obj as RequestInfo<ReactiveDataDocument<T>> & {\n [RequestSignature]: ReactiveDataDocument<T>;\n };\n}\n\n/**\n * @deprecated use {@link withResponseType} instead\n */\nexport const withBrand: typeof withResponseType = withResponseType;\n"],"mappings":"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"}
@@ -1,2 +1,3 @@
1
- export { d as createDeferred, w as withBrand, b as withReactiveResponse, a as withResponseType } from "./request-BrJSCG6r.js";
2
- export { b as getPromiseResult, s as setPromiseResult } from "./promise-cache-DIT8Ypjq.js";
1
+ import { f as setPromiseResult, i as createDeferred, n as withReactiveResponse, r as withResponseType, t as withBrand, u as getPromiseResult } from "./request-BcJNzSgv.js";
2
+
3
+ export { createDeferred, getPromiseResult, setPromiseResult, withBrand, withReactiveResponse, withResponseType };
@@ -1 +1,3 @@
1
- export { D as DISPOSE, d as defineGate, o as defineNonEnumerableSignal, j as defineSignal, k as entangleSignal, t as gate, u as memoized, n as notifyInternalSignal, p as peekInternalSignal, q as signal, r as waitFor, w as withSignalStore } from "../-leaked-DRNv9VIX.js";
1
+ import { E as waitFor, S as withSignalStore, b as notifyInternalSignal, c as defineSignal, d as gate, f as memoized, n as DISPOSE, o as defineGate, p as signal, s as defineNonEnumerableSignal, u as entangleSignal, v as getOrCreateInternalSignal, x as peekInternalSignal, y as makeInitializer } from "../-private-TNaS5Piv.js";
2
+
3
+ export { DISPOSE, defineGate, defineNonEnumerableSignal, defineSignal, entangleSignal, gate, getOrCreateInternalSignal, makeInitializer, memoized, notifyInternalSignal, peekInternalSignal, signal, waitFor, withSignalStore };