@warp-drive-mirror/core 5.10.0-alpha.10 → 5.10.0-alpha.13
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.
- package/README.md +116 -6
- package/dist/{-private-CjK1Dmuh.js → -private-BpyvBYFj.js} +508 -144
- package/dist/-private-BpyvBYFj.js.map +1 -0
- package/dist/{unpkg/dev/-private-Dtj8O5W7.js → -private-CmNOwhK0.js} +3 -1
- package/dist/{-private-Dtj8O5W7.js.map → -private-CmNOwhK0.js.map} +1 -1
- package/dist/{aliases-BWYW5EhX.d.ts → aliases-BQmAxXmb.d.ts} +4 -1
- package/dist/aliases-BQmAxXmb.d.ts.map +1 -0
- package/dist/{change-C7kqv2kW.d.ts → change-DClXcHvr.d.ts} +4 -2
- package/dist/change-DClXcHvr.d.ts.map +1 -0
- package/dist/{concepts-DFldVwEM.d.ts → concepts-DzuY5M1K.d.ts} +14 -5
- package/dist/concepts-DzuY5M1K.d.ts.map +1 -0
- package/dist/{configure-B_F639tN.d.ts → configure-CjsojjiI.d.ts} +7 -1
- package/dist/configure-CjsojjiI.d.ts.map +1 -0
- package/dist/configure.d.ts +1 -1
- package/dist/configure.js +1 -1
- package/dist/{document-Ca4ZZBd9.d.ts → document-Ni8Ns26t.d.ts} +22 -4
- package/dist/document-Ni8Ns26t.d.ts.map +1 -0
- package/dist/{error-0uD6GkNX.d.ts → error-APuUdUGk.d.ts} +4 -2
- package/dist/error-APuUdUGk.d.ts.map +1 -0
- package/dist/{fields-FM7peCiM.d.ts → fields-D6173Q_a.d.ts} +134 -7
- package/dist/fields-D6173Q_a.d.ts.map +1 -0
- package/dist/graph/-private.d.ts +1 -1
- package/dist/graph/-private.js +2 -0
- package/dist/graph/-private.js.map +1 -1
- package/dist/{graph-DLqYXP2z.d.ts → graph-rjTyJ-gd.d.ts} +25 -5
- package/dist/graph-rjTyJ-gd.d.ts.map +1 -0
- package/dist/{identifier-DQnqOSJK.d.ts → identifier-B_tK3FUw.d.ts} +29 -4
- package/dist/identifier-B_tK3FUw.d.ts.map +1 -0
- package/dist/index.d.ts +1 -1
- package/dist/index.js +1 -1
- package/dist/{internal-9XuWZdDv.d.ts → internal-CgOlgOt3.d.ts} +497 -31
- package/dist/internal-CgOlgOt3.d.ts.map +1 -0
- package/dist/{json-api-raw-C5APJHHB.d.ts → json-api-raw-BxzNsCg0.d.ts} +44 -2
- package/dist/json-api-raw-BxzNsCg0.d.ts.map +1 -0
- package/dist/{mutations-CqtoGB4t.d.ts → mutations-C81gbYjB.d.ts} +18 -2
- package/dist/mutations-C81gbYjB.d.ts.map +1 -0
- package/dist/{operations-D1qA6r0_.d.ts → operations-B4pQM7D6.d.ts} +39 -5
- package/dist/operations-B4pQM7D6.d.ts.map +1 -0
- package/dist/{params-DrEx3bf8.d.ts → params-dbHiSOMF.d.ts} +11 -1
- package/dist/params-dbHiSOMF.d.ts.map +1 -0
- package/dist/{raw-D5hnjiq7.d.ts → raw-CiC64nCY.d.ts} +10 -1
- package/dist/raw-CiC64nCY.d.ts.map +1 -0
- package/dist/reactive/-private.d.ts +1 -1
- package/dist/reactive/-private.js +1 -1
- package/dist/reactive.d.ts +2 -2
- package/dist/reactive.js +3 -3
- package/dist/{record-D3QQcaIR.d.ts → record-DDxPtzcY.d.ts} +22 -2
- package/dist/record-DDxPtzcY.d.ts.map +1 -0
- package/dist/{relationship-CmHzMPKf.d.ts → relationship-BlGIXgj4.d.ts} +10 -3
- package/dist/relationship-BlGIXgj4.d.ts.map +1 -0
- package/dist/{request-Di274pQz.js → request-MiwUbGdT.js} +26 -1
- package/dist/request-MiwUbGdT.js.map +1 -0
- package/dist/request.d.ts +1 -1
- package/dist/request.js +1 -1
- package/dist/signals/-leaked.d.ts +86 -4
- package/dist/signals/-leaked.d.ts.map +1 -1
- package/dist/signals/-leaked.js +1 -1
- package/dist/{src-TlQlgL5V.js → src-DlNeupkA.js} +222 -20
- package/dist/src-DlNeupkA.js.map +1 -0
- package/dist/store/-private.d.ts +1 -1
- package/dist/store/-private.js +1 -1
- package/dist/{store-DNF9Rgoh.js → store-lcyaxrpj.js} +16 -1
- package/dist/store-lcyaxrpj.js.map +1 -0
- package/dist/store.d.ts +1 -1
- package/dist/store.js +1 -1
- package/dist/{symbols-DjRDCeX0.d.ts → symbols-Cu9un1NR.d.ts} +10 -1
- package/dist/symbols-Cu9un1NR.d.ts.map +1 -0
- package/dist/types/-private.js +1 -1
- package/dist/types/cache/aliases.d.ts +1 -1
- package/dist/types/cache/change.d.ts +1 -1
- package/dist/types/cache/mutations.d.ts +1 -1
- package/dist/types/cache/operations.d.ts +1 -1
- package/dist/types/cache/relationship.d.ts +1 -1
- package/dist/types/cache.d.ts +1 -1
- package/dist/types/graph.d.ts +1 -1
- package/dist/types/identifier.d.ts +1 -1
- package/dist/types/identifier.js +33 -3
- package/dist/types/identifier.js.map +1 -1
- package/dist/types/json/raw.d.ts +1 -1
- package/dist/types/params.d.ts +1 -1
- package/dist/types/record.d.ts +1 -1
- package/dist/types/record.js +25 -0
- package/dist/types/record.js.map +1 -1
- package/dist/types/request.d.ts +1 -1
- package/dist/types/request.js +80 -0
- package/dist/types/request.js.map +1 -1
- package/dist/types/runtime.d.ts.map +1 -1
- package/dist/types/schema/concepts.d.ts +1 -1
- package/dist/types/schema/fields.d.ts +1 -1
- package/dist/types/schema/fields.js +132 -3
- package/dist/types/schema/fields.js.map +1 -1
- package/dist/types/schema/schema-service.d.ts +1 -1
- package/dist/types/spec/document.d.ts +1 -1
- package/dist/types/spec/error.d.ts +1 -1
- package/dist/types/spec/json-api-raw.d.ts +1 -1
- package/dist/types/symbols.d.ts +1 -1
- package/dist/types/symbols.js +14 -0
- package/dist/types/symbols.js.map +1 -1
- package/dist/types/utils.d.ts +1 -1
- package/dist/types.d.ts +2 -2
- package/dist/unpkg/{dev-deprecated/-private-DrQgwtNS.js → dev/-private-BH4O810v.js} +508 -144
- package/dist/unpkg/dev/-private-BH4O810v.js.map +1 -0
- package/dist/{-private-Dtj8O5W7.js → unpkg/dev/-private-CmNOwhK0.js} +3 -1
- package/dist/unpkg/dev/{-private-Dtj8O5W7.js.map → -private-CmNOwhK0.js.map} +1 -1
- package/dist/unpkg/dev/configure.js +1 -1
- package/dist/unpkg/dev/graph/-private.js +2 -0
- package/dist/unpkg/dev/graph/-private.js.map +1 -1
- package/dist/unpkg/dev/index.js +1 -1
- package/dist/unpkg/dev/reactive/-private.js +1 -1
- package/dist/unpkg/dev/reactive.js +3 -3
- package/dist/unpkg/{dev-deprecated/request-nAaeDlS9.js → dev/request-Fe-vpe-u.js} +26 -1
- package/dist/unpkg/dev/request-Fe-vpe-u.js.map +1 -0
- package/dist/unpkg/dev/request.js +1 -1
- package/dist/unpkg/dev/signals/-leaked.js +1 -1
- package/dist/unpkg/dev/{src-D8uKAIUN.js → src-FSk0Z_Lp.js} +213 -13
- package/dist/unpkg/dev/src-FSk0Z_Lp.js.map +1 -0
- package/dist/unpkg/dev/store/-private.js +1 -1
- package/dist/unpkg/dev/{store-BIFNM_fB.js → store-BUV8Pfi7.js} +16 -1
- package/dist/unpkg/dev/store-BUV8Pfi7.js.map +1 -0
- package/dist/unpkg/dev/store.js +1 -1
- package/dist/unpkg/dev/types/-private.js +1 -1
- package/dist/unpkg/dev/types/identifier.js +33 -3
- package/dist/unpkg/dev/types/identifier.js.map +1 -1
- package/dist/unpkg/dev/types/record.js +25 -0
- package/dist/unpkg/dev/types/record.js.map +1 -1
- package/dist/unpkg/dev/types/request.js +80 -0
- package/dist/unpkg/dev/types/request.js.map +1 -1
- package/dist/unpkg/dev/types/schema/fields.js +132 -3
- package/dist/unpkg/dev/types/schema/fields.js.map +1 -1
- package/dist/unpkg/dev/types/symbols.js +14 -0
- package/dist/unpkg/dev/types/symbols.js.map +1 -1
- package/dist/unpkg/{dev/-private-DrQgwtNS.js → dev-deprecated/-private-BH4O810v.js} +508 -144
- package/dist/unpkg/dev-deprecated/-private-BH4O810v.js.map +1 -0
- package/dist/unpkg/{prod-deprecated/-private-Dtj8O5W7.js → dev-deprecated/-private-CmNOwhK0.js} +3 -1
- package/dist/unpkg/dev-deprecated/{-private-Dtj8O5W7.js.map → -private-CmNOwhK0.js.map} +1 -1
- package/dist/unpkg/dev-deprecated/configure.js +1 -1
- package/dist/unpkg/dev-deprecated/graph/-private.js +2 -0
- package/dist/unpkg/dev-deprecated/graph/-private.js.map +1 -1
- package/dist/unpkg/dev-deprecated/index.js +1 -1
- package/dist/unpkg/dev-deprecated/reactive/-private.js +1 -1
- package/dist/unpkg/dev-deprecated/reactive.js +3 -3
- package/dist/unpkg/{dev/request-nAaeDlS9.js → dev-deprecated/request-Fe-vpe-u.js} +26 -1
- package/dist/unpkg/dev-deprecated/request-Fe-vpe-u.js.map +1 -0
- package/dist/unpkg/dev-deprecated/request.js +1 -1
- package/dist/unpkg/dev-deprecated/signals/-leaked.js +1 -1
- package/dist/unpkg/dev-deprecated/{src-BlewXGbB.js → src-Isk_Je7q.js} +215 -13
- package/dist/unpkg/dev-deprecated/src-Isk_Je7q.js.map +1 -0
- package/dist/unpkg/dev-deprecated/store/-private.js +1 -1
- package/dist/unpkg/dev-deprecated/{store-X1WN7P_O.js → store-CCZBSe0p.js} +16 -1
- package/dist/unpkg/dev-deprecated/store-CCZBSe0p.js.map +1 -0
- package/dist/unpkg/dev-deprecated/store.js +1 -1
- package/dist/unpkg/dev-deprecated/types/-private.js +1 -1
- package/dist/unpkg/dev-deprecated/types/identifier.js +33 -3
- package/dist/unpkg/dev-deprecated/types/identifier.js.map +1 -1
- package/dist/unpkg/dev-deprecated/types/record.js +25 -0
- package/dist/unpkg/dev-deprecated/types/record.js.map +1 -1
- package/dist/unpkg/dev-deprecated/types/request.js +80 -0
- package/dist/unpkg/dev-deprecated/types/request.js.map +1 -1
- package/dist/unpkg/dev-deprecated/types/schema/fields.js +132 -3
- package/dist/unpkg/dev-deprecated/types/schema/fields.js.map +1 -1
- package/dist/unpkg/dev-deprecated/types/symbols.js +14 -0
- package/dist/unpkg/dev-deprecated/types/symbols.js.map +1 -1
- package/dist/unpkg/prod/-private-CmNOwhK0.js +24 -0
- package/dist/unpkg/prod/{-private-Dtj8O5W7.js.map → -private-CmNOwhK0.js.map} +1 -1
- package/dist/unpkg/prod/{-private-Dg1vsF-H.js → -private-DKVDMUfT.js} +481 -138
- package/dist/unpkg/prod/-private-DKVDMUfT.js.map +1 -0
- package/dist/unpkg/prod/configure.js +1 -1
- package/dist/unpkg/prod/graph/-private.js +2 -0
- package/dist/unpkg/prod/graph/-private.js.map +1 -1
- package/dist/unpkg/prod/index.js +1 -1
- package/dist/unpkg/prod/reactive/-private.js +1 -1
- package/dist/unpkg/prod/reactive.js +3 -3
- package/dist/unpkg/prod/{request-DK7nNaAf.js → request-ndw2Fy91.js} +26 -1
- package/dist/unpkg/prod/request-ndw2Fy91.js.map +1 -0
- package/dist/unpkg/prod/request.js +1 -1
- package/dist/unpkg/prod/signals/-leaked.js +1 -1
- package/dist/unpkg/prod/{src-DGB6WvXW.js → src-CoSpuocQ.js} +213 -13
- package/dist/unpkg/prod/src-CoSpuocQ.js.map +1 -0
- package/dist/unpkg/prod/store/-private.js +1 -1
- package/dist/unpkg/{prod-deprecated/store-BWhmb7Ob.js → prod/store-CQOsqdST.js} +16 -1
- package/dist/unpkg/prod/store-CQOsqdST.js.map +1 -0
- package/dist/unpkg/prod/store.js +1 -1
- package/dist/unpkg/prod/types/-private.js +1 -1
- package/dist/unpkg/prod/types/identifier.js +33 -3
- package/dist/unpkg/prod/types/identifier.js.map +1 -1
- package/dist/unpkg/prod/types/record.js +25 -0
- package/dist/unpkg/prod/types/record.js.map +1 -1
- package/dist/unpkg/prod/types/request.js +80 -0
- package/dist/unpkg/prod/types/request.js.map +1 -1
- package/dist/unpkg/prod/types/schema/fields.js +132 -3
- package/dist/unpkg/prod/types/schema/fields.js.map +1 -1
- package/dist/unpkg/prod/types/symbols.js +14 -0
- package/dist/unpkg/prod/types/symbols.js.map +1 -1
- package/dist/unpkg/{dev-deprecated/-private-Dtj8O5W7.js → prod-deprecated/-private-CmNOwhK0.js} +3 -1
- package/dist/unpkg/prod-deprecated/{-private-Dtj8O5W7.js.map → -private-CmNOwhK0.js.map} +1 -1
- package/dist/unpkg/prod-deprecated/{-private-Dg1vsF-H.js → -private-DKVDMUfT.js} +481 -138
- package/dist/unpkg/prod-deprecated/-private-DKVDMUfT.js.map +1 -0
- package/dist/unpkg/prod-deprecated/configure.js +1 -1
- package/dist/unpkg/prod-deprecated/graph/-private.js +2 -0
- package/dist/unpkg/prod-deprecated/graph/-private.js.map +1 -1
- package/dist/unpkg/prod-deprecated/index.js +1 -1
- package/dist/unpkg/prod-deprecated/reactive/-private.js +1 -1
- package/dist/unpkg/prod-deprecated/reactive.js +3 -3
- package/dist/unpkg/prod-deprecated/{request-DK7nNaAf.js → request-ndw2Fy91.js} +26 -1
- package/dist/unpkg/prod-deprecated/request-ndw2Fy91.js.map +1 -0
- package/dist/unpkg/prod-deprecated/request.js +1 -1
- package/dist/unpkg/prod-deprecated/signals/-leaked.js +1 -1
- package/dist/unpkg/prod-deprecated/{src-B9AnmJPz.js → src-FK_rMde5.js} +215 -13
- package/dist/unpkg/prod-deprecated/src-FK_rMde5.js.map +1 -0
- package/dist/unpkg/prod-deprecated/store/-private.js +1 -1
- package/dist/unpkg/{prod/store-BWhmb7Ob.js → prod-deprecated/store-CQOsqdST.js} +16 -1
- package/dist/unpkg/prod-deprecated/store-CQOsqdST.js.map +1 -0
- package/dist/unpkg/prod-deprecated/store.js +1 -1
- package/dist/unpkg/prod-deprecated/types/-private.js +1 -1
- package/dist/unpkg/prod-deprecated/types/identifier.js +33 -3
- package/dist/unpkg/prod-deprecated/types/identifier.js.map +1 -1
- package/dist/unpkg/prod-deprecated/types/record.js +25 -0
- package/dist/unpkg/prod-deprecated/types/record.js.map +1 -1
- package/dist/unpkg/prod-deprecated/types/request.js +80 -0
- package/dist/unpkg/prod-deprecated/types/request.js.map +1 -1
- package/dist/unpkg/prod-deprecated/types/schema/fields.js +132 -3
- package/dist/unpkg/prod-deprecated/types/schema/fields.js.map +1 -1
- package/dist/unpkg/prod-deprecated/types/symbols.js +14 -0
- package/dist/unpkg/prod-deprecated/types/symbols.js.map +1 -1
- package/dist/{utils-BtURiy8l.d.ts → utils-CNmQoKm8.d.ts} +8 -1
- package/dist/utils-CNmQoKm8.d.ts.map +1 -0
- package/package.json +5 -5
- package/dist/-private-CjK1Dmuh.js.map +0 -1
- package/dist/aliases-BWYW5EhX.d.ts.map +0 -1
- package/dist/change-C7kqv2kW.d.ts.map +0 -1
- package/dist/concepts-DFldVwEM.d.ts.map +0 -1
- package/dist/configure-B_F639tN.d.ts.map +0 -1
- package/dist/document-Ca4ZZBd9.d.ts.map +0 -1
- package/dist/error-0uD6GkNX.d.ts.map +0 -1
- package/dist/fields-FM7peCiM.d.ts.map +0 -1
- package/dist/graph-DLqYXP2z.d.ts.map +0 -1
- package/dist/identifier-DQnqOSJK.d.ts.map +0 -1
- package/dist/internal-9XuWZdDv.d.ts.map +0 -1
- package/dist/json-api-raw-C5APJHHB.d.ts.map +0 -1
- package/dist/mutations-CqtoGB4t.d.ts.map +0 -1
- package/dist/operations-D1qA6r0_.d.ts.map +0 -1
- package/dist/params-DrEx3bf8.d.ts.map +0 -1
- package/dist/raw-D5hnjiq7.d.ts.map +0 -1
- package/dist/record-D3QQcaIR.d.ts.map +0 -1
- package/dist/relationship-CmHzMPKf.d.ts.map +0 -1
- package/dist/request-Di274pQz.js.map +0 -1
- package/dist/src-TlQlgL5V.js.map +0 -1
- package/dist/store-DNF9Rgoh.js.map +0 -1
- package/dist/symbols-DjRDCeX0.d.ts.map +0 -1
- package/dist/types/schema/fields.type-test.d.ts +0 -1
- package/dist/types/schema/fields.type-test.js +0 -79
- package/dist/types/schema/fields.type-test.js.map +0 -1
- package/dist/unpkg/dev/-private-DrQgwtNS.js.map +0 -1
- package/dist/unpkg/dev/request-nAaeDlS9.js.map +0 -1
- package/dist/unpkg/dev/src-D8uKAIUN.js.map +0 -1
- package/dist/unpkg/dev/store-BIFNM_fB.js.map +0 -1
- package/dist/unpkg/dev/types/schema/fields.type-test.js +0 -79
- package/dist/unpkg/dev/types/schema/fields.type-test.js.map +0 -1
- package/dist/unpkg/dev-deprecated/-private-DrQgwtNS.js.map +0 -1
- package/dist/unpkg/dev-deprecated/request-nAaeDlS9.js.map +0 -1
- package/dist/unpkg/dev-deprecated/src-BlewXGbB.js.map +0 -1
- package/dist/unpkg/dev-deprecated/store-X1WN7P_O.js.map +0 -1
- package/dist/unpkg/dev-deprecated/types/schema/fields.type-test.js +0 -79
- package/dist/unpkg/dev-deprecated/types/schema/fields.type-test.js.map +0 -1
- package/dist/unpkg/prod/-private-Dg1vsF-H.js.map +0 -1
- package/dist/unpkg/prod/-private-Dtj8O5W7.js +0 -22
- package/dist/unpkg/prod/request-DK7nNaAf.js.map +0 -1
- package/dist/unpkg/prod/src-DGB6WvXW.js.map +0 -1
- package/dist/unpkg/prod/store-BWhmb7Ob.js.map +0 -1
- package/dist/unpkg/prod/types/schema/fields.type-test.js +0 -79
- package/dist/unpkg/prod/types/schema/fields.type-test.js.map +0 -1
- package/dist/unpkg/prod-deprecated/-private-Dg1vsF-H.js.map +0 -1
- package/dist/unpkg/prod-deprecated/request-DK7nNaAf.js.map +0 -1
- package/dist/unpkg/prod-deprecated/src-B9AnmJPz.js.map +0 -1
- package/dist/unpkg/prod-deprecated/store-BWhmb7Ob.js.map +0 -1
- package/dist/unpkg/prod-deprecated/types/schema/fields.type-test.js +0 -79
- package/dist/unpkg/prod-deprecated/types/schema/fields.type-test.js.map +0 -1
- package/dist/utils-BtURiy8l.d.ts.map +0 -1
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { getOrSetGlobal, peekTransient, peekUniversalTransient, setTransient, setUniversalTransient } from "./types/-private.js";
|
|
2
|
-
import { A as ARRAY_SIGNAL, C as createInternalMemo, D as notifyInternalSignal, O as peekInternalSignal, P as willSyncFlushWatchers, S as consumeInternalSignal, T as getOrCreateInternalSignal, _ as entangleSignal, f as createSignalDescriptor, g as entangleInitiallyStaleSignal, h as defineSignal, j as OBJECT_SIGNAL, k as withSignalStore, p as defineGate, w as createInternalSignal, x as Signals } from "./-private-
|
|
2
|
+
import { A as ARRAY_SIGNAL, C as createInternalMemo, D as notifyInternalSignal, O as peekInternalSignal, P as willSyncFlushWatchers, S as consumeInternalSignal, T as getOrCreateInternalSignal, _ as entangleSignal, f as createSignalDescriptor, g as entangleInitiallyStaleSignal, h as defineSignal, j as OBJECT_SIGNAL, k as withSignalStore, p as defineGate, w as createInternalSignal, x as Signals } from "./-private-DKVDMUfT.js";
|
|
3
3
|
import { EnableHydration, STRUCTURED, SkipCache } from "./types/request.js";
|
|
4
|
-
import { a as upgradePromise, c as executeNextHandler, d as getRequestResult, f as setPromiseResult, l as clearRequestResult, o as DOMError, p as cloneResponseProperties, s as IS_CACHE_HANDLER, t as withBrand } from "./request-
|
|
5
|
-
import { a as SOURCE, i as Destroy, n as Commit, r as Context, t as Checkout } from "./-private-
|
|
4
|
+
import { a as upgradePromise, c as executeNextHandler, d as getRequestResult, f as setPromiseResult, l as clearRequestResult, o as DOMError, p as cloneResponseProperties, s as IS_CACHE_HANDLER, t as withBrand } from "./request-ndw2Fy91.js";
|
|
5
|
+
import { a as SOURCE, i as Destroy, n as Commit, r as Context, t as Checkout } from "./-private-CmNOwhK0.js";
|
|
6
6
|
import { CACHE_OWNER } from "./types/identifier.js";
|
|
7
7
|
import { RecordStore, Type } from "./types/symbols.js";
|
|
8
8
|
import { isResourceSchema } from "./types/schema/fields.js";
|
|
9
|
-
import { t as DefaultCachePolicy } from "./store-
|
|
9
|
+
import { t as DefaultCachePolicy } from "./store-CQOsqdST.js";
|
|
10
10
|
import { setIsMaybeMirage } from "./types/runtime.js";
|
|
11
11
|
|
|
12
12
|
//#region src/reactive/-private/document.ts
|
|
@@ -19,10 +19,15 @@ function urlFromLink(link) {
|
|
|
19
19
|
* returned by `Cache.put` or `Cache.peek`, converting ResourceKeys into
|
|
20
20
|
* ReactiveResource instances.
|
|
21
21
|
*
|
|
22
|
+
* The [Using The Response](/guides/the-manual/requests/using-the-response) guide
|
|
23
|
+
* shows when a request's content is a ReactiveDocument.
|
|
24
|
+
*
|
|
22
25
|
* It is not directly instantiated by the user, and its properties should not
|
|
23
26
|
* be directly modified. Whether individual properties are mutable or not is
|
|
24
27
|
* determined by the record instance itself.
|
|
25
28
|
*
|
|
29
|
+
* @summary The reactive wrapper around a request's response document that exposes its data or errors
|
|
30
|
+
* as live records, plus meta, links, and pagination helpers.
|
|
26
31
|
* @public
|
|
27
32
|
*/
|
|
28
33
|
const ReactiveDocumentProto = {
|
|
@@ -236,6 +241,7 @@ const identifier = recordIdentifierFor(record);
|
|
|
236
241
|
const { id, type, lid } = identifier;
|
|
237
242
|
```
|
|
238
243
|
|
|
244
|
+
@summary Returns the stable `ResourceKey` (type, id, and lid) the store assigned to a record instance.
|
|
239
245
|
@public
|
|
240
246
|
@param record a record instance previously obstained from the store.
|
|
241
247
|
*/
|
|
@@ -643,6 +649,8 @@ implement this hook.
|
|
|
643
649
|
|
|
644
650
|
⚠️ Caution: Requests that do not have a `method` assigned are assumed to be `GET`
|
|
645
651
|
|
|
652
|
+
@summary Overrides how the store generates `lid` cache keys for resources and documents; must be set
|
|
653
|
+
before the store is created.
|
|
646
654
|
@public
|
|
647
655
|
*/
|
|
648
656
|
function setIdentifierGenerationMethod(method) {
|
|
@@ -677,6 +685,8 @@ prior to this `UpdateMethod` being called; however, calls to the parent method
|
|
|
677
685
|
`updateRecordIdentifier` that attempt to change the `id` or calling update
|
|
678
686
|
without providing an `id` when one is missing will throw an error.
|
|
679
687
|
|
|
688
|
+
@summary Registers a callback run when an existing resource key receives new data, for updating your
|
|
689
|
+
own secondary lookup tables.
|
|
680
690
|
@public
|
|
681
691
|
*/
|
|
682
692
|
function setIdentifierUpdateMethod(method) {
|
|
@@ -694,6 +704,8 @@ import { setIdentifierForgetMethod } from '@warp-drive-mirror/core';
|
|
|
694
704
|
Takes method which can expect to receive an existing `Identifier` that should be eliminated
|
|
695
705
|
from any secondary lookup tables or caches that the user has populated for it.
|
|
696
706
|
|
|
707
|
+
@summary Registers a callback run when the store releases a resource key, for cleaning up your own
|
|
708
|
+
lookup tables.
|
|
697
709
|
@public
|
|
698
710
|
*/
|
|
699
711
|
function setIdentifierForgetMethod(method) {
|
|
@@ -713,6 +725,8 @@ Takes a method which can expect to be called when the parent application is dest
|
|
|
713
725
|
If you have properly used a WeakMap to encapsulate the state of your customization
|
|
714
726
|
to the application instance, you may not need to implement the `resetMethod`.
|
|
715
727
|
|
|
728
|
+
@summary Registers a callback run when the store's key cache is torn down, for resetting any custom
|
|
729
|
+
key-generation state.
|
|
716
730
|
@public
|
|
717
731
|
*/
|
|
718
732
|
function setIdentifierResetMethod(method) {
|
|
@@ -731,6 +745,8 @@ This configuration MUST occur prior to the store instance being created.
|
|
|
731
745
|
import { setKeyInfoForResource } from '@warp-drive-mirror/core';
|
|
732
746
|
```
|
|
733
747
|
|
|
748
|
+
@summary Overrides how the store derives the `type` and `id` of a new `ResourceKey` from resource data;
|
|
749
|
+
must be set before the store is created.
|
|
734
750
|
@public
|
|
735
751
|
*/
|
|
736
752
|
function setKeyInfoForResource(method) {
|
|
@@ -1079,9 +1095,15 @@ function addResourceToCache(cache, identifier) {
|
|
|
1079
1095
|
//#region src/store/-private/managers/notification-manager.ts
|
|
1080
1096
|
/**
|
|
1081
1097
|
* The kinds of change notifications the {@link NotificationManager} can emit for a resource.
|
|
1098
|
+
*
|
|
1099
|
+
* @summary The lifecycle notification kinds sent to resource subscribers: `added`, `removed`, `updated`,
|
|
1100
|
+
* or `state`.
|
|
1082
1101
|
*/
|
|
1083
1102
|
/**
|
|
1084
1103
|
* The kinds of change notifications the {@link NotificationManager} can emit for a request document.
|
|
1104
|
+
*
|
|
1105
|
+
* @summary The notification kinds sent to request document subscribers, such as `updated` or
|
|
1106
|
+
* `invalidated`.
|
|
1085
1107
|
*/
|
|
1086
1108
|
function isCacheOperationValue(value) {
|
|
1087
1109
|
return value === "added" || value === "state" || value === "updated" || value === "removed" || value === "invalidated";
|
|
@@ -1089,6 +1111,9 @@ function isCacheOperationValue(value) {
|
|
|
1089
1111
|
/**
|
|
1090
1112
|
* The full set of notification kinds the {@link NotificationManager} can emit for a resource,
|
|
1091
1113
|
* including both {@link CacheOperation}s and finer-grained field-level change notifications.
|
|
1114
|
+
*
|
|
1115
|
+
* @summary Every notification kind a resource subscriber can receive, from lifecycle operations to
|
|
1116
|
+
* `attributes`, `relationships`, `errors`, `meta`, and `identity` changes.
|
|
1092
1117
|
*/
|
|
1093
1118
|
/**
|
|
1094
1119
|
* The shape accepted by {@link NotificationManager.notify} and
|
|
@@ -1096,6 +1121,8 @@ function isCacheOperationValue(value) {
|
|
|
1096
1121
|
* the `'attributes'` or `'relationships'` namespaces in a single call
|
|
1097
1122
|
* instead of once per key.
|
|
1098
1123
|
*
|
|
1124
|
+
* @summary A set of field names passed to `notify` or `notifyChange` to report many `attributes` or
|
|
1125
|
+
* `relationships` changes in one call.
|
|
1099
1126
|
* @since 5.9.0
|
|
1100
1127
|
* @public
|
|
1101
1128
|
*/
|
|
@@ -1130,6 +1157,8 @@ function isCacheOperationValue(value) {
|
|
|
1130
1157
|
* `DocumentCacheOperation` values) are never filtered by channel since they
|
|
1131
1158
|
* have no local/remote duality.
|
|
1132
1159
|
*
|
|
1160
|
+
* @summary Scopes an `attributes` or `relationships` notification to a resource's local (editable) or
|
|
1161
|
+
* remote (persisted) view so only matching subscribers hear it.
|
|
1133
1162
|
* @public
|
|
1134
1163
|
*/
|
|
1135
1164
|
/**
|
|
@@ -1240,6 +1269,8 @@ function _unsubscribe(token, cache) {
|
|
|
1240
1269
|
* This Feature is what allows WarpDrive to create subscriptions that
|
|
1241
1270
|
* work with any framework or change-notification system.
|
|
1242
1271
|
*
|
|
1272
|
+
* @summary The store service that lets code subscribe to and batch-deliver change notifications for
|
|
1273
|
+
* cached resources and request documents.
|
|
1243
1274
|
* @hideconstructor
|
|
1244
1275
|
* @public
|
|
1245
1276
|
*/
|
|
@@ -1610,10 +1641,15 @@ const MUTABLE_PROPS = [
|
|
|
1610
1641
|
* as the base for relationship and legacy record-array types such as
|
|
1611
1642
|
* {@link LegacyLiveArray}, {@link LegacyQueryArray} and {@link LegacyManyArray}.
|
|
1612
1643
|
*
|
|
1644
|
+
* The [Key Terminology](/guides/the-manual/caching/key-terms#resources) guide explains
|
|
1645
|
+
* how it relates to resources.
|
|
1646
|
+
*
|
|
1613
1647
|
* Behaves like a native Array: `Array.isArray(arr)` and `arr instanceof Array`
|
|
1614
1648
|
* both report `true`. The array stays in sync with the cache, updating
|
|
1615
1649
|
* reactively as the underlying {@link ResourceKey}s change.
|
|
1616
1650
|
*
|
|
1651
|
+
* @summary Native-Array-compatible reactive list of records backed by cache keys, returned for collection responses
|
|
1652
|
+
* and underlying relationship and legacy record arrays.
|
|
1617
1653
|
* @public
|
|
1618
1654
|
*/
|
|
1619
1655
|
/**
|
|
@@ -1884,6 +1920,8 @@ function createRequestCollection(config) {
|
|
|
1884
1920
|
* and "bmw" will have populated LiveArrays, but the LiveArray for "car"
|
|
1885
1921
|
* would be empty.
|
|
1886
1922
|
*
|
|
1923
|
+
* @summary Legacy reactive array of every record of one type in the store, returned by `store.peekAll` and
|
|
1924
|
+
* `store.findAll`.
|
|
1887
1925
|
* @legacy we recommend againt using LiveArrays. Use {@link Store.request} instead
|
|
1888
1926
|
*/
|
|
1889
1927
|
/**
|
|
@@ -1995,6 +2033,8 @@ function _updateLiveArray() {
|
|
|
1995
2033
|
* from the cache, but it does remove the array as well as the overhead it requires
|
|
1996
2034
|
* from the store for book-keeping.
|
|
1997
2035
|
*
|
|
2036
|
+
* @summary Legacy immutable reactive array of the primary records returned by `store.query`, refreshable with
|
|
2037
|
+
* `update()` and released with `destroy()`.
|
|
1998
2038
|
* @legacy we recommend againt using QueryArrays. Use {@link Store.request} instead
|
|
1999
2039
|
*/
|
|
2000
2040
|
/**
|
|
@@ -2705,6 +2745,10 @@ const BaseClass = _BaseClass.default ? _BaseClass.default : _BaseClass;
|
|
|
2705
2745
|
* The `Store` is the central piece of the ***Warp*Drive** experience. It connects
|
|
2706
2746
|
* requests for data with schemas, caching and reactivity.
|
|
2707
2747
|
*
|
|
2748
|
+
* The [Setup](/guides/configuration/#configure-the-store) guide shows how to configure
|
|
2749
|
+
* one, and [Making Requests](/guides/the-manual/requests/) shows how to request data
|
|
2750
|
+
* through it.
|
|
2751
|
+
*
|
|
2708
2752
|
* While it's easy to use ***just*** ***Warp*Drive**'s request management, most projects will find they
|
|
2709
2753
|
* require far more than basic fetch management. For this reason it's often best to start with a `Store`
|
|
2710
2754
|
* even when you aren't sure yet.
|
|
@@ -2712,6 +2756,7 @@ const BaseClass = _BaseClass.default ? _BaseClass.default : _BaseClass;
|
|
|
2712
2756
|
* Most projects will only have a single `Store`, though using multiple distinct stores
|
|
2713
2757
|
* is possible.
|
|
2714
2758
|
*
|
|
2759
|
+
* @summary Central coordinator that connects requests for data with schemas, the cache and reactivity.
|
|
2715
2760
|
* @public
|
|
2716
2761
|
* @hideconstructor
|
|
2717
2762
|
*/
|
|
@@ -2896,12 +2941,25 @@ var Store = class extends BaseClass {
|
|
|
2896
2941
|
/** @internal */
|
|
2897
2942
|
_getAllPending() {}
|
|
2898
2943
|
/**
|
|
2899
|
-
* ::: tip 💡 For a more complete overview see the [Request Guide](/guides/
|
|
2944
|
+
* ::: tip 💡 For a more complete overview see the [Request Guide](/guides/the-manual/requests/)
|
|
2900
2945
|
* :::
|
|
2901
2946
|
*
|
|
2902
2947
|
* Issue a request via the configured {@link RequestManager},
|
|
2903
2948
|
* inserting the response into the {@link Store.cache | cache} and handing
|
|
2904
|
-
* back a {@link Future} which resolves to a {@link ReactiveDocument | ReactiveDocument}
|
|
2949
|
+
* back a {@link Future} which resolves to a {@link ReactiveDocument | ReactiveDocument}.
|
|
2950
|
+
* Use `store.request` for anything the Store's cache should own, which is nearly all app
|
|
2951
|
+
* code; reach for {@link RequestManager.request | requestManager.request} directly only when
|
|
2952
|
+
* there is no `Store` involved, or you specifically want the unprocessed
|
|
2953
|
+
* {@link StructuredDocument}.
|
|
2954
|
+
*
|
|
2955
|
+
* #### Building Requests
|
|
2956
|
+
*
|
|
2957
|
+
* `requestConfig` can be written by hand, but for anything reused more than once prefer a
|
|
2958
|
+
* request builder — a plain function that returns the right shape for `store.request`. This
|
|
2959
|
+
* repo ships builders for common operations (`findRecord`, `query`, `createRecord`, and more)
|
|
2960
|
+
* for {json:api}, REST, and ActiveRecord-style APIs in `@warp-drive-mirror/utilities`; each builder's
|
|
2961
|
+
* return value also carries its own response type, so `RT` below is inferred automatically
|
|
2962
|
+
* instead of being written by hand. See [Builders](/guides/the-manual/requests/builders.md).
|
|
2905
2963
|
*
|
|
2906
2964
|
* #### Request Cache Keys
|
|
2907
2965
|
*
|
|
@@ -2946,6 +3004,29 @@ var Store = class extends BaseClass {
|
|
|
2946
3004
|
* is that `store.request` will convert the response into a {@link ReactiveDocument}
|
|
2947
3005
|
* containing {@link Store.instantiateRecord | ReactiveResources}.
|
|
2948
3006
|
*
|
|
3007
|
+
* A {@link ReactiveDocument} is either a {@link ReactiveDataDocument} (`content.data` holds
|
|
3008
|
+
* the resource(s)) or a {@link ReactiveErrorDocument} (`content.errors` holds the API's error
|
|
3009
|
+
* objects), depending on whether the `Future` resolves or rejects; both carry the response's
|
|
3010
|
+
* `content.meta`. Read either state reactively with {@link getRequestState} or the
|
|
3011
|
+
* `<Request />` component instead of always `await`-ing the `Future` directly — see
|
|
3012
|
+
* [Using the Response](/guides/the-manual/requests/using-the-response.md).
|
|
3013
|
+
*
|
|
3014
|
+
* #### Typing The Response
|
|
3015
|
+
*
|
|
3016
|
+
* `request<RT>` accepts an explicit type argument, but the more common path is to let it be
|
|
3017
|
+
* inferred: build the request with {@link withResponseType} (or {@link withReactiveResponse}
|
|
3018
|
+
* for the common reactive-document case), or with a builder from `@warp-drive-mirror/utilities` as
|
|
3019
|
+
* described above, and `RT` is inferred from the request object itself. See
|
|
3020
|
+
* [Typing Requests](/guides/the-manual/requests/typing-requests.md) for the full mechanism.
|
|
3021
|
+
*
|
|
3022
|
+
* @example
|
|
3023
|
+
* ```ts
|
|
3024
|
+
* import { findRecord } from '@warp-drive-mirror/utilities/json-api';
|
|
3025
|
+
*
|
|
3026
|
+
* const { content } = await store.request(findRecord('user', '1'));
|
|
3027
|
+
* content.data; // ReactiveResource, typed from the builder's response type
|
|
3028
|
+
* ```
|
|
3029
|
+
*
|
|
2949
3030
|
* @public
|
|
2950
3031
|
*/
|
|
2951
3032
|
request(requestConfig) {
|
|
@@ -3443,10 +3524,16 @@ function getPriority(identifier, deduped, priority) {
|
|
|
3443
3524
|
/**
|
|
3444
3525
|
* The request shape accepted by {@link Store.request}, either a fully-formed
|
|
3445
3526
|
* {@link ImmutableRequestInfo} or the looser {@link LooseStoreRequestInfo}.
|
|
3527
|
+
*
|
|
3528
|
+
* @summary The request object `store.request` accepts, either a full immutable request info or a looser
|
|
3529
|
+
* form with plain `records` and `headers`.
|
|
3446
3530
|
*/
|
|
3447
3531
|
/**
|
|
3448
3532
|
* A CacheHandler that adds support for using an WarpDrive Cache with a RequestManager.
|
|
3449
3533
|
*
|
|
3534
|
+
* The [Caching](/guides/the-manual/caching/) guide explains how it decides whether a
|
|
3535
|
+
* request can use the cache.
|
|
3536
|
+
*
|
|
3450
3537
|
* This handler will only run when a request has supplied a `store` instance. Requests
|
|
3451
3538
|
* issued by the store via `store.request()` will automatically have the `store` instance
|
|
3452
3539
|
* attached to the request.
|
|
@@ -3482,7 +3569,10 @@ function getPriority(identifier, deduped, priority) {
|
|
|
3482
3569
|
* method: 'GET',
|
|
3483
3570
|
* [EnableHydration]: true
|
|
3484
3571
|
* });
|
|
3572
|
+
* ```
|
|
3485
3573
|
*
|
|
3574
|
+
* @summary The RequestManager cache handler that serves, dedupes, and caches store requests and returns
|
|
3575
|
+
* reactive documents when hydration is enabled.
|
|
3486
3576
|
*/
|
|
3487
3577
|
const CacheHandler = { request(context, next) {
|
|
3488
3578
|
if (!context.request.store || context.request.cacheOptions?.[SkipCache]) return next(context.request);
|
|
@@ -3749,6 +3839,7 @@ the has-many.
|
|
|
3749
3839
|
We call the record to which a relationship belongs-to the
|
|
3750
3840
|
relationship's _owner_.
|
|
3751
3841
|
|
|
3842
|
+
@summary Legacy mutable reactive array holding the related records of a legacy or linksMode has-many relationship.
|
|
3752
3843
|
@public
|
|
3753
3844
|
*/
|
|
3754
3845
|
/**
|
|
@@ -5122,10 +5213,14 @@ const Editables = /* @__PURE__ */ new Map();
|
|
|
5122
5213
|
* and a ResourceKey to transform data from the cache into a rich, reactive
|
|
5123
5214
|
* object.
|
|
5124
5215
|
*
|
|
5216
|
+
* The [ResourceSchemas](/guides/the-manual/schemas/resources/) guide shows how to
|
|
5217
|
+
* define the schema it reads.
|
|
5218
|
+
*
|
|
5125
5219
|
* This class is not directly instantiable. To use it, you should
|
|
5126
5220
|
* configure the store's `instantiateRecord` and `teardownRecord` hooks
|
|
5127
5221
|
* with the matching hooks provided by this package.
|
|
5128
5222
|
*
|
|
5223
|
+
* @summary The rich, reactive record object that presents a resource's cached data through its `ResourceSchema`.
|
|
5129
5224
|
* @hideconstructor
|
|
5130
5225
|
* @public
|
|
5131
5226
|
*/
|
|
@@ -5521,6 +5616,8 @@ function assertNeverField(identifier, field, path) {
|
|
|
5521
5616
|
* Edits to editable resources will be automatically committed if a new
|
|
5522
5617
|
* payload from the cache matches their existing value.
|
|
5523
5618
|
*
|
|
5619
|
+
* @summary Resolves with an editable copy of an immutable `ReactiveResource` so its fields can be
|
|
5620
|
+
* changed locally.
|
|
5524
5621
|
* @public
|
|
5525
5622
|
*
|
|
5526
5623
|
* @returns a promise that resolves to the editable resource
|
|
@@ -5537,6 +5634,8 @@ function checkout(resource) {
|
|
|
5537
5634
|
* approach is for either the API or a Handler to reflect saved
|
|
5538
5635
|
* changes back to update the cache.
|
|
5539
5636
|
*
|
|
5637
|
+
* @summary Forcibly makes an editable resource's local changes its new remote (immutable) state,
|
|
5638
|
+
* bypassing a save round-trip.
|
|
5540
5639
|
* @public
|
|
5541
5640
|
*/
|
|
5542
5641
|
function commit(record) {
|
|
@@ -5554,6 +5653,8 @@ function commit(record) {
|
|
|
5554
5653
|
* schema is `legacy`, matching the historical behavior of assigning initial
|
|
5555
5654
|
* properties when creating a new legacy record.
|
|
5556
5655
|
*
|
|
5656
|
+
* @summary Default store `instantiateRecord` hook that creates a `ReactiveResource` for a resource key
|
|
5657
|
+
* from its registered schema.
|
|
5557
5658
|
* @public
|
|
5558
5659
|
*/
|
|
5559
5660
|
function instantiateRecord(store, identifier, createArgs) {
|
|
@@ -5577,6 +5678,8 @@ function instantiateRecord(store, identifier, createArgs) {
|
|
|
5577
5678
|
* that `record` is a {@link ReactiveResource} and invokes its `Destroy`
|
|
5578
5679
|
* behavior.
|
|
5579
5680
|
*
|
|
5681
|
+
* @summary Default store `teardownRecord` hook that destroys a `ReactiveResource` when the store
|
|
5682
|
+
* releases it.
|
|
5580
5683
|
* @public
|
|
5581
5684
|
*/
|
|
5582
5685
|
function teardownRecord(record) {
|
|
@@ -5626,16 +5729,25 @@ _constructor[Type] = "@constructor";
|
|
|
5626
5729
|
* This should only be used for temporary migration purposes
|
|
5627
5730
|
* to the new schema system when migrating from either Model
|
|
5628
5731
|
* or ModelFragments.
|
|
5732
|
+
*
|
|
5733
|
+
* @summary Registers named methods, getters, and values to add to ReactiveResources, ReactiveObjects,
|
|
5734
|
+
* or ReactiveArrays; meant only as a temporary aid when migrating from Model or ModelFragments.
|
|
5629
5735
|
*/
|
|
5630
5736
|
/**
|
|
5631
5737
|
* Describes one feature added to a resource by a schema extension, as
|
|
5632
5738
|
* classified by {@link processExtension} from the property descriptor it
|
|
5633
5739
|
* was declared with (a method, a plain value, or a getter/setter pair).
|
|
5740
|
+
*
|
|
5741
|
+
* @summary One normalized feature of a schema extension, tagged by kind as a method, a readonly or
|
|
5742
|
+
* mutable value, or a getter/setter accessor.
|
|
5634
5743
|
*/
|
|
5635
5744
|
/**
|
|
5636
5745
|
* The result of {@link processExtension} normalizing a
|
|
5637
5746
|
* {@link CAUTION_MEGA_DANGER_ZONE_Extension} into a lookup of its features
|
|
5638
5747
|
* by name.
|
|
5748
|
+
*
|
|
5749
|
+
* @summary A registered schema extension normalized into its kind, name, and a map of its features
|
|
5750
|
+
* keyed by property name.
|
|
5639
5751
|
*/
|
|
5640
5752
|
const BannedKeys = ["constructor", "__proto__"];
|
|
5641
5753
|
function processExtension(extension) {
|
|
@@ -5725,14 +5837,19 @@ function processExtensions(schema, field, scenario, resolvedType) {
|
|
|
5725
5837
|
* Utility for constructing a ResourceSchema with the recommended
|
|
5726
5838
|
* fields for the PolarisMode experience.
|
|
5727
5839
|
*
|
|
5840
|
+
* The [ResourceSchemas](/guides/the-manual/schemas/resources/) guide shows how to
|
|
5841
|
+
* create a schema with it.
|
|
5842
|
+
*
|
|
5728
5843
|
* Using this requires registering the PolarisMode derivations
|
|
5729
5844
|
*
|
|
5730
5845
|
* ```ts
|
|
5731
|
-
* import { registerDerivations } from '@warp-drive-mirror/
|
|
5846
|
+
* import { registerDerivations } from '@warp-drive-mirror/core/reactive';
|
|
5732
5847
|
*
|
|
5733
5848
|
* registerDerivations(schema);
|
|
5734
5849
|
* ```
|
|
5735
5850
|
*
|
|
5851
|
+
* @summary Adds the default `id` identity plus `$key`, `$type`, and `constructor` derived fields to a
|
|
5852
|
+
* PolarisMode resource schema.
|
|
5736
5853
|
* @public
|
|
5737
5854
|
* @param schema
|
|
5738
5855
|
* @return {PolarisResourceSchema}
|
|
@@ -5763,6 +5880,8 @@ function withDefaults(schema) {
|
|
|
5763
5880
|
*
|
|
5764
5881
|
* `^` returns the entire identifier object.
|
|
5765
5882
|
*
|
|
5883
|
+
* @summary The `@identity` derivation, which reads a record's `id`, `lid`, `type`, or whole resource key
|
|
5884
|
+
* for use in derived fields.
|
|
5766
5885
|
* @public
|
|
5767
5886
|
*/
|
|
5768
5887
|
const fromIdentity = (record, options, key) => {
|
|
@@ -5775,9 +5894,14 @@ fromIdentity[Type] = "@identity";
|
|
|
5775
5894
|
* to use the PolarisMode defaults provided by
|
|
5776
5895
|
*
|
|
5777
5896
|
* ```ts
|
|
5778
|
-
* import { withDefaults } from '@warp-drive-mirror/
|
|
5897
|
+
* import { withDefaults } from '@warp-drive-mirror/core/reactive';
|
|
5779
5898
|
* ```
|
|
5780
5899
|
*
|
|
5900
|
+
* The [Derivations](/guides/the-manual/schemas/derivations#about-built-in-derivations)
|
|
5901
|
+
* guide explains when you need to call it.
|
|
5902
|
+
*
|
|
5903
|
+
* @summary Registers the `@identity` and `@constructor` derivations that schemas built with
|
|
5904
|
+
* `withDefaults` depend on.
|
|
5781
5905
|
* @public
|
|
5782
5906
|
*/
|
|
5783
5907
|
function registerDerivations(schema) {
|
|
@@ -5788,6 +5912,9 @@ function registerDerivations(schema) {
|
|
|
5788
5912
|
* Defines how to convert a `GenericField`, `ObjectField`, or `ArrayField`
|
|
5789
5913
|
* between the raw value `T` stored in the cache and the presentation value
|
|
5790
5914
|
* `PT` exposed on the record.
|
|
5915
|
+
*
|
|
5916
|
+
* @summary A registered converter between a field's raw cache value and the value exposed on the
|
|
5917
|
+
* record, with optional default.
|
|
5791
5918
|
*/
|
|
5792
5919
|
/**
|
|
5793
5920
|
* Wraps a derivation in a new function with Derivation signature but that looks
|
|
@@ -5810,6 +5937,12 @@ function makeCachedDerivation(derivation) {
|
|
|
5810
5937
|
/**
|
|
5811
5938
|
* A SchemaService designed to work with dynamically registered schemas.
|
|
5812
5939
|
*
|
|
5940
|
+
* The [Schemas](/guides/the-manual/schemas/) guide shows how to register schemas
|
|
5941
|
+
* with it, and [Advanced Store Configuration](/guides/configuration/advanced#add-a-source-for-schema-for-your-data)
|
|
5942
|
+
* shows how to give a store one.
|
|
5943
|
+
*
|
|
5944
|
+
* @summary The default schema service, which stores resource and object schemas, traits, derivations,
|
|
5945
|
+
* transformations, hash functions and extensions registered at runtime.
|
|
5813
5946
|
* @public
|
|
5814
5947
|
*/
|
|
5815
5948
|
var SchemaService = class {
|
|
@@ -6388,6 +6521,8 @@ function mergeMap(base, toApply) {
|
|
|
6388
6521
|
* - {@link LegacyModeFieldSchema}
|
|
6389
6522
|
* - {@link PolarisModeFieldSchema}
|
|
6390
6523
|
*
|
|
6524
|
+
* @summary Schema-driven reactive records, arrays, and documents the store builds from cached data, plus the
|
|
6525
|
+
* `SchemaService` and schema types that define them.
|
|
6391
6526
|
* @module
|
|
6392
6527
|
*/
|
|
6393
6528
|
|
|
@@ -6465,6 +6600,9 @@ const ERROR_STATUS_CODE_FOR = /* @__PURE__ */ new Map([
|
|
|
6465
6600
|
* A basic Fetch Handler which converts a request into a
|
|
6466
6601
|
* `fetch` call presuming the response to be `json`.
|
|
6467
6602
|
*
|
|
6603
|
+
* The [Making Requests](/guides/the-manual/requests/#requests-do-not-need-to-use-fetch)
|
|
6604
|
+
* guide shows where it sits in the handler chain.
|
|
6605
|
+
*
|
|
6468
6606
|
* ```ts
|
|
6469
6607
|
* import { RequestManager, Fetch } from '@warp-drive-mirror/core';
|
|
6470
6608
|
*
|
|
@@ -6472,6 +6610,8 @@ const ERROR_STATUS_CODE_FOR = /* @__PURE__ */ new Map([
|
|
|
6472
6610
|
* .use([Fetch]);
|
|
6473
6611
|
* ```
|
|
6474
6612
|
*
|
|
6613
|
+
* @summary Terminal request handler that sends the request with native `fetch` and resolves with the
|
|
6614
|
+
* parsed JSON body, turning HTTP failures into errors.
|
|
6475
6615
|
* @public
|
|
6476
6616
|
* @badge Handler
|
|
6477
6617
|
*/
|
|
@@ -6598,7 +6738,8 @@ function isDict(v) {
|
|
|
6598
6738
|
* import { RequestManager } from '@warp-drive-mirror/core';
|
|
6599
6739
|
* ```
|
|
6600
6740
|
*
|
|
6601
|
-
* For complete usage guide see
|
|
6741
|
+
* For a complete usage guide see [Making Requests](/guides/the-manual/requests/), and
|
|
6742
|
+
* [Handlers](/guides/the-manual/requests/handlers) for writing the handlers it runs.
|
|
6602
6743
|
*
|
|
6603
6744
|
* ## How It Works
|
|
6604
6745
|
*
|
|
@@ -6621,11 +6762,28 @@ function isDict(v) {
|
|
|
6621
6762
|
* ```ts [Setup.ts]
|
|
6622
6763
|
* import { RequestManager, Fetch } from '@warp-drive-mirror/core';
|
|
6623
6764
|
* import { AutoCompress } from '@warp-drive-mirror/utilities/handlers';
|
|
6624
|
-
* import
|
|
6765
|
+
* import { AuthHandler } from './auth-handler';
|
|
6625
6766
|
*
|
|
6626
6767
|
* // ... create manager
|
|
6627
6768
|
* const manager = new RequestManager()
|
|
6628
|
-
* .use([
|
|
6769
|
+
* .use([AuthHandler, new AutoCompress(), Fetch]); // [!code focus]
|
|
6770
|
+
* ```
|
|
6771
|
+
*
|
|
6772
|
+
* ```ts [auth-handler.ts]
|
|
6773
|
+
* import type { Handler, NextFn } from '@warp-drive-mirror/core/request';
|
|
6774
|
+
* import type { RequestContext } from '@warp-drive-mirror/core/types/request';
|
|
6775
|
+
*
|
|
6776
|
+
* const token = '<token>';
|
|
6777
|
+
*
|
|
6778
|
+
* // adds a bearer token to every request, then passes it along
|
|
6779
|
+
* export const AuthHandler: Handler = {
|
|
6780
|
+
* request<T>(context: RequestContext, next: NextFn<T>) {
|
|
6781
|
+
* const headers = new Headers(context.request.headers);
|
|
6782
|
+
* headers.append('Authorization', `Bearer ${token}`);
|
|
6783
|
+
*
|
|
6784
|
+
* return next(Object.assign({}, context.request, { headers }));
|
|
6785
|
+
* },
|
|
6786
|
+
* };
|
|
6629
6787
|
* ```
|
|
6630
6788
|
*
|
|
6631
6789
|
* ```ts [Usage.ts]
|
|
@@ -6641,6 +6799,20 @@ function isDict(v) {
|
|
|
6641
6799
|
*
|
|
6642
6800
|
* :::
|
|
6643
6801
|
*
|
|
6802
|
+
* ### RequestManager vs {@link Store.request}
|
|
6803
|
+
*
|
|
6804
|
+
* A bare `RequestManager` is the low-level primitive: it runs a request through the configured
|
|
6805
|
+
* {@link Handler | handler chain} and settles with the raw {@link StructuredDocument}. It has no
|
|
6806
|
+
* cache and does not hydrate {@link ReactiveDocument | ReactiveDocuments} unless you register a
|
|
6807
|
+
* cache handler yourself via {@link RequestManager.useCache} and the request opts in.
|
|
6808
|
+
*
|
|
6809
|
+
* {@link Store.request} issues requests through this same `RequestManager`, but with the Store's
|
|
6810
|
+
* cache handler and hydration already wired up — inserting the response into the Store's cache
|
|
6811
|
+
* and resolving with a `ReactiveDocument` instead. Use `store.request` for anything the Store's
|
|
6812
|
+
* cache should own, which is nearly all app code. Reach for `requestManager.request` directly
|
|
6813
|
+
* only when there is no {@link Store} involved, or you specifically want the unprocessed
|
|
6814
|
+
* `StructuredDocument`.
|
|
6815
|
+
*
|
|
6644
6816
|
* ### Futures
|
|
6645
6817
|
*
|
|
6646
6818
|
* The return value of `manager.request` is a `Future`, which allows
|
|
@@ -6679,6 +6851,7 @@ function isDict(v) {
|
|
|
6679
6851
|
* type StructuredDocument<T> = StructuredDataDocument<T> | StructuredErrorDocument;
|
|
6680
6852
|
* ```
|
|
6681
6853
|
*
|
|
6854
|
+
* @summary Runs each request through a chain of handlers that can fulfill, modify, or pass it along, and returns a `Future` for the response.
|
|
6682
6855
|
* @public
|
|
6683
6856
|
*/
|
|
6684
6857
|
var RequestManager = class {
|
|
@@ -6729,7 +6902,23 @@ var RequestManager = class {
|
|
|
6729
6902
|
/**
|
|
6730
6903
|
* Issue a Request.
|
|
6731
6904
|
*
|
|
6732
|
-
*
|
|
6905
|
+
* Runs `request` through the configured {@link Handler | handler chain} and settles with the
|
|
6906
|
+
* {@link StructuredDocument} the chain produces — a plain `{ request, response, content }`
|
|
6907
|
+
* object, not a {@link ReactiveDocument}. Caching and hydration only happen if a cache handler
|
|
6908
|
+
* has been registered via {@link RequestManager.useCache} and the request opts in; a
|
|
6909
|
+
* `RequestManager` created on its own has neither.
|
|
6910
|
+
*
|
|
6911
|
+
* Most app code should use {@link Store.request} instead, which calls this same method with
|
|
6912
|
+
* the Store's cache handler and hydration already configured. Reach for `requestManager.request`
|
|
6913
|
+
* directly when there is no {@link Store} involved, or when you want the unprocessed
|
|
6914
|
+
* `StructuredDocument`. The `<RT>` generic can be set explicitly or inferred from a request
|
|
6915
|
+
* built with {@link withResponseType} or {@link withReactiveResponse} — see
|
|
6916
|
+
* [Typing Requests](/guides/the-manual/requests/typing-requests.md).
|
|
6917
|
+
*
|
|
6918
|
+
* @example
|
|
6919
|
+
* ```ts
|
|
6920
|
+
* const { content } = await requestManager.request({ url: '/users' });
|
|
6921
|
+
* ```
|
|
6733
6922
|
*
|
|
6734
6923
|
* @public
|
|
6735
6924
|
*/
|
|
@@ -6791,17 +6980,25 @@ var RequestManager = class {
|
|
|
6791
6980
|
//#endregion
|
|
6792
6981
|
//#region src/index.ts
|
|
6793
6982
|
/**
|
|
6983
|
+
* @summary Main entry point for WarpDrive: the `Store`, `RequestManager`, `Fetch` handler, `CacheHandler`, and
|
|
6984
|
+
* `useRecommendedStore` for building a configured store.
|
|
6794
6985
|
* @module
|
|
6795
6986
|
* @mergeModuleWith <project>
|
|
6796
6987
|
*/
|
|
6797
6988
|
globalThis.setWarpDriveIsMaybeMirage = setIsMaybeMirage;
|
|
6798
6989
|
/**
|
|
6799
6990
|
* Options for setting up a Store instance with `useRecommendedStore`.
|
|
6991
|
+
*
|
|
6992
|
+
* @summary Configures the cache, cache policy, request handlers, schemas, and schema extensions that
|
|
6993
|
+
* `useRecommendedStore` wires into a Store class.
|
|
6800
6994
|
*/
|
|
6801
6995
|
/**
|
|
6802
6996
|
* Creates a configured Store class with recommended defaults
|
|
6803
6997
|
* for schema handling, reactivity, caching, and request management.
|
|
6804
6998
|
*
|
|
6999
|
+
* The [Setup](/guides/configuration/#configure-the-store) guide walks through
|
|
7000
|
+
* configuring the store with it.
|
|
7001
|
+
*
|
|
6805
7002
|
* ```ts
|
|
6806
7003
|
* import { useRecommendedStore } from '@warp-drive-mirror/core';
|
|
6807
7004
|
* import { JSONAPICache } from '@warp-drive-mirror/json-api';
|
|
@@ -6904,6 +7101,9 @@ globalThis.setWarpDriveIsMaybeMirage = setIsMaybeMirage;
|
|
|
6904
7101
|
* {@link RequestManager} won't have it set unless the caller supplies it
|
|
6905
7102
|
* explicitly, so a handler relying on it should treat it as optional (as
|
|
6906
7103
|
* `LoggingHandler` does above).
|
|
7104
|
+
*
|
|
7105
|
+
* @summary Builds a Store subclass preconfigured with the given cache, schemas, and handlers, plus
|
|
7106
|
+
* `Fetch`, `CacheHandler`, and a default cache policy.
|
|
6907
7107
|
*/
|
|
6908
7108
|
function useRecommendedStore(options, StoreKlass = Store) {
|
|
6909
7109
|
return class AppStore extends StoreKlass {
|
|
@@ -6959,4 +7159,4 @@ function useRecommendedStore(options, StoreKlass = Store) {
|
|
|
6959
7159
|
|
|
6960
7160
|
//#endregion
|
|
6961
7161
|
export { normalizeModelName as A, isRequestKey as C, setIdentifierResetMethod as D, setIdentifierGenerationMethod as E, recordIdentifierFor as F, setRecordIdentifier as I, storeFor as L, ensureStringId as M, StoreMap as N, setIdentifierUpdateMethod as O, _clearCaches as P, assertPrivateCapabilities as R, fieldValueIdentity as S, setIdentifierForgetMethod as T, Store as _, fromIdentity as a, RecordArrayManager as b, instantiateRecord as c, commit as d, log as f, CacheHandler as g, constructResource as h, SchemaService as i, coerceId as j, setKeyInfoForResource as k, teardownRecord as l, createLegacyManyArray as m, RequestManager as n, registerDerivations as o, logGroup as p, Fetch as r, withDefaults as s, useRecommendedStore as t, checkout as u, assertPrivateStore as v, isResourceKey as w, fastPush as x, isPrivateStore as y };
|
|
6962
|
-
//# sourceMappingURL=src-
|
|
7162
|
+
//# sourceMappingURL=src-CoSpuocQ.js.map
|