@warp-drive/core 5.6.0-alpha.14 → 5.6.0-alpha.17

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 (287) hide show
  1. package/declarations/build-config/babel-macros.d.ts +1 -2
  2. package/declarations/build-config/canary-features.d.ts +1 -2
  3. package/declarations/build-config/debugging.d.ts +1 -2
  4. package/declarations/build-config/deprecations.d.ts +1 -2
  5. package/declarations/build-config/env.d.ts +1 -2
  6. package/declarations/build-config/macros.d.ts +1 -2
  7. package/declarations/build-config.d.ts +1 -2
  8. package/declarations/configure.d.ts +6 -7
  9. package/declarations/graph/-private/-diff.d.ts +21 -22
  10. package/declarations/graph/-private/-edge-definition.d.ts +134 -135
  11. package/declarations/graph/-private/-state.d.ts +93 -7
  12. package/declarations/graph/-private/-utils.d.ts +18 -13
  13. package/declarations/graph/-private/coerce-id.d.ts +6 -1
  14. package/declarations/graph/-private/debug/assert-polymorphic-type.d.ts +15 -4
  15. package/declarations/graph/-private/edges/collection.d.ts +35 -36
  16. package/declarations/graph/-private/edges/implicit.d.ts +28 -29
  17. package/declarations/graph/-private/edges/resource.d.ts +19 -20
  18. package/declarations/graph/-private/graph.d.ts +83 -48
  19. package/declarations/graph/-private/normalize-link.d.ts +7 -2
  20. package/declarations/graph/-private/operations/add-to-related-records.d.ts +3 -4
  21. package/declarations/graph/-private/operations/merge-identifier.d.ts +2 -3
  22. package/declarations/graph/-private/operations/remove-from-related-records.d.ts +3 -4
  23. package/declarations/graph/-private/operations/replace-related-record.d.ts +2 -3
  24. package/declarations/graph/-private/operations/replace-related-records.d.ts +58 -4
  25. package/declarations/graph/-private/operations/update-relationship.d.ts +11 -9
  26. package/declarations/graph/-private.d.ts +9 -10
  27. package/declarations/index.d.ts +11 -12
  28. package/declarations/reactive/-private/document.d.ts +143 -144
  29. package/declarations/reactive/-private/fields/compute.d.ts +31 -28
  30. package/declarations/reactive/-private/fields/extension.d.ts +8 -0
  31. package/declarations/reactive/-private/fields/managed-array.d.ts +19 -20
  32. package/declarations/reactive/-private/fields/managed-object.d.ts +16 -16
  33. package/declarations/reactive/-private/fields/many-array-manager.d.ts +15 -16
  34. package/declarations/reactive/-private/hooks.d.ts +3 -4
  35. package/declarations/reactive/-private/record.d.ts +61 -58
  36. package/declarations/reactive/-private/schema.d.ts +256 -165
  37. package/declarations/reactive/-private/symbols.d.ts +27 -2
  38. package/declarations/reactive/-private.d.ts +1 -2
  39. package/declarations/reactive.d.ts +4 -5
  40. package/declarations/request/-private/context.d.ts +34 -35
  41. package/declarations/request/-private/debug.d.ts +2 -3
  42. package/declarations/request/-private/fetch.d.ts +23 -24
  43. package/declarations/request/-private/future.d.ts +3 -4
  44. package/declarations/request/-private/manager.d.ts +159 -157
  45. package/declarations/request/-private/promise-cache.d.ts +21 -13
  46. package/declarations/request/-private/types.d.ts +124 -124
  47. package/declarations/request/-private/utils.d.ts +8 -9
  48. package/declarations/request.d.ts +5 -6
  49. package/declarations/store/-private/cache-handler/handler.d.ts +57 -52
  50. package/declarations/store/-private/cache-handler/types.d.ts +95 -96
  51. package/declarations/store/-private/cache-handler/utils.d.ts +16 -16
  52. package/declarations/store/-private/caches/cache-utils.d.ts +7 -4
  53. package/declarations/store/-private/caches/identifier-cache.d.ts +234 -246
  54. package/declarations/store/-private/caches/instance-cache.d.ts +47 -47
  55. package/declarations/store/-private/caches/resource-utils.d.ts +3 -4
  56. package/declarations/store/-private/debug/utils.d.ts +6 -7
  57. package/declarations/store/-private/default-cache-policy.d.ts +362 -361
  58. package/declarations/store/-private/legacy-model-support/record-reference.d.ts +154 -159
  59. package/declarations/store/-private/legacy-model-support/shim-model-class.d.ts +14 -14
  60. package/declarations/store/-private/managers/cache-capabilities-manager.d.ts +21 -22
  61. package/declarations/store/-private/managers/cache-manager.d.ts +440 -425
  62. package/declarations/store/-private/managers/notification-manager.d.ts +88 -83
  63. package/declarations/store/-private/managers/record-array-manager.d.ts +89 -90
  64. package/declarations/store/-private/network/request-cache.d.ts +86 -83
  65. package/declarations/store/-private/new-core-tmp/promise-state.d.ts +252 -244
  66. package/declarations/store/-private/new-core-tmp/reactivity/configure.d.ts +155 -72
  67. package/declarations/store/-private/new-core-tmp/reactivity/internal.d.ts +148 -149
  68. package/declarations/store/-private/new-core-tmp/reactivity/signal.d.ts +28 -23
  69. package/declarations/store/-private/new-core-tmp/request-state.d.ts +263 -241
  70. package/declarations/store/-private/new-core-tmp/request-subscription.d.ts +261 -0
  71. package/declarations/store/-private/record-arrays/identifier-array.d.ts +125 -119
  72. package/declarations/store/-private/record-arrays/many-array.d.ts +180 -182
  73. package/declarations/store/-private/record-arrays/native-proxy-type-fix.d.ts +120 -110
  74. package/declarations/store/-private/store-service.d.ts +1594 -1586
  75. package/declarations/store/-private/utils/coerce-id.d.ts +6 -1
  76. package/declarations/store/-private/utils/construct-resource.d.ts +1 -2
  77. package/declarations/store/-private/utils/is-non-empty-string.d.ts +0 -1
  78. package/declarations/store/-private/utils/normalize-model-name.d.ts +0 -1
  79. package/declarations/store/-private/utils/uuid-polyfill.d.ts +0 -1
  80. package/declarations/store/-private.d.ts +31 -27
  81. package/declarations/store/-types/q/cache-capabilities-manager.d.ts +96 -97
  82. package/declarations/store/-types/q/ds-model.d.ts +17 -18
  83. package/declarations/store/-types/q/identifier.d.ts +11 -12
  84. package/declarations/store/-types/q/record-instance.d.ts +16 -17
  85. package/declarations/store/-types/q/schema-service.d.ts +346 -323
  86. package/declarations/store/-types/q/store.d.ts +25 -28
  87. package/declarations/store.d.ts +1 -2
  88. package/declarations/types/-private.d.ts +16 -8
  89. package/declarations/types/cache/aliases.d.ts +11 -1
  90. package/declarations/types/cache/change.d.ts +4 -5
  91. package/declarations/types/cache/mutations.d.ts +51 -28
  92. package/declarations/types/cache/operations.d.ts +60 -47
  93. package/declarations/types/cache/relationship.d.ts +11 -9
  94. package/declarations/types/cache.d.ts +495 -484
  95. package/declarations/types/graph.d.ts +31 -32
  96. package/declarations/types/identifier.d.ts +83 -82
  97. package/declarations/types/json/raw.d.ts +1 -2
  98. package/declarations/types/params.d.ts +4 -5
  99. package/declarations/types/record.d.ts +117 -76
  100. package/declarations/types/request.d.ts +289 -266
  101. package/declarations/types/runtime.d.ts +8 -9
  102. package/declarations/types/schema/concepts.d.ts +19 -13
  103. package/declarations/types/schema/fields.d.ts +1712 -1587
  104. package/declarations/types/schema/fields.type-test.d.ts +0 -1
  105. package/declarations/types/spec/document.d.ts +28 -22
  106. package/declarations/types/spec/error.d.ts +16 -17
  107. package/declarations/types/spec/json-api-raw.d.ts +102 -102
  108. package/declarations/types/symbols.d.ts +74 -75
  109. package/declarations/types/utils.d.ts +5 -5
  110. package/declarations/types.d.ts +10 -11
  111. package/declarations/utils/string.d.ts +43 -40
  112. package/dist/{configure-BgaZESRo.js → configure-B48bFHOl.js} +38 -2
  113. package/dist/configure.js +1 -1
  114. package/dist/graph/-private.js +2 -2
  115. package/dist/{handler-cHghx9Y9.js → handler-C2T-IyJK.js} +1 -1
  116. package/dist/index.js +3 -3
  117. package/dist/reactive/-private.js +1 -1
  118. package/dist/reactive.js +287 -101
  119. package/dist/{request-state-DgwTEXLU.js → request-state-CjLph1LP.js} +1030 -249
  120. package/dist/store/-private.js +3 -3
  121. package/dist/{symbols-BmDcn6hS.js → symbols-SIstXMLI.js} +3 -3
  122. package/dist/types/-private.js +1 -1
  123. package/dist/types/schema/fields.js +4 -4
  124. package/package.json +4 -4
  125. package/declarations/build-config/babel-macros.d.ts.map +0 -1
  126. package/declarations/build-config/canary-features.d.ts.map +0 -1
  127. package/declarations/build-config/debugging.d.ts.map +0 -1
  128. package/declarations/build-config/deprecations.d.ts.map +0 -1
  129. package/declarations/build-config/env.d.ts.map +0 -1
  130. package/declarations/build-config/macros.d.ts.map +0 -1
  131. package/declarations/build-config.d.ts.map +0 -1
  132. package/declarations/configure.d.ts.map +0 -1
  133. package/declarations/graph/-private/-diff.d.ts.map +0 -1
  134. package/declarations/graph/-private/-edge-definition.d.ts.map +0 -1
  135. package/declarations/graph/-private/-state.d.ts.map +0 -1
  136. package/declarations/graph/-private/-utils.d.ts.map +0 -1
  137. package/declarations/graph/-private/coerce-id.d.ts.map +0 -1
  138. package/declarations/graph/-private/debug/assert-polymorphic-type.d.ts.map +0 -1
  139. package/declarations/graph/-private/edges/collection.d.ts.map +0 -1
  140. package/declarations/graph/-private/edges/implicit.d.ts.map +0 -1
  141. package/declarations/graph/-private/edges/resource.d.ts.map +0 -1
  142. package/declarations/graph/-private/graph.d.ts.map +0 -1
  143. package/declarations/graph/-private/normalize-link.d.ts.map +0 -1
  144. package/declarations/graph/-private/operations/add-to-related-records.d.ts.map +0 -1
  145. package/declarations/graph/-private/operations/merge-identifier.d.ts.map +0 -1
  146. package/declarations/graph/-private/operations/remove-from-related-records.d.ts.map +0 -1
  147. package/declarations/graph/-private/operations/replace-related-record.d.ts.map +0 -1
  148. package/declarations/graph/-private/operations/replace-related-records.d.ts.map +0 -1
  149. package/declarations/graph/-private/operations/update-relationship.d.ts.map +0 -1
  150. package/declarations/graph/-private.d.ts.map +0 -1
  151. package/declarations/index.d.ts.map +0 -1
  152. package/declarations/reactive/-private/document.d.ts.map +0 -1
  153. package/declarations/reactive/-private/fields/compute.d.ts.map +0 -1
  154. package/declarations/reactive/-private/fields/managed-array.d.ts.map +0 -1
  155. package/declarations/reactive/-private/fields/managed-object.d.ts.map +0 -1
  156. package/declarations/reactive/-private/fields/many-array-manager.d.ts.map +0 -1
  157. package/declarations/reactive/-private/hooks.d.ts.map +0 -1
  158. package/declarations/reactive/-private/record.d.ts.map +0 -1
  159. package/declarations/reactive/-private/schema.d.ts.map +0 -1
  160. package/declarations/reactive/-private/symbols.d.ts.map +0 -1
  161. package/declarations/reactive/-private.d.ts.map +0 -1
  162. package/declarations/reactive.d.ts.map +0 -1
  163. package/declarations/request/-private/context.d.ts.map +0 -1
  164. package/declarations/request/-private/debug.d.ts.map +0 -1
  165. package/declarations/request/-private/fetch.d.ts.map +0 -1
  166. package/declarations/request/-private/future.d.ts.map +0 -1
  167. package/declarations/request/-private/manager.d.ts.map +0 -1
  168. package/declarations/request/-private/promise-cache.d.ts.map +0 -1
  169. package/declarations/request/-private/types.d.ts.map +0 -1
  170. package/declarations/request/-private/utils.d.ts.map +0 -1
  171. package/declarations/request.d.ts.map +0 -1
  172. package/declarations/store/-private/cache-handler/handler.d.ts.map +0 -1
  173. package/declarations/store/-private/cache-handler/types.d.ts.map +0 -1
  174. package/declarations/store/-private/cache-handler/utils.d.ts.map +0 -1
  175. package/declarations/store/-private/caches/cache-utils.d.ts.map +0 -1
  176. package/declarations/store/-private/caches/identifier-cache.d.ts.map +0 -1
  177. package/declarations/store/-private/caches/instance-cache.d.ts.map +0 -1
  178. package/declarations/store/-private/caches/resource-utils.d.ts.map +0 -1
  179. package/declarations/store/-private/debug/utils.d.ts.map +0 -1
  180. package/declarations/store/-private/default-cache-policy.d.ts.map +0 -1
  181. package/declarations/store/-private/legacy-model-support/record-reference.d.ts.map +0 -1
  182. package/declarations/store/-private/legacy-model-support/shim-model-class.d.ts.map +0 -1
  183. package/declarations/store/-private/managers/cache-capabilities-manager.d.ts.map +0 -1
  184. package/declarations/store/-private/managers/cache-manager.d.ts.map +0 -1
  185. package/declarations/store/-private/managers/notification-manager.d.ts.map +0 -1
  186. package/declarations/store/-private/managers/record-array-manager.d.ts.map +0 -1
  187. package/declarations/store/-private/network/request-cache.d.ts.map +0 -1
  188. package/declarations/store/-private/new-core-tmp/promise-state.d.ts.map +0 -1
  189. package/declarations/store/-private/new-core-tmp/reactivity/configure.d.ts.map +0 -1
  190. package/declarations/store/-private/new-core-tmp/reactivity/internal.d.ts.map +0 -1
  191. package/declarations/store/-private/new-core-tmp/reactivity/signal.d.ts.map +0 -1
  192. package/declarations/store/-private/new-core-tmp/request-state.d.ts.map +0 -1
  193. package/declarations/store/-private/record-arrays/identifier-array.d.ts.map +0 -1
  194. package/declarations/store/-private/record-arrays/many-array.d.ts.map +0 -1
  195. package/declarations/store/-private/record-arrays/native-proxy-type-fix.d.ts.map +0 -1
  196. package/declarations/store/-private/store-service.d.ts.map +0 -1
  197. package/declarations/store/-private/store-service.type-test.d.ts +0 -2
  198. package/declarations/store/-private/store-service.type-test.d.ts.map +0 -1
  199. package/declarations/store/-private/utils/coerce-id.d.ts.map +0 -1
  200. package/declarations/store/-private/utils/construct-resource.d.ts.map +0 -1
  201. package/declarations/store/-private/utils/is-non-empty-string.d.ts.map +0 -1
  202. package/declarations/store/-private/utils/normalize-model-name.d.ts.map +0 -1
  203. package/declarations/store/-private/utils/uuid-polyfill.d.ts.map +0 -1
  204. package/declarations/store/-private.d.ts.map +0 -1
  205. package/declarations/store/-types/q/cache-capabilities-manager.d.ts.map +0 -1
  206. package/declarations/store/-types/q/ds-model.d.ts.map +0 -1
  207. package/declarations/store/-types/q/identifier.d.ts.map +0 -1
  208. package/declarations/store/-types/q/promise-proxies.d.ts +0 -2
  209. package/declarations/store/-types/q/promise-proxies.d.ts.map +0 -1
  210. package/declarations/store/-types/q/record-data-json-api.d.ts +0 -31
  211. package/declarations/store/-types/q/record-data-json-api.d.ts.map +0 -1
  212. package/declarations/store/-types/q/record-instance.d.ts.map +0 -1
  213. package/declarations/store/-types/q/schema-service.d.ts.map +0 -1
  214. package/declarations/store/-types/q/store.d.ts.map +0 -1
  215. package/declarations/store.d.ts.map +0 -1
  216. package/declarations/types/-private.d.ts.map +0 -1
  217. package/declarations/types/cache/aliases.d.ts.map +0 -1
  218. package/declarations/types/cache/change.d.ts.map +0 -1
  219. package/declarations/types/cache/mutations.d.ts.map +0 -1
  220. package/declarations/types/cache/operations.d.ts.map +0 -1
  221. package/declarations/types/cache/relationship.d.ts.map +0 -1
  222. package/declarations/types/cache.d.ts.map +0 -1
  223. package/declarations/types/graph.d.ts.map +0 -1
  224. package/declarations/types/identifier.d.ts.map +0 -1
  225. package/declarations/types/json/raw.d.ts.map +0 -1
  226. package/declarations/types/params.d.ts.map +0 -1
  227. package/declarations/types/record.d.ts.map +0 -1
  228. package/declarations/types/record.type-test.d.ts +0 -2
  229. package/declarations/types/record.type-test.d.ts.map +0 -1
  230. package/declarations/types/request.d.ts.map +0 -1
  231. package/declarations/types/request.type-test.d.ts +0 -2
  232. package/declarations/types/request.type-test.d.ts.map +0 -1
  233. package/declarations/types/runtime.d.ts.map +0 -1
  234. package/declarations/types/schema/concepts.d.ts.map +0 -1
  235. package/declarations/types/schema/fields.d.ts.map +0 -1
  236. package/declarations/types/schema/fields.type-test.d.ts.map +0 -1
  237. package/declarations/types/spec/document.d.ts.map +0 -1
  238. package/declarations/types/spec/error.d.ts.map +0 -1
  239. package/declarations/types/spec/json-api-raw.d.ts.map +0 -1
  240. package/declarations/types/symbols.d.ts.map +0 -1
  241. package/declarations/types/utils.d.ts.map +0 -1
  242. package/declarations/types.d.ts.map +0 -1
  243. package/declarations/utils/string.d.ts.map +0 -1
  244. package/dist/build-config/babel-macros.js.map +0 -1
  245. package/dist/build-config/canary-features.js.map +0 -1
  246. package/dist/build-config/debugging.js.map +0 -1
  247. package/dist/build-config/deprecations.js.map +0 -1
  248. package/dist/build-config/env.js.map +0 -1
  249. package/dist/build-config/macros.js.map +0 -1
  250. package/dist/build-config.js.map +0 -1
  251. package/dist/configure-BgaZESRo.js.map +0 -1
  252. package/dist/configure.js.map +0 -1
  253. package/dist/context-COmAnXUQ.js.map +0 -1
  254. package/dist/graph/-private.js.map +0 -1
  255. package/dist/handler-cHghx9Y9.js.map +0 -1
  256. package/dist/index.js.map +0 -1
  257. package/dist/reactive/-private.js.map +0 -1
  258. package/dist/reactive.js.map +0 -1
  259. package/dist/request-state-DgwTEXLU.js.map +0 -1
  260. package/dist/request.js.map +0 -1
  261. package/dist/store/-private.js.map +0 -1
  262. package/dist/store.js.map +0 -1
  263. package/dist/symbols-BmDcn6hS.js.map +0 -1
  264. package/dist/types/-private.js.map +0 -1
  265. package/dist/types/cache/aliases.js.map +0 -1
  266. package/dist/types/cache/change.js.map +0 -1
  267. package/dist/types/cache/mutations.js.map +0 -1
  268. package/dist/types/cache/operations.js.map +0 -1
  269. package/dist/types/cache/relationship.js.map +0 -1
  270. package/dist/types/cache.js.map +0 -1
  271. package/dist/types/graph.js.map +0 -1
  272. package/dist/types/identifier.js.map +0 -1
  273. package/dist/types/json/raw.js.map +0 -1
  274. package/dist/types/params.js.map +0 -1
  275. package/dist/types/record.js.map +0 -1
  276. package/dist/types/request.js.map +0 -1
  277. package/dist/types/runtime.js.map +0 -1
  278. package/dist/types/schema/concepts.js.map +0 -1
  279. package/dist/types/schema/fields.js.map +0 -1
  280. package/dist/types/schema/fields.type-test.js.map +0 -1
  281. package/dist/types/spec/document.js.map +0 -1
  282. package/dist/types/spec/error.js.map +0 -1
  283. package/dist/types/spec/json-api-raw.js.map +0 -1
  284. package/dist/types/symbols.js.map +0 -1
  285. package/dist/types/utils.js.map +0 -1
  286. package/dist/types.js.map +0 -1
  287. package/dist/utils/string.js.map +0 -1
