@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
@@ -1 +1 @@
1
- {"version":3,"file":"operation.test.js","sourceRoot":"","sources":["../../src/operation.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"operation.test.js","sourceRoot":"","sources":["../../src/operation.test.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const vitest_1 = require("vitest");
4
- const defaults_js_1 = require("./defaults.js");
4
+ const fields_js_1 = require("./fields.js");
5
5
  const oids_js_1 = require("../oids.js");
6
6
  (0, vitest_1.describe)('getting field defaults', () => {
7
7
  (0, vitest_1.it)('does not apply the same oid from the previous application', () => {
@@ -12,9 +12,9 @@ const oids_js_1 = require("../oids.js");
12
12
  name: 'test',
13
13
  },
14
14
  };
15
- const first = (0, defaults_js_1.getFieldDefault)(field);
15
+ const first = (0, fields_js_1.getFieldDefault)(field);
16
16
  (0, oids_js_1.assignOid)(first, (0, oids_js_1.createOid)('test', '1'));
17
- const second = (0, defaults_js_1.getFieldDefault)(field);
17
+ const second = (0, fields_js_1.getFieldDefault)(field);
18
18
  (0, vitest_1.expect)((0, oids_js_1.maybeGetOid)(second)).toBe(undefined);
19
19
  });
20
20
  });
