@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,21 +1,21 @@
|
|
|
1
|
-
import { c as RequestKey, l as ResourceKey, n as CacheKeyType, s as PersistedResourceKey } from "./identifier-
|
|
2
|
-
import { t as QueryParamsSerializationOptions } from "./params-
|
|
3
|
-
import { a as Type, n as RequestSignature } from "./symbols-
|
|
4
|
-
import { c as TypedRecordInstance, i as OpaqueRecordInstance$1, o as TypeFromInstance, s as TypeFromInstanceOrString } from "./record-
|
|
5
|
-
import { i as Value, n as ObjectValue } from "./raw-
|
|
6
|
-
import { a as ExistingResourceObject, d as Meta, g as ResourceIdentifierObject, i as ExistingResourceIdentifierObject, m as PaginationLinks, r as EmptyResourceDocument, s as JsonApiDocument, t as CollectionResourceDocument, u as Links, y as SingleResourceDocument } from "./json-api-raw-
|
|
7
|
-
import { A as ResourceField, C as ObjectField, F as Trait, M as Schema, N as SchemaArrayField, O as PolarisResourceSchema, P as SchemaObjectField, T as ObjectSchema, a as DerivedField, b as LinksModeHasManyField, c as HashField, d as LegacyAttributeField, f as LegacyBelongsToField, g as LegacyRelationshipField, i as CollectionField, j as ResourceSchema, l as IdentityField, m as LegacyHasManyField, o as FieldSchema, r as CacheableFieldSchema, s as GenericField, t as ArrayField } from "./fields-
|
|
8
|
-
import { n as HashFn, r as Transformation$1, t as Derivation } from "./concepts-
|
|
9
|
-
import { n as WithPartial } from "./utils-
|
|
10
|
-
import { t as ResourceBlob } from "./aliases-
|
|
11
|
-
import { t as Change } from "./change-
|
|
12
|
-
import { n as Mutation } from "./mutations-
|
|
13
|
-
import { r as ResourceRelationship, t as CollectionRelationship } from "./relationship-
|
|
14
|
-
import { i as MergeOperation, o as Operation$1 } from "./operations-
|
|
15
|
-
import { t as ApiError } from "./error-
|
|
16
|
-
import { o as SingleResourceDataDocument, r as ResourceDocument, t as CollectionResourceDataDocument } from "./document-
|
|
17
|
-
import { i as RemoteRelationshipOperation, n as LocalRelationshipOperation, t as DeleteRecordOperation } from "./graph-
|
|
18
|
-
import { i as SignalRef, t as ARRAY_SIGNAL } from "./configure-
|
|
1
|
+
import { c as RequestKey, l as ResourceKey, n as CacheKeyType, s as PersistedResourceKey } from "./identifier-B_tK3FUw.js";
|
|
2
|
+
import { t as QueryParamsSerializationOptions } from "./params-dbHiSOMF.js";
|
|
3
|
+
import { a as Type, n as RequestSignature } from "./symbols-Cu9un1NR.js";
|
|
4
|
+
import { c as TypedRecordInstance, i as OpaqueRecordInstance$1, o as TypeFromInstance, s as TypeFromInstanceOrString } from "./record-DDxPtzcY.js";
|
|
5
|
+
import { i as Value, n as ObjectValue } from "./raw-CiC64nCY.js";
|
|
6
|
+
import { a as ExistingResourceObject, d as Meta, g as ResourceIdentifierObject, i as ExistingResourceIdentifierObject, m as PaginationLinks, r as EmptyResourceDocument, s as JsonApiDocument, t as CollectionResourceDocument, u as Links, y as SingleResourceDocument } from "./json-api-raw-BxzNsCg0.js";
|
|
7
|
+
import { A as ResourceField, C as ObjectField, F as Trait, M as Schema, N as SchemaArrayField, O as PolarisResourceSchema, P as SchemaObjectField, T as ObjectSchema, a as DerivedField, b as LinksModeHasManyField, c as HashField, d as LegacyAttributeField, f as LegacyBelongsToField, g as LegacyRelationshipField, i as CollectionField, j as ResourceSchema, l as IdentityField, m as LegacyHasManyField, o as FieldSchema, r as CacheableFieldSchema, s as GenericField, t as ArrayField } from "./fields-D6173Q_a.js";
|
|
8
|
+
import { n as HashFn, r as Transformation$1, t as Derivation } from "./concepts-DzuY5M1K.js";
|
|
9
|
+
import { n as WithPartial } from "./utils-CNmQoKm8.js";
|
|
10
|
+
import { t as ResourceBlob } from "./aliases-BQmAxXmb.js";
|
|
11
|
+
import { t as Change } from "./change-DClXcHvr.js";
|
|
12
|
+
import { n as Mutation } from "./mutations-C81gbYjB.js";
|
|
13
|
+
import { r as ResourceRelationship, t as CollectionRelationship } from "./relationship-BlGIXgj4.js";
|
|
14
|
+
import { i as MergeOperation, o as Operation$1 } from "./operations-B4pQM7D6.js";
|
|
15
|
+
import { t as ApiError } from "./error-APuUdUGk.js";
|
|
16
|
+
import { o as SingleResourceDataDocument, r as ResourceDocument, t as CollectionResourceDataDocument } from "./document-Ni8Ns26t.js";
|
|
17
|
+
import { i as RemoteRelationshipOperation, n as LocalRelationshipOperation, t as DeleteRecordOperation } from "./graph-rjTyJ-gd.js";
|
|
18
|
+
import { i as SignalRef, t as ARRAY_SIGNAL } from "./configure-CjsojjiI.js";
|
|
19
19
|
//#region src/request/-private/manager.d.ts
|
|
20
20
|
/**
|
|
21
21
|
* ## Import
|
|
@@ -24,7 +24,8 @@ import { i as SignalRef, t as ARRAY_SIGNAL } from "./configure-B_F639tN.js";
|
|
|
24
24
|
* import { RequestManager } from '@warp-drive-mirror/core';
|
|
25
25
|
* ```
|
|
26
26
|
*
|
|
27
|
-
* For complete usage guide see
|
|
27
|
+
* For a complete usage guide see [Making Requests](/guides/the-manual/requests/), and
|
|
28
|
+
* [Handlers](/guides/the-manual/requests/handlers) for writing the handlers it runs.
|
|
28
29
|
*
|
|
29
30
|
* ## How It Works
|
|
30
31
|
*
|
|
@@ -47,11 +48,28 @@ import { i as SignalRef, t as ARRAY_SIGNAL } from "./configure-B_F639tN.js";
|
|
|
47
48
|
* ```ts [Setup.ts]
|
|
48
49
|
* import { RequestManager, Fetch } from '@warp-drive-mirror/core';
|
|
49
50
|
* import { AutoCompress } from '@warp-drive-mirror/utilities/handlers';
|
|
50
|
-
* import
|
|
51
|
+
* import { AuthHandler } from './auth-handler';
|
|
51
52
|
*
|
|
52
53
|
* // ... create manager
|
|
53
54
|
* const manager = new RequestManager()
|
|
54
|
-
* .use([
|
|
55
|
+
* .use([AuthHandler, new AutoCompress(), Fetch]); // [!code focus]
|
|
56
|
+
* ```
|
|
57
|
+
*
|
|
58
|
+
* ```ts [auth-handler.ts]
|
|
59
|
+
* import type { Handler, NextFn } from '@warp-drive-mirror/core/request';
|
|
60
|
+
* import type { RequestContext } from '@warp-drive-mirror/core/types/request';
|
|
61
|
+
*
|
|
62
|
+
* const token = '<token>';
|
|
63
|
+
*
|
|
64
|
+
* // adds a bearer token to every request, then passes it along
|
|
65
|
+
* export const AuthHandler: Handler = {
|
|
66
|
+
* request<T>(context: RequestContext, next: NextFn<T>) {
|
|
67
|
+
* const headers = new Headers(context.request.headers);
|
|
68
|
+
* headers.append('Authorization', `Bearer ${token}`);
|
|
69
|
+
*
|
|
70
|
+
* return next(Object.assign({}, context.request, { headers }));
|
|
71
|
+
* },
|
|
72
|
+
* };
|
|
55
73
|
* ```
|
|
56
74
|
*
|
|
57
75
|
* ```ts [Usage.ts]
|
|
@@ -67,6 +85,20 @@ import { i as SignalRef, t as ARRAY_SIGNAL } from "./configure-B_F639tN.js";
|
|
|
67
85
|
*
|
|
68
86
|
* :::
|
|
69
87
|
*
|
|
88
|
+
* ### RequestManager vs {@link Store.request}
|
|
89
|
+
*
|
|
90
|
+
* A bare `RequestManager` is the low-level primitive: it runs a request through the configured
|
|
91
|
+
* {@link Handler | handler chain} and settles with the raw {@link StructuredDocument}. It has no
|
|
92
|
+
* cache and does not hydrate {@link ReactiveDocument | ReactiveDocuments} unless you register a
|
|
93
|
+
* cache handler yourself via {@link RequestManager.useCache} and the request opts in.
|
|
94
|
+
*
|
|
95
|
+
* {@link Store.request} issues requests through this same `RequestManager`, but with the Store's
|
|
96
|
+
* cache handler and hydration already wired up — inserting the response into the Store's cache
|
|
97
|
+
* and resolving with a `ReactiveDocument` instead. Use `store.request` for anything the Store's
|
|
98
|
+
* cache should own, which is nearly all app code. Reach for `requestManager.request` directly
|
|
99
|
+
* only when there is no {@link Store} involved, or you specifically want the unprocessed
|
|
100
|
+
* `StructuredDocument`.
|
|
101
|
+
*
|
|
70
102
|
* ### Futures
|
|
71
103
|
*
|
|
72
104
|
* The return value of `manager.request` is a `Future`, which allows
|
|
@@ -105,6 +137,7 @@ import { i as SignalRef, t as ARRAY_SIGNAL } from "./configure-B_F639tN.js";
|
|
|
105
137
|
* type StructuredDocument<T> = StructuredDataDocument<T> | StructuredErrorDocument;
|
|
106
138
|
* ```
|
|
107
139
|
*
|
|
140
|
+
* @summary Runs each request through a chain of handlers that can fulfill, modify, or pass it along, and returns a `Future` for the response.
|
|
108
141
|
* @public
|
|
109
142
|
*/
|
|
110
143
|
declare class RequestManager {
|
|
@@ -134,7 +167,23 @@ declare class RequestManager {
|
|
|
134
167
|
/**
|
|
135
168
|
* Issue a Request.
|
|
136
169
|
*
|
|
137
|
-
*
|
|
170
|
+
* Runs `request` through the configured {@link Handler | handler chain} and settles with the
|
|
171
|
+
* {@link StructuredDocument} the chain produces — a plain `{ request, response, content }`
|
|
172
|
+
* object, not a {@link ReactiveDocument}. Caching and hydration only happen if a cache handler
|
|
173
|
+
* has been registered via {@link RequestManager.useCache} and the request opts in; a
|
|
174
|
+
* `RequestManager` created on its own has neither.
|
|
175
|
+
*
|
|
176
|
+
* Most app code should use {@link Store.request} instead, which calls this same method with
|
|
177
|
+
* the Store's cache handler and hydration already configured. Reach for `requestManager.request`
|
|
178
|
+
* directly when there is no {@link Store} involved, or when you want the unprocessed
|
|
179
|
+
* `StructuredDocument`. The `<RT>` generic can be set explicitly or inferred from a request
|
|
180
|
+
* built with {@link withResponseType} or {@link withReactiveResponse} — see
|
|
181
|
+
* [Typing Requests](/guides/the-manual/requests/typing-requests.md).
|
|
182
|
+
*
|
|
183
|
+
* @example
|
|
184
|
+
* ```ts
|
|
185
|
+
* const { content } = await requestManager.request({ url: '/users' });
|
|
186
|
+
* ```
|
|
138
187
|
*
|
|
139
188
|
* @public
|
|
140
189
|
*/
|
|
@@ -187,6 +236,8 @@ interface GodContext {
|
|
|
187
236
|
* allowing the promise to be created before the work that will settle it
|
|
188
237
|
* has begun. See {@link createDeferred}.
|
|
189
238
|
*
|
|
239
|
+
* @summary A promise bundled with the `resolve` and `reject` callbacks that settle it, as returned by
|
|
240
|
+
* `createDeferred`.
|
|
190
241
|
* @public
|
|
191
242
|
*/
|
|
192
243
|
type Deferred<T> = {
|
|
@@ -203,6 +254,8 @@ type Deferred<T> = {
|
|
|
203
254
|
* background reload that other requests may dedupe against without
|
|
204
255
|
* waiting on it.
|
|
205
256
|
*
|
|
257
|
+
* @summary Marks whether a deduped managed request blocks its caller's promise or runs as a
|
|
258
|
+
* non-blocking background reload.
|
|
206
259
|
* @public
|
|
207
260
|
*/
|
|
208
261
|
type ManagedRequestPriority = {
|
|
@@ -221,6 +274,11 @@ type DeferredStream = {
|
|
|
221
274
|
* while providing the ability to {@link Future.abort | abort} the underlying request, and
|
|
222
275
|
* {@link Future.getStream | access the response stream} before the outer promise resolves;
|
|
223
276
|
*
|
|
277
|
+
* The [Using The Response](/guides/the-manual/requests/using-the-response) guide shows
|
|
278
|
+
* how to work with one.
|
|
279
|
+
*
|
|
280
|
+
* @summary The promise returned for every request, resolving with the response document and able to
|
|
281
|
+
* abort the request or expose its response stream early.
|
|
224
282
|
* @public
|
|
225
283
|
*/
|
|
226
284
|
interface Future<T> extends Promise<StructuredDataDocument<T>> {
|
|
@@ -278,6 +336,10 @@ interface Future<T> extends Promise<StructuredDataDocument<T>> {
|
|
|
278
336
|
* used to forward a request to the next handler in the chain. Resolves to a
|
|
279
337
|
* {@link Future} carrying the downstream response.
|
|
280
338
|
*
|
|
339
|
+
* The [Handlers](/guides/the-manual/requests/handlers) guide shows a handler calling it.
|
|
340
|
+
*
|
|
341
|
+
* @summary The function a request handler calls to pass a request to the next handler in the chain,
|
|
342
|
+
* returning a `Future` for its response.
|
|
281
343
|
* @public
|
|
282
344
|
*/
|
|
283
345
|
type NextFn<P = unknown> = (req: RequestInfo) => Future<P>;
|
|
@@ -286,6 +348,8 @@ type NextFn<P = unknown> = (req: RequestInfo) => Future<P>;
|
|
|
286
348
|
as well as a `next` function with which to pass along a request to the next
|
|
287
349
|
handler if it so chooses.
|
|
288
350
|
|
|
351
|
+
The [Handlers](/guides/the-manual/requests/handlers) guide walks through writing one.
|
|
352
|
+
|
|
289
353
|
A handler may be any object with a `request` method. This allows both stateful and non-stateful
|
|
290
354
|
handlers to be utilized.
|
|
291
355
|
|
|
@@ -388,6 +452,8 @@ const manager = new RequestManager()
|
|
|
388
452
|
|
|
389
453
|
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.
|
|
390
454
|
|
|
455
|
+
@summary An object with a `request` method that a RequestManager calls to fulfill a request, either
|
|
456
|
+
itself or by calling `next` to pass it along.
|
|
391
457
|
@public
|
|
392
458
|
*/
|
|
393
459
|
interface Handler {
|
|
@@ -408,6 +474,8 @@ interface Handler {
|
|
|
408
474
|
* A RequestManager may only have one CacheHandler, registered via
|
|
409
475
|
* `manager.useCache(CacheHandler)`.
|
|
410
476
|
*
|
|
477
|
+
* @summary The single handler a RequestManager runs before all others via `useCache`, which may return
|
|
478
|
+
* a result synchronously.
|
|
411
479
|
* @public
|
|
412
480
|
*/
|
|
413
481
|
interface CacheHandler$1 {
|
|
@@ -452,6 +520,8 @@ declare class ContextOwner {
|
|
|
452
520
|
* {@link StructuredDataDocument} that will ultimately be returned by the
|
|
453
521
|
* {@link RequestManager}.
|
|
454
522
|
*
|
|
523
|
+
* @summary The per-request object passed to each handler, exposing the immutable request plus methods to
|
|
524
|
+
* set the response, stream, and request key.
|
|
455
525
|
* @public
|
|
456
526
|
*/
|
|
457
527
|
declare class Context$1 {
|
|
@@ -517,6 +587,9 @@ declare const IS_CACHE_HANDLER: "___(unique) Symbol(IS_CACHE_HANDLER)";
|
|
|
517
587
|
* Else it extends from {@link AggregateError} if the
|
|
518
588
|
* response includes an array of errors, falling back
|
|
519
589
|
* to {@link Error} as its base.
|
|
590
|
+
*
|
|
591
|
+
* @summary The shape of errors thrown by the Fetch handler for failed, aborted, or network-errored
|
|
592
|
+
* requests, carrying the HTTP `status` and `statusText`.
|
|
520
593
|
*/
|
|
521
594
|
interface FetchError extends DOMException {
|
|
522
595
|
/**
|
|
@@ -562,12 +635,18 @@ interface FetchError extends DOMException {
|
|
|
562
635
|
* A {@link RequestInfo.cacheOptions | cacheOptions} flag which, when set,
|
|
563
636
|
* signals that a request should never be handled by the cache-manager and
|
|
564
637
|
* thus will never resolve from cache nor update the cache.
|
|
638
|
+
*
|
|
639
|
+
* @summary Symbol key for a request's `cacheOptions` that, when true, makes the request bypass the CacheHandler so it
|
|
640
|
+
* neither resolves from nor updates the cache.
|
|
565
641
|
*/
|
|
566
642
|
declare const SkipCache: "___(unique) Symbol(SkipCache)";
|
|
567
643
|
/**
|
|
568
644
|
* A {@link RequestInfo} flag which, when set, signals to the store's
|
|
569
645
|
* `instantiateRecord` hook that the resolved content should be hydrated
|
|
570
646
|
* into reactive records rather than returned as raw data.
|
|
647
|
+
*
|
|
648
|
+
* @summary Symbol flag on a request that makes the CacheHandler return reactive records instead of raw cache
|
|
649
|
+
* documents; `store.request` sets it automatically.
|
|
571
650
|
*/
|
|
572
651
|
declare const EnableHydration: "___(unique) Symbol(EnableHydration)";
|
|
573
652
|
/**
|
|
@@ -580,12 +659,16 @@ declare const IS_FUTURE: "___(unique) Symbol(IS_FUTURE)";
|
|
|
580
659
|
declare const STRUCTURED: "___(unique) Symbol(DOC)";
|
|
581
660
|
/**
|
|
582
661
|
* The HTTP methods WarpDrive's request layer supports.
|
|
662
|
+
*
|
|
663
|
+
* @summary Union of the HTTP method strings, including `QUERY`, that a WarpDrive request's `method` may be set to.
|
|
583
664
|
*/
|
|
584
665
|
type HTTPMethod = "QUERY" | "GET" | "OPTIONS" | "POST" | "PUT" | "PATCH" | "DELETE" | "HEAD" | "CONNECT" | "TRACE";
|
|
585
666
|
/**
|
|
586
667
|
* Use these options to adjust {@link CacheHandler} behavior for a request
|
|
587
668
|
* via {@link RequestInfo.cacheOptions}.
|
|
588
669
|
*
|
|
670
|
+
* @summary Per-request settings on `cacheOptions` that control the cache key, forced or background reloads,
|
|
671
|
+
* invalidation by resource type, and cache bypass.
|
|
589
672
|
*/
|
|
590
673
|
interface CacheOptions {
|
|
591
674
|
/**
|
|
@@ -635,6 +718,9 @@ interface CacheOptions {
|
|
|
635
718
|
/**
|
|
636
719
|
* The request shape produced by the `findRecord` request builders, for
|
|
637
720
|
* use with {@link Store.request}.
|
|
721
|
+
*
|
|
722
|
+
* @summary Shape of the `GET` request object that `findRecord` builders return for `store.request`, carrying the url,
|
|
723
|
+
* headers, and requested resource identifier.
|
|
638
724
|
*/
|
|
639
725
|
type FindRecordRequestOptions<RT = unknown, T = unknown> = {
|
|
640
726
|
/**
|
|
@@ -669,6 +755,9 @@ type FindRecordRequestOptions<RT = unknown, T = unknown> = {
|
|
|
669
755
|
/**
|
|
670
756
|
* The request shape produced by the `query` request builders, for
|
|
671
757
|
* use with {@link Store.request}.
|
|
758
|
+
*
|
|
759
|
+
* @summary Shape of the `GET` request object that `query` builders return for `store.request`, carrying the url,
|
|
760
|
+
* headers, and cache options.
|
|
672
761
|
*/
|
|
673
762
|
type QueryRequestOptions<RT = unknown> = {
|
|
674
763
|
/**
|
|
@@ -699,6 +788,9 @@ type QueryRequestOptions<RT = unknown> = {
|
|
|
699
788
|
/**
|
|
700
789
|
* The request shape produced by the `postQuery` request builders, for
|
|
701
790
|
* use with {@link Store.request}.
|
|
791
|
+
*
|
|
792
|
+
* @summary Shape of the `POST` or `QUERY` request object that `postQuery` builders return, with a body and a required
|
|
793
|
+
* cache key since the url cannot serve as one.
|
|
702
794
|
*/
|
|
703
795
|
type PostQueryRequestOptions<RT = unknown> = {
|
|
704
796
|
/**
|
|
@@ -739,6 +831,9 @@ type PostQueryRequestOptions<RT = unknown> = {
|
|
|
739
831
|
/**
|
|
740
832
|
* The request shape produced by the `deleteRecord` request builders, for
|
|
741
833
|
* use with {@link Store.request}.
|
|
834
|
+
*
|
|
835
|
+
* @summary Shape of the `DELETE` request object that `deleteRecord` builders return for `store.request`, identifying
|
|
836
|
+
* the resource being deleted.
|
|
742
837
|
*/
|
|
743
838
|
type DeleteRequestOptions<RT = unknown, T = unknown> = {
|
|
744
839
|
/**
|
|
@@ -786,6 +881,9 @@ type ImmutableRequest<T> = Readonly<T> & {
|
|
|
786
881
|
/**
|
|
787
882
|
* The request shape produced by the `updateRecord` request builders, for
|
|
788
883
|
* use with {@link Store.request}.
|
|
884
|
+
*
|
|
885
|
+
* @summary Shape of the `PATCH` or `PUT` request object that `updateRecord` builders return for `store.request`,
|
|
886
|
+
* identifying the resource being saved.
|
|
789
887
|
*/
|
|
790
888
|
type UpdateRequestOptions<RT = unknown, T = unknown> = {
|
|
791
889
|
/**
|
|
@@ -829,6 +927,9 @@ type UpdateRequestOptions<RT = unknown, T = unknown> = {
|
|
|
829
927
|
/**
|
|
830
928
|
* The request shape produced by the `createRecord` request builders, for
|
|
831
929
|
* use with {@link Store.request}.
|
|
930
|
+
*
|
|
931
|
+
* @summary Shape of the `POST` request object that `createRecord` builders return for `store.request`, identifying the
|
|
932
|
+
* new resource being saved.
|
|
832
933
|
*/
|
|
833
934
|
type CreateRequestOptions<RT = unknown, T = unknown> = {
|
|
834
935
|
/**
|
|
@@ -871,19 +972,31 @@ type CreateRequestOptions<RT = unknown, T = unknown> = {
|
|
|
871
972
|
};
|
|
872
973
|
/**
|
|
873
974
|
* The immutable, handler-facing form of {@link DeleteRequestOptions}.
|
|
975
|
+
*
|
|
976
|
+
* @summary Read-only view of a `deleteRecord` request as a handler receives it, with immutable headers and `records`
|
|
977
|
+
* as resource keys.
|
|
874
978
|
*/
|
|
875
979
|
type ImmutableDeleteRequestOptions = ImmutableRequest<DeleteRequestOptions>;
|
|
876
980
|
/**
|
|
877
981
|
* The immutable, handler-facing form of {@link UpdateRequestOptions}.
|
|
982
|
+
*
|
|
983
|
+
* @summary Read-only view of an `updateRecord` request as a handler receives it, with immutable headers and `records`
|
|
984
|
+
* as resource keys.
|
|
878
985
|
*/
|
|
879
986
|
type ImmutableUpdateRequestOptions = ImmutableRequest<UpdateRequestOptions>;
|
|
880
987
|
/**
|
|
881
988
|
* The immutable, handler-facing form of {@link CreateRequestOptions}.
|
|
989
|
+
*
|
|
990
|
+
* @summary Read-only view of a `createRecord` request as a handler receives it, with immutable headers and `records`
|
|
991
|
+
* as resource keys.
|
|
882
992
|
*/
|
|
883
993
|
type ImmutableCreateRequestOptions = ImmutableRequest<CreateRequestOptions>;
|
|
884
994
|
/**
|
|
885
995
|
* A minimal reference to a resource sufficient to build a URL for it,
|
|
886
996
|
* as accepted by the request builders.
|
|
997
|
+
*
|
|
998
|
+
* @summary A resource reference with a persisted `id` and `type` and an optional `lid`, which is enough for request
|
|
999
|
+
* builders to construct its url.
|
|
887
1000
|
*/
|
|
888
1001
|
type RemotelyAccessibleIdentifier<T extends string = string> = {
|
|
889
1002
|
/**
|
|
@@ -902,6 +1015,9 @@ type RemotelyAccessibleIdentifier<T extends string = string> = {
|
|
|
902
1015
|
/**
|
|
903
1016
|
* Options accepted by the request builders for constraining how a
|
|
904
1017
|
* request's url is constructed and how the request interacts with the cache.
|
|
1018
|
+
*
|
|
1019
|
+
* @summary Options the request builders accept to set reload behavior and override the url's host, namespace, resource
|
|
1020
|
+
* path, and query param serialization.
|
|
905
1021
|
*/
|
|
906
1022
|
interface ConstrainedRequestOptions {
|
|
907
1023
|
/**
|
|
@@ -936,6 +1052,9 @@ interface ConstrainedRequestOptions {
|
|
|
936
1052
|
}
|
|
937
1053
|
/**
|
|
938
1054
|
* Options accepted by the `findRecord` request builders.
|
|
1055
|
+
*
|
|
1056
|
+
* @summary Options the `findRecord` request builders accept: the shared url and reload options plus the relationship
|
|
1057
|
+
* paths to `include`.
|
|
939
1058
|
*/
|
|
940
1059
|
interface FindRecordOptions$2 extends ConstrainedRequestOptions {
|
|
941
1060
|
/**
|
|
@@ -948,6 +1067,9 @@ interface FindRecordOptions$2 extends ConstrainedRequestOptions {
|
|
|
948
1067
|
* containing the original {@link RequestInfo | request},
|
|
949
1068
|
* the {@link Response | response} set by the handler chain (if any), and
|
|
950
1069
|
* the processed content.
|
|
1070
|
+
*
|
|
1071
|
+
* @summary The `{ request, response, content }` object that a request's `Future` resolves with when the request
|
|
1072
|
+
* succeeds.
|
|
951
1073
|
*/
|
|
952
1074
|
interface StructuredDataDocument<T> {
|
|
953
1075
|
/**
|
|
@@ -975,6 +1097,9 @@ interface StructuredDataDocument<T> {
|
|
|
975
1097
|
*
|
|
976
1098
|
* If using the error originates from the {@link Fetch | Fetch Handler}
|
|
977
1099
|
* the error will be a {@link FetchError}
|
|
1100
|
+
*
|
|
1101
|
+
* @summary The Error a request's `Future` rejects with when the request fails, carrying the `request`, `response`,
|
|
1102
|
+
* `error`, and any `content` received.
|
|
978
1103
|
*/
|
|
979
1104
|
interface StructuredErrorDocument<T = unknown> extends Error {
|
|
980
1105
|
/**
|
|
@@ -1002,11 +1127,16 @@ interface StructuredErrorDocument<T = unknown> extends Error {
|
|
|
1002
1127
|
* A union of the resolve/reject data types for the {@link Future}
|
|
1003
1128
|
* returned by {@link Store.request | request}
|
|
1004
1129
|
*
|
|
1130
|
+
* The [Using The Response](/guides/the-manual/requests/using-the-response) guide shows
|
|
1131
|
+
* how to read one.
|
|
1132
|
+
*
|
|
1005
1133
|
* See also the docs for:
|
|
1006
1134
|
*
|
|
1007
1135
|
* - {@link Future}
|
|
1008
1136
|
* - {@link StructuredDataDocument} (resolved/successful requests)
|
|
1009
1137
|
* - {@link StructuredErrorDocument} (rejected/failed requests)
|
|
1138
|
+
*
|
|
1139
|
+
* @summary Union of the success and error documents that a request's `Future` resolves or rejects with.
|
|
1010
1140
|
*/
|
|
1011
1141
|
type StructuredDocument<T> = StructuredDataDocument<T> | StructuredErrorDocument<T>;
|
|
1012
1142
|
/**
|
|
@@ -1082,6 +1212,9 @@ interface NativeRequestInit {
|
|
|
1082
1212
|
/**
|
|
1083
1213
|
* A read-only {@link Headers} instance, as passed to {@link Handler | Handlers}
|
|
1084
1214
|
* via {@link ImmutableRequestInfo.headers}.
|
|
1215
|
+
*
|
|
1216
|
+
* @summary Read-only `Headers` that handlers see on a request, adding `toJSON` to serialize them as `[key, value]`
|
|
1217
|
+
* pairs and an optional mutable `clone`.
|
|
1085
1218
|
*/
|
|
1086
1219
|
interface ImmutableHeaders extends Headers {
|
|
1087
1220
|
/**
|
|
@@ -1100,6 +1233,11 @@ interface ImmutableHeaders extends Headers {
|
|
|
1100
1233
|
* This interface is used to define the shape of a request that can be made via
|
|
1101
1234
|
* either the {@link RequestManager.request} or {@link Store.request} methods.
|
|
1102
1235
|
*
|
|
1236
|
+
* The [Making Requests](/guides/the-manual/requests/#request-options) guide explains
|
|
1237
|
+
* its options.
|
|
1238
|
+
*
|
|
1239
|
+
* @summary Describes a request for `store.request` or `RequestManager.request`: native fetch options plus cache
|
|
1240
|
+
* options, operation name, records, data, and the store.
|
|
1103
1241
|
* @privateRemarks
|
|
1104
1242
|
* - [MDN Reference (fetch)](https://developer.mozilla.org/docs/Web/API/Window/fetch)
|
|
1105
1243
|
* - [MDN Reference (RequestInit)](https://developer.mozilla.org/en-US/docs/Web/API/RequestInit)
|
|
@@ -1191,6 +1329,8 @@ interface RequestInfo<RT = unknown> extends NativeRequestInit {
|
|
|
1191
1329
|
/**
|
|
1192
1330
|
* Immutable version of {@link RequestInfo}. This is what is passed to handlers.
|
|
1193
1331
|
*
|
|
1332
|
+
* @summary Read-only form of a request as handlers receive it, with frozen headers, data, options, and cache options
|
|
1333
|
+
* and no `controller`.
|
|
1194
1334
|
*/
|
|
1195
1335
|
type ImmutableRequestInfo<RT = unknown> = Readonly<Omit<RequestInfo<RT>, "controller">> & {
|
|
1196
1336
|
/**
|
|
@@ -1216,6 +1356,9 @@ type ImmutableRequestInfo<RT = unknown> = Readonly<Omit<RequestInfo<RT>, "contro
|
|
|
1216
1356
|
/**
|
|
1217
1357
|
* An immutable, JSON-serializable subset of the native {@link Response}
|
|
1218
1358
|
* interface.
|
|
1359
|
+
*
|
|
1360
|
+
* @summary Immutable, JSON-serializable snapshot of a fetch `Response`'s headers, status, url, and type, usable in
|
|
1361
|
+
* place of a `Response` in request results.
|
|
1219
1362
|
*/
|
|
1220
1363
|
interface ResponseInfo {
|
|
1221
1364
|
/**
|
|
@@ -1251,6 +1394,11 @@ interface ResponseInfo {
|
|
|
1251
1394
|
* The object a {@link Handler} uses to fulfill a request: it provides a
|
|
1252
1395
|
* readonly view of the {@link RequestContext.request | request} and methods
|
|
1253
1396
|
* for supplying the {@link Future}'s stream and final response.
|
|
1397
|
+
*
|
|
1398
|
+
* The [Handlers](/guides/the-manual/requests/handlers) guide shows a handler using it.
|
|
1399
|
+
*
|
|
1400
|
+
* @summary Object passed to each request handler with the immutable request, a request id, and methods for setting the
|
|
1401
|
+
* response stream and the response.
|
|
1254
1402
|
*/
|
|
1255
1403
|
interface RequestContext {
|
|
1256
1404
|
/**
|
|
@@ -1335,6 +1483,8 @@ type KeyOrString<T> = keyof T & string extends never ? string : keyof T & string
|
|
|
1335
1483
|
* for @warp-drive-mirror/legacy/model or when wrapping schema for legacy
|
|
1336
1484
|
* Adapters/Serializers.
|
|
1337
1485
|
*
|
|
1486
|
+
* @summary Legacy shape of a Model class's static schema API (fields, attributes, relationships, iterators) used
|
|
1487
|
+
* by the legacy schema service and Adapters/Serializers.
|
|
1338
1488
|
*/
|
|
1339
1489
|
interface ModelSchema<T = unknown> {
|
|
1340
1490
|
/**
|
|
@@ -1532,6 +1682,9 @@ declare class RecordReference {
|
|
|
1532
1682
|
* Options shared by {@link FindRecordOptions} and {@link FindAllOptions}
|
|
1533
1683
|
* for controlling reload behavior and adapter/serializer specific
|
|
1534
1684
|
* configuration when using the legacy Adapter/Serializer network layer.
|
|
1685
|
+
*
|
|
1686
|
+
* @summary Legacy reload, background-reload, include, and adapterOptions settings shared by `store.findRecord` and
|
|
1687
|
+
* `store.findAll`.
|
|
1535
1688
|
*/
|
|
1536
1689
|
interface BaseFinderOptions {
|
|
1537
1690
|
/**
|
|
@@ -1563,6 +1716,9 @@ interface BaseFinderOptions {
|
|
|
1563
1716
|
}
|
|
1564
1717
|
/**
|
|
1565
1718
|
* Options for `store.findRecord()`.
|
|
1719
|
+
*
|
|
1720
|
+
* @summary Legacy options for `store.findRecord`, adding a discouraged `preload` of field values to the shared
|
|
1721
|
+
* reload and adapter settings.
|
|
1566
1722
|
*/
|
|
1567
1723
|
interface FindRecordOptions extends BaseFinderOptions {
|
|
1568
1724
|
/**
|
|
@@ -1587,16 +1743,24 @@ interface FindRecordOptions extends BaseFinderOptions {
|
|
|
1587
1743
|
* {@link LegacyResourceQuery}, these options are not sent to the server;
|
|
1588
1744
|
* only `adapterOptions` is recognized by the store, and it is passed
|
|
1589
1745
|
* through to `adapter.query`/`adapter.queryRecord` via the request snapshot.
|
|
1746
|
+
*
|
|
1747
|
+
* @summary Legacy options for `store.query` and `store.queryRecord`, of which only `adapterOptions` is used, passed
|
|
1748
|
+
* to the adapter rather than the server.
|
|
1590
1749
|
*/
|
|
1591
1750
|
type QueryOptions = { [K in string | "adapterOptions"]?: K extends "adapterOptions" ? Record<string, unknown> : unknown; };
|
|
1592
1751
|
/**
|
|
1593
1752
|
* Options for `store.findAll()`.
|
|
1753
|
+
*
|
|
1754
|
+
* @summary Legacy reload, background-reload, include, and adapterOptions settings for `store.findAll`.
|
|
1594
1755
|
*/
|
|
1595
1756
|
type FindAllOptions = BaseFinderOptions;
|
|
1596
1757
|
/**
|
|
1597
1758
|
* An opaque query object for `store.query()` and `store.queryRecord()`
|
|
1598
1759
|
* that is passed as-is to the adapter, which is responsible for turning
|
|
1599
1760
|
* it into request query parameters.
|
|
1761
|
+
*
|
|
1762
|
+
* @summary Legacy query object for `store.query` and `store.queryRecord` that the adapter turns into request query
|
|
1763
|
+
* params, with an optional `include`.
|
|
1600
1764
|
*/
|
|
1601
1765
|
type LegacyResourceQuery = {
|
|
1602
1766
|
/**
|
|
@@ -1616,6 +1780,9 @@ type LegacyResourceQuery = {
|
|
|
1616
1780
|
* This should only be used for temporary migration purposes
|
|
1617
1781
|
* to the new schema system when migrating from either Model
|
|
1618
1782
|
* or ModelFragments.
|
|
1783
|
+
*
|
|
1784
|
+
* @summary Registers named methods, getters, and values to add to ReactiveResources, ReactiveObjects,
|
|
1785
|
+
* or ReactiveArrays; meant only as a temporary aid when migrating from Model or ModelFragments.
|
|
1619
1786
|
*/
|
|
1620
1787
|
interface CAUTION_MEGA_DANGER_ZONE_Extension {
|
|
1621
1788
|
/**
|
|
@@ -1712,6 +1879,9 @@ interface CAUTION_MEGA_DANGER_ZONE_Extension {
|
|
|
1712
1879
|
* Describes one feature added to a resource by a schema extension, as
|
|
1713
1880
|
* classified by {@link processExtension} from the property descriptor it
|
|
1714
1881
|
* was declared with (a method, a plain value, or a getter/setter pair).
|
|
1882
|
+
*
|
|
1883
|
+
* @summary One normalized feature of a schema extension, tagged by kind as a method, a readonly or
|
|
1884
|
+
* mutable value, or a getter/setter accessor.
|
|
1715
1885
|
*/
|
|
1716
1886
|
type ExtensionDef = {
|
|
1717
1887
|
/** A callable feature, installed as a method. */
|
|
@@ -1750,6 +1920,9 @@ type ExtensionDef = {
|
|
|
1750
1920
|
* The result of {@link processExtension} normalizing a
|
|
1751
1921
|
* {@link CAUTION_MEGA_DANGER_ZONE_Extension} into a lookup of its features
|
|
1752
1922
|
* by name.
|
|
1923
|
+
*
|
|
1924
|
+
* @summary A registered schema extension normalized into its kind, name, and a map of its features
|
|
1925
|
+
* keyed by property name.
|
|
1753
1926
|
*/
|
|
1754
1927
|
interface ProcessedExtension {
|
|
1755
1928
|
/** Whether this extension applies to objects/resources or to arrays. */
|
|
@@ -1779,14 +1952,19 @@ interface ExtensibleField {
|
|
|
1779
1952
|
* Utility for constructing a ResourceSchema with the recommended
|
|
1780
1953
|
* fields for the PolarisMode experience.
|
|
1781
1954
|
*
|
|
1955
|
+
* The [ResourceSchemas](/guides/the-manual/schemas/resources/) guide shows how to
|
|
1956
|
+
* create a schema with it.
|
|
1957
|
+
*
|
|
1782
1958
|
* Using this requires registering the PolarisMode derivations
|
|
1783
1959
|
*
|
|
1784
1960
|
* ```ts
|
|
1785
|
-
* import { registerDerivations } from '@warp-drive-mirror/
|
|
1961
|
+
* import { registerDerivations } from '@warp-drive-mirror/core/reactive';
|
|
1786
1962
|
*
|
|
1787
1963
|
* registerDerivations(schema);
|
|
1788
1964
|
* ```
|
|
1789
1965
|
*
|
|
1966
|
+
* @summary Adds the default `id` identity plus `$key`, `$type`, and `constructor` derived fields to a
|
|
1967
|
+
* PolarisMode resource schema.
|
|
1790
1968
|
* @public
|
|
1791
1969
|
* @param schema
|
|
1792
1970
|
* @return {PolarisResourceSchema}
|
|
@@ -1829,6 +2007,8 @@ interface FromIdentityDerivation {
|
|
|
1829
2007
|
*
|
|
1830
2008
|
* `^` returns the entire identifier object.
|
|
1831
2009
|
*
|
|
2010
|
+
* @summary The `@identity` derivation, which reads a record's `id`, `lid`, `type`, or whole resource key
|
|
2011
|
+
* for use in derived fields.
|
|
1832
2012
|
* @public
|
|
1833
2013
|
*/
|
|
1834
2014
|
declare const fromIdentity: FromIdentityDerivation;
|
|
@@ -1837,9 +2017,14 @@ declare const fromIdentity: FromIdentityDerivation;
|
|
|
1837
2017
|
* to use the PolarisMode defaults provided by
|
|
1838
2018
|
*
|
|
1839
2019
|
* ```ts
|
|
1840
|
-
* import { withDefaults } from '@warp-drive-mirror/
|
|
2020
|
+
* import { withDefaults } from '@warp-drive-mirror/core/reactive';
|
|
1841
2021
|
* ```
|
|
1842
2022
|
*
|
|
2023
|
+
* The [Derivations](/guides/the-manual/schemas/derivations#about-built-in-derivations)
|
|
2024
|
+
* guide explains when you need to call it.
|
|
2025
|
+
*
|
|
2026
|
+
* @summary Registers the `@identity` and `@constructor` derivations that schemas built with
|
|
2027
|
+
* `withDefaults` depend on.
|
|
1843
2028
|
* @public
|
|
1844
2029
|
*/
|
|
1845
2030
|
declare function registerDerivations(schema: SchemaService): void;
|
|
@@ -1856,6 +2041,9 @@ interface InternalSchema {
|
|
|
1856
2041
|
* Defines how to convert a `GenericField`, `ObjectField`, or `ArrayField`
|
|
1857
2042
|
* between the raw value `T` stored in the cache and the presentation value
|
|
1858
2043
|
* `PT` exposed on the record.
|
|
2044
|
+
*
|
|
2045
|
+
* @summary A registered converter between a field's raw cache value and the value exposed on the
|
|
2046
|
+
* record, with optional default.
|
|
1859
2047
|
*/
|
|
1860
2048
|
type Transformation<T extends Value = Value, PT = unknown> = {
|
|
1861
2049
|
/** Converts the presentation value into the raw value to store in the cache. */
|
|
@@ -1879,6 +2067,12 @@ interface SchemaService$1 {
|
|
|
1879
2067
|
/**
|
|
1880
2068
|
* A SchemaService designed to work with dynamically registered schemas.
|
|
1881
2069
|
*
|
|
2070
|
+
* The [Schemas](/guides/the-manual/schemas/) guide shows how to register schemas
|
|
2071
|
+
* with it, and [Advanced Store Configuration](/guides/configuration/advanced#add-a-source-for-schema-for-your-data)
|
|
2072
|
+
* shows how to give a store one.
|
|
2073
|
+
*
|
|
2074
|
+
* @summary The default schema service, which stores resource and object schemas, traits, derivations,
|
|
2075
|
+
* transformations, hash functions and extensions registered at runtime.
|
|
1882
2076
|
* @public
|
|
1883
2077
|
*/
|
|
1884
2078
|
declare class SchemaService$1 implements SchemaService {
|
|
@@ -1967,6 +2161,8 @@ declare class SchemaService$1 implements SchemaService {
|
|
|
1967
2161
|
* attribute name, as returned by the deprecated
|
|
1968
2162
|
* {@link SchemaService.attributesDefinitionFor | attributesDefinitionFor} hook.
|
|
1969
2163
|
*
|
|
2164
|
+
* @summary Legacy attribute field definitions keyed by attribute name, returned by the deprecated
|
|
2165
|
+
* `attributesDefinitionFor` schema hook.
|
|
1970
2166
|
* @public
|
|
1971
2167
|
*/
|
|
1972
2168
|
type AttributesSchema = Record<string, LegacyAttributeField>;
|
|
@@ -1975,6 +2171,8 @@ type AttributesSchema = Record<string, LegacyAttributeField>;
|
|
|
1975
2171
|
* relationship name, as returned by the deprecated
|
|
1976
2172
|
* {@link SchemaService.relationshipsDefinitionFor | relationshipsDefinitionFor} hook.
|
|
1977
2173
|
*
|
|
2174
|
+
* @summary Legacy relationship field definitions keyed by relationship name, returned by the deprecated
|
|
2175
|
+
* `relationshipsDefinitionFor` schema hook.
|
|
1978
2176
|
* @public
|
|
1979
2177
|
*/
|
|
1980
2178
|
type RelationshipsSchema = Record<string, LegacyRelationshipField>;
|
|
@@ -1985,6 +2183,10 @@ interface ObjectWithStringTypeProperty {
|
|
|
1985
2183
|
* The SchemaService provides the ability to query for information about the structure
|
|
1986
2184
|
* of any resource type.
|
|
1987
2185
|
*
|
|
2186
|
+
* The [Schemas](/guides/the-manual/schemas/) guide shows how to register schemas
|
|
2187
|
+
* with it, and [Advanced Store Configuration](/guides/configuration/advanced#add-a-source-for-schema-for-your-data)
|
|
2188
|
+
* shows how to give a store one.
|
|
2189
|
+
*
|
|
1988
2190
|
* Applications can provide any implementation of the SchemaService they please so long
|
|
1989
2191
|
* as it conforms to this interface.
|
|
1990
2192
|
*
|
|
@@ -2029,6 +2231,8 @@ interface ObjectWithStringTypeProperty {
|
|
|
2029
2231
|
* }
|
|
2030
2232
|
* ```
|
|
2031
2233
|
*
|
|
2234
|
+
* @summary The contract a store's schema service implements to answer which resource types, traits, fields,
|
|
2235
|
+
* transformations, and derivations exist.
|
|
2032
2236
|
* @public
|
|
2033
2237
|
*/
|
|
2034
2238
|
interface SchemaService {
|
|
@@ -2470,6 +2674,8 @@ implement this hook.
|
|
|
2470
2674
|
|
|
2471
2675
|
⚠️ Caution: Requests that do not have a `method` assigned are assumed to be `GET`
|
|
2472
2676
|
|
|
2677
|
+
@summary Overrides how the store generates `lid` cache keys for resources and documents; must be set
|
|
2678
|
+
before the store is created.
|
|
2473
2679
|
@public
|
|
2474
2680
|
*/
|
|
2475
2681
|
declare function setIdentifierGenerationMethod(method: GenerationMethod | null): void;
|
|
@@ -2502,6 +2708,8 @@ prior to this `UpdateMethod` being called; however, calls to the parent method
|
|
|
2502
2708
|
`updateRecordIdentifier` that attempt to change the `id` or calling update
|
|
2503
2709
|
without providing an `id` when one is missing will throw an error.
|
|
2504
2710
|
|
|
2711
|
+
@summary Registers a callback run when an existing resource key receives new data, for updating your
|
|
2712
|
+
own secondary lookup tables.
|
|
2505
2713
|
@public
|
|
2506
2714
|
*/
|
|
2507
2715
|
declare function setIdentifierUpdateMethod(method: UpdateMethod | null): void;
|
|
@@ -2517,6 +2725,8 @@ import { setIdentifierForgetMethod } from '@warp-drive-mirror/core';
|
|
|
2517
2725
|
Takes method which can expect to receive an existing `Identifier` that should be eliminated
|
|
2518
2726
|
from any secondary lookup tables or caches that the user has populated for it.
|
|
2519
2727
|
|
|
2728
|
+
@summary Registers a callback run when the store releases a resource key, for cleaning up your own
|
|
2729
|
+
lookup tables.
|
|
2520
2730
|
@public
|
|
2521
2731
|
*/
|
|
2522
2732
|
declare function setIdentifierForgetMethod(method: ForgetMethod | null): void;
|
|
@@ -2534,6 +2744,8 @@ Takes a method which can expect to be called when the parent application is dest
|
|
|
2534
2744
|
If you have properly used a WeakMap to encapsulate the state of your customization
|
|
2535
2745
|
to the application instance, you may not need to implement the `resetMethod`.
|
|
2536
2746
|
|
|
2747
|
+
@summary Registers a callback run when the store's key cache is torn down, for resetting any custom
|
|
2748
|
+
key-generation state.
|
|
2537
2749
|
@public
|
|
2538
2750
|
*/
|
|
2539
2751
|
declare function setIdentifierResetMethod(method: ResetMethod | null): void;
|
|
@@ -2550,6 +2762,8 @@ This configuration MUST occur prior to the store instance being created.
|
|
|
2550
2762
|
import { setKeyInfoForResource } from '@warp-drive-mirror/core';
|
|
2551
2763
|
```
|
|
2552
2764
|
|
|
2765
|
+
@summary Overrides how the store derives the `type` and `id` of a new `ResourceKey` from resource data;
|
|
2766
|
+
must be set before the store is created.
|
|
2553
2767
|
@public
|
|
2554
2768
|
*/
|
|
2555
2769
|
declare function setKeyInfoForResource(method: KeyInfoMethod | null): void;
|
|
@@ -2684,15 +2898,24 @@ interface PrivateCacheKeyManager extends CacheKeyManager {
|
|
|
2684
2898
|
type UnsubscribeToken$1 = object;
|
|
2685
2899
|
/**
|
|
2686
2900
|
* The kinds of change notifications the {@link NotificationManager} can emit for a resource.
|
|
2901
|
+
*
|
|
2902
|
+
* @summary The lifecycle notification kinds sent to resource subscribers: `added`, `removed`, `updated`,
|
|
2903
|
+
* or `state`.
|
|
2687
2904
|
*/
|
|
2688
2905
|
type CacheOperation$1 = "added" | "removed" | "updated" | "state";
|
|
2689
2906
|
/**
|
|
2690
2907
|
* The kinds of change notifications the {@link NotificationManager} can emit for a request document.
|
|
2908
|
+
*
|
|
2909
|
+
* @summary The notification kinds sent to request document subscribers, such as `updated` or
|
|
2910
|
+
* `invalidated`.
|
|
2691
2911
|
*/
|
|
2692
2912
|
type DocumentCacheOperation$1 = "invalidated" | "added" | "removed" | "updated" | "state";
|
|
2693
2913
|
/**
|
|
2694
2914
|
* The full set of notification kinds the {@link NotificationManager} can emit for a resource,
|
|
2695
2915
|
* including both {@link CacheOperation}s and finer-grained field-level change notifications.
|
|
2916
|
+
*
|
|
2917
|
+
* @summary Every notification kind a resource subscriber can receive, from lifecycle operations to
|
|
2918
|
+
* `attributes`, `relationships`, `errors`, `meta`, and `identity` changes.
|
|
2696
2919
|
*/
|
|
2697
2920
|
type NotificationType = "attributes" | "relationships" | "identity" | "errors" | "meta" | CacheOperation$1;
|
|
2698
2921
|
/**
|
|
@@ -2701,6 +2924,8 @@ type NotificationType = "attributes" | "relationships" | "identity" | "errors" |
|
|
|
2701
2924
|
* the `'attributes'` or `'relationships'` namespaces in a single call
|
|
2702
2925
|
* instead of once per key.
|
|
2703
2926
|
*
|
|
2927
|
+
* @summary A set of field names passed to `notify` or `notifyChange` to report many `attributes` or
|
|
2928
|
+
* `relationships` changes in one call.
|
|
2704
2929
|
* @since 5.9.0
|
|
2705
2930
|
* @public
|
|
2706
2931
|
*/
|
|
@@ -2736,6 +2961,8 @@ type NotifyKeys = Set<string>;
|
|
|
2736
2961
|
* `DocumentCacheOperation` values) are never filtered by channel since they
|
|
2737
2962
|
* have no local/remote duality.
|
|
2738
2963
|
*
|
|
2964
|
+
* @summary Scopes an `attributes` or `relationships` notification to a resource's local (editable) or
|
|
2965
|
+
* remote (persisted) view so only matching subscribers hear it.
|
|
2739
2966
|
* @public
|
|
2740
2967
|
*/
|
|
2741
2968
|
type NotificationChannel = "local" | "remote";
|
|
@@ -2757,6 +2984,8 @@ interface DocumentOperationCallback$1 {
|
|
|
2757
2984
|
* This Feature is what allows WarpDrive to create subscriptions that
|
|
2758
2985
|
* work with any framework or change-notification system.
|
|
2759
2986
|
*
|
|
2987
|
+
* @summary The store service that lets code subscribe to and batch-deliver change notifications for
|
|
2988
|
+
* cached resources and request documents.
|
|
2760
2989
|
* @hideconstructor
|
|
2761
2990
|
* @public
|
|
2762
2991
|
*/
|
|
@@ -2864,6 +3093,8 @@ interface PrivateNotificationManager extends NotificationManager$1 {
|
|
|
2864
3093
|
*
|
|
2865
3094
|
* This class cannot be directly instantiated.
|
|
2866
3095
|
*
|
|
3096
|
+
* @summary The narrow slice of Store API handed to a Cache via `createCache`, for key lookup, schema access, record
|
|
3097
|
+
* id updates, and change notifications.
|
|
2867
3098
|
* @public
|
|
2868
3099
|
*/
|
|
2869
3100
|
type CacheCapabilitiesManager$1 = {
|
|
@@ -3025,12 +3256,16 @@ type OpaqueRecordInstance = unknown;
|
|
|
3025
3256
|
* A hash of changed attributes with the key being the attribute name and the value being an
|
|
3026
3257
|
* array of `[oldValue, newValue]`.
|
|
3027
3258
|
*
|
|
3259
|
+
* @summary Map of attribute name to `[oldValue, newValue]` for a resource's uncommitted attribute changes, as
|
|
3260
|
+
* returned by `cache.changedAttrs`.
|
|
3028
3261
|
*/
|
|
3029
3262
|
type ChangedAttributesHash = Record<string, [Value | undefined, Value]>;
|
|
3030
3263
|
/**
|
|
3031
3264
|
* Describes the local (uncommitted) changes to a single relationship,
|
|
3032
3265
|
* as returned by {@link Cache.changedRelationships}.
|
|
3033
3266
|
*
|
|
3267
|
+
* @summary Remote versus local state of one relationship, with additions, removals, and reordering for to-many,
|
|
3268
|
+
* as returned by `cache.changedRelationships`.
|
|
3034
3269
|
* @example
|
|
3035
3270
|
* ```ts
|
|
3036
3271
|
* const diff: RelationshipDiff = {
|
|
@@ -3088,6 +3323,11 @@ type RelationshipDiff = {
|
|
|
3088
3323
|
* A Cache handles in-memory storage of Document and Resource
|
|
3089
3324
|
* data.
|
|
3090
3325
|
*
|
|
3326
|
+
* The [Caching](/guides/the-manual/caching/#how-the-cache-works) guide explains how
|
|
3327
|
+
* the cache stores that data.
|
|
3328
|
+
*
|
|
3329
|
+
* @summary Contract a Cache implementation fulfills to store, patch, mutate, and read document and resource data
|
|
3330
|
+
* for the Store, including local changes, errors, and SSR hydration.
|
|
3091
3331
|
* @public
|
|
3092
3332
|
*/
|
|
3093
3333
|
interface Cache {
|
|
@@ -4016,6 +4256,8 @@ declare function graphFor(store: CacheCapabilitiesManager$1 | Store$1): Graph;
|
|
|
4016
4256
|
* callbacks that settle it, so the promise can be handed out before the
|
|
4017
4257
|
* work that will settle it has started.
|
|
4018
4258
|
*
|
|
4259
|
+
* @summary Creates a promise together with its `resolve` and `reject` callbacks so it can be handed out
|
|
4260
|
+
* before it is settled.
|
|
4019
4261
|
* @public
|
|
4020
4262
|
*/
|
|
4021
4263
|
declare function createDeferred<T>(): Deferred<T>;
|
|
@@ -4034,6 +4276,8 @@ type CacheResult<T = unknown, E = unknown> = {
|
|
|
4034
4276
|
* (and by `getPromiseState`). Anything that is at least `then`/`catch`/`finally`
|
|
4035
4277
|
* "shaped" (including a real `Promise` or {@link Future}) satisfies this.
|
|
4036
4278
|
*
|
|
4279
|
+
* @summary Any promise-like value with `then`, `catch`, and `finally`, as accepted by the promise-result
|
|
4280
|
+
* cache and `getPromiseState`.
|
|
4037
4281
|
* @public
|
|
4038
4282
|
*/
|
|
4039
4283
|
type Awaitable<T = unknown, E = unknown> = {
|
|
@@ -4061,6 +4305,8 @@ type Awaitable<T = unknown, E = unknown> = {
|
|
|
4061
4305
|
* outcome can be synchronously read later via {@link getPromiseResult},
|
|
4062
4306
|
* without needing to await it again.
|
|
4063
4307
|
*
|
|
4308
|
+
* @summary Records a promise's settled value or error so it can later be read synchronously with
|
|
4309
|
+
* `getPromiseResult`.
|
|
4064
4310
|
* @public
|
|
4065
4311
|
*/
|
|
4066
4312
|
declare function setPromiseResult(promise: Promise<unknown> | Awaitable, result: CacheResult): void;
|
|
@@ -4068,6 +4314,8 @@ declare function setPromiseResult(promise: Promise<unknown> | Awaitable, result:
|
|
|
4068
4314
|
* Synchronously read the settled result (or error) previously recorded for
|
|
4069
4315
|
* a promise-like value via {@link setPromiseResult}, if any.
|
|
4070
4316
|
*
|
|
4317
|
+
* @summary Synchronously returns the settled value or error previously recorded for a promise, or
|
|
4318
|
+
* `undefined` if none was recorded.
|
|
4071
4319
|
* @public
|
|
4072
4320
|
*/
|
|
4073
4321
|
declare function getPromiseResult<T, E>(promise: Promise<T> | Awaitable<T, E>): CacheResult<T, E> | undefined;
|
|
@@ -4076,6 +4324,9 @@ declare function getPromiseResult<T, E>(promise: Promise<T> | Awaitable<T, E>):
|
|
|
4076
4324
|
/**
|
|
4077
4325
|
* Brands the supplied object with the supplied response type.
|
|
4078
4326
|
*
|
|
4327
|
+
* The [Typing Requests](/guides/the-manual/requests/typing-requests) guide shows how
|
|
4328
|
+
* to use it.
|
|
4329
|
+
*
|
|
4079
4330
|
* ```ts
|
|
4080
4331
|
* import type { ReactiveDataDocument } from '@warp-drive-mirror/core/reactive';
|
|
4081
4332
|
* import { withResponseType } from '@warp-drive-mirror/core/request';
|
|
@@ -4088,6 +4339,8 @@ declare function getPromiseResult<T, E>(promise: Promise<T> | Awaitable<T, E>):
|
|
|
4088
4339
|
* result.content.data; // will have type User
|
|
4089
4340
|
* ```
|
|
4090
4341
|
*
|
|
4342
|
+
* @summary Types a request object with the response type that `store.request` or `RequestManager.request`
|
|
4343
|
+
* should resolve with; no runtime effect.
|
|
4091
4344
|
*/
|
|
4092
4345
|
declare function withResponseType<T>(obj: RequestInfo): RequestInfo<T> & {
|
|
4093
4346
|
/** The branded response type. Present only at the type level; carries no runtime value. */
|
|
@@ -4098,6 +4351,9 @@ declare function withResponseType<T>(obj: RequestInfo): RequestInfo<T> & {
|
|
|
4098
4351
|
* wrapped in {@link ReactiveDataDocument}. This is a convenience for
|
|
4099
4352
|
* the common case of using {@link withResponseType} with `ReactiveDataDocument`.
|
|
4100
4353
|
*
|
|
4354
|
+
* The [Typing Requests](/guides/the-manual/requests/typing-requests#typing-reactive-responses)
|
|
4355
|
+
* guide shows how to use it.
|
|
4356
|
+
*
|
|
4101
4357
|
* ```ts
|
|
4102
4358
|
* import { withReactiveResponse } from '@warp-drive-mirror/core/request';
|
|
4103
4359
|
* import type { User } from '#/data/user.ts'
|
|
@@ -4121,6 +4377,8 @@ declare function withResponseType<T>(obj: RequestInfo): RequestInfo<T> & {
|
|
|
4121
4377
|
* result.content.meta?.total; // number | undefined
|
|
4122
4378
|
* ```
|
|
4123
4379
|
*
|
|
4380
|
+
* @summary Types a request object so its response resolves as a `ReactiveDataDocument` of the given
|
|
4381
|
+
* data and meta types; no runtime effect.
|
|
4124
4382
|
* @public
|
|
4125
4383
|
*/
|
|
4126
4384
|
declare function withReactiveResponse<T, M extends Meta | undefined = Meta | undefined, E extends object = object, EM extends Meta | undefined = M>(obj: RequestInfo): RequestInfo<ReactiveDataDocument<T, M, E, EM>> & {
|
|
@@ -4128,6 +4386,8 @@ declare function withReactiveResponse<T, M extends Meta | undefined = Meta | und
|
|
|
4128
4386
|
[RequestSignature]: ReactiveDataDocument<T, M, E, EM>;
|
|
4129
4387
|
};
|
|
4130
4388
|
/**
|
|
4389
|
+
* @summary Deprecated alias for `withResponseType`, which types a request object with its expected
|
|
4390
|
+
* response type.
|
|
4131
4391
|
* @deprecated use {@link withResponseType} instead
|
|
4132
4392
|
*/
|
|
4133
4393
|
declare const withBrand: typeof withResponseType;
|
|
@@ -4140,6 +4400,9 @@ type LooseStoreRequestInfo<RT = unknown> = Omit<ImmutableRequestInfo<RT>, "recor
|
|
|
4140
4400
|
/**
|
|
4141
4401
|
* The request shape accepted by {@link Store.request}, either a fully-formed
|
|
4142
4402
|
* {@link ImmutableRequestInfo} or the looser {@link LooseStoreRequestInfo}.
|
|
4403
|
+
*
|
|
4404
|
+
* @summary The request object `store.request` accepts, either a full immutable request info or a looser
|
|
4405
|
+
* form with plain `records` and `headers`.
|
|
4143
4406
|
*/
|
|
4144
4407
|
type StoreRequestInput<RT = unknown> = ImmutableRequestInfo<RT> | LooseStoreRequestInfo<RT>;
|
|
4145
4408
|
interface StoreRequestContext extends RequestContext {
|
|
@@ -4151,6 +4414,9 @@ interface StoreRequestContext extends RequestContext {
|
|
|
4151
4414
|
/**
|
|
4152
4415
|
* A CacheHandler that adds support for using an WarpDrive Cache with a RequestManager.
|
|
4153
4416
|
*
|
|
4417
|
+
* The [Caching](/guides/the-manual/caching/) guide explains how it decides whether a
|
|
4418
|
+
* request can use the cache.
|
|
4419
|
+
*
|
|
4154
4420
|
* This handler will only run when a request has supplied a `store` instance. Requests
|
|
4155
4421
|
* issued by the store via `store.request()` will automatically have the `store` instance
|
|
4156
4422
|
* attached to the request.
|
|
@@ -4186,7 +4452,10 @@ interface StoreRequestContext extends RequestContext {
|
|
|
4186
4452
|
* method: 'GET',
|
|
4187
4453
|
* [EnableHydration]: true
|
|
4188
4454
|
* });
|
|
4455
|
+
* ```
|
|
4189
4456
|
*
|
|
4457
|
+
* @summary The RequestManager cache handler that serves, dedupes, and caches store requests and returns
|
|
4458
|
+
* reactive documents when hydration is enabled.
|
|
4190
4459
|
*/
|
|
4191
4460
|
declare const CacheHandler: CacheHandler$1;
|
|
4192
4461
|
//#endregion
|
|
@@ -4196,12 +4465,18 @@ declare const CacheHandler: CacheHandler$1;
|
|
|
4196
4465
|
* the store's `lifetimes` property to configure the behavior
|
|
4197
4466
|
* of the CacheHandler.
|
|
4198
4467
|
*
|
|
4468
|
+
* The [Advanced Store Configuration](/guides/configuration/advanced#decide-how-long-requests-are-valid-for-with-a-cachepolicy)
|
|
4469
|
+
* guide shows how to configure one, and [Caching](/guides/the-manual/caching/) explains
|
|
4470
|
+
* where the CacheHandler consults it.
|
|
4471
|
+
*
|
|
4199
4472
|
* The default behavior for request lifetimes is to never expire
|
|
4200
4473
|
* unless manually refreshed via `cacheOptions.reload` or `cacheOptions.backgroundReload`.
|
|
4201
4474
|
*
|
|
4202
4475
|
* Implementing this service allows you to programatically define
|
|
4203
4476
|
* when a request should be considered expired.
|
|
4204
4477
|
*
|
|
4478
|
+
* @summary The interface a store's `lifetimes` service implements to decide when cached requests are
|
|
4479
|
+
* hard or soft expired and should be refetched.
|
|
4205
4480
|
* @public
|
|
4206
4481
|
*/
|
|
4207
4482
|
interface CachePolicy {
|
|
@@ -4395,6 +4670,8 @@ type DocumentMeta<M extends Meta | undefined> = undefined extends M ? {
|
|
|
4395
4670
|
* The variant of {@link ReactiveDocument} returned for a request whose
|
|
4396
4671
|
* response contained no primary data, e.g. an error response.
|
|
4397
4672
|
*
|
|
4673
|
+
* @summary The shape of a reactive response document that carries `errors` and no primary `data`,
|
|
4674
|
+
* such as the result of a failed request.
|
|
4398
4675
|
* @public
|
|
4399
4676
|
*/
|
|
4400
4677
|
type ReactiveErrorDocument<T, EM extends Meta | undefined = Meta | undefined, E extends object = object, M extends Meta | undefined = EM> = ReactiveDocumentBase<T, M, E, EM> & DocumentMeta<EM> & {
|
|
@@ -4425,6 +4702,8 @@ type ReactiveErrorDocument<T, EM extends Meta | undefined = Meta | undefined, E
|
|
|
4425
4702
|
* The variant of {@link ReactiveDocument} returned for a request whose
|
|
4426
4703
|
* response contained primary data.
|
|
4427
4704
|
*
|
|
4705
|
+
* @summary The shape of a reactive response document whose `data` holds the request's primary
|
|
4706
|
+
* records, with no `errors`.
|
|
4428
4707
|
* @public
|
|
4429
4708
|
*/
|
|
4430
4709
|
type ReactiveDataDocument<T, M extends Meta | undefined = Meta | undefined, E extends object = object, EM extends Meta | undefined = M> = ReactiveDocumentBase<T, M, E, EM> & DocumentMeta<M> & {
|
|
@@ -4452,10 +4731,15 @@ type ReactiveDataDocument<T, M extends Meta | undefined = Meta | undefined, E ex
|
|
|
4452
4731
|
* returned by `Cache.put` or `Cache.peek`, converting ResourceKeys into
|
|
4453
4732
|
* ReactiveResource instances.
|
|
4454
4733
|
*
|
|
4734
|
+
* The [Using The Response](/guides/the-manual/requests/using-the-response) guide
|
|
4735
|
+
* shows when a request's content is a ReactiveDocument.
|
|
4736
|
+
*
|
|
4455
4737
|
* It is not directly instantiated by the user, and its properties should not
|
|
4456
4738
|
* be directly modified. Whether individual properties are mutable or not is
|
|
4457
4739
|
* determined by the record instance itself.
|
|
4458
4740
|
*
|
|
4741
|
+
* @summary The reactive wrapper around a request's response document that exposes its data or errors
|
|
4742
|
+
* as live records, plus meta, links, and pagination helpers.
|
|
4459
4743
|
* @public
|
|
4460
4744
|
*/
|
|
4461
4745
|
type ReactiveDocument<T, M extends Meta | undefined = Meta | undefined, E extends object = object, EM extends Meta | undefined = M> = ReactiveDataDocument<T, M, E, EM> | ReactiveErrorDocument<T, EM, E, M>;
|
|
@@ -4870,6 +5154,7 @@ const identifier = recordIdentifierFor(record);
|
|
|
4870
5154
|
const { id, type, lid } = identifier;
|
|
4871
5155
|
```
|
|
4872
5156
|
|
|
5157
|
+
@summary Returns the stable `ResourceKey` (type, id, and lid) the store assigned to a record instance.
|
|
4873
5158
|
@public
|
|
4874
5159
|
@param record a record instance previously obstained from the store.
|
|
4875
5160
|
*/
|
|
@@ -4987,6 +5272,8 @@ declare const SOURCE: "___(unique) Symbol(SOURCE)";
|
|
|
4987
5272
|
* Symbol for the method used to request a mutable copy of an otherwise
|
|
4988
5273
|
* immutable {@link ReactiveResource}.
|
|
4989
5274
|
*
|
|
5275
|
+
* @summary Deprecated symbol-keyed method on a ReactiveResource that resolves with an editable copy;
|
|
5276
|
+
* use `checkout` instead.
|
|
4990
5277
|
* @deprecated use the {@link checkout} utility function instead.
|
|
4991
5278
|
*/
|
|
4992
5279
|
declare const Checkout: "___(unique) Symbol(Checkout)";
|
|
@@ -5040,10 +5327,15 @@ interface ReactiveResourceArrayContext extends ReactiveResourceArrayCreateOption
|
|
|
5040
5327
|
* as the base for relationship and legacy record-array types such as
|
|
5041
5328
|
* {@link LegacyLiveArray}, {@link LegacyQueryArray} and {@link LegacyManyArray}.
|
|
5042
5329
|
*
|
|
5330
|
+
* The [Key Terminology](/guides/the-manual/caching/key-terms#resources) guide explains
|
|
5331
|
+
* how it relates to resources.
|
|
5332
|
+
*
|
|
5043
5333
|
* Behaves like a native Array: `Array.isArray(arr)` and `arr instanceof Array`
|
|
5044
5334
|
* both report `true`. The array stays in sync with the cache, updating
|
|
5045
5335
|
* reactively as the underlying {@link ResourceKey}s change.
|
|
5046
5336
|
*
|
|
5337
|
+
* @summary Native-Array-compatible reactive list of records backed by cache keys, returned for collection responses
|
|
5338
|
+
* and underlying relationship and legacy record arrays.
|
|
5047
5339
|
* @public
|
|
5048
5340
|
*/
|
|
5049
5341
|
interface ReactiveResourceArray<T = unknown> extends Omit<Array<T>, "[]"> {}
|
|
@@ -5196,6 +5488,8 @@ interface MinimumManager {
|
|
|
5196
5488
|
* and "bmw" will have populated LiveArrays, but the LiveArray for "car"
|
|
5197
5489
|
* would be empty.
|
|
5198
5490
|
*
|
|
5491
|
+
* @summary Legacy reactive array of every record of one type in the store, returned by `store.peekAll` and
|
|
5492
|
+
* `store.findAll`.
|
|
5199
5493
|
* @legacy we recommend againt using LiveArrays. Use {@link Store.request} instead
|
|
5200
5494
|
*/
|
|
5201
5495
|
interface LegacyLiveArray<T = unknown> extends LegacyArray<T> {
|
|
@@ -5292,6 +5586,8 @@ interface LegacyLiveArrayCreateOptions {
|
|
|
5292
5586
|
* from the cache, but it does remove the array as well as the overhead it requires
|
|
5293
5587
|
* from the store for book-keeping.
|
|
5294
5588
|
*
|
|
5589
|
+
* @summary Legacy immutable reactive array of the primary records returned by `store.query`, refreshable with
|
|
5590
|
+
* `update()` and released with `destroy()`.
|
|
5295
5591
|
* @legacy we recommend againt using QueryArrays. Use {@link Store.request} instead
|
|
5296
5592
|
*/
|
|
5297
5593
|
interface LegacyQueryArray<T = unknown> extends LegacyLiveArray<T> {
|
|
@@ -5590,6 +5886,26 @@ interface Store$1 {
|
|
|
5590
5886
|
* mechanism of presenting cache data to the ui for access
|
|
5591
5887
|
* mutation, and interaction.
|
|
5592
5888
|
*
|
|
5889
|
+
* The Store treats whatever this hook returns as opaque, so a record can be
|
|
5890
|
+
* anything from a fairly simple object to a robust proxy that links together
|
|
5891
|
+
* associated records through relationships.
|
|
5892
|
+
*
|
|
5893
|
+
* That also lets a record implementation separate edit flows from create flows
|
|
5894
|
+
* entirely. A [ReactiveResource](/api/@warp-drive-mirror/core/reactive/types/ReactiveResource)
|
|
5895
|
+
* is not editable by default; calling
|
|
5896
|
+
* [checkout](/api/@warp-drive-mirror/core/reactive/functions/checkout) on it gives access to
|
|
5897
|
+
* an editable copy while the original stays read-only.
|
|
5898
|
+
*
|
|
5899
|
+
* Because records are created here and read their data from the {@link Store.cache | cache},
|
|
5900
|
+
* record implementations should be able to interoperate both with each other and with
|
|
5901
|
+
* any Cache. An app can therefore use more than one record implementation, either to give
|
|
5902
|
+
* only some resource types enhanced features or to migrate from one implementation to
|
|
5903
|
+
* another incrementally. The Store that
|
|
5904
|
+
* [useLegacyStore](/api/@warp-drive-mirror/legacy/functions/useLegacyStore) produces does this:
|
|
5905
|
+
* its hook creates a legacy `Model` for each resource type that only has a Model schema,
|
|
5906
|
+
* and a ReactiveResource for every other type. Each Store creates one Cache, so an
|
|
5907
|
+
* app that needs more than one Cache implementation uses more than one Store.
|
|
5908
|
+
*
|
|
5593
5909
|
* @param identifier - The Resource CacheKey
|
|
5594
5910
|
* @param createRecordArgs - An object containing any properties passed to `store.createRecord`
|
|
5595
5911
|
* @return A record instance
|
|
@@ -6569,6 +6885,10 @@ interface Store$1 {
|
|
|
6569
6885
|
* The `Store` is the central piece of the ***Warp*Drive** experience. It connects
|
|
6570
6886
|
* requests for data with schemas, caching and reactivity.
|
|
6571
6887
|
*
|
|
6888
|
+
* The [Setup](/guides/configuration/#configure-the-store) guide shows how to configure
|
|
6889
|
+
* one, and [Making Requests](/guides/the-manual/requests/) shows how to request data
|
|
6890
|
+
* through it.
|
|
6891
|
+
*
|
|
6572
6892
|
* While it's easy to use ***just*** ***Warp*Drive**'s request management, most projects will find they
|
|
6573
6893
|
* require far more than basic fetch management. For this reason it's often best to start with a `Store`
|
|
6574
6894
|
* even when you aren't sure yet.
|
|
@@ -6576,6 +6896,7 @@ interface Store$1 {
|
|
|
6576
6896
|
* Most projects will only have a single `Store`, though using multiple distinct stores
|
|
6577
6897
|
* is possible.
|
|
6578
6898
|
*
|
|
6899
|
+
* @summary Central coordinator that connects requests for data with schemas, the cache and reactivity.
|
|
6579
6900
|
* @public
|
|
6580
6901
|
* @hideconstructor
|
|
6581
6902
|
*/
|
|
@@ -6684,12 +7005,25 @@ declare class Store$1 extends BaseClass {
|
|
|
6684
7005
|
*/
|
|
6685
7006
|
getRequestStateService(): RequestStateService;
|
|
6686
7007
|
/**
|
|
6687
|
-
* ::: tip 💡 For a more complete overview see the [Request Guide](/guides/
|
|
7008
|
+
* ::: tip 💡 For a more complete overview see the [Request Guide](/guides/the-manual/requests/)
|
|
6688
7009
|
* :::
|
|
6689
7010
|
*
|
|
6690
7011
|
* Issue a request via the configured {@link RequestManager},
|
|
6691
7012
|
* inserting the response into the {@link Store.cache | cache} and handing
|
|
6692
|
-
* back a {@link Future} which resolves to a {@link ReactiveDocument | ReactiveDocument}
|
|
7013
|
+
* back a {@link Future} which resolves to a {@link ReactiveDocument | ReactiveDocument}.
|
|
7014
|
+
* Use `store.request` for anything the Store's cache should own, which is nearly all app
|
|
7015
|
+
* code; reach for {@link RequestManager.request | requestManager.request} directly only when
|
|
7016
|
+
* there is no `Store` involved, or you specifically want the unprocessed
|
|
7017
|
+
* {@link StructuredDocument}.
|
|
7018
|
+
*
|
|
7019
|
+
* #### Building Requests
|
|
7020
|
+
*
|
|
7021
|
+
* `requestConfig` can be written by hand, but for anything reused more than once prefer a
|
|
7022
|
+
* request builder — a plain function that returns the right shape for `store.request`. This
|
|
7023
|
+
* repo ships builders for common operations (`findRecord`, `query`, `createRecord`, and more)
|
|
7024
|
+
* for {json:api}, REST, and ActiveRecord-style APIs in `@warp-drive-mirror/utilities`; each builder's
|
|
7025
|
+
* return value also carries its own response type, so `RT` below is inferred automatically
|
|
7026
|
+
* instead of being written by hand. See [Builders](/guides/the-manual/requests/builders.md).
|
|
6693
7027
|
*
|
|
6694
7028
|
* #### Request Cache Keys
|
|
6695
7029
|
*
|
|
@@ -6734,6 +7068,29 @@ declare class Store$1 extends BaseClass {
|
|
|
6734
7068
|
* is that `store.request` will convert the response into a {@link ReactiveDocument}
|
|
6735
7069
|
* containing {@link Store.instantiateRecord | ReactiveResources}.
|
|
6736
7070
|
*
|
|
7071
|
+
* A {@link ReactiveDocument} is either a {@link ReactiveDataDocument} (`content.data` holds
|
|
7072
|
+
* the resource(s)) or a {@link ReactiveErrorDocument} (`content.errors` holds the API's error
|
|
7073
|
+
* objects), depending on whether the `Future` resolves or rejects; both carry the response's
|
|
7074
|
+
* `content.meta`. Read either state reactively with {@link getRequestState} or the
|
|
7075
|
+
* `<Request />` component instead of always `await`-ing the `Future` directly — see
|
|
7076
|
+
* [Using the Response](/guides/the-manual/requests/using-the-response.md).
|
|
7077
|
+
*
|
|
7078
|
+
* #### Typing The Response
|
|
7079
|
+
*
|
|
7080
|
+
* `request<RT>` accepts an explicit type argument, but the more common path is to let it be
|
|
7081
|
+
* inferred: build the request with {@link withResponseType} (or {@link withReactiveResponse}
|
|
7082
|
+
* for the common reactive-document case), or with a builder from `@warp-drive-mirror/utilities` as
|
|
7083
|
+
* described above, and `RT` is inferred from the request object itself. See
|
|
7084
|
+
* [Typing Requests](/guides/the-manual/requests/typing-requests.md) for the full mechanism.
|
|
7085
|
+
*
|
|
7086
|
+
* @example
|
|
7087
|
+
* ```ts
|
|
7088
|
+
* import { findRecord } from '@warp-drive-mirror/utilities/json-api';
|
|
7089
|
+
*
|
|
7090
|
+
* const { content } = await store.request(findRecord('user', '1'));
|
|
7091
|
+
* content.data; // ReactiveResource, typed from the builder's response type
|
|
7092
|
+
* ```
|
|
7093
|
+
*
|
|
6737
7094
|
* @public
|
|
6738
7095
|
*/
|
|
6739
7096
|
request<RT>(requestConfig: StoreRequestInput<RT>): Future<RT>;
|
|
@@ -7280,6 +7637,7 @@ the has-many.
|
|
|
7280
7637
|
We call the record to which a relationship belongs-to the
|
|
7281
7638
|
relationship's _owner_.
|
|
7282
7639
|
|
|
7640
|
+
@summary Legacy mutable reactive array holding the related records of a legacy or linksMode has-many relationship.
|
|
7283
7641
|
@public
|
|
7284
7642
|
*/
|
|
7285
7643
|
interface LegacyManyArray<T = unknown> extends ReactiveResourceArray<T> {
|
|
@@ -7546,10 +7904,14 @@ interface PrivateReactiveResource extends ReactiveResource {
|
|
|
7546
7904
|
* and a ResourceKey to transform data from the cache into a rich, reactive
|
|
7547
7905
|
* object.
|
|
7548
7906
|
*
|
|
7907
|
+
* The [ResourceSchemas](/guides/the-manual/schemas/resources/) guide shows how to
|
|
7908
|
+
* define the schema it reads.
|
|
7909
|
+
*
|
|
7549
7910
|
* This class is not directly instantiable. To use it, you should
|
|
7550
7911
|
* configure the store's `instantiateRecord` and `teardownRecord` hooks
|
|
7551
7912
|
* with the matching hooks provided by this package.
|
|
7552
7913
|
*
|
|
7914
|
+
* @summary The rich, reactive record object that presents a resource's cached data through its `ResourceSchema`.
|
|
7553
7915
|
* @hideconstructor
|
|
7554
7916
|
* @public
|
|
7555
7917
|
*/
|
|
@@ -7575,6 +7937,8 @@ declare class ReactiveResource {
|
|
|
7575
7937
|
* Edits to editable resources will be automatically committed if a new
|
|
7576
7938
|
* payload from the cache matches their existing value.
|
|
7577
7939
|
*
|
|
7940
|
+
* @summary Resolves with an editable copy of an immutable `ReactiveResource` so its fields can be
|
|
7941
|
+
* changed locally.
|
|
7578
7942
|
* @public
|
|
7579
7943
|
*
|
|
7580
7944
|
* @returns a promise that resolves to the editable resource
|
|
@@ -7589,6 +7953,8 @@ declare function checkout<T>(resource: unknown): Promise<T & ReactiveResource>;
|
|
|
7589
7953
|
* approach is for either the API or a Handler to reflect saved
|
|
7590
7954
|
* changes back to update the cache.
|
|
7591
7955
|
*
|
|
7956
|
+
* @summary Forcibly makes an editable resource's local changes its new remote (immutable) state,
|
|
7957
|
+
* bypassing a save round-trip.
|
|
7592
7958
|
* @public
|
|
7593
7959
|
*/
|
|
7594
7960
|
declare function commit(record: ReactiveResource): Promise<void>;
|
|
@@ -7603,6 +7969,8 @@ declare function commit(record: ReactiveResource): Promise<void>;
|
|
|
7603
7969
|
* schema is `legacy`, matching the historical behavior of assigning initial
|
|
7604
7970
|
* properties when creating a new legacy record.
|
|
7605
7971
|
*
|
|
7972
|
+
* @summary Default store `instantiateRecord` hook that creates a `ReactiveResource` for a resource key
|
|
7973
|
+
* from its registered schema.
|
|
7606
7974
|
* @public
|
|
7607
7975
|
*/
|
|
7608
7976
|
declare function instantiateRecord(store: Store$1, identifier: ResourceKey, createArgs?: Record<string, unknown>): ReactiveResource;
|
|
@@ -7611,6 +7979,8 @@ declare function instantiateRecord(store: Store$1, identifier: ResourceKey, crea
|
|
|
7611
7979
|
* that `record` is a {@link ReactiveResource} and invokes its `Destroy`
|
|
7612
7980
|
* behavior.
|
|
7613
7981
|
*
|
|
7982
|
+
* @summary Default store `teardownRecord` hook that destroys a `ReactiveResource` when the store
|
|
7983
|
+
* releases it.
|
|
7614
7984
|
* @public
|
|
7615
7985
|
*/
|
|
7616
7986
|
declare function teardownRecord(record: unknown): void;
|
|
@@ -7624,6 +7994,9 @@ declare function teardownRecord(record: unknown): void;
|
|
|
7624
7994
|
* A basic Fetch Handler which converts a request into a
|
|
7625
7995
|
* `fetch` call presuming the response to be `json`.
|
|
7626
7996
|
*
|
|
7997
|
+
* The [Making Requests](/guides/the-manual/requests/#requests-do-not-need-to-use-fetch)
|
|
7998
|
+
* guide shows where it sits in the handler chain.
|
|
7999
|
+
*
|
|
7627
8000
|
* ```ts
|
|
7628
8001
|
* import { RequestManager, Fetch } from '@warp-drive-mirror/core';
|
|
7629
8002
|
*
|
|
@@ -7631,6 +8004,8 @@ declare function teardownRecord(record: unknown): void;
|
|
|
7631
8004
|
* .use([Fetch]);
|
|
7632
8005
|
* ```
|
|
7633
8006
|
*
|
|
8007
|
+
* @summary Terminal request handler that sends the request with native `fetch` and resolves with the
|
|
8008
|
+
* parsed JSON body, turning HTTP failures into errors.
|
|
7634
8009
|
* @public
|
|
7635
8010
|
* @badge Handler
|
|
7636
8011
|
*/
|
|
@@ -7676,6 +8051,9 @@ type Store = {
|
|
|
7676
8051
|
* Interface of a parsed Cache-Control header value.
|
|
7677
8052
|
*
|
|
7678
8053
|
* - [MDN Cache-Control Reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Headers/Cache-Control)
|
|
8054
|
+
*
|
|
8055
|
+
* @summary The directives of a `Cache-Control` header as an object of flags and second counts, as
|
|
8056
|
+
* returned by `parseCacheControl`.
|
|
7679
8057
|
*/
|
|
7680
8058
|
interface CacheControlValue {
|
|
7681
8059
|
/** Indicates the response will never change; parsed but not currently used by this cache policy's expiration logic. */
|
|
@@ -7731,6 +8109,8 @@ interface CacheControlValue {
|
|
|
7731
8109
|
*
|
|
7732
8110
|
* See also {@link CacheControlValue} and [Response Directives](https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Headers/Cache-Control#response_directives)
|
|
7733
8111
|
*
|
|
8112
|
+
* @summary Parses a `Cache-Control` header string into a `CacheControlValue` object, caching results
|
|
8113
|
+
* per header string.
|
|
7734
8114
|
* @public
|
|
7735
8115
|
*/
|
|
7736
8116
|
declare function parseCacheControl(header: string): CacheControlValue;
|
|
@@ -7793,6 +8173,9 @@ interface PolicyConfigConstraints {
|
|
|
7793
8173
|
/**
|
|
7794
8174
|
* The configuration options for the {@link DefaultCachePolicy}
|
|
7795
8175
|
*
|
|
8176
|
+
* The [Advanced Store Configuration](/guides/configuration/advanced#decide-how-long-requests-are-valid-for-with-a-cachepolicy)
|
|
8177
|
+
* guide shows a policy configured with them.
|
|
8178
|
+
*
|
|
7796
8179
|
* ```ts [app/services/store.ts]
|
|
7797
8180
|
* import { Store } from '@warp-drive-mirror/core';
|
|
7798
8181
|
* import { DefaultCachePolicy } from '@warp-drive-mirror/core/store'; // [!code focus]
|
|
@@ -7804,6 +8187,8 @@ interface PolicyConfigConstraints {
|
|
|
7804
8187
|
* }
|
|
7805
8188
|
* ```
|
|
7806
8189
|
*
|
|
8190
|
+
* @summary Options for `DefaultCachePolicy`: soft and hard expiration times, header-based expiration
|
|
8191
|
+
* constraints, and test-mode behavior.
|
|
7807
8192
|
*/
|
|
7808
8193
|
interface PolicyConfig {
|
|
7809
8194
|
/**
|
|
@@ -7884,6 +8269,9 @@ interface PolicyConfig {
|
|
|
7884
8269
|
/**
|
|
7885
8270
|
* A basic {@link CachePolicy} that can be added to the Store service.
|
|
7886
8271
|
*
|
|
8272
|
+
* The [Advanced Store Configuration](/guides/configuration/advanced#decide-how-long-requests-are-valid-for-with-a-cachepolicy)
|
|
8273
|
+
* guide shows how to configure it.
|
|
8274
|
+
*
|
|
7887
8275
|
* ```ts [app/services/store.ts]
|
|
7888
8276
|
* import { Store } from '@warp-drive-mirror/core';
|
|
7889
8277
|
* import { DefaultCachePolicy } from '@warp-drive-mirror/core/store'; // [!code focus]
|
|
@@ -7961,6 +8349,8 @@ interface PolicyConfig {
|
|
|
7961
8349
|
* This behavior can be opted out of by setting `disableTestOptimization = true`
|
|
7962
8350
|
* in the policy config.
|
|
7963
8351
|
*
|
|
8352
|
+
* @summary The built-in cache policy, which expires cached requests using expiration headers or time
|
|
8353
|
+
* since the response `date`, and invalidates queries after matching creates.
|
|
7964
8354
|
* @public
|
|
7965
8355
|
*/
|
|
7966
8356
|
declare class DefaultCachePolicy implements CachePolicy {
|
|
@@ -8043,11 +8433,15 @@ declare class DefaultCachePolicy implements CachePolicy {
|
|
|
8043
8433
|
//#endregion
|
|
8044
8434
|
//#region src/index.d.ts
|
|
8045
8435
|
/**
|
|
8436
|
+
* @summary Deprecated alias for `ReactiveDocument`, the reactive wrapper around a request's response document.
|
|
8046
8437
|
* @deprecated use {@link ReactiveDocument} instead
|
|
8047
8438
|
*/
|
|
8048
8439
|
type Document<T, M extends Meta | undefined = Meta | undefined, E extends object = object, EM extends Meta | undefined = M> = ReactiveDocument<T, M, E, EM>;
|
|
8049
8440
|
/**
|
|
8050
8441
|
* Options for setting up a Store instance with `useRecommendedStore`.
|
|
8442
|
+
*
|
|
8443
|
+
* @summary Configures the cache, cache policy, request handlers, schemas, and schema extensions that
|
|
8444
|
+
* `useRecommendedStore` wires into a Store class.
|
|
8051
8445
|
*/
|
|
8052
8446
|
interface StoreSetupOptions<T extends Cache = Cache> {
|
|
8053
8447
|
/**
|
|
@@ -8132,6 +8526,9 @@ declare class ConfiguredStore<T extends {
|
|
|
8132
8526
|
* Creates a configured Store class with recommended defaults
|
|
8133
8527
|
* for schema handling, reactivity, caching, and request management.
|
|
8134
8528
|
*
|
|
8529
|
+
* The [Setup](/guides/configuration/#configure-the-store) guide walks through
|
|
8530
|
+
* configuring the store with it.
|
|
8531
|
+
*
|
|
8135
8532
|
* ```ts
|
|
8136
8533
|
* import { useRecommendedStore } from '@warp-drive-mirror/core';
|
|
8137
8534
|
* import { JSONAPICache } from '@warp-drive-mirror/json-api';
|
|
@@ -8234,6 +8631,9 @@ declare class ConfiguredStore<T extends {
|
|
|
8234
8631
|
* {@link RequestManager} won't have it set unless the caller supplies it
|
|
8235
8632
|
* explicitly, so a handler relying on it should treat it as optional (as
|
|
8236
8633
|
* `LoggingHandler` does above).
|
|
8634
|
+
*
|
|
8635
|
+
* @summary Builds a Store subclass preconfigured with the given cache, schemas, and handlers, plus
|
|
8636
|
+
* `Fetch`, `CacheHandler`, and a default cache policy.
|
|
8237
8637
|
*/
|
|
8238
8638
|
declare function useRecommendedStore<T extends Cache, Policy extends CachePolicy>(options: StoreSetupOptions<T> & {
|
|
8239
8639
|
policy: Policy;
|
|
@@ -8254,6 +8654,8 @@ declare function useRecommendedStore<T extends Cache>(options: StoreSetupOptions
|
|
|
8254
8654
|
* The state of a promise in the "pending"
|
|
8255
8655
|
* state. This is the default initial state.
|
|
8256
8656
|
*
|
|
8657
|
+
* @summary The `getPromiseState` state for a promise that has not yet settled, with `isPending` true and
|
|
8658
|
+
* no value or reason.
|
|
8257
8659
|
*/
|
|
8258
8660
|
interface PendingPromise {
|
|
8259
8661
|
/**
|
|
@@ -8317,6 +8719,8 @@ interface PendingPromise {
|
|
|
8317
8719
|
* This is the state of a promise that has resolved
|
|
8318
8720
|
* successfully.
|
|
8319
8721
|
*
|
|
8722
|
+
* @summary The `getPromiseState` state for a promise that resolved, with `isSuccess` true and the
|
|
8723
|
+
* resolved `value`.
|
|
8320
8724
|
*/
|
|
8321
8725
|
interface ResolvedPromise<T> {
|
|
8322
8726
|
/**
|
|
@@ -8380,6 +8784,8 @@ interface ResolvedPromise<T> {
|
|
|
8380
8784
|
* This is the state of a promise that has rejected
|
|
8381
8785
|
* with an error.
|
|
8382
8786
|
*
|
|
8787
|
+
* @summary The `getPromiseState` state for a promise that rejected, with `isError` true and the
|
|
8788
|
+
* rejection `reason`.
|
|
8383
8789
|
*/
|
|
8384
8790
|
interface RejectedPromise<E> {
|
|
8385
8791
|
/**
|
|
@@ -8447,11 +8853,16 @@ interface RejectedPromise<E> {
|
|
|
8447
8853
|
* - {@link ResolvedPromise}
|
|
8448
8854
|
* - {@link RejectedPromise}
|
|
8449
8855
|
*
|
|
8856
|
+
* @summary The reactive pending, fulfilled, or rejected state of a promise, as returned by
|
|
8857
|
+
* `getPromiseState`.
|
|
8450
8858
|
*/
|
|
8451
8859
|
type PromiseState<T = unknown, E = unknown> = PendingPromise | ResolvedPromise<T> | RejectedPromise<E>;
|
|
8452
8860
|
/**
|
|
8453
8861
|
* Returns a reactive state-machine for the provided promise or awaitable.
|
|
8454
8862
|
*
|
|
8863
|
+
* The [Async as Reactive State](/guides/the-manual/reactivity/derivation) guide shows
|
|
8864
|
+
* how to use it in place of tracked loading and error state.
|
|
8865
|
+
*
|
|
8455
8866
|
* Repeat calls to `getPromiseState` with the same promise will return the same state object
|
|
8456
8867
|
* making is safe and easy to use in templates and JavaScript code to produce reactive
|
|
8457
8868
|
* behaviors around promises.
|
|
@@ -8501,6 +8912,9 @@ type PromiseState<T = unknown, E = unknown> = PendingPromise | ResolvedPromise<T
|
|
|
8501
8912
|
* If looking to use in a template, consider also the `<Await />` component.
|
|
8502
8913
|
*
|
|
8503
8914
|
* See also {@link PromiseState}
|
|
8915
|
+
*
|
|
8916
|
+
* @summary Returns a cached, reactive state object tracking whether a promise is pending, fulfilled, or
|
|
8917
|
+
* rejected, for use in JS or templates.
|
|
8504
8918
|
*/
|
|
8505
8919
|
declare function getPromiseState<T = unknown, E = unknown>(promise: Promise<T> | Awaitable<T, E>): Readonly<PromiseState<T, E>>;
|
|
8506
8920
|
//#endregion
|
|
@@ -8510,6 +8924,8 @@ declare function getPromiseState<T = unknown, E = unknown>(promise: Promise<T> |
|
|
|
8510
8924
|
* reactive properties that can be used to build UIs that respond
|
|
8511
8925
|
* to the progress of a request.
|
|
8512
8926
|
*
|
|
8927
|
+
* @summary Reactive download progress for a request, such as bytes loaded and timing, built by lazily
|
|
8928
|
+
* reading its response stream.
|
|
8513
8929
|
* @hideconstructor
|
|
8514
8930
|
*/
|
|
8515
8931
|
declare class RequestLoadingState {
|
|
@@ -8729,9 +9145,11 @@ interface RejectedRequest<RT, E extends StructuredErrorDocument = StructuredErro
|
|
|
8729
9145
|
response: Response | ResponseInfo | null;
|
|
8730
9146
|
}
|
|
8731
9147
|
/**
|
|
8732
|
-
* The state of a request
|
|
8733
|
-
*
|
|
8734
|
-
* cancelled
|
|
9148
|
+
* The state of a request that was aborted before it settled.
|
|
9149
|
+
*
|
|
9150
|
+
* A cancelled request has `status: 'cancelled'` and its `reason` is an
|
|
9151
|
+
* `AbortError`. `isError` is also `true`, as for a {@link RejectedRequest},
|
|
9152
|
+
* so check `status` or `isCancelled` to tell the two apart.
|
|
8735
9153
|
*
|
|
8736
9154
|
*/
|
|
8737
9155
|
interface CancelledRequest<RT, E extends StructuredErrorDocument = StructuredErrorDocument> {
|
|
@@ -8865,11 +9283,33 @@ interface CancelledRequest<RT, E extends StructuredErrorDocument = StructuredErr
|
|
|
8865
9283
|
* - {@link RejectedRequest}
|
|
8866
9284
|
* - {@link CancelledRequest}
|
|
8867
9285
|
*
|
|
9286
|
+
* @summary The reactive pending, fulfilled, rejected, or cancelled state of a request `Future`, as
|
|
9287
|
+
* returned by `getRequestState`.
|
|
8868
9288
|
*/
|
|
8869
9289
|
type RequestState<RT = unknown, E extends StructuredErrorDocument = StructuredErrorDocument> = PendingRequest | ResolvedRequest<RT> | RejectedRequest<RT, E> | CancelledRequest<RT, E>;
|
|
8870
9290
|
/**
|
|
8871
9291
|
* `getRequestState` can be used in both JavaScript and Template contexts.
|
|
8872
9292
|
*
|
|
9293
|
+
* It returns a {@link RequestState}: a reactive object that updates as the
|
|
9294
|
+
* request advances. Calling it again with the same {@link Future} returns the
|
|
9295
|
+
* same object. Check `status` to narrow it to one of four states:
|
|
9296
|
+
*
|
|
9297
|
+
* - {@link PendingRequest} (`'pending'`) is the initial state, before the
|
|
9298
|
+
* request settles.
|
|
9299
|
+
* - {@link ResolvedRequest} (`'fulfilled'`) holds the response content on `value`.
|
|
9300
|
+
* - {@link RejectedRequest} (`'rejected'`) holds the error on `reason`.
|
|
9301
|
+
* - {@link CancelledRequest} (`'cancelled'`) is a request that was aborted.
|
|
9302
|
+
* `isError` is also `true` for a cancelled request, so check `status` or
|
|
9303
|
+
* `isCancelled` rather than `isError` if you handle it differently.
|
|
9304
|
+
*
|
|
9305
|
+
* Every state also exposes a {@link RequestLoadingState} on `loadingState`
|
|
9306
|
+
* for tracking the progress of the response stream.
|
|
9307
|
+
*
|
|
9308
|
+
* The [Reactive Control Flow](/guides/the-manual/reactivity/control-flow) guide shows
|
|
9309
|
+
* how to render request states with it, and
|
|
9310
|
+
* [Using The Response](/guides/the-manual/requests/using-the-response) covers the
|
|
9311
|
+
* `Future` it reads.
|
|
9312
|
+
*
|
|
8873
9313
|
* ```ts
|
|
8874
9314
|
* import { getRequestState } from '@warp-drive-mirror/ember';
|
|
8875
9315
|
*
|
|
@@ -8916,6 +9356,10 @@ type RequestState<RT = unknown, E extends StructuredErrorDocument = StructuredEr
|
|
|
8916
9356
|
* which offers a number of additional capabilities for requests *beyond* what
|
|
8917
9357
|
* `RequestState` provides.
|
|
8918
9358
|
*
|
|
9359
|
+
* @param future - the request {@link Future} to track, as returned by `store.request` or `requestManager.request`
|
|
9360
|
+
* @return the cached {@link RequestState} for `future`
|
|
9361
|
+
* @summary Returns a cached, reactive state object tracking a request `Future` through pending, success,
|
|
9362
|
+
* error, and cancellation.
|
|
8919
9363
|
*/
|
|
8920
9364
|
declare function getRequestState<RT, E>(future: Future<RT>): Readonly<RequestState<RT, StructuredErrorDocument<E>>>;
|
|
8921
9365
|
//#endregion
|
|
@@ -8928,16 +9372,25 @@ declare const DISPOSE: "(symbol) dispose";
|
|
|
8928
9372
|
/**
|
|
8929
9373
|
* The individual autorefresh strategies a {@link RequestSubscription}
|
|
8930
9374
|
* may combine, see {@link AutorefreshBehaviorCombos}.
|
|
9375
|
+
*
|
|
9376
|
+
* @summary One autorefresh trigger for a request subscription: on reconnecting (`online`), on a timer
|
|
9377
|
+
* (`interval`), or on store invalidation (`invalid`).
|
|
8931
9378
|
*/
|
|
8932
9379
|
type AutorefreshBehaviorType = "online" | "interval" | "invalid";
|
|
8933
9380
|
/**
|
|
8934
9381
|
* The value accepted by {@link SubscriptionArgs.autorefresh}: either a
|
|
8935
9382
|
* boolean, a single {@link AutorefreshBehaviorType}, or a comma-separated
|
|
8936
9383
|
* combination of up to three of them.
|
|
9384
|
+
*
|
|
9385
|
+
* @summary The accepted values for a request subscription's `autorefresh` option: a boolean or a
|
|
9386
|
+
* comma-separated mix of `online`, `interval`, and `invalid`.
|
|
8937
9387
|
*/
|
|
8938
9388
|
type AutorefreshBehaviorCombos = boolean | AutorefreshBehaviorType | `${AutorefreshBehaviorType},${AutorefreshBehaviorType}` | `${AutorefreshBehaviorType},${AutorefreshBehaviorType},${AutorefreshBehaviorType}`;
|
|
8939
9389
|
/**
|
|
8940
9390
|
* Utilities to assist in recovering from the error.
|
|
9391
|
+
*
|
|
9392
|
+
* @summary The online and visibility state plus a `retry` function that a request subscription exposes
|
|
9393
|
+
* for recovering from a failed request.
|
|
8941
9394
|
*/
|
|
8942
9395
|
interface RecoveryFeatures {
|
|
8943
9396
|
/**
|
|
@@ -8955,6 +9408,9 @@ interface RecoveryFeatures {
|
|
|
8955
9408
|
}
|
|
8956
9409
|
/**
|
|
8957
9410
|
* Utilities for keeping the request fresh
|
|
9411
|
+
*
|
|
9412
|
+
* @summary The online, visibility, and refreshing state plus `refresh`, `reload`, and `abort` functions a
|
|
9413
|
+
* request subscription exposes alongside successful content.
|
|
8958
9414
|
*/
|
|
8959
9415
|
interface ContentFeatures<RT> {
|
|
8960
9416
|
/**
|
|
@@ -8988,6 +9444,9 @@ interface ContentFeatures<RT> {
|
|
|
8988
9444
|
}
|
|
8989
9445
|
/**
|
|
8990
9446
|
* The args accepted by the `<Request />` component.
|
|
9447
|
+
*
|
|
9448
|
+
* @summary The arguments of the `<Request />` component: the request or query to run, autorefresh
|
|
9449
|
+
* options, and an optional store or subscription.
|
|
8991
9450
|
*/
|
|
8992
9451
|
interface RequestArgs<RT, E> extends SubscriptionArgs<RT, E> {
|
|
8993
9452
|
/**
|
|
@@ -9006,6 +9465,8 @@ interface RequestArgs<RT, E> extends SubscriptionArgs<RT, E> {
|
|
|
9006
9465
|
}
|
|
9007
9466
|
/**
|
|
9008
9467
|
* The args accepted by a {@link RequestSubscription}.
|
|
9468
|
+
*
|
|
9469
|
+
* @summary Options for a request subscription: the request or query to monitor and its autorefresh settings.
|
|
9009
9470
|
*/
|
|
9010
9471
|
interface SubscriptionArgs<RT, E> {
|
|
9011
9472
|
/**
|
|
@@ -9070,6 +9531,8 @@ interface RequestSubscription<RT, E> {
|
|
|
9070
9531
|
/**
|
|
9071
9532
|
* A reactive class
|
|
9072
9533
|
*
|
|
9534
|
+
* @summary Reactive subscription that monitors a request or query, tracking online, visibility and refresh state and
|
|
9535
|
+
* handling autorefresh, reload and retry.
|
|
9073
9536
|
* @hideconstructor
|
|
9074
9537
|
*/
|
|
9075
9538
|
declare class RequestSubscription<RT, E> {
|
|
@@ -9134,6 +9597,9 @@ declare class RequestSubscription<RT, E> {
|
|
|
9134
9597
|
/**
|
|
9135
9598
|
* Creates a {@link RequestSubscription}, the reactive class powering the
|
|
9136
9599
|
* `<Request />` component's autorefresh, retry, and refresh behaviors.
|
|
9600
|
+
*
|
|
9601
|
+
* @summary Creates a reactive subscription to a request or query that tracks its state and handles
|
|
9602
|
+
* autorefresh, retry, and refresh.
|
|
9137
9603
|
*/
|
|
9138
9604
|
declare function createRequestSubscription<RT, E>(store: Store$1 | RequestManager, args: SubscriptionArgs<RT, E>): RequestSubscription<RT, E>;
|
|
9139
9605
|
//#endregion
|
|
@@ -9260,5 +9726,5 @@ declare function peekInternalSignal(signals: SignalStore | undefined, key: strin
|
|
|
9260
9726
|
*/
|
|
9261
9727
|
declare function notifyInternalSignal(signal: WarpDriveSignal | undefined): void;
|
|
9262
9728
|
//#endregion
|
|
9263
|
-
export {
|
|
9264
|
-
//# sourceMappingURL=internal-
|
|
9729
|
+
export { PrivateStore as $, STRUCTURED as $n, CacheCapabilitiesManager$1 as $t, Document as A, LegacyResourceQuery as An, CachePolicy as At, PrivateReactiveResource as B, HTTPMethod as Bn, createDeferred as Bt, getRequestState as C, Transformation as Cn, setRecordIdentifier as Ct, ResolvedPromise as D, BaseFinderOptions as Dn, ReactiveDataDocument as Dt, RejectedPromise as E, withDefaults as En, assertPrivateCapabilities as Et, PolicyConfig as F, CreateRequestOptions as Fn, withReactiveResponse as Ft, logGroup as G, ImmutableRequestInfo as Gn, GraphEdge as Gt, checkout as H, ImmutableCreateRequestOptions as Hn, peekGraph as Ht, parseCacheControl as I, DeleteRequestOptions as In, withResponseType as It, normalizeModelName as J, QueryRequestOptions as Jn, CollectionEdge as Jt, LegacyManyArray as K, ImmutableUpdateRequestOptions as Kn, ResourceEdge as Kt, Fetch as L, EnableHydration as Ln, Awaitable as Lt, useRecommendedStore as M, ModelSchema as Mn, StoreRequestContext as Mt, CacheControlValue as N, CacheOptions as Nn, StoreRequestInput as Nt, getPromiseState as O, FindAllOptions as On, ReactiveDocument as Ot, DefaultCachePolicy as P, ConstrainedRequestOptions as Pn, withBrand as Pt, CreateRecordProperties as Q, ResponseInfo as Qn, RelationshipDiff as Qt, instantiateRecord as R, FindRecordOptions$2 as Rn, getPromiseResult as Rt, ResolvedRequest as S, SchemaService$1 as Sn, recordIdentifierFor as St, PromiseState as T, registerDerivations as Tn, PrivateCacheCapabilitiesManager as Tt, commit as U, ImmutableDeleteRequestOptions as Un, isBelongsTo as Ut, ReactiveResource as V, IS_FUTURE as Vn, graphFor as Vt, log as W, ImmutableHeaders as Wn, Graph as Wt, ensureStringId as X, RequestContext as Xn, Cache as Xt, coerceId as Y, RemotelyAccessibleIdentifier as Yn, UpgradedMeta as Yt, constructResource as Z, RequestInfo as Zn, ChangedAttributesHash as Zt, CancelledRequest as _, SchemaService as _n, Context as _t, notifyInternalSignal as a, NotifyKeys as an, FetchError as ar, Request$1 as at, RequestLoadingState as b, ExtensionDef as bn, StoreMap as bt, AutorefreshBehaviorCombos as c, isRequestKey as cn, Deferred as cr, SaveRecordMutation as ct, DISPOSE as d, setIdentifierGenerationMethod as dn, ManagedRequestPriority as dr, LegacyQueryArray as dt, CacheOperation$1 as en, SkipCache as er, Store$1 as et, RecoveryFeatures as f, setIdentifierResetMethod as fn, NextFn as fr, LegacyLiveArray as ft, createRequestSubscription as g, RelationshipsSchema as gn, Checkout as gt, SubscriptionArgs as h, AttributesSchema as hn, ManagedArray as ht, makeInitializer as i, NotificationType as in, UpdateRequestOptions as ir, PrivateRequestStateService as it, StoreSetupOptions as j, QueryOptions as jn, CacheHandler as jt, ConfiguredStore as k, FindRecordOptions as kn, ReactiveErrorDocument as kt, AutorefreshBehaviorType as l, isResourceKey as ln, Future as lr, RecordArrayManager as lt, RequestSubscription as m, setKeyInfoForResource as mn, ReactiveResourceArray as mt, WarpDriveSignal as n, NotificationChannel as nn, StructuredDocument as nr, isPrivateStore as nt, peekInternalSignal as o, FieldValueIdentity as on, Context$1 as or, RequestCacheRequestState as ot, RequestArgs as p, setIdentifierUpdateMethod as pn, RequestManager as pr, PrivateReactiveResourceArray as pt, createLegacyManyArray as q, PostQueryRequestOptions as qn, ImplicitEdge as qt, getOrCreateInternalSignal as r, NotificationManager$1 as rn, StructuredErrorDocument as rr, FindRecordQuery as rt, withSignalStore as s, fieldValueIdentity as sn, CacheHandler$1 as sr, RequestStateService as st, SignalStore as t, DocumentCacheOperation$1 as tn, StructuredDataDocument as tr, assertPrivateStore as tt, ContentFeatures as u, setIdentifierForgetMethod as un, Handler as ur, fastPush as ut, PendingRequest as v, CAUTION_MEGA_DANGER_ZONE_Extension as vn, NativeProxy as vt, PendingPromise as w, fromIdentity as wn, storeFor as wt, RequestState as x, ProcessedExtension as xn, _clearCaches as xt, RejectedRequest as y, ExtensibleField as yn, InstanceCache as yt, teardownRecord as z, FindRecordRequestOptions as zn, setPromiseResult as zt };
|
|
9730
|
+
//# sourceMappingURL=internal-CgOlgOt3.d.ts.map
|