@@ -1,90 +1,91 @@
1
- import type { StableDocumentIdentifier } from '../../types/identifier';
2
- import type { IS_FUTURE, RequestContext, RequestInfo, ResponseInfo, StructuredDataDocument } from '../../types/request';
1
+ /* eslint-disable no-irregular-whitespace */
2
+ import type { StableDocumentIdentifier } from "../../types/identifier.js";
3
+ import type { IS_FUTURE, RequestContext, RequestInfo, ResponseInfo, StructuredDataDocument } from "../../types/request.js";
3
4
  export interface GodContext {
4
- controller: AbortController;
5
- response: ResponseInfo | null;
6
- stream: ReadableStream | Promise<ReadableStream | null> | null;
7
- hasRequestedStream: boolean;
8
- id: number;
9
- identifier: StableDocumentIdentifier | null;
5
+ controller: AbortController;
6
+ response: ResponseInfo | null;
7
+ stream: ReadableStream | Promise<ReadableStream | null> | null;
8
+ hasRequestedStream: boolean;
9
+ id: number;
10
+ identifier: StableDocumentIdentifier | null;
10
11
  }
11
12
  export type Deferred<T> = {
12
- resolve(v: T): void;
13
- reject(v: unknown): void;
14
- promise: Promise<T>;
13
+ resolve(v: T): void;
14
+ reject(v: unknown): void;
15
+ promise: Promise<T>;
15
16
  };
