@adobe/data 0.5.9 → 0.5.11
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/ecs/database/create-database.js +65 -70
- package/dist/ecs/database/create-database.js.map +1 -1
- package/dist/functions/index.d.ts +1 -0
- package/dist/functions/index.js +1 -0
- package/dist/functions/index.js.map +1 -1
- package/dist/functions/merge-patch.d.ts +11 -0
- package/dist/functions/merge-patch.js +37 -0
- package/dist/functions/merge-patch.js.map +1 -0
- package/dist/functions/merge-patch.test.d.ts +1 -0
- package/dist/functions/merge-patch.test.js +96 -0
- package/dist/functions/merge-patch.test.js.map +1 -0
- package/dist/samples/todo/services/state-service/create-todo-database.d.ts +3 -3
- package/dist/samples/todo/services/state-service/create-todo-store.d.ts +3 -3
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
|
@@ -101,84 +101,79 @@ export function createDatabase(store, transactionDeclarations) {
|
|
|
101
101
|
};
|
|
102
102
|
for (const [name, transactionUntyped] of Object.entries(transactionDeclarations)) {
|
|
103
103
|
const transaction = transactionUntyped;
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
}, { transient: true });
|
|
126
|
-
}
|
|
127
|
-
lastTransaction = execute(t => transaction(t, asyncArgs), { transient });
|
|
128
|
-
if (!transient) {
|
|
129
|
-
// this is the last value so we will resolve to it
|
|
130
|
-
resolve(lastTransaction.value);
|
|
131
|
-
}
|
|
132
|
-
};
|
|
133
|
-
// Manually iterate through the generator to capture both yield and return values
|
|
134
|
-
let result = await asyncResult.next();
|
|
135
|
-
// Process yield values one by one with rollback
|
|
136
|
-
// We can't know if a yield is final until the generator completes,
|
|
137
|
-
// so we mark all yields as transient initially
|
|
138
|
-
while (!result.done) {
|
|
139
|
-
// This is a yield value - always transient initially
|
|
140
|
-
executeNext(result.value, true);
|
|
141
|
-
result = await asyncResult.next();
|
|
104
|
+
transactions[name] = (args) => {
|
|
105
|
+
// Check if args is an AsyncArgsProvider function
|
|
106
|
+
if (typeof args === 'function') {
|
|
107
|
+
const asyncArgsProvider = args;
|
|
108
|
+
const asyncResult = asyncArgsProvider();
|
|
109
|
+
if (isAsyncGenerator(asyncResult)) {
|
|
110
|
+
let count = 0;
|
|
111
|
+
return new Promise(async (resolve, reject) => {
|
|
112
|
+
try {
|
|
113
|
+
let lastArgs = undefined;
|
|
114
|
+
let lastTransaction;
|
|
115
|
+
const executeNext = (asyncArgs, transient) => {
|
|
116
|
+
lastArgs = asyncArgs;
|
|
117
|
+
if (lastTransaction) {
|
|
118
|
+
// rollback previous transaction.
|
|
119
|
+
execute(t => {
|
|
120
|
+
if (lastTransaction) {
|
|
121
|
+
// Rollback the previous transaction to restore the state before it
|
|
122
|
+
applyOperations(t, lastTransaction.undo);
|
|
123
|
+
}
|
|
124
|
+
}, { transient: true });
|
|
142
125
|
}
|
|
143
|
-
|
|
144
|
-
|
|
126
|
+
lastTransaction = execute(t => transaction(t, asyncArgs), { transient });
|
|
127
|
+
if (!transient) {
|
|
128
|
+
// this is the last value so we will resolve to it
|
|
129
|
+
resolve(lastTransaction.value);
|
|
145
130
|
}
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
131
|
+
};
|
|
132
|
+
// Manually iterate through the generator to capture both yield and return values
|
|
133
|
+
let result = await asyncResult.next();
|
|
134
|
+
// Process yield values one by one with rollback
|
|
135
|
+
// We can't know if a yield is final until the generator completes,
|
|
136
|
+
// so we mark all yields as transient initially
|
|
137
|
+
while (!result.done) {
|
|
138
|
+
// This is a yield value - always transient initially
|
|
139
|
+
executeNext(result.value, true);
|
|
140
|
+
result = await asyncResult.next();
|
|
153
141
|
}
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
else if (isPromise(asyncResult)) {
|
|
157
|
-
return new Promise(async (resolve, reject) => {
|
|
158
|
-
try {
|
|
159
|
-
const input = await asyncResult;
|
|
160
|
-
const result = execute(t => transaction(t, input));
|
|
161
|
-
resolve(result);
|
|
142
|
+
if (result.value !== undefined) {
|
|
143
|
+
executeNext(result.value, false);
|
|
162
144
|
}
|
|
163
|
-
|
|
164
|
-
|
|
145
|
+
else if (lastArgs !== undefined) { // Only execute if lastArgs exists
|
|
146
|
+
executeNext(lastArgs, false);
|
|
165
147
|
}
|
|
166
|
-
}
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
}
|
|
148
|
+
}
|
|
149
|
+
catch (error) {
|
|
150
|
+
console.error('AsyncGenerator error:', error);
|
|
151
|
+
reject(error);
|
|
152
|
+
}
|
|
153
|
+
});
|
|
154
|
+
}
|
|
155
|
+
else if (isPromise(asyncResult)) {
|
|
156
|
+
return new Promise(async (resolve, reject) => {
|
|
157
|
+
try {
|
|
158
|
+
const input = await asyncResult;
|
|
159
|
+
const result = execute(t => transaction(t, input));
|
|
160
|
+
resolve(result);
|
|
161
|
+
}
|
|
162
|
+
catch (error) {
|
|
163
|
+
reject(error);
|
|
164
|
+
}
|
|
165
|
+
});
|
|
172
166
|
}
|
|
173
167
|
else {
|
|
174
|
-
//
|
|
175
|
-
return execute(t => transaction(t,
|
|
168
|
+
// Function returned a synchronous value
|
|
169
|
+
return execute(t => transaction(t, asyncResult));
|
|
176
170
|
}
|
|
177
|
-
}
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
171
|
+
}
|
|
172
|
+
else {
|
|
173
|
+
// Synchronous argument
|
|
174
|
+
return execute(t => transaction(t, args)).value;
|
|
175
|
+
}
|
|
176
|
+
};
|
|
182
177
|
}
|
|
183
178
|
const notifyAllObserversStoreReloaded = () => {
|
|
184
179
|
const notifyResult = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-database.js","sourceRoot":"","sources":["../../../src/ecs/database/create-database.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"create-database.js","sourceRoot":"","sources":["../../../src/ecs/database/create-database.ts"],"names":[],"mappings":"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"}
|
package/dist/functions/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/functions/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;WAoBW;AAEX,cAAc,iBAAiB,CAAC;AAChC,cAAc,0BAA0B,CAAC;AACzC,cAAc,WAAW,CAAC;AAC1B,cAAc,sBAAsB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/functions/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;WAoBW;AAEX,cAAc,iBAAiB,CAAC;AAChC,cAAc,0BAA0B,CAAC;AACzC,cAAc,WAAW,CAAC;AAC1B,cAAc,sBAAsB,CAAC;AACrC,cAAc,kBAAkB,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export type Patch<T> = (T extends readonly any[] ? T : T extends object ? {
|
|
2
|
+
[K in keyof T]?: Patch<T[K]> | null;
|
|
3
|
+
} : T) | null;
|
|
4
|
+
/**
|
|
5
|
+
* Executes a JSON Merge Patch (RFC 7396) on `target` with `patch`.
|
|
6
|
+
* - Objects: recursively merge; `null` deletes a property.
|
|
7
|
+
* - Arrays: replaced wholesale (no element-wise merge).
|
|
8
|
+
* - Primitives: replaced.
|
|
9
|
+
* Does NOT mutate the input objects or arrays.
|
|
10
|
+
*/
|
|
11
|
+
export declare function mergePatch<T>(target: T, patch: Patch<T>): T;
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Executes a JSON Merge Patch (RFC 7396) on `target` with `patch`.
|
|
3
|
+
* - Objects: recursively merge; `null` deletes a property.
|
|
4
|
+
* - Arrays: replaced wholesale (no element-wise merge).
|
|
5
|
+
* - Primitives: replaced.
|
|
6
|
+
* Does NOT mutate the input objects or arrays.
|
|
7
|
+
*/
|
|
8
|
+
export function mergePatch(target, patch) {
|
|
9
|
+
// null always replaces (including deleting properties when nested)
|
|
10
|
+
if (patch === null)
|
|
11
|
+
return patch;
|
|
12
|
+
// Arrays in the patch replace wholesale
|
|
13
|
+
if (Array.isArray(patch))
|
|
14
|
+
return patch;
|
|
15
|
+
// Non-objects (string/number/boolean) replace
|
|
16
|
+
if (typeof patch !== "object")
|
|
17
|
+
return patch;
|
|
18
|
+
// If target isn't a plain object, any object-like patch replaces it
|
|
19
|
+
if (target === null || typeof target !== "object" || Array.isArray(target)) {
|
|
20
|
+
return patch;
|
|
21
|
+
}
|
|
22
|
+
// target & patch are plain objects → merge recursively
|
|
23
|
+
const result = { ...target };
|
|
24
|
+
for (const key of Object.keys(patch)) {
|
|
25
|
+
const value = patch[key];
|
|
26
|
+
if (value === null) {
|
|
27
|
+
// delete per RFC 7396
|
|
28
|
+
delete result[key];
|
|
29
|
+
}
|
|
30
|
+
else {
|
|
31
|
+
// recurse
|
|
32
|
+
result[key] = mergePatch(target[key], value);
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
return result;
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=merge-patch.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"merge-patch.js","sourceRoot":"","sources":["../../src/functions/merge-patch.ts"],"names":[],"mappings":"AAUA;;;;;;GAMG;AACH,MAAM,UAAU,UAAU,CAAI,MAAS,EAAE,KAAe;IACpD,mEAAmE;IACnE,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,KAAU,CAAC;IAEtC,wCAAwC;IACxC,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,KAAU,CAAC;IAE5C,8CAA8C;IAC9C,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAU,CAAC;IAEjD,oEAAoE;IACpE,IAAI,MAAM,KAAK,IAAI,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QACzE,OAAO,KAAU,CAAC;IACtB,CAAC;IAED,uDAAuD;IACvD,MAAM,MAAM,GAA8C,EAAE,GAAI,MAAc,EAAE,CAAC;IAEjF,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAA2B,EAAE,CAAC;QAC7D,MAAM,KAAK,GAAI,KAAa,CAAC,GAAG,CAAC,CAAC;QAElC,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;YACjB,sBAAsB;YACtB,OAAO,MAAM,CAAC,GAAU,CAAC,CAAC;QAC9B,CAAC;aAAM,CAAC;YACJ,UAAU;YACV,MAAM,CAAC,GAAU,CAAC,GAAG,UAAU,CAAE,MAAc,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,CAAC;QACjE,CAAC;IACL,CAAC;IAED,OAAO,MAAW,CAAC;AACvB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
import { describe, expect, it } from "vitest";
|
|
2
|
+
import { mergePatch } from "./merge-patch.js";
|
|
3
|
+
/**
|
|
4
|
+
* RFC 7396 expectations:
|
|
5
|
+
* - null replaces (or deletes when nested in an object)
|
|
6
|
+
* - arrays replace wholesale (no deep merge)
|
|
7
|
+
* - primitives replace
|
|
8
|
+
* - objects merge recursively
|
|
9
|
+
*/
|
|
10
|
+
describe("mergePatch", () => {
|
|
11
|
+
it("replaces top-level with null", () => {
|
|
12
|
+
const target = { a: 1, b: 2 };
|
|
13
|
+
const patch = null;
|
|
14
|
+
const result = mergePatch(target, patch);
|
|
15
|
+
expect(result).toBeNull();
|
|
16
|
+
});
|
|
17
|
+
it("replaces primitives", () => {
|
|
18
|
+
expect(mergePatch(1, 2)).toBe(2);
|
|
19
|
+
expect(mergePatch("a", "b")).toBe("b");
|
|
20
|
+
expect(mergePatch(true, false)).toBe(false);
|
|
21
|
+
});
|
|
22
|
+
it("replaces arrays wholesale", () => {
|
|
23
|
+
const target = { items: [1, 2, 3] };
|
|
24
|
+
const patch = { items: [9] };
|
|
25
|
+
const result = mergePatch(target, patch);
|
|
26
|
+
expect(result).toEqual({ items: [9] });
|
|
27
|
+
});
|
|
28
|
+
it("deletes object members when value is null", () => {
|
|
29
|
+
const target = { a: 1, b: 2 };
|
|
30
|
+
const patch = { b: null };
|
|
31
|
+
const result = mergePatch(target, patch);
|
|
32
|
+
expect(result).toEqual({ a: 1 });
|
|
33
|
+
// ensure non-mutating
|
|
34
|
+
expect(target).toEqual({ a: 1, b: 2 });
|
|
35
|
+
});
|
|
36
|
+
it("recursively merges nested objects", () => {
|
|
37
|
+
const target = { a: { x: 1, y: 2 }, b: 5 };
|
|
38
|
+
const patch = { a: { y: 9 } };
|
|
39
|
+
const result = mergePatch(target, patch);
|
|
40
|
+
expect(result).toEqual({ a: { x: 1, y: 9 }, b: 5 });
|
|
41
|
+
});
|
|
42
|
+
it("replaces non-object targets when patch is object", () => {
|
|
43
|
+
// Using explicit any generic to exercise runtime behavior intentionally outside typing constraints
|
|
44
|
+
expect(mergePatch(1, { a: 1 })).toEqual({ a: 1 });
|
|
45
|
+
expect(mergePatch([1, 2], { a: 1 })).toEqual({ a: 1 });
|
|
46
|
+
expect(mergePatch(null, { a: 1 })).toEqual({ a: 1 });
|
|
47
|
+
});
|
|
48
|
+
it("handles adding new keys", () => {
|
|
49
|
+
const target = { a: 1 };
|
|
50
|
+
const patch = { b: 2 };
|
|
51
|
+
const result = mergePatch(target, patch);
|
|
52
|
+
expect(result).toEqual({ a: 1, b: 2 });
|
|
53
|
+
});
|
|
54
|
+
it("handles nested null to delete deep key", () => {
|
|
55
|
+
const target = { a: { x: 1, y: 2 }, b: 3 };
|
|
56
|
+
const patch = { a: { y: null } };
|
|
57
|
+
const result = mergePatch(target, patch);
|
|
58
|
+
expect(result).toEqual({ a: { x: 1 }, b: 3 });
|
|
59
|
+
});
|
|
60
|
+
it("replaces array value with null to delete property", () => {
|
|
61
|
+
const target = { a: [1, 2, 3], b: 1 };
|
|
62
|
+
const patch = { a: null };
|
|
63
|
+
const result = mergePatch(target, patch);
|
|
64
|
+
expect(result).toEqual({ b: 1 });
|
|
65
|
+
});
|
|
66
|
+
it("replaces scalar with array and vice versa", () => {
|
|
67
|
+
const t1 = { a: 1 };
|
|
68
|
+
const p1 = { a: [1, 2] };
|
|
69
|
+
expect(mergePatch(t1, p1)).toEqual({ a: [1, 2] });
|
|
70
|
+
const t2 = { a: [1, 2] };
|
|
71
|
+
const p2 = { a: 7 };
|
|
72
|
+
expect(mergePatch(t2, p2)).toEqual({ a: 7 });
|
|
73
|
+
});
|
|
74
|
+
it("does not mutate input objects or arrays", () => {
|
|
75
|
+
const target = { a: { x: 1 }, arr: [1, 2] };
|
|
76
|
+
const patch = { a: { y: 2 }, arr: [9] };
|
|
77
|
+
const targetClone = JSON.parse(JSON.stringify(target));
|
|
78
|
+
mergePatch({ ...target, a: { ...target.a }, arr: [...target.arr] }, patch);
|
|
79
|
+
expect(target).toEqual(targetClone);
|
|
80
|
+
});
|
|
81
|
+
it("merging empty object returns structural copy of target (no-op)", () => {
|
|
82
|
+
const target = { a: 1, b: { x: 2 } };
|
|
83
|
+
const patch = {};
|
|
84
|
+
const result = mergePatch(target, patch);
|
|
85
|
+
expect(result).toEqual(target);
|
|
86
|
+
// not the same reference when patching an object
|
|
87
|
+
expect(result).not.toBe(target);
|
|
88
|
+
});
|
|
89
|
+
it("merges when target has undefined keys (treats as normal values)", () => {
|
|
90
|
+
const target = { a: undefined };
|
|
91
|
+
const patch = { a: 1, b: undefined };
|
|
92
|
+
const result = mergePatch(target, patch);
|
|
93
|
+
expect(result).toEqual({ a: 1, b: undefined });
|
|
94
|
+
});
|
|
95
|
+
});
|
|
96
|
+
//# sourceMappingURL=merge-patch.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"merge-patch.test.js","sourceRoot":"","sources":["../../src/functions/merge-patch.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAG9C;;;;;;GAMG;AAEH,QAAQ,CAAC,YAAY,EAAE,GAAG,EAAE;IACxB,EAAE,CAAC,8BAA8B,EAAE,GAAG,EAAE;QAEpC,MAAM,MAAM,GAAM,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;QACjC,MAAM,KAAK,GAAa,IAAI,CAAC;QAC7B,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QACzC,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAC;IAC9B,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qBAAqB,EAAE,GAAG,EAAE;QAC3B,MAAM,CAAC,UAAU,CAAS,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACzC,MAAM,CAAC,UAAU,CAAS,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC/C,MAAM,CAAC,UAAU,CAAU,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACzD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2BAA2B,EAAE,GAAG,EAAE;QAEjC,MAAM,MAAM,GAAM,EAAE,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;QACvC,MAAM,KAAK,GAAa,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACvC,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QACzC,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IAC3C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2CAA2C,EAAE,GAAG,EAAE;QAEjD,MAAM,MAAM,GAAM,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;QACjC,MAAM,KAAK,GAAa,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC;QACpC,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QACzC,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QACjC,sBAAsB;QACtB,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IAC3C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mCAAmC,EAAE,GAAG,EAAE;QAEzC,MAAM,MAAM,GAAM,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;QAC9C,MAAM,KAAK,GAAa,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QACxC,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QACzC,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IACxD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kDAAkD,EAAE,GAAG,EAAE;QACxD,mGAAmG;QACnG,MAAM,CAAC,UAAU,CAAM,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QACvD,MAAM,CAAC,UAAU,CAAM,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QAC5D,MAAM,CAAC,UAAU,CAAM,IAAI,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IAC9D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yBAAyB,EAAE,GAAG,EAAE;QAE/B,MAAM,MAAM,GAAM,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;QAC3B,MAAM,KAAK,GAAa,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;QACjC,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QACzC,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IAC3C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wCAAwC,EAAE,GAAG,EAAE;QAE9C,MAAM,MAAM,GAAM,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;QAC9C,MAAM,KAAK,GAAa,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC;QAC3C,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QACzC,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IAClD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mDAAmD,EAAE,GAAG,EAAE;QAEzD,MAAM,MAAM,GAAM,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;QACzC,MAAM,KAAK,GAAa,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC;QACpC,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QACzC,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IACrC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2CAA2C,EAAE,GAAG,EAAE;QAEjD,MAAM,EAAE,GAAM,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;QACvB,MAAM,EAAE,GAAa,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;QACnC,MAAM,CAAC,UAAU,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;QAElD,MAAM,EAAE,GAAM,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;QAC5B,MAAM,EAAE,GAAa,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;QAC9B,MAAM,CAAC,UAAU,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IACjD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yCAAyC,EAAE,GAAG,EAAE;QAE/C,MAAM,MAAM,GAAM,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;QAC/C,MAAM,KAAK,GAAa,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAClD,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;QACvD,UAAU,CAAC,EAAE,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE,GAAG,MAAM,CAAC,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;QAC3E,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IACxC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gEAAgE,EAAE,GAAG,EAAE;QAEtE,MAAM,MAAM,GAAM,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QACxC,MAAM,KAAK,GAAa,EAAE,CAAC;QAC3B,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QACzC,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAC/B,iDAAiD;QACjD,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACpC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iEAAiE,EAAE,GAAG,EAAE;QAEvE,MAAM,MAAM,GAAM,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC;QACnC,MAAM,KAAK,GAAa,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC;QAC/C,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QACzC,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC;IACnD,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import * as transactions from './transactions/index.js';
|
|
2
2
|
export declare const createTodoDatabase: () => import("../../../../ecs/index.js").Database<{
|
|
3
|
-
order: number;
|
|
4
|
-
name: string;
|
|
5
3
|
todo: true;
|
|
4
|
+
name: string;
|
|
5
|
+
order: number;
|
|
6
6
|
complete: boolean;
|
|
7
7
|
dragPosition: number | null;
|
|
8
8
|
}, {
|
|
9
9
|
displayCompleted: boolean;
|
|
10
10
|
}, {
|
|
11
|
-
Todo: ("
|
|
11
|
+
Todo: ("todo" | "name" | "order" | "complete" | "dragPosition")[];
|
|
12
12
|
}, import("../../../../ecs/index.js").ToTransactionFunctions<typeof transactions>>;
|
|
13
13
|
export type TodoDatabase = ReturnType<typeof createTodoDatabase>;
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
export declare const todoStoreSchemaVersion = 1;
|
|
2
2
|
export declare const createTodoStore: () => import("../../../../ecs/index.js").Store<{
|
|
3
|
-
order: number;
|
|
4
|
-
name: string;
|
|
5
3
|
todo: true;
|
|
4
|
+
name: string;
|
|
5
|
+
order: number;
|
|
6
6
|
complete: boolean;
|
|
7
7
|
dragPosition: number | null;
|
|
8
8
|
}, {
|
|
9
9
|
displayCompleted: boolean;
|
|
10
10
|
}, {
|
|
11
|
-
Todo: ("
|
|
11
|
+
Todo: ("todo" | "name" | "order" | "complete" | "dragPosition")[];
|
|
12
12
|
}>;
|
|
13
13
|
export type TodoStore = ReturnType<typeof createTodoStore>;
|