@warp-drive/core 5.6.0-alpha.11

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 (337) hide show
  1. package/CHANGELOG.md +1 -0
  2. package/LICENSE.md +23 -0
  3. package/README.md +70 -0
  4. package/addon-main.cjs +5 -0
  5. package/cjs-dist/addon-shim.cjs +1 -0
  6. package/cjs-dist/cjs-set-config.cjs +1 -0
  7. package/declarations/build-config/babel-macros.d.ts +2 -0
  8. package/declarations/build-config/babel-macros.d.ts.map +1 -0
  9. package/declarations/build-config/canary-features.d.ts +2 -0
  10. package/declarations/build-config/canary-features.d.ts.map +1 -0
  11. package/declarations/build-config/debugging.d.ts +2 -0
  12. package/declarations/build-config/debugging.d.ts.map +1 -0
  13. package/declarations/build-config/deprecations.d.ts +2 -0
  14. package/declarations/build-config/deprecations.d.ts.map +1 -0
  15. package/declarations/build-config/env.d.ts +2 -0
  16. package/declarations/build-config/env.d.ts.map +1 -0
  17. package/declarations/build-config/macros.d.ts +2 -0
  18. package/declarations/build-config/macros.d.ts.map +1 -0
  19. package/declarations/build-config.d.ts +2 -0
  20. package/declarations/build-config.d.ts.map +1 -0
  21. package/declarations/configure.d.ts +8 -0
  22. package/declarations/configure.d.ts.map +1 -0
  23. package/declarations/graph/-private/-diff.d.ts +33 -0
  24. package/declarations/graph/-private/-diff.d.ts.map +1 -0
  25. package/declarations/graph/-private/-edge-definition.d.ts +149 -0
  26. package/declarations/graph/-private/-edge-definition.d.ts.map +1 -0
  27. package/declarations/graph/-private/-state.d.ts +10 -0
  28. package/declarations/graph/-private/-state.d.ts.map +1 -0
  29. package/declarations/graph/-private/-utils.d.ts +26 -0
  30. package/declarations/graph/-private/-utils.d.ts.map +1 -0
  31. package/declarations/graph/-private/coerce-id.d.ts +5 -0
  32. package/declarations/graph/-private/coerce-id.d.ts.map +1 -0
  33. package/declarations/graph/-private/debug/assert-polymorphic-type.d.ts +7 -0
  34. package/declarations/graph/-private/debug/assert-polymorphic-type.d.ts.map +1 -0
  35. package/declarations/graph/-private/edges/collection.d.ts +40 -0
  36. package/declarations/graph/-private/edges/collection.d.ts.map +1 -0
  37. package/declarations/graph/-private/edges/implicit.d.ts +14 -0
  38. package/declarations/graph/-private/edges/implicit.d.ts.map +1 -0
  39. package/declarations/graph/-private/edges/resource.d.ts +25 -0
  40. package/declarations/graph/-private/edges/resource.d.ts.map +1 -0
  41. package/declarations/graph/-private/graph.d.ts +55 -0
  42. package/declarations/graph/-private/graph.d.ts.map +1 -0
  43. package/declarations/graph/-private/normalize-link.d.ts +3 -0
  44. package/declarations/graph/-private/normalize-link.d.ts.map +1 -0
  45. package/declarations/graph/-private/operations/add-to-related-records.d.ts +5 -0
  46. package/declarations/graph/-private/operations/add-to-related-records.d.ts.map +1 -0
  47. package/declarations/graph/-private/operations/merge-identifier.d.ts +4 -0
  48. package/declarations/graph/-private/operations/merge-identifier.d.ts.map +1 -0
  49. package/declarations/graph/-private/operations/remove-from-related-records.d.ts +5 -0
  50. package/declarations/graph/-private/operations/remove-from-related-records.d.ts.map +1 -0
  51. package/declarations/graph/-private/operations/replace-related-record.d.ts +4 -0
  52. package/declarations/graph/-private/operations/replace-related-record.d.ts.map +1 -0
  53. package/declarations/graph/-private/operations/replace-related-records.d.ts +8 -0
  54. package/declarations/graph/-private/operations/replace-related-records.d.ts.map +1 -0
  55. package/declarations/graph/-private/operations/update-relationship.d.ts +11 -0
  56. package/declarations/graph/-private/operations/update-relationship.d.ts.map +1 -0
  57. package/declarations/graph/-private.d.ts +14 -0
  58. package/declarations/graph/-private.d.ts.map +1 -0
  59. package/declarations/index.d.ts +15 -0
  60. package/declarations/index.d.ts.map +1 -0
  61. package/declarations/reactive/-private/document.d.ts +147 -0
  62. package/declarations/reactive/-private/document.d.ts.map +1 -0
  63. package/declarations/reactive/-private/fields/compute.d.ts +40 -0
  64. package/declarations/reactive/-private/fields/compute.d.ts.map +1 -0
  65. package/declarations/reactive/-private/fields/managed-array.d.ts +23 -0
  66. package/declarations/reactive/-private/fields/managed-array.d.ts.map +1 -0
  67. package/declarations/reactive/-private/fields/managed-object.d.ts +21 -0
  68. package/declarations/reactive/-private/fields/managed-object.d.ts.map +1 -0
  69. package/declarations/reactive/-private/fields/many-array-manager.d.ts +20 -0
  70. package/declarations/reactive/-private/fields/many-array-manager.d.ts.map +1 -0
  71. package/declarations/reactive/-private/hooks.d.ts +6 -0
  72. package/declarations/reactive/-private/hooks.d.ts.map +1 -0
  73. package/declarations/reactive/-private/record.d.ts +61 -0
  74. package/declarations/reactive/-private/record.d.ts.map +1 -0
  75. package/declarations/reactive/-private/schema.d.ts +180 -0
  76. package/declarations/reactive/-private/schema.d.ts.map +1 -0
  77. package/declarations/reactive/-private/symbols.d.ts +11 -0
  78. package/declarations/reactive/-private/symbols.d.ts.map +1 -0
  79. package/declarations/reactive/-private.d.ts +2 -0
  80. package/declarations/reactive/-private.d.ts.map +1 -0
  81. package/declarations/reactive.d.ts +5 -0
  82. package/declarations/reactive.d.ts.map +1 -0
  83. package/declarations/request/-private/context.d.ts +42 -0
  84. package/declarations/request/-private/context.d.ts.map +1 -0
  85. package/declarations/request/-private/debug.d.ts +5 -0
  86. package/declarations/request/-private/debug.d.ts.map +1 -0
  87. package/declarations/request/-private/fetch.d.ts +40 -0
  88. package/declarations/request/-private/fetch.d.ts.map +1 -0
  89. package/declarations/request/-private/future.d.ts +8 -0
  90. package/declarations/request/-private/future.d.ts.map +1 -0
  91. package/declarations/request/-private/manager.d.ts +160 -0
  92. package/declarations/request/-private/manager.d.ts.map +1 -0
  93. package/declarations/request/-private/promise-cache.d.ts +20 -0
  94. package/declarations/request/-private/promise-cache.d.ts.map +1 -0
  95. package/declarations/request/-private/types.d.ts +236 -0
  96. package/declarations/request/-private/types.d.ts.map +1 -0
  97. package/declarations/request/-private/utils.d.ts +16 -0
  98. package/declarations/request/-private/utils.d.ts.map +1 -0
  99. package/declarations/request.d.ts +6 -0
  100. package/declarations/request.d.ts.map +1 -0
  101. package/declarations/store/-private/cache-handler/handler.d.ts +57 -0
  102. package/declarations/store/-private/cache-handler/handler.d.ts.map +1 -0
  103. package/declarations/store/-private/cache-handler/types.d.ts +99 -0
  104. package/declarations/store/-private/cache-handler/types.d.ts.map +1 -0
  105. package/declarations/store/-private/cache-handler/utils.d.ts +32 -0
  106. package/declarations/store/-private/cache-handler/utils.d.ts.map +1 -0
  107. package/declarations/store/-private/caches/cache-utils.d.ts +9 -0
  108. package/declarations/store/-private/caches/cache-utils.d.ts.map +1 -0
  109. package/declarations/store/-private/caches/identifier-cache.d.ts +316 -0
  110. package/declarations/store/-private/caches/identifier-cache.d.ts.map +1 -0
  111. package/declarations/store/-private/caches/instance-cache.d.ts +65 -0
  112. package/declarations/store/-private/caches/instance-cache.d.ts.map +1 -0
  113. package/declarations/store/-private/caches/resource-utils.d.ts +10 -0
  114. package/declarations/store/-private/caches/resource-utils.d.ts.map +1 -0
  115. package/declarations/store/-private/debug/utils.d.ts +7 -0
  116. package/declarations/store/-private/debug/utils.d.ts.map +1 -0
  117. package/declarations/store/-private/default-cache-policy.d.ts +383 -0
  118. package/declarations/store/-private/default-cache-policy.d.ts.map +1 -0
  119. package/declarations/store/-private/legacy-model-support/record-reference.d.ts +164 -0
  120. package/declarations/store/-private/legacy-model-support/record-reference.d.ts.map +1 -0
  121. package/declarations/store/-private/legacy-model-support/shim-model-class.d.ts +17 -0
  122. package/declarations/store/-private/legacy-model-support/shim-model-class.d.ts.map +1 -0
  123. package/declarations/store/-private/managers/cache-capabilities-manager.d.ts +26 -0
  124. package/declarations/store/-private/managers/cache-capabilities-manager.d.ts.map +1 -0
  125. package/declarations/store/-private/managers/cache-manager.d.ts +428 -0
  126. package/declarations/store/-private/managers/cache-manager.d.ts.map +1 -0
  127. package/declarations/store/-private/managers/notification-manager.d.ts +93 -0
  128. package/declarations/store/-private/managers/notification-manager.d.ts.map +1 -0
  129. package/declarations/store/-private/managers/record-array-manager.d.ts +98 -0
  130. package/declarations/store/-private/managers/record-array-manager.d.ts.map +1 -0
  131. package/declarations/store/-private/network/request-cache.d.ts +104 -0
  132. package/declarations/store/-private/network/request-cache.d.ts.map +1 -0
  133. package/declarations/store/-private/new-core-tmp/promise-state.d.ts +255 -0
  134. package/declarations/store/-private/new-core-tmp/promise-state.d.ts.map +1 -0
  135. package/declarations/store/-private/new-core-tmp/reactivity/configure.d.ts +93 -0
  136. package/declarations/store/-private/new-core-tmp/reactivity/configure.d.ts.map +1 -0
  137. package/declarations/store/-private/new-core-tmp/reactivity/internal.d.ts +170 -0
  138. package/declarations/store/-private/new-core-tmp/reactivity/internal.d.ts.map +1 -0
  139. package/declarations/store/-private/new-core-tmp/reactivity/signal.d.ts +30 -0
  140. package/declarations/store/-private/new-core-tmp/reactivity/signal.d.ts.map +1 -0
  141. package/declarations/store/-private/new-core-tmp/request-state.d.ts +255 -0
  142. package/declarations/store/-private/new-core-tmp/request-state.d.ts.map +1 -0
  143. package/declarations/store/-private/record-arrays/identifier-array.d.ts +141 -0
  144. package/declarations/store/-private/record-arrays/identifier-array.d.ts.map +1 -0
  145. package/declarations/store/-private/record-arrays/many-array.d.ts +199 -0
  146. package/declarations/store/-private/record-arrays/many-array.d.ts.map +1 -0
  147. package/declarations/store/-private/record-arrays/native-proxy-type-fix.d.ts +116 -0
  148. package/declarations/store/-private/record-arrays/native-proxy-type-fix.d.ts.map +1 -0
  149. package/declarations/store/-private/store-service.d.ts +1597 -0
  150. package/declarations/store/-private/store-service.d.ts.map +1 -0
  151. package/declarations/store/-private/store-service.type-test.d.ts +2 -0
  152. package/declarations/store/-private/store-service.type-test.d.ts.map +1 -0
  153. package/declarations/store/-private/utils/coerce-id.d.ts +5 -0
  154. package/declarations/store/-private/utils/coerce-id.d.ts.map +1 -0
  155. package/declarations/store/-private/utils/construct-resource.d.ts +7 -0
  156. package/declarations/store/-private/utils/construct-resource.d.ts.map +1 -0
  157. package/declarations/store/-private/utils/is-non-empty-string.d.ts +2 -0
  158. package/declarations/store/-private/utils/is-non-empty-string.d.ts.map +1 -0
  159. package/declarations/store/-private/utils/normalize-model-name.d.ts +2 -0
  160. package/declarations/store/-private/utils/normalize-model-name.d.ts.map +1 -0
  161. package/declarations/store/-private/utils/uuid-polyfill.d.ts +2 -0
  162. package/declarations/store/-private/utils/uuid-polyfill.d.ts.map +1 -0
  163. package/declarations/store/-private.d.ts +27 -0
  164. package/declarations/store/-private.d.ts.map +1 -0
  165. package/declarations/store/-types/q/cache-capabilities-manager.d.ts +100 -0
  166. package/declarations/store/-types/q/cache-capabilities-manager.d.ts.map +1 -0
  167. package/declarations/store/-types/q/ds-model.d.ts +22 -0
  168. package/declarations/store/-types/q/ds-model.d.ts.map +1 -0
  169. package/declarations/store/-types/q/identifier.d.ts +21 -0
  170. package/declarations/store/-types/q/identifier.d.ts.map +1 -0
  171. package/declarations/store/-types/q/promise-proxies.d.ts +2 -0
  172. package/declarations/store/-types/q/promise-proxies.d.ts.map +1 -0
  173. package/declarations/store/-types/q/record-data-json-api.d.ts +31 -0
  174. package/declarations/store/-types/q/record-data-json-api.d.ts.map +1 -0
  175. package/declarations/store/-types/q/record-instance.d.ts +24 -0
  176. package/declarations/store/-types/q/record-instance.d.ts.map +1 -0
  177. package/declarations/store/-types/q/schema-service.d.ts +331 -0
  178. package/declarations/store/-types/q/schema-service.d.ts.map +1 -0
  179. package/declarations/store/-types/q/store.d.ts +35 -0
  180. package/declarations/store/-types/q/store.d.ts.map +1 -0
  181. package/declarations/store.d.ts +2 -0
  182. package/declarations/store.d.ts.map +1 -0
  183. package/declarations/types/-private.d.ts +14 -0
  184. package/declarations/types/-private.d.ts.map +1 -0
  185. package/declarations/types/cache/aliases.d.ts +2 -0
  186. package/declarations/types/cache/aliases.d.ts.map +1 -0
  187. package/declarations/types/cache/change.d.ts +7 -0
  188. package/declarations/types/cache/change.d.ts.map +1 -0
  189. package/declarations/types/cache/mutations.d.ts +39 -0
  190. package/declarations/types/cache/mutations.d.ts.map +1 -0
  191. package/declarations/types/cache/operations.d.ts +72 -0
  192. package/declarations/types/cache/operations.d.ts.map +1 -0
  193. package/declarations/types/cache/relationship.d.ts +14 -0
  194. package/declarations/types/cache/relationship.d.ts.map +1 -0
  195. package/declarations/types/cache.d.ts +492 -0
  196. package/declarations/types/cache.d.ts.map +1 -0
  197. package/declarations/types/graph.d.ts +48 -0
  198. package/declarations/types/graph.d.ts.map +1 -0
  199. package/declarations/types/identifier.d.ts +111 -0
  200. package/declarations/types/identifier.d.ts.map +1 -0
  201. package/declarations/types/json/raw.d.ts +7 -0
  202. package/declarations/types/json/raw.d.ts.map +1 -0
  203. package/declarations/types/params.d.ts +10 -0
  204. package/declarations/types/params.d.ts.map +1 -0
  205. package/declarations/types/record.d.ts +96 -0
  206. package/declarations/types/record.d.ts.map +1 -0
  207. package/declarations/types/record.type-test.d.ts +2 -0
  208. package/declarations/types/record.type-test.d.ts.map +1 -0
  209. package/declarations/types/request.d.ts +308 -0
  210. package/declarations/types/request.d.ts.map +1 -0
  211. package/declarations/types/request.type-test.d.ts +2 -0
  212. package/declarations/types/request.type-test.d.ts.map +1 -0
  213. package/declarations/types/runtime.d.ts +15 -0
  214. package/declarations/types/runtime.d.ts.map +1 -0
  215. package/declarations/types/schema/concepts.d.ts +17 -0
  216. package/declarations/types/schema/concepts.d.ts.map +1 -0
  217. package/declarations/types/schema/fields.d.ts +1674 -0
  218. package/declarations/types/schema/fields.d.ts.map +1 -0
  219. package/declarations/types/schema/fields.type-test.d.ts +2 -0
  220. package/declarations/types/schema/fields.type-test.d.ts.map +1 -0
  221. package/declarations/types/spec/document.d.ts +31 -0
  222. package/declarations/types/spec/document.d.ts.map +1 -0
  223. package/declarations/types/spec/error.d.ts +19 -0
  224. package/declarations/types/spec/error.d.ts.map +1 -0
  225. package/declarations/types/spec/json-api-raw.d.ts +142 -0
  226. package/declarations/types/spec/json-api-raw.d.ts.map +1 -0
  227. package/declarations/types/symbols.d.ts +79 -0
  228. package/declarations/types/symbols.d.ts.map +1 -0
  229. package/declarations/types/utils.d.ts +5 -0
  230. package/declarations/types/utils.d.ts.map +1 -0
  231. package/declarations/types.d.ts +12 -0
  232. package/declarations/types.d.ts.map +1 -0
  233. package/declarations/utils/string.d.ts +45 -0
  234. package/declarations/utils/string.d.ts.map +1 -0
  235. package/dist/build-config/babel-macros.js +1 -0
  236. package/dist/build-config/babel-macros.js.map +1 -0
  237. package/dist/build-config/canary-features.js +1 -0
  238. package/dist/build-config/canary-features.js.map +1 -0
  239. package/dist/build-config/debugging.js +1 -0
  240. package/dist/build-config/debugging.js.map +1 -0
  241. package/dist/build-config/deprecations.js +1 -0
  242. package/dist/build-config/deprecations.js.map +1 -0
  243. package/dist/build-config/env.js +1 -0
  244. package/dist/build-config/env.js.map +1 -0
  245. package/dist/build-config/macros.js +1 -0
  246. package/dist/build-config/macros.js.map +1 -0
  247. package/dist/build-config.js +1 -0
  248. package/dist/build-config.js.map +1 -0
  249. package/dist/configure-Bz49BEZQ.js +145 -0
  250. package/dist/configure-Bz49BEZQ.js.map +1 -0
  251. package/dist/configure.js +1 -0
  252. package/dist/configure.js.map +1 -0
  253. package/dist/context-DE5sFezZ.js +636 -0
  254. package/dist/context-DE5sFezZ.js.map +1 -0
  255. package/dist/graph/-private.js +3364 -0
  256. package/dist/graph/-private.js.map +1 -0
  257. package/dist/handler-DYUefHNU.js +339 -0
  258. package/dist/handler-DYUefHNU.js.map +1 -0
  259. package/dist/index.js +382 -0
  260. package/dist/index.js.map +1 -0
  261. package/dist/reactive/-private.js +1 -0
  262. package/dist/reactive/-private.js.map +1 -0
  263. package/dist/reactive.js +1802 -0
  264. package/dist/reactive.js.map +1 -0
  265. package/dist/request-state-Bv5CY_H0.js +7358 -0
  266. package/dist/request-state-Bv5CY_H0.js.map +1 -0
  267. package/dist/request.js +1 -0
  268. package/dist/request.js.map +1 -0
  269. package/dist/store/-private.js +3 -0
  270. package/dist/store/-private.js.map +1 -0
  271. package/dist/store.js +545 -0
  272. package/dist/store.js.map +1 -0
  273. package/dist/symbols-DyqeYQTe.js +44 -0
  274. package/dist/symbols-DyqeYQTe.js.map +1 -0
  275. package/dist/types/-private.js +79 -0
  276. package/dist/types/-private.js.map +1 -0
  277. package/dist/types/cache/aliases.js +0 -0
  278. package/dist/types/cache/aliases.js.map +1 -0
  279. package/dist/types/cache/change.js +0 -0
  280. package/dist/types/cache/change.js.map +1 -0
  281. package/dist/types/cache/mutations.js +0 -0
  282. package/dist/types/cache/mutations.js.map +1 -0
  283. package/dist/types/cache/operations.js +0 -0
  284. package/dist/types/cache/operations.js.map +1 -0
  285. package/dist/types/cache/relationship.js +0 -0
  286. package/dist/types/cache/relationship.js.map +1 -0
  287. package/dist/types/cache.js +0 -0
  288. package/dist/types/cache.js.map +1 -0
  289. package/dist/types/graph.js +0 -0
  290. package/dist/types/graph.js.map +1 -0
  291. package/dist/types/identifier.js +89 -0
  292. package/dist/types/identifier.js.map +1 -0
  293. package/dist/types/json/raw.js +0 -0
  294. package/dist/types/json/raw.js.map +1 -0
  295. package/dist/types/params.js +0 -0
  296. package/dist/types/params.js.map +1 -0
  297. package/dist/types/record.js +64 -0
  298. package/dist/types/record.js.map +1 -0
  299. package/dist/types/request.js +33 -0
  300. package/dist/types/request.js.map +1 -0
  301. package/dist/types/runtime.js +34 -0
  302. package/dist/types/runtime.js.map +1 -0
  303. package/dist/types/schema/concepts.js +0 -0
  304. package/dist/types/schema/concepts.js.map +1 -0
  305. package/dist/types/schema/fields.js +470 -0
  306. package/dist/types/schema/fields.js.map +1 -0
  307. package/dist/types/schema/fields.type-test.js +0 -0
  308. package/dist/types/schema/fields.type-test.js.map +1 -0
  309. package/dist/types/spec/document.js +0 -0
  310. package/dist/types/spec/document.js.map +1 -0
  311. package/dist/types/spec/error.js +0 -0
  312. package/dist/types/spec/error.js.map +1 -0
  313. package/dist/types/spec/json-api-raw.js +0 -0
  314. package/dist/types/spec/json-api-raw.js.map +1 -0
  315. package/dist/types/symbols.js +84 -0
  316. package/dist/types/symbols.js.map +1 -0
  317. package/dist/types/utils.js +0 -0
  318. package/dist/types/utils.js.map +1 -0
  319. package/dist/types.js +0 -0
  320. package/dist/types.js.map +1 -0
  321. package/dist/utils/string.js +92 -0
  322. package/dist/utils/string.js.map +1 -0
  323. package/logos/NCC-1701-a-blue.svg +4 -0
  324. package/logos/NCC-1701-a-gold.svg +4 -0
  325. package/logos/NCC-1701-a-gold_100.svg +1 -0
  326. package/logos/NCC-1701-a-gold_base-64.txt +1 -0
  327. package/logos/NCC-1701-a.svg +4 -0
  328. package/logos/README.md +4 -0
  329. package/logos/docs-badge.svg +2 -0
  330. package/logos/ember-data-logo-dark.svg +12 -0
  331. package/logos/ember-data-logo-light.svg +12 -0
  332. package/logos/github-header.svg +444 -0
  333. package/logos/social1.png +0 -0
  334. package/logos/social2.png +0 -0
  335. package/logos/warp-drive-logo-dark.svg +4 -0
  336. package/logos/warp-drive-logo-gold.svg +4 -0
  337. package/package.json +70 -0