16
17
  export type ManagedRequestPriority = {
17
- blocking: boolean;
18
+ blocking: boolean;
18
19
  };
19
20
  export type DeferredStream = {
20
- resolve(v: ReadableStream | null): void;
21
- reject(v: unknown): void;
22
- promise: Promise<ReadableStream | null> & {
23
- sizeHint?: number;
24
- };
21
+ resolve(v: ReadableStream | null): void;
22
+ reject(v: unknown): void;
23
+ promise: Promise<ReadableStream | null> & {
24
+ sizeHint?: number;
25
+ };
25
26
  };
26
27
  /**
27
- * A Future is a {@link Promise} which resolves to a {@link StructuredDataDocument | StructuredDocument}
28
- * while providing the ability to {@link Future.abort | abort} the underlying request, and
29
- * {@link Future.getStream | access the response stream} before the outer promise resolves;
30
- *
31
- * @public
32
- */
28
+ * A Future is a {@link Promise} which resolves to a {@link StructuredDataDocument | StructuredDocument}
29
+ * while providing the ability to {@link Future.abort | abort} the underlying request, and
30
+ * {@link Future.getStream | access the response stream} before the outer promise resolves;
31
+ *
32
+ * @public
33
+ */
33
34
  export interface Future<T> extends Promise<StructuredDataDocument<T>> {
34
- [IS_FUTURE]: true;
35
- /**
36
- * Cancel this request by firing the {@link AbortController}'s signal.
37
- *
38
- * @privateRemarks
39
- * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AbortController/abort)
40
- *
41
- * @param reason optional reason for aborting the request
42
- * @public
43
- */
44
- abort(reason?: string): void;
45
- /**
46
- * Get the response stream, if any, once made available.
47
- *
48
- * @public
49
- * @return {Promise<ReadableStream | null>}
50
- */
51
- getStream(): Promise<ReadableStream | null>;
52
- /**
53
- * Run a callback when this request completes. Use sparingly,
54
- * mostly useful for instrumentation and infrastructure.
55
- *
56
- * @param cb the callback to run
57
- * @public
58
- * @return {void}
59
- */
60
- onFinalize(cb: () => void): void;
61
- /**
62
- * The identifier of the associated request, if any, as
63
- * assigned by the CacheHandler.
64
- *
65
- * @property lid
66
- * @type {StableDocumentIdentifier | null}
67
- * @public
68
- */
69
- lid: StableDocumentIdentifier | null;
70
- /**
71
- * The id of the associated request, if any, as assigned
72
- * by the RequestManager
73
- *
74
- * @property id
75
- * @type {Number}
76
- * @public
77
- */
78
- id: number;
35
+ [IS_FUTURE]: true;
36
+ /**
37
+ * Cancel this request by firing the {@link AbortController}'s signal.
38
+ *
39
+ * @privateRemarks
40
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AbortController/abort)
41
+ *
42
+ * @param reason optional reason for aborting the request
43
+ * @public
44
+ */
45
+ abort(reason?: string): void;
46
+ /**
47
+ * Get the response stream, if any, once made available.
48
+ *
49
+ * @public
50
+ * @return {Promise<ReadableStream | null>}
51
+ */
52
+ getStream(): Promise<ReadableStream | null>;
53
+ /**
54
+ * Run a callback when this request completes. Use sparingly,
55
+ * mostly useful for instrumentation and infrastructure.
56
+ *
57
+ * @param cb the callback to run
58
+ * @public
59
+ * @return {void}
60
+ */
61
+ onFinalize(cb: () => void): void;
62
+ /**
63
+ * The identifier of the associated request, if any, as
64
+ * assigned by the CacheHandler.
65
+ *
66
+ * @property lid
67
+ * @type {StableDocumentIdentifier | null}
68
+ * @public
69
+ */
70
+ lid: StableDocumentIdentifier | null;
71
+ /**
72
+ * The id of the associated request, if any, as assigned
73
+ * by the RequestManager
74
+ *
75
+ * @property id
76
+ * @type {Number}
77
+ * @public
78
+ */
79
+ id: number;
79
80
  }
