@verdant-web/common 1.14.0 → 1.15.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 (82) hide show
  1. package/dist/cjs/batching.d.ts +1 -0
  2. package/dist/cjs/batching.js +3 -0
  3. package/dist/cjs/batching.js.map +1 -1
  4. package/dist/cjs/index.d.ts +1 -1
  5. package/dist/cjs/index.js +2 -1
  6. package/dist/cjs/index.js.map +1 -1
  7. package/dist/cjs/indexes.d.ts +3 -1
  8. package/dist/cjs/indexes.js +26 -3
  9. package/dist/cjs/indexes.js.map +1 -1
  10. package/dist/cjs/migration.d.ts +85 -18
  11. package/dist/cjs/migration.js +137 -13
  12. package/dist/cjs/migration.js.map +1 -1
  13. package/dist/cjs/oids.d.ts +9 -2
  14. package/dist/cjs/oids.js +38 -5
  15. package/dist/cjs/oids.js.map +1 -1
  16. package/dist/cjs/oids.test.js +4 -3
  17. package/dist/cjs/oids.test.js.map +1 -1
  18. package/dist/cjs/schema/fields.d.ts +2 -0
  19. package/dist/cjs/schema/fields.js +29 -1
  20. package/dist/cjs/schema/fields.js.map +1 -1
  21. package/dist/cjs/schema/index.d.ts +2 -2
  22. package/dist/cjs/schema/index.js +25 -2
  23. package/dist/cjs/schema/index.js.map +1 -1
  24. package/dist/cjs/schema/types/collection.d.ts +12 -40
  25. package/dist/cjs/schema/types/compounds.d.ts +6 -7
  26. package/dist/cjs/schema/types/fields.d.ts +12 -2
  27. package/dist/cjs/schema/types/shapes.d.ts +6 -6
  28. package/dist/cjs/schema/types/synthetics.d.ts +11 -2
  29. package/dist/cjs/schema/types.d.ts +4 -4
  30. package/dist/cjs/utils.js +6 -1
  31. package/dist/cjs/utils.js.map +1 -1
  32. package/dist/esm/batching.d.ts +1 -0
  33. package/dist/esm/batching.js +3 -0
  34. package/dist/esm/batching.js.map +1 -1
  35. package/dist/esm/index.d.ts +1 -1
  36. package/dist/esm/index.js +1 -1
  37. package/dist/esm/index.js.map +1 -1
  38. package/dist/esm/indexes.d.ts +3 -1
  39. package/dist/esm/indexes.js +23 -2
  40. package/dist/esm/indexes.js.map +1 -1
  41. package/dist/esm/migration.d.ts +85 -18
  42. package/dist/esm/migration.js +136 -13
  43. package/dist/esm/migration.js.map +1 -1
  44. package/dist/esm/oids.d.ts +9 -2
  45. package/dist/esm/oids.js +35 -3
  46. package/dist/esm/oids.js.map +1 -1
  47. package/dist/esm/oids.test.js +5 -4
  48. package/dist/esm/oids.test.js.map +1 -1
  49. package/dist/esm/replica.js +1 -1
  50. package/dist/esm/replica.js.map +1 -1
  51. package/dist/esm/schema/fields.d.ts +2 -0
  52. package/dist/esm/schema/fields.js +26 -0
  53. package/dist/esm/schema/fields.js.map +1 -1
  54. package/dist/esm/schema/index.d.ts +2 -2
  55. package/dist/esm/schema/index.js +25 -2
  56. package/dist/esm/schema/index.js.map +1 -1
  57. package/dist/esm/schema/types/collection.d.ts +12 -40
  58. package/dist/esm/schema/types/compounds.d.ts +6 -7
  59. package/dist/esm/schema/types/fields.d.ts +12 -2
  60. package/dist/esm/schema/types/shapes.d.ts +6 -6
  61. package/dist/esm/schema/types/synthetics.d.ts +11 -2
  62. package/dist/esm/schema/types.d.ts +4 -4
  63. package/dist/esm/utils.js +3 -1
  64. package/dist/esm/utils.js.map +1 -1
  65. package/dist/tsconfig-cjs.tsbuildinfo +1 -1
  66. package/dist/tsconfig.tsbuildinfo +1 -1
  67. package/package.json +6 -3
  68. package/src/batching.ts +4 -0
  69. package/src/index.ts +1 -0
  70. package/src/indexes.ts +51 -12
  71. package/src/migration.ts +300 -57
  72. package/src/oids.test.ts +5 -4
  73. package/src/oids.ts +39 -3
  74. package/src/schema/fields.ts +18 -0
  75. package/src/schema/index.ts +30 -3
  76. package/src/schema/types/collection.ts +14 -112
  77. package/src/schema/types/compounds.ts +29 -18
  78. package/src/schema/types/fields.ts +12 -2
  79. package/src/schema/types/shapes.ts +13 -14
  80. package/src/schema/types/synthetics.ts +31 -2
  81. package/src/schema/types.ts +4 -6
  82. package/src/utils.ts +3 -1
@@ -12,6 +12,7 @@ export declare class Batcher<T, UserData = any> {
12
12
  }): Batch<T, UserData>;
