@warp-drive/core 5.6.0-alpha.15 → 5.6.0-alpha.18

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 (286) 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 +2 -3
  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 -59
  36. package/declarations/reactive/-private/schema.d.ts +242 -224
  37. package/declarations/reactive/-private/symbols.d.ts +26 -1
  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 +154 -155
  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 +253 -223
  71. package/declarations/store/-private/record-arrays/identifier-array.d.ts +125 -121
  72. package/declarations/store/-private/record-arrays/many-array.d.ts +180 -184
  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 -28
  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 -343
  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 -1713
  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/graph/-private.js +1 -1
  113. package/dist/{handler-D1C3Innj.js → handler-C2T-IyJK.js} +1 -1
  114. package/dist/index.js +2 -2
  115. package/dist/reactive/-private.js +1 -1
  116. package/dist/reactive.js +42 -73
  117. package/dist/{request-state-CCOJIj5i.js → request-state-CjLph1LP.js} +275 -261
  118. package/dist/store/-private.js +2 -2
  119. package/dist/{symbols-epHW0Vm9.js → symbols-SIstXMLI.js} +1 -1
  120. package/dist/types/-private.js +1 -1
  121. package/package.json +4 -4
  122. package/declarations/build-config/babel-macros.d.ts.map +0 -1
  123. package/declarations/build-config/canary-features.d.ts.map +0 -1
  124. package/declarations/build-config/debugging.d.ts.map +0 -1
  125. package/declarations/build-config/deprecations.d.ts.map +0 -1
  126. package/declarations/build-config/env.d.ts.map +0 -1
  127. package/declarations/build-config/macros.d.ts.map +0 -1
  128. package/declarations/build-config.d.ts.map +0 -1
  129. package/declarations/configure.d.ts.map +0 -1
  130. package/declarations/graph/-private/-diff.d.ts.map +0 -1
  131. package/declarations/graph/-private/-edge-definition.d.ts.map +0 -1
  132. package/declarations/graph/-private/-state.d.ts.map +0 -1
  133. package/declarations/graph/-private/-utils.d.ts.map +0 -1
  134. package/declarations/graph/-private/coerce-id.d.ts.map +0 -1
  135. package/declarations/graph/-private/debug/assert-polymorphic-type.d.ts.map +0 -1
  136. package/declarations/graph/-private/edges/collection.d.ts.map +0 -1
  137. package/declarations/graph/-private/edges/implicit.d.ts.map +0 -1
  138. package/declarations/graph/-private/edges/resource.d.ts.map +0 -1
  139. package/declarations/graph/-private/graph.d.ts.map +0 -1
  140. package/declarations/graph/-private/normalize-link.d.ts.map +0 -1
  141. package/declarations/graph/-private/operations/add-to-related-records.d.ts.map +0 -1
  142. package/declarations/graph/-private/operations/merge-identifier.d.ts.map +0 -1
  143. package/declarations/graph/-private/operations/remove-from-related-records.d.ts.map +0 -1
  144. package/declarations/graph/-private/operations/replace-related-record.d.ts.map +0 -1
  145. package/declarations/graph/-private/operations/replace-related-records.d.ts.map +0 -1
  146. package/declarations/graph/-private/operations/update-relationship.d.ts.map +0 -1
  147. package/declarations/graph/-private.d.ts.map +0 -1
  148. package/declarations/index.d.ts.map +0 -1
  149. package/declarations/reactive/-private/document.d.ts.map +0 -1
  150. package/declarations/reactive/-private/fields/compute.d.ts.map +0 -1
  151. package/declarations/reactive/-private/fields/extension.d.ts.map +0 -1
  152. package/declarations/reactive/-private/fields/managed-array.d.ts.map +0 -1
  153. package/declarations/reactive/-private/fields/managed-object.d.ts.map +0 -1
  154. package/declarations/reactive/-private/fields/many-array-manager.d.ts.map +0 -1
  155. package/declarations/reactive/-private/hooks.d.ts.map +0 -1
  156. package/declarations/reactive/-private/record.d.ts.map +0 -1
  157. package/declarations/reactive/-private/schema.d.ts.map +0 -1
  158. package/declarations/reactive/-private/symbols.d.ts.map +0 -1
  159. package/declarations/reactive/-private.d.ts.map +0 -1
  160. package/declarations/reactive.d.ts.map +0 -1
  161. package/declarations/request/-private/context.d.ts.map +0 -1
  162. package/declarations/request/-private/debug.d.ts.map +0 -1
  163. package/declarations/request/-private/fetch.d.ts.map +0 -1
  164. package/declarations/request/-private/future.d.ts.map +0 -1
  165. package/declarations/request/-private/manager.d.ts.map +0 -1
  166. package/declarations/request/-private/promise-cache.d.ts.map +0 -1
  167. package/declarations/request/-private/types.d.ts.map +0 -1
  168. package/declarations/request/-private/utils.d.ts.map +0 -1
  169. package/declarations/request.d.ts.map +0 -1
  170. package/declarations/store/-private/cache-handler/handler.d.ts.map +0 -1
  171. package/declarations/store/-private/cache-handler/types.d.ts.map +0 -1
  172. package/declarations/store/-private/cache-handler/utils.d.ts.map +0 -1
  173. package/declarations/store/-private/caches/cache-utils.d.ts.map +0 -1
  174. package/declarations/store/-private/caches/identifier-cache.d.ts.map +0 -1
  175. package/declarations/store/-private/caches/instance-cache.d.ts.map +0 -1
  176. package/declarations/store/-private/caches/resource-utils.d.ts.map +0 -1
  177. package/declarations/store/-private/debug/utils.d.ts.map +0 -1
  178. package/declarations/store/-private/default-cache-policy.d.ts.map +0 -1
  179. package/declarations/store/-private/legacy-model-support/record-reference.d.ts.map +0 -1
  180. package/declarations/store/-private/legacy-model-support/shim-model-class.d.ts.map +0 -1
  181. package/declarations/store/-private/managers/cache-capabilities-manager.d.ts.map +0 -1
  182. package/declarations/store/-private/managers/cache-manager.d.ts.map +0 -1
  183. package/declarations/store/-private/managers/notification-manager.d.ts.map +0 -1
  184. package/declarations/store/-private/managers/record-array-manager.d.ts.map +0 -1
  185. package/declarations/store/-private/network/request-cache.d.ts.map +0 -1
  186. package/declarations/store/-private/new-core-tmp/promise-state.d.ts.map +0 -1
  187. package/declarations/store/-private/new-core-tmp/reactivity/configure.d.ts.map +0 -1
  188. package/declarations/store/-private/new-core-tmp/reactivity/internal.d.ts.map +0 -1
  189. package/declarations/store/-private/new-core-tmp/reactivity/signal.d.ts.map +0 -1
  190. package/declarations/store/-private/new-core-tmp/request-state.d.ts.map +0 -1
  191. package/declarations/store/-private/new-core-tmp/request-subscription.d.ts.map +0 -1
  192. package/declarations/store/-private/record-arrays/identifier-array.d.ts.map +0 -1
  193. package/declarations/store/-private/record-arrays/many-array.d.ts.map +0 -1
  194. package/declarations/store/-private/record-arrays/native-proxy-type-fix.d.ts.map +0 -1
  195. package/declarations/store/-private/store-service.d.ts.map +0 -1
  196. package/declarations/store/-private/store-service.type-test.d.ts +0 -2
  197. package/declarations/store/-private/store-service.type-test.d.ts.map +0 -1
  198. package/declarations/store/-private/utils/coerce-id.d.ts.map +0 -1
  199. package/declarations/store/-private/utils/construct-resource.d.ts.map +0 -1
  200. package/declarations/store/-private/utils/is-non-empty-string.d.ts.map +0 -1
  201. package/declarations/store/-private/utils/normalize-model-name.d.ts.map +0 -1
  202. package/declarations/store/-private/utils/uuid-polyfill.d.ts.map +0 -1
  203. package/declarations/store/-private.d.ts.map +0 -1
  204. package/declarations/store/-types/q/cache-capabilities-manager.d.ts.map +0 -1
  205. package/declarations/store/-types/q/ds-model.d.ts.map +0 -1
  206. package/declarations/store/-types/q/identifier.d.ts.map +0 -1
  207. package/declarations/store/-types/q/promise-proxies.d.ts +0 -2
  208. package/declarations/store/-types/q/promise-proxies.d.ts.map +0 -1
  209. package/declarations/store/-types/q/record-data-json-api.d.ts +0 -31
  210. package/declarations/store/-types/q/record-data-json-api.d.ts.map +0 -1
  211. package/declarations/store/-types/q/record-instance.d.ts.map +0 -1
  212. package/declarations/store/-types/q/schema-service.d.ts.map +0 -1
  213. package/declarations/store/-types/q/store.d.ts.map +0 -1
  214. package/declarations/store.d.ts.map +0 -1
  215. package/declarations/types/-private.d.ts.map +0 -1
  216. package/declarations/types/cache/aliases.d.ts.map +0 -1
  217. package/declarations/types/cache/change.d.ts.map +0 -1
  218. package/declarations/types/cache/mutations.d.ts.map +0 -1
  219. package/declarations/types/cache/operations.d.ts.map +0 -1
  220. package/declarations/types/cache/relationship.d.ts.map +0 -1
  221. package/declarations/types/cache.d.ts.map +0 -1
  222. package/declarations/types/graph.d.ts.map +0 -1
  223. package/declarations/types/identifier.d.ts.map +0 -1
  224. package/declarations/types/json/raw.d.ts.map +0 -1
  225. package/declarations/types/params.d.ts.map +0 -1
  226. package/declarations/types/record.d.ts.map +0 -1
  227. package/declarations/types/record.type-test.d.ts +0 -2
  228. package/declarations/types/record.type-test.d.ts.map +0 -1
  229. package/declarations/types/request.d.ts.map +0 -1
  230. package/declarations/types/request.type-test.d.ts +0 -2
  231. package/declarations/types/request.type-test.d.ts.map +0 -1
  232. package/declarations/types/runtime.d.ts.map +0 -1
  233. package/declarations/types/schema/concepts.d.ts.map +0 -1
  234. package/declarations/types/schema/fields.d.ts.map +0 -1
  235. package/declarations/types/schema/fields.type-test.d.ts.map +0 -1
  236. package/declarations/types/spec/document.d.ts.map +0 -1
  237. package/declarations/types/spec/error.d.ts.map +0 -1
  238. package/declarations/types/spec/json-api-raw.d.ts.map +0 -1
  239. package/declarations/types/symbols.d.ts.map +0 -1
  240. package/declarations/types/utils.d.ts.map +0 -1
  241. package/declarations/types.d.ts.map +0 -1
  242. package/declarations/utils/string.d.ts.map +0 -1
  243. package/dist/build-config/babel-macros.js.map +0 -1
  244. package/dist/build-config/canary-features.js.map +0 -1
  245. package/dist/build-config/debugging.js.map +0 -1
  246. package/dist/build-config/deprecations.js.map +0 -1
  247. package/dist/build-config/env.js.map +0 -1
  248. package/dist/build-config/macros.js.map +0 -1
  249. package/dist/build-config.js.map +0 -1
  250. package/dist/configure-B48bFHOl.js.map +0 -1
  251. package/dist/configure.js.map +0 -1
  252. package/dist/context-COmAnXUQ.js.map +0 -1
  253. package/dist/graph/-private.js.map +0 -1
  254. package/dist/handler-D1C3Innj.js.map +0 -1
  255. package/dist/index.js.map +0 -1
  256. package/dist/reactive/-private.js.map +0 -1
  257. package/dist/reactive.js.map +0 -1
  258. package/dist/request-state-CCOJIj5i.js.map +0 -1
  259. package/dist/request.js.map +0 -1
  260. package/dist/store/-private.js.map +0 -1
  261. package/dist/store.js.map +0 -1
  262. package/dist/symbols-epHW0Vm9.js.map +0 -1
  263. package/dist/types/-private.js.map +0 -1
  264. package/dist/types/cache/aliases.js.map +0 -1
  265. package/dist/types/cache/change.js.map +0 -1
  266. package/dist/types/cache/mutations.js.map +0 -1
  267. package/dist/types/cache/operations.js.map +0 -1
  268. package/dist/types/cache/relationship.js.map +0 -1
  269. package/dist/types/cache.js.map +0 -1
  270. package/dist/types/graph.js.map +0 -1
  271. package/dist/types/identifier.js.map +0 -1
  272. package/dist/types/json/raw.js.map +0 -1
  273. package/dist/types/params.js.map +0 -1
  274. package/dist/types/record.js.map +0 -1
  275. package/dist/types/request.js.map +0 -1
  276. package/dist/types/runtime.js.map +0 -1
  277. package/dist/types/schema/concepts.js.map +0 -1
  278. package/dist/types/schema/fields.js.map +0 -1
  279. package/dist/types/schema/fields.type-test.js.map +0 -1
  280. package/dist/types/spec/document.js.map +0 -1
  281. package/dist/types/spec/error.js.map +0 -1
  282. package/dist/types/spec/json-api-raw.js.map +0 -1
  283. package/dist/types/symbols.js.map +0 -1
  284. package/dist/types/utils.js.map +0 -1
  285. package/dist/types.js.map +0 -1
  286. package/dist/utils/string.js.map +0 -1