80
81
  export type DeferredFuture<T> = {
81
- resolve(v: StructuredDataDocument<T>): void;
82
- reject(v: unknown): void;
83
- promise: Future<T>;
82
+ resolve(v: StructuredDataDocument<T>): void;
83
+ reject(v: unknown): void;
84
+ promise: Future<T>;
84
85
  };
85
86
  export type NextFn<P = unknown> = (req: RequestInfo) => Future<P>;
86
87
  /**
87
- * Requests are fulfilled by handlers. A handler receives the request context
88
+ * Requests are fulfilled by handlers. A handler receives the request context
88
89
  as well as a `next` function with which to pass along a request to the next
89
90
  handler if it so chooses.
90
91
 
@@ -98,7 +99,7 @@ that it can then compose how it sees fit with its own response.
98
99
  type NextFn<P> = (req: RequestInfo) => Future<P>;
99
100
 
100
101
  interface Handler {
101
- async request<T>(context: RequestContext, next: NextFn<P>): T;
102
+ async request<T>(context: RequestContext, next: NextFn<P>): T;
102
103
  }
103
104
  ```
104
105
 
@@ -106,10 +107,10 @@ interface Handler {
106
107
 
107
108
  ```ts
108
109
  interface RequestContext<T> {
109
- readonly request: RequestInfo;
110
+ readonly request: RequestInfo;
110
111
 
111
- setStream(stream: ReadableStream | Promise<ReadableStream>): void;
112
- setResponse(response: Response | ResponseInfo): void;
112
+ setStream(stream: ReadableStream | Promise<ReadableStream>): void;
113
+ setResponse(response: Response | ResponseInfo): void;
113
114
  }
114
115
  ```
115
116
 
@@ -122,13 +123,13 @@ response content before passing along the chunk downstream.
122
123
 
123
124
  ```ts
124
125
  const FetchHandler = {
125
- async request(context) {
126
- const response = await fetch(context.request);
127
- context.setResponse(reponse);
128
- context.setStream(response.clone().body);
126
+ async request(context) {
127
+ const response = await fetch(context.request);
128
+ context.setResponse(reponse);
129
+ context.setStream(response.clone().body);
129
130
 
130
- return response.json();
131
- }
131
+ return response.json();
132
+ }
132
133
  }
133
134
  ```
134
135
 
@@ -139,13 +140,13 @@ const FetchHandler = {
139
140
  For context, it helps to understand a few of the use-cases that RequestManager
140
141
  is intended to allow.
141
142
 
142
- - to manage and return streaming content (such as video files)
143
- - to fulfill a request from multiple sources or by splitting one request into multiple requests
144
- - for instance one API call for a user and another for the user's friends
145
- - or e.g. fulfilling part of the request from one source (one API, in-memory, localStorage, IndexedDB etc.) and the rest from another source (a different API, a WebWorker, etc.)
146
- - to coalesce multiple requests
147
- - to decorate a request with additional info
148
- - e.g. an Auth handler that ensures the correct tokens or headers or cookies are attached.
143
+ - to manage and return streaming content (such as video files)
144
+ - to fulfill a request from multiple sources or by splitting one request into multiple requests
145
+ - for instance one API call for a user and another for the user's friends
146
+ - or e.g. fulfilling part of the request from one source (one API, in-memory, localStorage, IndexedDB etc.) and the rest from another source (a different API, a WebWorker, etc.)
147
+ - to coalesce multiple requests
148
+ - to decorate a request with additional info
149
+ - e.g. an Auth handler that ensures the correct tokens or headers or cookies are attached.
149
150
 
150
151
  ----
151
152
 
@@ -185,52 +186,51 @@ Request handlers are registered by configuring the manager via `use`
185
186
 
186
187
  ```ts
187
188
  const manager = new RequestManager()
188
- .use([Handler1, Handler2]);
189
+ .use([Handler1, Handler2]);
189
190
  ```
190
191
 
191
192
  Handlers will be invoked in the order they are registered ("fifo", first-in first-out), and may only be registered up until the first request is made. It is recommended but not required to register all handlers at one time in order to ensure explicitly visible handler ordering.
192
193
 
193
194
 
194
- @class (Interface) Handler
195
- @public
195
+ @class (Interface) Handler
196
+ @public
196
197
  */
