@verdant-web/common 2.3.1 → 2.3.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.
- package/dist/esm/operation.d.ts +13 -1
- package/dist/esm/operation.js +77 -24
- package/dist/esm/operation.js.map +1 -1
- package/dist/esm/patch.d.ts +1 -0
- package/dist/esm/patch.js +30 -0
- package/dist/esm/patch.js.map +1 -1
- package/dist/esm/schema/validation.d.ts +7 -0
- package/dist/esm/schema/validation.js +66 -0
- package/dist/esm/schema/validation.js.map +1 -1
- package/dist/esm/undo.js +12 -0
- package/dist/esm/undo.js.map +1 -1
- package/package.json +1 -1
- package/src/operation.ts +97 -24
- package/src/patch.ts +34 -0
- package/src/schema/validation.ts +78 -1
- package/src/undo.ts +12 -0
package/dist/esm/operation.d.ts
CHANGED
|
@@ -32,6 +32,11 @@ export interface OperationPatchRemove extends BaseOperationPatch {
|
|
|
32
32
|
op: 'remove';
|
|
33
33
|
name: PropertyName;
|
|
34
34
|
}
|
|
35
|
+
export interface OperationPatchListSet extends BaseOperationPatch {
|
|
36
|
+
op: 'list-set';
|
|
37
|
+
index: number;
|
|
38
|
+
value: PropertyValue;
|
|
39
|
+
}
|
|
35
40
|
export interface OperationPatchListPush extends BaseOperationPatch {
|
|
36
41
|
op: 'list-push';
|
|
37
42
|
value: PropertyValue;
|
|
@@ -87,7 +92,7 @@ export interface OperationPatchDelete extends BaseOperationPatch {
|
|
|
87
92
|
export interface OperationPatchTouch extends BaseOperationPatch {
|
|
88
93
|
op: 'touch';
|
|
89
94
|
}
|
|
90
|
-
export type OperationPatch = OperationPatchInitialize | OperationPatchSet | OperationPatchRemove | OperationPatchListPush | OperationPatchListInsert | OperationPatchListDelete | OperationPatchListMoveByRef | OperationPatchListMoveByIndex | OperationPatchListRemove | OperationPatchDelete | OperationPatchListAdd | OperationPatchTouch;
|
|
95
|
+
export type OperationPatch = OperationPatchInitialize | OperationPatchSet | OperationPatchRemove | OperationPatchListSet | OperationPatchListPush | OperationPatchListInsert | OperationPatchListDelete | OperationPatchListMoveByRef | OperationPatchListMoveByIndex | OperationPatchListRemove | OperationPatchDelete | OperationPatchListAdd | OperationPatchTouch;
|
|
91
96
|
export type Operation = {
|
|
92
97
|
oid: ObjectIdentifier;
|
|
93
98
|
timestamp: string;
|
|
@@ -139,4 +144,11 @@ export declare function substituteRefsWithObjects(base: any, refs: Map<ObjectIde
|
|
|
139
144
|
export declare function substituteFirstLevelObjectsWithRefs<Base extends {
|
|
140
145
|
[key: string]: any;
|
|
141
146
|
} | any[]>(base: Base, refObjects?: Map<ObjectIdentifier, any>): Map<ObjectIdentifier, any>;
|
|
147
|
+
export declare function operationSupersedes(op: Operation): PropertyName | boolean;
|
|
148
|
+
/**
|
|
149
|
+
* Determine if an operation is superseded by a set of supersession values
|
|
150
|
+
* provided by operationSupersedes. Assumes the operation OID matches
|
|
151
|
+
* already.
|
|
152
|
+
*/
|
|
153
|
+
export declare function isSuperseded(op: Operation, supersession: Set<PropertyName | boolean>): boolean;
|
|
142
154
|
export {};
|
package/dist/esm/operation.js
CHANGED
|
@@ -17,20 +17,33 @@ function compareNonDiffable(a, b) {
|
|
|
17
17
|
}
|
|
18
18
|
export function diffToPatches(from, to, getNow, createSubId, patches = [], options = {}) {
|
|
19
19
|
const oid = getOid(from);
|
|
20
|
-
function diffItems(key, value, oldValue) {
|
|
20
|
+
function diffItems(key, value, oldValue, isList) {
|
|
21
21
|
if (!isDiffableObject(value)) {
|
|
22
22
|
// for primitive fields, we can use plain sets and
|
|
23
23
|
// do not need to recurse, of course
|
|
24
24
|
if (!compareNonDiffable(value, oldValue)) {
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
25
|
+
if (isList) {
|
|
26
|
+
patches.push({
|
|
27
|
+
oid,
|
|
28
|
+
timestamp: getNow(),
|
|
29
|
+
data: {
|
|
30
|
+
op: 'list-set',
|
|
31
|
+
index: key,
|
|
32
|
+
value,
|
|
33
|
+
},
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
else {
|
|
37
|
+
patches.push({
|
|
38
|
+
oid,
|
|
39
|
+
timestamp: getNow(),
|
|
40
|
+
data: {
|
|
41
|
+
op: 'set',
|
|
42
|
+
name: key,
|
|
43
|
+
value,
|
|
44
|
+
},
|
|
45
|
+
});
|
|
46
|
+
}
|
|
34
47
|
}
|
|
35
48
|
}
|
|
36
49
|
else {
|
|
@@ -100,7 +113,7 @@ export function diffToPatches(from, to, getNow, createSubId, patches = [], optio
|
|
|
100
113
|
for (let i = 0; i < to.length; i++) {
|
|
101
114
|
const value = to[i];
|
|
102
115
|
const oldValue = from[i];
|
|
103
|
-
diffItems(i, value, oldValue);
|
|
116
|
+
diffItems(i, value, oldValue, true);
|
|
104
117
|
}
|
|
105
118
|
// remove any remaining items at the end of the array
|
|
106
119
|
const deletedItemsAtEnd = from.length - to.length;
|
|
@@ -143,7 +156,7 @@ export function diffToPatches(from, to, getNow, createSubId, patches = [], optio
|
|
|
143
156
|
if (isOidKey(key))
|
|
144
157
|
continue;
|
|
145
158
|
const oldValue = from[key];
|
|
146
|
-
diffItems(key, value, oldValue);
|
|
159
|
+
diffItems(key, value, oldValue, false);
|
|
147
160
|
}
|
|
148
161
|
// this set now only contains keys which were not in the new object
|
|
149
162
|
if (!options.defaultUndefined) {
|
|
@@ -166,20 +179,33 @@ export function diffToPatches(from, to, getNow, createSubId, patches = [], optio
|
|
|
166
179
|
}
|
|
167
180
|
export function shallowDiffToPatches(from, to, getNow, patches = []) {
|
|
168
181
|
const oid = getOid(from);
|
|
169
|
-
function diffItems(key, value, oldValue) {
|
|
182
|
+
function diffItems(key, value, oldValue, isList) {
|
|
170
183
|
if (!isDiffableObject(value)) {
|
|
171
184
|
// for primitive fields, we can use plain sets and
|
|
172
185
|
// do not need to recurse, of course
|
|
173
186
|
if (!compareNonDiffable(value, oldValue)) {
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
187
|
+
if (isList) {
|
|
188
|
+
patches.push({
|
|
189
|
+
oid,
|
|
190
|
+
timestamp: getNow(),
|
|
191
|
+
data: {
|
|
192
|
+
op: 'list-set',
|
|
193
|
+
index: key,
|
|
194
|
+
value,
|
|
195
|
+
},
|
|
196
|
+
});
|
|
197
|
+
}
|
|
198
|
+
else {
|
|
199
|
+
patches.push({
|
|
200
|
+
oid,
|
|
201
|
+
timestamp: getNow(),
|
|
202
|
+
data: {
|
|
203
|
+
op: 'set',
|
|
204
|
+
name: key,
|
|
205
|
+
value,
|
|
206
|
+
},
|
|
207
|
+
});
|
|
208
|
+
}
|
|
183
209
|
}
|
|
184
210
|
}
|
|
185
211
|
else {
|
|
@@ -193,7 +219,7 @@ export function shallowDiffToPatches(from, to, getNow, patches = []) {
|
|
|
193
219
|
for (let i = 0; i < to.length; i++) {
|
|
194
220
|
const value = to[i];
|
|
195
221
|
const oldValue = from[i];
|
|
196
|
-
diffItems(i, value, oldValue);
|
|
222
|
+
diffItems(i, value, oldValue, true);
|
|
197
223
|
}
|
|
198
224
|
// remove any remaining items at the end of the array
|
|
199
225
|
const deletedItemsAtEnd = from.length - to.length;
|
|
@@ -220,7 +246,7 @@ export function shallowDiffToPatches(from, to, getNow, patches = []) {
|
|
|
220
246
|
if (isOidKey(key))
|
|
221
247
|
continue;
|
|
222
248
|
const oldValue = from[key];
|
|
223
|
-
diffItems(key, value, oldValue);
|
|
249
|
+
diffItems(key, value, oldValue, false);
|
|
224
250
|
}
|
|
225
251
|
// this set now only contains keys which were not in the new object
|
|
226
252
|
for (const key of oldKeys) {
|
|
@@ -357,6 +383,12 @@ deletedRefs) {
|
|
|
357
383
|
checkRef(baseAsAny[patch.name]);
|
|
358
384
|
delete baseAsAny[patch.name];
|
|
359
385
|
break;
|
|
386
|
+
case 'list-set':
|
|
387
|
+
if (listCheck(base)) {
|
|
388
|
+
checkRef(base[patch.index]);
|
|
389
|
+
base[patch.index] = patch.value;
|
|
390
|
+
}
|
|
391
|
+
break;
|
|
360
392
|
case 'list-push':
|
|
361
393
|
if (listCheck(base)) {
|
|
362
394
|
base.push(patch.value);
|
|
@@ -531,4 +563,25 @@ export function substituteFirstLevelObjectsWithRefs(base, refObjects = new Map()
|
|
|
531
563
|
}
|
|
532
564
|
return refObjects;
|
|
533
565
|
}
|
|
566
|
+
export function operationSupersedes(op) {
|
|
567
|
+
// todo: add 'remove'
|
|
568
|
+
if (op.data.op === 'set') {
|
|
569
|
+
return op.data.name;
|
|
570
|
+
}
|
|
571
|
+
return false;
|
|
572
|
+
}
|
|
573
|
+
/**
|
|
574
|
+
* Determine if an operation is superseded by a set of supersession values
|
|
575
|
+
* provided by operationSupersedes. Assumes the operation OID matches
|
|
576
|
+
* already.
|
|
577
|
+
*/
|
|
578
|
+
export function isSuperseded(op, supersession) {
|
|
579
|
+
if (supersession.has(true)) {
|
|
580
|
+
return true;
|
|
581
|
+
}
|
|
582
|
+
else if (op.data.op === 'set' || op.data.op === 'remove') {
|
|
583
|
+
return supersession.has(op.data.name);
|
|
584
|
+
}
|
|
585
|
+
return false;
|
|
586
|
+
}
|
|
534
587
|
//# sourceMappingURL=operation.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"operation.js","sourceRoot":"","sources":["../../src/operation.ts"],"names":[],"mappings":"AACA,OAAO,EAAW,SAAS,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EACN,cAAc,EACd,SAAS,EACT,yBAAyB,EACzB,SAAS,EACT,YAAY,EACZ,SAAS,EACT,MAAM,EACN,UAAU,EACV,QAAQ,EACR,WAAW,EACX,SAAS,EAET,SAAS,GACT,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,WAAW,CAAC;AAC/C,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAexE,MAAM,UAAU,WAAW,CAAC,GAAQ;IACnC,OAAO,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,CAAC,QAAQ,CAAC,KAAK,KAAK,CAAC;AAClE,CAAC;AAuHD,SAAS,gBAAgB,CAAC,GAAQ;IACjC,OAAO,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AACrC,CAAC;AAED,SAAS,kBAAkB,CAAC,CAAM,EAAE,CAAM;IACzC,IAAI,CAAC,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACzB,IAAI,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC;QAAE,OAAO,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACnD,OAAO,KAAK,CAAC;AACd,CAAC;AAED,MAAM,UAAU,aAAa,CAC5B,IAAO,EACP,EAAK,EACL,MAAoB,EACpB,WAA0B,EAC1B,UAAuB,EAAE,EACzB,UAWI,EAAE;IAEN,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;IAEzB,SAAS,SAAS,CAAC,GAAoB,EAAE,KAAU,EAAE,QAAa;QACjE,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,EAAE,CAAC;YAC9B,kDAAkD;YAClD,oCAAoC;YACpC,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,QAAQ,CAAC,EAAE,CAAC;gBAC1C,OAAO,CAAC,IAAI,CAAC;oBACZ,GAAG;oBACH,SAAS,EAAE,MAAM,EAAE;oBACnB,IAAI,EAAE;wBACL,EAAE,EAAE,KAAK;wBACT,IAAI,EAAE,GAAG;wBACT,KAAK;qBACL;iBACD,CAAC,CAAC;YACJ,CAAC;QACF,CAAC;aAAM,CAAC;YACP,MAAM,WAAW,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC;YAC1C,IAAI,QAAQ,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;YAClC,iEAAiE;YACjE,2DAA2D;YAC3D,+BAA+B;YAC/B,IAAI,QAAQ,IAAI,CAAC,cAAc,CAAC,GAAG,EAAE,QAAQ,CAAC,EAAE,CAAC;gBAChD,KAAK,GAAG,SAAS,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;gBAChC,QAAQ,GAAG,YAAY,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;gBAC1C,SAAS,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;YAC5B,CAAC;iBAAM,IAAI,CAAC,OAAO,CAAC,mBAAmB,EAAE,CAAC;gBACzC,QAAQ,GAAG,SAAS,CAAC,KAAK,EAAE,GAAG,EAAE,WAAW,CAAC,CAAC;YAC/C,CAAC;iBAAM,CAAC;gBACP,0EAA0E;gBAC1E,qEAAqE;gBACrE,IAAI,CAAC,QAAQ,IAAI,WAAW,EAAE,CAAC;oBAC9B,SAAS,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;oBAC9B,QAAQ,GAAG,WAAW,CAAC;gBACxB,CAAC;qBAAM,CAAC;oBACP,QAAQ,GAAG,SAAS,CAAC,KAAK,EAAE,GAAG,EAAE,WAAW,CAAC,CAAC;gBAC/C,CAAC;YACF,CAAC;YACD,MAAM,CACL,CAAC,CAAC,QAAQ,EACV,yEAAyE,CACzE,CAAC;YACF,MAAM,CACL,cAAc,CAAC,GAAG,EAAE,QAAQ,CAAC,EAC7B,oBAAoB,QAAQ,iCAAiC,GAAG,6BAA6B,CAC7F,CAAC;YAEF,IAAI,QAAQ,KAAK,SAAS,IAAI,QAAQ,KAAK,WAAW,EAAE,CAAC;gBACxD,gEAAgE;gBAChE,0CAA0C;gBAC1C,oEAAoE;gBACpE,+CAA+C;gBAC/C,gBAAgB,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC;gBAChE,OAAO,CAAC,IAAI,CAAC;oBACZ,GAAG;oBACH,SAAS,EAAE,MAAM,EAAE;oBACnB,IAAI,EAAE;wBACL,EAAE,EAAE,KAAK;wBACT,IAAI,EAAE,GAAG;wBACT,KAAK,EAAE,SAAS,CAAC,QAAQ,CAAC;qBAC1B;iBACD,CAAC,CAAC;gBACH,8DAA8D;gBAC9D,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;oBAC/B,OAAO,CAAC,IAAI,CAAC;wBACZ,GAAG,EAAE,WAAW;wBAChB,SAAS,EAAE,MAAM,EAAE;wBACnB,IAAI,EAAE;4BACL,EAAE,EAAE,QAAQ;yBACZ;qBACD,CAAC,CAAC;gBACJ,CAAC;YACF,CAAC;iBAAM,CAAC;gBACP,mEAAmE;gBACnE,+BAA+B;gBAC/B,aAAa,CAAC,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;YACvE,CAAC;QACF,CAAC;IACF,CAAC;IAED,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC;QAC9C,sDAAsD;QACtD,2DAA2D;QAC3D,oDAAoD;QACpD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACpC,MAAM,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;YACpB,MAAM,QAAQ,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;YACzB,SAAS,CAAC,CAAC,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;QAC/B,CAAC;QACD,qDAAqD;QACrD,MAAM,iBAAiB,GAAG,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC;QAClD,IAAI,iBAAiB,GAAG,CAAC,EAAE,CAAC;YAC3B,wDAAwD;YACxD,KAAK,IAAI,CAAC,GAAG,EAAE,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC9C,MAAM,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;gBACtB,MAAM,QAAQ,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;gBACpC,IAAI,QAAQ,EAAE,CAAC;oBACd,OAAO,CAAC,IAAI,CAAC;wBACZ,GAAG,EAAE,QAAQ;wBACb,SAAS,EAAE,MAAM,EAAE;wBACnB,IAAI,EAAE;4BACL,EAAE,EAAE,QAAQ;yBACZ;qBACD,CAAC,CAAC;gBACJ,CAAC;YACF,CAAC;YACD,6CAA6C;YAC7C,OAAO,CAAC,IAAI,CAAC;gBACZ,GAAG;gBACH,SAAS,EAAE,MAAM,EAAE;gBACnB,IAAI,EAAE;oBACL,EAAE,EAAE,aAAa;oBACjB,KAAK,EAAE,EAAE,CAAC,MAAM;oBAChB,KAAK,EAAE,iBAAiB;iBACxB;aACD,CAAC,CAAC;QACJ,CAAC;IACF,CAAC;SAAM,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC;QACrD,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;IACxD,CAAC;SAAM,IAAI,gBAAgB,CAAC,IAAI,CAAC,IAAI,gBAAgB,CAAC,EAAE,CAAC,EAAE,CAAC;QAC3D,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAC3C,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC;YAC/C,IAAI,KAAK,KAAK,SAAS,IAAI,OAAO,CAAC,gBAAgB;gBAAE,SAAS;YAE9D,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAEpB,IAAI,QAAQ,CAAC,GAAG,CAAC;gBAAE,SAAS;YAE5B,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;YAE3B,SAAS,CAAC,GAAG,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;QACjC,CAAC;QAED,mEAAmE;QACnE,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,CAAC;YAC/B,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;gBAC3B,IAAI,QAAQ,CAAC,GAAG,CAAC;oBAAE,SAAS;gBAC5B,mCAAmC;gBACnC,OAAO,CAAC,IAAI,CAAC;oBACZ,GAAG;oBACH,SAAS,EAAE,MAAM,EAAE;oBACnB,IAAI,EAAE;wBACL,EAAE,EAAE,QAAQ;wBACZ,IAAI,EAAE,GAAG;qBACT;iBACD,CAAC,CAAC;YACJ,CAAC;QACF,CAAC;IACF,CAAC;IAED,OAAO,OAAO,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,oBAAoB,CACnC,IAAS,EACT,EAAO,EACP,MAAoB,EACpB,UAAuB,EAAE;IAEzB,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;IAEzB,SAAS,SAAS,CAAC,GAAoB,EAAE,KAAU,EAAE,QAAa;QACjE,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,EAAE,CAAC;YAC9B,kDAAkD;YAClD,oCAAoC;YACpC,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,QAAQ,CAAC,EAAE,CAAC;gBAC1C,OAAO,CAAC,IAAI,CAAC;oBACZ,GAAG;oBACH,SAAS,EAAE,MAAM,EAAE;oBACnB,IAAI,EAAE;wBACL,EAAE,EAAE,KAAK;wBACT,IAAI,EAAE,GAAG;wBACT,KAAK;qBACL;iBACD,CAAC,CAAC;YACJ,CAAC;QACF,CAAC;aAAM,CAAC;YACP,MAAM,IAAI,KAAK,CACd,sEAAsE,CACtE,CAAC;QACH,CAAC;IACF,CAAC;IAED,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC;QAC9C,sDAAsD;QACtD,2DAA2D;QAC3D,oDAAoD;QACpD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACpC,MAAM,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;YACpB,MAAM,QAAQ,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;YACzB,SAAS,CAAC,CAAC,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;QAC/B,CAAC;QACD,qDAAqD;QACrD,MAAM,iBAAiB,GAAG,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC;QAClD,IAAI,iBAAiB,GAAG,CAAC,EAAE,CAAC;YAC3B,6CAA6C;YAC7C,OAAO,CAAC,IAAI,CAAC;gBACZ,GAAG;gBACH,SAAS,EAAE,MAAM,EAAE;gBACnB,IAAI,EAAE;oBACL,EAAE,EAAE,aAAa;oBACjB,KAAK,EAAE,EAAE,CAAC,MAAM;oBAChB,KAAK,EAAE,iBAAiB;iBACxB;aACD,CAAC,CAAC;QACJ,CAAC;IACF,CAAC;SAAM,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC;QACrD,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;IACxD,CAAC;SAAM,IAAI,gBAAgB,CAAC,IAAI,CAAC,IAAI,gBAAgB,CAAC,EAAE,CAAC,EAAE,CAAC;QAC3D,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAC3C,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC;YAC/C,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAEpB,IAAI,QAAQ,CAAC,GAAG,CAAC;gBAAE,SAAS;YAE5B,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;YAE3B,SAAS,CAAC,GAAG,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;QACjC,CAAC;QAED,mEAAmE;QACnE,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;YAC3B,IAAI,QAAQ,CAAC,GAAG,CAAC;gBAAE,SAAS;YAC5B,mCAAmC;YACnC,OAAO,CAAC,IAAI,CAAC;gBACZ,GAAG;gBACH,SAAS,EAAE,MAAM,EAAE;gBACnB,IAAI,EAAE;oBACL,EAAE,EAAE,QAAQ;oBACZ,IAAI,EAAE,GAAG;iBACT;aACD,CAAC,CAAC;QACJ,CAAC;IACF,CAAC;IAED,OAAO,OAAO,CAAC;AAChB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,gBAAgB,CAC/B,OAAY,EACZ,OAAyB,EACzB,MAAoB,EACpB,WAA0B,EAC1B,UAAuB,EAAE;IAEzB,SAAS,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAC5B,yBAAyB,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;IAChD,MAAM,UAAU,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC;IACtC,KAAK,MAAM,GAAG,IAAI,UAAU,CAAC,IAAI,EAAE,EAAE,CAAC;QACrC,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAClC,OAAO,CAAC,IAAI,CAAC;YACZ,GAAG,EAAE,GAAG;YACR,SAAS,EAAE,MAAM,EAAE;YACnB,IAAI,EAAE;gBACL,EAAE,EAAE,YAAY;gBAChB,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC;aACvB;SACD,CAAC,CAAC;IACJ,CAAC;IACD,OAAO,OAAO,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,uBAAuB,CACtC,OAAY,EACZ,OAAyB,EACzB,MAAoB,EACpB,UAAuB,EAAE;IAEzB,OAAO,CAAC,IAAI,CAAC;QACZ,GAAG,EAAE,OAAO;QACZ,SAAS,EAAE,MAAM,EAAE;QACnB,IAAI,EAAE;YACL,EAAE,EAAE,YAAY;YAChB,KAAK,EAAE,OAAO;SACd;KACD,CAAC,CAAC;IACH,OAAO,OAAO,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,OAAoB;IACrD,MAAM,OAAO,GAA0C,EAAE,CAAC;IAC1D,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC7B,IAAI,KAAK,CAAC,GAAG,IAAI,OAAO,EAAE,CAAC;YAC1B,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAChC,CAAC;aAAM,CAAC;YACP,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAC9B,CAAC;IACF,CAAC;IACD,OAAO,OAAO,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,OAAoB;IACzD,MAAM,OAAO,GAA0C,EAAE,CAAC;IAC1D,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC7B,MAAM,IAAI,GAAG,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACnC,IAAI,IAAI,IAAI,OAAO,EAAE,CAAC;YACrB,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC3B,CAAC;aAAM,CAAC;YACP,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACzB,CAAC;IACF,CAAC;IACD,OAAO,OAAO,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,SAA6B;IACpE,MAAM,OAAO,GAAiD,EAAE,CAAC;IACjE,KAAK,MAAM,KAAK,IAAI,SAAS,EAAE,CAAC;QAC/B,MAAM,IAAI,GAAG,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACnC,IAAI,IAAI,IAAI,OAAO,EAAE,CAAC;YACrB,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC3B,CAAC;aAAM,CAAC;YACP,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACzB,CAAC;IACF,CAAC;IACD,OAAO,OAAO,CAAC;AAChB,CAAC;AAQD,SAAS,SAAS,CAAC,GAAQ;IAC1B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QACzB,OAAO,CAAC,KAAK,CACZ,qDAAqD,IAAI,CAAC,SAAS,CAClE,GAAG,CACH,mFAAmF,WAAW,CAC9F,GAAG,CACH,GAAG,CACJ,CAAC;QACF,OAAO,KAAK,CAAC;IACd,CAAC;SAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACb,CAAC;AACF,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,UAAU,CACzB,IAAmB,EACnB,KAAqB;AACrB;;;GAGG;AACH,WAAqC;IAErC,+CAA+C;IAC/C,2CAA2C;IAC3C,IAAI,CAAC,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,IAAI,CAAC,IAAI,KAAK,CAAC,EAAE,KAAK,YAAY,EAAE,CAAC;QACxE,OAAO,IAAI,CAAC;IACb,CAAC;IACD,2BAA2B;IAC3B,MAAM,SAAS,GAAG,IAAW,CAAC;IAC9B,IAAI,KAAK,CAAC;IACV,IAAI,YAAmB,CAAC;IAExB,2CAA2C;IAC3C,kDAAkD;IAClD,kBAAkB;IAClB,SAAS,QAAQ,CAAC,KAAU;QAC3B,+BAA+B;QAC/B,IAAI,CAAC,WAAW;YAAE,OAAO;QACzB,IAAI,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;YAClB,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACzB,CAAC;IACF,CAAC;IAED,QAAQ,KAAK,CAAC,EAAE,EAAE,CAAC;QAClB,KAAK,KAAK;YACT,QAAQ,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;YAChC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC;YACpC,MAAM;QACP,KAAK,QAAQ;YACZ,QAAQ,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;YAChC,OAAO,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAC7B,MAAM;QACP,KAAK,WAAW;YACf,IAAI,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;gBACrB,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YACxB,CAAC;YACD,MAAM;QACP,KAAK,aAAa;YACjB,IAAI,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;gBACrB,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;gBAC5B,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;YACvC,CAAC;YACD,MAAM;QACP,KAAK,oBAAoB;YACxB,IAAI,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;gBACrB,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;gBAC1C,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;YAC3C,CAAC;YACD,MAAM;QACP,KAAK,aAAa;YACjB,IAAI,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;gBACrB,GAAG,CAAC;oBACH,MAAM,aAAa,GAAG,KAAK,CAAC,KAAK,CAAC;oBAClC,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;wBAC3B,IAAI,WAAW,CAAC,aAAa,CAAC,EAAE,CAAC;4BAChC,KAAK,GAAG,aAAa,CACpB,IAAI,EACJ,CAAC,IAAS,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,aAAa,CAAC,EAAE,CAC3C,CAAC;wBACH,CAAC;6BAAM,CAAC;4BACP,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC;wBACzC,CAAC;oBACF,CAAC;yBAAM,CAAC;wBACP,IAAI,WAAW,CAAC,aAAa,CAAC,EAAE,CAAC;4BAChC,KAAK,GAAG,IAAI,CAAC,SAAS,CACrB,CAAC,IAAS,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,aAAa,CAAC,EAAE,CAC3C,CAAC;wBACH,CAAC;6BAAM,CAAC;4BACP,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;wBACrC,CAAC;oBACF,CAAC;oBACD,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE,CAAC;wBAClB,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;wBACtB,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;oBACvB,CAAC;gBACF,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE;YACvC,CAAC;YACD,MAAM;QACP,KAAK,UAAU;YACd,IAAI,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;gBACrB,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,IAAS,EAAE,EAAE;oBAC1C,IAAI,WAAW,CAAC,IAAI,CAAC,IAAI,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;wBACnD,OAAO,IAAI,CAAC,EAAE,KAAK,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;oBACnC,CAAC;yBAAM,CAAC;wBACP,OAAO,IAAI,KAAK,KAAK,CAAC,KAAK,CAAC;oBAC7B,CAAC;gBACF,CAAC,CAAC,CAAC;gBACH,IAAI,CAAC,UAAU,EAAE,CAAC;oBACjB,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;gBACxB,CAAC;YACF,CAAC;YACD,MAAM;QACP,KAAK,kBAAkB;YACtB,IAAI,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;gBACrB,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;gBAC3D,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;gBACrC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;YAC9C,CAAC;YACD,MAAM;QACP,KAAK,aAAa;YACjB,IAAI,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;gBACrB,IAAI,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;oBACnC,MAAM,IAAI,KAAK,CACd,sEAAsE,IAAI,CAAC,SAAS,CACnF,KAAK,CACL,EAAE,CACH,CAAC;gBACH,CAAC;gBACD,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;oBACjB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;gBAC1C,CAAC;qBAAM,CAAC;oBACP,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,EAAE,GAAG,KAAK,CAAC,MAAO,CAAC,CAAC;gBAC/C,CAAC;YACF,CAAC;YACD,MAAM;QACP,KAAK,QAAQ;YACZ,oCAAoC;YACpC,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;gBACzB,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YACxB,CAAC;iBAAM,IAAI,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC3B,MAAM,CAAC,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YAC7C,CAAC;YACD,OAAO,SAAS,CAAC;QAClB,KAAK,YAAY;YAChB,OAAO,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC/B,KAAK,OAAO;YACX,QAAQ;YACR,OAAO,IAAI,CAAC;QACb;YACC,MAAM,IAAI,KAAK,CAAC,gCAAiC,KAAa,CAAC,EAAE,EAAE,CAAC,CAAC;IACvE,CAAC;IACD,OAAO,IAAI,CAAC;AACb,CAAC;AAED,MAAM,UAAU,eAAe,CAC9B,IAAmB,EACnB,UAAuB,EACvB,WAAqC;IAErC,IAAI,GAAG,GAAG,IAAqB,CAAC;IAChC,KAAK,MAAM,EAAE,IAAI,UAAU,EAAE,CAAC;QAC7B,GAAG,GAAG,UAAU,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;IAC7C,CAAC;IACD,OAAO,GAAG,CAAC;AACZ,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,yBAAyB,CACxC,IAAS,EACT,IAAgC,EAChC,OAA2B,EAAE;IAE7B,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QACzB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACtC,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;YACrB,IAAI,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;YACxC,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBACvB,yBAAyB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;YAChD,CAAC;QACF,CAAC;IACF,CAAC;SAAM,IAAI,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;QAC5B,mCAAmC;IACpC,CAAC;SAAM,IAAI,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QAC3B,kEAAkE;QAClE,yCAAyC;QACzC,MAAM,CACL,WAAW,CAAC,IAAI,CAAC,EACjB,UAAU,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,mBAAmB,CACjD,CAAC;QACF,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YACrC,IAAI,CAAC,GAAG,CAAC,GAAG,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;YAE/C,wDAAwD;YACxD,IAAI,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;gBACzB,yBAAyB,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;YAClD,CAAC;QACF,CAAC;IACF,CAAC;IAED,OAAO,IAAI,CAAC;AACb,CAAC;AAED,SAAS,WAAW,CACnB,KAAU,EACV,IAAgC,EAChC,IAAwB;IAExB,IAAI,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC;QACxB,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACpB,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACpC,MAAM,CAAC,CAAC,CAAC,QAAQ,EAAE,wCAAwC,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;QACvE,OAAO,SAAS,CAAC,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC;IACtC,CAAC;SAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACd,CAAC;AACF,CAAC;AAED,MAAM,UAAU,mCAAmC,CAGlD,IAAU,EACV,aAAyC,IAAI,GAAG,EAAE;IAElD,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QACzB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACtC,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;YACrB,IAAI,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;gBACpB,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;gBACzB,IAAI,CAAC,CAAC,CAAC,GAAG;oBACT,QAAQ,EAAE,KAAK;oBACf,EAAE,EAAE,GAAG;iBACP,CAAC;gBACF,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;YAC3B,CAAC;QACF,CAAC;IACF,CAAC;SAAM,CAAC;QACP,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;YACjD,IAAI,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;gBACrB,IAAI,CAAC,GAAG,CAAC,GAAG;oBACX,QAAQ,EAAE,KAAK;oBACf,EAAE,EAAE,MAAM,CAAC,KAAK,CAAC;iBACjB,CAAC;gBAEF,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,CAAC;YACtC,CAAC;QACF,CAAC;IACF,CAAC;IAED,OAAO,UAAU,CAAC;AACnB,CAAC"}
|
|
1
|
+
{"version":3,"file":"operation.js","sourceRoot":"","sources":["../../src/operation.ts"],"names":[],"mappings":"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"}
|
package/dist/esm/patch.d.ts
CHANGED
|
@@ -16,6 +16,7 @@ export declare class PatchCreator {
|
|
|
16
16
|
createInitialize: (obj: any, oid: ObjectIdentifier) => Operation[];
|
|
17
17
|
createSet: (oid: ObjectIdentifier, key: PropertyName, value: any) => Operation[];
|
|
18
18
|
createRemove: (oid: ObjectIdentifier, key: PropertyName) => Operation[];
|
|
19
|
+
createListSet: (oid: ObjectIdentifier, index: number, value: any) => Operation[];
|
|
19
20
|
createListPush: (oid: ObjectIdentifier, value: any) => Operation[];
|
|
20
21
|
createListAdd: (oid: ObjectIdentifier, value: any) => Operation[];
|
|
21
22
|
createListInsert: (oid: ObjectIdentifier, index: number, value: any) => Operation[];
|
package/dist/esm/patch.js
CHANGED
|
@@ -65,6 +65,36 @@ export class PatchCreator {
|
|
|
65
65
|
},
|
|
66
66
|
];
|
|
67
67
|
};
|
|
68
|
+
this.createListSet = (oid, index, value) => {
|
|
69
|
+
if (this.isPrimitive(value)) {
|
|
70
|
+
return [
|
|
71
|
+
{
|
|
72
|
+
oid,
|
|
73
|
+
timestamp: this.getNow(),
|
|
74
|
+
data: {
|
|
75
|
+
op: 'list-set',
|
|
76
|
+
index,
|
|
77
|
+
value,
|
|
78
|
+
},
|
|
79
|
+
},
|
|
80
|
+
];
|
|
81
|
+
}
|
|
82
|
+
else {
|
|
83
|
+
const itemOid = createSubOid(oid, this.createSubId);
|
|
84
|
+
return [
|
|
85
|
+
...initialToPatches(value, itemOid, this.getNow),
|
|
86
|
+
{
|
|
87
|
+
oid,
|
|
88
|
+
timestamp: this.getNow(),
|
|
89
|
+
data: {
|
|
90
|
+
op: 'list-set',
|
|
91
|
+
index,
|
|
92
|
+
value: createRef(itemOid),
|
|
93
|
+
},
|
|
94
|
+
},
|
|
95
|
+
];
|
|
96
|
+
}
|
|
97
|
+
};
|
|
68
98
|
this.createListPush = (oid, value) => {
|
|
69
99
|
if (this.isPrimitive(value)) {
|
|
70
100
|
return [
|
package/dist/esm/patch.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"patch.js","sourceRoot":"","sources":["../../src/patch.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"patch.js","sourceRoot":"","sources":["../../src/patch.ts"],"names":[],"mappings":"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"}
|
|
@@ -12,3 +12,10 @@ export declare function validateEntityField({ field, value, fieldPath, depth, re
|
|
|
12
12
|
depth?: number;
|
|
13
13
|
requireDefaults?: boolean;
|
|
14
14
|
}): EntityValidationProblem | undefined;
|
|
15
|
+
export declare function constrainEntity(schema: StorageFieldsSchema, entity: any): any;
|
|
16
|
+
export declare function constrainEntityField({ field, value, fieldPath, depth, }: {
|
|
17
|
+
field: StorageFieldSchema;
|
|
18
|
+
value: any;
|
|
19
|
+
fieldPath?: (string | number)[];
|
|
20
|
+
depth?: number;
|
|
21
|
+
}): any;
|
|
@@ -150,4 +150,70 @@ function formatField(fieldPath) {
|
|
|
150
150
|
return 'root';
|
|
151
151
|
return fieldPath.join('.');
|
|
152
152
|
}
|
|
153
|
+
export function constrainEntity(schema, entity) {
|
|
154
|
+
const constrained = {};
|
|
155
|
+
for (const [key, value] of Object.entries(entity)) {
|
|
156
|
+
if (!schema[key])
|
|
157
|
+
continue;
|
|
158
|
+
constrained[key] = constrainEntityField({
|
|
159
|
+
field: schema[key],
|
|
160
|
+
value,
|
|
161
|
+
fieldPath: [key],
|
|
162
|
+
});
|
|
163
|
+
}
|
|
164
|
+
return constrained;
|
|
165
|
+
}
|
|
166
|
+
export function constrainEntityField({ field, value, fieldPath = [], depth, }) {
|
|
167
|
+
const validationProblem = validateEntityField({
|
|
168
|
+
field,
|
|
169
|
+
value,
|
|
170
|
+
fieldPath,
|
|
171
|
+
depth,
|
|
172
|
+
requireDefaults: true,
|
|
173
|
+
});
|
|
174
|
+
if (validationProblem) {
|
|
175
|
+
throw new Error(`Validation error: ${validationProblem.message}`);
|
|
176
|
+
}
|
|
177
|
+
if (field.type === 'object') {
|
|
178
|
+
if (!isObject(value))
|
|
179
|
+
return value;
|
|
180
|
+
const constrained = {};
|
|
181
|
+
for (const [key, subField] of Object.entries(field.properties)) {
|
|
182
|
+
constrained[key] = constrainEntityField({
|
|
183
|
+
field: subField,
|
|
184
|
+
value: value[key],
|
|
185
|
+
fieldPath: [...fieldPath, key],
|
|
186
|
+
depth: depth !== undefined ? depth - 1 : undefined,
|
|
187
|
+
});
|
|
188
|
+
}
|
|
189
|
+
return constrained;
|
|
190
|
+
}
|
|
191
|
+
else if (field.type === 'array') {
|
|
192
|
+
if (!Array.isArray(value))
|
|
193
|
+
return value;
|
|
194
|
+
return value.map((item) => constrainEntityField({
|
|
195
|
+
field: field.items,
|
|
196
|
+
value: item,
|
|
197
|
+
fieldPath: [...fieldPath, '[]'],
|
|
198
|
+
depth: depth !== undefined ? depth - 1 : undefined,
|
|
199
|
+
}));
|
|
200
|
+
}
|
|
201
|
+
else if (field.type === 'map') {
|
|
202
|
+
if (!isObject(value))
|
|
203
|
+
return value;
|
|
204
|
+
const constrained = {};
|
|
205
|
+
for (const [key, item] of Object.entries(value)) {
|
|
206
|
+
constrained[key] = constrainEntityField({
|
|
207
|
+
field: field.values,
|
|
208
|
+
value: item,
|
|
209
|
+
fieldPath: [...fieldPath, key],
|
|
210
|
+
depth: depth !== undefined ? depth - 1 : undefined,
|
|
211
|
+
});
|
|
212
|
+
}
|
|
213
|
+
return constrained;
|
|
214
|
+
}
|
|
215
|
+
else {
|
|
216
|
+
return value;
|
|
217
|
+
}
|
|
218
|
+
}
|
|
153
219
|
//# sourceMappingURL=validation.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validation.js","sourceRoot":"","sources":["../../../src/schema/validation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AACrC,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,
|
|
1
|
+
{"version":3,"file":"validation.js","sourceRoot":"","sources":["../../../src/schema/validation.ts"],"names":[],"mappings":"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"}
|
package/dist/esm/undo.js
CHANGED
|
@@ -178,6 +178,18 @@ function getUndoOperation(oid, initial, operation, getNow) {
|
|
|
178
178
|
},
|
|
179
179
|
},
|
|
180
180
|
];
|
|
181
|
+
case 'list-set':
|
|
182
|
+
return [
|
|
183
|
+
{
|
|
184
|
+
oid,
|
|
185
|
+
timestamp: getNow(),
|
|
186
|
+
data: {
|
|
187
|
+
op: 'list-set',
|
|
188
|
+
index: data.index,
|
|
189
|
+
value: initial[data.index],
|
|
190
|
+
},
|
|
191
|
+
},
|
|
192
|
+
];
|
|
181
193
|
case 'initialize':
|
|
182
194
|
return [
|
|
183
195
|
{
|
package/dist/esm/undo.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"undo.js","sourceRoot":"","sources":["../../src/undo.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"undo.js","sourceRoot":"","sources":["../../src/undo.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/src/operation.ts
CHANGED
|
@@ -73,6 +73,11 @@ export interface OperationPatchRemove extends BaseOperationPatch {
|
|
|
73
73
|
op: 'remove';
|
|
74
74
|
name: PropertyName;
|
|
75
75
|
}
|
|
76
|
+
export interface OperationPatchListSet extends BaseOperationPatch {
|
|
77
|
+
op: 'list-set';
|
|
78
|
+
index: number;
|
|
79
|
+
value: PropertyValue;
|
|
80
|
+
}
|
|
76
81
|
export interface OperationPatchListPush extends BaseOperationPatch {
|
|
77
82
|
op: 'list-push';
|
|
78
83
|
value: PropertyValue;
|
|
@@ -136,6 +141,7 @@ export type OperationPatch =
|
|
|
136
141
|
| OperationPatchInitialize
|
|
137
142
|
| OperationPatchSet
|
|
138
143
|
| OperationPatchRemove
|
|
144
|
+
| OperationPatchListSet
|
|
139
145
|
| OperationPatchListPush
|
|
140
146
|
| OperationPatchListInsert
|
|
141
147
|
| OperationPatchListDelete
|
|
@@ -183,20 +189,37 @@ export function diffToPatches<T extends { [key: string]: any } | any[]>(
|
|
|
183
189
|
): Operation[] {
|
|
184
190
|
const oid = getOid(from);
|
|
185
191
|
|
|
186
|
-
function diffItems(
|
|
192
|
+
function diffItems(
|
|
193
|
+
key: string | number,
|
|
194
|
+
value: any,
|
|
195
|
+
oldValue: any,
|
|
196
|
+
isList: boolean,
|
|
197
|
+
) {
|
|
187
198
|
if (!isDiffableObject(value)) {
|
|
188
199
|
// for primitive fields, we can use plain sets and
|
|
189
200
|
// do not need to recurse, of course
|
|
190
201
|
if (!compareNonDiffable(value, oldValue)) {
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
202
|
+
if (isList) {
|
|
203
|
+
patches.push({
|
|
204
|
+
oid,
|
|
205
|
+
timestamp: getNow(),
|
|
206
|
+
data: {
|
|
207
|
+
op: 'list-set',
|
|
208
|
+
index: key as number,
|
|
209
|
+
value,
|
|
210
|
+
},
|
|
211
|
+
});
|
|
212
|
+
} else {
|
|
213
|
+
patches.push({
|
|
214
|
+
oid,
|
|
215
|
+
timestamp: getNow(),
|
|
216
|
+
data: {
|
|
217
|
+
op: 'set',
|
|
218
|
+
name: key,
|
|
219
|
+
value,
|
|
220
|
+
},
|
|
221
|
+
});
|
|
222
|
+
}
|
|
200
223
|
}
|
|
201
224
|
} else {
|
|
202
225
|
const oldValueOid = maybeGetOid(oldValue);
|
|
@@ -269,7 +292,7 @@ export function diffToPatches<T extends { [key: string]: any } | any[]>(
|
|
|
269
292
|
for (let i = 0; i < to.length; i++) {
|
|
270
293
|
const value = to[i];
|
|
271
294
|
const oldValue = from[i];
|
|
272
|
-
diffItems(i, value, oldValue);
|
|
295
|
+
diffItems(i, value, oldValue, true);
|
|
273
296
|
}
|
|
274
297
|
// remove any remaining items at the end of the array
|
|
275
298
|
const deletedItemsAtEnd = from.length - to.length;
|
|
@@ -312,7 +335,7 @@ export function diffToPatches<T extends { [key: string]: any } | any[]>(
|
|
|
312
335
|
|
|
313
336
|
const oldValue = from[key];
|
|
314
337
|
|
|
315
|
-
diffItems(key, value, oldValue);
|
|
338
|
+
diffItems(key, value, oldValue, false);
|
|
316
339
|
}
|
|
317
340
|
|
|
318
341
|
// this set now only contains keys which were not in the new object
|
|
@@ -343,20 +366,37 @@ export function shallowDiffToPatches(
|
|
|
343
366
|
) {
|
|
344
367
|
const oid = getOid(from);
|
|
345
368
|
|
|
346
|
-
function diffItems(
|
|
369
|
+
function diffItems(
|
|
370
|
+
key: string | number,
|
|
371
|
+
value: any,
|
|
372
|
+
oldValue: any,
|
|
373
|
+
isList: boolean,
|
|
374
|
+
) {
|
|
347
375
|
if (!isDiffableObject(value)) {
|
|
348
376
|
// for primitive fields, we can use plain sets and
|
|
349
377
|
// do not need to recurse, of course
|
|
350
378
|
if (!compareNonDiffable(value, oldValue)) {
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
379
|
+
if (isList) {
|
|
380
|
+
patches.push({
|
|
381
|
+
oid,
|
|
382
|
+
timestamp: getNow(),
|
|
383
|
+
data: {
|
|
384
|
+
op: 'list-set',
|
|
385
|
+
index: key as number,
|
|
386
|
+
value,
|
|
387
|
+
},
|
|
388
|
+
});
|
|
389
|
+
} else {
|
|
390
|
+
patches.push({
|
|
391
|
+
oid,
|
|
392
|
+
timestamp: getNow(),
|
|
393
|
+
data: {
|
|
394
|
+
op: 'set',
|
|
395
|
+
name: key,
|
|
396
|
+
value,
|
|
397
|
+
},
|
|
398
|
+
});
|
|
399
|
+
}
|
|
360
400
|
}
|
|
361
401
|
} else {
|
|
362
402
|
throw new Error(
|
|
@@ -372,7 +412,7 @@ export function shallowDiffToPatches(
|
|
|
372
412
|
for (let i = 0; i < to.length; i++) {
|
|
373
413
|
const value = to[i];
|
|
374
414
|
const oldValue = from[i];
|
|
375
|
-
diffItems(i, value, oldValue);
|
|
415
|
+
diffItems(i, value, oldValue, true);
|
|
376
416
|
}
|
|
377
417
|
// remove any remaining items at the end of the array
|
|
378
418
|
const deletedItemsAtEnd = from.length - to.length;
|
|
@@ -399,7 +439,7 @@ export function shallowDiffToPatches(
|
|
|
399
439
|
|
|
400
440
|
const oldValue = from[key];
|
|
401
441
|
|
|
402
|
-
diffItems(key, value, oldValue);
|
|
442
|
+
diffItems(key, value, oldValue, false);
|
|
403
443
|
}
|
|
404
444
|
|
|
405
445
|
// this set now only contains keys which were not in the new object
|
|
@@ -567,6 +607,12 @@ export function applyPatch<T extends NormalizedObject>(
|
|
|
567
607
|
checkRef(baseAsAny[patch.name]);
|
|
568
608
|
delete baseAsAny[patch.name];
|
|
569
609
|
break;
|
|
610
|
+
case 'list-set':
|
|
611
|
+
if (listCheck(base)) {
|
|
612
|
+
checkRef(base[patch.index]);
|
|
613
|
+
base[patch.index] = patch.value;
|
|
614
|
+
}
|
|
615
|
+
break;
|
|
570
616
|
case 'list-push':
|
|
571
617
|
if (listCheck(base)) {
|
|
572
618
|
base.push(patch.value);
|
|
@@ -768,3 +814,30 @@ export function substituteFirstLevelObjectsWithRefs<
|
|
|
768
814
|
|
|
769
815
|
return refObjects;
|
|
770
816
|
}
|
|
817
|
+
|
|
818
|
+
export function operationSupersedes(op: Operation): PropertyName | boolean {
|
|
819
|
+
// todo: add 'remove'
|
|
820
|
+
if (op.data.op === 'set') {
|
|
821
|
+
return op.data.name;
|
|
822
|
+
}
|
|
823
|
+
|
|
824
|
+
return false;
|
|
825
|
+
}
|
|
826
|
+
|
|
827
|
+
/**
|
|
828
|
+
* Determine if an operation is superseded by a set of supersession values
|
|
829
|
+
* provided by operationSupersedes. Assumes the operation OID matches
|
|
830
|
+
* already.
|
|
831
|
+
*/
|
|
832
|
+
export function isSuperseded(
|
|
833
|
+
op: Operation,
|
|
834
|
+
supersession: Set<PropertyName | boolean>,
|
|
835
|
+
) {
|
|
836
|
+
if (supersession.has(true)) {
|
|
837
|
+
return true;
|
|
838
|
+
} else if (op.data.op === 'set' || op.data.op === 'remove') {
|
|
839
|
+
return supersession.has(op.data.name);
|
|
840
|
+
}
|
|
841
|
+
|
|
842
|
+
return false;
|
|
843
|
+
}
|
package/src/patch.ts
CHANGED
|
@@ -88,6 +88,40 @@ export class PatchCreator {
|
|
|
88
88
|
];
|
|
89
89
|
};
|
|
90
90
|
|
|
91
|
+
createListSet = (
|
|
92
|
+
oid: ObjectIdentifier,
|
|
93
|
+
index: number,
|
|
94
|
+
value: any,
|
|
95
|
+
): Operation[] => {
|
|
96
|
+
if (this.isPrimitive(value)) {
|
|
97
|
+
return [
|
|
98
|
+
{
|
|
99
|
+
oid,
|
|
100
|
+
timestamp: this.getNow(),
|
|
101
|
+
data: {
|
|
102
|
+
op: 'list-set',
|
|
103
|
+
index,
|
|
104
|
+
value,
|
|
105
|
+
},
|
|
106
|
+
},
|
|
107
|
+
];
|
|
108
|
+
} else {
|
|
109
|
+
const itemOid = createSubOid(oid, this.createSubId);
|
|
110
|
+
return [
|
|
111
|
+
...initialToPatches(value, itemOid, this.getNow),
|
|
112
|
+
{
|
|
113
|
+
oid,
|
|
114
|
+
timestamp: this.getNow(),
|
|
115
|
+
data: {
|
|
116
|
+
op: 'list-set',
|
|
117
|
+
index,
|
|
118
|
+
value: createRef(itemOid),
|
|
119
|
+
},
|
|
120
|
+
},
|
|
121
|
+
];
|
|
122
|
+
}
|
|
123
|
+
};
|
|
124
|
+
|
|
91
125
|
createListPush = (oid: ObjectIdentifier, value: any): Operation[] => {
|
|
92
126
|
if (this.isPrimitive(value)) {
|
|
93
127
|
return [
|
package/src/schema/validation.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { OID_KEY } from '../oids.js';
|
|
2
2
|
import { isObject } from '../utils.js';
|
|
3
|
-
import { hasDefault, isNullable } from './fields.js';
|
|
3
|
+
import { getFieldDefault, hasDefault, isNullable } from './fields.js';
|
|
4
4
|
import { StorageFieldSchema, StorageFieldsSchema } from './types.js';
|
|
5
5
|
|
|
6
6
|
export function validateEntity(
|
|
@@ -187,3 +187,80 @@ function formatField(fieldPath: (string | number)[]) {
|
|
|
187
187
|
if (fieldPath.length === 0) return 'root';
|
|
188
188
|
return fieldPath.join('.');
|
|
189
189
|
}
|
|
190
|
+
|
|
191
|
+
export function constrainEntity(schema: StorageFieldsSchema, entity: any): any {
|
|
192
|
+
const constrained: any = {};
|
|
193
|
+
for (const [key, value] of Object.entries(entity)) {
|
|
194
|
+
if (!schema[key]) continue;
|
|
195
|
+
constrained[key] = constrainEntityField({
|
|
196
|
+
field: schema[key],
|
|
197
|
+
value,
|
|
198
|
+
fieldPath: [key],
|
|
199
|
+
});
|
|
200
|
+
}
|
|
201
|
+
return constrained;
|
|
202
|
+
}
|
|
203
|
+
|
|
204
|
+
export function constrainEntityField({
|
|
205
|
+
field,
|
|
206
|
+
value,
|
|
207
|
+
fieldPath = [],
|
|
208
|
+
depth,
|
|
209
|
+
}: {
|
|
210
|
+
field: StorageFieldSchema;
|
|
211
|
+
value: any;
|
|
212
|
+
fieldPath?: (string | number)[];
|
|
213
|
+
depth?: number;
|
|
214
|
+
}): any {
|
|
215
|
+
const validationProblem = validateEntityField({
|
|
216
|
+
field,
|
|
217
|
+
value,
|
|
218
|
+
fieldPath,
|
|
219
|
+
depth,
|
|
220
|
+
requireDefaults: true,
|
|
221
|
+
});
|
|
222
|
+
|
|
223
|
+
if (validationProblem) {
|
|
224
|
+
throw new Error(`Validation error: ${validationProblem.message}`);
|
|
225
|
+
}
|
|
226
|
+
|
|
227
|
+
if (field.type === 'object') {
|
|
228
|
+
if (!isObject(value)) return value;
|
|
229
|
+
const constrained: any = {};
|
|
230
|
+
for (const [key, subField] of Object.entries(
|
|
231
|
+
field.properties as StorageFieldsSchema,
|
|
232
|
+
)) {
|
|
233
|
+
constrained[key] = constrainEntityField({
|
|
234
|
+
field: subField,
|
|
235
|
+
value: value[key],
|
|
236
|
+
fieldPath: [...fieldPath, key],
|
|
237
|
+
depth: depth !== undefined ? depth - 1 : undefined,
|
|
238
|
+
});
|
|
239
|
+
}
|
|
240
|
+
return constrained;
|
|
241
|
+
} else if (field.type === 'array') {
|
|
242
|
+
if (!Array.isArray(value)) return value;
|
|
243
|
+
return value.map((item) =>
|
|
244
|
+
constrainEntityField({
|
|
245
|
+
field: field.items,
|
|
246
|
+
value: item,
|
|
247
|
+
fieldPath: [...fieldPath, '[]'],
|
|
248
|
+
depth: depth !== undefined ? depth - 1 : undefined,
|
|
249
|
+
}),
|
|
250
|
+
);
|
|
251
|
+
} else if (field.type === 'map') {
|
|
252
|
+
if (!isObject(value)) return value;
|
|
253
|
+
const constrained: any = {};
|
|
254
|
+
for (const [key, item] of Object.entries(value)) {
|
|
255
|
+
constrained[key] = constrainEntityField({
|
|
256
|
+
field: field.values,
|
|
257
|
+
value: item,
|
|
258
|
+
fieldPath: [...fieldPath, key],
|
|
259
|
+
depth: depth !== undefined ? depth - 1 : undefined,
|
|
260
|
+
});
|
|
261
|
+
}
|
|
262
|
+
return constrained;
|
|
263
|
+
} else {
|
|
264
|
+
return value;
|
|
265
|
+
}
|
|
266
|
+
}
|
package/src/undo.ts
CHANGED
|
@@ -189,6 +189,18 @@ function getUndoOperation(
|
|
|
189
189
|
},
|
|
190
190
|
},
|
|
191
191
|
];
|
|
192
|
+
case 'list-set':
|
|
193
|
+
return [
|
|
194
|
+
{
|
|
195
|
+
oid,
|
|
196
|
+
timestamp: getNow(),
|
|
197
|
+
data: {
|
|
198
|
+
op: 'list-set',
|
|
199
|
+
index: data.index,
|
|
200
|
+
value: initial[data.index],
|
|
201
|
+
},
|
|
202
|
+
},
|
|
203
|
+
];
|
|
192
204
|
case 'initialize':
|
|
193
205
|
return [
|
|
194
206
|
{
|