@@ -0,0 +1,180 @@
1
+ import type { Store } from '../../store/-private.ts';
2
+ import type { SchemaService as SchemaServiceInterface } from '../../types.ts';
3
+ import type { StableRecordIdentifier } from '../../types/identifier.ts';
4
+ import type { ObjectValue, Value } from '../../types/json/raw.ts';
5
+ import type { Derivation, HashFn } from '../../types/schema/concepts.ts';
6
+ import { type ArrayField, type DerivedField, type FieldSchema, type GenericField, type HashField, type LegacyAttributeField, type LegacyBelongsToField, type LegacyHasManyField, type LegacyRelationshipField, type ObjectField, type ObjectSchema, type PolarisResourceSchema, type ResourceSchema } from '../../types/schema/fields.ts';
7
+ import { Type } from '../../types/symbols.ts';
8
+ import type { WithPartial } from '../../types/utils.ts';
9
+ import type { ReactiveResource } from './record.ts';
10
+ /**
11
+ * Utility for constructing a ResourceSchema with the recommended
12
+ * fields for the PolarisMode experience.
13
+ *
14
+ * Using this requires registering the PolarisMode derivations
15
+ *
16
+ * ```ts
17
+ * import { registerDerivations } from '@warp-drive/schema-record';
18
+ *
19
+ * registerDerivations(schema);
20
+ * ```
21
+ *
22
+ * @public
23
+ * @param schema
24
+ * @return {PolarisResourceSchema}
25
+ */
26
+ export declare function withDefaults(schema: WithPartial<PolarisResourceSchema, 'identity'>): ResourceSchema;
27
+ /**
28
+ * A derivation that computes its value from the
29
+ * record's identity.
30
+ *
31
+ * It can be used via a derived field definition like:
32
+ *
33
+ * ```ts
34
+ * {
35
+ * kind: 'derived',
36
+ * name: 'id',
37
+ * type: '@identity',
38
+ * options: { key: 'id' }
39
+ * }
40
+ * ```
41
+ *
42
+ * Valid keys are `'id'`, `'lid'`, `'type'`, and `'^'`.
43
+ *
44
+ * `^` returns the entire identifier object.
45
+ *
46
+ * @public
47
+ */
48
+ export declare function fromIdentity(record: ReactiveResource, options: {
49
+ key: 'lid';
50
+ } | {
51
+ key: 'type';
52
+ }, key: string): string;
53
+ export declare function fromIdentity(record: ReactiveResource, options: {
54
+ key: 'id';
55
+ }, key: string): string | null;
56
+ export declare function fromIdentity(record: ReactiveResource, options: {
57
+ key: '^';
58
+ }, key: string): StableRecordIdentifier;
59
+ export declare function fromIdentity(record: ReactiveResource, options: null, key: string): asserts options;
60
+ export declare namespace fromIdentity { }
61
+ /**
62
+ * Registers the default derivations for records that want
63
+ * to use the PolarisMode defaults provided by
64
+ *
65
+ * ```ts
66
+ * import { withDefaults } from '@warp-drive/schema-record';
67
+ * ```
68
+ *
69
+ * @public
70
+ * @param {SchemaService} schema
71
+ */
72
+ export declare function registerDerivations(schema: SchemaServiceInterface): void;
73
+ interface InternalSchema {
74
+ original: ResourceSchema | ObjectSchema;
75
+ traits: Set<string>;
76
+ fields: Map<string, FieldSchema>;
77
+ attributes: Record<string, LegacyAttributeField>;
78
+ relationships: Record<string, LegacyRelationshipField>;
79
+ }
80
+ export type Transformation<T extends Value = Value, PT = unknown> = {
81
+ serialize(value: PT, options: Record<string, unknown> | null, record: ReactiveResource): T;
82
+ hydrate(value: T | undefined, options: Record<string, unknown> | null, record: ReactiveResource): PT;
83
+ defaultValue?(options: Record<string, unknown> | null, identifier: StableRecordIdentifier): T;
84
+ [Type]: string;
85
+ };
86
+ interface KindFns {
87
+ belongsTo: {
88
+ get: (store: Store, record: object, resourceKey: StableRecordIdentifier, field: LegacyBelongsToField) => unknown;
89
+ set: (store: Store, record: object, cacheKey: StableRecordIdentifier, field: LegacyBelongsToField, value: unknown) => void;
90
+ };
91
+ hasMany: {
92
+ get: (store: Store, record: object, resourceKey: StableRecordIdentifier, field: LegacyHasManyField) => unknown;
93
+ set: (store: Store, record: object, cacheKey: StableRecordIdentifier, field: LegacyHasManyField, value: unknown) => void;
94
+ notify: (store: Store, record: object, cacheKey: StableRecordIdentifier, field: LegacyHasManyField) => boolean;
95
+ };
96
+ }
97
+ export interface SchemaService {
98
+ doesTypeExist(type: string): boolean;
99
+ attributesDefinitionFor(identifier: {
100
+ type: string;
101
+ }): InternalSchema['attributes'];
102
+ relationshipsDefinitionFor(identifier: {
103
+ type: string;
104
+ }): InternalSchema['relationships'];
105
+ }
106
+ /**
107
+ * A SchemaService designed to work with dynamically registered schemas.
108
+ *
109
+ * @class SchemaService
110
+ * @public
111
+ */
112
+ export declare class SchemaService implements SchemaServiceInterface {
113
+ /** @internal */
114
+ _schemas: Map<string, InternalSchema>;
115
+ /** @internal */
116
+ _transforms: Map<string, Transformation>;
117
+ /** @internal */
118
+ _hashFns: Map<string, HashFn>;
119
+ /** @internal */
120
+ _derivations: Map<string, Derivation<any, any, any>>;
121
+ /** @internal */
122
+ _traits: Set<string>;
123
+ /** @internal */
124
+ _modes: Map<string, KindFns>;
125
+ constructor();
126
+ resourceTypes(): Readonly<string[]>;
127
+ hasTrait(type: string): boolean;
128
+ resourceHasTrait(resource: StableRecordIdentifier | {
129
+ type: string;
130
+ }, trait: string): boolean;
131
+ transformation(field: GenericField | ObjectField | ArrayField | {
132
+ type: string;
133
+ }): Transformation;
134
+ derivation(field: DerivedField | {
135
+ type: string;
136
+ }): Derivation;
137
+ hashFn(field: HashField | {
138
+ type: string;
139
+ }): HashFn;
140
+ resource(resource: StableRecordIdentifier | {
141
+ type: string;
142
+ }): ResourceSchema | ObjectSchema;
143
+ registerResources(schemas: Array<ResourceSchema | ObjectSchema>): void;
144
+ registerResource(schema: ResourceSchema | ObjectSchema): void;
145
+ registerTransformation<T extends Value = string, PT = unknown>(transformation: Transformation<T, PT>): void;
146
+ registerDerivation<R, T, FM extends ObjectValue | null>(derivation: Derivation<R, T, FM>): void;
147
+ /**
148
+ * This is an internal method used to register behaviors for legacy mode.
149
+ * It is not intended for public use.
150
+ *
151
+ * We do think a generalized `kind` registration system would be useful,
152
+ * but we have not yet designed it.
153
+ *
154
+ * See https://github.com/emberjs/data/issues/9534
155
+ *
156
+ * @internal
157
+ */
158
+ _registerMode(mode: string, kinds: KindFns): void;
159
+ /**
160
+ * This is an internal method used to enable legacy behaviors for legacy mode.
161
+ * It is not intended for public use.
162
+ *
163
+ * We do think a generalized `kind` registration system would be useful,
164
+ * but we have not yet designed it.
165
+ *
166
+ * See https://github.com/emberjs/data/issues/9534
167
+ *
168
+ * @internal
169
+ */
170
+ _kind<T extends keyof KindFns>(mode: string, kind: T): KindFns[T];
171
+ registerHashFn<T extends object>(hashFn: HashFn<T>): void;
172
+ fields({ type }: {
173
+ type: string;
174
+ }): InternalSchema['fields'];
175
+ hasResource(resource: {
176
+ type: string;
177
+ }): boolean;
178
+ }
179
+ export {};
180
+ //# sourceMappingURL=schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../src/reactive/-private/schema.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,KAAK,EAAmB,MAAM,yBAAyB,CAAC;AAEtE,OAAO,KAAK,EAAE,aAAa,IAAI,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AAE9E,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AACxE,OAAO,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,gCAAgC,CAAC;AACzE,OAAO,EACL,KAAK,UAAU,EACf,KAAK,YAAY,EACjB,KAAK,WAAW,EAChB,KAAK,YAAY,EACjB,KAAK,SAAS,EAGd,KAAK,oBAAoB,EACzB,KAAK,oBAAoB,EACzB,KAAK,kBAAkB,EACvB,KAAK,uBAAuB,EAC5B,KAAK,WAAW,EAChB,KAAK,YAAY,EACjB,KAAK,qBAAqB,EAC1B,KAAK,cAAc,EACpB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,IAAI,EAAE,MAAM,wBAAwB,CAAC;AAC9C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAmCpD;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,WAAW,CAAC,qBAAqB,EAAE,UAAU,CAAC,GAAG,cAAc,CASnG;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,gBAAgB,EAAE,OAAO,EAAE;IAAE,GAAG,EAAE,KAAK,CAAA;CAAE,GAAG;IAAE,GAAG,EAAE,MAAM,CAAA;CAAE,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC;AACvH,wBAAgB,YAAY,CAAC,MAAM,EAAE,gBAAgB,EAAE,OAAO,EAAE;IAAE,GAAG,EAAE,IAAI,CAAA;CAAE,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;AAC3G,wBAAgB,YAAY,CAAC,MAAM,EAAE,gBAAgB,EAAE,OAAO,EAAE;IAAE,GAAG,EAAE,GAAG,CAAA;CAAE,EAAE,GAAG,EAAE,MAAM,GAAG,sBAAsB,CAAC;AACnH,wBAAgB,YAAY,CAAC,MAAM,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;yBAApF,YAAY;AAiB5B;;;;;;;;;;GAUG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,sBAAsB,QAGjE;AAED,UAAU,cAAc;IACtB,QAAQ,EAAE,cAAc,GAAG,YAAY,CAAC;IACxC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACpB,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IACjC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAC;IACjD,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,uBAAuB,CAAC,CAAC;CACxD;AAED,MAAM,MAAM,cAAc,CAAC,CAAC,SAAS,KAAK,GAAG,KAAK,EAAE,EAAE,GAAG,OAAO,IAAI;IAClE,SAAS,CAAC,KAAK,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,EAAE,MAAM,EAAE,gBAAgB,GAAG,CAAC,CAAC;IAC3F,OAAO,CAAC,KAAK,EAAE,CAAC,GAAG,SAAS,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,EAAE,MAAM,EAAE,gBAAgB,GAAG,EAAE,CAAC;IACrG,YAAY,CAAC,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,EAAE,UAAU,EAAE,sBAAsB,GAAG,CAAC,CAAC;IAC9F,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AA2BF,UAAU,OAAO;IACf,SAAS,EAAE;QACT,GAAG,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,sBAAsB,EAAE,KAAK,EAAE,oBAAoB,KAAK,OAAO,CAAC;QACjH,GAAG,EAAE,CACH,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,sBAAsB,EAChC,KAAK,EAAE,oBAAoB,EAC3B,KAAK,EAAE,OAAO,KACX,IAAI,CAAC;KACX,CAAC;IACF,OAAO,EAAE;QACP,GAAG,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,sBAAsB,EAAE,KAAK,EAAE,kBAAkB,KAAK,OAAO,CAAC;QAC/G,GAAG,EAAE,CACH,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,sBAAsB,EAChC,KAAK,EAAE,kBAAkB,EACzB,KAAK,EAAE,OAAO,KACX,IAAI,CAAC;QACV,MAAM,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,sBAAsB,EAAE,KAAK,EAAE,kBAAkB,KAAK,OAAO,CAAC;KAChH,CAAC;CACH;AAED,MAAM,WAAW,aAAa;IAC5B,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;IACrC,uBAAuB,CAAC,UAAU,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,GAAG,cAAc,CAAC,YAAY,CAAC,CAAC;IACpF,0BAA0B,CAAC,UAAU,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,GAAG,cAAc,CAAC,eAAe,CAAC,CAAC;CAC3F;AAED;;;;;GAKG;AACH,qBAAa,aAAc,YAAW,sBAAsB;IAC1D,gBAAgB;IACR,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IAC9C,gBAAgB;IACR,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IACjD,gBAAgB;IACR,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACtC,gBAAgB;IAER,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;IAC7D,gBAAgB;IACR,OAAO,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC7B,gBAAgB;IACR,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;;IAWrC,aAAa,IAAI,QAAQ,CAAC,MAAM,EAAE,CAAC;IAInC,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAG/B,gBAAgB,CAAC,QAAQ,EAAE,sBAAsB,GAAG;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO;IAG7F,cAAc,CAAC,KAAK,EAAE,YAAY,GAAG,WAAW,GAAG,UAAU,GAAG;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,GAAG,cAAc;IAiBjG,UAAU,CAAC,KAAK,EAAE,YAAY,GAAG;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,GAAG,UAAU;IAiB9D,MAAM,CAAC,KAAK,EAAE,SAAS,GAAG;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,GAAG,MAAM;IAiBnD,QAAQ,CAAC,QAAQ,EAAE,sBAAsB,GAAG;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,GAAG,cAAc,GAAG,YAAY;IAI5F,iBAAiB,CAAC,OAAO,EAAE,KAAK,CAAC,cAAc,GAAG,YAAY,CAAC,GAAG,IAAI;IAKtE,gBAAgB,CAAC,MAAM,EAAE,cAAc,GAAG,YAAY,GAAG,IAAI;IA4B7D,sBAAsB,CAAC,CAAC,SAAS,KAAK,GAAG,MAAM,EAAE,EAAE,GAAG,OAAO,EAAE,cAAc,EAAE,cAAc,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,IAAI;IAI3G,kBAAkB,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,SAAS,WAAW,GAAG,IAAI,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,IAAI;IAI/F;;;;;;;;;;OAUG;IACH,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,IAAI;IAKjD;;;;;;;;;;OAUG;IACH,KAAK,CAAC,CAAC,SAAS,MAAM,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAOjE,cAAc,CAAC,CAAC,SAAS,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI;IAIzD,MAAM,CAAC,EAAE,IAAI,EAAE,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,GAAG,cAAc,CAAC,QAAQ,CAAC;IAU5D,WAAW,CAAC,QAAQ,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO;CAGjD"}
@@ -0,0 +1,11 @@
1
+ export declare const SOURCE: "___(unique) Symbol(SOURCE)";
2
+ export declare const MUTATE: "___(unique) Symbol(MUTATE)";
3
+ export declare const Destroy: "___(unique) Symbol(Destroy)";
4
+ export declare const Identifier: "___(unique) Symbol(Identifier)";
5
+ export declare const Editable: "___(unique) Symbol(Editable)";
6
+ export declare const Parent: "___(unique) Symbol(Parent)";
7
+ export declare const Checkout: "___(unique) Symbol(Checkout)";
8
+ export declare const Legacy: "___(unique) Symbol(Legacy)";
9
+ export declare const EmbeddedPath: "___(unique) Symbol(EmbeddedPath)";
10
+ export declare const EmbeddedType: "___(unique) Symbol(EmbeddedType)";
11
+ //# sourceMappingURL=symbols.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"symbols.d.ts","sourceRoot":"","sources":["../../../src/reactive/-private/symbols.ts"],"names":[],"mappings":"AAiCA,eAAO,MAAM,MAAM,8BAA8C,CAAC;AAClE,eAAO,MAAM,MAAM,8BAA8C,CAAC;AAElE,eAAO,MAAM,OAAO,+BAA+C,CAAC;AACpE,eAAO,MAAM,UAAU,kCAAqD,CAAC;AAC7E,eAAO,MAAM,QAAQ,gCAAiD,CAAC;AACvE,eAAO,MAAM,MAAM,8BAA6C,CAAC;AACjE,eAAO,MAAM,QAAQ,gCAAiD,CAAC;AACvE,eAAO,MAAM,MAAM,8BAA6C,CAAC;AAEjE,eAAO,MAAM,YAAY,oCAAyD,CAAC;AACnF,eAAO,MAAM,YAAY,oCAAyD,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { Editable, Legacy } from './-private/symbols';
2
+ //# sourceMappingURL=-private.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"-private.d.ts","sourceRoot":"","sources":["../../src/reactive/-private.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC"}
@@ -0,0 +1,5 @@
1
+ export { instantiateRecord, teardownRecord } from './reactive/-private/hooks';
2
+ export { type Transformation, SchemaService, withDefaults, fromIdentity, registerDerivations, } from './reactive/-private/schema';
3
+ export { type ReactiveResource } from './reactive/-private/record';
4
+ export { Checkout } from './reactive/-private/symbols';
5
+ //# sourceMappingURL=reactive.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reactive.d.ts","sourceRoot":"","sources":["../src/reactive.ts"],"names":[],"mappings":"AAsSA,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC9E,OAAO,EACL,KAAK,cAAc,EACnB,aAAa,EACb,YAAY,EACZ,YAAY,EACZ,mBAAmB,GACpB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC"}
@@ -0,0 +1,42 @@
1
+ import type { StableDocumentIdentifier } from '../../types/identifier';
2
+ import type { ImmutableHeaders, ImmutableRequestInfo, RequestInfo, ResponseInfo } from '../../types/request';
3
+ import type { DeferredStream, GodContext } from './types';
4
+ export declare function upgradeHeaders(headers: Headers | ImmutableHeaders): ImmutableHeaders;
5
+ export declare function cloneResponseProperties(response: Response): ResponseInfo;
6
+ export declare class ContextOwner {
7
+ hasSetStream: boolean;
8
+ hasSetResponse: boolean;
9
+ hasSubscribers: boolean;
10
+ stream: DeferredStream;
11
+ response: ResponseInfo | null;
12
+ request: ImmutableRequestInfo;
13
+ enhancedRequest: ImmutableRequestInfo;
14
+ nextCalled: number;
15
+ god: GodContext;
16
+ controller: AbortController;
17
+ requestId: number;
18
+ isRoot: boolean;
19
+ constructor(request: RequestInfo, god: GodContext, isRoot?: boolean);
20
+ get hasRequestedStream(): boolean;
21
+ getResponse(): ResponseInfo | null;
22
+ getStream(): Promise<ReadableStream | null>;
23
+ abort(reason: DOMException): void;
24
+ setStream(stream: ReadableStream | Promise<ReadableStream | null> | null): void;
25
+ resolveStream(): void;
26
+ setResponse(response: ResponseInfo | Response | null): void;
27
+ }
28
+ export declare class Context {
29
+ #private;
30
+ request: ImmutableRequestInfo;
31
+ id: number;
32
+ private _isCacheHandler;
33
+ private _finalized;
34
+ constructor(owner: ContextOwner, isCacheHandler: boolean);
35
+ setStream(stream: ReadableStream | Promise<ReadableStream | null>): void;
36
+ setResponse(response: ResponseInfo | Response | null): void;
37
+ setIdentifier(identifier: StableDocumentIdentifier): void;
38
+ get hasRequestedStream(): boolean;
39
+ _finalize(): void;
40
+ }
41
+ export type HandlerRequestContext = Context;
42
+ //# sourceMappingURL=context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../src/request/-private/context.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AACvE,OAAO,KAAK,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAI7G,OAAO,KAAK,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAE1D,wBAAgB,cAAc,CAAC,OAAO,EAAE,OAAO,GAAG,gBAAgB,GAAG,gBAAgB,CAQpF;AAED,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,QAAQ,GAAG,YAAY,CAYxE;AAED,qBAAa,YAAY;IACvB,YAAY,UAAS;IACrB,cAAc,UAAS;IACvB,cAAc,UAAS;IACvB,MAAM,EAAE,cAAc,CAA2C;IACjE,QAAQ,EAAE,YAAY,GAAG,IAAI,CAAQ;IAC7B,OAAO,EAAE,oBAAoB,CAAC;IAC9B,eAAe,EAAE,oBAAoB,CAAC;IAC9C,UAAU,SAAK;IACP,GAAG,EAAE,UAAU,CAAC;IAChB,UAAU,EAAE,eAAe,CAAC;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,OAAO,CAAC;gBAEZ,OAAO,EAAE,WAAW,EAAE,GAAG,EAAE,UAAU,EAAE,MAAM,UAAQ;IAuCjE,IAAI,kBAAkB,IAAI,OAAO,CAEhC;IAED,WAAW,IAAI,YAAY,GAAG,IAAI;IASlC,SAAS,IAAI,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC;IAW3C,KAAK,CAAC,MAAM,EAAE,YAAY;IAI1B,SAAS,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC,GAAG,IAAI;IAYxE,aAAa;IAIb,WAAW,CAAC,QAAQ,EAAE,YAAY,GAAG,QAAQ,GAAG,IAAI;CAwBrD;AAED,qBAAa,OAAO;;IAEV,OAAO,EAAE,oBAAoB,CAAC;IAC9B,EAAE,EAAE,MAAM,CAAC;IACnB,QAAgB,eAAe,CAAU;IACzC,QAAgB,UAAU,CAAU;gBAExB,KAAK,EAAE,YAAY,EAAE,cAAc,EAAE,OAAO;IAOxD,SAAS,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC;IAGjE,WAAW,CAAC,QAAQ,EAAE,YAAY,GAAG,QAAQ,GAAG,IAAI;IAIpD,aAAa,CAAC,UAAU,EAAE,wBAAwB;IAQlD,IAAI,kBAAkB,YAErB;IAED,SAAS;CAGV;AACD,MAAM,MAAM,qBAAqB,GAAG,OAAO,CAAC"}
@@ -0,0 +1,5 @@
1
+ import type { RequestInfo } from '../../types/request';
2
+ import { Context } from './context';
3
+ export declare function deepFreeze<T = unknown>(value: T): T;
4
+ export declare function assertValidRequest(request: RequestInfo | Context, isTopLevel: boolean): asserts request is RequestInfo;
5
+ //# sourceMappingURL=debug.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"debug.d.ts","sourceRoot":"","sources":["../../../src/request/-private/debug.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAoB,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACzE,OAAO,EAAE,OAAO,EAAkB,MAAM,WAAW,CAAC;AAmFpD,wBAAgB,UAAU,CAAC,CAAC,GAAG,OAAO,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC,CAuDnD;AAmJD,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,WAAW,GAAG,OAAO,EAC9B,UAAU,EAAE,OAAO,GAClB,OAAO,CAAC,OAAO,IAAI,WAAW,CA8DhC"}
@@ -0,0 +1,40 @@
1
+ /**
2
+ * A basic Fetch Handler which converts a request into a
3
+ * `fetch` call presuming the response to be `json`.
4
+ *
5
+ * ```ts
6
+ * import Fetch from '@ember-data/request/fetch';
7
+ *
8
+ * manager.use([Fetch]);
9
+ * ```
10
+ *
11
+ * @module
12
+ */
13
+ import { type Context } from './context';
14
+ interface FastbootRequest extends Request {
15
+ protocol: string;
16
+ host: string;
17
+ }
18
+ export interface FastBoot {
19
+ require(moduleName: string): unknown;
20
+ isFastBoot: boolean;
21
+ request: FastbootRequest;
22
+ }
23
+ /**
24
+ * A basic handler which converts a request into a
25
+ * `fetch` call presuming the response to be `json`.
26
+ *
27
+ * ```ts
28
+ * import Fetch from '@ember-data/request/fetch';
29
+ *
30
+ * manager.use([Fetch]);
31
+ * ```
32
+ *
33
+ * @class Fetch
34
+ * @public
35
+ */
36
+ declare const Fetch: {
37
+ request<T>(context: Context): Promise<T>;
38
+ };
39
+ export { Fetch };
40
+ //# sourceMappingURL=fetch.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fetch.d.ts","sourceRoot":"","sources":["../../../src/request/-private/fetch.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAKH,OAAO,EAA2B,KAAK,OAAO,EAAE,MAAM,WAAW,CAAC;AAGlE,UAAU,eAAgB,SAAQ,OAAO;IACvC,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;CACd;AACD,MAAM,WAAW,QAAQ;IACvB,OAAO,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC;IACrC,UAAU,EAAE,OAAO,CAAC;IACpB,OAAO,EAAE,eAAe,CAAC;CAC1B;AA6ED;;;;;;;;;;;;GAYG;AACH,QAAA,MAAM,KAAK;YACK,CAAC,WAAW,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC;CAoJ/C,CAAC;AAMF,OAAO,EAAE,KAAK,EAAE,CAAC"}
@@ -0,0 +1,8 @@
1
+ import { type StructuredDocument } from '../../types/request';
2
+ import type { ContextOwner } from './context';
3
+ import type { Deferred, DeferredFuture, Future } from './types';
4
+ export declare function isFuture<T>(maybe: unknown): maybe is Future<T>;
5
+ export declare function createDeferred<T>(): Deferred<T>;
6
+ export declare function upgradePromise<T>(promise: Promise<StructuredDocument<T>>, future: Future<T>): Future<T>;
7
+ export declare function createFuture<T>(owner: ContextOwner): DeferredFuture<T>;
8
+ //# sourceMappingURL=future.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"future.d.ts","sourceRoot":"","sources":["../../../src/request/-private/future.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,KAAK,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAGhE,wBAAgB,QAAQ,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,MAAM,CAAC,CAAC,CAAC,CAE9D;AAED,wBAAgB,cAAc,CAAC,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAQ/C;AAED,wBAAgB,cAAc,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAYvG;AAED,wBAAgB,YAAY,CAAC,CAAC,EAAE,KAAK,EAAE,YAAY,GAAG,cAAc,CAAC,CAAC,CAAC,CA0BtE"}
@@ -0,0 +1,160 @@
1
+ import type { StableDocumentIdentifier } from '../../types/identifier';
2
+ import type { RequestInfo } from '../../types/request';
3
+ import type { CacheHandler, Future, GenericCreateArgs, Handler, ManagedRequestPriority } from './types';
4
+ import { IS_CACHE_HANDLER } from './utils';
5
+ /**
6
+ * ## Import
7
+ *
8
+ * ```js
9
+ * import { RequestManager } from '@warp-drive/core';
10
+ * ```
11
+ *
12
+ * For complete usage guide see the [RequestManager Documentation](/guides/).
13
+ *
14
+ * ## How It Works
15
+ *
16
+ * ```ts
17
+ * interface RequestManager {
18
+ * request<T>(req: RequestInfo): Future<T>;
19
+ * }
20
+ * ```
21
+ *
22
+ * A RequestManager provides a request/response flow in which configured
23
+ * handlers are successively given the opportunity to handle, modify, or
24
+ * pass-along a request.
25
+ *
26
+ * <img src="/images/handlers-all-labeled.gif" alt="RequestManager Flow Animation" width="100%" />
27
+ *
28
+ * For example:
29
+ *
30
+ * ::: code-group
31
+ *
32
+ * ```ts [Setup.ts]
33
+ * import { RequestManager, Fetch } from '@warp-drive/core';
34
+ * import { AutoCompress } from '@warp-drive/utilities/handlers';
35
+ * import Auth from 'ember-simple-auth/handler';
36
+ *
37
+ * // ... create manager
38
+ * const manager = new RequestManager()
39
+ * .use([Auth, new AutoCompress(), Fetch]); // [!code focus]
40
+ * ```
41
+ *
42
+ * ```ts [Usage.ts]
43
+ * import Config from './config';
44
+ *
45
+ * const { apiUrl } = Config;
46
+ *
47
+ * // ... execute a request
48
+ * const response = await manager.request({
49
+ * url: `${apiUrl}/users`
50
+ * });
51
+ * ```
52
+ *
53
+ * :::
54
+ *
55
+ * ### Futures
56
+ *
57
+ * The return value of `manager.request` is a `Future`, which allows
58
+ * access to limited information about the request while it is still
59
+ * pending and fulfills with the final state when the request completes.
60
+ *
61
+ * A `Future` is cancellable via `abort`.
62
+ *
63
+ * Handlers may optionally expose a `ReadableStream` to the `Future` for
64
+ * streaming data; however, when doing so the future should not resolve
65
+ * until the response stream is fully read.
66
+ *
67
+ * ```ts
68
+ * interface Future<T> extends Promise<StructuredDocument<T>> {
69
+ * abort(): void;
70
+ *
71
+ * async getStream(): ReadableStream | null;
72
+ * }
73
+ * ```
74
+ *
75
+ * ### StructuredDocuments
76
+ *
77
+ * A Future resolves with a `StructuredDataDocument` or rejects with a `StructuredErrorDocument`.
78
+ *
79
+ * ```ts
80
+ * interface StructuredDataDocument<T> {
81
+ * request: ImmutableRequestInfo;
82
+ * response: ImmutableResponseInfo;
83
+ * content: T;
84
+ * }
85
+ * interface StructuredErrorDocument extends Error {
86
+ * request: ImmutableRequestInfo;
87
+ * response: ImmutableResponseInfo;
88
+ * error: string | object;
89
+ * }
90
+ * type StructuredDocument<T> = StructuredDataDocument<T> | StructuredErrorDocument;
91
+ * ```
92
+ *
93
+ * @class RequestManager
94
+ * @public
95
+ */
96
+ export declare class RequestManager {
97
+ #private;
98
+ /** @internal */
99
+ _hasCacheHandler: boolean;
100
+ /**
101
+ * A map of pending requests from request.id to their
102
+ * associated CacheHandler promise.
103
+ *
104
+ * This queue is managed by the CacheHandler
105
+ *
106
+ * @internal
107
+ */
108
+ _pending: Map<number, Promise<unknown>>;
109
+ /** @internal */
110
+ _deduped: Map<StableDocumentIdentifier, {
111
+ priority: ManagedRequestPriority;
112
+ promise: Promise<unknown>;
113
+ }>;
114
+ constructor(options?: GenericCreateArgs);
115
+ /**
116
+ * Register a handler to use for primary cache intercept.
117
+ *
118
+ * Only one such handler may exist. If using the same
119
+ * RequestManager as the Store instance the Store
120
+ * registers itself as a Cache handler.
121
+ *
122
+ * @public
123
+ */
124
+ useCache(cacheHandler: CacheHandler & {
125
+ [IS_CACHE_HANDLER]?: true;
126
+ }): this;
127
+ /**
128
+ * Register handler(s) to use when a request is issued.
129
+ *
130
+ * Handlers will be invoked in the order they are registered.
131
+ * Each Handler is given the opportunity to handle the request,
132
+ * curry the request, or pass along a modified request.
133
+ *
134
+ * @public
135
+ * @param {Handler[]} newHandlers
136
+ * @return {ThisType}
137
+ */
138
+ use(newHandlers: Handler[]): this;
139
+ /**
140
+ * Issue a Request.
141
+ *
142
+ * Returns a Future that fulfills with a StructuredDocument
143
+ *
144
+ * @public
145
+ * @param {RequestInfo} request
146
+ * @return {Future}
147
+ */
148
+ request<RT, T = unknown>(request: RequestInfo<RT, T>): Future<RT>;
149
+ /**
150
+ * This method exists so that the RequestManager can be created
151
+ * can be created by container/factory systems that expect to
152
+ * call a static `create` method to instantiate the class.
153
+ *
154
+ * Using `new RequestManager()` directly is preferred.
155
+ *
156
+ * @private
157
+ */
158
+ static create(options?: GenericCreateArgs): RequestManager;
159
+ }
160
+ //# sourceMappingURL=manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../../src/request/-private/manager.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AACvE,OAAO,KAAK,EAAE,WAAW,EAA2B,MAAM,qBAAqB,CAAC;AAIhF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,iBAAiB,EAAE,OAAO,EAAE,sBAAsB,EAAE,MAAM,SAAS,CAAC;AACxG,OAAO,EAAsB,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAE/D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0FG;AACH,qBAAa,cAAc;;IAEzB,gBAAgB;IACR,gBAAgB,EAAE,OAAO,CAAC;IAClC;;;;;;;OAOG;IACK,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;IAChD,gBAAgB;IACR,QAAQ,EAAE,GAAG,CAAC,wBAAwB,EAAE;QAAE,QAAQ,EAAE,sBAAsB,CAAC;QAAC,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,CAAA;KAAE,CAAC,CAAC;gBAErG,OAAO,CAAC,EAAE,iBAAiB;IAMvC;;;;;;;;OAQG;IACH,QAAQ,CAAC,YAAY,EAAE,YAAY,GAAG;QAAE,CAAC,gBAAgB,CAAC,CAAC,EAAE,IAAI,CAAA;KAAE,GAAG,IAAI;IAiB1E;;;;;;;;;;OAUG;IACH,GAAG,CAAC,WAAW,EAAE,OAAO,EAAE,GAAG,IAAI;IA2BjC;;;;;;;;OAQG;IACH,OAAO,CAAC,EAAE,EAAE,CAAC,GAAG,OAAO,EAAE,OAAO,EAAE,WAAW,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,MAAM,CAAC,EAAE,CAAC;IAuFjE;;;;;;;;OAQG;IACH,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,iBAAiB;CAG1C"}
@@ -0,0 +1,20 @@
1
+ export type CacheResult<T = unknown, E = unknown> = {
2
+ isError: true;
3
+ result: E;
4
+ } | {
5
+ isError: false;
6
+ result: T;
7
+ };
8
+ export type Awaitable<T = unknown, E = unknown> = {
9
+ then: (onFulfilled: (value: T) => unknown, onRejected: (reason: E) => unknown) => unknown;
10
+ catch: (onRejected: (reason: E) => unknown) => unknown;
11
+ finally: (onFinally: () => unknown) => unknown;
12
+ };
13
+ export declare const PromiseCache: WeakMap<Awaitable<unknown, unknown>, CacheResult<unknown, unknown>>;
14
+ export declare const RequestMap: Map<number, CacheResult<unknown, unknown>>;
15
+ export declare function setRequestResult(requestId: number, result: CacheResult): void;
16
+ export declare function clearRequestResult(requestId: number): void;
17
+ export declare function getRequestResult(requestId: number): CacheResult | undefined;
18
+ export declare function setPromiseResult(promise: Promise<unknown> | Awaitable, result: CacheResult): void;
19
+ export declare function getPromiseResult<T, E>(promise: Promise<T> | Awaitable<T, E>): CacheResult<T, E> | undefined;
20
+ //# sourceMappingURL=promise-cache.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"promise-cache.d.ts","sourceRoot":"","sources":["../../../src/request/-private/promise-cache.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,WAAW,CAAC,CAAC,GAAG,OAAO,EAAE,CAAC,GAAG,OAAO,IAAI;IAAE,OAAO,EAAE,IAAI,CAAC;IAAC,MAAM,EAAE,CAAC,CAAA;CAAE,GAAG;IAAE,OAAO,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,CAAC,CAAA;CAAE,CAAC;AAEjH,MAAM,MAAM,SAAS,CAAC,CAAC,GAAG,OAAO,EAAE,CAAC,GAAG,OAAO,IAAI;IAChD,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,OAAO,EAAE,UAAU,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,OAAO,KAAK,OAAO,CAAC;IAC1F,KAAK,EAAE,CAAC,UAAU,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,OAAO,KAAK,OAAO,CAAC;IACvD,OAAO,EAAE,CAAC,SAAS,EAAE,MAAM,OAAO,KAAK,OAAO,CAAC;CAChD,CAAC;AAEF,eAAO,MAAM,YAAY,qEAA2E,CAAC;AACrG,eAAO,MAAM,UAAU,4CAAkE,CAAC;AAE1F,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,QAEtE;AACD,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,MAAM,QAEnD;AACD,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS,CAE3E;AAED,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,GAAG,SAAS,EAAE,MAAM,EAAE,WAAW,QAE1F;AAED,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,SAAS,CAE3G"}