@warp-drive-mirror/core 5.10.0-alpha.21 → 5.10.0-alpha.22
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
|
@@ -174,6 +174,7 @@ function addToInverse(graph, resourceKey, key, value, isRemote) {
|
|
|
174
174
|
graph._addToTransaction(relationship);
|
|
175
175
|
if (relationship.remoteState !== null) removeFromInverse(graph, relationship.remoteState, relationship.definition.inverseKey, resourceKey, isRemote);
|
|
176
176
|
relationship.remoteState = value;
|
|
177
|
+
relationship.state.hasReceivedRemoteData = true;
|
|
177
178
|
notifyChange(graph, relationship);
|
|
178
179
|
}
|
|
179
180
|
if (relationship.localState !== value) {
|
|
@@ -187,8 +188,10 @@ function addToInverse(graph, resourceKey, key, value, isRemote) {
|
|
|
187
188
|
graph._addToTransaction(relationship);
|
|
188
189
|
relationship.remoteState.push(value);
|
|
189
190
|
relationship.remoteMembers.add(value);
|
|
190
|
-
if (relationship.additions?.has(value))
|
|
191
|
-
|
|
191
|
+
if (relationship.additions?.has(value)) {
|
|
192
|
+
relationship.additions.delete(value);
|
|
193
|
+
flushCanonical(graph, relationship, "remote");
|
|
194
|
+
} else {
|
|
192
195
|
relationship.isDirty = true;
|
|
193
196
|
relationship.state.hasReceivedData = true;
|
|
194
197
|
flushCanonical(graph, relationship);
|
|
@@ -216,6 +219,7 @@ function removeFromInverse(graph, resourceKey, key, value, isRemote) {
|
|
|
216
219
|
if (isRemote) {
|
|
217
220
|
graph._addToTransaction(relationship);
|
|
218
221
|
relationship.remoteState = null;
|
|
222
|
+
relationship.state.hasReceivedRemoteData = true;
|
|
219
223
|
notifyChange(graph, relationship);
|
|
220
224
|
}
|
|
221
225
|
if (relationship.localState === value) {
|
|
@@ -225,7 +229,9 @@ function removeFromInverse(graph, resourceKey, key, value, isRemote) {
|
|
|
225
229
|
} else if (isHasMany(relationship)) {
|
|
226
230
|
if (isRemote) {
|
|
227
231
|
graph._addToTransaction(relationship);
|
|
232
|
+
const wasMember = relationship.remoteMembers.has(value);
|
|
228
233
|
if (_removeRemote(relationship, value)) notifyChange(graph, relationship);
|
|
234
|
+
else if (wasMember) notifyChange(graph, relationship, "remote");
|
|
229
235
|
} else if (_removeLocal(relationship, value)) notifyChange(graph, relationship, "local");
|
|
230
236
|
} else if (isRemote) {
|
|
231
237
|
relationship.remoteMembers.delete(value);
|
|
@@ -454,7 +460,7 @@ function isLegacyField(field) {
|
|
|
454
460
|
return field.kind === "belongsTo" || field.kind === "hasMany";
|
|
455
461
|
}
|
|
456
462
|
function temporaryConvertToLegacy(field) {
|
|
457
|
-
|
|
463
|
+
const legacy = {
|
|
458
464
|
kind: field.kind === "resource" ? "belongsTo" : "hasMany",
|
|
459
465
|
name: field.name,
|
|
460
466
|
type: field.type,
|
|
@@ -464,6 +470,8 @@ function temporaryConvertToLegacy(field) {
|
|
|
464
470
|
resetOnRemoteUpdate: false
|
|
465
471
|
}, field.options)
|
|
466
472
|
};
|
|
473
|
+
if (field.sourceKey) legacy.sourceKey = field.sourceKey;
|
|
474
|
+
return legacy;
|
|
467
475
|
}
|
|
468
476
|
/**
|
|
469
477
|
*
|
|
@@ -548,10 +556,12 @@ function syncMeta(definition, inverseDefinition) {
|
|
|
548
556
|
inverseDefinition.resetOnRemoteUpdate = resetOnRemoteUpdate;
|
|
549
557
|
}
|
|
550
558
|
function upgradeMeta(meta) {
|
|
559
|
+
const fieldKind = meta.kind;
|
|
551
560
|
if (!isLegacyField(meta)) meta = temporaryConvertToLegacy(meta);
|
|
552
561
|
const niceMeta = {};
|
|
553
562
|
const options = meta.options;
|
|
554
563
|
niceMeta.kind = meta.kind;
|
|
564
|
+
niceMeta.fieldKind = fieldKind;
|
|
555
565
|
niceMeta.key = meta.sourceKey ?? meta.name;
|
|
556
566
|
niceMeta.name = meta.name;
|
|
557
567
|
niceMeta.type = meta.type;
|
|
@@ -605,7 +615,7 @@ function upgradeDefinition(graph, key, propertyName, isImplicit = false) {
|
|
|
605
615
|
const inverseType = definition.type;
|
|
606
616
|
if (definition.inverseKey === null) inverseDefinition = null;
|
|
607
617
|
else {
|
|
608
|
-
inverseKey =
|
|
618
|
+
inverseKey = inverseNameFor(meta);
|
|
609
619
|
if (!inverseKey && definition.isPolymorphic && definition.inverseKey) inverseDefinition = {
|
|
610
620
|
kind: "belongsTo",
|
|
611
621
|
key: definition.inverseKey,
|
|
@@ -617,11 +627,9 @@ function upgradeDefinition(graph, key, propertyName, isImplicit = false) {
|
|
|
617
627
|
isPolymorphic: false
|
|
618
628
|
};
|
|
619
629
|
else if (!inverseKey) inverseDefinition = null;
|
|
620
|
-
else {
|
|
621
|
-
inverseDefinition = upgradeMeta(storeWrapper.schema.fields({ type: inverseType }).get(inverseKey));
|
|
622
|
-
inverseKey = inverseDefinition.key;
|
|
623
|
-
}
|
|
630
|
+
else inverseDefinition = upgradeMeta(storeWrapper.schema.fields({ type: inverseType }).get(inverseKey));
|
|
624
631
|
}
|
|
632
|
+
if (inverseDefinition) inverseKey = inverseDefinition.key;
|
|
625
633
|
if (!inverseDefinition) {
|
|
626
634
|
inverseKey = implicitKeyFor(type, propertyName);
|
|
627
635
|
inverseDefinition = {
|
|
@@ -693,10 +701,17 @@ function upgradeDefinition(graph, key, propertyName, isImplicit = false) {
|
|
|
693
701
|
expandingSet(cache, inverseType, inverseKey, info);
|
|
694
702
|
return info;
|
|
695
703
|
}
|
|
696
|
-
|
|
697
|
-
|
|
698
|
-
|
|
699
|
-
|
|
704
|
+
/**
|
|
705
|
+
* The `name` of the field on the related type that `field` declares as its inverse,
|
|
706
|
+
* or `null` when it declares no inverse.
|
|
707
|
+
*
|
|
708
|
+
* `options.inverse` always names the inverse by its `name`, never by its `sourceKey`.
|
|
709
|
+
* `resource` and `collection` fields may omit it, in which case they are unidirectional;
|
|
710
|
+
* the legacy kinds must state it explicitly.
|
|
711
|
+
*/
|
|
712
|
+
function inverseNameFor(field) {
|
|
713
|
+
const { options } = isLegacyField(field) ? field : temporaryConvertToLegacy(field);
|
|
714
|
+
return options.inverse;
|
|
700
715
|
}
|
|
701
716
|
|
|
702
717
|
// src/graph/-private/-state.ts
|