@@ -1,99 +1,98 @@
1
- import type { StableDocumentIdentifier } from '../../../types/identifier.ts';
2
- import type { ImmutableRequestInfo, ResponseInfo } from '../../../types/request.ts';
3
- import type { Store } from '../store-service';
1
+ import type { StableDocumentIdentifier } from "../../../types/identifier.js";
2
+ import type { ImmutableRequestInfo, ResponseInfo } from "../../../types/request.js";
3
+ import type { Store } from "../store-service.js";
4
4
  /**
5
- * A service which an application may provide to the store via
6
- * the store's `lifetimes` property to configure the behavior
7
- * of the CacheHandler.
8
- *
9
- * The default behavior for request lifetimes is to never expire
10
- * unless manually refreshed via `cacheOptions.reload` or `cacheOptions.backgroundReload`.
11
- *
12
- * Implementing this service allows you to programatically define
13
- * when a request should be considered expired.
14
- *
15
- * @class (Interface) CachePolicy
16
- * @public
17
- */
5
+ * A service which an application may provide to the store via
6
+ * the store's `lifetimes` property to configure the behavior
7
+ * of the CacheHandler.
8
+ *
9
+ * The default behavior for request lifetimes is to never expire
10
+ * unless manually refreshed via `cacheOptions.reload` or `cacheOptions.backgroundReload`.
11
+ *
12
+ * Implementing this service allows you to programatically define
13
+ * when a request should be considered expired.
14
+ *
15
+ * @class (Interface) CachePolicy
16
+ * @public
17
+ */
18
18
  export interface CachePolicy {
19
- /**
20
- * Invoked to determine if the request may be fulfilled from cache
21
- * if possible.
22
- *
23
- * Note, this is only invoked if the request has a cache-key.
24
- *
25
- * If no cache entry is found or the entry is hard expired,
26
- * the request will be fulfilled from the configured request handlers
27
- * and the cache will be updated before returning the response.
28
- *
29
- * @public
30
- * @param {StableDocumentIdentifier} identifier
31
- * @param {Store} store
32
- * @return {Boolean} true if the request is considered hard expired
33
- */
34
- isHardExpired(identifier: StableDocumentIdentifier, store: Store): boolean;
35
- /**
36
- * Invoked if `isHardExpired` is false to determine if the request
37
- * should be update behind the scenes if cache data is already available.
38
- *
39
- * Note, this is only invoked if the request has a cache-key.
40
- *
41
- * If true, the request will be fulfilled from cache while a backgrounded
42
- * request is made to update the cache via the configured request handlers.
43
- *
44
- * @public
45
- * @param {StableDocumentIdentifier} identifier
46
- * @param {Store} store
47
- * @return {Boolean} true if the request is considered soft expired
48
- */
49
- isSoftExpired(identifier: StableDocumentIdentifier, store: Store): boolean;
50
- /**
51
- * Invoked when a request will be sent to the configured request handlers.
52
- * This is invoked for both foreground and background requests.
53
- *
54
- * Note, this is invoked regardless of whether the request has a cache-key.
55
- *
56
- * @public
57
- * @param {ImmutableRequestInfo} request
58
- * @param {StableDocumentIdentifier | null} identifier
59
- * @param {Store} store
60
- * @return {void}
61
- */
62
- willRequest?(request: ImmutableRequestInfo, identifier: StableDocumentIdentifier | null, store: Store): void;
63
- /**
64
- * Invoked when a request has been fulfilled from the configured request handlers.
65
- * This is invoked for both foreground and background requests once the cache has
66
- * been updated.
67
- *
68
- * Note, this is invoked regardless of whether the request has a cache-key.
69
- *
70
- * It is best practice to notify the store of any requests marked as invalidated
71
- * so that request subscriptions can reload when needed.
72
- *
73
- * ```ts
74
- * store.notifications.notify(identifier, 'invalidated');
75
- * ```
76
- *
77
- * This allows anything subscribed to the request to be notified of the change
78
- *
79
- * e.g.
80
- *
81
- * ```ts
82
- * store.notifications.subscribe(identifier, (_, type) => {
83
- * if (type === 'invalidated') {
84
- * // do update
85
- * }
86
- * });
87
- * ```
88
- *
89
- *
90
- * @public
91
- * @param {ImmutableRequestInfo} request
92
- * @param {ImmutableResponse} response
93
- * @param {StableDocumentIdentifier | null} identifier
94
- * @param {Store} store
95
- * @return {void}
96
- */
97
- didRequest?(request: ImmutableRequestInfo, response: Response | ResponseInfo | null, identifier: StableDocumentIdentifier | null, store: Store): void;
19
+ /**
20
+ * Invoked to determine if the request may be fulfilled from cache
21
+ * if possible.
22
+ *
23
+ * Note, this is only invoked if the request has a cache-key.
24
+ *
25
+ * If no cache entry is found or the entry is hard expired,
26
+ * the request will be fulfilled from the configured request handlers
27
+ * and the cache will be updated before returning the response.
28
+ *
29
+ * @public
30
+ * @param {StableDocumentIdentifier} identifier
31
+ * @param {Store} store
32
+ * @return {Boolean} true if the request is considered hard expired
33
+ */
34
+ isHardExpired(identifier: StableDocumentIdentifier, store: Store): boolean;
35
+ /**
36
+ * Invoked if `isHardExpired` is false to determine if the request
37
+ * should be update behind the scenes if cache data is already available.
38
+ *
39
+ * Note, this is only invoked if the request has a cache-key.
40
+ *
41
+ * If true, the request will be fulfilled from cache while a backgrounded
42
+ * request is made to update the cache via the configured request handlers.
43
+ *
44
+ * @public
45
+ * @param {StableDocumentIdentifier} identifier
46
+ * @param {Store} store
47
+ * @return {Boolean} true if the request is considered soft expired
48
+ */
49
+ isSoftExpired(identifier: StableDocumentIdentifier, store: Store): boolean;
50
+ /**
51
+ * Invoked when a request will be sent to the configured request handlers.
52
+ * This is invoked for both foreground and background requests.
53
+ *
54
+ * Note, this is invoked regardless of whether the request has a cache-key.
55
+ *
56
+ * @public
57
+ * @param {ImmutableRequestInfo} request
58
+ * @param {StableDocumentIdentifier | null} identifier
59
+ * @param {Store} store
60
+ * @return {void}
61
+ */
62
+ willRequest?(request: ImmutableRequestInfo, identifier: StableDocumentIdentifier | null, store: Store): void;
63
+ /**
64
+ * Invoked when a request has been fulfilled from the configured request handlers.
65
+ * This is invoked for both foreground and background requests once the cache has
66
+ * been updated.
67
+ *
68
+ * Note, this is invoked regardless of whether the request has a cache-key.
69
+ *
70
+ * It is best practice to notify the store of any requests marked as invalidated
71
+ * so that request subscriptions can reload when needed.
72
+ *
73
+ * ```ts
74
+ * store.notifications.notify(identifier, 'invalidated');
75
+ * ```
76
+ *
77
+ * This allows anything subscribed to the request to be notified of the change
78
+ *
79
+ * e.g.
80
+ *
81
+ * ```ts
82
+ * store.notifications.subscribe(identifier, (_, type) => {
83
+ * if (type === 'invalidated') {
84
+ * // do update
85
+ * }
86
+ * });
87
+ * ```
88
+ *
89
+ *
90
+ * @public
91
+ * @param {ImmutableRequestInfo} request
92
+ * @param {ImmutableResponse} response
93
+ * @param {StableDocumentIdentifier | null} identifier
94
+ * @param {Store} store
95
+ * @return {void}
96
+ */
97
+ didRequest?(request: ImmutableRequestInfo, response: Response | ResponseInfo | null, identifier: StableDocumentIdentifier | null, store: Store): void;
98
98
  }