13
13
  flush: (key: string) => any;
14
14
  discard: (key: string) => void;
15
+ flushAll: () => any[];
15
16
  }
16
17
  export declare class Batch<T, UserData = any> {
17
18
  items: Array<T>;
@@ -18,6 +18,9 @@ class Batcher {
18
18
  batch.discard();
19
19
  this.batches.delete(key);
20
20
  };
21
+ this.flushAll = () => {
22
+ return [...this.batches.values()].map((batch) => batch.flush());
23
+ };
21
24
  }
22
25
  add({ key, userData, items, max, timeout, }) {
23
26
  let batch = this.batches.get(key);
@@ -1 +1 @@
1
- {"version":3,"file":"batching.js","sourceRoot":"","sources":["../../src/batching.ts"],"names":[],"mappings":";;;AAAA,MAAa,OAAO;IAGnB,YACS,OAAkE;QAAlE,YAAO,GAAP,OAAO,CAA2D;QAHnE,YAAO,GAAoC,IAAI,GAAG,EAAE,CAAC;QAyC7D,UAAK,GAAG,CAAC,GAAW,EAAE,EAAE;YACvB,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACpC,IAAI,CAAC,KAAK;gBAAE,OAAO;YAEnB,OAAO,KAAK,CAAC,KAAK,EAAE,CAAC;QACtB,CAAC,CAAC;QAEF,YAAO,GAAG,CAAC,GAAW,EAAE,EAAE;YACzB,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACpC,IAAI,CAAC,KAAK;gBAAE,OAAO;YAEnB,KAAK,CAAC,OAAO,EAAE,CAAC;YAChB,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC1B,CAAC,CAAC;IAlDC,CAAC;IAEJ,GAAG,CAAC,EACH,GAAG,EACH,QAAQ,EACR,KAAK,EACL,GAAG,EACH,OAAO,GAOP;QACA,IAAI,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAClC,IAAI,CAAC,KAAK,EAAE;YACX,KAAK,GAAG,IAAI,KAAK,CAAC;gBACjB,GAAG,EAAE,GAAG,IAAI,IAAI;gBAChB,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;gBACrB,QAAQ;gBACR,OAAO,EAAE,OAAO,IAAI,IAAI;gBACxB,OAAO,EAAE,IAAI,CAAC,OAAO;gBACrB,GAAG;aACH,CAAC,CAAC;YACH,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;SAC7B;QACD,KAAK,CAAC,MAAM,CAAC;YACZ,KAAK;YACL,GAAG;YACH,OAAO;YACP,QAAQ;SACR,CAAC,CAAC;QAEH,OAAO,KAAK,CAAC;IACd,CAAC;CAgBD;AAxDD,0BAwDC;AAED,MAAa,KAAK;IAUjB,YAAY,EACX,GAAG,EACH,SAAS,EACT,OAAO,EACP,QAAQ,EACR,OAAO,EACP,GAAG,GAQH;QAvBD,UAAK,GAAa,EAAE,CAAC;QAgCrB,WAAM,GAAG,CAAC,EACT,KAAK,EACL,GAAG,EACH,OAAO,EACP,QAAQ,GAMR,EAAE,EAAE;YACJ,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC;YAC1B,IAAI,GAAG,KAAK,SAAS;gBAAE,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;YACtC,IAAI,OAAO,KAAK,SAAS;gBAAE,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;YAClD,IAAI,QAAQ;gBAAE,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;YAEvC,mDAAmD;YACnD,6BAA6B;YAC7B,MAAM,aAAa,GAClB,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,OAAO,KAAK,IAAI,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC;YAExE,4DAA4D;YAC5D,wBAAwB;YACxB,IAAI,IAAI,CAAC,GAAG,KAAK,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,IAAI,CAAC,GAAG,EAAE;gBACvD,IAAI,CAAC,KAAK,EAAE,CAAC;aACb;iBAAM,IAAI,aAAa,IAAI,IAAI,CAAC,OAAO,KAAK,IAAI,EAAE;gBAClD,IAAI,CAAC,YAAY,GAAG,UAAU,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;aACzD;QACF,CAAC,CAAC;QAEF,UAAK,GAAG,GAAG,EAAE;YACZ,IAAI,CAAC,YAAY,IAAI,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YACrD,IAAI,CAAC,YAAY,GAAG,SAAS,CAAC;YAC9B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;YACzB,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;YAChB,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;QACrD,CAAC,CAAC;QAEF,YAAO,GAAG,GAAG,EAAE;YACd,IAAI,CAAC,YAAY,IAAI,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YACrD,IAAI,CAAC,YAAY,GAAG,SAAS,CAAC;YAC9B,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;QACjB,CAAC,CAAC;QAlDD,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;IAChB,CAAC;CA6CD;AA5ED,sBA4EC"}
1
+ {"version":3,"file":"batching.js","sourceRoot":"","sources":["../../src/batching.ts"],"names":[],"mappings":"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"}
@@ -6,7 +6,7 @@ export * from './replica.js';
6
6
  export * from './schema/index.js';
7
7
  export * from './utils.js';
8
8
  export * from './indexes.js';
9
- export { migrate, migrationRange, createDefaultMigration, } from './migration.js';
9
+ export { migrate, migrationRange, createDefaultMigration, createMigration, } from './migration.js';
10
10
  export type { Migration, MigrationIndexDescription, MigrationEngine, } from './migration.js';
11
11
  export type { UserInfo } from './presence.js';
12
12
  export * from './patch.js';
package/dist/cjs/index.js CHANGED
@@ -14,7 +14,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
- exports.createDefaultMigration = exports.migrationRange = exports.migrate = void 0;
17
+ exports.createMigration = exports.createDefaultMigration = exports.migrationRange = exports.migrate = void 0;
18
18
  __exportStar(require("./protocol.js"), exports);
19
19
  __exportStar(require("./timestamp.js"), exports);
20
20
  __exportStar(require("./operation.js"), exports);
@@ -27,6 +27,7 @@ var migration_js_1 = require("./migration.js");
27
27
  Object.defineProperty(exports, "migrate", { enumerable: true, get: function () { return migration_js_1.migrate; } });
28
28
  Object.defineProperty(exports, "migrationRange", { enumerable: true, get: function () { return migration_js_1.migrationRange; } });
29
29
  Object.defineProperty(exports, "createDefaultMigration", { enumerable: true, get: function () { return migration_js_1.createDefaultMigration; } });
30
+ Object.defineProperty(exports, "createMigration", { enumerable: true, get: function () { return migration_js_1.createMigration; } });
30
31
  __exportStar(require("./patch.js"), exports);
31
32
  __exportStar(require("./oids.js"), exports);
32
33
  __exportStar(require("./EventSubscriber.js"), exports);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,gDAA8B;AAC9B,iDAA+B;AAC/B,iDAA+B;AAC/B,gDAA8B;AAC9B,+CAA6B;AAC7B,oDAAkC;AAClC,6CAA2B;AAC3B,+CAA6B;AAC7B,+CAIwB;AAHvB,uGAAA,OAAO,OAAA;AACP,8GAAA,cAAc,OAAA;AACd,sHAAA,sBAAsB,OAAA;AAQvB,6CAA2B;AAC3B,4CAA0B;AAC1B,uDAAqC;AACrC,4CAA0B;AAC1B,gDAA8B;AAC9B,6CAA2B"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,gDAA8B;AAC9B,iDAA+B;AAC/B,iDAA+B;AAC/B,gDAA8B;AAC9B,+CAA6B;AAC7B,oDAAkC;AAClC,6CAA2B;AAC3B,+CAA6B;AAC7B,+CAKwB;AAJvB,uGAAA,OAAO,OAAA;AACP,8GAAA,cAAc,OAAA;AACd,sHAAA,sBAAsB,OAAA;AACtB,+GAAA,eAAe,OAAA;AAQhB,6CAA2B;AAC3B,4CAA0B;AAC1B,uDAAqC;AACrC,4CAA0B;AAC1B,gDAA8B;AAC9B,6CAA2B"}
