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

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 (476) hide show
  1. package/dist/-private-BYn1Vh-L.js +22 -0
  2. package/dist/-private-BYn1Vh-L.js.map +1 -0
  3. package/dist/-private-CyhhcK1a.js +120 -0
  4. package/dist/-private-CyhhcK1a.js.map +1 -0
  5. package/dist/-private-zrP4VGAf.js +3530 -0
  6. package/dist/-private-zrP4VGAf.js.map +1 -0
  7. package/dist/aliases-BWYW5EhX.d.ts +17 -0
  8. package/dist/aliases-BWYW5EhX.d.ts.map +1 -0
  9. package/dist/build-config/babel-macros.d.ts +2 -0
  10. package/dist/build-config/babel-macros.js +3 -1
  11. package/dist/build-config/canary-features.d.ts +1 -0
  12. package/dist/build-config/canary-features.js +1 -1
  13. package/dist/build-config/debugging.d.ts +1 -0
  14. package/dist/build-config/debugging.js +1 -1
  15. package/dist/build-config/deprecations.d.ts +1 -0
  16. package/dist/build-config/deprecations.js +1 -1
  17. package/dist/build-config/env.d.ts +2 -0
  18. package/dist/build-config/env.js +3 -1
  19. package/dist/build-config/macros.d.ts +2 -0
  20. package/dist/build-config/macros.js +3 -1
  21. package/dist/build-config.d.ts +2 -0
  22. package/dist/build-config.js +3 -1
  23. package/dist/change-C7kqv2kW.d.ts +41 -0
  24. package/dist/change-C7kqv2kW.d.ts.map +1 -0
  25. package/dist/concepts-DFldVwEM.d.ts +77 -0
  26. package/dist/concepts-DFldVwEM.d.ts.map +1 -0
  27. package/dist/configure-B_F639tN.d.ts +134 -0
  28. package/dist/configure-B_F639tN.d.ts.map +1 -0
  29. package/dist/configure.d.ts +2 -0
  30. package/dist/configure.js +3 -2
  31. package/dist/document-BEn91SwT.d.ts +129 -0
  32. package/dist/document-BEn91SwT.d.ts.map +1 -0
  33. package/dist/error-50OSEhsF.d.ts +77 -0
  34. package/dist/error-50OSEhsF.d.ts.map +1 -0
  35. package/dist/fields-FM7peCiM.d.ts +2327 -0
  36. package/dist/fields-FM7peCiM.d.ts.map +1 -0
  37. package/dist/graph/-private.d.ts +2 -0
  38. package/dist/graph/-private.js +2200 -3196
  39. package/dist/graph/-private.js.map +1 -0
  40. package/dist/graph-DLqYXP2z.d.ts +186 -0
  41. package/dist/graph-DLqYXP2z.d.ts.map +1 -0
  42. package/dist/identifier-DQnqOSJK.d.ts +112 -0
  43. package/dist/identifier-DQnqOSJK.d.ts.map +1 -0
  44. package/dist/index.d.ts +2 -0
  45. package/dist/index.js +3 -8
  46. package/dist/internal-DtWOpxrR.d.ts +9182 -0
  47. package/dist/internal-DtWOpxrR.d.ts.map +1 -0
  48. package/dist/json-api-raw-C5APJHHB.d.ts +378 -0
  49. package/dist/json-api-raw-C5APJHHB.d.ts.map +1 -0
  50. package/dist/mutations-CqtoGB4t.d.ts +165 -0
  51. package/dist/mutations-CqtoGB4t.d.ts.map +1 -0
  52. package/dist/operations-D1qA6r0_.d.ts +244 -0
  53. package/dist/operations-D1qA6r0_.d.ts.map +1 -0
  54. package/dist/params-DrEx3bf8.d.ts +41 -0
  55. package/dist/params-DrEx3bf8.d.ts.map +1 -0
  56. package/dist/raw-D5hnjiq7.d.ts +31 -0
  57. package/dist/raw-D5hnjiq7.d.ts.map +1 -0
  58. package/dist/reactive/-private.d.ts +2 -0
  59. package/dist/reactive/-private.js +3 -1
  60. package/dist/reactive.d.ts +2 -0
  61. package/dist/reactive.js +5 -4
  62. package/dist/record-D3QQcaIR.d.ts +254 -0
  63. package/dist/record-D3QQcaIR.d.ts.map +1 -0
  64. package/dist/relationship-CmHzMPKf.d.ts +65 -0
  65. package/dist/relationship-CmHzMPKf.d.ts.map +1 -0
  66. package/dist/request-7BJFgSu_.js +766 -0
  67. package/dist/request-7BJFgSu_.js.map +1 -0
  68. package/dist/request.d.ts +2 -0
  69. package/dist/request.js +2 -48
  70. package/dist/signals/-leaked.d.ts +1060 -0
  71. package/dist/signals/-leaked.d.ts.map +1 -0
  72. package/dist/signals/-leaked.js +3 -1
  73. package/dist/src-BOAWJH_S.js +9227 -0
  74. package/dist/src-BOAWJH_S.js.map +1 -0
  75. package/dist/store/-private.d.ts +2 -0
  76. package/dist/store/-private.js +3 -1
  77. package/dist/store-DNF9Rgoh.js +462 -0
  78. package/dist/store-DNF9Rgoh.js.map +1 -0
  79. package/dist/store.d.ts +2 -0
  80. package/dist/store.js +3 -1
  81. package/dist/symbols-DjRDCeX0.d.ts +88 -0
  82. package/dist/symbols-DjRDCeX0.d.ts.map +1 -0
  83. package/dist/types/-private.d.ts +76 -0
  84. package/dist/types/-private.d.ts.map +1 -0
  85. package/dist/types/-private.js +1 -77
  86. package/dist/types/cache/aliases.d.ts +2 -0
  87. package/dist/types/cache/change.d.ts +2 -0
  88. package/dist/types/cache/mutations.d.ts +2 -0
  89. package/dist/types/cache/operations.d.ts +2 -0
  90. package/dist/types/cache/relationship.d.ts +2 -0
  91. package/dist/types/cache.d.ts +2 -0
  92. package/dist/types/graph.d.ts +2 -0
  93. package/dist/types/identifier.d.ts +2 -0
  94. package/dist/types/identifier.js +60 -52
  95. package/dist/types/identifier.js.map +1 -0
  96. package/dist/types/json/raw.d.ts +2 -0
  97. package/dist/types/params.d.ts +2 -0
  98. package/dist/types/record.d.ts +2 -0
  99. package/dist/types/record.js +211 -181
  100. package/dist/types/record.js.map +1 -0
  101. package/dist/types/request.d.ts +2 -0
  102. package/dist/types/request.js +138 -69
  103. package/dist/types/request.js.map +1 -0
  104. package/dist/types/runtime.d.ts +55 -0
  105. package/dist/types/runtime.d.ts.map +1 -0
  106. package/dist/types/runtime.js +54 -26
  107. package/dist/types/runtime.js.map +1 -0
  108. package/dist/types/schema/concepts.d.ts +2 -0
  109. package/dist/types/schema/fields.d.ts +2 -0
  110. package/dist/types/schema/fields.js +501 -495
  111. package/dist/types/schema/fields.js.map +1 -0
  112. package/dist/types/schema/fields.type-test.d.ts +1 -0
  113. package/dist/types/schema/fields.type-test.js +79 -0
  114. package/dist/types/schema/fields.type-test.js.map +1 -0
  115. package/dist/types/schema/schema-service.d.ts +2 -0
  116. package/dist/types/spec/document.d.ts +2 -0
  117. package/dist/types/spec/error.d.ts +2 -0
  118. package/dist/types/spec/json-api-raw.d.ts +2 -0
  119. package/dist/types/symbols.d.ts +2 -0
  120. package/dist/types/symbols.js +84 -77
  121. package/dist/types/symbols.js.map +1 -0
  122. package/dist/types/utils.d.ts +2 -0
  123. package/dist/types.d.ts +3 -0
  124. package/dist/unpkg/dev/-private-BoSTJwp9.js +3519 -0
  125. package/dist/unpkg/dev/-private-BoSTJwp9.js.map +1 -0
  126. package/dist/unpkg/dev/-private-CUkeqUhO.js +22 -0
  127. package/dist/unpkg/dev/-private-CUkeqUhO.js.map +1 -0
  128. package/dist/unpkg/dev/-private-D6Tw25AD.js +111 -0
  129. package/dist/unpkg/dev/-private-D6Tw25AD.js.map +1 -0
  130. package/dist/unpkg/dev/build-config/babel-macros.js +3 -1
  131. package/dist/unpkg/dev/build-config/canary-features.js +1 -1
  132. package/dist/unpkg/dev/build-config/debugging.js +1 -1
  133. package/dist/unpkg/dev/build-config/deprecations.js +1 -1
  134. package/dist/unpkg/dev/build-config/env.js +3 -1
  135. package/dist/unpkg/dev/build-config/macros.js +3 -1
  136. package/dist/unpkg/dev/build-config.js +3 -1
  137. package/dist/unpkg/dev/configure.js +3 -1
  138. package/dist/unpkg/dev/graph/-private.js +1958 -2953
  139. package/dist/unpkg/dev/graph/-private.js.map +1 -0
  140. package/dist/unpkg/dev/index.js +3 -6
  141. package/dist/unpkg/dev/reactive/-private.js +3 -1
  142. package/dist/unpkg/dev/reactive.js +5 -3
  143. package/dist/unpkg/dev/request-CwjpJB3r.js +756 -0
  144. package/dist/unpkg/dev/request-CwjpJB3r.js.map +1 -0
  145. package/dist/unpkg/dev/request.js +2 -48
  146. package/dist/unpkg/dev/runtime-DoDtzXJb.js +110 -0
  147. package/dist/unpkg/dev/runtime-DoDtzXJb.js.map +1 -0
  148. package/dist/unpkg/dev/signals/-leaked.js +3 -1
  149. package/dist/unpkg/dev/src-CP6e_ozt.js +8331 -0
  150. package/dist/unpkg/dev/src-CP6e_ozt.js.map +1 -0
  151. package/dist/unpkg/dev/store/-private.js +3 -55
  152. package/dist/unpkg/dev/store-DamE3C4y.js +427 -0
  153. package/dist/unpkg/dev/store-DamE3C4y.js.map +1 -0
  154. package/dist/unpkg/dev/store.js +1 -556
  155. package/dist/unpkg/dev/types/-private.js +1 -67
  156. package/dist/unpkg/dev/types/identifier.js +63 -56
  157. package/dist/unpkg/dev/types/identifier.js.map +1 -0
  158. package/dist/unpkg/dev/types/record.js +211 -181
  159. package/dist/unpkg/dev/types/record.js.map +1 -0
  160. package/dist/unpkg/dev/types/request.js +138 -69
  161. package/dist/unpkg/dev/types/request.js.map +1 -0
  162. package/dist/unpkg/dev/types/runtime.js +54 -26
  163. package/dist/unpkg/dev/types/runtime.js.map +1 -0
  164. package/dist/unpkg/dev/types/schema/fields.js +501 -495
  165. package/dist/unpkg/dev/types/schema/fields.js.map +1 -0
  166. package/dist/unpkg/dev/types/schema/fields.type-test.js +79 -0
  167. package/dist/unpkg/dev/types/schema/fields.type-test.js.map +1 -0
  168. package/dist/unpkg/dev/types/symbols.js +84 -77
  169. package/dist/unpkg/dev/types/symbols.js.map +1 -0
  170. package/dist/unpkg/dev/utils/string.js +79 -85
  171. package/dist/unpkg/dev/utils/string.js.map +1 -0
  172. package/dist/unpkg/dev-deprecated/-private-BoSTJwp9.js +3519 -0
  173. package/dist/unpkg/dev-deprecated/-private-BoSTJwp9.js.map +1 -0
  174. package/dist/unpkg/dev-deprecated/-private-CUkeqUhO.js +22 -0
  175. package/dist/unpkg/dev-deprecated/-private-CUkeqUhO.js.map +1 -0
  176. package/dist/unpkg/dev-deprecated/-private-D6Tw25AD.js +111 -0
  177. package/dist/unpkg/dev-deprecated/-private-D6Tw25AD.js.map +1 -0
  178. package/dist/unpkg/dev-deprecated/build-config/babel-macros.js +3 -1
  179. package/dist/unpkg/dev-deprecated/build-config/canary-features.js +1 -1
  180. package/dist/unpkg/dev-deprecated/build-config/debugging.js +1 -1
  181. package/dist/unpkg/dev-deprecated/build-config/deprecations.js +1 -1
  182. package/dist/unpkg/dev-deprecated/build-config/env.js +3 -1
  183. package/dist/unpkg/dev-deprecated/build-config/macros.js +3 -1
  184. package/dist/unpkg/dev-deprecated/build-config.js +3 -1
  185. package/dist/unpkg/dev-deprecated/configure.js +3 -1
  186. package/dist/unpkg/dev-deprecated/graph/-private.js +2077 -3147
  187. package/dist/unpkg/dev-deprecated/graph/-private.js.map +1 -0
  188. package/dist/unpkg/dev-deprecated/index.js +3 -5
  189. package/dist/unpkg/dev-deprecated/reactive/-private.js +3 -1
  190. package/dist/unpkg/dev-deprecated/reactive.js +5 -3
  191. package/dist/unpkg/dev-deprecated/request-CwjpJB3r.js +756 -0
  192. package/dist/unpkg/dev-deprecated/request-CwjpJB3r.js.map +1 -0
  193. package/dist/unpkg/dev-deprecated/request.js +2 -48
  194. package/dist/unpkg/dev-deprecated/runtime-CPL2BGgT.js +110 -0
  195. package/dist/unpkg/dev-deprecated/runtime-CPL2BGgT.js.map +1 -0
  196. package/dist/unpkg/dev-deprecated/signals/-leaked.js +3 -1
  197. package/dist/unpkg/dev-deprecated/src-De8OV58h.js +8884 -0
  198. package/dist/unpkg/dev-deprecated/src-De8OV58h.js.map +1 -0
  199. package/dist/unpkg/dev-deprecated/store/-private.js +3 -1
  200. package/dist/unpkg/dev-deprecated/store-Bsdz5mRe.js +427 -0
  201. package/dist/unpkg/dev-deprecated/store-Bsdz5mRe.js.map +1 -0
  202. package/dist/unpkg/dev-deprecated/store.js +1 -556
  203. package/dist/unpkg/dev-deprecated/types/-private.js +1 -67
  204. package/dist/unpkg/dev-deprecated/types/identifier.js +63 -56
  205. package/dist/unpkg/dev-deprecated/types/identifier.js.map +1 -0
  206. package/dist/unpkg/dev-deprecated/types/record.js +211 -181
  207. package/dist/unpkg/dev-deprecated/types/record.js.map +1 -0
  208. package/dist/unpkg/dev-deprecated/types/request.js +138 -69
  209. package/dist/unpkg/dev-deprecated/types/request.js.map +1 -0
  210. package/dist/unpkg/dev-deprecated/types/runtime.js +54 -26
  211. package/dist/unpkg/dev-deprecated/types/runtime.js.map +1 -0
  212. package/dist/unpkg/dev-deprecated/types/schema/fields.js +501 -495
  213. package/dist/unpkg/dev-deprecated/types/schema/fields.js.map +1 -0
  214. package/dist/unpkg/dev-deprecated/types/schema/fields.type-test.js +79 -0
  215. package/dist/unpkg/dev-deprecated/types/schema/fields.type-test.js.map +1 -0
  216. package/dist/unpkg/dev-deprecated/types/symbols.js +84 -77
  217. package/dist/unpkg/dev-deprecated/types/symbols.js.map +1 -0
  218. package/dist/unpkg/dev-deprecated/utils/string.js +79 -85
  219. package/dist/unpkg/dev-deprecated/utils/string.js.map +1 -0
  220. package/dist/unpkg/prod/-private-B36B1ztP.js +22 -0
  221. package/dist/unpkg/prod/-private-B36B1ztP.js.map +1 -0
  222. package/dist/unpkg/prod/-private-DHco-h0q.js +3294 -0
  223. package/dist/unpkg/prod/-private-DHco-h0q.js.map +1 -0
  224. package/dist/unpkg/prod/-private-Dhl123OI.js +99 -0
  225. package/dist/unpkg/prod/-private-Dhl123OI.js.map +1 -0
  226. package/dist/unpkg/prod/build-config/babel-macros.js +3 -1
  227. package/dist/unpkg/prod/build-config/canary-features.js +1 -1
  228. package/dist/unpkg/prod/build-config/debugging.js +1 -1
  229. package/dist/unpkg/prod/build-config/deprecations.js +1 -1
  230. package/dist/unpkg/prod/build-config/env.js +3 -1
  231. package/dist/unpkg/prod/build-config/macros.js +3 -1
  232. package/dist/unpkg/prod/build-config.js +3 -1
  233. package/dist/unpkg/prod/configure.js +3 -2
  234. package/dist/unpkg/prod/graph/-private.js +1494 -2101
  235. package/dist/unpkg/prod/graph/-private.js.map +1 -0
  236. package/dist/unpkg/prod/index.js +2 -482
  237. package/dist/unpkg/prod/reactive/-private.js +3 -1
  238. package/dist/unpkg/prod/reactive.js +5 -30
  239. package/dist/unpkg/prod/request-BBdC1Sz7.js +480 -0
  240. package/dist/unpkg/prod/request-BBdC1Sz7.js.map +1 -0
  241. package/dist/unpkg/prod/request.js +3 -2
  242. package/dist/unpkg/prod/signals/-leaked.js +3 -1
  243. package/dist/unpkg/prod/src-nFHlZgKa.js +6942 -0
  244. package/dist/unpkg/prod/src-nFHlZgKa.js.map +1 -0
  245. package/dist/unpkg/prod/store/-private.js +3 -126
  246. package/dist/unpkg/prod/store-BWhmb7Ob.js +359 -0
  247. package/dist/unpkg/prod/store-BWhmb7Ob.js.map +1 -0
  248. package/dist/unpkg/prod/store.js +1 -435
  249. package/dist/unpkg/prod/types/-private.js +1 -47
  250. package/dist/unpkg/prod/types/identifier.js +63 -56
  251. package/dist/unpkg/prod/types/identifier.js.map +1 -0
  252. package/dist/unpkg/prod/types/record.js +211 -181
  253. package/dist/unpkg/prod/types/record.js.map +1 -0
  254. package/dist/unpkg/prod/types/request.js +138 -69
  255. package/dist/unpkg/prod/types/request.js.map +1 -0
  256. package/dist/unpkg/prod/types/runtime.js +54 -26
  257. package/dist/unpkg/prod/types/runtime.js.map +1 -0
  258. package/dist/unpkg/prod/types/schema/fields.js +501 -495
  259. package/dist/unpkg/prod/types/schema/fields.js.map +1 -0
  260. package/dist/unpkg/prod/types/schema/fields.type-test.js +79 -0
  261. package/dist/unpkg/prod/types/schema/fields.type-test.js.map +1 -0
  262. package/dist/unpkg/prod/types/symbols.js +84 -77
  263. package/dist/unpkg/prod/types/symbols.js.map +1 -0
  264. package/dist/unpkg/prod/utils/string.js +70 -66
  265. package/dist/unpkg/prod/utils/string.js.map +1 -0
  266. package/dist/unpkg/prod-deprecated/-private-B36B1ztP.js +22 -0
  267. package/dist/unpkg/prod-deprecated/-private-B36B1ztP.js.map +1 -0
  268. package/dist/unpkg/prod-deprecated/-private-DHco-h0q.js +3294 -0
  269. package/dist/unpkg/prod-deprecated/-private-DHco-h0q.js.map +1 -0
  270. package/dist/unpkg/prod-deprecated/-private-Dhl123OI.js +99 -0
  271. package/dist/unpkg/prod-deprecated/-private-Dhl123OI.js.map +1 -0
  272. package/dist/unpkg/prod-deprecated/build-config/babel-macros.js +3 -1
  273. package/dist/unpkg/prod-deprecated/build-config/canary-features.js +1 -1
  274. package/dist/unpkg/prod-deprecated/build-config/debugging.js +1 -1
  275. package/dist/unpkg/prod-deprecated/build-config/deprecations.js +1 -1
  276. package/dist/unpkg/prod-deprecated/build-config/env.js +3 -1
  277. package/dist/unpkg/prod-deprecated/build-config/macros.js +3 -1
  278. package/dist/unpkg/prod-deprecated/build-config.js +3 -1
  279. package/dist/unpkg/prod-deprecated/configure.js +3 -2
  280. package/dist/unpkg/prod-deprecated/graph/-private.js +1603 -2272
  281. package/dist/unpkg/prod-deprecated/graph/-private.js.map +1 -0
  282. package/dist/unpkg/prod-deprecated/index.js +2 -482
  283. package/dist/unpkg/prod-deprecated/reactive/-private.js +3 -1
  284. package/dist/unpkg/prod-deprecated/reactive.js +5 -5
  285. package/dist/unpkg/prod-deprecated/request-BBdC1Sz7.js +480 -0
  286. package/dist/unpkg/prod-deprecated/request-BBdC1Sz7.js.map +1 -0
  287. package/dist/unpkg/prod-deprecated/request.js +3 -2
  288. package/dist/unpkg/prod-deprecated/signals/-leaked.js +3 -1
  289. package/dist/unpkg/prod-deprecated/src-Cku5ymUJ.js +7375 -0
  290. package/dist/unpkg/prod-deprecated/src-Cku5ymUJ.js.map +1 -0
  291. package/dist/unpkg/prod-deprecated/store/-private.js +3 -88
  292. package/dist/unpkg/prod-deprecated/store-BWhmb7Ob.js +359 -0
  293. package/dist/unpkg/prod-deprecated/store-BWhmb7Ob.js.map +1 -0
  294. package/dist/unpkg/prod-deprecated/store.js +1 -435
  295. package/dist/unpkg/prod-deprecated/types/-private.js +1 -47
  296. package/dist/unpkg/prod-deprecated/types/identifier.js +63 -56
  297. package/dist/unpkg/prod-deprecated/types/identifier.js.map +1 -0
  298. package/dist/unpkg/prod-deprecated/types/record.js +211 -181
  299. package/dist/unpkg/prod-deprecated/types/record.js.map +1 -0
  300. package/dist/unpkg/prod-deprecated/types/request.js +138 -69
  301. package/dist/unpkg/prod-deprecated/types/request.js.map +1 -0
  302. package/dist/unpkg/prod-deprecated/types/runtime.js +54 -26
  303. package/dist/unpkg/prod-deprecated/types/runtime.js.map +1 -0
  304. package/dist/unpkg/prod-deprecated/types/schema/fields.js +501 -495
  305. package/dist/unpkg/prod-deprecated/types/schema/fields.js.map +1 -0
  306. package/dist/unpkg/prod-deprecated/types/schema/fields.type-test.js +79 -0
  307. package/dist/unpkg/prod-deprecated/types/schema/fields.type-test.js.map +1 -0
  308. package/dist/unpkg/prod-deprecated/types/symbols.js +84 -77
  309. package/dist/unpkg/prod-deprecated/types/symbols.js.map +1 -0
  310. package/dist/unpkg/prod-deprecated/utils/string.js +70 -66
  311. package/dist/unpkg/prod-deprecated/utils/string.js.map +1 -0
  312. package/dist/utils/string.d.ts +54 -0
  313. package/dist/utils/string.d.ts.map +1 -0
  314. package/dist/utils/string.js +84 -85
  315. package/dist/utils/string.js.map +1 -0
  316. package/dist/utils-BtURiy8l.d.ts +24 -0
  317. package/dist/utils-BtURiy8l.d.ts.map +1 -0
  318. package/package.json +17 -21
  319. package/declarations/build-config/babel-macros.d.ts +0 -1
  320. package/declarations/build-config/canary-features.d.ts +0 -1
  321. package/declarations/build-config/debugging.d.ts +0 -1
  322. package/declarations/build-config/deprecations.d.ts +0 -1
  323. package/declarations/build-config/env.d.ts +0 -1
  324. package/declarations/build-config/macros.d.ts +0 -1
  325. package/declarations/build-config.d.ts +0 -18
  326. package/declarations/configure.d.ts +0 -7
  327. package/declarations/graph/-private/-diff.d.ts +0 -19
  328. package/declarations/graph/-private/-edge-definition.d.ts +0 -149
  329. package/declarations/graph/-private/-state.d.ts +0 -9
  330. package/declarations/graph/-private/-utils.d.ts +0 -25
  331. package/declarations/graph/-private/coerce-id.d.ts +0 -4
  332. package/declarations/graph/-private/debug/assert-polymorphic-type.d.ts +0 -6
  333. package/declarations/graph/-private/edges/collection.d.ts +0 -39
  334. package/declarations/graph/-private/edges/implicit.d.ts +0 -43
  335. package/declarations/graph/-private/edges/resource.d.ts +0 -23
  336. package/declarations/graph/-private/graph.d.ts +0 -56
  337. package/declarations/graph/-private/normalize-link.d.ts +0 -2
  338. package/declarations/graph/-private/operations/add-to-related-records.d.ts +0 -4
  339. package/declarations/graph/-private/operations/merge-identifier.d.ts +0 -3
  340. package/declarations/graph/-private/operations/remove-from-related-records.d.ts +0 -4
  341. package/declarations/graph/-private/operations/replace-related-record.d.ts +0 -3
  342. package/declarations/graph/-private/operations/replace-related-records.d.ts +0 -7
  343. package/declarations/graph/-private/operations/update-relationship.d.ts +0 -9
  344. package/declarations/graph/-private.d.ts +0 -13
  345. package/declarations/index.d.ts +0 -96
  346. package/declarations/reactive/-private/default-mode.d.ts +0 -73
  347. package/declarations/reactive/-private/document.d.ts +0 -142
  348. package/declarations/reactive/-private/fields/extension.d.ts +0 -8
  349. package/declarations/reactive/-private/fields/get-field-key.d.ts +0 -8
  350. package/declarations/reactive/-private/fields/managed-array.d.ts +0 -18
  351. package/declarations/reactive/-private/fields/managed-object.d.ts +0 -17
  352. package/declarations/reactive/-private/fields/many-array-manager.d.ts +0 -19
  353. package/declarations/reactive/-private/hooks.d.ts +0 -5
  354. package/declarations/reactive/-private/kind/alias-field.d.ts +0 -4
  355. package/declarations/reactive/-private/kind/array-field.d.ts +0 -4
  356. package/declarations/reactive/-private/kind/attribute-field.d.ts +0 -4
  357. package/declarations/reactive/-private/kind/belongs-to-field.d.ts +0 -4
  358. package/declarations/reactive/-private/kind/collection-field.d.ts +0 -4
  359. package/declarations/reactive/-private/kind/derived-field.d.ts +0 -4
  360. package/declarations/reactive/-private/kind/generic-field.d.ts +0 -4
  361. package/declarations/reactive/-private/kind/has-many-field.d.ts +0 -4
  362. package/declarations/reactive/-private/kind/hash-field.d.ts +0 -4
  363. package/declarations/reactive/-private/kind/identity-field.d.ts +0 -4
  364. package/declarations/reactive/-private/kind/local-field.d.ts +0 -4
  365. package/declarations/reactive/-private/kind/object-field.d.ts +0 -4
  366. package/declarations/reactive/-private/kind/resource-field.d.ts +0 -4
  367. package/declarations/reactive/-private/kind/schema-array-field.d.ts +0 -4
  368. package/declarations/reactive/-private/kind/schema-object-field.d.ts +0 -4
  369. package/declarations/reactive/-private/record.d.ts +0 -83
  370. package/declarations/reactive/-private/schema.d.ts +0 -326
  371. package/declarations/reactive/-private/symbols.d.ts +0 -5
  372. package/declarations/reactive/-private.d.ts +0 -2
  373. package/declarations/reactive.d.ts +0 -286
  374. package/declarations/request/-private/context.d.ts +0 -39
  375. package/declarations/request/-private/debug.d.ts +0 -4
  376. package/declarations/request/-private/fetch.d.ts +0 -33
  377. package/declarations/request/-private/future.d.ts +0 -7
  378. package/declarations/request/-private/manager.d.ts +0 -158
  379. package/declarations/request/-private/promise-cache.d.ts +0 -28
  380. package/declarations/request/-private/types.d.ts +0 -234
  381. package/declarations/request/-private/utils.d.ts +0 -57
  382. package/declarations/request.d.ts +0 -52
  383. package/declarations/signals/-leaked.d.ts +0 -2
  384. package/declarations/signals/-private.d.ts +0 -6
  385. package/declarations/signals/promise-state.d.ts +0 -264
  386. package/declarations/signals/reactivity/configure.d.ts +0 -138
  387. package/declarations/signals/reactivity/internal.d.ts +0 -154
  388. package/declarations/signals/reactivity/signal.d.ts +0 -56
  389. package/declarations/signals/request-state.d.ts +0 -372
  390. package/declarations/signals/request-subscription.d.ts +0 -177
  391. package/declarations/store/-private/cache-handler/handler.d.ts +0 -56
  392. package/declarations/store/-private/cache-handler/types.d.ts +0 -84
  393. package/declarations/store/-private/cache-handler/utils.d.ts +0 -31
  394. package/declarations/store/-private/caches/instance-cache.d.ts +0 -58
  395. package/declarations/store/-private/caches/resource-utils.d.ts +0 -9
  396. package/declarations/store/-private/debug/utils.d.ts +0 -7
  397. package/declarations/store/-private/default-cache-policy.d.ts +0 -387
  398. package/declarations/store/-private/managers/cache-capabilities-manager.d.ts +0 -34
  399. package/declarations/store/-private/managers/cache-key-manager.d.ts +0 -304
  400. package/declarations/store/-private/managers/cache-manager.d.ts +0 -367
  401. package/declarations/store/-private/managers/notification-manager.d.ts +0 -83
  402. package/declarations/store/-private/managers/record-array-manager.d.ts +0 -100
  403. package/declarations/store/-private/network/request-cache.d.ts +0 -103
  404. package/declarations/store/-private/record-arrays/-utils.d.ts +0 -80
  405. package/declarations/store/-private/record-arrays/legacy-live-array.d.ts +0 -81
  406. package/declarations/store/-private/record-arrays/legacy-many-array.d.ts +0 -133
  407. package/declarations/store/-private/record-arrays/legacy-query.d.ts +0 -81
  408. package/declarations/store/-private/record-arrays/native-proxy-type-fix.d.ts +0 -3
  409. package/declarations/store/-private/record-arrays/resource-array.d.ts +0 -67
  410. package/declarations/store/-private/store-service.d.ts +0 -874
  411. package/declarations/store/-private/utils/coerce-id.d.ts +0 -4
  412. package/declarations/store/-private/utils/construct-resource.d.ts +0 -6
  413. package/declarations/store/-private/utils/is-non-empty-string.d.ts +0 -1
  414. package/declarations/store/-private/utils/normalize-model-name.d.ts +0 -1
  415. package/declarations/store/-private/utils/uuid-polyfill.d.ts +0 -1
  416. package/declarations/store/-private.d.ts +0 -24
  417. package/declarations/store/-types/q/cache-capabilities-manager.d.ts +0 -90
  418. package/declarations/store/-types/q/identifier.d.ts +0 -23
  419. package/declarations/store/-types/q/record-instance.d.ts +0 -22
  420. package/declarations/store/-types/q/store.d.ts +0 -31
  421. package/declarations/store/deprecated/-private.d.ts +0 -223
  422. package/declarations/store/deprecated/store.d.ts +0 -784
  423. package/declarations/store.d.ts +0 -2
  424. package/declarations/types/-private.d.ts +0 -22
  425. package/declarations/types/cache/aliases.d.ts +0 -1
  426. package/declarations/types/cache/change.d.ts +0 -6
  427. package/declarations/types/cache/mutations.d.ts +0 -38
  428. package/declarations/types/cache/operations.d.ts +0 -168
  429. package/declarations/types/cache/relationship.d.ts +0 -13
  430. package/declarations/types/cache.d.ts +0 -429
  431. package/declarations/types/graph.d.ts +0 -47
  432. package/declarations/types/identifier.d.ts +0 -86
  433. package/declarations/types/json/raw.d.ts +0 -6
  434. package/declarations/types/params.d.ts +0 -8
  435. package/declarations/types/record.d.ts +0 -269
  436. package/declarations/types/request.d.ts +0 -367
  437. package/declarations/types/runtime.d.ts +0 -14
  438. package/declarations/types/schema/concepts.d.ts +0 -23
  439. package/declarations/types/schema/fields.d.ts +0 -2200
  440. package/declarations/types/schema/fields.type-test.d.ts +0 -1
  441. package/declarations/types/schema/schema-service.d.ts +0 -380
  442. package/declarations/types/spec/document.d.ts +0 -67
  443. package/declarations/types/spec/error.d.ts +0 -18
  444. package/declarations/types/spec/json-api-raw.d.ts +0 -139
  445. package/declarations/types/symbols.d.ts +0 -78
  446. package/declarations/types/utils.d.ts +0 -5
  447. package/declarations/types.d.ts +0 -11
  448. package/declarations/utils/string.d.ts +0 -47
  449. package/dist/configure-DPUFCemT.js +0 -1940
  450. package/dist/default-cache-policy-D7_u4YRH.js +0 -572
  451. package/dist/future-BKkJJkj7.js +0 -678
  452. package/dist/index-CQP2NSqg.js +0 -9982
  453. package/dist/symbols-3C1OkYtZ.js +0 -39
  454. package/dist/unpkg/dev/-leaked-Co0EI6Go.js +0 -1939
  455. package/dist/unpkg/dev/-private-sql1_mdx.js +0 -39
  456. package/dist/unpkg/dev/future-DFfOzSoe.js +0 -672
  457. package/dist/unpkg/dev/index-BzcBOnw9.js +0 -9392
  458. package/dist/unpkg/dev/runtime-E1M51_-O.js +0 -135
  459. package/dist/unpkg/dev-deprecated/-leaked-DjMeRqdU.js +0 -1939
  460. package/dist/unpkg/dev-deprecated/-private-3C1OkYtZ.js +0 -39
  461. package/dist/unpkg/dev-deprecated/future-DFfOzSoe.js +0 -672
  462. package/dist/unpkg/dev-deprecated/index-6TnTv-WG.js +0 -10007
  463. package/dist/unpkg/dev-deprecated/runtime-DAu5b0IR.js +0 -135
  464. package/dist/unpkg/prod/-leaked-DUONXQDB.js +0 -1676
  465. package/dist/unpkg/prod/-private-sql1_mdx.js +0 -39
  466. package/dist/unpkg/prod/handler-EU_8ncB2.js +0 -1619
  467. package/dist/unpkg/prod/promise-cache-DIT8Ypjq.js +0 -19
  468. package/dist/unpkg/prod/request-BrJSCG6r.js +0 -421
  469. package/dist/unpkg/prod/schema-BSkHyoWz.js +0 -5219
  470. package/dist/unpkg/prod-deprecated/-leaked-DRNv9VIX.js +0 -1676
  471. package/dist/unpkg/prod-deprecated/-private-3C1OkYtZ.js +0 -39
  472. package/dist/unpkg/prod-deprecated/handler-CCIu4sQ3.js +0 -334
  473. package/dist/unpkg/prod-deprecated/hooks-Dv4Np0MY.js +0 -26
  474. package/dist/unpkg/prod-deprecated/promise-cache-DIT8Ypjq.js +0 -19
  475. package/dist/unpkg/prod-deprecated/request-BrJSCG6r.js +0 -421
  476. package/dist/unpkg/prod-deprecated/schema-CJcjHv0E.js +0 -6939