99
- //# sourceMappingURL=types.d.ts.map
@@ -1,32 +1,32 @@
1
- import type { StableDocumentIdentifier } from '../../../types/identifier.ts';
2
- import type { ImmutableCreateRequestOptions, ImmutableDeleteRequestOptions, ImmutableRequestInfo, ImmutableUpdateRequestOptions, StructuredDataDocument } from '../../../types/request.ts';
3
- import type { ResourceDataDocument, ResourceErrorDocument } from '../../../types/spec/document.ts';
4
- import type { ApiError } from '../../../types/spec/error.ts';
5
- import type { Store } from '../store-service.ts';
1
+ import type { StableDocumentIdentifier } from "../../../types/identifier.js";
2
+ import type { ImmutableCreateRequestOptions, ImmutableDeleteRequestOptions, ImmutableRequestInfo, ImmutableUpdateRequestOptions, StructuredDataDocument } from "../../../types/request.js";
3
+ import type { ResourceDataDocument, ResourceErrorDocument } from "../../../types/spec/document.js";
4
+ import type { ApiError } from "../../../types/spec/error.js";
5
+ import type { Store } from "../store-service.js";
6
6
  export declare const MUTATION_OPS: Set<string>;
7
7
  export declare function calcShouldFetch(store: Store, request: ImmutableRequestInfo, hasCachedValue: boolean, identifier: StableDocumentIdentifier | null): boolean;
