@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.
Files changed (133) hide show
  1. package/dist/{-private-CvZfrDZl.js → -private-DhEjiHue.js} +2 -2
  2. package/dist/{-private-CvZfrDZl.js.map → -private-DhEjiHue.js.map} +1 -1
  3. package/dist/build-config/babel-macros.d.ts +5 -0
  4. package/dist/build-config/canary-features.d.ts +5 -0
  5. package/dist/build-config/debugging.d.ts +59 -0
  6. package/dist/build-config/deprecations.d.ts +5 -0
  7. package/dist/build-config.d.ts +17 -0
  8. package/dist/{concepts-vh86nAcd.d.ts → concepts-Db9ssz1h.d.ts} +3 -3
  9. package/dist/{concepts-vh86nAcd.d.ts.map → concepts-Db9ssz1h.d.ts.map} +1 -1
  10. package/dist/configure.d.ts +8 -0
  11. package/dist/configure.js +1 -1
  12. package/dist/{document-B8Fup751.d.ts → document-BUmwSPVO.d.ts} +2 -2
  13. package/dist/{document-B8Fup751.d.ts.map → document-BUmwSPVO.d.ts.map} +1 -1
  14. package/dist/{fields-r1rZJB9d.d.ts → fields-B-jO-dzB.d.ts} +111 -47
  15. package/dist/fields-B-jO-dzB.d.ts.map +1 -0
  16. package/dist/graph/-private.d.ts +1 -1
  17. package/dist/graph/-private.js +33 -20
  18. package/dist/graph/-private.js.map +1 -1
  19. package/dist/{graph-BqxaFjEb.d.ts → graph-CoQhsOgT.d.ts} +3 -3
  20. package/dist/{graph-BqxaFjEb.d.ts.map → graph-CoQhsOgT.d.ts.map} +1 -1
  21. package/dist/index.d.ts +1 -1
  22. package/dist/index.js +1 -1
  23. package/dist/{internal-D_WIXC4r.d.ts → internal-BrC3kM86.d.ts} +20 -6
  24. package/dist/internal-BrC3kM86.d.ts.map +1 -0
  25. package/dist/reactive/-private.d.ts +1 -1
  26. package/dist/reactive.d.ts +276 -1
  27. package/dist/reactive.js +2 -2
  28. package/dist/{request-CxtnNIIp.js → request-qKqD2aCa.js} +2 -2
  29. package/dist/{request-CxtnNIIp.js.map → request-qKqD2aCa.js.map} +1 -1
  30. package/dist/request.d.ts +9 -1
  31. package/dist/request.js +1 -1
  32. package/dist/signals/-leaked.d.ts +15 -1
  33. package/dist/signals/-leaked.d.ts.map +1 -1
  34. package/dist/signals/-leaked.js +1 -1
  35. package/dist/{src-ccp1WKyt.js → src-spa19bCt.js} +30 -13
  36. package/dist/src-spa19bCt.js.map +1 -0
  37. package/dist/store/-private.d.ts +1 -1
  38. package/dist/store/-private.js +1 -1
  39. package/dist/store.d.ts +6 -1
  40. package/dist/types/-private.js +1 -1
  41. package/dist/types/cache/relationship.d.ts +5 -0
  42. package/dist/types/cache.d.ts +6 -1
  43. package/dist/types/graph.d.ts +6 -1
  44. package/dist/types/record.d.ts +5 -0
  45. package/dist/types/request.d.ts +1 -1
  46. package/dist/types/schema/concepts.d.ts +6 -1
  47. package/dist/types/schema/fields.d.ts +2 -2
  48. package/dist/types/schema/fields.js +82 -23
  49. package/dist/types/schema/fields.js.map +1 -1
  50. package/dist/types/schema/schema-service.d.ts +6 -1
  51. package/dist/types/spec/document.d.ts +1 -1
  52. package/dist/types/spec/error.d.ts +4 -0
  53. package/dist/types/spec/json-api-raw.d.ts +5 -0
  54. package/dist/types.d.ts +9 -1
  55. package/dist/unpkg/{dev-deprecated/-private-B4pCmkq-.js → dev/-private-BJ2WIhKs.js} +2 -2
  56. package/dist/unpkg/dev/{-private-B4pCmkq-.js.map → -private-BJ2WIhKs.js.map} +1 -1
  57. package/dist/unpkg/dev/configure.js +1 -1
  58. package/dist/unpkg/dev/graph/-private.js +34 -21
  59. package/dist/unpkg/dev/graph/-private.js.map +1 -1
  60. package/dist/unpkg/dev/index.js +1 -1
  61. package/dist/unpkg/dev/reactive.js +2 -2
  62. package/dist/unpkg/dev/{request-oWpijCPQ.js → request-6lzVjHLN.js} +2 -2
  63. package/dist/unpkg/{dev-deprecated/request-oWpijCPQ.js.map → dev/request-6lzVjHLN.js.map} +1 -1
  64. package/dist/unpkg/dev/request.js +1 -1
  65. package/dist/unpkg/dev/signals/-leaked.js +1 -1
  66. package/dist/unpkg/dev/{src-C4ET4R1n.js → src-D1dbEzXb.js} +31 -14
  67. package/dist/unpkg/dev/src-D1dbEzXb.js.map +1 -0
  68. package/dist/unpkg/dev/store/-private.js +1 -1
  69. package/dist/unpkg/dev/{store-dZViNfMK.js → store-DVS3G92Q.js} +2 -2
  70. package/dist/unpkg/dev/{store-dZViNfMK.js.map → store-DVS3G92Q.js.map} +1 -1
  71. package/dist/unpkg/dev/store.js +1 -1
  72. package/dist/unpkg/dev/types/-private.js +1 -1
  73. package/dist/unpkg/dev/types/schema/fields.js +82 -23
  74. package/dist/unpkg/dev/types/schema/fields.js.map +1 -1
  75. package/dist/unpkg/{dev/-private-B4pCmkq-.js → dev-deprecated/-private-BJ2WIhKs.js} +2 -2
  76. package/dist/unpkg/dev-deprecated/{-private-B4pCmkq-.js.map → -private-BJ2WIhKs.js.map} +1 -1
  77. package/dist/unpkg/dev-deprecated/configure.js +1 -1
  78. package/dist/unpkg/dev-deprecated/graph/-private.js +34 -21
  79. package/dist/unpkg/dev-deprecated/graph/-private.js.map +1 -1
  80. package/dist/unpkg/dev-deprecated/index.js +1 -1
  81. package/dist/unpkg/dev-deprecated/reactive.js +2 -2
  82. package/dist/unpkg/dev-deprecated/{request-oWpijCPQ.js → request-6lzVjHLN.js} +2 -2
  83. package/dist/unpkg/{dev/request-oWpijCPQ.js.map → dev-deprecated/request-6lzVjHLN.js.map} +1 -1
  84. package/dist/unpkg/dev-deprecated/request.js +1 -1
  85. package/dist/unpkg/dev-deprecated/signals/-leaked.js +1 -1
  86. package/dist/unpkg/dev-deprecated/{src-jHpowq3S.js → src-Tvv7X1KB.js} +30 -13
  87. package/dist/unpkg/dev-deprecated/src-Tvv7X1KB.js.map +1 -0
  88. package/dist/unpkg/dev-deprecated/store/-private.js +1 -1
  89. package/dist/unpkg/dev-deprecated/types/-private.js +1 -1
  90. package/dist/unpkg/dev-deprecated/types/schema/fields.js +82 -23
  91. package/dist/unpkg/dev-deprecated/types/schema/fields.js.map +1 -1
  92. package/dist/unpkg/{prod-deprecated/-private-CrUi_3E_.js → prod/-private-Dg07O05r.js} +2 -2
  93. package/dist/unpkg/{prod-deprecated/-private-CrUi_3E_.js.map → prod/-private-Dg07O05r.js.map} +1 -1
  94. package/dist/unpkg/prod/configure.js +1 -1
  95. package/dist/unpkg/prod/graph/-private.js +27 -12
  96. package/dist/unpkg/prod/graph/-private.js.map +1 -1
  97. package/dist/unpkg/prod/index.js +1 -1
  98. package/dist/unpkg/prod/reactive.js +2 -2
  99. package/dist/unpkg/{prod-deprecated/request-Cgw3j6Dx.js → prod/request-edWLn9JK.js} +2 -2
  100. package/dist/unpkg/prod/{request-Cgw3j6Dx.js.map → request-edWLn9JK.js.map} +1 -1
  101. package/dist/unpkg/prod/request.js +1 -1
  102. package/dist/unpkg/prod/signals/-leaked.js +1 -1
  103. package/dist/unpkg/prod/{src-DFmPDGQ6.js → src-BIRx6kC-.js} +33 -12
  104. package/dist/unpkg/prod/src-BIRx6kC-.js.map +1 -0
  105. package/dist/unpkg/prod/store/-private.js +1 -1
  106. package/dist/unpkg/prod/types/-private.js +1 -1
  107. package/dist/unpkg/prod/types/schema/fields.js +82 -23
  108. package/dist/unpkg/prod/types/schema/fields.js.map +1 -1
  109. package/dist/unpkg/{prod/-private-CrUi_3E_.js → prod-deprecated/-private-Dg07O05r.js} +2 -2
  110. package/dist/unpkg/{prod/-private-CrUi_3E_.js.map → prod-deprecated/-private-Dg07O05r.js.map} +1 -1
  111. package/dist/unpkg/prod-deprecated/configure.js +1 -1
  112. package/dist/unpkg/prod-deprecated/graph/-private.js +27 -12
  113. package/dist/unpkg/prod-deprecated/graph/-private.js.map +1 -1
  114. package/dist/unpkg/prod-deprecated/index.js +1 -1
  115. package/dist/unpkg/prod-deprecated/reactive.js +2 -2
  116. package/dist/unpkg/{prod/request-Cgw3j6Dx.js → prod-deprecated/request-edWLn9JK.js} +2 -2
  117. package/dist/unpkg/prod-deprecated/{request-Cgw3j6Dx.js.map → request-edWLn9JK.js.map} +1 -1
  118. package/dist/unpkg/prod-deprecated/request.js +1 -1
  119. package/dist/unpkg/prod-deprecated/signals/-leaked.js +1 -1
  120. package/dist/unpkg/prod-deprecated/{src-BgQLcshl.js → src-0f4an0QR.js} +33 -12
  121. package/dist/unpkg/prod-deprecated/src-0f4an0QR.js.map +1 -0
  122. package/dist/unpkg/prod-deprecated/store/-private.js +1 -1
  123. package/dist/unpkg/prod-deprecated/types/-private.js +1 -1
  124. package/dist/unpkg/prod-deprecated/types/schema/fields.js +82 -23
  125. package/dist/unpkg/prod-deprecated/types/schema/fields.js.map +1 -1
  126. package/package.json +4 -4
  127. package/dist/fields-r1rZJB9d.d.ts.map +0 -1
  128. package/dist/internal-D_WIXC4r.d.ts.map +0 -1
  129. package/dist/src-ccp1WKyt.js.map +0 -1
  130. package/dist/unpkg/dev/src-C4ET4R1n.js.map +0 -1
  131. package/dist/unpkg/dev-deprecated/src-jHpowq3S.js.map +0 -1
  132. package/dist/unpkg/prod/src-DFmPDGQ6.js.map +0 -1
  133. package/dist/unpkg/prod-deprecated/src-BgQLcshl.js.map +0 -1
@@ -1,3 +1,3 @@
1
- import { M as registerSignals, N as setupSignals } from "./-private-CrUi_3E_.js";
1
+ import { M as registerSignals, N as setupSignals } from "./-private-Dg07O05r.js";
2
2
 
3
3
  export { registerSignals, setupSignals };
@@ -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)) relationship.additions.delete(value);
191
- else {
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
- return {
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 = inverseForRelationship(getStore(storeWrapper), key, meta.name);
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
- function inverseForRelationship(store, resourceKey, key) {
697
- const definition = store.schema.fields(resourceKey).get(key);
698
- if (!definition) return null;
699
- return definition.options.inverse;
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