@evolu/common 8.11.0 → 8.13.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/dist/src/Bytes.d.ts +39 -2
- package/dist/src/Bytes.d.ts.map +1 -1
- package/dist/src/Bytes.js +50 -2
- package/dist/src/Callbacks.d.ts +12 -1
- package/dist/src/Callbacks.d.ts.map +1 -1
- package/dist/src/Callbacks.js +3 -0
- package/dist/src/Error.d.ts +10 -4
- package/dist/src/Error.d.ts.map +1 -1
- package/dist/src/Error.js +10 -4
- package/dist/src/Object.d.ts +65 -0
- package/dist/src/Object.d.ts.map +1 -1
- package/dist/src/Object.js +142 -0
- package/dist/src/Resource.d.ts +0 -5
- package/dist/src/Resource.d.ts.map +1 -1
- package/dist/src/Resource.js +6 -13
- package/dist/src/Sqlite.d.ts.map +1 -1
- package/dist/src/Sqlite.js +7 -0
- package/dist/src/Task.d.ts +10 -8
- package/dist/src/Task.d.ts.map +1 -1
- package/dist/src/Task.js +41 -5
- package/dist/src/Worker.d.ts +3 -3
- package/dist/src/index.d.ts +1 -1
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +1 -1
- package/dist/src/local-first/Db.d.ts +8 -3
- package/dist/src/local-first/Db.d.ts.map +1 -1
- package/dist/src/local-first/Db.js +56 -19
- package/dist/src/local-first/Evolu.d.ts +142 -24
- package/dist/src/local-first/Evolu.d.ts.map +1 -1
- package/dist/src/local-first/Evolu.js +109 -8
- package/dist/src/local-first/Owner.d.ts +9 -0
- package/dist/src/local-first/Owner.d.ts.map +1 -1
- package/dist/src/local-first/Owner.js +9 -0
- package/dist/src/local-first/Protocol.d.ts +18 -7
- package/dist/src/local-first/Protocol.d.ts.map +1 -1
- package/dist/src/local-first/Protocol.js +45 -28
- package/dist/src/local-first/Relay.d.ts.map +1 -1
- package/dist/src/local-first/Relay.js +4 -2
- package/dist/src/local-first/Schema.d.ts +18 -3
- package/dist/src/local-first/Schema.d.ts.map +1 -1
- package/dist/src/local-first/Shared.d.ts +523 -133
- package/dist/src/local-first/Shared.d.ts.map +1 -1
- package/dist/src/local-first/Shared.js +696 -256
- package/dist/src/local-first/Storage.d.ts +19 -15
- package/dist/src/local-first/Storage.d.ts.map +1 -1
- package/dist/src/local-first/Storage.js +4 -2
- package/package.json +1 -1
- package/src/Bytes.test.ts +27 -0
- package/src/Bytes.ts +58 -2
- package/src/Callbacks.test.ts +20 -0
- package/src/Callbacks.ts +17 -1
- package/src/Error.ts +10 -4
- package/src/Object.test.ts +296 -0
- package/src/Object.ts +163 -0
- package/src/Resource.test.ts +20 -16
- package/src/Resource.ts +6 -20
- package/src/Sqlite.ts +7 -0
- package/src/Task.test.ts +233 -62
- package/src/Task.ts +47 -13
- package/src/Worker.ts +3 -3
- package/src/index.ts +6 -1
- package/src/local-first/Db.ts +88 -18
- package/src/local-first/Evolu.test.ts +589 -2
- package/src/local-first/Evolu.ts +285 -36
- package/src/local-first/Owner.ts +9 -0
- package/src/local-first/Protocol.test.ts +59 -60
- package/src/local-first/Protocol.ts +67 -47
- package/src/local-first/Relay.ts +4 -2
- package/src/local-first/Schema.ts +20 -3
- package/src/local-first/Shared.test.ts +2633 -646
- package/src/local-first/Shared.ts +1192 -364
- package/src/local-first/Storage.ts +24 -23
package/dist/src/Bytes.d.ts
CHANGED
|
@@ -19,10 +19,47 @@
|
|
|
19
19
|
*
|
|
20
20
|
* @module
|
|
21
21
|
*/
|
|
22
|
-
import { bytesToUtf8, utf8ToBytes } from "@noble/ciphers/utils.js";
|
|
22
|
+
import { bytesToUtf8, concatBytes as nobleConcatBytes, utf8ToBytes } from "@noble/ciphers/utils.js";
|
|
23
23
|
import { Digit, Digit1To9, type FiniteNumber, type JsonValue, NonNegativeInt, type PositiveInt, type TemplateLiteralType, type LiteralType, type UnionType, type Type, type TypeError, type UnionError } from "./Type.ts";
|
|
24
|
-
export { bytesToHex,
|
|
24
|
+
export { bytesToHex, hexToBytes } from "@noble/ciphers/utils.js";
|
|
25
25
|
export { bytesToUtf8, utf8ToBytes };
|
|
26
|
+
/**
|
|
27
|
+
* Copies several Uint8Arrays into one.
|
|
28
|
+
*
|
|
29
|
+
* Each array is a separate argument, so it is meant for a few arrays. Spreading
|
|
30
|
+
* many arrays into it overflows the call stack; use {@link concatByteArrays}
|
|
31
|
+
* when their count is not bounded.
|
|
32
|
+
*
|
|
33
|
+
* ### Example
|
|
34
|
+
*
|
|
35
|
+
* ```ts
|
|
36
|
+
* import { assertEqual, concatBytes } from "@evolu/common";
|
|
37
|
+
*
|
|
38
|
+
* assertEqual(
|
|
39
|
+
* concatBytes(new Uint8Array([1]), new Uint8Array([2, 3])),
|
|
40
|
+
* new Uint8Array([1, 2, 3]),
|
|
41
|
+
* );
|
|
42
|
+
* ```
|
|
43
|
+
*/
|
|
44
|
+
export declare const concatBytes: typeof nobleConcatBytes;
|
|
45
|
+
/**
|
|
46
|
+
* Copies an array of Uint8Arrays into one.
|
|
47
|
+
*
|
|
48
|
+
* Unlike {@link concatBytes}, it takes the arrays as one array, so it works for
|
|
49
|
+
* any number of them, such as the timestamps of a batch received from a peer.
|
|
50
|
+
*
|
|
51
|
+
* ### Example
|
|
52
|
+
*
|
|
53
|
+
* ```ts
|
|
54
|
+
* import { assertEqual, concatByteArrays } from "@evolu/common";
|
|
55
|
+
*
|
|
56
|
+
* assertEqual(
|
|
57
|
+
* concatByteArrays([new Uint8Array([1]), new Uint8Array([2, 3])]),
|
|
58
|
+
* new Uint8Array([1, 2, 3]),
|
|
59
|
+
* );
|
|
60
|
+
* ```
|
|
61
|
+
*/
|
|
62
|
+
export declare const concatByteArrays: (arrays: ReadonlyArray<Uint8Array>) => Uint8Array;
|
|
26
63
|
/**
|
|
27
64
|
* Custom error for {@link Buffer}-related failures like premature end of data.
|
|
28
65
|
* Provides better stack traces for debugging binary protocol issues.
|
package/dist/src/Bytes.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Bytes.d.ts","sourceRoot":"","sources":["../../src/Bytes.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,
|
|
1
|
+
{"version":3,"file":"Bytes.d.ts","sourceRoot":"","sources":["../../src/Bytes.ts"],"names":[],"mappings":"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"}
|
package/dist/src/Bytes.js
CHANGED
|
@@ -19,13 +19,61 @@
|
|
|
19
19
|
*
|
|
20
20
|
* @module
|
|
21
21
|
*/
|
|
22
|
-
import { bytesToUtf8, utf8ToBytes } from "@noble/ciphers/utils.js";
|
|
22
|
+
import { bytesToUtf8, concatBytes as nobleConcatBytes, utf8ToBytes, } from "@noble/ciphers/utils.js";
|
|
23
23
|
import { assert } from "./Assert.js";
|
|
24
24
|
import { err, ok } from "./Result.js";
|
|
25
25
|
import { safelyStringifyUnknownValue } from "./String.js";
|
|
26
26
|
import { brand, createTypeWithError, Digit, Digit1To9, NonNegativeInt, String, templateLiteral, transform, union, } from "./Type.js";
|
|
27
|
-
export { bytesToHex,
|
|
27
|
+
export { bytesToHex, hexToBytes } from "@noble/ciphers/utils.js";
|
|
28
28
|
export { bytesToUtf8, utf8ToBytes };
|
|
29
|
+
/**
|
|
30
|
+
* Copies several Uint8Arrays into one.
|
|
31
|
+
*
|
|
32
|
+
* Each array is a separate argument, so it is meant for a few arrays. Spreading
|
|
33
|
+
* many arrays into it overflows the call stack; use {@link concatByteArrays}
|
|
34
|
+
* when their count is not bounded.
|
|
35
|
+
*
|
|
36
|
+
* ### Example
|
|
37
|
+
*
|
|
38
|
+
* ```ts
|
|
39
|
+
* import { assertEqual, concatBytes } from "@evolu/common";
|
|
40
|
+
*
|
|
41
|
+
* assertEqual(
|
|
42
|
+
* concatBytes(new Uint8Array([1]), new Uint8Array([2, 3])),
|
|
43
|
+
* new Uint8Array([1, 2, 3]),
|
|
44
|
+
* );
|
|
45
|
+
* ```
|
|
46
|
+
*/
|
|
47
|
+
export const concatBytes = nobleConcatBytes;
|
|
48
|
+
/**
|
|
49
|
+
* Copies an array of Uint8Arrays into one.
|
|
50
|
+
*
|
|
51
|
+
* Unlike {@link concatBytes}, it takes the arrays as one array, so it works for
|
|
52
|
+
* any number of them, such as the timestamps of a batch received from a peer.
|
|
53
|
+
*
|
|
54
|
+
* ### Example
|
|
55
|
+
*
|
|
56
|
+
* ```ts
|
|
57
|
+
* import { assertEqual, concatByteArrays } from "@evolu/common";
|
|
58
|
+
*
|
|
59
|
+
* assertEqual(
|
|
60
|
+
* concatByteArrays([new Uint8Array([1]), new Uint8Array([2, 3])]),
|
|
61
|
+
* new Uint8Array([1, 2, 3]),
|
|
62
|
+
* );
|
|
63
|
+
* ```
|
|
64
|
+
*/
|
|
65
|
+
export const concatByteArrays = (arrays) => {
|
|
66
|
+
let length = 0;
|
|
67
|
+
for (const array of arrays)
|
|
68
|
+
length += array.length;
|
|
69
|
+
const result = new Uint8Array(length);
|
|
70
|
+
let offset = 0;
|
|
71
|
+
for (const array of arrays) {
|
|
72
|
+
result.set(array, offset);
|
|
73
|
+
offset += array.length;
|
|
74
|
+
}
|
|
75
|
+
return result;
|
|
76
|
+
};
|
|
29
77
|
/**
|
|
30
78
|
* Custom error for {@link Buffer}-related failures like premature end of data.
|
|
31
79
|
* Provides better stack traces for debugging binary protocol issues.
|
package/dist/src/Callbacks.d.ts
CHANGED
|
@@ -10,7 +10,8 @@ import type { Callback } from "./Types.ts";
|
|
|
10
10
|
* Request-response correlation for callbacks across boundaries.
|
|
11
11
|
*
|
|
12
12
|
* Stores callbacks with unique IDs and executes them once with an optional
|
|
13
|
-
* argument. Executed callbacks are automatically removed.
|
|
13
|
+
* argument. Executed callbacks are automatically removed. A callback whose
|
|
14
|
+
* response will never come is removed with `unregister`.
|
|
14
15
|
*
|
|
15
16
|
* This is useful for correlating asynchronous request-response operations
|
|
16
17
|
* across boundaries where callback functions cannot be passed directly (e.g.,
|
|
@@ -40,6 +41,14 @@ import type { Callback } from "./Types.ts";
|
|
|
40
41
|
* callbacks.execute(noArgumentId);
|
|
41
42
|
* assertEqual(noArgumentCalls, 1);
|
|
42
43
|
*
|
|
44
|
+
* // A callback whose response will never come
|
|
45
|
+
* const failedId = callbacks.register(() => {
|
|
46
|
+
* noArgumentCalls++;
|
|
47
|
+
* });
|
|
48
|
+
* callbacks.unregister(failedId);
|
|
49
|
+
* callbacks.execute(failedId);
|
|
50
|
+
* assertEqual(noArgumentCalls, 1);
|
|
51
|
+
*
|
|
43
52
|
* // Typed callback
|
|
44
53
|
* using stringCallbacks = createCallbacks<string>(deps);
|
|
45
54
|
* let received = "";
|
|
@@ -65,6 +74,8 @@ export interface Callbacks<T = undefined> extends Disposable {
|
|
|
65
74
|
readonly register: (callback: Callback<T>) => Id;
|
|
66
75
|
/** Executes and removes a callback associated with the given ID. */
|
|
67
76
|
readonly execute: T extends undefined ? (id: Id) => undefined : (id: Id, arg: T) => undefined;
|
|
77
|
+
/** Removes a callback associated with the given ID without executing it. */
|
|
78
|
+
readonly unregister: (id: Id) => void;
|
|
68
79
|
}
|
|
69
80
|
/** Creates a {@link Callbacks} registry for managing callbacks. */
|
|
70
81
|
export declare const createCallbacks: <T = undefined>(deps: RandomBytesDep) => Callbacks<T>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Callbacks.d.ts","sourceRoot":"","sources":["../../src/Callbacks.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAElD,OAAO,EAAY,EAAE,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAE3C
|
|
1
|
+
{"version":3,"file":"Callbacks.d.ts","sourceRoot":"","sources":["../../src/Callbacks.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAElD,OAAO,EAAY,EAAE,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAE3C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8DG;AACH,MAAM,WAAW,SAAS,CAAC,CAAC,GAAG,SAAS,CAAE,SAAQ,UAAU;IAC1D,6DAA6D;IAC7D,QAAQ,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;IAEjD,oEAAoE;IACpE,QAAQ,CAAC,OAAO,EAAE,CAAC,SAAS,SAAS,GACjC,CAAC,EAAE,EAAE,EAAE,KAAK,SAAS,GACrB,CAAC,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,KAAK,SAAS,CAAC;IAElC,4EAA4E;IAC5E,QAAQ,CAAC,UAAU,EAAE,CAAC,EAAE,EAAE,EAAE,KAAK,IAAI,CAAC;CACvC;AAED,mEAAmE;AACnE,eAAO,MAAM,eAAe,GAAI,CAAC,GAAG,SAAS,QACrC,cAAc,KACnB,SAAS,CAAC,CAAC,CAiCb,CAAC"}
|
package/dist/src/Callbacks.js
CHANGED
package/dist/src/Error.d.ts
CHANGED
|
@@ -14,7 +14,9 @@ import { type InferType, type TypedType, Unknown } from "./Type.ts";
|
|
|
14
14
|
* The `error` property contains error details (including `message`, `stack`,
|
|
15
15
|
* and `cause` if available), a string, or a fallback value.
|
|
16
16
|
*
|
|
17
|
-
* Use {@link createUnknownError} to create instances.
|
|
17
|
+
* Use {@link createUnknownError} to create instances. It turns an `Error` into a
|
|
18
|
+
* plain object, so the error can be posted between workers, for example in sync
|
|
19
|
+
* state, with its message and stack.
|
|
18
20
|
*/
|
|
19
21
|
export declare const UnknownError: TypedType<"UnknownError", {
|
|
20
22
|
readonly error: typeof Unknown;
|
|
@@ -24,9 +26,13 @@ export interface UnknownError extends InferType<typeof UnknownError> {
|
|
|
24
26
|
/**
|
|
25
27
|
* Creates an {@link UnknownError} from an unknown error.
|
|
26
28
|
*
|
|
27
|
-
* Error
|
|
28
|
-
*
|
|
29
|
-
*
|
|
29
|
+
* An `Error` becomes a plain object of its own properties, such as `message`
|
|
30
|
+
* and `stack`. A `cause` that is an `Error` is converted the same way, a
|
|
31
|
+
* function is dropped, and any other property is kept as it is. An `Error`'s
|
|
32
|
+
* properties are not enumerable, so JSON and comparisons by content miss them,
|
|
33
|
+
* and a structured clone creates a new `Error`. Any other value is
|
|
34
|
+
* structured-cloned, or described by `String` when it cannot be, or as
|
|
35
|
+
* `"[Unserializable Object]"` when even that throws.
|
|
30
36
|
*/
|
|
31
37
|
export declare const createUnknownError: (error: unknown) => UnknownError;
|
|
32
38
|
/**
|
package/dist/src/Error.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Error.d.ts","sourceRoot":"","sources":["../../src/Error.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,EAAE,KAAK,SAAS,EAAS,KAAK,SAAS,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAE3E
|
|
1
|
+
{"version":3,"file":"Error.d.ts","sourceRoot":"","sources":["../../src/Error.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,EAAE,KAAK,SAAS,EAAS,KAAK,SAAS,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAE3E;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,YAAY,EAAE,SAAS,CAClC,cAAc,EACd;IAAE,QAAQ,CAAC,KAAK,EAAE,OAAO,OAAO,CAAA;CAAE,CAGlC,CAAC;AACH,MAAM,WAAW,YAAa,SAAQ,SAAS,CAAC,OAAO,YAAY,CAAC;CAAG;AAEvE;;;;;;;;;;GAUG;AACH,eAAO,MAAM,kBAAkB,UAAW,OAAO,KAAG,YAkDnD,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2CG;AACH,eAAO,MAAM,aAAa,aAAc,OAAO,KAAG,KAuBjD,CAAC"}
|
package/dist/src/Error.js
CHANGED
|
@@ -16,7 +16,9 @@ import { typed, Unknown } from "./Type.js";
|
|
|
16
16
|
* The `error` property contains error details (including `message`, `stack`,
|
|
17
17
|
* and `cause` if available), a string, or a fallback value.
|
|
18
18
|
*
|
|
19
|
-
* Use {@link createUnknownError} to create instances.
|
|
19
|
+
* Use {@link createUnknownError} to create instances. It turns an `Error` into a
|
|
20
|
+
* plain object, so the error can be posted between workers, for example in sync
|
|
21
|
+
* state, with its message and stack.
|
|
20
22
|
*/
|
|
21
23
|
export const UnknownError = /*#__PURE__*/ typed("UnknownError", {
|
|
22
24
|
error: Unknown,
|
|
@@ -24,9 +26,13 @@ export const UnknownError = /*#__PURE__*/ typed("UnknownError", {
|
|
|
24
26
|
/**
|
|
25
27
|
* Creates an {@link UnknownError} from an unknown error.
|
|
26
28
|
*
|
|
27
|
-
* Error
|
|
28
|
-
*
|
|
29
|
-
*
|
|
29
|
+
* An `Error` becomes a plain object of its own properties, such as `message`
|
|
30
|
+
* and `stack`. A `cause` that is an `Error` is converted the same way, a
|
|
31
|
+
* function is dropped, and any other property is kept as it is. An `Error`'s
|
|
32
|
+
* properties are not enumerable, so JSON and comparisons by content miss them,
|
|
33
|
+
* and a structured clone creates a new `Error`. Any other value is
|
|
34
|
+
* structured-cloned, or described by `String` when it cannot be, or as
|
|
35
|
+
* `"[Unserializable Object]"` when even that throws.
|
|
30
36
|
*/
|
|
31
37
|
export const createUnknownError = (error) => {
|
|
32
38
|
const convertError = (err) => {
|
package/dist/src/Object.d.ts
CHANGED
|
@@ -209,6 +209,71 @@ export declare const mapObject: <K extends string, V, U>(record: ReadonlyRecord<
|
|
|
209
209
|
export declare const filterObjectKeys: <T extends object>(source: T, predicate: (key: string) => boolean) => Readonly<Partial<Pick<T, Exclude<keyof T, symbol>>>>;
|
|
210
210
|
/** Conditionally excludes a property from an object. */
|
|
211
211
|
export declare const excludeProp: <T extends object, K extends keyof T>(obj: T, prop: K, condition?: boolean) => typeof condition extends true ? T : Omit<T, K>;
|
|
212
|
+
/**
|
|
213
|
+
* Returns `next` with every part deep-equal to the same part of `previous`
|
|
214
|
+
* replaced by that part, or `previous` itself when the two are deep-equal.
|
|
215
|
+
*
|
|
216
|
+
* It keeps the identity of data that arrives as a new copy, such as a
|
|
217
|
+
* structured clone posted between workers, so unchanged parts can be compared
|
|
218
|
+
* with `===`, and a UI updates only what changed. Plain objects, arrays, and
|
|
219
|
+
* `Uint8Array`s are compared by their contents, and any other value by
|
|
220
|
+
* identity. The contents of a plain object are the properties an object spread
|
|
221
|
+
* copies. A changed object or array is returned as a new ordinary one. It walks
|
|
222
|
+
* the data as a tree, so a part referenced from several places is compared at
|
|
223
|
+
* each place, and a part that a cycle leads back to is returned as it is in
|
|
224
|
+
* `next`.
|
|
225
|
+
*
|
|
226
|
+
* An array item is compared with the previous item at its index, so removing or
|
|
227
|
+
* inserting an item compares every item after it with a different one. When
|
|
228
|
+
* `itemToKey` returns a key for an item, such as its ID, the item is compared
|
|
229
|
+
* with the previous item of the same key instead. Keys are compared as `Map`
|
|
230
|
+
* keys are, so each should be unique in its array; an item whose key several
|
|
231
|
+
* previous items share is compared with the last of them.
|
|
232
|
+
*
|
|
233
|
+
* ### Example
|
|
234
|
+
*
|
|
235
|
+
* ```ts
|
|
236
|
+
* import {
|
|
237
|
+
* assertNotSame,
|
|
238
|
+
* assertSame,
|
|
239
|
+
* isPlainObject,
|
|
240
|
+
* shareStructure,
|
|
241
|
+
* } from "@evolu/common";
|
|
242
|
+
*
|
|
243
|
+
* const previous = {
|
|
244
|
+
* user: { name: "Alice" },
|
|
245
|
+
* todos: [{ title: "Buy milk" }],
|
|
246
|
+
* };
|
|
247
|
+
*
|
|
248
|
+
* // An equal copy gives the previous value back.
|
|
249
|
+
* assertSame(
|
|
250
|
+
* shareStructure(previous, structuredClone(previous)),
|
|
251
|
+
* previous,
|
|
252
|
+
* );
|
|
253
|
+
*
|
|
254
|
+
* // A change keeps every unchanged part.
|
|
255
|
+
* const next = shareStructure(previous, {
|
|
256
|
+
* user: { name: "Alice" },
|
|
257
|
+
* todos: [{ title: "Buy bread" }],
|
|
258
|
+
* });
|
|
259
|
+
* assertNotSame(next, previous);
|
|
260
|
+
* assertSame(next.user, previous.user);
|
|
261
|
+
* assertNotSame(next.todos, previous.todos);
|
|
262
|
+
*
|
|
263
|
+
* // A key compares each todo with the previous todo of the same ID.
|
|
264
|
+
* const todos = [
|
|
265
|
+
* { id: 1, title: "Buy milk" },
|
|
266
|
+
* { id: 2, title: "Walk the dog" },
|
|
267
|
+
* ];
|
|
268
|
+
* const remaining = shareStructure(
|
|
269
|
+
* todos,
|
|
270
|
+
* [{ id: 2, title: "Walk the dog" }],
|
|
271
|
+
* (todo) => (isPlainObject(todo) ? todo.id : undefined),
|
|
272
|
+
* );
|
|
273
|
+
* assertSame(remaining[0], todos[1]);
|
|
274
|
+
* ```
|
|
275
|
+
*/
|
|
276
|
+
export declare const shareStructure: <T>(previous: T, next: T, itemToKey?: (item: unknown) => unknown) => T;
|
|
212
277
|
/**
|
|
213
278
|
* Creates a mutable Record.
|
|
214
279
|
*
|
package/dist/src/Object.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Object.d.ts","sourceRoot":"","sources":["../../src/Object.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Object.d.ts","sourceRoot":"","sources":["../../src/Object.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;;GAGG;AACH,MAAM,MAAM,cAAc,CAAC,CAAC,SAAS,MAAM,GAAG,EAAE,CAAC,IAAI,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAE5E,oEAAoE;AACpE,MAAM,MAAM,UAAU,GACpB,OAAO,GAAG,MAAM,GAAG,KAAK,GAAG,QAAQ,GAAG,KAAK,GAAG,YAAY,GAAG,aAAa,CAAC;AAE7E;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,aAAa,UAAW,MAAM,KAAG,UAgB7C,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,eAAO,MAAM,aAAa,UACjB,OAAO,KACb,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAiBjC,CAAC;AAEF;;;;;;;;;;;;GAYG;AAEH,eAAO,MAAM,UAAU,UAAW,OAAO,KAAG,KAAK,IAAI,UAAU,CAAC,QACnC,CAAC;AAE9B;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,UAAU,UAAW,OAAO,KAAG,KAAK,IAAI,QAAQ,CAAC,OAAO,CAEA,CAAC;AAEtE;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,eAAO,MAAM,eAAe,GAAI,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,UACnD,CAAC,KACR,aAAa,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CACkB,CAAC;AAGvE,KAAK,WAAW,CAAC,CAAC,IAAI,OAAO,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,CAAC;AAE/C;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,eAAO,MAAM,iBAAiB,GAAI,CAAC,SAAS,MAAM,EAAE,CAAC,WAC1C,QAAQ,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KACjC,cAAc,CAAC,CAAC,EAAE,CAAC,CAAwD,CAAC;AAE/E;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,eAAO,MAAM,UAAU,GAAI,CAAC,SAAS,MAAM,EAAE,CAAC,QACtC,aAAa,CAAC,CAAC,CAAC,YACZ,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,KACtB,cAAc,CAAC,CAAC,EAAE,CAAC,CACyD,CAAC;AAEhF;;;;GAIG;AACH,eAAO,MAAM,SAAS,GAAI,CAAC,SAAS,MAAM,EAAE,CAAC,EAAE,CAAC,UACtC,cAAc,CAAC,CAAC,EAAE,CAAC,CAAC,MACxB,CAAC,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,KAC1B,cAAc,CAAC,CAAC,EAAE,CAAC,CAQrB,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,eAAO,MAAM,gBAAgB,GAAI,CAAC,SAAS,MAAM,UACvC,CAAC,aACE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,KAClC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAQrD,CAAC;AAEF,wDAAwD;AACxD,eAAO,MAAM,WAAW,GAAI,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,MAAM,CAAC,OACxD,CAAC,QACA,CAAC,cACK,OAAO,KAClB,OAAO,SAAS,SAAS,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC,EAAE,CAAC,CAM/C,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+DG;AACH,eAAO,MAAM,cAAc,GAAI,CAAC,YACpB,CAAC,QACL,CAAC,cACK,CAAC,IAAI,EAAE,OAAO,KAAK,OAAO,KACrC,CAgFF,CAAC;AAeF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqFG;AACH,wBAAgB,mBAAmB,CACjC,CAAC,SAAS,MAAM,GAAG,MAAM,EACzB,CAAC,GAAG,OAAO,KACR,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAElB,0DAA0D;AAC1D,wBAAgB,mBAAmB,CAAC,CAAC,SAAS,MAAM,EAClD,MAAM,EAAE,CAAC,GACR;IAAE,CAAC,UAAU,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CAAE,CAAC;AAMtC;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,WAAW,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAGrD,CAAC;AAEJ;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,eAAO,MAAM,UAAU,GAAI,CAAC,SAAS,MAAM,EAAE,CAAC,UACpC,cAAc,CAAC,CAAC,EAAE,CAAC,CAAC,OACvB,OAAO,CAAC,CAAC,CAAC,KACd,CAAC,GAAG,SAAmE,CAAC;AAE3E;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,WAAW,SAAU,SAAQ,UAAU;IAC3C,8DAA8D;IAC9D,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;CACtB;AAED,iEAAiE;AACjE,eAAO,MAAM,eAAe,SAAU,IAAI,KAAG,SAQ5C,CAAC"}
|
package/dist/src/Object.js
CHANGED
|
@@ -256,6 +256,148 @@ export const excludeProp = (obj, prop, condition) => {
|
|
|
256
256
|
const { [prop]: _, ...rest } = obj;
|
|
257
257
|
return rest;
|
|
258
258
|
};
|
|
259
|
+
/**
|
|
260
|
+
* Returns `next` with every part deep-equal to the same part of `previous`
|
|
261
|
+
* replaced by that part, or `previous` itself when the two are deep-equal.
|
|
262
|
+
*
|
|
263
|
+
* It keeps the identity of data that arrives as a new copy, such as a
|
|
264
|
+
* structured clone posted between workers, so unchanged parts can be compared
|
|
265
|
+
* with `===`, and a UI updates only what changed. Plain objects, arrays, and
|
|
266
|
+
* `Uint8Array`s are compared by their contents, and any other value by
|
|
267
|
+
* identity. The contents of a plain object are the properties an object spread
|
|
268
|
+
* copies. A changed object or array is returned as a new ordinary one. It walks
|
|
269
|
+
* the data as a tree, so a part referenced from several places is compared at
|
|
270
|
+
* each place, and a part that a cycle leads back to is returned as it is in
|
|
271
|
+
* `next`.
|
|
272
|
+
*
|
|
273
|
+
* An array item is compared with the previous item at its index, so removing or
|
|
274
|
+
* inserting an item compares every item after it with a different one. When
|
|
275
|
+
* `itemToKey` returns a key for an item, such as its ID, the item is compared
|
|
276
|
+
* with the previous item of the same key instead. Keys are compared as `Map`
|
|
277
|
+
* keys are, so each should be unique in its array; an item whose key several
|
|
278
|
+
* previous items share is compared with the last of them.
|
|
279
|
+
*
|
|
280
|
+
* ### Example
|
|
281
|
+
*
|
|
282
|
+
* ```ts
|
|
283
|
+
* import {
|
|
284
|
+
* assertNotSame,
|
|
285
|
+
* assertSame,
|
|
286
|
+
* isPlainObject,
|
|
287
|
+
* shareStructure,
|
|
288
|
+
* } from "@evolu/common";
|
|
289
|
+
*
|
|
290
|
+
* const previous = {
|
|
291
|
+
* user: { name: "Alice" },
|
|
292
|
+
* todos: [{ title: "Buy milk" }],
|
|
293
|
+
* };
|
|
294
|
+
*
|
|
295
|
+
* // An equal copy gives the previous value back.
|
|
296
|
+
* assertSame(
|
|
297
|
+
* shareStructure(previous, structuredClone(previous)),
|
|
298
|
+
* previous,
|
|
299
|
+
* );
|
|
300
|
+
*
|
|
301
|
+
* // A change keeps every unchanged part.
|
|
302
|
+
* const next = shareStructure(previous, {
|
|
303
|
+
* user: { name: "Alice" },
|
|
304
|
+
* todos: [{ title: "Buy bread" }],
|
|
305
|
+
* });
|
|
306
|
+
* assertNotSame(next, previous);
|
|
307
|
+
* assertSame(next.user, previous.user);
|
|
308
|
+
* assertNotSame(next.todos, previous.todos);
|
|
309
|
+
*
|
|
310
|
+
* // A key compares each todo with the previous todo of the same ID.
|
|
311
|
+
* const todos = [
|
|
312
|
+
* { id: 1, title: "Buy milk" },
|
|
313
|
+
* { id: 2, title: "Walk the dog" },
|
|
314
|
+
* ];
|
|
315
|
+
* const remaining = shareStructure(
|
|
316
|
+
* todos,
|
|
317
|
+
* [{ id: 2, title: "Walk the dog" }],
|
|
318
|
+
* (todo) => (isPlainObject(todo) ? todo.id : undefined),
|
|
319
|
+
* );
|
|
320
|
+
* assertSame(remaining[0], todos[1]);
|
|
321
|
+
* ```
|
|
322
|
+
*/
|
|
323
|
+
export const shareStructure = (previous, next, itemToKey) => {
|
|
324
|
+
// The arrays and plain objects of `next` being compared, each with whether a
|
|
325
|
+
// cycle led back to it.
|
|
326
|
+
const isCycledByPart = new Map();
|
|
327
|
+
const share = (previous, next) => {
|
|
328
|
+
if (Object.is(previous, next))
|
|
329
|
+
return previous;
|
|
330
|
+
if (Array.isArray(previous) && Array.isArray(next)) {
|
|
331
|
+
const previousItems = previous;
|
|
332
|
+
return visit(next, () => {
|
|
333
|
+
// Array.from visits holes, which map would skip or keep as holes.
|
|
334
|
+
const previousByKey = itemToKey &&
|
|
335
|
+
new Map(Array.from(previousItems, (item) => [itemToKey(item), item]));
|
|
336
|
+
let isEqual = previousItems.length === next.length;
|
|
337
|
+
const shared = Array.from(next, (item, index) => {
|
|
338
|
+
const key = itemToKey?.(item);
|
|
339
|
+
const previousItem = key === undefined ? previousItems[index] : previousByKey?.get(key);
|
|
340
|
+
const sharedItem = share(previousItem, item);
|
|
341
|
+
if (!Object.is(sharedItem, previousItems[index]))
|
|
342
|
+
isEqual = false;
|
|
343
|
+
return sharedItem;
|
|
344
|
+
});
|
|
345
|
+
return isEqual ? previousItems : shared;
|
|
346
|
+
});
|
|
347
|
+
}
|
|
348
|
+
if (isPlainObject(previous) && isPlainObject(next))
|
|
349
|
+
return visit(next, () => {
|
|
350
|
+
const keys = ownEnumerableKeys(next);
|
|
351
|
+
let isEqual = keys.length === ownEnumerableKeys(previous).length;
|
|
352
|
+
// Object.fromEntries defines each key, so `__proto__` stays own data.
|
|
353
|
+
const shared = Object.fromEntries(keys.map((key) => {
|
|
354
|
+
const hasPrevious = Object.prototype.propertyIsEnumerable.call(previous, key);
|
|
355
|
+
const previousValue = hasPrevious
|
|
356
|
+
? previous[key]
|
|
357
|
+
: undefined;
|
|
358
|
+
const value = share(previousValue, next[key]);
|
|
359
|
+
if (!hasPrevious || !Object.is(value, previousValue))
|
|
360
|
+
isEqual = false;
|
|
361
|
+
return [key, value];
|
|
362
|
+
}));
|
|
363
|
+
return isEqual ? previous : shared;
|
|
364
|
+
});
|
|
365
|
+
// An indexed loop compares bytes far faster than `every`.
|
|
366
|
+
if (previous instanceof Uint8Array && next instanceof Uint8Array) {
|
|
367
|
+
if (previous.length !== next.length)
|
|
368
|
+
return next;
|
|
369
|
+
for (let index = 0; index < previous.length; index++)
|
|
370
|
+
if (previous[index] !== next[index])
|
|
371
|
+
return next;
|
|
372
|
+
return previous;
|
|
373
|
+
}
|
|
374
|
+
return next;
|
|
375
|
+
};
|
|
376
|
+
// A cycle refers back to the part of `next` itself, so the part it leads back
|
|
377
|
+
// to is returned as it is, which keeps the cycle intact.
|
|
378
|
+
const visit = (part, compare) => {
|
|
379
|
+
if (isCycledByPart.has(part)) {
|
|
380
|
+
isCycledByPart.set(part, true);
|
|
381
|
+
return part;
|
|
382
|
+
}
|
|
383
|
+
isCycledByPart.set(part, false);
|
|
384
|
+
const shared = compare();
|
|
385
|
+
const isCycled = isCycledByPart.get(part);
|
|
386
|
+
isCycledByPart.delete(part);
|
|
387
|
+
return isCycled ? part : shared;
|
|
388
|
+
};
|
|
389
|
+
return share(previous, next);
|
|
390
|
+
};
|
|
391
|
+
// The keys an object spread copies: own enumerable strings and symbols.
|
|
392
|
+
const ownEnumerableKeys = (object) => {
|
|
393
|
+
const symbols = Object.getOwnPropertySymbols(object);
|
|
394
|
+
return symbols.length === 0
|
|
395
|
+
? Object.keys(object)
|
|
396
|
+
: [
|
|
397
|
+
...Object.keys(object),
|
|
398
|
+
...symbols.filter((symbol) => Object.prototype.propertyIsEnumerable.call(object, symbol)),
|
|
399
|
+
];
|
|
400
|
+
};
|
|
259
401
|
export function createMutableRecord(source) {
|
|
260
402
|
const record = Object.create(null);
|
|
261
403
|
return source === undefined ? record : Object.assign(record, source);
|
package/dist/src/Resource.d.ts
CHANGED
|
@@ -241,11 +241,6 @@ export interface SharedResource<T extends Resource> extends AsyncDisposable {
|
|
|
241
241
|
}
|
|
242
242
|
/** Snapshot returned by {@link SharedResource.snapshot}. */
|
|
243
243
|
export interface SharedResourceSnapshot {
|
|
244
|
-
/**
|
|
245
|
-
* Whether the resource has no current value, no leases, no pending idle
|
|
246
|
-
* disposal, and no acquisition in progress.
|
|
247
|
-
*/
|
|
248
|
-
readonly isIdle: boolean;
|
|
249
244
|
/** Current active lease count. */
|
|
250
245
|
readonly leaseCount: NonNegativeInt;
|
|
251
246
|
/** Whether a current resource exists. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Resource.d.ts","sourceRoot":"","sources":["../../src/Resource.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAEH,OAAO,KAAK,EAAiB,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAGvE,OAAO,EAGL,KAAK,MAAM,EACX,KAAK,YAAY,EAClB,MAAM,aAAa,CAAC;AAGrB,OAAO,EAQL,KAAK,iBAAiB,EACtB,KAAK,IAAI,EACV,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAEnD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,MAAM,QAAQ,GAAG,UAAU,GAAG,eAAe,CAAC;AAEpD;;;;;;;;;GASG;AACH,MAAM,MAAM,gBAAgB,CAAC,CAAC,SAAS,QAAQ,IAAI,gBAAgB,CACjE,CAAC,EACD,OAAO,MAAM,CAAC,OAAO,GAAG,OAAO,MAAM,CAAC,YAAY,CACnD,CAAC;AAEF;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,WAAW,KAAK,CAAC,CAAC,SAAS,QAAQ,CAAE,SAAQ,UAAU;IAC3D,2BAA2B;IAC3B,QAAQ,CAAC,QAAQ,EAAE,gBAAgB,CAAC,CAAC,CAAC,CAAC;IAEvC,uEAAuE;IACvE,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAE1B;;;;;;;OAOG;IACH,QAAQ,CAAC,OAAO,EAAE,MAAM,OAAO,CAAC;CACjC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2FG;AACH,MAAM,WAAW,cAAc,CAAC,CAAC,SAAS,QAAQ,CAAE,SAAQ,eAAe;IACzE;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAEjC;;;;;;;OAOG;IACH,QAAQ,CAAC,cAAc,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC;IAEpD;;;;;;;;;OASG;IACH,QAAQ,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EACpB,QAAQ,EAAE,CACR,QAAQ,EAAE,gBAAgB,CAAC,CAAC,CAAC,EAC7B,OAAO,EAAE,OAAO,KACb,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KACf,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAEnB,0EAA0E;IAC1E,QAAQ,CAAC,QAAQ,EAAE,MAAM,sBAAsB,CAAC;CACjD;AAED,4DAA4D;AAC5D,MAAM,WAAW,sBAAsB;IACrC
|
|
1
|
+
{"version":3,"file":"Resource.d.ts","sourceRoot":"","sources":["../../src/Resource.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAEH,OAAO,KAAK,EAAiB,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAGvE,OAAO,EAGL,KAAK,MAAM,EACX,KAAK,YAAY,EAClB,MAAM,aAAa,CAAC;AAGrB,OAAO,EAQL,KAAK,iBAAiB,EACtB,KAAK,IAAI,EACV,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAEnD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,MAAM,QAAQ,GAAG,UAAU,GAAG,eAAe,CAAC;AAEpD;;;;;;;;;GASG;AACH,MAAM,MAAM,gBAAgB,CAAC,CAAC,SAAS,QAAQ,IAAI,gBAAgB,CACjE,CAAC,EACD,OAAO,MAAM,CAAC,OAAO,GAAG,OAAO,MAAM,CAAC,YAAY,CACnD,CAAC;AAEF;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,WAAW,KAAK,CAAC,CAAC,SAAS,QAAQ,CAAE,SAAQ,UAAU;IAC3D,2BAA2B;IAC3B,QAAQ,CAAC,QAAQ,EAAE,gBAAgB,CAAC,CAAC,CAAC,CAAC;IAEvC,uEAAuE;IACvE,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAE1B;;;;;;;OAOG;IACH,QAAQ,CAAC,OAAO,EAAE,MAAM,OAAO,CAAC;CACjC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2FG;AACH,MAAM,WAAW,cAAc,CAAC,CAAC,SAAS,QAAQ,CAAE,SAAQ,eAAe;IACzE;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAEjC;;;;;;;OAOG;IACH,QAAQ,CAAC,cAAc,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC;IAEpD;;;;;;;;;OASG;IACH,QAAQ,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EACpB,QAAQ,EAAE,CACR,QAAQ,EAAE,gBAAgB,CAAC,CAAC,CAAC,EAC7B,OAAO,EAAE,OAAO,KACb,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KACf,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAEnB,0EAA0E;IAC1E,QAAQ,CAAC,QAAQ,EAAE,MAAM,sBAAsB,CAAC;CACjD;AAED,4DAA4D;AAC5D,MAAM,WAAW,sBAAsB;IACrC,kCAAkC;IAClC,QAAQ,CAAC,UAAU,EAAE,cAAc,CAAC;IAEpC,yCAAyC;IACzC,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC;IAE9B,8DAA8D;IAC9D,QAAQ,CAAC,kBAAkB,EAAE,OAAO,CAAC;IAErC,6DAA6D;IAC7D,QAAQ,CAAC,KAAK,EAAE,iBAAiB,CAAC;CACnC;AAED,gDAAgD;AAChD,MAAM,WAAW,qBAAqB;IACpC;;;;;;OAMG;IACH,QAAQ,CAAC,gBAAgB,CAAC,EAAE,gBAAgB,GAAG,SAAS,CAAC;IAEzD;;;;;OAKG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,SAAS,CAAC;CAChD;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,eAAO,MAAM,oBAAoB,GAC9B,CAAC,SAAS,QAAQ,EAAE,CAAC,UACZ,IAAI,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,qCACS,qBAAqB,KACtD,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAuKlC,CAAC;AAEJ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2DG;AACH,MAAM,WAAW,kBAAkB,CACjC,CAAC,SAAS,QAAQ,CAClB,SAAQ,eAAe;IACvB;;;;;OAKG;IACH,QAAQ,CAAC,GAAG,EAAE,MAAM,gBAAgB,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC;IAEpD;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,QAAQ,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE,gBAAgB,CAAC,CAAC,CAAC,GAAG,SAAS,KAAK,IAAI,CAAC,IAAI,CAAC,CAAC;CAC3E;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,eAAO,MAAM,wBAAwB,GAClC,CAAC,SAAS,QAAQ,EAAE,CAAC,UACZ,IAAI,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KACxB,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAqEtC,CAAC;AAEJ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6FG;AACH,MAAM,WAAW,mBAAmB,CAClC,CAAC,EACD,CAAC,SAAS,QAAQ,CAClB,SAAQ,eAAe;IACvB;;;;;;;;OAQG;IACH,QAAQ,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAE7C;;;;;;;;;OASG;IACH,QAAQ,CAAC,cAAc,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC;IAEhE;;;;;;;;;OASG;IACH,QAAQ,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EACpB,GAAG,EAAE,CAAC,EACN,QAAQ,EAAE,CACR,QAAQ,EAAE,gBAAgB,CAAC,CAAC,CAAC,EAC7B,OAAO,EAAE,OAAO,KACb,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KACf,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAEnB;;;;;;;;;;OAUG;IACH,QAAQ,CAAC,cAAc,EAAE,CACvB,QAAQ,EAAE,CAAC,QAAQ,EAAE,gBAAgB,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,KAAK,IAAI,KACtD,IAAI,CAAC,IAAI,CAAC,CAAC;IAEhB,+EAA+E;IAC/E,QAAQ,CAAC,QAAQ,EAAE,MAAM,2BAA2B,CAAC,CAAC,CAAC,CAAC;CACzD;AAED,iEAAiE;AACjE,MAAM,WAAW,2BAA2B,CAAC,CAAC;IAC5C;;;;;;OAMG;IACH,QAAQ,CAAC,cAAc,EAAE,WAAW,CAAC,CAAC,EAAE,sBAAsB,CAAC,CAAC;CACjE;AAED,qDAAqD;AACrD,MAAM,WAAW,0BAA0B,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAClD,SAAQ,IAAI,CAAC,qBAAqB,EAAE,kBAAkB,CAAC,EAAE,YAAY,CAAC,CAAC,EAAE,CAAC,CAAC;IAC3E;;;;;;;;;OASG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;CACtD;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,yBAAyB,CACvC,CAAC,GAAG,OAAO,EACX,CAAC,SAAS,QAAQ,GAAG,QAAQ,EAC7B,CAAC,GAAG,OAAO,EAEX,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,IAAI,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,GACpC,IAAI,CAAC,mBAAmB,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;AAE7C,4EAA4E;AAC5E,wBAAgB,yBAAyB,CAAC,CAAC,EAAE,CAAC,SAAS,QAAQ,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,EACvE,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,IAAI,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,EACrC,OAAO,EAAE,0BAA0B,CAAC,CAAC,EAAE,CAAC,CAAC,GACxC,IAAI,CAAC,mBAAmB,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;AA6J7C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0GG;AACH,MAAM,WAAW,6BAA6B,CAC5C,CAAC,EACD,CAAC,EACD,CAAC,SAAS,QAAQ,CAClB,SAAQ,eAAe;IACvB;;;;;;;;;;;;OAYG;IACH,QAAQ,CAAC,KAAK,EAAE,CACd,KAAK,EAAE,CAAC,EACR,YAAY,EAAE,qBAAqB,CAAC,CAAC,CAAC,KACnC,IAAI,CAAC,UAAU,CAAC,CAAC;IAEtB;;;;;;;;;;OAUG;IACH,QAAQ,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EACpB,KAAK,EAAE,CAAC,EACR,YAAY,EAAE,qBAAqB,CAAC,CAAC,CAAC,EACtC,QAAQ,EAAE,CACR,SAAS,EAAE,qBAAqB,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAChE,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KACf,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAEnB;;;;;OAKG;IACH,QAAQ,CAAC,oBAAoB,EAAE,CAAC,WAAW,EAAE,CAAC,KAAK,WAAW,CAAC,CAAC,CAAC,CAAC;IAElE;;;;;OAKG;IACH,QAAQ,CAAC,uBAAuB,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,WAAW,CAAC,CAAC,CAAC,CAAC;IAE/D;;;;;;;;OAQG;IACH,QAAQ,CAAC,uBAAuB,EAAE,CAChC,KAAK,EAAE,CAAC,EACR,QAAQ,EAAE,CAAC,QAAQ,EAAE,gBAAgB,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,KAAK,IAAI,KAC9D,IAAI,CAAC;IAEV;;;;;;OAMG;IACH,QAAQ,CAAC,QAAQ,EAAE,MAAM,qCAAqC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;CACtE;AAED,2EAA2E;AAC3E,MAAM,WAAW,qCAAqC,CAAC,CAAC,EAAE,CAAC;IACzD,4CAA4C;IAC5C,QAAQ,CAAC,eAAe,EAAE,cAAc,CAAC;IAEzC,yEAAyE;IACzE,QAAQ,CAAC,gCAAgC,EAAE,WAAW,CACpD,CAAC,EACD,WAAW,CAAC,CAAC,EAAE,MAAM,CAAC,CACvB,CAAC;IAEF,sEAAsE;IACtE,QAAQ,CAAC,cAAc,EAAE,WAAW,CAAC,CAAC,EAAE,sBAAsB,CAAC,CAAC;CACjE;AAED;;;;;;;;;;;GAWG;AACH,MAAM,WAAW,UAAW,SAAQ,UAAU;IAC5C;;;;;;OAMG;IACH,QAAQ,CAAC,OAAO,EAAE,MAAM,OAAO,CAAC;CACjC;AAED,+DAA+D;AAC/D,MAAM,WAAW,oCAAoC,CACnD,CAAC,EACD,CAAC,EACD,CAAC,SAAS,QAAQ,EAClB,EAAE,GAAG,CAAC,EACN,EAAE,GAAG,CAAC,CACN,SAAQ,IAAI,CAAC,qBAAqB,EAAE,kBAAkB,CAAC;IACvD,0DAA0D;IAC1D,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAExC,mDAAmD;IACnD,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAErC;;;;;;;OAOG;IACH,QAAQ,CAAC,iBAAiB,CAAC,EAAE,CAC3B,KAAK,EAAE,CAAC,EACR,QAAQ,EAAE,gBAAgB,CAAC,CAAC,CAAC,EAC7B,WAAW,EAAE,CAAC,KACX,IAAI,CAAC;IAEV;;;;;;;;;OASG;IACH,QAAQ,CAAC,kBAAkB,CAAC,EAAE,CAC5B,KAAK,EAAE,CAAC,EACR,QAAQ,EAAE,gBAAgB,CAAC,CAAC,CAAC,EAC7B,WAAW,EAAE,CAAC,KACX,IAAI,CAAC;CACX;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,eAAO,MAAM,mCAAmC,GAE5C,CAAC,GAAG,OAAO,EACX,CAAC,GAAG,OAAO,EACX,CAAC,SAAS,QAAQ,GAAG,QAAQ,EAC7B,CAAC,GAAG,OAAO,EACX,EAAE,GAAG,CAAC,EACN,EAAE,GAAG,CAAC,UAEE,CAAC,GAAG,EAAE,CAAC,KAAK,IAAI,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,8FAOlC,oCAAoC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,KACvD,IAAI,CAAC,6BAA6B,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CA+SvD,CAAC"}
|
package/dist/src/Resource.js
CHANGED
|
@@ -259,19 +259,12 @@ export const createSharedResource = (create, { idleDisposeAfter, onDisposed } =
|
|
|
259
259
|
__disposeResources(env_2);
|
|
260
260
|
}
|
|
261
261
|
},
|
|
262
|
-
snapshot: () => {
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
mutexSnapshot.isIdle,
|
|
269
|
-
leaseCount: NonNegativeInt.orThrow(heldLeases.size),
|
|
270
|
-
hasResource: current !== undefined,
|
|
271
|
-
idleDisposePending: idleDisposeFiber !== undefined,
|
|
272
|
-
mutex: mutexSnapshot,
|
|
273
|
-
};
|
|
274
|
-
},
|
|
262
|
+
snapshot: () => ({
|
|
263
|
+
leaseCount: NonNegativeInt.orThrow(heldLeases.size),
|
|
264
|
+
hasResource: current !== undefined,
|
|
265
|
+
idleDisposePending: idleDisposeFiber !== undefined,
|
|
266
|
+
mutex: mutex.snapshot(),
|
|
267
|
+
}),
|
|
275
268
|
[Symbol.asyncDispose]: () => sharedResourceRun[Symbol.asyncDispose](),
|
|
276
269
|
};
|
|
277
270
|
leakDetector.track(sharedResource, {
|
package/dist/src/Sqlite.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Sqlite.d.ts","sourceRoot":"","sources":["../../src/Sqlite.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"Sqlite.d.ts","sourceRoot":"","sources":["../../src/Sqlite.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAExC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,SAAS,CAAC;AAIlC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAE1C,OAAO,EAAE,KAAK,IAAI,EAAiB,KAAK,UAAU,EAAE,MAAM,WAAW,CAAC;AACtE,OAAO,EAEL,KAAK,SAAS,EAEd,KAAK,SAAS,EACd,KAAK,IAAI,EAGT,KAAK,UAAU,EAEf,KAAK,UAAU,EAEf,KAAK,OAAO,EACZ,MAAM,EAEN,KAAK,KAAK,EAGX,MAAM,WAAW,CAAC;AAEnB;;;;;;;;GAQG;AACH,MAAM,WAAW,MAAO,SAAQ,eAAe;IAC7C,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,SAAS,SAAS,GAAG,SAAS,EAC7C,KAAK,EAAE,WAAW,KACf,gBAAgB,CAAC,CAAC,CAAC,CAAC;IAEzB;;;;;;;;;OASG;IACH,QAAQ,CAAC,WAAW,EAAE,iBAAiB,CAAC;IAExC;;;;;OAKG;IACH,QAAQ,CAAC,MAAM,EAAE,MAAM,UAAU,CAAC,WAAW,CAAC,CAAC;CAChD;AAED;;;;GAIG;AACH,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED;;;;GAIG;AACH,MAAM,WAAW,iBAAiB;IAChC,CAAC,CAAC,EAAE,CAAC,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACnD,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,IAAI,CAAC;CAC9B;AAED;;;;GAIG;AACH,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC;IACtB,QAAQ,CAAC,UAAU,EAAE,qBAAqB,CAAC;IAC3C,QAAQ,CAAC,OAAO,CAAC,EAAE,kBAAkB,CAAC;CACvC;AAED;;;;GAIG;AACH,MAAM,MAAM,iBAAiB,GAAG,MAAM,GAAG,KAAK,CAAC,mBAAmB,CAAC,CAAC;AAEpE;;;;GAIG;AACH,MAAM,MAAM,OAAO,GAAG,MAAM,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC;AAEhD;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,WAAW,qyBAKvB,CAAC;AACF,MAAM,MAAM,WAAW,GAAG,OAAO,WAAW,CAAC,MAAM,CAAC;AAEpD;;;;GAIG;AACH,eAAO,MAAM,qBAAqB,gzBAAmC,CAAC;AACtE,MAAM,MAAM,qBAAqB,GAAG,OAAO,qBAAqB,CAAC,MAAM,CAAC;AAExE;;;;;;;;GAQG;AACH,MAAM,MAAM,gBAAgB,GAAG,OAAO,WAAW,CAAC,KAAK,CAAC;AAExD;;;;GAIG;AACH,eAAO,MAAM,aAAa,EAAE,EAAE,CAAC,gBAAgB,CACsB,CAAC;AAEtE;;;;GAIG;AACH,MAAM,WAAW,kBAAkB;IACjC;;;OAGG;IACH,QAAQ,CAAC,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAEzC;;;;;;OAMG;IACH,QAAQ,CAAC,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAEvC;;;;;;OAMG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED;;;;GAIG;AACH,eAAO,MAAM,8BAA8B,UAClC,WAAW,KACjB,iBAYF,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,8BAA8B,UAClC,iBAAiB,KACvB,WAsBF,CAAC;AAEF;;;;GAIG;AACH,MAAM,WAAW,gBAAgB,CAAC,CAAC,SAAS,SAAS,GAAG,SAAS;IAC/D,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC;IAChC,yEAAyE;IACzE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAED;;;;;GAKG;AACH,MAAM,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;AAEzD;;;;;;GAMG;AACH,MAAM,WAAW,YAAa,SAAQ,UAAU;IAC9C,QAAQ,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,gBAAgB,CAAC;IAExD,uEAAuE;IACvE,QAAQ,CAAC,cAAc,EAAE,MAAM,IAAI,CAAC;IAEpC;;;;;OAKG;IACH,QAAQ,CAAC,MAAM,EAAE,MAAM,UAAU,CAAC,WAAW,CAAC,CAAC;CAChD;AAED;;;;GAIG;AACH,MAAM,MAAM,kBAAkB,GAAG,CAC/B,IAAI,EAAE,IAAI,EACV,OAAO,CAAC,EAAE,mBAAmB,KAC1B,IAAI,CAAC,YAAY,CAAC,CAAC;AAExB;;;;GAIG;AACH,MAAM,WAAW,qBAAqB;IACpC,kBAAkB,EAAE,kBAAkB,CAAC;CACxC;AAED;;;;;;;GAOG;AACH,MAAM,MAAM,mBAAmB,GAC3B;IAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAA;CAAE,GAC3B;IAAE,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAAC,QAAQ,CAAC,aAAa,EAAE,aAAa,CAAA;CAAE,CAAC;AAE1E;;;;;;;GAOG;AACH,eAAO,MAAM,YAAY,SAEf,IAAI,YACA,mBAAmB,KAC5B,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,qBAAqB,CA6E3C,CAAC;AAEJ;;;;GAIG;AACH,eAAO,MAAM,eAAe,SACpB,qBAAqB,KAC1B,OAAO,CACR,eAAe,GAAG,SAAS,GAAG,UAAU,CAAC,qBAAqB,GAAG,SAAS,CAAC,CAe5E,CAAC;AA2BF;;;;;;;GAOG;AACH,MAAM,WAAW,kBAAkB,CAAC,CAAC,CAAE,SAAQ,UAAU;IACvD,QAAQ,CAAC,GAAG,EAAE,CAAC,CAAC,SAAS,OAAO,EAC9B,KAAK,EAAE,WAAW,EAClB,aAAa,CAAC,EAAE,CAAC,KACd,CAAC,SAAS,IAAI,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;CACpC;AAED;;;;;GAKG;AACH,eAAO,MAAM,6BAA6B,GAAI,CAAC,WACpC,CAAC,GAAG,EAAE,OAAO,KAAK,CAAC,aACjB,CAAC,SAAS,EAAE,CAAC,KAAK,IAAI,KAChC,kBAAkB,CAAC,CAAC,CA8BtB,CAAC;AAEF;;;;GAIG;AACH,MAAM,WAAW,aAAc,SAAQ,KAAK,CAAC,eAAe,CAAC;IAC3D,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC;CACvB;AAED;;;;;;GAMG;AACH,MAAM,WAAW,MAAO,SAAQ,KAAK,CAAC,QAAQ,CAAC;IAC7C,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;CACtB;AAED;;;;GAIG;AACH,MAAM,MAAM,gBAAgB,GAAG,gBAAgB,GAAG,aAAa,GAAG,MAAM,CAAC;4BAiDvE,OAAO,EAAE,oBAAoB,EAC7B,GAAG,UAAU,EAAE,KAAK,CAAC,gBAAgB,CAAC,GACrC,WAAW;;iCAsBgB,MAAM,KAAG,aAAa;mBAYpC,MAAM,KAAG,MAAM;4BAIpB,oBAAoB,iBACd,KAAK,CAAC,gBAAgB,CAAC,KACrC,WAAW;;AAKd;;;;GAIG;AACH,eAAO,MAAM,WAAW,EAAE,UAAU,CAAC;IACnC,QAAQ,CAAC,IAAI,EAAE,OAAO,MAAM,CAAC;IAC7B,QAAQ,CAAC,GAAG,EAAE,OAAO,MAAM,CAAC;CAC7B,CAAuD,CAAC;AACzD,MAAM,WAAW,WAAY,SAAQ,SAAS,CAAC,OAAO,WAAW,CAAC;CAAG;AAErE;;;;GAIG;AACH,eAAO,MAAM,aAAa,EAAE,EAAE,CAAC,WAAW,CAGxC,CAAC;AAEH;;;;;;GAMG;AACH,eAAO,MAAM,YAAY,EAAE,UAAU,CAAC;IACpC,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC,OAAO,MAAM,EAAE,OAAO,CAAC,OAAO,MAAM,CAAC,CAAC,CAAC;IACnE,QAAQ,CAAC,OAAO,EAAE,SAAS,CAAC,OAAO,WAAW,CAAC,CAAC;CACjD,CAGC,CAAC;AACH,MAAM,WAAW,YAAa,SAAQ,SAAS,CAAC,OAAO,YAAY,CAAC;CAAG;AAEvE;;;;GAIG;AACH,eAAO,MAAM,eAAe,SACnB,SAAS,oCAGb;IACD;;;OAGG;IACH,sBAAsB,CAAC,EAAE,MAAM,CAAC;CACjC,KAAQ,YAiDR,CAAC;AAEJ;;;;;GAKG;AACH,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;IAC9B,QAAQ,CAAC,MAAM,EAAE,KAAK,CAAC;QACrB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QACtB,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC,SAAS,CAAC,CAAC;KACzC,CAAC,CAAC;CACJ;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,iBAAiB,SAAU,SAAS,KAAG,cAiBnD,CAAC;AAEF;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,aAAa,kHAA4B,CAAC;AACvD,MAAM,MAAM,aAAa,GAAG,OAAO,aAAa,CAAC,MAAM,CAAC;AAExD;;;;;;GAMG;AACH,eAAO,MAAM,UAAU,IAAI,CAAC;AAE5B;;;;;;GAMG;AACH,eAAO,MAAM,WAAW,IAAI,CAAC;AAE7B;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,sBAAsB,UAAW,OAAO,KAAG,aACtB,CAAC;AAEnC;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,sBAAsB,UAAW,aAAa,KAAG,OACxC,CAAC"}
|
package/dist/src/Sqlite.js
CHANGED
|
@@ -162,6 +162,13 @@ export const createSqlite = (name, options) => async (run) => {
|
|
|
162
162
|
try {
|
|
163
163
|
console.debug("begin");
|
|
164
164
|
driver.exec(sql `begin;`);
|
|
165
|
+
// After errors such as SQLITE_FULL or SQLITE_IOERR, SQLite may roll
|
|
166
|
+
// back the transaction itself, and this rollback then fails with
|
|
167
|
+
// "no transaction is active". Disposal wraps both in a
|
|
168
|
+
// SuppressedError whose `suppressed` holds the original error. The
|
|
169
|
+
// data is consistent and nothing is lost.
|
|
170
|
+
// TODO: Rethink this when Evolu detects SQLITE_FULL, which needs
|
|
171
|
+
// the original error, not the failed rollback.
|
|
165
172
|
const rollback = __addDisposableResource(env_2, new DisposableStack(), false);
|
|
166
173
|
let shouldRollback = true;
|
|
167
174
|
rollback.defer(() => {
|