8
8
  export declare function calcShouldBackgroundFetch(store: Store, request: ImmutableRequestInfo, willFetch: boolean, identifier: StableDocumentIdentifier | null): boolean;
9
9
  export declare function isMutation(request: Partial<ImmutableRequestInfo>): request is ImmutableUpdateRequestOptions | ImmutableCreateRequestOptions | ImmutableDeleteRequestOptions;
10
10
  export declare function isCacheAffecting<T>(document: StructuredDataDocument<T>): boolean;
11
11
  export declare function isAggregateError(error: Error & {
12
- errors?: ApiError[];
12
+ errors?: ApiError[];
13
13
  }): error is AggregateError & {
14
- errors: ApiError[];
14
+ errors: ApiError[];
15
15
  };
16
16
  export type RobustError = Error & {
17
- error: string | object;
18
- errors?: ApiError[];
19
- content?: unknown;
17
+ error: string | object;
18
+ errors?: ApiError[];
19
+ content?: unknown;
20
20
  };
21
+ // TODO @runspired, consider if we should deep freeze errors (potentially only in debug) vs cloning them
21
22
  export declare function cloneError(error: RobustError): RobustError;
22
23
  export declare function isErrorDocument(document: ResourceDataDocument | ResourceErrorDocument): document is ResourceErrorDocument;
