@warp-drive/core 5.9.0-beta.1 → 5.9.0-beta.3
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-BL9zXgJB.js +3530 -0
- package/dist/-private-BL9zXgJB.js.map +1 -0
- package/dist/{-private-DMzvF_Q6.js → -private-Cxa8cMBj.js} +2 -2
- package/dist/-private-Cxa8cMBj.js.map +1 -0
- package/dist/{unpkg/dev-deprecated/-private-DL4tfrv9.js → -private-xK1KgxZJ.js} +2 -2
- package/dist/{-private-b1g4dhl0.js.map → -private-xK1KgxZJ.js.map} +1 -1
- package/{declarations/concepts-LHsLJZMl.d.ts → dist/concepts-DFldVwEM.d.ts} +2 -2
- package/{declarations/concepts-LHsLJZMl.d.ts.map → dist/concepts-DFldVwEM.d.ts.map} +1 -1
- package/dist/configure.js +1 -1
- package/dist/graph/-private.d.ts +2 -0
- package/dist/graph/-private.js +46 -33
- package/dist/graph/-private.js.map +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.js +1 -1
- package/{declarations/internal-Cz-893zD.d.ts → dist/internal-DtWOpxrR.d.ts} +2763 -2271
- package/dist/internal-DtWOpxrR.d.ts.map +1 -0
- package/dist/reactive/-private.d.ts +2 -0
- package/dist/reactive/-private.js +1 -1
- package/dist/reactive.d.ts +2 -0
- package/dist/reactive.js +3 -3
- package/{declarations → dist}/record-D3QQcaIR.d.ts.map +1 -1
- package/dist/{request--vRFALbQ.js → request-z2NByNx0.js} +2 -2
- package/dist/request-z2NByNx0.js.map +1 -0
- package/dist/request.d.ts +2 -0
- package/dist/request.js +1 -1
- package/dist/signals/-leaked.d.ts +1060 -0
- package/dist/signals/-leaked.d.ts.map +1 -0
- package/dist/signals/-leaked.js +2 -2
- package/dist/{src-Dex_phWI.js → src-s5HHjglV.js} +192 -53
- package/dist/src-s5HHjglV.js.map +1 -0
- package/dist/store/-private.d.ts +2 -0
- package/dist/store/-private.js +1 -1
- package/dist/store-DNF9Rgoh.js.map +1 -1
- package/dist/store.d.ts +2 -0
- package/{declarations → dist}/types/-private.d.ts +1 -1
- package/{declarations → dist}/types/-private.d.ts.map +1 -1
- package/dist/types/-private.js +1 -1
- package/dist/types/cache.d.ts +2 -0
- package/dist/types/record.js.map +1 -1
- package/dist/types/request.d.ts +2 -0
- package/dist/types/request.js +1 -1
- package/dist/types/request.js.map +1 -1
- package/dist/types/runtime.js +1 -1
- package/dist/types/schema/concepts.d.ts +2 -0
- package/dist/types/schema/fields.js.map +1 -1
- package/dist/types/schema/schema-service.d.ts +2 -0
- package/dist/types/symbols.js +1 -1
- package/dist/types/symbols.js.map +1 -1
- package/{declarations → dist}/types.d.ts +1 -1
- package/dist/{-private-b1g4dhl0.js → unpkg/dev/-private-BGCYELwo.js} +2 -2
- package/dist/unpkg/{dev-deprecated/-private-DL4tfrv9.js.map → dev/-private-BGCYELwo.js.map} +1 -1
- package/dist/unpkg/{dev-deprecated/-private-2RfQ2761.js → dev/-private-DhiS6yOR.js} +2 -2
- package/dist/unpkg/dev/-private-DhiS6yOR.js.map +1 -0
- package/dist/unpkg/dev/-private-pNQae3qH.js +3519 -0
- package/dist/unpkg/dev/-private-pNQae3qH.js.map +1 -0
- package/dist/unpkg/dev/configure.js +1 -1
- package/dist/unpkg/dev/graph/-private.js +46 -33
- 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-DAuXbfYi.js → dev/request-BbbzRou7.js} +2 -2
- package/dist/unpkg/dev/request-BbbzRou7.js.map +1 -0
- package/dist/unpkg/dev/request.js +1 -1
- package/dist/unpkg/dev/{runtime-EoVKAhTv.js → runtime-DoDtzXJb.js} +2 -2
- package/dist/unpkg/dev/runtime-DoDtzXJb.js.map +1 -0
- package/dist/unpkg/dev/signals/-leaked.js +2 -2
- package/dist/unpkg/dev/{src-Bxlr_vue.js → src-Cf7NXXR2.js} +194 -55
- package/dist/unpkg/dev/src-Cf7NXXR2.js.map +1 -0
- package/dist/unpkg/dev/store/-private.js +1 -1
- package/dist/unpkg/{dev-deprecated/store-TcP2H4Af.js → dev/store-DamE3C4y.js} +2 -2
- package/dist/unpkg/dev/store-DamE3C4y.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/record.js.map +1 -1
- package/dist/unpkg/dev/types/request.js +1 -1
- package/dist/unpkg/dev/types/request.js.map +1 -1
- package/dist/unpkg/dev/types/runtime.js +1 -1
- package/dist/unpkg/dev/types/schema/fields.js.map +1 -1
- package/dist/unpkg/dev/types/symbols.js +1 -1
- package/dist/unpkg/dev/types/symbols.js.map +1 -1
- package/dist/unpkg/{dev/-private-DL4tfrv9.js → dev-deprecated/-private-BGCYELwo.js} +2 -2
- package/dist/unpkg/{prod/-private-Z9i0icpE.js.map → dev-deprecated/-private-BGCYELwo.js.map} +1 -1
- package/dist/unpkg/{dev/-private-2RfQ2761.js → dev-deprecated/-private-DhiS6yOR.js} +2 -2
- package/dist/unpkg/dev-deprecated/-private-DhiS6yOR.js.map +1 -0
- package/dist/unpkg/dev-deprecated/-private-pNQae3qH.js +3519 -0
- package/dist/unpkg/dev-deprecated/-private-pNQae3qH.js.map +1 -0
- package/dist/unpkg/dev-deprecated/configure.js +1 -1
- package/dist/unpkg/dev-deprecated/graph/-private.js +47 -34
- 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-DAuXbfYi.js → dev-deprecated/request-BbbzRou7.js} +2 -2
- package/dist/unpkg/dev-deprecated/request-BbbzRou7.js.map +1 -0
- package/dist/unpkg/dev-deprecated/request.js +1 -1
- package/dist/unpkg/dev-deprecated/{runtime-BacZMq1r.js → runtime-CPL2BGgT.js} +2 -2
- package/dist/unpkg/dev-deprecated/runtime-CPL2BGgT.js.map +1 -0
- package/dist/unpkg/dev-deprecated/signals/-leaked.js +2 -2
- package/dist/unpkg/dev-deprecated/{src-DEl2Ca3T.js → src-CSuFUXv4.js} +195 -56
- package/dist/unpkg/dev-deprecated/src-CSuFUXv4.js.map +1 -0
- package/dist/unpkg/dev-deprecated/store/-private.js +1 -1
- package/dist/unpkg/{dev/store-DmiFvT1B.js → dev-deprecated/store-Bsdz5mRe.js} +2 -2
- package/dist/unpkg/dev-deprecated/store-Bsdz5mRe.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/record.js.map +1 -1
- package/dist/unpkg/dev-deprecated/types/request.js +1 -1
- package/dist/unpkg/dev-deprecated/types/request.js.map +1 -1
- package/dist/unpkg/dev-deprecated/types/runtime.js +1 -1
- package/dist/unpkg/dev-deprecated/types/schema/fields.js.map +1 -1
- package/dist/unpkg/dev-deprecated/types/symbols.js +1 -1
- package/dist/unpkg/dev-deprecated/types/symbols.js.map +1 -1
- package/dist/unpkg/prod/-private-8gd8hbwm.js +22 -0
- package/dist/unpkg/{prod-deprecated/-private-Z9i0icpE.js.map → prod/-private-8gd8hbwm.js.map} +1 -1
- package/dist/unpkg/prod/{-private-BK71-uXR.js → -private-B6aLbrgV.js} +2 -2
- package/dist/unpkg/prod/-private-B6aLbrgV.js.map +1 -0
- package/dist/unpkg/prod/-private-ggVX_Iob.js +3294 -0
- package/dist/unpkg/prod/-private-ggVX_Iob.js.map +1 -0
- package/dist/unpkg/prod/configure.js +1 -1
- package/dist/unpkg/prod/graph/-private.js +45 -32
- 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-BcJNzSgv.js → request-BoeppjDj.js} +2 -2
- package/dist/unpkg/prod/request-BoeppjDj.js.map +1 -0
- package/dist/unpkg/prod/request.js +1 -1
- package/dist/unpkg/prod/signals/-leaked.js +2 -2
- package/dist/unpkg/prod/{src-Dzz-j6pp.js → src-C0wuASrN.js} +196 -53
- package/dist/unpkg/prod/src-C0wuASrN.js.map +1 -0
- package/dist/unpkg/prod/store/-private.js +1 -1
- package/dist/unpkg/prod/store-BWhmb7Ob.js.map +1 -1
- package/dist/unpkg/prod/types/-private.js +1 -1
- package/dist/unpkg/prod/types/record.js.map +1 -1
- package/dist/unpkg/prod/types/request.js +1 -1
- package/dist/unpkg/prod/types/request.js.map +1 -1
- package/dist/unpkg/prod/types/runtime.js +1 -1
- package/dist/unpkg/prod/types/schema/fields.js.map +1 -1
- package/dist/unpkg/prod/types/symbols.js +1 -1
- package/dist/unpkg/prod/types/symbols.js.map +1 -1
- package/dist/unpkg/prod-deprecated/{-private-Z9i0icpE.js → -private-8gd8hbwm.js} +2 -2
- package/dist/unpkg/{dev/-private-DL4tfrv9.js.map → prod-deprecated/-private-8gd8hbwm.js.map} +1 -1
- package/dist/unpkg/prod-deprecated/{-private-BK71-uXR.js → -private-B6aLbrgV.js} +2 -2
- package/dist/unpkg/prod-deprecated/-private-B6aLbrgV.js.map +1 -0
- package/dist/unpkg/prod-deprecated/-private-ggVX_Iob.js +3294 -0
- package/dist/unpkg/prod-deprecated/-private-ggVX_Iob.js.map +1 -0
- package/dist/unpkg/prod-deprecated/configure.js +1 -1
- package/dist/unpkg/prod-deprecated/graph/-private.js +46 -35
- 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-BcJNzSgv.js → request-BoeppjDj.js} +2 -2
- package/dist/unpkg/prod-deprecated/request-BoeppjDj.js.map +1 -0
- package/dist/unpkg/prod-deprecated/request.js +1 -1
- package/dist/unpkg/prod-deprecated/signals/-leaked.js +2 -2
- package/dist/unpkg/prod-deprecated/{src-BOifHFQ5.js → src-BXOgNqmz.js} +197 -54
- package/dist/unpkg/prod-deprecated/src-BXOgNqmz.js.map +1 -0
- package/dist/unpkg/prod-deprecated/store/-private.js +1 -1
- package/dist/unpkg/prod-deprecated/store-BWhmb7Ob.js.map +1 -1
- package/dist/unpkg/prod-deprecated/types/-private.js +1 -1
- package/dist/unpkg/prod-deprecated/types/record.js.map +1 -1
- package/dist/unpkg/prod-deprecated/types/request.js +1 -1
- package/dist/unpkg/prod-deprecated/types/request.js.map +1 -1
- package/dist/unpkg/prod-deprecated/types/runtime.js +1 -1
- package/dist/unpkg/prod-deprecated/types/schema/fields.js.map +1 -1
- package/dist/unpkg/prod-deprecated/types/symbols.js +1 -1
- package/dist/unpkg/prod-deprecated/types/symbols.js.map +1 -1
- package/package.json +15 -19
- package/declarations/graph/-private.d.ts +0 -2
- package/declarations/index.d.ts +0 -2
- package/declarations/internal-Cz-893zD.d.ts.map +0 -1
- package/declarations/reactive/-private.d.ts +0 -2
- package/declarations/reactive.d.ts +0 -2
- package/declarations/request.d.ts +0 -2
- package/declarations/signals/-leaked.d.ts +0 -63
- package/declarations/signals/-leaked.d.ts.map +0 -1
- package/declarations/store/-private.d.ts +0 -2
- package/declarations/store.d.ts +0 -8358
- package/declarations/store.d.ts.map +0 -1
- package/declarations/types/cache.d.ts +0 -2
- package/declarations/types/request.d.ts +0 -2
- package/declarations/types/schema/concepts.d.ts +0 -2
- package/declarations/types/schema/schema-service.d.ts +0 -2
- package/dist/-private-DMzvF_Q6.js.map +0 -1
- package/dist/-private-HjaQ1wp1.js +0 -1695
- package/dist/-private-HjaQ1wp1.js.map +0 -1
- package/dist/request--vRFALbQ.js.map +0 -1
- package/dist/src-Dex_phWI.js.map +0 -1
- package/dist/unpkg/dev/-private-2RfQ2761.js.map +0 -1
- package/dist/unpkg/dev/-private-CM1zxNws.js +0 -1684
- package/dist/unpkg/dev/-private-CM1zxNws.js.map +0 -1
- package/dist/unpkg/dev/request-DAuXbfYi.js.map +0 -1
- package/dist/unpkg/dev/runtime-EoVKAhTv.js.map +0 -1
- package/dist/unpkg/dev/src-Bxlr_vue.js.map +0 -1
- package/dist/unpkg/dev/store-DmiFvT1B.js.map +0 -1
- package/dist/unpkg/dev-deprecated/-private-2RfQ2761.js.map +0 -1
- package/dist/unpkg/dev-deprecated/-private-CM1zxNws.js +0 -1684
- package/dist/unpkg/dev-deprecated/-private-CM1zxNws.js.map +0 -1
- package/dist/unpkg/dev-deprecated/request-DAuXbfYi.js.map +0 -1
- package/dist/unpkg/dev-deprecated/runtime-BacZMq1r.js.map +0 -1
- package/dist/unpkg/dev-deprecated/src-DEl2Ca3T.js.map +0 -1
- package/dist/unpkg/dev-deprecated/store-TcP2H4Af.js.map +0 -1
- package/dist/unpkg/prod/-private-BK71-uXR.js.map +0 -1
- package/dist/unpkg/prod/-private-TNaS5Piv.js +0 -1494
- package/dist/unpkg/prod/-private-TNaS5Piv.js.map +0 -1
- package/dist/unpkg/prod/-private-Z9i0icpE.js +0 -22
- package/dist/unpkg/prod/request-BcJNzSgv.js.map +0 -1
- package/dist/unpkg/prod/src-Dzz-j6pp.js.map +0 -1
- package/dist/unpkg/prod-deprecated/-private-BK71-uXR.js.map +0 -1
- package/dist/unpkg/prod-deprecated/-private-TNaS5Piv.js +0 -1494
- package/dist/unpkg/prod-deprecated/-private-TNaS5Piv.js.map +0 -1
- package/dist/unpkg/prod-deprecated/request-BcJNzSgv.js.map +0 -1
- package/dist/unpkg/prod-deprecated/src-BOifHFQ5.js.map +0 -1
- /package/{declarations → dist}/aliases-BWYW5EhX.d.ts +0 -0
- /package/{declarations → dist}/aliases-BWYW5EhX.d.ts.map +0 -0
- /package/{declarations → dist}/build-config/babel-macros.d.ts +0 -0
- /package/{declarations → dist}/build-config/canary-features.d.ts +0 -0
- /package/{declarations → dist}/build-config/debugging.d.ts +0 -0
- /package/{declarations → dist}/build-config/deprecations.d.ts +0 -0
- /package/{declarations → dist}/build-config/env.d.ts +0 -0
- /package/{declarations → dist}/build-config/macros.d.ts +0 -0
- /package/{declarations → dist}/build-config.d.ts +0 -0
- /package/{declarations → dist}/change-C7kqv2kW.d.ts +0 -0
- /package/{declarations → dist}/change-C7kqv2kW.d.ts.map +0 -0
- /package/{declarations → dist}/configure-B_F639tN.d.ts +0 -0
- /package/{declarations → dist}/configure-B_F639tN.d.ts.map +0 -0
- /package/{declarations → dist}/configure.d.ts +0 -0
- /package/{declarations → dist}/document-BEn91SwT.d.ts +0 -0
- /package/{declarations → dist}/document-BEn91SwT.d.ts.map +0 -0
- /package/{declarations → dist}/error-50OSEhsF.d.ts +0 -0
- /package/{declarations → dist}/error-50OSEhsF.d.ts.map +0 -0
- /package/{declarations → dist}/fields-FM7peCiM.d.ts +0 -0
- /package/{declarations → dist}/fields-FM7peCiM.d.ts.map +0 -0
- /package/{declarations → dist}/graph-DLqYXP2z.d.ts +0 -0
- /package/{declarations → dist}/graph-DLqYXP2z.d.ts.map +0 -0
- /package/{declarations → dist}/identifier-DQnqOSJK.d.ts +0 -0
- /package/{declarations → dist}/identifier-DQnqOSJK.d.ts.map +0 -0
- /package/{declarations → dist}/json-api-raw-C5APJHHB.d.ts +0 -0
- /package/{declarations → dist}/json-api-raw-C5APJHHB.d.ts.map +0 -0
- /package/{declarations → dist}/mutations-CqtoGB4t.d.ts +0 -0
- /package/{declarations → dist}/mutations-CqtoGB4t.d.ts.map +0 -0
- /package/{declarations → dist}/operations-D1qA6r0_.d.ts +0 -0
- /package/{declarations → dist}/operations-D1qA6r0_.d.ts.map +0 -0
- /package/{declarations → dist}/params-DrEx3bf8.d.ts +0 -0
- /package/{declarations → dist}/params-DrEx3bf8.d.ts.map +0 -0
- /package/{declarations → dist}/raw-D5hnjiq7.d.ts +0 -0
- /package/{declarations → dist}/raw-D5hnjiq7.d.ts.map +0 -0
- /package/{declarations → dist}/record-D3QQcaIR.d.ts +0 -0
- /package/{declarations → dist}/relationship-CmHzMPKf.d.ts +0 -0
- /package/{declarations → dist}/relationship-CmHzMPKf.d.ts.map +0 -0
- /package/{declarations → dist}/symbols-DjRDCeX0.d.ts +0 -0
- /package/{declarations → dist}/symbols-DjRDCeX0.d.ts.map +0 -0
- /package/{declarations → dist}/types/cache/aliases.d.ts +0 -0
- /package/{declarations → dist}/types/cache/change.d.ts +0 -0
- /package/{declarations → dist}/types/cache/mutations.d.ts +0 -0
- /package/{declarations → dist}/types/cache/operations.d.ts +0 -0
- /package/{declarations → dist}/types/cache/relationship.d.ts +0 -0
- /package/{declarations → dist}/types/graph.d.ts +0 -0
- /package/{declarations → dist}/types/identifier.d.ts +0 -0
- /package/{declarations → dist}/types/json/raw.d.ts +0 -0
- /package/{declarations → dist}/types/params.d.ts +0 -0
- /package/{declarations → dist}/types/record.d.ts +0 -0
- /package/{declarations → dist}/types/runtime.d.ts +0 -0
- /package/{declarations → dist}/types/runtime.d.ts.map +0 -0
- /package/{declarations → dist}/types/schema/fields.d.ts +0 -0
- /package/{declarations → dist}/types/schema/fields.type-test.d.ts +0 -0
- /package/{declarations → dist}/types/spec/document.d.ts +0 -0
- /package/{declarations → dist}/types/spec/error.d.ts +0 -0
- /package/{declarations → dist}/types/spec/json-api-raw.d.ts +0 -0
- /package/{declarations → dist}/types/symbols.d.ts +0 -0
- /package/{declarations → dist}/types/utils.d.ts +0 -0
- /package/{declarations → dist}/utils/string.d.ts +0 -0
- /package/{declarations → dist}/utils/string.d.ts.map +0 -0
- /package/{declarations → dist}/utils-BtURiy8l.d.ts +0 -0
- /package/{declarations → dist}/utils-BtURiy8l.d.ts.map +0 -0
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { a as setTransient, r as peekTransient, t as getOrSetGlobal } from "../-private-
|
|
1
|
+
import { a as setTransient, r as peekTransient, t as getOrSetGlobal } from "../-private-B6aLbrgV.js";
|
|
2
2
|
|
|
3
3
|
//#region src/graph/-private/-utils.ts
|
|
4
4
|
/** Retrieves the private {@link Store} instance from a capabilities manager (or any object exposing `_store`). */
|
|
@@ -81,12 +81,12 @@ function removeIdentifierCompletelyFromRelationship(graph, relationship, value,
|
|
|
81
81
|
}
|
|
82
82
|
}
|
|
83
83
|
/** Notifies the store that a relationship has changed, provided the relationship has been accessed and is not currently being removed. */
|
|
84
|
-
function notifyChange(graph, relationship) {
|
|
84
|
+
function notifyChange(graph, relationship, channel) {
|
|
85
85
|
if (!relationship.accessed) return;
|
|
86
86
|
const resourceKey = relationship.identifier;
|
|
87
87
|
const key = relationship.definition.key;
|
|
88
88
|
if (resourceKey === graph._removing) return;
|
|
89
|
-
graph.store.notifyChange(resourceKey, "relationships", key);
|
|
89
|
+
graph.store.notifyChange(resourceKey, "relationships", key, channel);
|
|
90
90
|
}
|
|
91
91
|
|
|
92
92
|
//#endregion
|
|
@@ -138,13 +138,13 @@ function replaceRelatedRecordsLocal(graph, op, isRemote) {
|
|
|
138
138
|
relationship.additions = diff.add;
|
|
139
139
|
relationship.removals = diff.del;
|
|
140
140
|
relationship.localState = diff.finalState;
|
|
141
|
-
if (becameDirty && !wasDirty) notifyChange(graph, relationship);
|
|
141
|
+
if (becameDirty && !wasDirty) notifyChange(graph, relationship, "local");
|
|
142
142
|
}
|
|
143
143
|
function replaceRelatedRecordsRemote(graph, op, isRemote) {
|
|
144
144
|
const resourceKeys = op.value;
|
|
145
145
|
const relationship = graph.get(op.record, op.field);
|
|
146
146
|
if (isRemote) graph._addToTransaction(relationship);
|
|
147
|
-
|
|
147
|
+
relationship.isDirty;
|
|
148
148
|
if (!relationship.state.hasReceivedData) relationship.isDirty = true;
|
|
149
149
|
relationship.state.hasReceivedData = true;
|
|
150
150
|
const { definition } = relationship;
|
|
@@ -161,7 +161,8 @@ function replaceRelatedRecordsRemote(graph, op, isRemote) {
|
|
|
161
161
|
relationship.remoteState = diff.finalState;
|
|
162
162
|
if (diff.changed) relationship.isDirty = true;
|
|
163
163
|
relationship._diff = diff;
|
|
164
|
-
if (
|
|
164
|
+
if (diff.remoteOrderChanged) flushCanonical(graph, relationship, "remote");
|
|
165
|
+
if (diff.changed) flushCanonical(graph, relationship, "local");
|
|
165
166
|
}
|
|
166
167
|
function addToInverse(graph, resourceKey, key, value, isRemote) {
|
|
167
168
|
const relationship = graph.get(resourceKey, key);
|
|
@@ -174,11 +175,12 @@ function addToInverse(graph, resourceKey, key, value, isRemote) {
|
|
|
174
175
|
graph._addToTransaction(relationship);
|
|
175
176
|
if (relationship.remoteState !== null) removeFromInverse(graph, relationship.remoteState, relationship.definition.inverseKey, resourceKey, isRemote);
|
|
176
177
|
relationship.remoteState = value;
|
|
178
|
+
notifyChange(graph, relationship);
|
|
177
179
|
}
|
|
178
180
|
if (relationship.localState !== value) {
|
|
179
181
|
if (!isRemote && relationship.localState) removeFromInverse(graph, relationship.localState, relationship.definition.inverseKey, resourceKey, isRemote);
|
|
180
182
|
relationship.localState = value;
|
|
181
|
-
notifyChange(graph, relationship);
|
|
183
|
+
if (!isRemote) notifyChange(graph, relationship, "local");
|
|
182
184
|
}
|
|
183
185
|
} else if (isHasMany(relationship)) {
|
|
184
186
|
if (isRemote) {
|
|
@@ -195,7 +197,7 @@ function addToInverse(graph, resourceKey, key, value, isRemote) {
|
|
|
195
197
|
}
|
|
196
198
|
} else {
|
|
197
199
|
if (!relationship.isDirty && !relationship.localState) relationship.localState = [];
|
|
198
|
-
if (_add(graph, resourceKey, relationship, value, null, isRemote)) notifyChange(graph, relationship);
|
|
200
|
+
if (_add(graph, resourceKey, relationship, value, null, isRemote)) notifyChange(graph, relationship, "local");
|
|
199
201
|
}
|
|
200
202
|
} else if (isRemote) {
|
|
201
203
|
if (!relationship.remoteMembers.has(value)) {
|
|
@@ -215,23 +217,24 @@ function removeFromInverse(graph, resourceKey, key, value, isRemote) {
|
|
|
215
217
|
if (isRemote) {
|
|
216
218
|
graph._addToTransaction(relationship);
|
|
217
219
|
relationship.remoteState = null;
|
|
220
|
+
notifyChange(graph, relationship);
|
|
218
221
|
}
|
|
219
222
|
if (relationship.localState === value) {
|
|
220
223
|
relationship.localState = null;
|
|
221
|
-
notifyChange(graph, relationship);
|
|
224
|
+
if (!isRemote) notifyChange(graph, relationship, "local");
|
|
222
225
|
}
|
|
223
226
|
} else if (isHasMany(relationship)) {
|
|
224
227
|
if (isRemote) {
|
|
225
228
|
graph._addToTransaction(relationship);
|
|
226
229
|
if (_removeRemote(relationship, value)) notifyChange(graph, relationship);
|
|
227
|
-
} else if (_removeLocal(relationship, value)) notifyChange(graph, relationship);
|
|
230
|
+
} else if (_removeLocal(relationship, value)) notifyChange(graph, relationship, "local");
|
|
228
231
|
} else if (isRemote) {
|
|
229
232
|
relationship.remoteMembers.delete(value);
|
|
230
233
|
relationship.localMembers.delete(value);
|
|
231
234
|
} else if (value && relationship.localMembers.has(value)) relationship.localMembers.delete(value);
|
|
232
235
|
}
|
|
233
|
-
function flushCanonical(graph, rel) {
|
|
234
|
-
if (rel.accessed) graph._scheduleLocalSync(rel);
|
|
236
|
+
function flushCanonical(graph, rel, channel) {
|
|
237
|
+
if (rel.accessed) graph._scheduleLocalSync(rel, channel);
|
|
235
238
|
}
|
|
236
239
|
|
|
237
240
|
//#endregion
|
|
@@ -270,13 +273,11 @@ function replaceRelatedRecord(graph, op, isRemote = false) {
|
|
|
270
273
|
addToInverse(graph, op.value, definition.inverseKey, op.record, isRemote);
|
|
271
274
|
}
|
|
272
275
|
if (isRemote) {
|
|
276
|
+
notifyChange(graph, relationship);
|
|
273
277
|
const { localState, remoteState } = relationship;
|
|
274
278
|
if (localState && checkIfNew(graph._realStore, localState) && !remoteState) return;
|
|
275
|
-
if (localState !== remoteState && localState === existingState)
|
|
276
|
-
|
|
277
|
-
notifyChange(graph, relationship);
|
|
278
|
-
}
|
|
279
|
-
} else notifyChange(graph, relationship);
|
|
279
|
+
if (localState !== remoteState && localState === existingState) relationship.localState = remoteState;
|
|
280
|
+
} else notifyChange(graph, relationship, "local");
|
|
280
281
|
}
|
|
281
282
|
|
|
282
283
|
//#endregion
|
|
@@ -845,7 +846,7 @@ function addToRelatedRecords(graph, op, isRemote) {
|
|
|
845
846
|
if (!relationship.isDirty && !relationship.localState) relationship.localState = [];
|
|
846
847
|
if (Array.isArray(value)) for (let i = 0; i < value.length; i++) addRelatedRecord(graph, relationship, record, value[i], index !== void 0 ? index + i : null, isRemote);
|
|
847
848
|
else addRelatedRecord(graph, relationship, record, value, index ?? null, isRemote);
|
|
848
|
-
notifyChange(graph, relationship);
|
|
849
|
+
notifyChange(graph, relationship, isRemote ? void 0 : "local");
|
|
849
850
|
}
|
|
850
851
|
function addRelatedRecord(graph, relationship, record, value, index, isRemote) {
|
|
851
852
|
if (_add(graph, record, relationship, value, index, isRemote)) addToInverse(graph, value, relationship.definition.inverseKey, record, isRemote);
|
|
@@ -872,11 +873,16 @@ function mergeInRelationship(graph, rel, op) {
|
|
|
872
873
|
else mergeImplicit(graph, rel, op);
|
|
873
874
|
}
|
|
874
875
|
function mergeBelongsTo(graph, rel, op) {
|
|
875
|
-
|
|
876
|
+
let changed = false;
|
|
877
|
+
if (rel.remoteState === op.record) {
|
|
878
|
+
rel.remoteState = op.value;
|
|
879
|
+
changed = true;
|
|
880
|
+
}
|
|
876
881
|
if (rel.localState === op.record) {
|
|
877
882
|
rel.localState = op.value;
|
|
878
|
-
|
|
883
|
+
changed = true;
|
|
879
884
|
}
|
|
885
|
+
if (changed) notifyChange(graph, rel);
|
|
880
886
|
}
|
|
881
887
|
function mergeHasMany(graph, rel, op) {
|
|
882
888
|
if (rel.remoteMembers.has(op.record)) {
|
|
@@ -929,7 +935,7 @@ function removeFromRelatedRecords(graph, op, isRemote) {
|
|
|
929
935
|
}
|
|
930
936
|
if (Array.isArray(value)) for (let i = 0; i < value.length; i++) removeRelatedRecord(graph, record, relationship, value[i], op.index ?? null, isRemote);
|
|
931
937
|
else removeRelatedRecord(graph, record, relationship, value, op.index ?? null, isRemote);
|
|
932
|
-
notifyChange(graph, relationship);
|
|
938
|
+
notifyChange(graph, relationship, isRemote ? void 0 : "local");
|
|
933
939
|
}
|
|
934
940
|
function removeRelatedRecord(graph, record, relationship, value, index, isRemote) {
|
|
935
941
|
if (_remove(graph, record, relationship, value, index, isRemote)) removeFromInverse(graph, value, relationship.definition.inverseKey, record, isRemote);
|
|
@@ -1087,8 +1093,11 @@ var Graph = class {
|
|
|
1087
1093
|
* {@link Graph.push} but not yet flushed into the graph by {@link Graph._flushRemoteQueue}.
|
|
1088
1094
|
*/
|
|
1089
1095
|
/**
|
|
1090
|
-
* The
|
|
1091
|
-
*
|
|
1096
|
+
* The {@link CollectionEdge}s that have changes pending notification, scheduled via
|
|
1097
|
+
* {@link Graph._scheduleLocalSync} and drained by {@link Graph._flushLocalQueue}, each
|
|
1098
|
+
* mapped to the {@link NotificationChannel} the notification should be scoped to —
|
|
1099
|
+
* `null` when it must reach every subscriber (scheduled unscoped, or scheduled for
|
|
1100
|
+
* both channels).
|
|
1092
1101
|
*/
|
|
1093
1102
|
/**
|
|
1094
1103
|
* The identifier of the current remote-update transaction, or `null` when no transaction is
|
|
@@ -1114,7 +1123,7 @@ var Graph = class {
|
|
|
1114
1123
|
hasMany: void 0,
|
|
1115
1124
|
deletions: []
|
|
1116
1125
|
};
|
|
1117
|
-
this._updatedRelationships = /* @__PURE__ */ new
|
|
1126
|
+
this._updatedRelationships = /* @__PURE__ */ new Map();
|
|
1118
1127
|
this._transaction = null;
|
|
1119
1128
|
this._removing = null;
|
|
1120
1129
|
this.silenceNotifications = false;
|
|
@@ -1394,12 +1403,16 @@ var Graph = class {
|
|
|
1394
1403
|
}
|
|
1395
1404
|
}
|
|
1396
1405
|
/**
|
|
1397
|
-
* Marks a {@link CollectionEdge} as having
|
|
1398
|
-
*
|
|
1399
|
-
*
|
|
1406
|
+
* Marks a {@link CollectionEdge} as having changes that need to be notified on the given
|
|
1407
|
+
* {@link NotificationChannel} (omitted = unscoped, reaching every subscriber), and schedules
|
|
1408
|
+
* a flush of the sync queue (see {@link Graph._flushLocalQueue}) if one is not already
|
|
1409
|
+
* pending. Scheduling the same edge for both channels (or once unscoped) coalesces into a
|
|
1410
|
+
* single unscoped notification.
|
|
1400
1411
|
*/
|
|
1401
|
-
_scheduleLocalSync(relationship) {
|
|
1402
|
-
this._updatedRelationships
|
|
1412
|
+
_scheduleLocalSync(relationship, channel) {
|
|
1413
|
+
const pending = this._updatedRelationships;
|
|
1414
|
+
if (!pending.has(relationship)) pending.set(relationship, channel ?? null);
|
|
1415
|
+
else if (pending.get(relationship) !== (channel ?? null)) pending.set(relationship, null);
|
|
1403
1416
|
if (!this._willSyncLocal) {
|
|
1404
1417
|
this._willSyncLocal = true;
|
|
1405
1418
|
getStore(this.store)._schedule("sync", () => this._flushLocalQueue());
|
|
@@ -1443,13 +1456,13 @@ var Graph = class {
|
|
|
1443
1456
|
if (!this._willSyncLocal) return;
|
|
1444
1457
|
if (this.silenceNotifications) {
|
|
1445
1458
|
this.silenceNotifications = false;
|
|
1446
|
-
this._updatedRelationships = /* @__PURE__ */ new
|
|
1459
|
+
this._updatedRelationships = /* @__PURE__ */ new Map();
|
|
1447
1460
|
return;
|
|
1448
1461
|
}
|
|
1449
1462
|
this._willSyncLocal = false;
|
|
1450
1463
|
const updated = this._updatedRelationships;
|
|
1451
|
-
this._updatedRelationships = /* @__PURE__ */ new
|
|
1452
|
-
updated.forEach((rel) => notifyChange(this, rel));
|
|
1464
|
+
this._updatedRelationships = /* @__PURE__ */ new Map();
|
|
1465
|
+
updated.forEach((channel, rel) => notifyChange(this, rel, channel ?? void 0));
|
|
1453
1466
|
}
|
|
1454
1467
|
/**
|
|
1455
1468
|
* Tears down the graph: clears all tracked identifiers/edges, removes it from the global
|