@@ -1,191 +1,221 @@
1
+ //#region src/types/record.ts
1
2
  /**
2
- * Records may be anything, They don't even
3
- * have to be objects.
4
- *
5
- * Whatever they are, if they have a Type
6
- * property, that property will be used by WarpDrive
7
- * and WarpDrive to provide better type safety and
8
- * intellisense.
9
- *
10
- * @class TypedRecordInstance
11
- */
12
-
3
+ * Records may be anything, They don't even
4
+ * have to be objects.
5
+ *
6
+ * Whatever they are, if they have a Type
7
+ * property, that property will be used by WarpDrive
8
+ * and WarpDrive to provide better type safety and
9
+ * intellisense.
10
+ *
11
+ * @class TypedRecordInstance
12
+ */
13
13
  /**
14
- * A type utility that extracts the Type if available,
15
- * otherwise it returns never.
16
- *
17
- */
18
-
14
+ * A type utility that extracts the Type if available,
15
+ * otherwise it returns never.
16
+ *
17
+ */
19
18
  /**
20
- * A type utility that extracts the Type if available,
21
- * otherwise it returns string
22
- *
23
- */
24
-
19
+ * A type utility that extracts the Type if available,
20
+ * otherwise it returns string
21
+ *
22
+ */
25
23
  /**
26
- * A Utility that extracts either resource types or resource paths from a TypedRecordInstance.
27
- *
28
- * Its limitations are mostly around its intentional non-recursiveness. It presumes that APIs which
29
- * implement includes will not allow cyclical include paths, and will collapse includes by type.
30
- *
31
- * This follows closer to the JSON:API fields spec than to the includes spec in nature, but in
32
- * practice it is so impracticle for an API to allow z-algo include paths that this is probably
33
- * reasonable.
34
- *
35
- * We may need to revisit this in the future, opting to either make this restriction optional or
36
- * to allow for other strategies.
37
- *
38
- * There's a 90% chance this particular implementation belongs being in the JSON:API package instead
39
- * of core-types, but it's here for now.
40
- *
41
- */
42
-
24
+ * A Utility that extracts either resource types or resource paths from a TypedRecordInstance.
25
+ *
26
+ * Its limitations are mostly around its intentional non-recursiveness. It presumes that APIs which
27
+ * implement includes will not allow cyclical include paths, and will collapse includes by type.
28
+ *
29
+ * This follows closer to the JSON:API fields spec than to the includes spec in nature, but in
30
+ * practice it is so impracticle for an API to allow z-algo include paths that this is probably
31
+ * reasonable.
32
+ *
33
+ * We may need to revisit this in the future, opting to either make this restriction optional or
34
+ * to allow for other strategies.
35
+ *
36
+ * There's a 90% chance this particular implementation belongs being in the JSON:API package instead
37
+ * of core-types, but it's here for now.
38
+ *
39
+ */
43
40
  /**
44
- * A utility that provides the union of all ResourceName for all potential
45
- * includes for the given TypedRecordInstance.
46
- *
47
- */
48
-
49
- // ToPaths<ExpandIgnore<T, true>, false>;
50
-
41
+ * A utility that provides the union of all ResourceName for all potential
42
+ * includes for the given TypedRecordInstance.
43
+ *
44
+ */
51
45
  /**
52
- * A utility that provides the union type of all valid include paths for the given
53
- * TypedRecordInstance.
54
- *
55
- * Cyclical paths are filtered out.
56
- *
57
- */
58
-
46
+ * A utility that provides the union type of all valid include paths for the given
47
+ * TypedRecordInstance.
48
+ *
49
+ * Cyclical paths are filtered out.
50
+ *
51
+ */
52
+ /**
53
+ * A type-erased placeholder for a record instance, used where the
54
+ * specific record type is not known or not relevant.
55
+ */
56
+ /**
57
+ * @internal
58
+ */
59
+ /**
60
+ * Validates that the comma-separated-string `T` (e.g. `'company,company.ceo,friends'`)
61
+ * only contains paths present in the union `SET` (typically {@link Includes}).
62
+ *
63
+ * TypeScript cannot autocomplete against this type; prefer {@link createIncludeValidator}
64
+ * for a better development experience unless you are writing a similar wrapper utility.
65
+ *
66
+ * @example
67
+ * ```ts
68
+ * import type { StringSatisfiesIncludes, Includes } from '@warp-drive/core/types/record';
69
+ *
70
+ * const includes: StringSatisfiesIncludes<
71
+ * 'company,company.ceo,friends',
72
+ * Includes<User>
73
+ * > = 'company,company.ceo,friends';
74
+ * ```
75
+ */
76
+ /**
77
+ * Creates a runtime validator function for comma-separated `include` strings,
78
+ * ensuring at compile time that only valid paths for `T` (per {@link Includes})
79
+ * are supplied.
80
+ *
81
+ * @example
82
+ * ```ts
83
+ * import { createIncludeValidator } from '@warp-drive/core/types/record';
84
+ *
85
+ * const userIncludesValidator = createIncludeValidator<User>;
86
+ *
87
+ * userIncludesValidator('company,company.ceo,friends');
88
+ * ```
89
+ */
59
90
  function createIncludeValidator() {
60
- return function validateIncludes(includes) {
61
- return includes;
62
- };
91
+ return function validateIncludes(includes) {
92
+ return includes;
93
+ };
63
94
  }