@@ -1,4 +1,4 @@
1
- import { StorageCollectionSchema } from './index.js';
1
+ import { StorageCollectionSchema, StorageDirectSyntheticSchema } from './index.js';
2
2
  export declare const COMPOUND_INDEX_SEPARATOR = "\uFFFFFE";
3
3
  export declare const COMPOUND_INDEX_LOWER_BOUND_SEPARATOR = "\0";
4
4
  export declare const COMPOUND_INDEX_UPPER_BOUND_SEPARATOR = "\uFFFFFF";
@@ -7,8 +7,10 @@ export declare type CompoundIndexValue = string | string[];
7
7
  export declare function createCompoundIndexValue(...fields: IndexableFieldValue[]): CompoundIndexValue;
8
8
  export declare function createUpperBoundIndexValue(...fields: IndexableFieldValue[]): string;
9
9
  export declare function createLowerBoundIndexValue(...fields: IndexableFieldValue[]): string;
10
+ export declare function isDirectSynthetic(index: any): index is StorageDirectSyntheticSchema<any>;
10
11
  export declare function computeSynthetics(schema: StorageCollectionSchema, obj: any): Record<string, any>;
11
12
  export declare function computeCompoundIndices(schema: StorageCollectionSchema<any, any, any>, doc: any): any;
13
+ export declare function getIndexValues(schema: StorageCollectionSchema<any, any, any>, doc: any): any;
12
14
  export declare function assignIndexValues(schema: StorageCollectionSchema<any, any, any>, doc: any): any;
13
15
  export declare const NULL_INDEX_VALUE = "null";
14
16
  export declare function sanitizeIndexValue(value: unknown): string | number | (string | number)[];
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.sanitizeIndexValue = exports.NULL_INDEX_VALUE = exports.assignIndexValues = exports.computeCompoundIndices = exports.computeSynthetics = exports.createLowerBoundIndexValue = exports.createUpperBoundIndexValue = exports.createCompoundIndexValue = exports.COMPOUND_INDEX_UPPER_BOUND_SEPARATOR = exports.COMPOUND_INDEX_LOWER_BOUND_SEPARATOR = exports.COMPOUND_INDEX_SEPARATOR = void 0;
3
+ exports.sanitizeIndexValue = exports.NULL_INDEX_VALUE = exports.assignIndexValues = exports.getIndexValues = exports.computeCompoundIndices = exports.computeSynthetics = exports.isDirectSynthetic = exports.createLowerBoundIndexValue = exports.createUpperBoundIndexValue = exports.createCompoundIndexValue = exports.COMPOUND_INDEX_UPPER_BOUND_SEPARATOR = exports.COMPOUND_INDEX_LOWER_BOUND_SEPARATOR = exports.COMPOUND_INDEX_SEPARATOR = void 0;
4
+ const index_js_1 = require("./index.js");
4
5
  // unlikely to be used unicode character
