atom.io 0.14.1 → 0.14.2

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 (70) hide show
  1. package/data/dist/index.cjs +12 -64
  2. package/data/dist/index.cjs.map +1 -1
  3. package/data/dist/index.d.cts +2 -0
  4. package/data/dist/index.js +1 -1
  5. package/dist/{chunk-KW7RA7IM.js → chunk-C4YZZNRH.js} +4 -4
  6. package/dist/{chunk-LFXB7Y6M.js → chunk-CWKKQKVQ.js} +2 -2
  7. package/dist/{chunk-CK7GNCU5.js → chunk-GMN5KH6A.js} +2 -2
  8. package/dist/{chunk-5VJ77LZE.js → chunk-N7ADBQJG.js} +2 -2
  9. package/dist/{chunk-TE3ZSTQ6.js → chunk-PURABO5G.js} +92 -27
  10. package/dist/chunk-PURABO5G.js.map +1 -0
  11. package/dist/index.cjs +106 -20
  12. package/dist/index.cjs.map +1 -1
  13. package/dist/index.d.cts +4 -1
  14. package/dist/index.js +1 -1
  15. package/dist/metafile-cjs.json +1 -1
  16. package/internal/dist/index.cjs +93 -29
  17. package/internal/dist/index.cjs.map +1 -1
  18. package/internal/dist/index.d.cts +6 -4
  19. package/internal/dist/index.js +1 -1
  20. package/internal/src/atom/create-atom.ts +3 -1
  21. package/internal/src/families/create-atom-family.ts +3 -4
  22. package/internal/src/mutable/get-update-family.ts +23 -0
  23. package/internal/src/mutable/index.ts +1 -4
  24. package/internal/src/mutable/is-mutable.ts +44 -0
  25. package/internal/src/mutable/tracker.ts +9 -2
  26. package/internal/src/subject.ts +2 -1
  27. package/internal/src/timeline/add-atom-to-timeline.ts +10 -1
  28. package/internal/src/timeline/create-timeline.ts +44 -16
  29. package/introspection/dist/index.cjs +12 -64
  30. package/introspection/dist/index.cjs.map +1 -1
  31. package/introspection/dist/index.d.cts +2 -0
  32. package/introspection/dist/index.js +2 -2
  33. package/json/dist/index.cjs +9 -64
  34. package/json/dist/index.cjs.map +1 -1
  35. package/json/dist/index.d.cts +2 -0
  36. package/json/dist/index.js +1 -1
  37. package/package.json +1 -1
  38. package/react/dist/index.cjs +9 -64
  39. package/react/dist/index.cjs.map +1 -1
  40. package/react/dist/index.d.cts +2 -0
  41. package/react/dist/index.js +2 -2
  42. package/react-devtools/dist/index.cjs +12 -64
  43. package/react-devtools/dist/index.cjs.map +1 -1
  44. package/react-devtools/dist/index.d.cts +2 -0
  45. package/react-devtools/dist/index.js +3 -3
  46. package/realtime-client/dist/index.cjs +9 -64
  47. package/realtime-client/dist/index.cjs.map +1 -1
  48. package/realtime-client/dist/index.d.cts +2 -0
  49. package/realtime-client/dist/index.js +2 -2
  50. package/realtime-react/dist/index.cjs +9 -64
  51. package/realtime-react/dist/index.cjs.map +1 -1
  52. package/realtime-react/dist/index.js +4 -4
  53. package/realtime-server/dist/index.cjs +9 -64
  54. package/realtime-server/dist/index.cjs.map +1 -1
  55. package/realtime-server/dist/index.d.cts +4 -1
  56. package/realtime-server/dist/index.js +1 -1
  57. package/realtime-testing/dist/index.cjs +104 -79
  58. package/realtime-testing/dist/index.cjs.map +1 -1
  59. package/realtime-testing/dist/index.d.cts +4 -1
  60. package/realtime-testing/dist/index.js +4 -4
  61. package/src/atom.ts +3 -1
  62. package/transceivers/set-rtx/dist/index.cjs +2 -1
  63. package/transceivers/set-rtx/dist/index.cjs.map +1 -1
  64. package/transceivers/set-rtx/dist/index.js +1 -1
  65. package/dist/chunk-TE3ZSTQ6.js.map +0 -1
  66. package/internal/src/mutable/is-atom-token-mutable.ts +0 -7
  67. /package/dist/{chunk-KW7RA7IM.js.map → chunk-C4YZZNRH.js.map} +0 -0
  68. /package/dist/{chunk-LFXB7Y6M.js.map → chunk-CWKKQKVQ.js.map} +0 -0
  69. /package/dist/{chunk-CK7GNCU5.js.map → chunk-GMN5KH6A.js.map} +0 -0
  70. /package/dist/{chunk-5VJ77LZE.js.map → chunk-N7ADBQJG.js.map} +0 -0
@@ -298,7 +298,8 @@ var Subject = class {
298
298
  this.subscribers.delete(key);
299
299
  }
