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
@@ -270,6 +270,7 @@ declare class Store implements Lineage {
270
270
  type Atom<T> = {
271
271
  key: string;
272
272
  type: `atom`;
273
+ mutable?: boolean;
273
274
  family?: FamilyMetadata;
274
275
  install: (store: Store) => void;
275
276
  subject: Subject<{
@@ -284,6 +285,7 @@ type AtomFamily<T, K extends Serializable = Serializable> = ((key: K) => AtomTok
284
285
  key: string;
285
286
  type: `atom_family`;
286
287
  subject: Subject<AtomToken<T>>;
288
+ mutable?: boolean;
287
289
  };
288
290
 
289
291
  declare const LoggerIconDictionary: {
@@ -1,3 +1,3 @@
1
- export { JSON_DEFAULTS, JSON_TYPE_NAMES, isBoolean, isNull, isNumber, isPrimitive, isString, parseJson, selectJson, selectJsonFamily, stringSetJsonInterface, stringifyJson } from '../../dist/chunk-TE3ZSTQ6.js';
1
+ export { JSON_DEFAULTS, JSON_TYPE_NAMES, isBoolean, isNull, isNumber, isPrimitive, isString, parseJson, selectJson, selectJsonFamily, stringSetJsonInterface, stringifyJson } from '../../dist/chunk-PURABO5G.js';
2
2
  //# sourceMappingURL=out.js.map
3
3
  //# sourceMappingURL=index.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "atom.io",
3
- "version": "0.14.1",
3
+ "version": "0.14.2",
4
4
  "description": "Composable and testable reactive data library.",
5
5
  "homepage": "https://atom.io.fyi",
6
6
  "sideEffects": false,
@@ -302,7 +302,8 @@ var Subject = class {
302
302
  this.subscribers.delete(key);
303
303
  }
304
304
  next(value) {
305
- for (const subscriber of this.subscribers.values()) {
305
+ const subscribers = this.subscribers.values();
306
+ for (const subscriber of subscribers) {
306
307
  subscriber(value);
307
308
  }
308
309
  }
@@ -1109,35 +1110,6 @@ function createSelector(options, family, store) {
1109
1110
  return createReadonlySelector(options, family, store);
1110
1111
  }
1111
1112
 
1112
- // internal/src/selector/delete-selector.ts
1113
- function deleteSelector(selectorToken, store) {
1114
- const target = newest(store);
1115
- const { key } = selectorToken;
1116
- switch (selectorToken.type) {
1117
- case `selector`:
1118
- target.selectors.delete(key);
1119
- break;
1120
- case `readonly_selector`:
1121
- target.readonlySelectors.delete(key);
1122
- break;
1123
- }
1124
- target.valueMap.delete(key);
1125
- target.selectorAtoms.delete(key);
1126
- const downstreamTokens = target.selectorGraph.getRelationEntries({ upstreamSelectorKey: key }).filter(([_, { source }]) => source === key).map(
1127
- ([downstreamSelectorKey]) => {
1128
- var _a;
1129
- return (_a = target.selectors.get(downstreamSelectorKey)) != null ? _a : target.readonlySelectors.get(downstreamSelectorKey);
1130
- }
1131
- );
1132
- for (const downstreamToken of downstreamTokens) {
1133
- if (downstreamToken) {
1134
- deleteSelector(downstreamToken, store);
1135
- }
1136
- }
1137
- target.selectorGraph.delete(key);
1138
- store.logger.info(`\u{1F525}`, selectorToken.type, `${key}`, `deleted`);
1139
- }
1140
-
1141
1113
  // internal/src/subscribe/recall-state.ts
1142
1114
  var recallState = (state, store) => {
1143
1115
  const target = newest(store);
@@ -1256,7 +1228,8 @@ var Tracker = class {
1256
1228
  }
1257
1229
  initializeState(mutableState, store) {
1258
1230
  const latestUpdateStateKey = `*${mutableState.key}`;
1259
- deleteAtom({ type: `atom`, key: latestUpdateStateKey }, store);
1231
+ store.atoms.delete(latestUpdateStateKey);
1232
+ store.valueMap.delete(latestUpdateStateKey);
1260
1233
  const familyMetaData = mutableState.family ? {
1261
1234
  key: `*${mutableState.family.key}`,
1262
1235
  subKey: mutableState.family.subKey
@@ -1269,6 +1242,10 @@ var Tracker = class {
1269
1242
  familyMetaData,
1270
1243
  store
1271
1244
  );
1245
+ if (store.parent) {
1246
+ const parentValue = store.parent.valueMap.get(latestUpdateStateKey);
1247
+ store.valueMap.set(latestUpdateStateKey, parentValue);
1248
+ }
1272
1249
  return latestUpdateState;
1273
1250
  }
1274
1251
  observeCore(mutableState, latestUpdateState, store) {
@@ -1349,7 +1326,7 @@ var Tracker = class {
1349
1326
  () => {
1350
1327
  unsubscribe();
1351
1328
  const mutable = getState(mutableState, store);
1352
- const updateNumber = mutable.getUpdateNumber(newValue);
1329
+ const updateNumber = newValue === null ? -1 : mutable.getUpdateNumber(newValue);
1353
1330
  const eventOffset = updateNumber - mutable.cacheUpdateNumber;
1354
1331
  if (newValue && eventOffset === 1) {
1355
1332
  setState(
@@ -1491,38 +1468,6 @@ function createAtom(options, family, store) {
1491
1468
  return token;
1492
1469
  }
1493
1470
 
1494
- // internal/src/atom/delete-atom.ts
1495
- function deleteAtom(atomToken, store) {
1496
- var _a, _b;
1497
- const target = newest(store);
1498
- const { key } = atomToken;
1499
- const atom = target.atoms.get(key);
1500
- if (!atom) {
1501
- store.logger.error(
1502
- `\u274C`,
1503
- `atom`,
1504
- `${key}`,
1505
- `Tried to delete atom, but it does not exist in the store.`
1506
- );
1507
- }
1508
- (_a = atom == null ? void 0 : atom.cleanup) == null ? void 0 : _a.call(atom);
1509
- target.atoms.delete(key);
1510
- target.valueMap.delete(key);
1511
- const selectorKeys = target.selectorAtoms.getRelatedKeys(key);
1512
- if (selectorKeys) {
1513
- for (const selectorKey of selectorKeys) {
1514
- const token = (_b = target.selectors.get(selectorKey)) != null ? _b : target.readonlySelectors.get(selectorKey);
1515
- if (token) {
1516
- deleteSelector(token, store);
1517
- }
1518
- }
1519
- }
1520
- target.selectorAtoms.delete(key);
1521
- target.atomsThatAreDefault.delete(key);
1522
- target.timelineAtoms.delete(key);
1523
- store.logger.info(`\u{1F525}`, `atom`, `${key}`, `deleted`);
1524
- }
1525
-
1526
1471
  // internal/src/not-found-error.ts
1527
1472
  var capitalize = (str) => str[0].toUpperCase() + str.slice(1);
1528
1473
  function prettyPrintTokenType(token) {