atom.io 0.27.5 → 0.28.0
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/data/dist/index.d.ts +31 -29
- package/data/dist/index.js +16 -17
- package/data/src/join.ts +17 -19
- package/dist/{chunk-6ABWLAGY.js → chunk-BX3MTH2Z.js} +320 -249
- package/dist/chunk-D52JNVER.js +721 -0
- package/dist/chunk-EUVKUTW3.js +89 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +3 -1
- package/internal/dist/index.d.ts +72 -36
- package/internal/dist/index.js +1 -1
- package/internal/src/atom/dispose-atom.ts +2 -9
- package/internal/src/families/dispose-from-store.ts +35 -18
- package/internal/src/families/find-in-store.ts +17 -7
- package/internal/src/get-state/get-from-store.ts +41 -32
- package/internal/src/ingest-updates/ingest-creation-disposal.ts +10 -1
- package/internal/src/molecule/dispose-molecule.ts +6 -17
- package/internal/src/pretty-print.ts +1 -16
- package/internal/src/selector/dispose-selector.ts +2 -9
- package/internal/src/set-state/set-into-store.ts +17 -19
- package/internal/src/store/circular-buffer.ts +34 -0
- package/internal/src/store/counterfeit.ts +109 -0
- package/internal/src/store/deposit.ts +14 -0
- package/internal/src/store/index.ts +1 -0
- package/internal/src/store/store.ts +3 -0
- package/internal/src/store/withdraw.ts +15 -10
- package/internal/src/transaction/build-transaction.ts +1 -0
- package/introspection/dist/index.d.ts +84 -4
- package/introspection/dist/index.js +1 -392
- package/introspection/src/attach-introspection-states.ts +7 -4
- package/introspection/src/attach-type-selectors.ts +26 -0
- package/introspection/src/differ.ts +167 -0
- package/introspection/src/index.ts +2 -0
- package/introspection/src/refinery.ts +100 -0
- package/json/dist/index.d.ts +31 -30
- package/json/dist/index.js +2 -77
- package/json/src/entries.ts +6 -0
- package/json/src/index.ts +47 -6
- package/package.json +17 -8
- package/react-devtools/dist/index.d.ts +1 -91
- package/react-devtools/dist/index.js +285 -414
- package/react-devtools/src/AtomIODevtools.tsx +2 -2
- package/react-devtools/src/StateEditor.tsx +20 -12
- package/react-devtools/src/StateIndex.tsx +8 -26
- package/react-devtools/src/TimelineIndex.tsx +3 -3
- package/react-devtools/src/TransactionIndex.tsx +6 -6
- package/react-devtools/src/Updates.tsx +1 -4
- package/react-devtools/src/index.ts +0 -71
- package/react-devtools/src/store.ts +51 -0
- package/realtime/dist/index.d.ts +7 -7
- package/realtime/dist/index.js +18 -22
- package/realtime/src/realtime-continuity.ts +27 -35
- package/realtime-client/dist/index.js +24 -10
- package/realtime-client/src/realtime-client-stores/client-main-store.ts +6 -6
- package/realtime-client/src/sync-continuity.ts +28 -6
- package/realtime-server/dist/index.js +41 -5
- package/realtime-server/src/realtime-continuity-synchronizer.ts +42 -78
- package/realtime-testing/dist/index.d.ts +2 -0
- package/realtime-testing/dist/index.js +50 -8
- package/realtime-testing/src/setup-realtime-test.tsx +59 -9
- package/src/silo.ts +7 -3
- package/web/dist/index.d.ts +9 -0
- package/{dist/chunk-H6EDLPKH.js → web/dist/index.js} +5 -4
- package/web/package.json +13 -0
- package/web/src/index.ts +1 -0
- package/web/src/persist-sync.ts +25 -0
- package/dist/chunk-AK23DRMD.js +0 -21
- package/dist/chunk-IW6WYRS7.js +0 -140
package/web/package.json
ADDED
package/web/src/index.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "./persist-sync"
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import type { AtomEffect } from "atom.io"
|
|
2
|
+
|
|
3
|
+
export type StringInterface<T> = {
|
|
4
|
+
stringify: (t: T) => string
|
|
5
|
+
parse: (s: string) => T
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
export const persistSync =
|
|
9
|
+
<T>(
|
|
10
|
+
storage: Storage,
|
|
11
|
+
{ stringify, parse }: StringInterface<T>,
|
|
12
|
+
key: string,
|
|
13
|
+
): AtomEffect<T> =>
|
|
14
|
+
({ setSelf, onSet }) => {
|
|
15
|
+
const savedValue = storage.getItem(key)
|
|
16
|
+
if (savedValue != null) setSelf(parse(savedValue))
|
|
17
|
+
|
|
18
|
+
onSet(({ newValue }) => {
|
|
19
|
+
if (newValue == null) {
|
|
20
|
+
storage.removeItem(key)
|
|
21
|
+
return
|
|
22
|
+
}
|
|
23
|
+
storage.setItem(key, stringify(newValue))
|
|
24
|
+
})
|
|
25
|
+
}
|
package/dist/chunk-AK23DRMD.js
DELETED
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
// ../anvl/src/json/index.ts
|
|
2
|
-
var parseJson = (str) => JSON.parse(str);
|
|
3
|
-
var stringifyJson = (json) => JSON.stringify(json);
|
|
4
|
-
var JSON_TYPE_NAMES = [
|
|
5
|
-
`array`,
|
|
6
|
-
`boolean`,
|
|
7
|
-
`null`,
|
|
8
|
-
`number`,
|
|
9
|
-
`object`,
|
|
10
|
-
`string`
|
|
11
|
-
];
|
|
12
|
-
var JSON_DEFAULTS = {
|
|
13
|
-
array: [],
|
|
14
|
-
boolean: false,
|
|
15
|
-
null: null,
|
|
16
|
-
number: 0,
|
|
17
|
-
object: {},
|
|
18
|
-
string: ``
|
|
19
|
-
};
|
|
20
|
-
|
|
21
|
-
export { JSON_DEFAULTS, JSON_TYPE_NAMES, parseJson, stringifyJson };
|
package/dist/chunk-IW6WYRS7.js
DELETED
|
@@ -1,140 +0,0 @@
|
|
|
1
|
-
// ../anvl/src/array/index.ts
|
|
2
|
-
var isArray = (isType) => (input) => Array.isArray(input) && input.every((item) => isType(item));
|
|
3
|
-
var map = (f) => (a) => a.map(f);
|
|
4
|
-
var every = (f = Boolean) => (a) => a.every(f);
|
|
5
|
-
var allTrue = every((x) => x === true);
|
|
6
|
-
|
|
7
|
-
// ../anvl/src/function/pipe.ts
|
|
8
|
-
function pipe(a, ab, bc, cd, de, ef, fg, gh, hi) {
|
|
9
|
-
switch (arguments.length) {
|
|
10
|
-
case 1:
|
|
11
|
-
return a;
|
|
12
|
-
case 2:
|
|
13
|
-
return ab(a);
|
|
14
|
-
case 3:
|
|
15
|
-
return bc(ab(a));
|
|
16
|
-
case 4:
|
|
17
|
-
return cd(bc(ab(a)));
|
|
18
|
-
case 5:
|
|
19
|
-
return de(cd(bc(ab(a))));
|
|
20
|
-
case 6:
|
|
21
|
-
return ef(de(cd(bc(ab(a)))));
|
|
22
|
-
case 7:
|
|
23
|
-
return fg(ef(de(cd(bc(ab(a))))));
|
|
24
|
-
case 8:
|
|
25
|
-
return gh(fg(ef(de(cd(bc(ab(a)))))));
|
|
26
|
-
case 9:
|
|
27
|
-
return hi(gh(fg(ef(de(cd(bc(ab(a))))))));
|
|
28
|
-
default: {
|
|
29
|
-
let ret = arguments[0];
|
|
30
|
-
for (let i = 1; i < arguments.length; i++) {
|
|
31
|
-
ret = arguments[i](ret);
|
|
32
|
-
}
|
|
33
|
-
return ret;
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
// ../anvl/src/function/index.ts
|
|
39
|
-
var doNothing = () => void 0;
|
|
40
|
-
var become = (nextVersionOfThing) => (originalThing) => nextVersionOfThing instanceof Function ? nextVersionOfThing(
|
|
41
|
-
originalThing instanceof Function ? originalThing() : originalThing
|
|
42
|
-
) : nextVersionOfThing;
|
|
43
|
-
var pass = (...params) => (fn) => fn(...params);
|
|
44
|
-
var raiseError = (message) => {
|
|
45
|
-
throw new Error(message);
|
|
46
|
-
};
|
|
47
|
-
var fallback = (fn, fallbackValue) => {
|
|
48
|
-
try {
|
|
49
|
-
return fn();
|
|
50
|
-
} catch (_) {
|
|
51
|
-
return fallbackValue;
|
|
52
|
-
}
|
|
53
|
-
};
|
|
54
|
-
|
|
55
|
-
// ../anvl/src/nullish/index.ts
|
|
56
|
-
var isUndefined = (input) => input === void 0;
|
|
57
|
-
var ifDefined = (validate) => (input) => isUndefined(input) || validate(input);
|
|
58
|
-
var ifNullish = (alt) => (input) => input ?? alt;
|
|
59
|
-
|
|
60
|
-
// ../anvl/src/object/access.ts
|
|
61
|
-
var access = (k) => Object.assign((obj) => obj[k], {
|
|
62
|
-
in: (obj) => obj[k]
|
|
63
|
-
});
|
|
64
|
-
|
|
65
|
-
// ../anvl/src/object/entries.ts
|
|
66
|
-
var recordToEntries = (obj) => Object.entries(obj);
|
|
67
|
-
var entriesToRecord = (entries) => Object.fromEntries(entries);
|
|
68
|
-
|
|
69
|
-
// ../anvl/src/object/mapObject.ts
|
|
70
|
-
var mapObject = (obj, fn) => pipe(
|
|
71
|
-
obj,
|
|
72
|
-
recordToEntries,
|
|
73
|
-
map(([key, val]) => [key, fn(val, key)]),
|
|
74
|
-
entriesToRecord
|
|
75
|
-
);
|
|
76
|
-
var mob = (fn) => (obj) => mapObject(obj, fn);
|
|
77
|
-
|
|
78
|
-
// ../anvl/src/object/refinement.ts
|
|
79
|
-
var isNonNullObject = (input) => typeof input === `object` && input !== null;
|
|
80
|
-
var isPlainObject = (input) => isNonNullObject(input) && Object.getPrototypeOf(input) === Object.prototype;
|
|
81
|
-
var isRecord = (isKey, isValue) => (input) => isPlainObject(input) && Object.entries(input).every(([k, v]) => isKey(k) && isValue(v));
|
|
82
|
-
var hasProperties = (isValue, options = { allowExtraProperties: false }) => {
|
|
83
|
-
const name = `{${recordToEntries(
|
|
84
|
-
isValue
|
|
85
|
-
).map(([k, v]) => String(k) + `:` + v.name).join(`,`)}}`;
|
|
86
|
-
const _ = {
|
|
87
|
-
[name]: (input) => isPlainObject(input) && pipe(
|
|
88
|
-
isValue,
|
|
89
|
-
Object.entries,
|
|
90
|
-
every(([key, val]) => key in input || val(void 0))
|
|
91
|
-
) && pipe(
|
|
92
|
-
input,
|
|
93
|
-
mob(
|
|
94
|
-
(val, key) => pipe(
|
|
95
|
-
isValue,
|
|
96
|
-
access(key),
|
|
97
|
-
ifNullish(() => options.allowExtraProperties),
|
|
98
|
-
pass(val)
|
|
99
|
-
)
|
|
100
|
-
),
|
|
101
|
-
Object.values,
|
|
102
|
-
allTrue
|
|
103
|
-
)
|
|
104
|
-
};
|
|
105
|
-
return _[name];
|
|
106
|
-
};
|
|
107
|
-
var ALLOW_EXTENSION = { allowExtraProperties: true };
|
|
108
|
-
var doesExtend = (isValue) => hasProperties(isValue, ALLOW_EXTENSION);
|
|
109
|
-
|
|
110
|
-
// ../anvl/src/object/sprawl.ts
|
|
111
|
-
var sprawl = (tree, inspector) => {
|
|
112
|
-
const walk = (path, node) => {
|
|
113
|
-
const inspect = (p, n) => {
|
|
114
|
-
const result2 = inspector(p, n);
|
|
115
|
-
if (result2) return result2;
|
|
116
|
-
return null;
|
|
117
|
-
};
|
|
118
|
-
const result = inspect(path, node);
|
|
119
|
-
if (result?.jobComplete ?? result?.pathComplete) {
|
|
120
|
-
return result;
|
|
121
|
-
}
|
|
122
|
-
const childEntries = Array.isArray(node) ? node.map((v, i) => [i, v]) : isPlainObject(node) ? Object.entries(node) : [];
|
|
123
|
-
for (const [k, v] of childEntries) {
|
|
124
|
-
const subResult = walk([...path, k], v);
|
|
125
|
-
if (subResult?.jobComplete) {
|
|
126
|
-
return subResult;
|
|
127
|
-
}
|
|
128
|
-
}
|
|
129
|
-
return {};
|
|
130
|
-
};
|
|
131
|
-
walk([], tree);
|
|
132
|
-
};
|
|
133
|
-
|
|
134
|
-
// ../anvl/src/object/index.ts
|
|
135
|
-
var delve = (obj, path) => {
|
|
136
|
-
const found = path.reduce((acc, key) => acc?.[key], obj);
|
|
137
|
-
return found === void 0 ? new Error(`Not found`) : { found };
|
|
138
|
-
};
|
|
139
|
-
|
|
140
|
-
export { become, delve, doNothing, doesExtend, fallback, ifDefined, isArray, isPlainObject, isRecord, mapObject, pipe, raiseError, recordToEntries, sprawl };
|