@verdant-web/common 1.12.0 → 1.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.
Files changed (62) hide show
  1. package/dist/cjs/migration.d.ts +7 -0
  2. package/dist/cjs/migration.js +46 -6
  3. package/dist/cjs/migration.js.map +1 -1
  4. package/dist/cjs/oids.d.ts +2 -0
  5. package/dist/cjs/oids.js +29 -3
  6. package/dist/cjs/oids.js.map +1 -1
  7. package/dist/cjs/operation.js +12 -3
  8. package/dist/cjs/operation.js.map +1 -1
  9. package/dist/cjs/operation.test.js +151 -1
  10. package/dist/cjs/operation.test.js.map +1 -1
  11. package/dist/cjs/schema/defaults.test.js +3 -3
  12. package/dist/cjs/schema/defaults.test.js.map +1 -1
  13. package/dist/cjs/schema/{defaults.d.ts → fields.d.ts} +3 -0
  14. package/dist/cjs/schema/{defaults.js → fields.js} +48 -3
  15. package/dist/cjs/schema/fields.js.map +1 -0
  16. package/dist/cjs/schema/index.d.ts +1 -1
  17. package/dist/cjs/schema/index.js +1 -1
  18. package/dist/cjs/schema/index.js.map +1 -1
  19. package/dist/cjs/schema/validation.d.ts +3 -0
  20. package/dist/cjs/schema/validation.js +87 -0
  21. package/dist/cjs/schema/validation.js.map +1 -0
  22. package/dist/cjs/utils.d.ts +5 -1
  23. package/dist/cjs/utils.js +9 -5
  24. package/dist/cjs/utils.js.map +1 -1
  25. package/dist/esm/migration.d.ts +7 -0
  26. package/dist/esm/migration.js +47 -7
  27. package/dist/esm/migration.js.map +1 -1
  28. package/dist/esm/oids.d.ts +2 -0
  29. package/dist/esm/oids.js +26 -2
  30. package/dist/esm/oids.js.map +1 -1
  31. package/dist/esm/operation.js +13 -4
  32. package/dist/esm/operation.js.map +1 -1
  33. package/dist/esm/operation.test.js +151 -1
  34. package/dist/esm/operation.test.js.map +1 -1
  35. package/dist/esm/schema/defaults.test.js +1 -1
  36. package/dist/esm/schema/defaults.test.js.map +1 -1
  37. package/dist/esm/schema/{defaults.d.ts → fields.d.ts} +3 -0
  38. package/dist/esm/schema/{defaults.js → fields.js} +44 -2
  39. package/dist/esm/schema/fields.js.map +1 -0
  40. package/dist/esm/schema/index.d.ts +1 -1
  41. package/dist/esm/schema/index.js +1 -1
  42. package/dist/esm/schema/index.js.map +1 -1
  43. package/dist/esm/schema/validation.d.ts +3 -0
  44. package/dist/esm/schema/validation.js +82 -0
  45. package/dist/esm/schema/validation.js.map +1 -0
  46. package/dist/esm/utils.d.ts +5 -1
  47. package/dist/esm/utils.js +9 -5
  48. package/dist/esm/utils.js.map +1 -1
  49. package/dist/tsconfig-cjs.tsbuildinfo +1 -1
  50. package/dist/tsconfig.tsbuildinfo +1 -1
  51. package/package.json +1 -1
  52. package/src/migration.ts +74 -15
  53. package/src/oids.ts +30 -2
  54. package/src/operation.test.ts +157 -1
  55. package/src/operation.ts +19 -3
  56. package/src/schema/defaults.test.ts +1 -1
  57. package/src/schema/{defaults.ts → fields.ts} +55 -1
  58. package/src/schema/index.ts +1 -1
  59. package/src/schema/validation.ts +99 -0
  60. package/src/utils.ts +9 -5
  61. package/dist/cjs/schema/defaults.js.map +0 -1
  62. package/dist/esm/schema/defaults.js.map +0 -1