23
24
  export declare function getPriority(identifier: StableDocumentIdentifier | null, deduped: Map<StableDocumentIdentifier, {
24
- priority: {
25
- blocking: boolean;
26
- };
25
+ priority: {
26
+ blocking: boolean;
27
+ };
27
28
  }>, priority: {
28
- blocking: boolean;
29
+ blocking: boolean;
29
30
  }): {
30
- blocking: boolean;
31
+ blocking: boolean;
31
32
  };
32
- //# sourceMappingURL=utils.d.ts.map
@@ -1,9 +1,12 @@
1
- import type { Cache } from '../../../types/cache.ts';
2
- import type { StableRecordIdentifier } from '../../../types/identifier.ts';
3
- import type { OpaqueRecordInstance } from '../../-types/q/record-instance';
1
+ import type { Cache } from "../../../types/cache.js";
2
+ import type { StableRecordIdentifier } from "../../../types/identifier.js";
3
+ import type { OpaqueRecordInstance } from "../../-types/q/record-instance.js";
4
+ /*
5
+ * Returns the Cache instance associated with a given
6
+ * Model or Identifier
7
+ */
4
8
  export declare const CacheForIdentifierCache: Map<unknown, Cache>;
5
9
  export declare function setCacheFor(identifier: StableRecordIdentifier | OpaqueRecordInstance, cache: Cache): void;
6
10
  export declare function removeRecordDataFor(identifier: StableRecordIdentifier | OpaqueRecordInstance): void;
7
11
  export declare function peekCache(instance: StableRecordIdentifier): Cache | null;
8
12
  export declare function peekCache(instance: OpaqueRecordInstance): Cache;
9
- //# sourceMappingURL=cache-utils.d.ts.map