64
-
65
95
  /**
66
- * A utility that takes two types, K and T, and produces a new type that is a "mask" of T based on K.
67
- *
68
- * That's a mouthful, so let's break it down:
69
- *
70
- * Let's say you have a User type and an Address type.
71
- *
72
- * ```ts
73
- * interface Address {
74
- * street: string;
75
- * city: string;
76
- * state: string;
77
- * zip: string;
78
- * }
79
- *
80
- * interface User {
81
- * name: string;
82
- * title: string;
83
- * address: Address;
84
- * }
85
- * ```
86
- *
87
- * Now, imagine you want to load a preview of the user with some information about their address,
88
- * but you don't want to load the entire user or address. You probably want to still ensure
89
- * the type of the data you do load matches the underlying Address and User types, but doesn't
90
- * include everything.
91
- *
92
- * If you did this manually, you might do something like this:
93
- *
94
- * ```ts
95
- * interface UserPreview {
96
- * name: string;
97
- * address: AddressPreview;
98
- * }
99
- *
100
- * interface AddressPreview {
101
- * city: string;
102
- * }
103
- * ```
104
- *
105
- * From a TypeScript performance perspective, this is the best way to approach these preview
106
- * types, but this is also tedious and error-prone, especially if the User or Address types change.
107
- *
108
- * For Address, we could create a validated type using `Pick`:
109
- *
110
- * ```ts
111
- * type AddressPreview = Pick<Address, 'city'>;
112
- * ```
113
- *
114
- * This ensures that if the Address type changes, our AddressPreview will still be valid.
115
- * However, for UserPreview, we can't just use `Pick` because the `address` property is of type `Address`,
116
- * not `AddressPreview`. This is where the `Mask` type comes in.
117
- *
118
- * With `Mask`, we define the `UserPreview` in two parts
119
- * - first, we define the subset of fields we want to include from `User`, using `Pick` or an interface.
120
- * - then, we use `Mask` to replace the related types of fields like Address with their more limited subset.
121
- *
122
- * Here's how we can do it:
123
- *
124
- * ```ts
125
- * // First, we define the base of UserPreview with Pick
126
- * type UserPreviewBase = Pick<User, 'name' | 'address'>;
127
- * // Then, we use Mask to replace Address with AddressPreview
128
- * type UserPreview = Mask<{ address: AddressPreview }, UserPreviewBase>;
129
- * ```
130
- *
131
- * Now, `UserPreview` will have the `name` field from `User` and the `address` field will be of type `AddressPreview`.
132
- * This way, if the `User` or `Address` types change, TypeScript will ensure that our `UserPreview` and `AddressPreview`
133
- * types remain valid and consistent with the underlying types.
134
- *
135
- * But what if your app has data with massive interfaces such that the TypeScript performance of this
136
- * approach becomes a problem? In that case, see {@link Validate}
137
- */
138
-
96
+ * A utility that takes two types, K and T, and produces a new type that is a "mask" of T based on K.
97
+ *
98
+ * That's a mouthful, so let's break it down:
99
+ *
100
+ * Let's say you have a User type and an Address type.
101
+ *
102
+ * ```ts
103
+ * interface Address {
104
+ * street: string;
105
+ * city: string;
106
+ * state: string;
107
+ * zip: string;
108
+ * }
109
+ *
110
+ * interface User {
111
+ * name: string;
112
+ * title: string;
113
+ * address: Address;
114
+ * }
115
+ * ```
116
+ *
117
+ * Now, imagine you want to load a preview of the user with some information about their address,
118
+ * but you don't want to load the entire user or address. You probably want to still ensure
119
+ * the type of the data you do load matches the underlying Address and User types, but doesn't
120
+ * include everything.
121
+ *
122
+ * If you did this manually, you might do something like this:
123
+ *
124
+ * ```ts
125
+ * interface UserPreview {
126
+ * name: string;
127
+ * address: AddressPreview;
128
+ * }
129
+ *
130
+ * interface AddressPreview {
131
+ * city: string;
132
+ * }
133
+ * ```
134
+ *
135
+ * From a TypeScript performance perspective, this is the best way to approach these preview
136
+ * types, but this is also tedious and error-prone, especially if the User or Address types change.
137
+ *
138
+ * For Address, we could create a validated type using `Pick`:
139
+ *
140
+ * ```ts
141
+ * type AddressPreview = Pick<Address, 'city'>;
142
+ * ```
143
+ *
144
+ * This ensures that if the Address type changes, our AddressPreview will still be valid.
145
+ * However, for UserPreview, we can't just use `Pick` because the `address` property is of type `Address`,
146
+ * not `AddressPreview`. This is where the `Mask` type comes in.
147
+ *
148
+ * With `Mask`, we define the `UserPreview` in two parts
149
+ * - first, we define the subset of fields we want to include from `User`, using `Pick` or an interface.
150
+ * - then, we use `Mask` to replace the related types of fields like Address with their more limited subset.
151
+ *
152
+ * Here's how we can do it:
153
+ *
154
+ * ```ts
155
+ * // First, we define the base of UserPreview with Pick
156
+ * type UserPreviewBase = Pick<User, 'name' | 'address'>;
157
+ * // Then, we use Mask to replace Address with AddressPreview
158
+ * type UserPreview = Mask<{ address: AddressPreview }, UserPreviewBase>;
159
+ * ```
160
+ *
161
+ * Now, `UserPreview` will have the `name` field from `User` and the `address` field will be of type `AddressPreview`.
162
+ * This way, if the `User` or `Address` types change, TypeScript will ensure that our `UserPreview` and `AddressPreview`
163
+ * types remain valid and consistent with the underlying types.
164
+ *
165
+ * But what if your app has data with massive interfaces such that the TypeScript performance of this
166
+ * approach becomes a problem? In that case, see {@link Validate}
167
+ */
139
168
  /**
140
- * A utility that takes two types, K and T, and ensures that K is a valid subset of T.
141
- *
142
- * That's a mouthful, so let's break it down:
143
- *
144
- * Let's say you have a User type and an Address type.
145
- *
146
- * ```ts
147
- * interface Address {
148
- * street: string;
149
- * city: string;
150
- * state: string;
151
- * zip: string;
152
- * }
153
- *
154
- * interface User {
155
- * name: string;
156
- * title: string;
157
- * address: Address;
158
- * }
159
- * ```
160
- *
161
- * Now, imagine you want to load a preview of the user with some information about their address,
162
- * but you don't want to load the entire user or address. You probably want to still ensure
163
- * the type of the data you do load matches the underlying Address and User types, but doesn't
164
- * include everything.
165
- *
166
- * You might do something like this:
167
- *
168
- * ```ts
169
- * interface UserPreview {
170
- * name: string;
171
- * address: AddressPreview;
172
- * }
173
- *
174
- * interface AddressPreview {
175
- * city: string;
176
- * }
177
- * ```
178
- *
179
- * From a TypeScript performance perspective, this is the best way to approach these preview
180
- * types, but this is also error-prone, especially if the User or Address types change.
181
- *
182
- * Validate can help ensure that your preview types remain valid.
183
- *
184
- * ```ts
185
- * type IsValidUserPreview = Validate<UserPreview, User>; // This will be valid
186
- * ```
187
- *
188
- * For help creating subsets of types, see {@link Mask}
189
- */
190
-
191
- export { createIncludeValidator };
169
+ * A utility that takes two types, K and T, and ensures that K is a valid subset of T.
170
+ *
171
+ * That's a mouthful, so let's break it down:
172
+ *
173
+ * Let's say you have a User type and an Address type.
174
+ *
175
+ * ```ts
176
+ * interface Address {
177
+ * street: string;
178
+ * city: string;
179
+ * state: string;
180
+ * zip: string;
181
+ * }
182
+ *
183
+ * interface User {
184
+ * name: string;
185
+ * title: string;
186
+ * address: Address;
187
+ * }
188
+ * ```
189
+ *
190
+ * Now, imagine you want to load a preview of the user with some information about their address,
191
+ * but you don't want to load the entire user or address. You probably want to still ensure
192
+ * the type of the data you do load matches the underlying Address and User types, but doesn't
193
+ * include everything.
194
+ *
195
+ * You might do something like this:
196
+ *
197
+ * ```ts
198
+ * interface UserPreview {
199
+ * name: string;
200
+ * address: AddressPreview;
201
+ * }
202
+ *
203
+ * interface AddressPreview {
204
+ * city: string;
205
+ * }
206
+ * ```
207
+ *
208
+ * From a TypeScript performance perspective, this is the best way to approach these preview
209
+ * types, but this is also error-prone, especially if the User or Address types change.
210
+ *
211
+ * Validate can help ensure that your preview types remain valid.
212
+ *
213
+ * ```ts
214
+ * type IsValidUserPreview = Validate<UserPreview, User>; // This will be valid
215
+ * ```
216
+ *
217
+ * For help creating subsets of types, see {@link Mask}
218
+ */
219
+ //#endregion
220
+ export { createIncludeValidator };
221
+ //# sourceMappingURL=record.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"record.js","names":["createIncludeValidator","validateIncludes","includes"],"sources":["../../src/types/record.ts"],"sourcesContent":["import type { Type } from './symbols.ts';\n\n/**\n * Records may be anything, They don't even\n * have to be objects.\n *\n * Whatever they are, if they have a Type\n * property, that property will be used by WarpDrive\n * and WarpDrive to provide better type safety and\n * intellisense.\n *\n * @class TypedRecordInstance\n */\nexport interface TypedRecordInstance {\n /**\n * The type of the resource.\n *\n * This is an optional feature that can be used by\n * record implementations to provide a typescript\n * hint for the type of the resource.\n *\n * When used, WarpDrive APIs can\n * take advantage of this to provide better type\n * safety and intellisense.\n *\n * @property [Type]\n * @type {Type}\n * @type {String}\n */\n [Type]: string;\n}\n\n/**\n * A type utility that extracts the Type if available,\n * otherwise it returns never.\n *\n */\nexport type TypeFromInstance<T> = T extends TypedRecordInstance ? T[typeof Type] : never;\n\n/**\n * A type utility that extracts the Type if available,\n * otherwise it returns string\n *\n */\nexport type TypeFromInstanceOrString<T> = T extends TypedRecordInstance ? T[typeof Type] : string;\n\ntype IsUniqueSymbol<T> = T extends `___(unique) Symbol(${string})` ? true : false;\ntype Unpacked<T> = T extends (infer U)[] ? U : T;\ntype NONE = { __NONE: never };\n\ntype __InternalExtract<\n MAX_DEPTH extends _DEPTHCOUNT,\n T extends TypedRecordInstance,\n V extends TypedRecordInstance,\n IncludePrefix extends boolean,\n Ignore,\n Pre extends string,\n DEPTH extends _DEPTHCOUNT,\n> =\n // if we extend T, we return the leaf value\n V extends T\n ? IncludePrefix extends false\n ? V[typeof Type]\n : Pre\n : // else if we are in Ignore we add the lead and exit\n V extends Ignore\n ? IncludePrefix extends false\n ? V[typeof Type]\n : Pre\n : // else if we are at max depth, we return never\n IS_MAX_DEPTH<DEPTH, MAX_DEPTH> extends true\n ? Pre\n : // else add T to Ignore and recurse\n ExtractUnion<MAX_DEPTH, V, IncludePrefix, Ignore | T, Pre, INC_DEPTH<DEPTH>>;\n\ntype __ExtractIfRecord<\n MAX_DEPTH extends _DEPTHCOUNT,\n T extends TypedRecordInstance,\n V,\n IncludePrefix extends boolean,\n Ignore,\n Pre extends string,\n DEPTH extends _DEPTHCOUNT,\n> = V extends TypedRecordInstance ? __InternalExtract<MAX_DEPTH, T, V, IncludePrefix, Ignore, Pre, DEPTH> : never;\n\ntype _ExtractUnion<\n MAX_DEPTH extends _DEPTHCOUNT,\n T extends TypedRecordInstance,\n IncludePrefix extends boolean,\n Ignore,\n Pre,\n DEPTH extends _DEPTHCOUNT,\n> = {\n // for each string key in the record,\n [K in keyof T]: IsUniqueSymbol<K> extends true\n ? never\n : K extends string\n ? // we recursively extract any values that resolve to a TypedRecordInstance\n __ExtractIfRecord<\n MAX_DEPTH,\n T,\n Unpacked<Awaited<T[K]>>,\n IncludePrefix,\n Ignore,\n Pre extends string ? `${Pre}.${K}` : K,\n DEPTH\n >\n : never;\n // then we return any value that is not 'never'\n}[keyof T];\n\n/**\n * A Utility that extracts either resource types or resource paths from a TypedRecordInstance.\n *\n * Its limitations are mostly around its intentional non-recursiveness. It presumes that APIs which\n * implement includes will not allow cyclical include paths, and will collapse includes by type.\n *\n * This follows closer to the JSON:API fields spec than to the includes spec in nature, but in\n * practice it is so impracticle for an API to allow z-algo include paths that this is probably\n * reasonable.\n *\n * We may need to revisit this in the future, opting to either make this restriction optional or\n * to allow for other strategies.\n *\n * There's a 90% chance this particular implementation belongs being in the JSON:API package instead\n * of core-types, but it's here for now.\n *\n */\ntype ExtractUnion<\n MAX_DEPTH extends _DEPTHCOUNT,\n T extends TypedRecordInstance,\n IncludePrefix extends boolean = false,\n Ignore = NONE,\n Pre = NONE,\n DEPTH extends _DEPTHCOUNT = 1,\n> = Exclude<\n IncludePrefix extends true\n ? // if we want to include prefix, we union with the prefix. Outer Exclude will filter any \"NONE\" types\n _ExtractUnion<MAX_DEPTH, T, IncludePrefix, Ignore, Pre, DEPTH> | Pre\n : // Else we just union the types.\n _ExtractUnion<MAX_DEPTH, T, IncludePrefix, Ignore, Pre, DEPTH> | T[typeof Type],\n NONE\n>;\n\ntype _DEPTHCOUNT = 1 | 2 | 3 | 4 | 5;\ntype INC_DEPTH<START extends _DEPTHCOUNT> = START extends 1 ? 2 : START extends 2 ? 3 : START extends 3 ? 4 : 5;\ntype IS_MAX_DEPTH<\n DEPTH extends _DEPTHCOUNT,\n MAX_DEPTH extends _DEPTHCOUNT = DEFAULT_MAX_DEPTH,\n> = DEPTH extends MAX_DEPTH ? true : false;\ntype DEFAULT_MAX_DEPTH = 3;\n/**\n * A utility that provides the union of all ResourceName for all potential\n * includes for the given TypedRecordInstance.\n *\n */\nexport type ExtractSuggestedCacheTypes<\n T extends TypedRecordInstance,\n MAX_DEPTH extends _DEPTHCOUNT = DEFAULT_MAX_DEPTH,\n> = ExtractUnion<MAX_DEPTH, T>; // ToPaths<ExpandIgnore<T, true>, false>;\n\n/**\n * A utility that provides the union type of all valid include paths for the given\n * TypedRecordInstance.\n *\n * Cyclical paths are filtered out.\n *\n */\nexport type Includes<T extends TypedRecordInstance, MAX_DEPTH extends _DEPTHCOUNT = DEFAULT_MAX_DEPTH> = ExtractUnion<\n MAX_DEPTH,\n T,\n true\n>;\n\n/**\n * A type-erased placeholder for a record instance, used where the\n * specific record type is not known or not relevant.\n */\nexport type OpaqueRecordInstance = unknown;\n\n/**\n * @internal\n */\nexport type _StringSatisfiesIncludes<T extends string, SET extends string, FT extends string> = T extends SET\n ? FT\n : T extends `${infer U},${infer V}`\n ? U extends SET\n ? _StringSatisfiesIncludes<V, Exclude<SET, U>, FT>\n : never\n : never;\n\n/**\n * Validates that the comma-separated-string `T` (e.g. `'company,company.ceo,friends'`)\n * only contains paths present in the union `SET` (typically {@link Includes}).\n *\n * TypeScript cannot autocomplete against this type; prefer {@link createIncludeValidator}\n * for a better development experience unless you are writing a similar wrapper utility.\n *\n * @example\n * ```ts\n * import type { StringSatisfiesIncludes, Includes } from '@warp-drive/core/types/record';\n *\n * const includes: StringSatisfiesIncludes<\n * 'company,company.ceo,friends',\n * Includes<User>\n * > = 'company,company.ceo,friends';\n * ```\n */\nexport type StringSatisfiesIncludes<T extends string, SET extends string> = _StringSatisfiesIncludes<T, SET, T>;\n\n/**\n * Creates a runtime validator function for comma-separated `include` strings,\n * ensuring at compile time that only valid paths for `T` (per {@link Includes})\n * are supplied.\n *\n * @example\n * ```ts\n * import { createIncludeValidator } from '@warp-drive/core/types/record';\n *\n * const userIncludesValidator = createIncludeValidator<User>;\n *\n * userIncludesValidator('company,company.ceo,friends');\n * ```\n */\nexport function createIncludeValidator<T extends TypedRecordInstance>() {\n return function validateIncludes<U extends string>(includes: StringSatisfiesIncludes<U, Includes<T>>): U {\n return includes;\n };\n}\n\n/**\n * A utility that takes two types, K and T, and produces a new type that is a \"mask\" of T based on K.\n *\n * That's a mouthful, so let's break it down:\n *\n * Let's say you have a User type and an Address type.\n *\n * ```ts\n * interface Address {\n * street: string;\n * city: string;\n * state: string;\n * zip: string;\n * }\n *\n * interface User {\n * name: string;\n * title: string;\n * address: Address;\n * }\n * ```\n *\n * Now, imagine you want to load a preview of the user with some information about their address,\n * but you don't want to load the entire user or address. You probably want to still ensure\n * the type of the data you do load matches the underlying Address and User types, but doesn't\n * include everything.\n *\n * If you did this manually, you might do something like this:\n *\n * ```ts\n * interface UserPreview {\n * name: string;\n * address: AddressPreview;\n * }\n *\n * interface AddressPreview {\n * city: string;\n * }\n * ```\n *\n * From a TypeScript performance perspective, this is the best way to approach these preview\n * types, but this is also tedious and error-prone, especially if the User or Address types change.\n *\n * For Address, we could create a validated type using `Pick`:\n *\n * ```ts\n * type AddressPreview = Pick<Address, 'city'>;\n * ```\n *\n * This ensures that if the Address type changes, our AddressPreview will still be valid.\n * However, for UserPreview, we can't just use `Pick` because the `address` property is of type `Address`,\n * not `AddressPreview`. This is where the `Mask` type comes in.\n *\n * With `Mask`, we define the `UserPreview` in two parts\n * - first, we define the subset of fields we want to include from `User`, using `Pick` or an interface.\n * - then, we use `Mask` to replace the related types of fields like Address with their more limited subset.\n *\n * Here's how we can do it:\n *\n * ```ts\n * // First, we define the base of UserPreview with Pick\n * type UserPreviewBase = Pick<User, 'name' | 'address'>;\n * // Then, we use Mask to replace Address with AddressPreview\n * type UserPreview = Mask<{ address: AddressPreview }, UserPreviewBase>;\n * ```\n *\n * Now, `UserPreview` will have the `name` field from `User` and the `address` field will be of type `AddressPreview`.\n * This way, if the `User` or `Address` types change, TypeScript will ensure that our `UserPreview` and `AddressPreview`\n * types remain valid and consistent with the underlying types.\n *\n * But what if your app has data with massive interfaces such that the TypeScript performance of this\n * approach becomes a problem? In that case, see {@link Validate}\n */\nexport type Mask<K extends object, T extends K> = {\n [P in keyof T]: P extends keyof K ? (T[P] extends K[P] ? K[P] : never) : T[P];\n};\n\n/**\n * A utility that takes two types, K and T, and ensures that K is a valid subset of T.\n *\n * That's a mouthful, so let's break it down:\n *\n * Let's say you have a User type and an Address type.\n *\n * ```ts\n * interface Address {\n * street: string;\n * city: string;\n * state: string;\n * zip: string;\n * }\n *\n * interface User {\n * name: string;\n * title: string;\n * address: Address;\n * }\n * ```\n *\n * Now, imagine you want to load a preview of the user with some information about their address,\n * but you don't want to load the entire user or address. You probably want to still ensure\n * the type of the data you do load matches the underlying Address and User types, but doesn't\n * include everything.\n *\n * You might do something like this:\n *\n * ```ts\n * interface UserPreview {\n * name: string;\n * address: AddressPreview;\n * }\n *\n * interface AddressPreview {\n * city: string;\n * }\n * ```\n *\n * From a TypeScript performance perspective, this is the best way to approach these preview\n * types, but this is also error-prone, especially if the User or Address types change.\n *\n * Validate can help ensure that your preview types remain valid.\n *\n * ```ts\n * type IsValidUserPreview = Validate<UserPreview, User>; // This will be valid\n * ```\n *\n * For help creating subsets of types, see {@link Mask}\n */\nexport type Validate<K extends object, T extends K> = T extends K ? K : never;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgOA,SAAgBA,yBAAwD;CACtE,OAAO,SAASC,iBAAmCC,UAAsD;EACvG,OAAOA;CACT;AACF"}
@@ -0,0 +1,2 @@
1
+ import { An as EnableHydration, Bn as PostQueryRequestOptions, Dn as ConstrainedRequestOptions, En as CacheOptions, Fn as ImmutableCreateRequestOptions, Gn as ResponseInfo, Hn as RemotelyAccessibleIdentifier, In as ImmutableDeleteRequestOptions, Jn as StructuredDataDocument, Kn as STRUCTURED, Ln as ImmutableHeaders, Mn as FindRecordRequestOptions, Nn as HTTPMethod, On as CreateRequestOptions, Pn as IS_FUTURE, Qn as FetchError, Rn as ImmutableRequestInfo, Un as RequestContext, Vn as QueryRequestOptions, Wn as RequestInfo, Xn as StructuredErrorDocument, Yn as StructuredDocument, Zn as UpdateRequestOptions, jn as FindRecordOptions, kn as DeleteRequestOptions, qn as SkipCache, zn as ImmutableUpdateRequestOptions } from "../internal-DtWOpxrR.js";
2
+ export { CacheOptions, ConstrainedRequestOptions, CreateRequestOptions, DeleteRequestOptions, EnableHydration, type FetchError, FindRecordOptions, FindRecordRequestOptions, HTTPMethod, IS_FUTURE, ImmutableCreateRequestOptions, ImmutableDeleteRequestOptions, ImmutableHeaders, ImmutableRequestInfo, ImmutableUpdateRequestOptions, PostQueryRequestOptions, QueryRequestOptions, RemotelyAccessibleIdentifier, RequestContext, RequestInfo, ResponseInfo, STRUCTURED, SkipCache, StructuredDataDocument, StructuredDocument, StructuredErrorDocument, UpdateRequestOptions };
@@ -1,77 +1,146 @@
1
- import { getOrSetUniversal, getOrSetGlobal } from './-private.js';
2
-
3
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
4
-
5
- const SkipCache = getOrSetUniversal('SkipCache', Symbol.for('wd:skip-cache'));
6
- const EnableHydration = getOrSetUniversal('EnableHydration', Symbol.for('wd:enable-hydration'));
7
- const IS_FUTURE = getOrSetGlobal('IS_FUTURE', Symbol('IS_FUTURE'));
8
- const STRUCTURED = getOrSetGlobal('DOC', Symbol('DOC'));
1
+ import { n as getOrSetUniversal, t as getOrSetGlobal } from "../-private-CyhhcK1a.js";
9
2
 