@@ -40,6 +40,12 @@ declare type MigrationMutations<New extends StorageSchema> = {
40
40
  export interface MigrationTools<Old extends StorageSchema<any>, New extends StorageSchema<any>> {
41
41
  migrate: MigrationRunner<Old, New>;
42
42
  identity: <T>(val: T) => T;
43
+ /**
44
+ * @deprecated - default field values are automatically
45
+ * applied during migration, you don't need to use this.
46
+ * Please remove it from your migrations - even old ones
47
+ * (old migrations can be updated!)
48
+ */
43
49
  withDefaults: (collectionName: string, value: any) => any;
44
50
  queries: MigrationQueries<Old>;
45
51
  mutations: MigrationMutations<New>;
@@ -57,6 +63,7 @@ export interface MigrationEngine<Old extends StorageSchema, New extends StorageS
57
63
  newOids: string[];
58
64
  /** Promises that should be resolved before completing the migration */
59
65
  awaitables: Promise<any>[];
66
+ log: (...messages: any[]) => void;
60
67
  }
61
68
  declare type MigrationProcedure<Old extends StorageSchema, New extends StorageSchema> = (tools: MigrationTools<Old, New>) => Promise<void>;
62
69
  declare type EmptySchema = {
@@ -23,6 +23,20 @@ function migrate(oldSchemaOrNewSchema, newSchemaOrProcedure, procedureIfTwoSchem
23
23
  (0, index_js_1.stableStringify)(newSchema.collections[key]));
24
24
  const removedCollections = Object.keys(oldSchema.collections).filter((key) => !newSchema.collections[key]);
25
25
  const addedCollections = Object.keys(newSchema.collections).filter((key) => !oldSchema.collections[key]);
26
+ // collections which added one or more field defaults
27
+ const autoMigratedCollections = new Set();
28
+ for (const collection of changedCollections) {
29
+ const oldFields = oldSchema.collections[collection].fields;
30
+ const newFields = newSchema.collections[collection].fields;
31
+ // a new default was added - we can auto-migrate it
32
+ if (Object.keys(newFields).some((key) => { var _a, _b; return !((_a = oldFields[key]) === null || _a === void 0 ? void 0 : _a.default) && ((_b = newFields[key]) === null || _b === void 0 ? void 0 : _b.default); })) {
33
+ autoMigratedCollections.add(collection);
34
+ }
35
+ // a field was removed - we can auto-migrate it
36
+ if (Object.keys(oldFields).some((key) => !newFields[key])) {
37
+ autoMigratedCollections.add(collection);
38
+ }
39
+ }
26
40
  const addedIndexes = {};
27
41
  const removedIndexes = {};
28
42
  for (const changed of [...changedCollections, ...addedCollections]) {
@@ -37,20 +51,38 @@ function migrate(oldSchemaOrNewSchema, newSchemaOrProcedure, procedureIfTwoSchem
37
51
  removedIndexes[changed] = removed;
38
52
  }
39
53
  }
54
+ const withDefaults = (collectionName, val) => {
55
+ return (0, index_js_1.addFieldDefaults)(newSchema.collections[collectionName], val);
56
+ };
57
+ const autoMigration = (collectionName) => (val) => {
58
+ const collection = newSchema.collections[collectionName];
59
+ return (0, index_js_1.addFieldDefaults)(collection, (0, index_js_1.removeExtraProperties)(collection, val));
60
+ };
40
61
  return {
41
62
  version: newSchema.version,
42
63
  migrate: async (engine) => {
43
64
  const migratedCollections = [];
44
65
  await procedure({
45
66
  migrate: async (collection, strategy) => {
67
+ const auto = autoMigration(collection);
68
+ const wrapped = async (val) => {
69
+ const baseValue = await strategy(val);
70
+ // assign OID from original value in case user's strategy
71
+ // involves cloning
72
+ (0, index_js_1.assignOid)(baseValue, (0, index_js_1.getOid)(val));
73
+ const result = auto(baseValue);
74
+ return result;
75
+ };
46
76
  // @ts-ignore
47
- await engine.migrate(collection, strategy);
77
+ await engine.migrate(collection, wrapped);
48
78
  migratedCollections.push(collection);
79
+ // since the user migrated this one and we wrap their
80
+ // strategy with auto-migration, we can remove it from
81
+ // the auto-migration list
82
+ autoMigratedCollections.delete(collection);
49
83
  },
50
84
  identity: (val) => val,
51
- withDefaults: (collectionName, val) => {
52
- return (0, index_js_1.addFieldDefaults)(newSchema.collections[collectionName], val);
53
- },
85
+ withDefaults,
54
86
  info: {
55
87
  changedCollections,
56
88
  addedCollections,
@@ -59,8 +91,16 @@ function migrate(oldSchemaOrNewSchema, newSchemaOrProcedure, procedureIfTwoSchem
59
91
  queries: engine.queries,
60
92
  mutations: engine.mutations,
61
93
  });
94
+ // mandatory migration of fields which had defaults added or
95
+ // fields removed but weren't migrated by the user
96
+ engine.log('debug', 'auto-migrating collections with new defaults', autoMigratedCollections);
97
+ for (const name of autoMigratedCollections) {
98
+ await engine.migrate(name, autoMigration(name));
99
+ migratedCollections.push(name);
100
+ }
62
101
  const unmigrated = changedCollections.filter((collection) => !migratedCollections.includes(collection));
63
102
  if (unmigrated.length > 0) {
103
+ // TODO: does this deserve a full-on error?
64
104
  console.error('Unmigrated changed collections:', unmigrated);
65
105
  }
66
106
  },
@@ -115,12 +155,12 @@ function createDefaultMigration(schema, newSchema) {
115
155
  version: 0,
116
156
  collections: {},
117
157
  };
118
- return migrate(oldSchema, newSchema || schema, async ({ migrate, withDefaults, info }) => {
158
+ return migrate(oldSchema, newSchema || schema, async ({ migrate, info }) => {
119
159
  if ((newSchema || schema).version === 1)
120
160
  return;
121
161
  for (const collection of info.changedCollections) {
122
162
  // @ts-ignore indefinite type resolution
123
- await migrate(collection, (old) => withDefaults(collection, old));
163
+ await migrate(collection, (old) => old);
124
164
  }
125
165
  });
126
166
  }
@@ -1 +1 @@
1
- {"version":3,"file":"migration.js","sourceRoot":"","sources":["../../src/migration.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"migration.js","sourceRoot":"","sources":["../../src/migration.ts"],"names":[],"mappings":"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"}
@@ -41,6 +41,7 @@ export declare function isOidKey(key: string): boolean;
41
41
  * is already assigned.
42
42
  */
43
43
  export declare function ensureOid(obj: any, rootOid: ObjectIdentifier, createSubId?: () => string): string;
44
+ export declare function ensureCompatibleOid(obj: any, rootOid: ObjectIdentifier, createSubId?: () => string): string;
44
45
  export declare function createOid(collection: string, documentId: string, subId?: string): string;
45
46
  export declare function createSubOid(root: ObjectIdentifier, createSubId?: () => string): string;
46
47
  export declare function decomposeOid(oid: ObjectIdentifier): {
@@ -83,3 +84,4 @@ export declare function getOidRoot(oid: ObjectIdentifier): string;
83
84
  */
84
85
  export declare function getOidRange(oid: ObjectIdentifier): string[];
85
86
  export declare function getRoots(oids: ObjectIdentifier[]): string[];
87
+ export declare function areOidsRelated(oidA: ObjectIdentifier, oidB: ObjectIdentifier): boolean;
package/dist/cjs/oids.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getRoots = exports.getOidRange = exports.getOidRoot = exports.normalizeFirstLevel = exports.normalize = exports.createRef = exports.createOidSubId = exports.removeOidsFromAllSubObjects = exports.removeOidPropertiesFromAllSubObjects = exports.assignOidPropertiesToAllSubObjects = exports.maybeGetOidProperty = exports.assignOidProperty = exports.assignOidsToAllSubObjects = exports.assertAllLevelsHaveOids = exports.decomposeOid = exports.createSubOid = exports.createOid = exports.ensureOid = exports.isOidKey = exports.removeOid = exports.hasOid = exports.assignOid = exports.maybeGetOid = exports.getOid = exports.OID_KEY = exports.LEGACY_OID_KEY = void 0;
3
+ exports.areOidsRelated = exports.getRoots = exports.getOidRange = exports.getOidRoot = exports.normalizeFirstLevel = exports.normalize = exports.createRef = exports.createOidSubId = exports.removeOidsFromAllSubObjects = exports.removeOidPropertiesFromAllSubObjects = exports.assignOidPropertiesToAllSubObjects = exports.maybeGetOidProperty = exports.assignOidProperty = exports.assignOidsToAllSubObjects = exports.assertAllLevelsHaveOids = exports.decomposeOid = exports.createSubOid = exports.createOid = exports.ensureCompatibleOid = exports.ensureOid = exports.isOidKey = exports.removeOid = exports.hasOid = exports.assignOid = exports.maybeGetOid = exports.getOid = exports.OID_KEY = exports.LEGACY_OID_KEY = void 0;
4
4
  const uuid_1 = require("uuid");
5
5
  const files_js_1 = require("./files.js");
6
6
  const operation_js_1 = require("./operation.js");
@@ -31,6 +31,9 @@ function maybeGetOid(obj) {
31
31
  exports.maybeGetOid = maybeGetOid;
32
32
  function assignOid(obj, oid) {
33
33
  (0, utils_js_1.assert)((0, utils_js_1.isObject)(obj), `Only objects can be assigned OIDs, received ${JSON.stringify(obj)}`);
34
+ if (hasOid(obj)) {
35
+ removeOid(obj);
36
+ }
34
37
  oidMap.set(obj, oid);
35
38
  return obj;
36
39
  }
@@ -63,6 +66,25 @@ function ensureOid(obj, rootOid, createSubId) {
63
66
  }
64
67
  }
65
68
  exports.ensureOid = ensureOid;
69
+ function ensureCompatibleOid(obj, rootOid, createSubId) {
70
+ if (!hasOid(obj)) {
71
+ const oid = createSubOid(rootOid, createSubId);
72
+ assignOid(obj, oid);
73
+ return oid;
74
+ }
75
+ else {
76
+ const existingOid = getOid(obj);
77
+ if (!areOidsRelated(existingOid, rootOid)) {
78
+ const oid = createSubOid(rootOid, createSubId);
79
+ assignOid(obj, oid);
80
+ return oid;
81
+ }
82
+ else {
83
+ return getOid(obj);
84
+ }
85
+ }
86
+ }
87
+ exports.ensureCompatibleOid = ensureCompatibleOid;
66
88
  const SANTIIZE_PLACEHOLDERS = {
67
89
  '.': '&dot;',
68
90
  '/': '&slash;',
@@ -128,7 +150,7 @@ function assignOidsToAllSubObjects(obj, createSubId) {
128
150
  for (let i = 0; i < obj.length; i++) {
129
151
  item = obj[i];
130
152
  if ((0, utils_js_1.isObject)(item) && !(0, refs_js_1.isRef)(item)) {
131
- ensureOid(item, rootOid, createSubId);
153
+ ensureCompatibleOid(item, rootOid, createSubId);
132
154
  assignOidsToAllSubObjects(item, createSubId);
133
155
  }
134
156
  }
@@ -136,7 +158,7 @@ function assignOidsToAllSubObjects(obj, createSubId) {
136
158
  else if ((0, utils_js_1.isObject)(obj) && !(0, refs_js_1.isRef)(obj)) {
137
159
  for (const key of Object.keys(obj)) {
138
160
  if ((0, utils_js_1.isObject)(obj[key]) && !(0, refs_js_1.isRef)(obj[key])) {
139
- ensureOid(obj[key], rootOid, createSubId);
161
+ ensureCompatibleOid(obj[key], rootOid, createSubId);
140
162
  assignOidsToAllSubObjects(obj[key], createSubId);
141
163
  }
142
164
  }
@@ -361,4 +383,8 @@ function getRoots(oids) {
361
383
  return Array.from(set);
362
384
  }
363
385
  exports.getRoots = getRoots;
386
+ function areOidsRelated(oidA, oidB) {
387
+ return getOidRoot(oidA) === getOidRoot(oidB);
388
+ }
389
+ exports.areOidsRelated = areOidsRelated;
364
390
  //# sourceMappingURL=oids.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"oids.js","sourceRoot":"","sources":["../../src/oids.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"oids.js","sourceRoot":"","sources":["../../src/oids.ts"],"names":[],"mappings":"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"}
@@ -38,14 +38,21 @@ function diffToPatches(from, to, getNow, createSubId, patches = [], options = {}
38
38
  }
39
39
  else {
40
40
  const oldValueOid = (0, oids_js_1.maybeGetOid)(oldValue);
41
- let valueOid;
42
- if (!options.mergeUnknownObjects) {
41
+ let valueOid = (0, oids_js_1.maybeGetOid)(value);
42
+ // the user supplied an object which was already assigned an OID,
43
+ // but that OID is from a separate entity: this object must
44
+ // be cloned to a new identity.
45
+ if (valueOid && !(0, oids_js_1.areOidsRelated)(oid, valueOid)) {
46
+ value = (0, utils_js_1.cloneDeep)(value, false);
47
+ valueOid = (0, oids_js_1.createSubOid)(oid, createSubId);
48
+ (0, oids_js_1.assignOid)(value, valueOid);
49
+ }
50
+ else if (!options.mergeUnknownObjects) {
43
51
  valueOid = (0, oids_js_1.ensureOid)(value, oid, createSubId);
44
52
  }
45
53
  else {
46
54
  // if merge unknown objects is requested, we copy the previous value's oid
47
55
  // to any mirrored new value if it doesn't have one assigned already.
48
- valueOid = (0, oids_js_1.maybeGetOid)(value);
49
56
  if (!valueOid && oldValueOid) {
50
57
  (0, oids_js_1.assignOid)(value, oldValueOid);
51
58
  valueOid = oldValueOid;
@@ -54,6 +61,8 @@ function diffToPatches(from, to, getNow, createSubId, patches = [], options = {}
54
61
  valueOid = (0, oids_js_1.ensureOid)(value, oid, createSubId);
55
62
  }
56
63
  }
64
+ (0, utils_js_1.assert)(!!valueOid, 'Error: no value OID was resolved during diff. This is a bug in Verdant.');
65
+ (0, utils_js_1.assert)((0, oids_js_1.areOidsRelated)(oid, valueOid), `Error: value OID ${valueOid} is not related to parent OID ${oid}. This is a bug in Verdant.`);
57
66
  if (oldValue === undefined || valueOid !== oldValueOid) {
58
67
  // first case: previous value exists but the OIDs are different,
59
68
  // meaning the object identity has changed
@@ -1 +1 @@
1
- {"version":3,"file":"operation.js","sourceRoot":"","sources":["../../src/operation.ts"],"names":[],"mappings":";;;AAEA,uCAYmB;AACnB,uCAA+C;AAC/C,yCAAwE;AAexE,SAAgB,WAAW,CAAC,GAAQ;IACnC,OAAO,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,CAAC,QAAQ,CAAC,KAAK,KAAK,CAAC;AAClE,CAAC;AAFD,kCAEC;AAiHD,SAAS,gBAAgB,CAAC,GAAQ;IACjC,OAAO,IAAA,mBAAQ,EAAC,GAAG,CAAC,IAAI,CAAC,IAAA,eAAK,EAAC,GAAG,CAAC,CAAC;AACrC,CAAC;AAED,SAAS,kBAAkB,CAAC,CAAM,EAAE,CAAM;IACzC,IAAI,CAAC,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACzB,IAAI,IAAA,eAAK,EAAC,CAAC,CAAC,IAAI,IAAA,eAAK,EAAC,CAAC,CAAC;QAAE,OAAO,IAAA,qBAAW,EAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACnD,OAAO,KAAK,CAAC;AACd,CAAC;AAED,SAAgB,aAAa,CAC5B,IAAO,EACP,EAAK,EACL,MAAoB,EACpB,WAA0B,EAC1B,UAAuB,EAAE,EACzB,UAWI,EAAE;IAEN,MAAM,GAAG,GAAG,IAAA,gBAAM,EAAC,IAAI,CAAC,CAAC;IAEzB,SAAS,SAAS,CAAC,GAAoB,EAAE,KAAU,EAAE,QAAa;QACjE,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,EAAE;YAC7B,kDAAkD;YAClD,oCAAoC;YACpC,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,QAAQ,CAAC,EAAE;gBACzC,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;aACH;SACD;aAAM;YACN,MAAM,WAAW,GAAG,IAAA,qBAAW,EAAC,QAAQ,CAAC,CAAC;YAC1C,IAAI,QAAQ,CAAC;YACb,IAAI,CAAC,OAAO,CAAC,mBAAmB,EAAE;gBACjC,QAAQ,GAAG,IAAA,mBAAS,EAAC,KAAK,EAAE,GAAG,EAAE,WAAW,CAAC,CAAC;aAC9C;iBAAM;gBACN,0EAA0E;gBAC1E,qEAAqE;gBACrE,QAAQ,GAAG,IAAA,qBAAW,EAAC,KAAK,CAAC,CAAC;gBAC9B,IAAI,CAAC,QAAQ,IAAI,WAAW,EAAE;oBAC7B,IAAA,mBAAS,EAAC,KAAK,EAAE,WAAW,CAAC,CAAC;oBAC9B,QAAQ,GAAG,WAAW,CAAC;iBACvB;qBAAM;oBACN,QAAQ,GAAG,IAAA,mBAAS,EAAC,KAAK,EAAE,GAAG,EAAE,WAAW,CAAC,CAAC;iBAC9C;aACD;YAED,IAAI,QAAQ,KAAK,SAAS,IAAI,QAAQ,KAAK,WAAW,EAAE;gBACvD,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,IAAA,mBAAS,EAAC,QAAQ,CAAC;qBAC1B;iBACD,CAAC,CAAC;gBACH,8DAA8D;gBAC9D,IAAI,WAAW,KAAK,SAAS,EAAE;oBAC9B,OAAO,CAAC,IAAI,CAAC;wBACZ,GAAG,EAAE,WAAW;wBAChB,SAAS,EAAE,MAAM,EAAE;wBACnB,IAAI,EAAE;4BACL,EAAE,EAAE,QAAQ;yBACZ;qBACD,CAAC,CAAC;iBACH;aACD;iBAAM;gBACN,mEAAmE;gBACnE,+BAA+B;gBAC/B,aAAa,CAAC,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;aACtE;SACD;IACF,CAAC;IAED,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE;QAC7C,sDAAsD;QACtD,2DAA2D;QAC3D,oDAAoD;QACpD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACnC,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;SAC9B;QACD,qDAAqD;QACrD,MAAM,iBAAiB,GAAG,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC;QAClD,IAAI,iBAAiB,GAAG,CAAC,EAAE;YAC1B,wDAAwD;YACxD,KAAK,IAAI,CAAC,GAAG,EAAE,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBAC7C,MAAM,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;gBACtB,MAAM,QAAQ,GAAG,IAAA,qBAAW,EAAC,KAAK,CAAC,CAAC;gBACpC,IAAI,QAAQ,EAAE;oBACb,OAAO,CAAC,IAAI,CAAC;wBACZ,GAAG,EAAE,QAAQ;wBACb,SAAS,EAAE,MAAM,EAAE;wBACnB,IAAI,EAAE;4BACL,EAAE,EAAE,QAAQ;yBACZ;qBACD,CAAC,CAAC;iBACH;aACD;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;SACH;KACD;SAAM,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE;QACpD,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;KACvD;SAAM,IAAI,gBAAgB,CAAC,IAAI,CAAC,IAAI,gBAAgB,CAAC,EAAE,CAAC,EAAE;QAC1D,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;YAC9C,IAAI,KAAK,KAAK,SAAS,IAAI,OAAO,CAAC,gBAAgB;gBAAE,SAAS;YAE9D,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAEpB,IAAI,IAAA,kBAAQ,EAAC,GAAG,CAAC;gBAAE,SAAS;YAE5B,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;YAE3B,SAAS,CAAC,GAAG,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;SAChC;QAED,mEAAmE;QACnE,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE;YAC9B,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE;gBAC1B,IAAI,IAAA,kBAAQ,EAAC,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;aACH;SACD;KACD;IAED,OAAO,OAAO,CAAC;AAChB,CAAC;AA7JD,sCA6JC;AAED,SAAgB,oBAAoB,CACnC,IAAS,EACT,EAAO,EACP,MAAoB,EACpB,UAAuB,EAAE;IAEzB,MAAM,GAAG,GAAG,IAAA,gBAAM,EAAC,IAAI,CAAC,CAAC;IAEzB,SAAS,SAAS,CAAC,GAAoB,EAAE,KAAU,EAAE,QAAa;QACjE,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,EAAE;YAC7B,kDAAkD;YAClD,oCAAoC;YACpC,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,QAAQ,CAAC,EAAE;gBACzC,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;aACH;SACD;aAAM;YACN,MAAM,IAAI,KAAK,CACd,sEAAsE,CACtE,CAAC;SACF;IACF,CAAC;IAED,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE;QAC7C,sDAAsD;QACtD,2DAA2D;QAC3D,oDAAoD;QACpD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACnC,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;SAC9B;QACD,qDAAqD;QACrD,MAAM,iBAAiB,GAAG,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC;QAClD,IAAI,iBAAiB,GAAG,CAAC,EAAE;YAC1B,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;SACH;KACD;SAAM,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE;QACpD,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;KACvD;SAAM,IAAI,gBAAgB,CAAC,IAAI,CAAC,IAAI,gBAAgB,CAAC,EAAE,CAAC,EAAE;QAC1D,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;YAC9C,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAEpB,IAAI,IAAA,kBAAQ,EAAC,GAAG,CAAC;gBAAE,SAAS;YAE5B,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;YAE3B,SAAS,CAAC,GAAG,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;SAChC;QAED,mEAAmE;QACnE,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE;YAC1B,IAAI,IAAA,kBAAQ,EAAC,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;SACH;KACD;IAED,OAAO,OAAO,CAAC;AAChB,CAAC;AAnFD,oDAmFC;AAED;;;GAGG;AACH,SAAgB,gBAAgB,CAC/B,OAAY,EACZ,OAAyB,EACzB,MAAoB,EACpB,WAA0B,EAC1B,UAAuB,EAAE;IAEzB,IAAA,mBAAS,EAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAC5B,IAAA,mCAAyB,EAAC,OAAO,EAAE,WAAW,CAAC,CAAC;IAChD,MAAM,UAAU,GAAG,IAAA,mBAAS,EAAC,OAAO,CAAC,CAAC;IACtC,KAAK,MAAM,GAAG,IAAI,UAAU,CAAC,IAAI,EAAE,EAAE;QACpC,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,IAAA,mBAAS,EAAC,KAAK,CAAC;aACvB;SACD,CAAC,CAAC;KACH;IACD,OAAO,OAAO,CAAC;AAChB,CAAC;AAtBD,4CAsBC;AAED,SAAgB,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;AAfD,0DAeC;AAED,SAAgB,wBAAwB,CAAC,OAAoB;IAC5D,MAAM,OAAO,GAA0C,EAAE,CAAC;IAC1D,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE;QAC5B,IAAI,KAAK,CAAC,GAAG,IAAI,OAAO,EAAE;YACzB,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SAC/B;aAAM;YACN,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;SAC7B;KACD;IACD,OAAO,OAAO,CAAC;AAChB,CAAC;AAVD,4DAUC;AAED,SAAgB,qBAAqB,CAAC,OAAoB;IACzD,MAAM,OAAO,GAA0C,EAAE,CAAC;IAC1D,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE;QAC5B,MAAM,IAAI,GAAG,IAAA,oBAAU,EAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACnC,IAAI,IAAI,IAAI,OAAO,EAAE;YACpB,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SAC1B;aAAM;YACN,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;SACxB;KACD;IACD,OAAO,OAAO,CAAC;AAChB,CAAC;AAXD,sDAWC;AAED,SAAgB,uBAAuB,CAAC,SAA6B;IACpE,MAAM,OAAO,GAAiD,EAAE,CAAC;IACjE,KAAK,MAAM,KAAK,IAAI,SAAS,EAAE;QAC9B,MAAM,IAAI,GAAG,IAAA,oBAAU,EAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACnC,IAAI,IAAI,IAAI,OAAO,EAAE;YACpB,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SAC1B;aAAM;YACN,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;SACxB;KACD;IACD,OAAO,OAAO,CAAC;AAChB,CAAC;AAXD,0DAWC;AAQD,SAAS,SAAS,CAAC,GAAQ;IAC1B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;QACxB,OAAO,CAAC,KAAK,CACZ,qDAAqD,IAAI,CAAC,SAAS,CAClE,GAAG,CACH,mFAAmF,IAAA,qBAAW,EAC9F,GAAG,CACH,GAAG,CACJ,CAAC;QACF,OAAO,KAAK,CAAC;KACb;SAAM;QACN,OAAO,IAAI,CAAC;KACZ;AACF,CAAC;AAED;;;GAGG;AACH,SAAgB,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;QACvE,OAAO,IAAI,CAAC;KACZ;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,IAAA,eAAK,EAAC,KAAK,CAAC,EAAE;YACjB,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SACxB;IACF,CAAC;IAED,QAAQ,KAAK,CAAC,EAAE,EAAE;QACjB,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;gBACpB,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;aACvB;YACD,MAAM;QACP,KAAK,aAAa;YACjB,IAAI,SAAS,CAAC,IAAI,CAAC,EAAE;gBACpB,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;gBAC5B,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;aACtC;YACD,MAAM;QACP,KAAK,oBAAoB;YACxB,IAAI,SAAS,CAAC,IAAI,CAAC,EAAE;gBACpB,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;aAC1C;YACD,MAAM;QACP,KAAK,aAAa;YACjB,IAAI,SAAS,CAAC,IAAI,CAAC,EAAE;gBACpB,GAAG;oBACF,MAAM,aAAa,GAAG,KAAK,CAAC,KAAK,CAAC;oBAClC,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,EAAE;wBAC1B,IAAI,WAAW,CAAC,aAAa,CAAC,EAAE;4BAC/B,KAAK,GAAG,IAAA,wBAAa,EACpB,IAAI,EACJ,CAAC,IAAS,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,aAAa,CAAC,EAAE,CAC3C,CAAC;yBACF;6BAAM;4BACN,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC;yBACxC;qBACD;yBAAM;wBACN,IAAI,WAAW,CAAC,aAAa,CAAC,EAAE;4BAC/B,KAAK,GAAG,IAAI,CAAC,SAAS,CACrB,CAAC,IAAS,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,aAAa,CAAC,EAAE,CAC3C,CAAC;yBACF;6BAAM;4BACN,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;yBACpC;qBACD;oBACD,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE;wBACjB,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;wBACtB,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;qBACtB;iBACD,QAAQ,CAAC,KAAK,CAAC,IAAI,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE;aACtC;YACD,MAAM;QACP,KAAK,UAAU;YACd,IAAI,SAAS,CAAC,IAAI,CAAC,EAAE;gBACpB,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;wBAClD,OAAO,IAAI,CAAC,EAAE,KAAK,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;qBAClC;yBAAM;wBACN,OAAO,IAAI,KAAK,KAAK,CAAC,KAAK,CAAC;qBAC5B;gBACF,CAAC,CAAC,CAAC;gBACH,IAAI,CAAC,UAAU,EAAE;oBAChB,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;iBACvB;aACD;YACD,MAAM;QACP,KAAK,kBAAkB;YACtB,IAAI,SAAS,CAAC,IAAI,CAAC,EAAE;gBACpB,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;gBAClC,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;aAC7C;YACD,MAAM;QACP,KAAK,aAAa;YACjB,IAAI,SAAS,CAAC,IAAI,CAAC,EAAE;gBACpB,IAAI,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE;oBAClC,MAAM,IAAI,KAAK,CACd,sEAAsE,IAAI,CAAC,SAAS,CACnF,KAAK,CACL,EAAE,CACH,CAAC;iBACF;gBACD,IAAI,KAAK,CAAC,KAAK,EAAE;oBAChB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;iBACzC;qBAAM;oBACN,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,EAAE,GAAG,KAAK,CAAC,MAAO,CAAC,CAAC;iBAC9C;aACD;YACD,MAAM;QACP,KAAK,QAAQ;YACZ,oCAAoC;YACpC,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;gBACxB,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;aACvB;iBAAM,IAAI,IAAA,mBAAQ,EAAC,IAAI,CAAC,EAAE;gBAC1B,MAAM,CAAC,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;aAC5C;YACD,OAAO,SAAS,CAAC;QAClB,KAAK,YAAY;YAChB,OAAO,IAAA,oBAAS,EAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC/B;YACC,MAAM,IAAI,KAAK,CAAC,gCAAiC,KAAa,CAAC,EAAE,EAAE,CAAC,CAAC;KACtE;IACD,OAAO,IAAI,CAAC;AACb,CAAC;AAxID,gCAwIC;AAED,SAAgB,eAAe,CAC9B,IAAmB,EACnB,UAAuB,EACvB,WAAqC;IAErC,IAAI,GAAG,GAAG,IAAqB,CAAC;IAChC,KAAK,MAAM,EAAE,IAAI,UAAU,EAAE;QAC5B,GAAG,GAAG,UAAU,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;KAC5C;IACD,OAAO,GAAG,CAAC;AACZ,CAAC;AAVD,0CAUC;AAED;;;GAGG;AACH,SAAgB,yBAAyB,CACxC,IAAS,EACT,IAAgC,EAChC,OAA2B,EAAE;IAE7B,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;QACxB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACrC,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,IAAA,mBAAQ,EAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE;gBACtB,yBAAyB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;aAC/C;SACD;KACD;SAAM,IAAI,IAAA,mBAAQ,EAAC,IAAI,CAAC,EAAE;QAC1B,kEAAkE;QAClE,yCAAyC;QACzC,IAAA,iBAAM,EACL,IAAA,qBAAW,EAAC,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;YACpC,IAAI,CAAC,GAAG,CAAC,GAAG,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;YAE/C,wDAAwD;YACxD,IAAI,IAAA,mBAAQ,EAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE;gBACxB,yBAAyB,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;aACjD;SACD;KACD;IAED,OAAO,IAAI,CAAC;AACb,CAAC;AA/BD,8DA+BC;AAED,SAAS,WAAW,CACnB,KAAU,EACV,IAAgC,EAChC,IAAwB;IAExB,IAAI,WAAW,CAAC,KAAK,CAAC,EAAE;QACvB,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACpB,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACpC,IAAA,iBAAM,EAAC,CAAC,CAAC,QAAQ,EAAE,wCAAwC,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;QACvE,OAAO,IAAA,mBAAS,EAAC,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC;KACrC;SAAM;QACN,OAAO,KAAK,CAAC;KACb;AACF,CAAC;AAED,SAAgB,mCAAmC,CAGlD,IAAU,EACV,aAAyC,IAAI,GAAG,EAAE;IAElD,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;QACxB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACrC,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;YACrB,IAAI,IAAA,mBAAQ,EAAC,IAAI,CAAC,EAAE;gBACnB,MAAM,GAAG,GAAG,IAAA,gBAAM,EAAC,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;aAC1B;SACD;KACD;SAAM;QACN,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;YAChD,IAAI,IAAA,mBAAQ,EAAC,KAAK,CAAC,EAAE;gBACpB,IAAI,CAAC,GAAG,CAAC,GAAG;oBACX,QAAQ,EAAE,KAAK;oBACf,EAAE,EAAE,IAAA,gBAAM,EAAC,KAAK,CAAC;iBACjB,CAAC;gBAEF,UAAU,CAAC,GAAG,CAAC,IAAA,gBAAM,EAAC,KAAK,CAAC,EAAE,KAAK,CAAC,CAAC;aACrC;SACD;KACD;IAED,OAAO,UAAU,CAAC;AACnB,CAAC;AAhCD,kFAgCC"}
1
+ {"version":3,"file":"operation.js","sourceRoot":"","sources":["../../src/operation.ts"],"names":[],"mappings":"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"}
@@ -6,7 +6,13 @@ const oids_js_1 = require("./oids.js");
6
6
  const operation_js_1 = require("./operation.js");
7
7
  function createClock(init = 0) {
8
8
  let i = init;
9
- return () => (i++).toString();
9
+ const clock = () => (i++).toString();
10
+ Object.defineProperty(clock, 'current', {
11
+ get() {
12
+ return i;
13
+ },
14
+ });
15
+ return clock;
10
16
  }
11
17
  (0, vitest_1.describe)('creating diff patch operations', () => {
12
18
  (0, vitest_1.describe)('on flat objects', () => {
@@ -479,6 +485,150 @@ function createClock(init = 0) {
479
485
  ]
480
486
  `);
481
487
  });
488
+ (0, vitest_1.it)('should assign a new OID to objects which had an incompatible existing OID', () => {
489
+ const from = {
490
+ foo: {
491
+ bar: [1, 2, 3],
492
+ },
493
+ };
494
+ (0, oids_js_1.assignOid)(from, 'test/a');
495
+ (0, oids_js_1.assignOidsToAllSubObjects)(from, createClock());
496
+ const to = {
497
+ foo: {
498
+ bar: [1, 2],
499
+ },
500
+ };
501
+ (0, oids_js_1.assignOid)(to, 'test/a');
502
+ (0, oids_js_1.assignOid)(to.foo, 'uff/b');
503
+ (0, oids_js_1.assignOidsToAllSubObjects)(to.foo, createClock());
504
+ (0, vitest_1.expect)((0, operation_js_1.diffToPatches)(from, to, createClock(), createClock(5), [], {
505
+ mergeUnknownObjects: true,
506
+ })).toMatchInlineSnapshot(`
507
+ [
508
+ {
509
+ "data": {
510
+ "op": "initialize",
511
+ "value": [
512
+ 1,
513
+ 2,
514
+ ],
515
+ },
516
+ "oid": "test/a:6",
517
+ "timestamp": "0",
518
+ },
519
+ {
520
+ "data": {
521
+ "op": "initialize",
522
+ "value": {
523
+ "bar": {
524
+ "@@type": "ref",
525
+ "id": "test/a:6",
526
+ },
527
+ },
528
+ },
529
+ "oid": "test/a:5",
530
+ "timestamp": "1",
531
+ },
532
+ {
533
+ "data": {
534
+ "name": "foo",
535
+ "op": "set",
536
+ "value": {
537
+ "@@type": "ref",
538
+ "id": "test/a:5",
539
+ },
540
+ },
541
+ "oid": "test/a",
542
+ "timestamp": "2",
543
+ },
544
+ {
545
+ "data": {
546
+ "op": "delete",
547
+ },
548
+ "oid": "test/a:0",
549
+ "timestamp": "3",
550
+ },
551
+ ]
552
+ `);
553
+ });
554
+ // an edge case - if a subobject which contains nested objects changes identity,
555
+ // this gets written as a new init patch tree - we want to ensure all init subobjects
556
+ // in that tree have compatible OIDs.
557
+ (0, vitest_1.it)('should assign a new OID to objects which have an incompatible OID when parent identity changes', () => {
558
+ const from = {
559
+ bar: [],
560
+ };
561
+ (0, oids_js_1.assignOid)(from, 'test/a');
562
+ (0, oids_js_1.assignOid)(from.bar, 'test/random');
563
+ const to = {
564
+ bar: [{ baz: 1 }, { baz: 2 }],
565
+ };
566
+ (0, oids_js_1.assignOid)(to, 'test/a');
567
+ (0, oids_js_1.assignOidsToAllSubObjects)(to, createClock());
568
+ (0, oids_js_1.assignOid)(to.bar[0], 'uff/b');
569
+ (0, vitest_1.expect)((0, operation_js_1.diffToPatches)(from, to, createClock(), createClock(5), [], {
570
+ mergeUnknownObjects: true,
571
+ })).toMatchInlineSnapshot(`
572
+ [
573
+ {
574
+ "data": {
575
+ "op": "initialize",
576
+ "value": {
577
+ "baz": 1,
578
+ },
579
+ },
580
+ "oid": "test/a:5",
581
+ "timestamp": "0",
582
+ },
583
+ {
584
+ "data": {
585
+ "op": "initialize",
586
+ "value": {
587
+ "baz": 2,
588
+ },
589
+ },
590
+ "oid": "test/a:2",
591
+ "timestamp": "1",
592
+ },
593
+ {
594
+ "data": {
595
+ "op": "initialize",
596
+ "value": [
597
+ {
598
+ "@@type": "ref",
599
+ "id": "test/a:5",
600
+ },
601
+ {
602
+ "@@type": "ref",
603
+ "id": "test/a:2",
604
+ },
605
+ ],
606
+ },
607
+ "oid": "test/a:0",
608
+ "timestamp": "2",
609
+ },
610
+ {
611
+ "data": {
612
+ "name": "bar",
613
+ "op": "set",
614
+ "value": {
615
+ "@@type": "ref",
616
+ "id": "test/a:0",
617
+ },
618
+ },
619
+ "oid": "test/a",
620
+ "timestamp": "3",
621
+ },
622
+ {
623
+ "data": {
624
+ "op": "delete",
625
+ },
626
+ "oid": "test/random",
627
+ "timestamp": "4",
628
+ },
629
+ ]
630
+ `);
631
+ });
482
632
  });
483
633
  (0, vitest_1.describe)('substituting refs with objects', () => {
484
634
  (0, vitest_1.it)('does nothing when no refs exist', () => {