@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.
- package/dist/cjs/batching.d.ts +1 -0
- package/dist/cjs/batching.js +3 -0
- package/dist/cjs/batching.js.map +1 -1
- package/dist/cjs/index.d.ts +1 -1
- package/dist/cjs/index.js +2 -1
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/indexes.d.ts +3 -1
- package/dist/cjs/indexes.js +26 -3
- package/dist/cjs/indexes.js.map +1 -1
- package/dist/cjs/migration.d.ts +85 -18
- package/dist/cjs/migration.js +137 -13
- package/dist/cjs/migration.js.map +1 -1
- package/dist/cjs/oids.d.ts +9 -2
- package/dist/cjs/oids.js +38 -5
- package/dist/cjs/oids.js.map +1 -1
- package/dist/cjs/oids.test.js +4 -3
- package/dist/cjs/oids.test.js.map +1 -1
- package/dist/cjs/schema/fields.d.ts +2 -0
- package/dist/cjs/schema/fields.js +29 -1
- package/dist/cjs/schema/fields.js.map +1 -1
- package/dist/cjs/schema/index.d.ts +2 -2
- package/dist/cjs/schema/index.js +25 -2
- package/dist/cjs/schema/index.js.map +1 -1
- package/dist/cjs/schema/types/collection.d.ts +12 -40
- package/dist/cjs/schema/types/compounds.d.ts +6 -7
- package/dist/cjs/schema/types/fields.d.ts +12 -2
- package/dist/cjs/schema/types/shapes.d.ts +6 -6
- package/dist/cjs/schema/types/synthetics.d.ts +11 -2
- package/dist/cjs/schema/types.d.ts +4 -4
- package/dist/cjs/utils.js +6 -1
- package/dist/cjs/utils.js.map +1 -1
- package/dist/esm/batching.d.ts +1 -0
- package/dist/esm/batching.js +3 -0
- package/dist/esm/batching.js.map +1 -1
- package/dist/esm/index.d.ts +1 -1
- package/dist/esm/index.js +1 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/indexes.d.ts +3 -1
- package/dist/esm/indexes.js +23 -2
- package/dist/esm/indexes.js.map +1 -1
- package/dist/esm/migration.d.ts +85 -18
- package/dist/esm/migration.js +136 -13
- package/dist/esm/migration.js.map +1 -1
- package/dist/esm/oids.d.ts +9 -2
- package/dist/esm/oids.js +35 -3
- package/dist/esm/oids.js.map +1 -1
- package/dist/esm/oids.test.js +5 -4
- package/dist/esm/oids.test.js.map +1 -1
- package/dist/esm/replica.js +1 -1
- package/dist/esm/replica.js.map +1 -1
- package/dist/esm/schema/fields.d.ts +2 -0
- package/dist/esm/schema/fields.js +26 -0
- package/dist/esm/schema/fields.js.map +1 -1
- package/dist/esm/schema/index.d.ts +2 -2
- package/dist/esm/schema/index.js +25 -2
- package/dist/esm/schema/index.js.map +1 -1
- package/dist/esm/schema/types/collection.d.ts +12 -40
- package/dist/esm/schema/types/compounds.d.ts +6 -7
- package/dist/esm/schema/types/fields.d.ts +12 -2
- package/dist/esm/schema/types/shapes.d.ts +6 -6
- package/dist/esm/schema/types/synthetics.d.ts +11 -2
- package/dist/esm/schema/types.d.ts +4 -4
- package/dist/esm/utils.js +3 -1
- package/dist/esm/utils.js.map +1 -1
- package/dist/tsconfig-cjs.tsbuildinfo +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +6 -3
- package/src/batching.ts +4 -0
- package/src/index.ts +1 -0
- package/src/indexes.ts +51 -12
- package/src/migration.ts +300 -57
- package/src/oids.test.ts +5 -4
- package/src/oids.ts +39 -3
- package/src/schema/fields.ts +18 -0
- package/src/schema/index.ts +30 -3
- package/src/schema/types/collection.ts +14 -112
- package/src/schema/types/compounds.ts +29 -18
- package/src/schema/types/fields.ts +12 -2
- package/src/schema/types/shapes.ts +13 -14
- package/src/schema/types/synthetics.ts +31 -2
- package/src/schema/types.ts +4 -6
- package/src/utils.ts +3 -1
package/dist/cjs/batching.d.ts
CHANGED
package/dist/cjs/batching.js
CHANGED
|
@@ -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);
|
package/dist/cjs/batching.js.map
CHANGED
|
@@ -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;
|
|
1
|
+
{"version":3,"file":"batching.js","sourceRoot":"","sources":["../../src/batching.ts"],"names":[],"mappings":"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"}
|
package/dist/cjs/index.d.ts
CHANGED
|
@@ -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);
|
package/dist/cjs/index.js.map
CHANGED
|
@@ -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,+
|
|
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"}
|
package/dist/cjs/indexes.d.ts
CHANGED
|
@@ -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)[];
|
package/dist/cjs/indexes.js
CHANGED
|
@@ -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.
|
|
81
|
-
|
|
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));
|
package/dist/cjs/indexes.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"indexes.js","sourceRoot":"","sources":["../../src/indexes.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"indexes.js","sourceRoot":"","sources":["../../src/indexes.ts"],"names":[],"mappings":"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"}
|
package/dist/cjs/migration.d.ts
CHANGED
|
@@ -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
|
-
|
|
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
|
-
|
|
26
|
-
declare type
|
|
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
|
-
|
|
32
|
-
|
|
42
|
+
/** @deprecated */
|
|
43
|
+
declare type DeprecatedMigrationQueries<Old extends StorageSchema<any>> = {
|
|
44
|
+
[Key in keyof Old['collections']]: DeprecatedMigrationQueryMaker<Old['collections'][Key]>;
|
|
33
45
|
};
|
|
34
|
-
|
|
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
|
-
|
|
41
|
-
|
|
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:
|
|
51
|
-
mutations:
|
|
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
|
|
59
|
-
migrate: (collection: string, strategy:
|
|
60
|
-
queries: MigrationQueries<
|
|
61
|
-
mutations: MigrationMutations<
|
|
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
|
-
|
|
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
|
-
|
|
74
|
-
export declare function migrate<
|
|
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
|
|
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 {};
|
package/dist/cjs/migration.js
CHANGED
|
@@ -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
|
-
...
|
|
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.
|
|
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.
|
|
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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"}
|
package/dist/cjs/oids.d.ts
CHANGED
|
@@ -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
|
-
*
|
|
83
|
+
* all of an OID's possible sub-objects.
|
|
84
84
|
*/
|
|
85
|
-
export declare function
|
|
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;
|