atom.io 0.6.1 → 0.6.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.
Files changed (90) hide show
  1. package/dist/index.d.mts +3 -3
  2. package/dist/index.d.ts +3 -3
  3. package/dist/index.js +7 -2
  4. package/dist/index.js.map +1 -1
  5. package/dist/index.mjs +7 -2
  6. package/dist/index.mjs.map +1 -1
  7. package/json/dist/index.js.map +1 -1
  8. package/json/dist/index.mjs.map +1 -1
  9. package/package.json +13 -3
  10. package/react/dist/index.js.map +1 -1
  11. package/react/dist/index.mjs.map +1 -1
  12. package/react-devtools/dist/index.js +32 -18
  13. package/react-devtools/dist/index.js.map +1 -1
  14. package/react-devtools/dist/index.mjs +32 -18
  15. package/react-devtools/dist/index.mjs.map +1 -1
  16. package/realtime/dist/index.js.map +1 -1
  17. package/realtime/dist/index.mjs.map +1 -1
  18. package/realtime-react/dist/index.js.map +1 -1
  19. package/realtime-react/dist/index.mjs.map +1 -1
  20. package/realtime-testing/dist/index.d.mts +49 -0
  21. package/realtime-testing/dist/index.d.ts +49 -0
  22. package/realtime-testing/dist/index.js +153 -0
  23. package/realtime-testing/dist/index.js.map +1 -0
  24. package/realtime-testing/dist/index.mjs +117 -0
  25. package/realtime-testing/dist/index.mjs.map +1 -0
  26. package/realtime-testing/package.json +15 -0
  27. package/src/atom.ts +15 -15
  28. package/src/index.ts +59 -59
  29. package/src/internal/atom-internal.ts +36 -36
  30. package/src/internal/families-internal.ts +114 -114
  31. package/src/internal/get.ts +83 -83
  32. package/src/internal/is-default.ts +17 -17
  33. package/src/internal/meta/attach-meta.ts +7 -7
  34. package/src/internal/meta/meta-state.ts +115 -115
  35. package/src/internal/operation.ts +93 -93
  36. package/src/internal/selector/create-read-write-selector.ts +46 -46
  37. package/src/internal/selector/create-readonly-selector.ts +37 -37
  38. package/src/internal/selector/lookup-selector-sources.ts +9 -9
  39. package/src/internal/selector/register-selector.ts +44 -44
  40. package/src/internal/selector/trace-selector-atoms.ts +30 -30
  41. package/src/internal/selector/update-selector-atoms.ts +25 -25
  42. package/src/internal/selector-internal.ts +37 -37
  43. package/src/internal/set.ts +78 -78
  44. package/src/internal/store.ts +118 -118
  45. package/src/internal/subscribe-internal.ts +62 -62
  46. package/src/internal/time-travel-internal.ts +76 -76
  47. package/src/internal/timeline/add-atom-to-timeline.ts +158 -153
  48. package/src/internal/timeline-internal.ts +80 -80
  49. package/src/internal/transaction/abort-transaction.ts +8 -8
  50. package/src/internal/transaction/apply-transaction.ts +41 -41
  51. package/src/internal/transaction/build-transaction.ts +28 -28
  52. package/src/internal/transaction/index.ts +7 -7
  53. package/src/internal/transaction/redo-transaction.ts +13 -13
  54. package/src/internal/transaction/undo-transaction.ts +13 -13
  55. package/src/internal/transaction-internal.ts +48 -48
  56. package/src/json/select-json.ts +12 -12
  57. package/src/logger.ts +30 -30
  58. package/src/react/store-context.tsx +4 -4
  59. package/src/react/store-hooks.ts +18 -18
  60. package/src/react-devtools/AtomIODevtools.tsx +83 -82
  61. package/src/react-devtools/StateEditor.tsx +53 -53
  62. package/src/react-devtools/TokenList.tsx +47 -42
  63. package/src/react-explorer/AtomIOExplorer.tsx +197 -185
  64. package/src/react-explorer/explorer-effects.ts +11 -11
  65. package/src/react-explorer/explorer-states.ts +186 -193
  66. package/src/react-explorer/index.ts +11 -11
  67. package/src/react-explorer/space-states.ts +48 -50
  68. package/src/react-explorer/view-states.ts +25 -25
  69. package/src/realtime/hook-composition/expose-family.ts +81 -81
  70. package/src/realtime/hook-composition/expose-single.ts +26 -26
  71. package/src/realtime/hook-composition/expose-timeline.ts +60 -0
  72. package/src/realtime/hook-composition/index.ts +2 -2
  73. package/src/realtime/hook-composition/receive-state.ts +18 -18
  74. package/src/realtime/hook-composition/receive-transaction.ts +8 -8
  75. package/src/realtime-react/realtime-context.tsx +17 -17
  76. package/src/realtime-react/realtime-hooks.ts +17 -17
  77. package/src/realtime-react/realtime-state.ts +4 -4
  78. package/src/realtime-react/use-pull-family-member.ts +15 -15
  79. package/src/realtime-react/use-pull-family.ts +13 -13
  80. package/src/realtime-react/use-pull.ts +12 -12
  81. package/src/realtime-react/use-push.ts +15 -15
  82. package/src/realtime-react/use-server-action.ts +21 -21
  83. package/src/realtime-testing/index.ts +1 -0
  84. package/src/realtime-testing/setup-realtime-test.tsx +160 -0
  85. package/src/selector.ts +25 -25
  86. package/src/silo.ts +38 -38
  87. package/src/subscribe.ts +68 -68
  88. package/src/timeline.ts +13 -13
  89. package/src/transaction.ts +28 -28
  90. package/src/web-effects/storage.ts +17 -17