197
198
  export interface Handler {
198
- /**
199
- * Method to implement to handle requests. Receives the request
200
- * context and a nextFn to call to pass-along the request to
201
- * other handlers.
202
- *
203
- * @public
204
- * @param context
205
- * @param next
206
- */
207
- request<T = unknown>(context: RequestContext, next: NextFn<T>): Promise<T | StructuredDataDocument<T>> | Future<T>;
199
+ /**
200
+ * Method to implement to handle requests. Receives the request
201
+ * context and a nextFn to call to pass-along the request to
202
+ * other handlers.
203
+ *
204
+ * @public
205
+ * @param context
206
+ * @param next
207
+ */
208
+ request<T = unknown>(context: RequestContext, next: NextFn<T>): Promise<T | StructuredDataDocument<T>> | Future<T>;
208
209
  }
209
210
  /**
210
- * The CacheHandler is identical to other handlers ecxept that it
211
- * is allowed to return a value synchronously. This is useful for
212
- * features like reducing microtask queueing when de-duping.
213
- *
214
- * A RequestManager may only have one CacheHandler, registered via
215
- * `manager.useCache(CacheHandler)`.
216
- *
217
- * @class (Interface) CacheHandler
218
- * @public
219
- */
211
+ * The CacheHandler is identical to other handlers ecxept that it
212
+ * is allowed to return a value synchronously. This is useful for
213
+ * features like reducing microtask queueing when de-duping.
214
+ *
215
+ * A RequestManager may only have one CacheHandler, registered via
216
+ * `manager.useCache(CacheHandler)`.
217
+ *
218
+ * @class (Interface) CacheHandler
219
+ * @public
220
+ */
220
221
  export interface CacheHandler {
221
- /**
222
- * Method to implement to handle requests. Receives the request
223
- * context and a nextFn to call to pass-along the request to
224
- * other handlers.
225
- *
226
- * @public
227
- * @param context
228
- * @param next
229
- */
230
- request<T = unknown>(context: RequestContext, next: NextFn<T>): Promise<T | StructuredDataDocument<T>> | Future<T> | T;
222
+ /**
223
+ * Method to implement to handle requests. Receives the request
224
+ * context and a nextFn to call to pass-along the request to
225
+ * other handlers.
226
+ *
227
+ * @public
228
+ * @param context
229
+ * @param next
230
+ */
231
+ request<T = unknown>(context: RequestContext, next: NextFn<T>): Promise<T | StructuredDataDocument<T>> | Future<T> | T;
231
232
  }