5
6
  exports.COMPOUND_INDEX_SEPARATOR = '\uFFFFFE';
6
7
  // 1 lower than separator
@@ -75,10 +76,20 @@ function expandArrayIndex(fields) {
75
76
  return item.join(exports.COMPOUND_INDEX_SEPARATOR);
76
77
  })));
77
78
  }
79
+ function isDirectSynthetic(index) {
80
+ return !!index.field;
81
+ }
82
+ exports.isDirectSynthetic = isDirectSynthetic;
78
83
  function computeSynthetics(schema, obj) {
79
84
  const result = {};
80
- for (const [name, property] of Object.entries(schema.synthetics || {})) {
81
- result[name] = sanitizeIndexValue(property.compute(obj));
85
+ for (const [name, property] of Object.entries(schema.indexes || {})) {
86
+ const index = property;
87
+ if (isDirectSynthetic(index)) {
88
+ result[name] = sanitizeIndexValue(obj[index.field]);
89
+ }
90
+ else {
91
+ result[name] = sanitizeIndexValue(index.compute(obj));
92
+ }
82
93
  }
83
94
  return result;
84
95
  }
@@ -90,6 +101,18 @@ function computeCompoundIndices(schema, doc) {
90
101
  }, {});
91
102
  }
92
103
  exports.computeCompoundIndices = computeCompoundIndices;