package/dist/index.d.mts CHANGED
@@ -22,7 +22,7 @@ type Identified = {
22
22
  };
23
23
 
24
24
  declare const RELATION_TYPES: readonly ["1:1", "1:n", "n:n"];
25
- type RelationType = (typeof RELATION_TYPES)[number];
25
+ type RelationType = typeof RELATION_TYPES[number];
26
26
  type RelationData<CONTENT extends JsonObj | null = null, A extends string = `from`, B extends string = `to`> = {
27
27
  contents: JsonObj<string, CONTENT>;
28
28
  relations: JsonObj<string, string[]>;
@@ -349,7 +349,7 @@ declare const redoTransactionUpdate: <ƒ extends ƒn>(update: TransactionUpdate<
349
349
  declare const undoTransactionUpdate: <ƒ extends ƒn>(update: TransactionUpdate<ƒ>, store: Store) => void;
350
350
 
351
351
  declare const TRANSACTION_PHASES: readonly ["idle", "building", "applying"];
352
- type TransactionPhase = (typeof TRANSACTION_PHASES)[number];
352
+ type TransactionPhase = typeof TRANSACTION_PHASES[number];
353
353
  type TransactionUpdateInProgress<ƒ extends ƒn> = TransactionUpdate<ƒ> & {
354
354
  phase: `applying` | `building`;
355
355
  time: number;
@@ -577,7 +577,7 @@ type TimelineToken = {
577
577
  };
578
578
  type TimelineOptions = {
579
579
  key: string;
580
- atoms: (AtomFamily<any> | AtomToken<any>)[];
580
+ atoms: (AtomFamily<any, any> | AtomToken<any>)[];
581
581
  };
582
582
  type TimelineUpdate = TimelineAtomUpdate | TimelineSelectorUpdate | TimelineTransactionUpdate;
583
583
  declare const timeline: (options: TimelineOptions) => TimelineToken;
package/dist/index.d.ts CHANGED
@@ -22,7 +22,7 @@ type Identified = {
22
22
  };
23
23
 
24
24
  declare const RELATION_TYPES: readonly ["1:1", "1:n", "n:n"];
25
- type RelationType = (typeof RELATION_TYPES)[number];
25
+ type RelationType = typeof RELATION_TYPES[number];
26
26
  type RelationData<CONTENT extends JsonObj | null = null, A extends string = `from`, B extends string = `to`> = {
27
27
  contents: JsonObj<string, CONTENT>;
28
28
  relations: JsonObj<string, string[]>;
@@ -349,7 +349,7 @@ declare const redoTransactionUpdate: <ƒ extends ƒn>(update: TransactionUpdate<
349
349
  declare const undoTransactionUpdate: <ƒ extends ƒn>(update: TransactionUpdate<ƒ>, store: Store) => void;
350
350
 
351
351
  declare const TRANSACTION_PHASES: readonly ["idle", "building", "applying"];
352
- type TransactionPhase = (typeof TRANSACTION_PHASES)[number];
352
+ type TransactionPhase = typeof TRANSACTION_PHASES[number];
353
353
  type TransactionUpdateInProgress<ƒ extends ƒn> = TransactionUpdate<ƒ> & {
354
354
  phase: `applying` | `building`;
355
355
  time: number;
@@ -577,7 +577,7 @@ type TimelineToken = {
577
577
  };
578
578
  type TimelineOptions = {
579
579
  key: string;
580
- atoms: (AtomFamily<any> | AtomToken<any>)[];
580
+ atoms: (AtomFamily<any, any> | AtomToken<any>)[];
581
581
  };
582
582
  type TimelineUpdate = TimelineAtomUpdate | TimelineSelectorUpdate | TimelineTransactionUpdate;
583
583
  declare const timeline: (options: TimelineOptions) => TimelineToken;
package/dist/index.js CHANGED
@@ -1535,6 +1535,11 @@ var addAtomToTimeline = (atomToken, atoms, tl, store = IMPLICIT.STORE) => {
1535
1535
  if (tl.timeTraveling === false) {
1536
1536
  if (tl.selectorTime && tl.selectorTime !== currentSelectorTime) {
1537
1537
  const mostRecentUpdate = tl.history.at(-1);
1538
+ if (mostRecentUpdate === void 0) {
1539
+ throw new Error(
1540
+ `Timeline "${tl.key}" has a selectorTime, but no history. This is most likely a bug in AtomIO.`
1541
+ );
1542
+ }
1538
1543
  if (mostRecentUpdate.type === `selector_update`) {
1539
1544
  tl.subject.next(mostRecentUpdate);
1540
1545
  }
@@ -1956,10 +1961,10 @@ var timeline = (options) => {
1956
1961
  return timeline__INTERNAL(options);
1957
1962
  };
1958
1963
  var redo = (token) => {
1959
- return redo__INTERNAL(token, IMPLICIT.STORE);
1964
+ redo__INTERNAL(token, IMPLICIT.STORE);
1960
1965
  };
1961
1966
  var undo = (token) => {
1962
- return undo__INTERNAL(token, IMPLICIT.STORE);
1967
+ undo__INTERNAL(token, IMPLICIT.STORE);
1963
1968
  };
1964
1969
 
1965
1970
  // src/transaction.ts