232
233
  export interface RequestResponse<T> {
233
- result: T;
234
+ result: T;
234
235
  }
235
236
  export type GenericCreateArgs = Record<string | symbol, unknown>;
236
- //# sourceMappingURL=types.d.ts.map
@@ -1,16 +1,15 @@
1
- import type { RequestInfo, StructuredDataDocument } from '../../types/request';
2
- import { ContextOwner } from './context';
3
- import type { DeferredFuture, Future, GodContext, Handler } from './types';
1
+ import type { RequestInfo, StructuredDataDocument } from "../../types/request.js";
2
+ import { ContextOwner } from "./context.js";
3
+ import type { DeferredFuture, Future, GodContext, Handler } from "./types.js";
4
4
  export declare const IS_CACHE_HANDLER: "___(unique) Symbol(IS_CACHE_HANDLER)";
5
5
  export declare function curryFuture<T>(owner: ContextOwner, inbound: Future<T>, outbound: DeferredFuture<T>): Future<T>;
6
6
  export interface HttpErrorProps extends DOMException {
7
- code: number;
8
- name: string;
9
- status: number;
10
- statusText: string;
11
- isRequestError: boolean;
7
+ code: number;
8
+ name: string;
9
+ status: number;
10
+ statusText: string;
11
+ isRequestError: boolean;
12
12
  }