300
300
  next(value) {
301
- for (const subscriber of this.subscribers.values()) {
301
+ const subscribers = this.subscribers.values();
302
+ for (const subscriber of subscribers) {
302
303
  subscriber(value);
303
304
  }
304
305
  }
@@ -1105,35 +1106,6 @@ function createSelector(options, family, store) {
1105
1106
  return createReadonlySelector(options, family, store);
1106
1107
  }
1107
1108
 
1108
- // internal/src/selector/delete-selector.ts
1109
- function deleteSelector(selectorToken, store) {
1110
- const target = newest(store);
1111
- const { key } = selectorToken;
1112
- switch (selectorToken.type) {
1113
- case `selector`:
1114
- target.selectors.delete(key);
1115
- break;
1116
- case `readonly_selector`:
1117
- target.readonlySelectors.delete(key);
1118
- break;
1119
- }
1120
- target.valueMap.delete(key);
1121
- target.selectorAtoms.delete(key);
1122
- const downstreamTokens = target.selectorGraph.getRelationEntries({ upstreamSelectorKey: key }).filter(([_, { source }]) => source === key).map(
1123
- ([downstreamSelectorKey]) => {
1124
- var _a;
1125
- return (_a = target.selectors.get(downstreamSelectorKey)) != null ? _a : target.readonlySelectors.get(downstreamSelectorKey);
1126
- }
1127
- );
1128
- for (const downstreamToken of downstreamTokens) {
1129
- if (downstreamToken) {
1130
- deleteSelector(downstreamToken, store);
1131
- }
1132
- }
1133
- target.selectorGraph.delete(key);
1134
- store.logger.info(`\u{1F525}`, selectorToken.type, `${key}`, `deleted`);
1135
- }
1136
-
1137
1109
  // internal/src/subscribe/recall-state.ts
1138
1110
  var recallState = (state, store) => {
1139
1111
  const target = newest(store);
@@ -1252,7 +1224,8 @@ var Tracker = class {
1252
1224
  }
1253
1225
  initializeState(mutableState, store) {
1254
1226
  const latestUpdateStateKey = `*${mutableState.key}`;
1255
- deleteAtom({ type: `atom`, key: latestUpdateStateKey }, store);
1227
+ store.atoms.delete(latestUpdateStateKey);
1228
+ store.valueMap.delete(latestUpdateStateKey);
1256
1229
  const familyMetaData = mutableState.family ? {
1257
1230
  key: `*${mutableState.family.key}`,
1258
1231
  subKey: mutableState.family.subKey
@@ -1265,6 +1238,10 @@ var Tracker = class {
1265
1238
  familyMetaData,
1266
1239
  store
1267
1240
  );
1241
+ if (store.parent) {
1242
+ const parentValue = store.parent.valueMap.get(latestUpdateStateKey);
1243
+ store.valueMap.set(latestUpdateStateKey, parentValue);
1244
+ }
1268
1245
  return latestUpdateState;
1269
1246
  }
1270
1247
  observeCore(mutableState, latestUpdateState, store) {
@@ -1345,7 +1322,7 @@ var Tracker = class {
1345
1322
  () => {
1346
1323
  unsubscribe();
1347
1324
  const mutable = getState(mutableState, store);
1348
- const updateNumber = mutable.getUpdateNumber(newValue);
1325
+ const updateNumber = newValue === null ? -1 : mutable.getUpdateNumber(newValue);
1349
1326
  const eventOffset = updateNumber - mutable.cacheUpdateNumber;
1350
1327
  if (newValue && eventOffset === 1) {
1351
1328
  setState(
@@ -1420,6 +1397,9 @@ function createAtomFamily(options, store) {
1420
1397
  subject
1421
1398
  }
1422
1399
  );
1400
+ if (`mutable` in options && typeof options.mutable === `boolean`) {
1401
+ Object.assign(atomFamily, { mutable: options.mutable });
1402
+ }
1423
1403
  const target = newest(store);
1424
1404
  target.families.set(options.key, atomFamily);
1425
1405
  return atomFamily;
@@ -1633,38 +1613,6 @@ function createAtom(options, family, store) {
1633
1613
  return token;
1634
1614
  }
1635
1615
 
1636
- // internal/src/atom/delete-atom.ts
1637
- function deleteAtom(atomToken, store) {
1638
- var _a, _b;
1639
- const target = newest(store);
1640
- const { key } = atomToken;
1641
- const atom = target.atoms.get(key);
1642
- if (!atom) {
1643
- store.logger.error(
1644
- `\u274C`,
1645
- `atom`,
1646
- `${key}`,
1647
- `Tried to delete atom, but it does not exist in the store.`
1648
- );
1649
- }
1650
- (_a = atom == null ? void 0 : atom.cleanup) == null ? void 0 : _a.call(atom);
1651
- target.atoms.delete(key);
1652
- target.valueMap.delete(key);
1653
- const selectorKeys = target.selectorAtoms.getRelatedKeys(key);
1654
- if (selectorKeys) {
1655
- for (const selectorKey of selectorKeys) {
1656
- const token = (_b = target.selectors.get(selectorKey)) != null ? _b : target.readonlySelectors.get(selectorKey);
1657
- if (token) {
1658
- deleteSelector(token, store);
1659
- }
1660
- }
1661
- }
1662
- target.selectorAtoms.delete(key);
1663
- target.atomsThatAreDefault.delete(key);
1664
- target.timelineAtoms.delete(key);
1665
- store.logger.info(`\u{1F525}`, `atom`, `${key}`, `deleted`);
1666
- }
1667
-
1668
1616
  // internal/src/not-found-error.ts
1669
1617
  var capitalize = (str) => str[0].toUpperCase() + str.slice(1);
1670
1618
  function prettyPrintTokenType(token) {