@warp-drive-mirror/core 5.10.0-alpha.21 → 5.10.0-alpha.23
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/dist/{-private-CvZfrDZl.js → -private-DhEjiHue.js} +2 -2
- package/dist/{-private-CvZfrDZl.js.map → -private-DhEjiHue.js.map} +1 -1
- package/dist/build-config/babel-macros.d.ts +5 -0
- package/dist/build-config/canary-features.d.ts +5 -0
- package/dist/build-config/debugging.d.ts +59 -0
- package/dist/build-config/deprecations.d.ts +5 -0
- package/dist/build-config.d.ts +17 -0
- package/dist/{concepts-vh86nAcd.d.ts → concepts-Db9ssz1h.d.ts} +3 -3
- package/dist/{concepts-vh86nAcd.d.ts.map → concepts-Db9ssz1h.d.ts.map} +1 -1
- package/dist/configure.d.ts +8 -0
- package/dist/configure.js +1 -1
- package/dist/{document-B8Fup751.d.ts → document-BUmwSPVO.d.ts} +2 -2
- package/dist/{document-B8Fup751.d.ts.map → document-BUmwSPVO.d.ts.map} +1 -1
- package/dist/{fields-r1rZJB9d.d.ts → fields-B-jO-dzB.d.ts} +111 -47
- package/dist/fields-B-jO-dzB.d.ts.map +1 -0
- package/dist/graph/-private.d.ts +1 -1
- package/dist/graph/-private.js +33 -20
- package/dist/graph/-private.js.map +1 -1
- package/dist/{graph-BqxaFjEb.d.ts → graph-CoQhsOgT.d.ts} +3 -3
- package/dist/{graph-BqxaFjEb.d.ts.map → graph-CoQhsOgT.d.ts.map} +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +1 -1
- package/dist/{internal-D_WIXC4r.d.ts → internal-BrC3kM86.d.ts} +20 -6
- package/dist/internal-BrC3kM86.d.ts.map +1 -0
- package/dist/reactive/-private.d.ts +1 -1
- package/dist/reactive.d.ts +276 -1
- package/dist/reactive.js +2 -2
- package/dist/{request-CxtnNIIp.js → request-qKqD2aCa.js} +2 -2
- package/dist/{request-CxtnNIIp.js.map → request-qKqD2aCa.js.map} +1 -1
- package/dist/request.d.ts +9 -1
- package/dist/request.js +1 -1
- package/dist/signals/-leaked.d.ts +15 -1
- package/dist/signals/-leaked.d.ts.map +1 -1
- package/dist/signals/-leaked.js +1 -1
- package/dist/{src-ccp1WKyt.js → src-spa19bCt.js} +30 -13
- package/dist/src-spa19bCt.js.map +1 -0
- package/dist/store/-private.d.ts +1 -1
- package/dist/store/-private.js +1 -1
- package/dist/store.d.ts +6 -1
- package/dist/types/-private.js +1 -1
- package/dist/types/cache/relationship.d.ts +5 -0
- package/dist/types/cache.d.ts +6 -1
- package/dist/types/graph.d.ts +6 -1
- package/dist/types/record.d.ts +5 -0
- package/dist/types/request.d.ts +1 -1
- package/dist/types/schema/concepts.d.ts +6 -1
- package/dist/types/schema/fields.d.ts +2 -2
- package/dist/types/schema/fields.js +82 -23
- package/dist/types/schema/fields.js.map +1 -1
- package/dist/types/schema/schema-service.d.ts +6 -1
- package/dist/types/spec/document.d.ts +1 -1
- package/dist/types/spec/error.d.ts +4 -0
- package/dist/types/spec/json-api-raw.d.ts +5 -0
- package/dist/types.d.ts +9 -1
- package/dist/unpkg/{dev-deprecated/-private-B4pCmkq-.js → dev/-private-BJ2WIhKs.js} +2 -2
- package/dist/unpkg/dev/{-private-B4pCmkq-.js.map → -private-BJ2WIhKs.js.map} +1 -1
- package/dist/unpkg/dev/configure.js +1 -1
- package/dist/unpkg/dev/graph/-private.js +34 -21
- package/dist/unpkg/dev/graph/-private.js.map +1 -1
- package/dist/unpkg/dev/index.js +1 -1
- package/dist/unpkg/dev/reactive.js +2 -2
- package/dist/unpkg/dev/{request-oWpijCPQ.js → request-6lzVjHLN.js} +2 -2
- package/dist/unpkg/{dev-deprecated/request-oWpijCPQ.js.map → dev/request-6lzVjHLN.js.map} +1 -1
- package/dist/unpkg/dev/request.js +1 -1
- package/dist/unpkg/dev/signals/-leaked.js +1 -1
- package/dist/unpkg/dev/{src-C4ET4R1n.js → src-D1dbEzXb.js} +31 -14
- package/dist/unpkg/dev/src-D1dbEzXb.js.map +1 -0
- package/dist/unpkg/dev/store/-private.js +1 -1
- package/dist/unpkg/dev/{store-dZViNfMK.js → store-DVS3G92Q.js} +2 -2
- package/dist/unpkg/dev/{store-dZViNfMK.js.map → store-DVS3G92Q.js.map} +1 -1
- package/dist/unpkg/dev/store.js +1 -1
- package/dist/unpkg/dev/types/-private.js +1 -1
- package/dist/unpkg/dev/types/schema/fields.js +82 -23
- package/dist/unpkg/dev/types/schema/fields.js.map +1 -1
- package/dist/unpkg/{dev/-private-B4pCmkq-.js → dev-deprecated/-private-BJ2WIhKs.js} +2 -2
- package/dist/unpkg/dev-deprecated/{-private-B4pCmkq-.js.map → -private-BJ2WIhKs.js.map} +1 -1
- package/dist/unpkg/dev-deprecated/configure.js +1 -1
- package/dist/unpkg/dev-deprecated/graph/-private.js +34 -21
- 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.js +2 -2
- package/dist/unpkg/dev-deprecated/{request-oWpijCPQ.js → request-6lzVjHLN.js} +2 -2
- package/dist/unpkg/{dev/request-oWpijCPQ.js.map → dev-deprecated/request-6lzVjHLN.js.map} +1 -1
- 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-jHpowq3S.js → src-Tvv7X1KB.js} +30 -13
- package/dist/unpkg/dev-deprecated/src-Tvv7X1KB.js.map +1 -0
- package/dist/unpkg/dev-deprecated/store/-private.js +1 -1
- package/dist/unpkg/dev-deprecated/types/-private.js +1 -1
- package/dist/unpkg/dev-deprecated/types/schema/fields.js +82 -23
- package/dist/unpkg/dev-deprecated/types/schema/fields.js.map +1 -1
- package/dist/unpkg/{prod-deprecated/-private-CrUi_3E_.js → prod/-private-Dg07O05r.js} +2 -2
- package/dist/unpkg/{prod-deprecated/-private-CrUi_3E_.js.map → prod/-private-Dg07O05r.js.map} +1 -1
- package/dist/unpkg/prod/configure.js +1 -1
- package/dist/unpkg/prod/graph/-private.js +27 -12
- package/dist/unpkg/prod/graph/-private.js.map +1 -1
- package/dist/unpkg/prod/index.js +1 -1
- package/dist/unpkg/prod/reactive.js +2 -2
- package/dist/unpkg/{prod-deprecated/request-Cgw3j6Dx.js → prod/request-edWLn9JK.js} +2 -2
- package/dist/unpkg/prod/{request-Cgw3j6Dx.js.map → request-edWLn9JK.js.map} +1 -1
- package/dist/unpkg/prod/request.js +1 -1
- package/dist/unpkg/prod/signals/-leaked.js +1 -1
- package/dist/unpkg/prod/{src-DFmPDGQ6.js → src-BIRx6kC-.js} +33 -12
- package/dist/unpkg/prod/src-BIRx6kC-.js.map +1 -0
- package/dist/unpkg/prod/store/-private.js +1 -1
- package/dist/unpkg/prod/types/-private.js +1 -1
- package/dist/unpkg/prod/types/schema/fields.js +82 -23
- package/dist/unpkg/prod/types/schema/fields.js.map +1 -1
- package/dist/unpkg/{prod/-private-CrUi_3E_.js → prod-deprecated/-private-Dg07O05r.js} +2 -2
- package/dist/unpkg/{prod/-private-CrUi_3E_.js.map → prod-deprecated/-private-Dg07O05r.js.map} +1 -1
- package/dist/unpkg/prod-deprecated/configure.js +1 -1
- package/dist/unpkg/prod-deprecated/graph/-private.js +27 -12
- 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.js +2 -2
- package/dist/unpkg/{prod/request-Cgw3j6Dx.js → prod-deprecated/request-edWLn9JK.js} +2 -2
- package/dist/unpkg/prod-deprecated/{request-Cgw3j6Dx.js.map → request-edWLn9JK.js.map} +1 -1
- 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-BgQLcshl.js → src-0f4an0QR.js} +33 -12
- package/dist/unpkg/prod-deprecated/src-0f4an0QR.js.map +1 -0
- package/dist/unpkg/prod-deprecated/store/-private.js +1 -1
- package/dist/unpkg/prod-deprecated/types/-private.js +1 -1
- package/dist/unpkg/prod-deprecated/types/schema/fields.js +82 -23
- package/dist/unpkg/prod-deprecated/types/schema/fields.js.map +1 -1
- package/package.json +4 -4
- package/dist/fields-r1rZJB9d.d.ts.map +0 -1
- package/dist/internal-D_WIXC4r.d.ts.map +0 -1
- package/dist/src-ccp1WKyt.js.map +0 -1
- package/dist/unpkg/dev/src-C4ET4R1n.js.map +0 -1
- package/dist/unpkg/dev-deprecated/src-jHpowq3S.js.map +0 -1
- package/dist/unpkg/prod/src-DFmPDGQ6.js.map +0 -1
- package/dist/unpkg/prod-deprecated/src-BgQLcshl.js.map +0 -1
|
@@ -203,6 +203,7 @@ function addToInverse(graph, resourceKey, key, value, isRemote) {
|
|
|
203
203
|
graph._addToTransaction(relationship);
|
|
204
204
|
if (relationship.remoteState !== null) removeFromInverse(graph, relationship.remoteState, relationship.definition.inverseKey, resourceKey, isRemote);
|
|
205
205
|
relationship.remoteState = value;
|
|
206
|
+
relationship.state.hasReceivedRemoteData = true;
|
|
206
207
|
notifyChange(graph, relationship);
|
|
207
208
|
}
|
|
208
209
|
if (relationship.localState !== value) {
|
|
@@ -216,8 +217,10 @@ function addToInverse(graph, resourceKey, key, value, isRemote) {
|
|
|
216
217
|
graph._addToTransaction(relationship);
|
|
217
218
|
relationship.remoteState.push(value);
|
|
218
219
|
relationship.remoteMembers.add(value);
|
|
219
|
-
if (relationship.additions?.has(value))
|
|
220
|
-
|
|
220
|
+
if (relationship.additions?.has(value)) {
|
|
221
|
+
relationship.additions.delete(value);
|
|
222
|
+
flushCanonical(graph, relationship, "remote");
|
|
223
|
+
} else {
|
|
221
224
|
relationship.isDirty = true;
|
|
222
225
|
relationship.state.hasReceivedData = true;
|
|
223
226
|
flushCanonical(graph, relationship);
|
|
@@ -245,6 +248,7 @@ function removeFromInverse(graph, resourceKey, key, value, isRemote) {
|
|
|
245
248
|
if (isRemote) {
|
|
246
249
|
graph._addToTransaction(relationship);
|
|
247
250
|
relationship.remoteState = null;
|
|
251
|
+
relationship.state.hasReceivedRemoteData = true;
|
|
248
252
|
notifyChange(graph, relationship);
|
|
249
253
|
}
|
|
250
254
|
if (relationship.localState === value) {
|
|
@@ -254,7 +258,9 @@ function removeFromInverse(graph, resourceKey, key, value, isRemote) {
|
|
|
254
258
|
} else if (isHasMany(relationship)) {
|
|
255
259
|
if (isRemote) {
|
|
256
260
|
graph._addToTransaction(relationship);
|
|
261
|
+
const wasMember = relationship.remoteMembers.has(value);
|
|
257
262
|
if (_removeRemote(relationship, value)) notifyChange(graph, relationship);
|
|
263
|
+
else if (wasMember) notifyChange(graph, relationship, "remote");
|
|
258
264
|
} else if (_removeLocal(relationship, value)) notifyChange(graph, relationship, "local");
|
|
259
265
|
} else if (isRemote) {
|
|
260
266
|
relationship.remoteMembers.delete(value);
|
|
@@ -565,7 +571,7 @@ function isLegacyField(field) {
|
|
|
565
571
|
return field.kind === "belongsTo" || field.kind === "hasMany";
|
|
566
572
|
}
|
|
567
573
|
function temporaryConvertToLegacy(field) {
|
|
568
|
-
|
|
574
|
+
const legacy = {
|
|
569
575
|
kind: field.kind === "resource" ? "belongsTo" : "hasMany",
|
|
570
576
|
name: field.name,
|
|
571
577
|
type: field.type,
|
|
@@ -575,6 +581,8 @@ function temporaryConvertToLegacy(field) {
|
|
|
575
581
|
resetOnRemoteUpdate: false
|
|
576
582
|
}, field.options)
|
|
577
583
|
};
|
|
584
|
+
if (field.sourceKey) legacy.sourceKey = field.sourceKey;
|
|
585
|
+
return legacy;
|
|
578
586
|
}
|
|
579
587
|
/**
|
|
580
588
|
*
|
|
@@ -659,10 +667,12 @@ function syncMeta(definition, inverseDefinition) {
|
|
|
659
667
|
inverseDefinition.resetOnRemoteUpdate = resetOnRemoteUpdate;
|
|
660
668
|
}
|
|
661
669
|
function upgradeMeta(meta) {
|
|
670
|
+
const fieldKind = meta.kind;
|
|
662
671
|
if (!isLegacyField(meta)) meta = temporaryConvertToLegacy(meta);
|
|
663
672
|
const niceMeta = {};
|
|
664
673
|
const options = meta.options;
|
|
665
674
|
niceMeta.kind = meta.kind;
|
|
675
|
+
niceMeta.fieldKind = fieldKind;
|
|
666
676
|
niceMeta.key = meta.sourceKey ?? meta.name;
|
|
667
677
|
niceMeta.name = meta.name;
|
|
668
678
|
niceMeta.type = meta.type;
|
|
@@ -716,7 +726,7 @@ function upgradeDefinition(graph, key, propertyName, isImplicit = false) {
|
|
|
716
726
|
const inverseType = definition.type;
|
|
717
727
|
if (definition.inverseKey === null) inverseDefinition = null;
|
|
718
728
|
else {
|
|
719
|
-
inverseKey =
|
|
729
|
+
inverseKey = inverseNameFor(meta);
|
|
720
730
|
if (!inverseKey && definition.isPolymorphic && definition.inverseKey) inverseDefinition = {
|
|
721
731
|
kind: "belongsTo",
|
|
722
732
|
key: definition.inverseKey,
|
|
@@ -728,11 +738,9 @@ function upgradeDefinition(graph, key, propertyName, isImplicit = false) {
|
|
|
728
738
|
isPolymorphic: false
|
|
729
739
|
};
|
|
730
740
|
else if (!inverseKey) inverseDefinition = null;
|
|
731
|
-
else {
|
|
732
|
-
inverseDefinition = upgradeMeta(storeWrapper.schema.fields({ type: inverseType }).get(inverseKey));
|
|
733
|
-
inverseKey = inverseDefinition.key;
|
|
734
|
-
}
|
|
741
|
+
else inverseDefinition = upgradeMeta(storeWrapper.schema.fields({ type: inverseType }).get(inverseKey));
|
|
735
742
|
}
|
|
743
|
+
if (inverseDefinition) inverseKey = inverseDefinition.key;
|
|
736
744
|
if (!inverseDefinition) {
|
|
737
745
|
inverseKey = implicitKeyFor(type, propertyName);
|
|
738
746
|
inverseDefinition = {
|
|
@@ -804,10 +812,17 @@ function upgradeDefinition(graph, key, propertyName, isImplicit = false) {
|
|
|
804
812
|
expandingSet(cache, inverseType, inverseKey, info);
|
|
805
813
|
return info;
|
|
806
814
|
}
|
|
807
|
-
|
|
808
|
-
|
|
809
|
-
|
|
810
|
-
|
|
815
|
+
/**
|
|
816
|
+
* The `name` of the field on the related type that `field` declares as its inverse,
|
|
817
|
+
* or `null` when it declares no inverse.
|
|
818
|
+
*
|
|
819
|
+
* `options.inverse` always names the inverse by its `name`, never by its `sourceKey`.
|
|
820
|
+
* `resource` and `collection` fields may omit it, in which case they are unidirectional;
|
|
821
|
+
* the legacy kinds must state it explicitly.
|
|
822
|
+
*/
|
|
823
|
+
function inverseNameFor(field) {
|
|
824
|
+
const { options } = isLegacyField(field) ? field : temporaryConvertToLegacy(field);
|
|
825
|
+
return options.inverse;
|
|
811
826
|
}
|
|
812
827
|
|
|
813
828
|
// src/graph/-private/-state.ts
|