13
13
  export declare function enhanceReason(reason?: string): DOMException;
14
14
  export declare function handleOutcome<T>(owner: ContextOwner, inbound: Promise<T | StructuredDataDocument<T>>, outbound: DeferredFuture<T>): Future<T>;
15
15
  export declare function executeNextHandler<T>(wares: Readonly<Handler[]>, request: RequestInfo, i: number, god: GodContext): Future<T>;
16
- //# sourceMappingURL=utils.d.ts.map
@@ -1,6 +1,5 @@
1
- export { createDeferred } from './request/-private/future.ts';
2
- export type { Future, Handler, CacheHandler, NextFn, Deferred, ManagedRequestPriority, } from './request/-private/types.ts';
3
- export { setPromiseResult, getPromiseResult } from './request/-private/promise-cache.ts';
4
- export type { Awaitable } from './request/-private/promise-cache.ts';
5
- export type { Context } from './request/-private/context.ts';
6
- //# sourceMappingURL=request.d.ts.map
1
+ export { createDeferred } from "./request/-private/future.js";
2
+ export type { Future, Handler, CacheHandler, NextFn, Deferred, ManagedRequestPriority } from "./request/-private/types.js";
3
+ export { setPromiseResult, getPromiseResult } from "./request/-private/promise-cache.js";
4
+ export type { Awaitable } from "./request/-private/promise-cache.js";
5
+ export type { Context } from "./request/-private/context.js";
@@ -1,57 +1,62 @@
1
- import type { CacheHandler as CacheHandlerType } from '../../../request.ts';
2
- import type { ImmutableRequestInfo, RequestContext } from '../../../types/request.ts';
3
- import type { ResourceIdentifierObject } from '../../../types/spec/json-api-raw.ts';
4
- import type { RequestSignature } from '../../../types/symbols.ts';
5
- import type { Store } from '../store-service.ts';
6
- export type LooseStoreRequestInfo<RT = unknown, T = unknown> = Omit<ImmutableRequestInfo<RT, T>, 'records' | 'headers' | typeof RequestSignature> & {
7
- records?: ResourceIdentifierObject[];
8
- headers?: Headers;
1
+ import type { CacheHandler as CacheHandlerType } from "../../../request.js";
2
+ import type { ImmutableRequestInfo, RequestContext } from "../../../types/request.js";
3
+ import type { ResourceIdentifierObject } from "../../../types/spec/json-api-raw.js";
4
+ import type { RequestSignature } from "../../../types/symbols.js";
5
+ import type { Store } from "../store-service.js";
6
+ export type LooseStoreRequestInfo<
7
+ RT = unknown,
8
+ T = unknown
9
+ > = Omit<ImmutableRequestInfo<RT, T>, "records" | "headers" | typeof RequestSignature> & {
10
+ records?: ResourceIdentifierObject[];
11
+ headers?: Headers;
9
12
  };
10
- export type StoreRequestInput<RT = unknown, T = unknown> = ImmutableRequestInfo<RT, T> | LooseStoreRequestInfo<RT, T>;
13
+ export type StoreRequestInput<
14
+ RT = unknown,
15
+ T = unknown
16
+ > = ImmutableRequestInfo<RT, T> | LooseStoreRequestInfo<RT, T>;
11
17
  export interface StoreRequestContext extends RequestContext {
12
- request: ImmutableRequestInfo & {
13
- store: Store;
14
- };
18
+ request: ImmutableRequestInfo & {
19
+ store: Store;
20
+ };
15
21
  }
16
22
  /**
17
- * A CacheHandler that adds support for using an WarpDrive Cache with a RequestManager.
18
- *
19
- * This handler will only run when a request has supplied a `store` instance. Requests
20
- * issued by the store via `store.request()` will automatically have the `store` instance
21
- * attached to the request.
22
- *
23
- * ```ts
24
- * requestManager.request({
25
- * store: store,
26
- * url: '/api/posts',
27
- * method: 'GET'
28
- * });
29
- * ```
30
- *
31
- * When this handler elects to handle a request, it will return the raw `StructuredDocument`
32
- * unless the request has `[EnableHydration]` set to `true`. In this case, the handler will
33
- * return a `Document` instance that will automatically update the UI when the cache is updated
34
- * in the future and will hydrate any identifiers in the StructuredDocument into Record instances.
35
- *
36
- * When issuing a request via the store, [EnableHydration] is automatically set to `true`. This
37
- * means that if desired you can issue requests that utilize the cache without needing to also
38
- * utilize Record instances if desired.
39
- *
40
- * Said differently, you could elect to issue all requests via a RequestManager, without ever using
41
- * the store directly, by setting [EnableHydration] to `true` and providing a store instance. Not
42
- * necessarily the most useful thing, but the decoupled nature of the RequestManager and incremental-feature
43
- * approach of WarpDrive allows for this flexibility.
44
- *
45
- * ```ts
46
- * import { EnableHydration } from '@warp-drive/core/types/request';
47
- *
48
- * requestManager.request({
49
- * store: store,
50
- * url: '/api/posts',
51
- * method: 'GET',
52
- * [EnableHydration]: true
53
- * });
54
- *
55
- */
23
+ * A CacheHandler that adds support for using an WarpDrive Cache with a RequestManager.
24
+ *
25
+ * This handler will only run when a request has supplied a `store` instance. Requests
26
+ * issued by the store via `store.request()` will automatically have the `store` instance
27
+ * attached to the request.
28
+ *
29
+ * ```ts
30
+ * requestManager.request({
31
+ * store: store,
32
+ * url: '/api/posts',
33
+ * method: 'GET'
34
+ * });
35
+ * ```
36
+ *
37
+ * When this handler elects to handle a request, it will return the raw `StructuredDocument`
38
+ * unless the request has `[EnableHydration]` set to `true`. In this case, the handler will
39
+ * return a `Document` instance that will automatically update the UI when the cache is updated
40
+ * in the future and will hydrate any identifiers in the StructuredDocument into Record instances.
41
+ *
42
+ * When issuing a request via the store, [EnableHydration] is automatically set to `true`. This
43
+ * means that if desired you can issue requests that utilize the cache without needing to also
44
+ * utilize Record instances if desired.
45
+ *
46
+ * Said differently, you could elect to issue all requests via a RequestManager, without ever using
47
+ * the store directly, by setting [EnableHydration] to `true` and providing a store instance. Not
48
+ * necessarily the most useful thing, but the decoupled nature of the RequestManager and incremental-feature
49
+ * approach of WarpDrive allows for this flexibility.
50
+ *
51
+ * ```ts
52
+ * import { EnableHydration } from '@warp-drive/core/types/request';
53
+ *
54
+ * requestManager.request({
55
+ * store: store,
56
+ * url: '/api/posts',
57
+ * method: 'GET',
58
+ * [EnableHydration]: true
59
+ * });
60
+ *
61
+ */
56
62
  export declare const CacheHandler: CacheHandlerType;
57
- //# sourceMappingURL=handler.d.ts.map