@@ -1 +1 @@
1
- {"version":3,"file":"defaults.test.js","sourceRoot":"","sources":["../../../src/schema/defaults.test.ts"],"names":[],"mappings":";;AAAA,mCAA8C;AAC9C,+CAAgD;AAChD,wCAAuE;AAEvE,IAAA,iBAAQ,EAAC,wBAAwB,EAAE,GAAG,EAAE;IACvC,IAAA,WAAE,EAAC,2DAA2D,EAAE,GAAG,EAAE;QACpE,MAAM,KAAK,GAAG;YACb,IAAI,EAAE,KAAK;YACX,OAAO,EAAE;gBACR,EAAE,EAAE,KAAK;gBACT,IAAI,EAAE,MAAM;aACZ;SACQ,CAAC;QACX,MAAM,KAAK,GAAG,IAAA,6BAAe,EAAC,KAAK,CAAC,CAAC;QACrC,IAAA,mBAAS,EAAC,KAAK,EAAE,IAAA,mBAAS,EAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC;QACzC,MAAM,MAAM,GAAG,IAAA,6BAAe,EAAC,KAAK,CAAC,CAAC;QACtC,IAAA,eAAM,EAAC,IAAA,qBAAW,EAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC7C,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"defaults.test.js","sourceRoot":"","sources":["../../../src/schema/defaults.test.ts"],"names":[],"mappings":";;AAAA,mCAA8C;AAC9C,2CAA8C;AAC9C,wCAAuE;AAEvE,IAAA,iBAAQ,EAAC,wBAAwB,EAAE,GAAG,EAAE;IACvC,IAAA,WAAE,EAAC,2DAA2D,EAAE,GAAG,EAAE;QACpE,MAAM,KAAK,GAAG;YACb,IAAI,EAAE,KAAK;YACX,OAAO,EAAE;gBACR,EAAE,EAAE,KAAK;gBACT,IAAI,EAAE,MAAM;aACZ;SACQ,CAAC;QACX,MAAM,KAAK,GAAG,IAAA,2BAAe,EAAC,KAAK,CAAC,CAAC;QACrC,IAAA,mBAAS,EAAC,KAAK,EAAE,IAAA,mBAAS,EAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC;QACzC,MAAM,MAAM,GAAG,IAAA,2BAAe,EAAC,KAAK,CAAC,CAAC;QACtC,IAAA,eAAM,EAAC,IAAA,qBAAW,EAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC7C,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC,CAAC"}
@@ -1,4 +1,7 @@
1
1
  import type { StorageFieldSchema, StorageCollectionSchema } from './types.js';
2
+ export declare function isNullable(field: StorageFieldSchema): boolean | undefined;
2
3
  export declare function addFieldDefaults(collection: StorageCollectionSchema, value: any): any;
3
4
  export declare function traverseCollectionFieldsAndApplyDefaults(value: any, field: StorageFieldSchema): any;
4
5
  export declare function getFieldDefault(field: StorageFieldSchema): any;
6
+ export declare function removeExtraProperties(collection: StorageCollectionSchema, value: any): any;
7
+ export declare function traverseCollectionFieldsAndRemoveExtraProperties(value: any, field: StorageFieldSchema): void;
@@ -1,11 +1,23 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getFieldDefault = exports.traverseCollectionFieldsAndApplyDefaults = exports.addFieldDefaults = void 0;
3
+ exports.traverseCollectionFieldsAndRemoveExtraProperties = exports.removeExtraProperties = exports.getFieldDefault = exports.traverseCollectionFieldsAndApplyDefaults = exports.addFieldDefaults = exports.isNullable = void 0;
4
4
  const oids_js_1 = require("../oids.js");
5
+ const utils_js_1 = require("../utils.js");
6
+ function isNullable(field) {
7
+ if (field.type === 'any')
8
+ return true;
9
+ if (field.type === 'map')
10
+ return false;
11
+ return field.nullable;
12
+ }
13
+ exports.isNullable = isNullable;
5
14
  function addFieldDefaults(collection, value) {
6
15
  for (const [key, field] of Object.entries(collection.fields)) {
7
16
  const defaultValue = getFieldDefault(field);
8
- if (defaultValue !== undefined && value[key] === undefined) {
17
+ if ((defaultValue !== undefined && value[key] === undefined) ||
18
+ // covers the case where a previously nullable field
19
+ // now has a default during a new migration
20
+ (!isNullable(field) && value[key] === null)) {
9
21
  value[key] = defaultValue;
10
22
  }
11
23
  if (value[key]) {
@@ -69,4 +81,37 @@ function getFieldDefault(field) {
69
81
  return undefined;
70
82
  }
71
83
  exports.getFieldDefault = getFieldDefault;
72
- //# sourceMappingURL=defaults.js.map
84
+ function removeExtraProperties(collection, value) {
85
+ for (const [key, fieldValue] of Object.entries(value)) {
86
+ // MUST NOT DELETE THESE!
87
+ if (key === oids_js_1.OID_KEY || key === oids_js_1.LEGACY_OID_KEY)
88
+ continue;
89
+ if (!collection.fields[key]) {
90
+ delete value[key];
91
+ }
92
+ else {
93
+ traverseCollectionFieldsAndRemoveExtraProperties(fieldValue, collection.fields[key]);
94
+ }
95
+ }
96
+ return value;
97
+ }
98
+ exports.removeExtraProperties = removeExtraProperties;
99
+ function traverseCollectionFieldsAndRemoveExtraProperties(value, field) {
100
+ if ((0, utils_js_1.isObject)(value) && field.type === 'object') {
101
+ for (const [key, fieldValue] of Object.entries(value)) {
102
+ if (!field.properties[key]) {
103
+ delete value[key];
104
+ }
105
+ else {
106
+ traverseCollectionFieldsAndRemoveExtraProperties(fieldValue, field.properties[key]);
107
+ }
108
+ }
109
+ }
110
+ else if (Array.isArray(value) && field.type === 'array') {
111
+ for (const item of value) {
112
+ traverseCollectionFieldsAndRemoveExtraProperties(item, field.items);
113
+ }
114
+ }
115
+ }
116
+ exports.traverseCollectionFieldsAndRemoveExtraProperties = traverseCollectionFieldsAndRemoveExtraProperties;
117
+ //# sourceMappingURL=fields.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fields.js","sourceRoot":"","sources":["../../../src/schema/fields.ts"],"names":[],"mappings":"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"}
@@ -5,4 +5,4 @@ export declare function schema<Schema extends StorageSchema<{
5
5
  }>>(input: Schema): Schema;
6
6
  export * from './types.js';
7
7
  export * from './indexFilters.js';
8
- export * from './defaults.js';
8
+ export * from './fields.js';
@@ -25,5 +25,5 @@ function schema(input) {
25
25
  exports.schema = schema;
26
26
  __exportStar(require("./types.js"), exports);
27
27
  __exportStar(require("./indexFilters.js"), exports);
28
- __exportStar(require("./defaults.js"), exports);
28
+ __exportStar(require("./fields.js"), exports);
29
29
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/schema/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAQA,SAAgB,UAAU,CAIxB,KAA6D;IAC9D,OAAO,KAAK,CAAC;AACd,CAAC;AAND,gCAMC;AAED,SAAgB,MAAM,CAIpB,KAAa;IACd,OAAO,KAAK,CAAC;AACd,CAAC;AAND,wBAMC;AAED,6CAA2B;AAE3B,oDAAkC;AAClC,gDAA8B"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/schema/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAQA,SAAgB,UAAU,CAIxB,KAA6D;IAC9D,OAAO,KAAK,CAAC;AACd,CAAC;AAND,gCAMC;AAED,SAAgB,MAAM,CAIpB,KAAa;IACd,OAAO,KAAK,CAAC;AACd,CAAC;AAND,wBAMC;AAED,6CAA2B;AAE3B,oDAAkC;AAClC,8CAA4B"}
@@ -0,0 +1,3 @@
1
+ import { StorageCollectionSchema, StorageFieldSchema } from './types.js';
2
+ export declare function validateEntity(schema: StorageCollectionSchema, entity: any): void;
3
+ export declare function validateEntityField(field: StorageFieldSchema, value: any, fieldPath?: string[]): void;
@@ -0,0 +1,87 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.validateEntityField = exports.validateEntity = void 0;
4
+ const oids_js_1 = require("../oids.js");
5
+ const utils_js_1 = require("../utils.js");
6
+ function validateEntity(schema, entity) {
7
+ for (const [key, value] of Object.entries(entity)) {
8
+ if (!schema.fields[key]) {
9
+ throw new Error(`Invalid field "${key}"`);
10
+ }
11
+ if (value) {
12
+ validateEntityField(schema.fields[key], value);
13
+ }
14
+ }
15
+ }
16
+ exports.validateEntity = validateEntity;
17
+ function validateEntityField(field, value, fieldPath = []) {
18
+ if (field.type === 'object') {
19
+ if (!(0, utils_js_1.isObject)(value)) {
20
+ if (value === null && field.nullable)
21
+ return;
22
+ throw new Error(`Expected object${field.nullable ? ' or null' : ''} for field ${formatField(fieldPath)}}`);
23
+ }
24
+ for (const [key, subField] of Object.entries(field.properties)) {
25
+ if (value[key]) {
26
+ validateEntityField(subField, value[key]);
27
+ }
28
+ }
29
+ for (const key of Object.keys(value)) {
30
+ if (!field.properties[key]) {
31
+ throw new Error(`Invalid field "${key}" on value ${formatField(fieldPath)}`);
32
+ }
33
+ }
34
+ }
35
+ else if (field.type === 'array') {
36
+ if (!Array.isArray(value)) {
37
+ if (value === null && field.nullable)
38
+ return;
39
+ throw new Error(`Expected array${field.nullable ? ' or null' : ''} for field ${formatField(fieldPath)}}`);
40
+ }
41
+ for (const item of value) {
42
+ validateEntityField(field.items, item);
43
+ }
44
+ }
45
+ else if (field.type === 'map') {
46
+ if (!(0, utils_js_1.isObject)(value)) {
47
+ throw new Error(`Expected map for field ${formatField(fieldPath)}}`);
48
+ }
49
+ for (const [key, item] of Object.entries(value)) {
50
+ // santiy check to weed out any id field
51
+ if (key === oids_js_1.OID_KEY || key === oids_js_1.LEGACY_OID_KEY)
52
+ continue;
53
+ validateEntityField(field.values, item);
54
+ }
55
+ }
56
+ else if (field.type === 'string') {
57
+ if (typeof value !== 'string') {
58
+ if (value === null && field.nullable)
59
+ return;
60
+ throw new Error(`Expected string ${field.nullable ? ' or null' : ''} for field ${formatField(fieldPath)}}`);
61
+ }
62
+ }
63
+ else if (field.type === 'boolean') {
64
+ if (typeof value !== 'boolean') {
65
+ if (value === null && field.nullable)
66
+ return;
67
+ throw new Error(`Expected boolean ${field.nullable ? ' or null' : ''} for field ${formatField(fieldPath)}}`);
68
+ }
69
+ }
70
+ else if (field.type === 'number') {
71
+ if (typeof value !== 'number') {
72
+ if (value === null && field.nullable)
73
+ return;
74
+ throw new Error(`Expected number ${field.nullable ? ' or null' : ''} for field ${formatField(fieldPath)}}`);
75
+ }
76
+ }
77
+ else if (field.type === 'file') {
78
+ if (value === null && !field.nullable) {
79
+ throw new Error(`Expected file for field ${formatField(fieldPath)}}`);
80
+ }
81
+ }
82
+ }
83
+ exports.validateEntityField = validateEntityField;
84
+ function formatField(fieldPath) {
85
+ return fieldPath.join('.');
86
+ }
87
+ //# sourceMappingURL=validation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validation.js","sourceRoot":"","sources":["../../../src/schema/validation.ts"],"names":[],"mappings":"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"}
@@ -6,7 +6,11 @@ export declare function getSortedIndex<T>(array: T[], insert: T, compare: (a: T,
6
6
  * of key insertion order
7
7
  */
8
8
  export declare function stableStringify(obj: any): string;
9
- export declare function cloneDeep<T>(obj: T): T;
9
+ /**
10
+ * A version of structured cloning which preserves object identity
11
+ * references in the system.
12
+ */
13
+ export declare function cloneDeep<T>(obj: T, copyOids?: boolean): T;
10
14
  export declare function hashObject(obj: any): string;
11
15
  export declare function isObject(obj: any): any;
12
16
  export declare function roughSizeOfObject(object: any): number;
package/dist/cjs/utils.js CHANGED
@@ -51,20 +51,24 @@ function stableStringify(obj) {
51
51
  return JSON.stringify(obj, orderedReplacer);
52
52
  }
53
53
  exports.stableStringify = stableStringify;
54
- function cloneDeep(obj) {
55
- if (isObject(obj)) {
54
+ /**
55
+ * A version of structured cloning which preserves object identity
56
+ * references in the system.
57
+ */
58
+ function cloneDeep(obj, copyOids = true) {
59
+ if (isObject(obj) || Array.isArray(obj)) {
56
60
  const oid = (0, oids_js_1.maybeGetOid)(obj);
57
61
  let clone;
58
62
  if (Array.isArray(obj)) {
59
- clone = obj.map(cloneDeep);
63
+ clone = obj.map((v) => cloneDeep(v, copyOids));
60
64
  }
61
65
  else {
62
66
  clone = {};
63
67
  for (const [key, value] of Object.entries(obj)) {
64
- clone[key] = cloneDeep(value);
68
+ clone[key] = cloneDeep(value, copyOids);
65
69
  }
66
70
  }
67
- if (oid) {
71
+ if (copyOids && oid) {
68
72
  (0, oids_js_1.assignOid)(clone, oid);
69
73
  }
70
74
  return clone;
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"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"}
@@ -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 = {
@@ -1,4 +1,4 @@
1
- import { stableStringify, addFieldDefaults, } from './index.js';
1
+ import { stableStringify, addFieldDefaults, removeExtraProperties, assignOid, getOid, } from './index.js';
2
2
  const emptySchema = {
3
3
  version: 0,
4
4
  collections: {},
@@ -20,6 +20,20 @@ export function migrate(oldSchemaOrNewSchema, newSchemaOrProcedure, procedureIfT
20
20
  stableStringify(newSchema.collections[key]));
21
21
  const removedCollections = Object.keys(oldSchema.collections).filter((key) => !newSchema.collections[key]);
22
22
  const addedCollections = Object.keys(newSchema.collections).filter((key) => !oldSchema.collections[key]);
23
+ // collections which added one or more field defaults
24
+ const autoMigratedCollections = new Set();
25
+ for (const collection of changedCollections) {
26
+ const oldFields = oldSchema.collections[collection].fields;
27
+ const newFields = newSchema.collections[collection].fields;
28
+ // a new default was added - we can auto-migrate it
29
+ 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); })) {
30
+ autoMigratedCollections.add(collection);
31
+ }
32
+ // a field was removed - we can auto-migrate it
33
+ if (Object.keys(oldFields).some((key) => !newFields[key])) {
34
+ autoMigratedCollections.add(collection);
35
+ }
36
+ }
23
37
  const addedIndexes = {};
24
38
  const removedIndexes = {};
25
39
  for (const changed of [...changedCollections, ...addedCollections]) {
@@ -34,20 +48,38 @@ export function migrate(oldSchemaOrNewSchema, newSchemaOrProcedure, procedureIfT
34
48
  removedIndexes[changed] = removed;
35
49
  }
36
50
  }
51
+ const withDefaults = (collectionName, val) => {
52
+ return addFieldDefaults(newSchema.collections[collectionName], val);
53
+ };
54
+ const autoMigration = (collectionName) => (val) => {
55
+ const collection = newSchema.collections[collectionName];
56
+ return addFieldDefaults(collection, removeExtraProperties(collection, val));
57
+ };
37
58
  return {
38
59
  version: newSchema.version,
39
60
  migrate: async (engine) => {
40
61
  const migratedCollections = [];
41
62
  await procedure({
42
63
  migrate: async (collection, strategy) => {
64
+ const auto = autoMigration(collection);
65
+ const wrapped = async (val) => {
66
+ const baseValue = await strategy(val);
67
+ // assign OID from original value in case user's strategy
68
+ // involves cloning
69
+ assignOid(baseValue, getOid(val));
70
+ const result = auto(baseValue);
71
+ return result;
72
+ };
43
73
  // @ts-ignore
44
- await engine.migrate(collection, strategy);
74
+ await engine.migrate(collection, wrapped);
45
75
  migratedCollections.push(collection);
76
+ // since the user migrated this one and we wrap their
77
+ // strategy with auto-migration, we can remove it from
78
+ // the auto-migration list
79
+ autoMigratedCollections.delete(collection);
46
80
  },
47
81
  identity: (val) => val,
48
- withDefaults: (collectionName, val) => {
49
- return addFieldDefaults(newSchema.collections[collectionName], val);
50
- },
82
+ withDefaults,
51
83
  info: {
52
84
  changedCollections,
53
85
  addedCollections,
@@ -56,8 +88,16 @@ export function migrate(oldSchemaOrNewSchema, newSchemaOrProcedure, procedureIfT
56
88
  queries: engine.queries,
57
89
  mutations: engine.mutations,
58
90
  });
91
+ // mandatory migration of fields which had defaults added or
92
+ // fields removed but weren't migrated by the user
93
+ engine.log('debug', 'auto-migrating collections with new defaults', autoMigratedCollections);
94
+ for (const name of autoMigratedCollections) {
95
+ await engine.migrate(name, autoMigration(name));
96
+ migratedCollections.push(name);
97
+ }
59
98
  const unmigrated = changedCollections.filter((collection) => !migratedCollections.includes(collection));
60
99
  if (unmigrated.length > 0) {
100
+ // TODO: does this deserve a full-on error?
61
101
  console.error('Unmigrated changed collections:', unmigrated);
62
102
  }
63
103
  },
@@ -110,12 +150,12 @@ export function createDefaultMigration(schema, newSchema) {
110
150
  version: 0,
111
151
  collections: {},
112
152
  };
113
- return migrate(oldSchema, newSchema || schema, async ({ migrate, withDefaults, info }) => {
153
+ return migrate(oldSchema, newSchema || schema, async ({ migrate, info }) => {
114
154
  if ((newSchema || schema).version === 1)
115
155
  return;
116
156
  for (const collection of info.changedCollections) {
117
157
  // @ts-ignore indefinite type resolution
118
- await migrate(collection, (old) => withDefaults(collection, old));
158
+ await migrate(collection, (old) => old);
119
159
  }
120
160
  });
121
161
  }
@@ -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/esm/oids.js CHANGED
@@ -26,6 +26,9 @@ export function maybeGetOid(obj) {
26
26
  }
27
27
  export function assignOid(obj, oid) {
28
28
  assert(isObject(obj), `Only objects can be assigned OIDs, received ${JSON.stringify(obj)}`);
29
+ if (hasOid(obj)) {
30
+ removeOid(obj);
31
+ }
29
32
  oidMap.set(obj, oid);
30
33
  return obj;
31
34
  }
@@ -53,6 +56,24 @@ export function ensureOid(obj, rootOid, createSubId) {
53
56
  return getOid(obj);
54
57
  }
55
58
  }
59
+ export function ensureCompatibleOid(obj, rootOid, createSubId) {
60
+ if (!hasOid(obj)) {
61
+ const oid = createSubOid(rootOid, createSubId);
62
+ assignOid(obj, oid);
63
+ return oid;
64
+ }
65
+ else {
66
+ const existingOid = getOid(obj);
67
+ if (!areOidsRelated(existingOid, rootOid)) {
68
+ const oid = createSubOid(rootOid, createSubId);
69
+ assignOid(obj, oid);
70
+ return oid;
71
+ }
72
+ else {
73
+ return getOid(obj);
74
+ }
75
+ }
76
+ }
56
77
  const SANTIIZE_PLACEHOLDERS = {
57
78
  '.': '&dot;',
58
79
  '/': '&slash;',
@@ -114,7 +135,7 @@ export function assignOidsToAllSubObjects(obj, createSubId) {
114
135
  for (let i = 0; i < obj.length; i++) {
115
136
  item = obj[i];
116
137
  if (isObject(item) && !isRef(item)) {
117
- ensureOid(item, rootOid, createSubId);
138
+ ensureCompatibleOid(item, rootOid, createSubId);
118
139
  assignOidsToAllSubObjects(item, createSubId);
119
140
  }
120
141
  }
@@ -122,7 +143,7 @@ export function assignOidsToAllSubObjects(obj, createSubId) {
122
143
  else if (isObject(obj) && !isRef(obj)) {
123
144
  for (const key of Object.keys(obj)) {
124
145
  if (isObject(obj[key]) && !isRef(obj[key])) {
125
- ensureOid(obj[key], rootOid, createSubId);
146
+ ensureCompatibleOid(obj[key], rootOid, createSubId);
126
147
  assignOidsToAllSubObjects(obj[key], createSubId);
127
148
  }
128
149
  }
@@ -334,4 +355,7 @@ export function getRoots(oids) {
334
355
  }
335
356
  return Array.from(set);
336
357
  }
358
+ export function areOidsRelated(oidA, oidB) {
359
+ return getOidRoot(oidA) === getOidRoot(oidB);
360
+ }
337
361
  //# sourceMappingURL=oids.js.map