104
+ function computeIndexedFields(schema, doc) {
105
+ return Object.entries(schema.fields).reduce((acc, [key, field]) => {
106
+ if ((0, index_js_1.isIndexed)(field)) {
107
+ acc[key] = sanitizeIndexValue(doc[key]);
108
+ }
109
+ return acc;
110
+ }, {});
111
+ }
112
+ function getIndexValues(schema, doc) {
113
+ return Object.assign(Object.assign(Object.assign(Object.assign({ [schema.primaryKey]: doc[schema.primaryKey] }, computeIndexedFields(schema, doc)), computeSynthetics(schema, doc)), computeCompoundIndices(schema, doc)), { '@@@snapshot': doc });
114
+ }
115
+ exports.getIndexValues = getIndexValues;
93
116
  function assignIndexValues(schema, doc) {
94
117
  Object.assign(doc, computeSynthetics(schema, doc));
95
118
  Object.assign(doc, computeCompoundIndices(schema, doc));
@@ -1 +1 @@
1
- {"version":3,"file":"indexes.js","sourceRoot":"","sources":["../../src/indexes.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"indexes.js","sourceRoot":"","sources":["../../src/indexes.ts"],"names":[],"mappings":"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"}
@@ -1,44 +1,58 @@
1
1
  import { StorageCollectionSchema, StorageSchema, StorageDocument, CollectionFilter, StorageDocumentInit } from './index.js';
2
+ /**@deprecated */
2
3
  export interface DroppedCollectionMigrationStrategy<Old extends StorageCollectionSchema<any, any, any>> {
3
4
  (old: Old): void | Promise<void>;
4
5
  }
6
+ /**@deprecated */
5
7
  export interface PreservedCollectionMigrationStrategy<Old extends StorageCollectionSchema<any, any, any>, New extends StorageCollectionSchema<any, any, any>> {
6
8
  (old: StorageDocument<Old>): StorageDocument<New> | Promise<StorageDocument<New>>;
7
9
  }
8
- declare type MigrationStrategy<Old extends StorageCollectionSchema<any, any, any>, New extends StorageCollectionSchema<any, any, any>> = DroppedCollectionMigrationStrategy<Old> | PreservedCollectionMigrationStrategy<Old, New>;
10
+ /** @deprecated */
9
11
  export declare type MigrationsKeyedOnCollection<Old extends StorageSchema<any>, New extends StorageSchema<any>> = PreservedCollectionMigrations<Old, New> | DroppedCollectionMigrations<Old, New>;
12
+ /**@deprecated */
10
13
  declare type NotInSchema<Name extends string | number | symbol, Schema extends StorageSchema<any>> = Name extends keyof Schema['collections'] ? never : Name;
14
+ /** @deprecated */
11
15
  declare type InSchema<Name extends string | number | symbol, Schema extends StorageSchema<any>> = Name extends keyof Schema['collections'] ? Name : never;
16
+ /** @deprecated */
12
17
  declare type DroppedCollections<Old extends StorageSchema<any>, New extends StorageSchema<any>> = {
13
18
  [Key in keyof Old['collections'] as NotInSchema<Key, New>]: StorageCollectionSchema<any, any, any>;
14
19
  };
20
+ /** @deprecated */
15
21
  declare type PreservedCollections<Old extends StorageSchema<any>, New extends StorageSchema<any>> = {
16
22
  [Key in keyof Old['collections'] as InSchema<Key, New>]: StorageCollectionSchema<any, any, any>;
17
23
  };
24
+ /** @deprecated */
18
25
  declare type DroppedCollectionMigrations<Old extends StorageSchema<any>, New extends StorageSchema<any>> = {
19
26
  [Key in keyof DroppedCollections<Old, New>]: DroppedCollectionMigrationStrategy<Old['collections'][Key]>;
20
27
  };
28
+ /** @deprecated */
21
29
  declare type PreservedCollectionMigrations<Old extends StorageSchema<any>, New extends StorageSchema<any>> = {
22
30
  [Key in keyof PreservedCollections<Old, New>]: PreservedCollectionMigrationStrategy<Old['collections'][Key], New['collections'][Key]>;
23
31
  };
32
+ /** @deprecated */
24
33
  declare type StrategyFor<Key extends string, Old extends StorageSchema<any>, New extends StorageSchema<any>> = Key extends keyof New['collections'] ? PreservedCollectionMigrationStrategy<Old['collections'][Key], New['collections'][Key]> : DroppedCollectionMigrationStrategy<Old['collections'][Key]>;
25
- declare type MigrationRunner<Old extends StorageSchema<any>, New extends StorageSchema<any>> = <Collection extends Extract<keyof Old['collections'], string>>(collection: Collection, strategy: StrategyFor<Collection, Old, New>) => Promise<void>;
26
- declare type MigrationQueryMaker<Collection extends StorageCollectionSchema<any, any, any>> = {
34
+ /** @deprecated */
35
+ declare type DeprecatedMigrationRunner<Old extends StorageSchema<any>, New extends StorageSchema<any>> = <Collection extends Extract<keyof Old['collections'], string>>(collection: Collection, strategy: StrategyFor<Collection, Old, New>) => Promise<void>;
36
+ /** @deprecated */
37
+ declare type DeprecatedMigrationQueryMaker<Collection extends StorageCollectionSchema<any, any, any>> = {
27
38
  get(primaryKey: string): Promise<StorageDocument<Collection> | undefined>;
28
39
  findOne(query: CollectionFilter): Promise<StorageDocument<Collection> | undefined>;
29
40
  findAll(query?: CollectionFilter): Promise<StorageDocument<Collection>[]>;
30
41
  };
31
- declare type MigrationQueries<Old extends StorageSchema<any>> = {
32
- [Key in keyof Old['collections']]: MigrationQueryMaker<Old['collections'][Key]>;
42
+ /** @deprecated */
43
+ declare type DeprecatedMigrationQueries<Old extends StorageSchema<any>> = {
44
+ [Key in keyof Old['collections']]: DeprecatedMigrationQueryMaker<Old['collections'][Key]>;
33
45
  };
34
- declare type MigrationMutations<New extends StorageSchema> = {
46
+ /** @deprecated */
47
+ declare type DeprecatedMigrationMutations<New extends StorageSchema> = {
35
48
  [Key in keyof New['collections']]: {
36
49
  put(document: StorageDocumentInit<New['collections'][Key]>): Promise<StorageDocument<New['collections'][Key]>>;
37
50
  delete(primaryKey: string): Promise<void>;
38
51
  };
39
52
  };
40
- export interface MigrationTools<Old extends StorageSchema<any>, New extends StorageSchema<any>> {
41
- migrate: MigrationRunner<Old, New>;
53
+ /** @deprecated */
54
+ export interface DeprecatedMigrationTools<Old extends StorageSchema<any>, New extends StorageSchema<any>> {
55
+ migrate: DeprecatedMigrationRunner<Old, New>;
42
56
  identity: <T>(val: T) => T;
43
57
  /**
44
58
  * @deprecated - default field values are automatically
@@ -47,31 +61,34 @@ export interface MigrationTools<Old extends StorageSchema<any>, New extends Stor
47
61
  * (old migrations can be updated!)
48
62
  */
49
63
  withDefaults: (collectionName: string, value: any) => any;
50
- queries: MigrationQueries<Old>;
51
- mutations: MigrationMutations<New>;
64
+ queries: DeprecatedMigrationQueries<Old>;
65
+ mutations: DeprecatedMigrationMutations<New>;
52
66
  info: {
53
67
  changedCollections: keyof Old['collections'][];
54
68
  addedCollections: keyof New['collections'][];
55
69
  removedCollections: keyof Old['collections'][];
56
70
  };
57
71
  }
58
- export interface MigrationEngine<Old extends StorageSchema, New extends StorageSchema> {
59
- migrate: (collection: string, strategy: MigrationStrategy<any, any>) => Promise<void>;
60
- queries: MigrationQueries<Old>;
61
- mutations: MigrationMutations<New>;
72
+ export interface MigrationEngine {
73
+ migrate: (collection: string, strategy: (val: any) => any) => Promise<void>;
74
+ queries: MigrationQueries<any>;
75
+ mutations: MigrationMutations<any>;
62
76
  /** OIDs of any new documents created during the migration */
63
77
  newOids: string[];
64
78
  /** Promises that should be resolved before completing the migration */
65
79
  awaitables: Promise<any>[];
66
80
  log: (...messages: any[]) => void;
67
81
  }
68
- declare type MigrationProcedure<Old extends StorageSchema, New extends StorageSchema> = (tools: MigrationTools<Old, New>) => Promise<void>;
82
+ /** @deprecated */
83
+ declare type DeprecatedMigrationProcedure<Old extends StorageSchema, New extends StorageSchema> = (tools: DeprecatedMigrationTools<Old, New>) => Promise<void>;
69
84
  declare type EmptySchema = {
70
85
  version: 0;
71
86
  collections: {};
72
87
  };
73
- export declare function migrate<Schema extends StorageSchema>(schema: Schema, procedure: MigrationProcedure<EmptySchema, Schema>): Migration<EmptySchema, Schema>;
74
- export declare function migrate<Old extends StorageSchema, New extends StorageSchema>(oldSchema: Old, newSchema: New, procedure: MigrationProcedure<Old, New>): Migration<Old, New>;
88
+ /** @deprecated - use createMigration */
89
+ export declare function migrate<Schema extends StorageSchema>(schema: Schema, procedure: DeprecatedMigrationProcedure<EmptySchema, Schema>): Migration<EmptySchema, Schema>;
90
+ /** @deprecated = use createMigration */
91
+ export declare function migrate<Old extends StorageSchema, New extends StorageSchema>(oldSchema: Old, newSchema: New, procedure: DeprecatedMigrationProcedure<Old, New>): Migration<Old, New>;
75
92
  export interface MigrationIndexDescription {
76
93
  name: string;
77
94
  multiEntry: boolean;
@@ -82,7 +99,7 @@ export interface Migration<Old extends StorageSchema = any, New extends StorageS
82
99
  version: number;
83
100
  oldSchema: Old;
84
101
  newSchema: New;
85
- migrate: (engine: MigrationEngine<Old, New>) => Promise<void>;
102
+ migrate: (engine: MigrationEngine) => Promise<void>;
86
103
  /** Collections which are added in the new schema and not present in the old */
87
104
  addedCollections: string[];
88
105
  /** Collections which were removed from the old schema */
@@ -97,9 +114,59 @@ export interface Migration<Old extends StorageSchema = any, New extends StorageS
97
114
  removedIndexes: Record<string, MigrationIndexDescription[]>;
98
115
  }
99
116
  export declare function migrationRange(from: number, to: number): number[];
117
+ /** @deprecated - use createMigration with no procedure function */
100
118
  export declare function createDefaultMigration(schema: StorageSchema): Migration<{
101
119
  version: 0;
102
120
  collections: {};
103
121
  }>;
122
+ /** @deprecated - use createMigration with no procedure function */
104
123
  export declare function createDefaultMigration<Old extends StorageSchema>(oldSchema: Old, newSchema: StorageSchema): Migration<Old>;
124
+ /** New, simpler type-safety migration tools */
125
+ declare type DocumentShape<Init = any, Snapshot = any> = {
126
+ init: Init;
127
+ snapshot: Snapshot;
128
+ };
129
+ declare type SchemaDocuments = Record<string, DocumentShape>;
130
+ declare type CollectionProcedure<OldSnapshot, NewInit> = {
131
+ (old: OldSnapshot): NewInit | Promise<NewInit>;
132
+ };
133
+ declare type MigrationQueries<Old extends SchemaDocuments> = {
134
+ [Key in keyof Old]: {
135
+ get(primaryKey: string): Promise<Old[Key]['snapshot'] | undefined>;
136
+ findOne(query: CollectionFilter): Promise<Old[Key]['snapshot'] | undefined>;
137
+ findAll(query?: CollectionFilter): Promise<Old[Key]['snapshot'][]>;
138
+ };
139
+ };
140
+ declare type MigrationMutations<New extends SchemaDocuments> = {
141
+ [Key in keyof New]: {
142
+ put(document: New[Key]['init']): Promise<New[Key]['snapshot']>;
143
+ delete(primaryKey: string): Promise<void>;
144
+ };
145
+ };
146
+ declare type MigrationTools<Old extends SchemaDocuments, New extends SchemaDocuments> = {
147
+ /**
148
+ * Process a change in a collection's documents by taking in each existing
149
+ * document and returning its new shape. This is typed so you can be
150
+ * confident the proper transformations are made.
151
+ */
152
+ migrate: <Collection extends keyof Old & keyof New>(collection: Collection, strategy: CollectionProcedure<Old[Collection]['snapshot'], New[Collection]['init']>) => Promise<void>;
153
+ mutations: MigrationMutations<New>;
154
+ queries: MigrationQueries<Old>;
155
+ info: {
156
+ changedCollections: (keyof Old & keyof New)[];
157
+ addedCollections: (keyof New)[];
158
+ removedCollections: (keyof Old)[];
159
+ };
160
+ };
161
+ declare type MigrationProcedure<Old extends SchemaDocuments, New extends SchemaDocuments> = {
162
+ (tools: MigrationTools<Old, New>): Promise<void>;
163
+ };
164
+ declare type InitialMigrationTools<New extends SchemaDocuments> = {
165
+ mutations: MigrationMutations<New>;
166
+ };
167
+ declare type InitialMigrationProcedure<New extends SchemaDocuments> = {
168
+ (tools: InitialMigrationTools<New>): Promise<void>;
169
+ };
170
+ export declare function createMigration<New extends SchemaDocuments>(newSchema: StorageSchema, procedure?: InitialMigrationProcedure<New>): any;
171
+ export declare function createMigration<Old extends SchemaDocuments, New extends SchemaDocuments>(oldSchema: StorageSchema, newSchema: StorageSchema, procedure?: MigrationProcedure<Old, New>): any;
105
172
  export {};
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.createDefaultMigration = exports.migrationRange = exports.migrate = void 0;
3
+ exports.createMigration = exports.createDefaultMigration = exports.migrationRange = exports.migrate = void 0;
4
4
  const index_js_1 = require("./index.js");
5
5
  const emptySchema = {
6
6
  version: 0,
@@ -133,25 +133,16 @@ exports.migrationRange = migrationRange;
133
133
  function getIndexes(collection) {
134
134
  if (!collection)
135
135
  return [];
136
- const fields = Object.keys(collection.fields)
137
- .filter((key) => collection.fields[key].indexed)
138
- .map((key) => ({
139
- name: key,
140
- multiEntry: collection.fields[key].type === 'array',
141
- synthetic: false,
142
- compound: false,
143
- }));
144
136
  return [
145
- ...fields,
146
- ...Object.keys(collection.synthetics || {}).map((key) => ({
137
+ ...Object.keys(collection.indexes || {}).map((key) => ({
147
138
  name: key,
148
- multiEntry: ['array', 'string[]', 'number[]', 'boolean[]'].includes(collection.synthetics[key].type),
139
+ multiEntry: ['array', 'string[]', 'number[]', 'boolean[]'].includes(collection.indexes[key].type),
149
140
  synthetic: true,
150
141
  compound: false,
151
142
  })),
152
143
  ...Object.keys(collection.compounds || {}).map((key) => ({
153
144
  name: key,
154
- multiEntry: collection.compounds[key].of.some((fieldName) => (collection.fields[fieldName] || collection.synthetics[fieldName])
145
+ multiEntry: collection.compounds[key].of.some((fieldName) => (collection.fields[fieldName] || collection.indexes[fieldName])
155
146
  .type === 'array'),
156
147
  synthetic: false,
157
148
  compound: true,
@@ -175,4 +166,137 @@ function createDefaultMigration(schema, newSchema) {
175
166
  });
176
167
  }
177
168
  exports.createDefaultMigration = createDefaultMigration;
169
+ function createMigration(maybeOldSchema, maybeNewSchemaOrProcedure, maybeProcedure) {
170
+ const isProcedureSecondArgument = typeof maybeNewSchemaOrProcedure === 'function' ||
171
+ maybeNewSchemaOrProcedure === undefined;
172
+ const oldSchema = isProcedureSecondArgument ? emptySchema : maybeOldSchema;
173
+ const newSchema = isProcedureSecondArgument
174
+ ? maybeOldSchema
175
+ : maybeNewSchemaOrProcedure;
176
+ const procedure = isProcedureSecondArgument
177
+ ? maybeNewSchemaOrProcedure
178
+ : maybeProcedure;
179
+ (0, index_js_1.assert)(oldSchema, 'Invalid arguments to createMigration');
180
+ (0, index_js_1.assert)(newSchema, 'Invalid arguments to createMigration');
181
+ const { changedCollections, addedCollections, removedCollections, addedIndexes, removedIndexes, autoMigratedCollections, autoMigration, } = getMigrationInfo(oldSchema, newSchema);
182
+ return {
183
+ version: newSchema.version,
184
+ migrate: async (engine) => {
185
+ const migratedCollections = [];
186
+ const migrate = async (collection, strategy) => {
187
+ const auto = autoMigration(collection);
188
+ const wrapped = async (val) => {
189
+ const baseValue = await strategy(val);
190
+ // assign OID from original value in case user's strategy
191
+ // involves cloning
192
+ (0, index_js_1.assignOid)(baseValue, (0, index_js_1.getOid)(val));
193
+ const result = auto(baseValue);
194
+ return result;
195
+ };
196
+ // @ts-ignore
197
+ await engine.migrate(collection, wrapped);
198
+ migratedCollections.push(collection);
199
+ // since the user migrated this one and we wrap their
200
+ // strategy with auto-migration, we can remove it from
201
+ // the auto-migration list
202
+ autoMigratedCollections.delete(collection);
203
+ };
204
+ await (procedure === null || procedure === void 0 ? void 0 : procedure({
205
+ migrate,
206
+ info: {
207
+ changedCollections,
208
+ addedCollections,
209
+ removedCollections,
210
+ },
211
+ queries: engine.queries,
212
+ mutations: engine.mutations,
213
+ }));
214
+ // mandatory migration of fields which had defaults added or
215
+ // fields removed but weren't migrated by the user
216
+ if (newSchema.version > 1) {
217
+ engine.log('debug', 'auto-migrating collections with new defaults', autoMigratedCollections);
218
+ for (const name of autoMigratedCollections) {
219
+ await engine.migrate(name, autoMigration(name));
220
+ migratedCollections.push(name);
221
+ }
222
+ const unmigrated = changedCollections.filter((collection) => !migratedCollections.includes(collection));
223
+ if (unmigrated.length > 0) {
224
+ // TODO: does this deserve a full-on error?
225
+ console.error(`Unmigrated changed collections from version ${oldSchema.version} to version ${newSchema.version}:`, unmigrated);
226
+ }
227
+ }
228
+ },
229
+ removedCollections,
230
+ addedIndexes,
231
+ removedIndexes,
232
+ allCollections: Object.keys(newSchema.collections),
233
+ changedCollections,
234
+ addedCollections,
235
+ oldCollections: Object.keys(oldSchema.collections),
236
+ oldSchema,
237
+ newSchema,
238
+ };
239
+ }
240
+ exports.createMigration = createMigration;
241
+ // common tools
242
+ function getMigrationInfo(oldSchema, newSchema) {
243
+ const changedCollections = Object.keys(newSchema.collections).filter((key) => oldSchema.collections[key] &&
244
+ (0, index_js_1.stableStringify)(oldSchema.collections[key]) !==
245
+ (0, index_js_1.stableStringify)(newSchema.collections[key]));
246
+ const removedCollections = Object.keys(oldSchema.collections).filter((key) => !newSchema.collections[key]);
247
+ const addedCollections = Object.keys(newSchema.collections).filter((key) => !oldSchema.collections[key]);
248
+ // collections which added one or more field defaults
249
+ const autoMigratedCollections = new Set();
250
+ for (const collection of changedCollections) {
251
+ const oldFields = oldSchema.collections[collection].fields;
252
+ const newFields = newSchema.collections[collection].fields;
253
+ // a new default was added - we can auto-migrate it
254
+ if (Object.keys(newFields).some((key) => !(0, index_js_1.hasDefault)(oldFields[key]) && (0, index_js_1.hasDefault)(newFields[key]))) {
255
+ autoMigratedCollections.add(collection);
256
+ }
257
+ // a field was removed - we can auto-migrate it
258
+ if (Object.keys(oldFields).some((key) => !newFields[key])) {
259
+ autoMigratedCollections.add(collection);
260
+ }
261
+ }
262
+ const addedIndexes = {};
263
+ const removedIndexes = {};
264
+ for (const changed of [...changedCollections, ...addedCollections]) {
265
+ const oldIndexes = getIndexes(oldSchema.collections[changed]);
266
+ const newIndexes = getIndexes(newSchema.collections[changed]);
267
+ const added = newIndexes.filter((index) => !oldIndexes.find((i) => i.name === index.name));
268
+ const removed = oldIndexes.filter((index) => !newIndexes.find((i) => i.name === index.name));
269
+ if (added.length > 0) {
270
+ addedIndexes[changed] = added;
271
+ // FIXME: don't o(n^2) this
272
+ if (changedCollections.includes(changed)) {
273
+ autoMigratedCollections.add(changed);
274
+ }
275
+ }
276
+ if (removed.length > 0) {
277
+ removedIndexes[changed] = removed;
278
+ // FIXME: don't o(n^2) this
279
+ if (changedCollections.includes(changed)) {
280
+ autoMigratedCollections.add(changed);
281
+ }
282
+ }
283
+ }
284
+ const withDefaults = (collectionName, val) => {
285
+ return (0, index_js_1.addFieldDefaults)(newSchema.collections[collectionName], val);
286
+ };
287
+ const autoMigration = (collectionName) => (val) => {
288
+ const collection = newSchema.collections[collectionName];
289
+ return (0, index_js_1.addFieldDefaults)(collection, (0, index_js_1.removeExtraProperties)(collection, val));
290
+ };
291
+ return {
292
+ changedCollections,
293
+ addedCollections,
294
+ removedCollections,
295
+ addedIndexes,
296
+ removedIndexes,
297
+ autoMigratedCollections,
298
+ withDefaults,
299
+ autoMigration,
300
+ };
301
+ }
178
302
  //# sourceMappingURL=migration.js.map
@@ -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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"}
@@ -80,8 +80,15 @@ export declare function normalizeFirstLevel(obj: any): {
80
80
  export declare function getOidRoot(oid: ObjectIdentifier): string;
81
81
  /**
82
82
  * Returns an inclusive range of OIDs that represent
83
- * a root object and all of its sub-objects.
83
+ * all of an OID's possible sub-objects.
84
84
  */
85
- export declare function getOidRange(oid: ObjectIdentifier): string[];
85
+ export declare function getOidSubIdRange(oid: ObjectIdentifier): string[];
86
86
  export declare function getRoots(oids: ObjectIdentifier[]): string[];
87
87
  export declare function areOidsRelated(oidA: ObjectIdentifier, oidB: ObjectIdentifier): boolean;
88
+ /**
89
+ * Recursively rewrites any OIDs in an object which are 'foreign' -
90
+ * i.e. relate to some other object/entity - to be local to the
91
+ * current object. This is deterministic, so it can be done
92
+ * on multiple clients independently with predictable results.
93
+ */
94
+ export declare function fixForeignOids(obj: any): void;