3
+ //#region src/types/request.ts
10
4
  /**
11
- * Use these options to adjust {@link CacheHandler} behavior for a request
12
- * via {@link RequestInfo.cacheOptions}.
13
- *
14
- */
15
-
5
+ * A {@link RequestInfo.cacheOptions | cacheOptions} flag which, when set,
6
+ * signals that a request should never be handled by the cache-manager and
7
+ * thus will never resolve from cache nor update the cache.
8
+ */
9
+ const SkipCache = getOrSetUniversal("SkipCache", Symbol.for("wd:skip-cache"));
16
10
  /**
17
- * When a {@link Future} resolves, it returns an object
18
- * containing the original {@link RequestInfo | request},
19
- * the {@link Response | response} set by the handler chain (if any), and
20
- * the processed content.
21
- */
22
-
11
+ * A {@link RequestInfo} flag which, when set, signals to the store's
12
+ * `instantiateRecord` hook that the resolved content should be hydrated
13
+ * into reactive records rather than returned as raw data.
14
+ */
15
+ const EnableHydration = getOrSetUniversal("EnableHydration", Symbol.for("wd:enable-hydration"));
23
16
  /**
24
- * When a {@link Future} rejects, it throws either an {@link Error}
25
- * an {@link AggregateError} or a {@link DOMException} that maintains
26
- * the `{ request, response, content }` shape but is also an Error instance
27
- * itself.
28
- *
29
- * If using the error originates from the {@link Fetch | Fetch Handler}
30
- * the error will be a {@link FetchError}
31
- */
32
-
17
+ * @private
18
+ */
19
+ const IS_FUTURE = getOrSetGlobal("IS_FUTURE", Symbol("IS_FUTURE"));
33
20
  /**
34
- * A union of the resolve/reject data types for the {@link Future}
35
- * returned by {@link Store.request | request}
36
- *
37
- * See also the docs for:
38
- *
39
- * - {@link Future}
40
- * - {@link StructuredDataDocument} (resolved/successful requests)
41
- * - {@link StructuredErrorDocument} (rejected/failed requests)
42
- */
43
-
21
+ * @private
22
+ */
23
+ const STRUCTURED = getOrSetGlobal("DOC", Symbol("DOC"));
44
24
  /**
45
- * The {@link RequestInit} interface accepted by the native {@link fetch} API.
46
- *
47
- * WarpDrive provides our own typings due to incompleteness in the native typings.
48
- *
49
- * @privateRemarks
50
- * - [MDN Reference (fetch)](https://developer.mozilla.org/docs/Web/API/Window/fetch)
51
- * - [MDN Reference (RequestInit)](https://developer.mozilla.org/en-US/docs/Web/API/RequestInit)
52
- * - [MDN Reference (Request)](https://developer.mozilla.org/docs/Web/API/Request)
53
- *
54
- */
55
-
25
+ * The HTTP methods WarpDrive's request layer supports.
26
+ */
56
27
  /**
57
- * Extends JavaScript's native {@link fetch} {@link NativeRequestInit | RequestInit} with additional
58
- * properties specific to the {@link RequestManager | RequestManager's} capabilities.
59
- *
60
- * This interface is used to define the shape of a request that can be made via
61
- * either the {@link RequestManager.request} or {@link Store.request} methods.
62
- *
63
- * @privateRemarks
64
- * - [MDN Reference (fetch)](https://developer.mozilla.org/docs/Web/API/Window/fetch)
65
- * - [MDN Reference (RequestInit)](https://developer.mozilla.org/en-US/docs/Web/API/RequestInit)
66
- * - [MDN Reference (Request)](https://developer.mozilla.org/docs/Web/API/Request)
67
- *
68
- * @public
69
- * @since 4.12
70
- */
71
-
28
+ * Use these options to adjust {@link CacheHandler} behavior for a request
29
+ * via {@link RequestInfo.cacheOptions}.
30
+ *
31
+ */
72
32
  /**
73
- * Immutable version of {@link RequestInfo}. This is what is passed to handlers.
74
- *
75
- */
76
-
77
- export { EnableHydration, IS_FUTURE, STRUCTURED, SkipCache };
33
+ * The request shape produced by the `findRecord` request builders, for
34
+ * use with {@link Store.request}.
35
+ */
36
+ /**
37
+ * The request shape produced by the `query` request builders, for
38
+ * use with {@link Store.request}.
39
+ */
40
+ /**
41
+ * The request shape produced by the `postQuery` request builders, for
42
+ * use with {@link Store.request}.
43
+ */
44
+ /**
45
+ * The request shape produced by the `deleteRecord` request builders, for
46
+ * use with {@link Store.request}.
47
+ */
48
+ /**
49
+ * The request shape produced by the `updateRecord` request builders, for
50
+ * use with {@link Store.request}.
51
+ */
52
+ /**
53
+ * The request shape produced by the `createRecord` request builders, for
54
+ * use with {@link Store.request}.
55
+ */
56
+ /**
57
+ * The immutable, handler-facing form of {@link DeleteRequestOptions}.
58
+ */
59
+ /**
60
+ * The immutable, handler-facing form of {@link UpdateRequestOptions}.
61
+ */
62
+ /**
63
+ * The immutable, handler-facing form of {@link CreateRequestOptions}.
64
+ */
65
+ /**
66
+ * A minimal reference to a resource sufficient to build a URL for it,
67
+ * as accepted by the request builders.
68
+ */
69
+ /**
70
+ * Options accepted by the request builders for constraining how a
71
+ * request's url is constructed and how the request interacts with the cache.
72
+ */
73
+ /**
74
+ * Options accepted by the `findRecord` request builders.
75
+ */
76
+ /**
77
+ * When a {@link Future} resolves, it returns an object
78
+ * containing the original {@link RequestInfo | request},
79
+ * the {@link Response | response} set by the handler chain (if any), and
80
+ * the processed content.
81
+ */
82
+ /**
83
+ * When a {@link Future} rejects, it throws either an {@link Error}
84
+ * an {@link AggregateError} or a {@link DOMException} that maintains
85
+ * the `{ request, response, content }` shape but is also an Error instance
86
+ * itself.
87
+ *
88
+ * If using the error originates from the {@link Fetch | Fetch Handler}
89
+ * the error will be a {@link FetchError}
90
+ */
91
+ /**
92
+ * A union of the resolve/reject data types for the {@link Future}
93
+ * returned by {@link Store.request | request}
94
+ *
95
+ * See also the docs for:
96
+ *
97
+ * - {@link Future}
98
+ * - {@link StructuredDataDocument} (resolved/successful requests)
99
+ * - {@link StructuredErrorDocument} (rejected/failed requests)
100
+ */
101
+ /**
102
+ * The {@link RequestInit} interface accepted by the native {@link fetch} API.
103
+ *
104
+ * WarpDrive provides our own typings due to incompleteness in the native typings.
105
+ *
106
+ * @privateRemarks
107
+ * - [MDN Reference (fetch)](https://developer.mozilla.org/docs/Web/API/Window/fetch)
108
+ * - [MDN Reference (RequestInit)](https://developer.mozilla.org/en-US/docs/Web/API/RequestInit)
109
+ * - [MDN Reference (Request)](https://developer.mozilla.org/docs/Web/API/Request)
110
+ *
111
+ */
112
+ /**
113
+ * A read-only {@link Headers} instance, as passed to {@link Handler | Handlers}
114
+ * via {@link ImmutableRequestInfo.headers}.
115
+ */
116
+ /**
117
+ * Extends JavaScript's native {@link fetch} {@link NativeRequestInit | RequestInit} with additional
118
+ * properties specific to the {@link RequestManager | RequestManager's} capabilities.
119
+ *
120
+ * This interface is used to define the shape of a request that can be made via
121
+ * either the {@link RequestManager.request} or {@link Store.request} methods.
122
+ *
123
+ * @privateRemarks
124
+ * - [MDN Reference (fetch)](https://developer.mozilla.org/docs/Web/API/Window/fetch)
125
+ * - [MDN Reference (RequestInit)](https://developer.mozilla.org/en-US/docs/Web/API/RequestInit)
126
+ * - [MDN Reference (Request)](https://developer.mozilla.org/docs/Web/API/Request)
127
+ *
128
+ * @public
129
+ * @since 4.12
130
+ */
131
+ /**
132
+ * Immutable version of {@link RequestInfo}. This is what is passed to handlers.
133
+ *
134
+ */
135
+ /**
136
+ * An immutable, JSON-serializable subset of the native {@link Response}
137
+ * interface.
138
+ */
139
+ /**
140
+ * The object a {@link Handler} uses to fulfill a request: it provides a
141
+ * readonly view of the {@link RequestContext.request | request} and methods
142
+ * for supplying the {@link Future}'s stream and final response.
143
+ */
144
+ //#endregion
145
+ export { EnableHydration, IS_FUTURE, STRUCTURED, SkipCache };
146
+ //# sourceMappingURL=request.js.map