@verdant-web/common 2.7.0 → 2.7.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/esm/batching.d.ts +3 -4
- package/dist/esm/files.d.ts +0 -1
- package/dist/esm/migration.d.ts +1 -1
- package/dist/esm/migration.js +3 -2
- package/dist/esm/migration.js.map +1 -1
- package/dist/esm/oidsLegacy.d.ts +1 -1
- package/dist/esm/patch.d.ts +1 -1
- package/dist/esm/schema/defaults.test.js +25 -1
- package/dist/esm/schema/defaults.test.js.map +1 -1
- package/dist/esm/schema/fieldHelpers.d.ts +48 -19
- package/dist/esm/schema/fieldHelpers.js +50 -7
- package/dist/esm/schema/fieldHelpers.js.map +1 -1
- package/dist/esm/schema/fields.d.ts +2 -2
- package/dist/esm/schema/fields.js +18 -50
- package/dist/esm/schema/fields.js.map +1 -1
- package/dist/esm/schema/index.d.ts +38 -32
- package/dist/esm/schema/types/fields.d.ts +2 -0
- package/dist/esm/schema/types/shapes.d.ts +0 -1
- package/package.json +1 -1
- package/src/migration.ts +18 -16
- package/src/schema/defaults.test.ts +27 -1
- package/src/schema/fieldHelpers.ts +74 -11
- package/src/schema/fields.ts +28 -50
- package/src/schema/types/fields.ts +2 -0
package/dist/esm/batching.d.ts
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
/// <reference types="node" resolution-mode="require"/>
|
|
2
1
|
export declare class Batcher<T, UserData = any> {
|
|
3
2
|
private flusher;
|
|
4
3
|
private batches;
|
|
@@ -34,9 +33,9 @@ export declare class Batch<T, UserData = any> {
|
|
|
34
33
|
});
|
|
35
34
|
update: ({ items, max, timeout, userData, }: {
|
|
36
35
|
items: Array<T>;
|
|
37
|
-
max?: number | null
|
|
38
|
-
timeout?: number | null
|
|
39
|
-
userData?: UserData
|
|
36
|
+
max?: number | null;
|
|
37
|
+
timeout?: number | null;
|
|
38
|
+
userData?: UserData;
|
|
40
39
|
}) => void;
|
|
41
40
|
flush: () => any;
|
|
42
41
|
discard: () => void;
|
package/dist/esm/files.d.ts
CHANGED
package/dist/esm/migration.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { AuthorizationKey, CollectionFilter, StorageCollectionSchema, StorageDocument, StorageDocumentInit, StorageSchema } from './index.js';
|
|
2
2
|
/**@deprecated */
|
|
3
3
|
export interface DroppedCollectionMigrationStrategy<Old extends StorageCollectionSchema<any, any, any>> {
|
|
4
4
|
(old: Old): void | Promise<void>;
|
package/dist/esm/migration.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { addFieldDefaults, assert, assignOid, getOid, isMultiValueIndex, isRequired, removeExtraProperties, stableStringify, validateEntity, } from './index.js';
|
|
2
2
|
const emptySchema = {
|
|
3
3
|
version: 0,
|
|
4
4
|
collections: {},
|
|
@@ -264,7 +264,8 @@ function getMigrationInfo(oldSchema, newSchema) {
|
|
|
264
264
|
const oldFields = oldSchema.collections[collection].fields;
|
|
265
265
|
const newFields = newSchema.collections[collection].fields;
|
|
266
266
|
// a new default was added - we can auto-migrate it
|
|
267
|
-
if (Object.keys(newFields).some((key) => !
|
|
267
|
+
if (Object.keys(newFields).some((key) => (!oldFields[key] || isRequired(oldFields[key])) &&
|
|
268
|
+
!isRequired(newFields[key]))) {
|
|
268
269
|
autoMigratedCollections.add(collection);
|
|
269
270
|
}
|
|
270
271
|
// a field was removed - we can auto-migrate it
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"migration.js","sourceRoot":"","sources":["../../src/migration.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,eAAe,EAGf,gBAAgB,EAIhB,qBAAqB,EACrB,MAAM,EACN,SAAS,EACT,MAAM,EACN,UAAU,EACV,cAAc,EAEd,iBAAiB,GACjB,MAAM,YAAY,CAAC;AAoLpB,MAAM,WAAW,GAAgB;IAChC,OAAO,EAAE,CAAC;IACV,WAAW,EAAE,EAAE;CACf,CAAC;AAaF,MAAM,UAAU,OAAO,CACtB,oBAAyB,EACzB,oBAAyB,EACzB,qBAA2B;IAE3B,MAAM,yBAAyB,GAAG,OAAO,oBAAoB,KAAK,UAAU,CAAC;IAC7E,MAAM,SAAS,GAAG,yBAAyB;QAC1C,CAAC,CAAC,WAAW;QACb,CAAC,CAAC,oBAAoB,CAAC;IACxB,MAAM,SAAS,GAAG,yBAAyB;QAC1C,CAAC,CAAC,oBAAoB;QACtB,CAAC,CAAC,oBAAoB,CAAC;IACxB,MAAM,SAAS,GAAG,yBAAyB;QAC1C,CAAC,CAAC,oBAAoB;QACtB,CAAC,CAAC,qBAAqB,CAAC;IACzB,wCAAwC;IACxC,MAAM,kBAAkB,GAAa,MAAM,CAAC,IAAI,CAC/C,SAAS,CAAC,WAAW,CACrB,CAAC,MAAM,CACP,CAAC,GAAG,EAAE,EAAE,CACP,SAAS,CAAC,WAAW,CAAC,GAAG,CAAC;QAC1B,eAAe,CAAC,SAAS,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;YAC1C,eAAe,CAAC,SAAS,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAC7C,CAAC;IACF,MAAM,kBAAkB,GAAa,MAAM,CAAC,IAAI,CAC/C,SAAS,CAAC,WAAW,CACrB,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;IAC/C,MAAM,gBAAgB,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,MAAM,CACjE,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC,WAAW,CAAC,GAAG,CAAC,CACpC,CAAC;IACF,qDAAqD;IACrD,MAAM,uBAAuB,GAAG,IAAI,GAAG,EAAU,CAAC;IAClD,KAAK,MAAM,UAAU,IAAI,kBAAkB,EAAE,CAAC;QAC7C,MAAM,SAAS,GAAG,SAAS,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC;QAC3D,MAAM,SAAS,GAAG,SAAS,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC;QAC3D,mDAAmD;QACnD,IACC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,IAAI,CAC1B,CAAC,GAAG,EAAE,EAAE,eAAC,OAAA,CAAC,CAAA,MAAA,SAAS,CAAC,GAAG,CAAC,0CAAE,OAAO,CAAA,KAAI,MAAA,SAAS,CAAC,GAAG,CAAC,0CAAE,OAAO,CAAA,CAAA,EAAA,CAC5D,EACA,CAAC;YACF,uBAAuB,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QACzC,CAAC;QACD,+CAA+C;QAC/C,IAAI,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;YAC3D,uBAAuB,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QACzC,CAAC;IACF,CAAC;IAED,MAAM,YAAY,GAAgD,EAAE,CAAC;IACrE,MAAM,cAAc,GAAgD,EAAE,CAAC;IACvE,KAAK,MAAM,OAAO,IAAI,CAAC,GAAG,kBAAkB,EAAE,GAAG,gBAAgB,CAAC,EAAE,CAAC;QACpE,MAAM,UAAU,GAAG,UAAU,CAAC,SAAS,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC;QAC9D,MAAM,UAAU,GAAG,UAAU,CAAC,SAAS,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC;QAC9D,MAAM,KAAK,GAAG,UAAU,CAAC,MAAM,CAC9B,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI,CAAC,CACzD,CAAC;QACF,MAAM,OAAO,GAAG,UAAU,CAAC,MAAM,CAChC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI,CAAC,CACzD,CAAC;QACF,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACtB,YAAY,CAAC,OAAO,CAAC,GAAG,KAAK,CAAC;YAC9B,2BAA2B;YAC3B,IAAI,kBAAkB,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC1C,uBAAuB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YACtC,CAAC;QACF,CAAC;QACD,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxB,cAAc,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC;YAClC,2BAA2B;YAC3B,IAAI,kBAAkB,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC1C,uBAAuB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YACtC,CAAC;QACF,CAAC;IACF,CAAC;IAED,MAAM,YAAY,GAAG,CAAC,cAAsB,EAAE,GAAQ,EAAE,EAAE;QACzD,OAAO,gBAAgB,CAAC,SAAS,CAAC,WAAW,CAAC,cAAc,CAAC,EAAE,GAAG,CAAC,CAAC;IACrE,CAAC,CAAC;IACF,MAAM,aAAa,GAAG,CAAC,cAAsB,EAAE,EAAE,CAAC,CAAC,GAAQ,EAAE,EAAE;QAC9D,MAAM,UAAU,GAAG,SAAS,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC;QACzD,OAAO,gBAAgB,CAAC,UAAU,EAAE,qBAAqB,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC,CAAC;IAC7E,CAAC,CAAC;IAEF,OAAO;QACN,OAAO,EAAE,SAAS,CAAC,OAAO;QAC1B,OAAO,EAAE,KAAK,EAAE,MAAuB,EAAE,EAAE;YAC1C,MAAM,mBAAmB,GAAa,EAAE,CAAC;YACzC,MAAM,SAAS,CAAC;gBACf,OAAO,EAAE,KAAK,EAAE,UAAe,EAAE,QAAa,EAAE,EAAE;oBACjD,MAAM,IAAI,GAAG,aAAa,CAAC,UAAU,CAAC,CAAC;oBACvC,MAAM,OAAO,GAAG,KAAK,EAAE,GAAQ,EAAE,EAAE;wBAClC,MAAM,SAAS,GAAG,MAAM,QAAQ,CAAC,GAAG,CAAC,CAAC;wBACtC,yDAAyD;wBACzD,mBAAmB;wBACnB,SAAS,CAAC,SAAS,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;wBAClC,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC;wBAC/B,OAAO,MAAM,CAAC;oBACf,CAAC,CAAC;oBACF,aAAa;oBACb,MAAM,MAAM,CAAC,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;oBAC1C,mBAAmB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;oBACrC,qDAAqD;oBACrD,sDAAsD;oBACtD,0BAA0B;oBAC1B,uBAAuB,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;gBAC5C,CAAC;gBACD,QAAQ,EAAE,CAAC,GAAQ,EAAE,EAAE,CAAC,GAAG;gBAC3B,YAAY;gBACZ,IAAI,EAAE;oBACL,kBAAkB;oBAClB,gBAAgB;oBAChB,kBAAkB;iBAClB;gBACD,OAAO,EAAE,MAAM,CAAC,OAAO;gBACvB,SAAS,EAAE,MAAM,CAAC,SAAS;aAC3B,CAAC,CAAC;YAEH,4DAA4D;YAC5D,kDAAkD;YAElD,IAAI,SAAS,CAAC,OAAO,GAAG,CAAC,EAAE,CAAC;gBAC3B,MAAM,CAAC,GAAG,CACT,OAAO,EACP,8CAA8C,EAC9C,uBAAuB,CACvB,CAAC;gBACF,KAAK,MAAM,IAAI,IAAI,uBAAuB,EAAE,CAAC;oBAC5C,MAAM,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC;oBAChD,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAChC,CAAC;gBAED,MAAM,UAAU,GAAG,kBAAkB,CAAC,MAAM,CAC3C,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,mBAAmB,CAAC,QAAQ,CAAC,UAAU,CAAC,CACzD,CAAC;gBACF,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAC3B,2CAA2C;oBAC3C,OAAO,CAAC,KAAK,CACZ,+CAA+C,SAAS,CAAC,OAAO,eAAe,SAAS,CAAC,OAAO,GAAG,EACnG,UAAU,CACV,CAAC;gBACH,CAAC;YACF,CAAC;QACF,CAAC;QACD,kBAAkB;QAClB,YAAY;QACZ,cAAc;QACd,cAAc,EAAE,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC;QAClD,kBAAkB;QAClB,gBAAgB;QAChB,cAAc,EAAE,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC;QAClD,SAAS;QACT,SAAS;KACT,CAAC;AACH,CAAC;AAmDD,MAAM,UAAU,cAAc,CAAC,IAAY,EAAE,EAAU;IACtD,OAAO,CAAC,GAAG,KAAK,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC;AAC9D,CAAC;AAED,SAAS,UAAU,CAClB,UAA4B;IAE5B,IAAI,CAAC,UAAU;QAAE,OAAO,EAAE,CAAC;IAE3B,OAAO;QACN,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;YACpD,sDAAsD;YACtD,SAAS;YACT,MAAM,KAAK,GAAG,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YACtC,IAAI,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC;YAC3B,IAAI,CAAC,SAAS,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;gBAC/B,SAAS,GAAG,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC;YACjD,CAAC;YACD,MAAM,CACL,SAAS,EACT,qCAAqC,UAAU,IAAI,GAAG,6DAA6D,CACnH,CAAC;YAEF,MAAM,UAAU,GAAG,iBAAiB,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;YAEtD,OAAO;gBACN,IAAI,EAAE,GAAG;gBACT,UAAU;gBACV,SAAS,EAAE,IAAI;gBACf,QAAQ,EAAE,KAAK;gBACf,IAAI,EAAE,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,OAAO,CAAC,IAAI,EAAE,EAAE,CAAQ;aACzC,CAAC;QACH,CAAC,CAAC;QACF,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;YACxD,IAAI,EAAE,GAAG;YACT,UAAU,EAAE,iBAAiB,CAAC,UAAU,EAAE,GAAG,CAAC;YAC9C,SAAS,EAAE,KAAK;YAChB,QAAQ,EAAE,IAAI;YACd,IAAI,EAAE,QAAiB;SACvB,CAAC,CAAC;KACH,CAAC;AACH,CAAC;AAWD,MAAM,UAAU,sBAAsB,CACrC,MAAqB,EACrB,SAA8B;IAE9B,IAAI,SAAS,GAAG,SAAS;QACxB,CAAC,CAAC,MAAM;QACR,CAAC,CAAC;YACA,OAAO,EAAE,CAAC;YACV,WAAW,EAAE,EAAE;SACd,CAAC;IACL,OAAO,OAAO,CAAC,SAAS,EAAE,SAAS,IAAI,MAAM,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE;QAC1E,IAAI,CAAC,SAAS,IAAI,MAAM,CAAC,CAAC,OAAO,KAAK,CAAC;YAAE,OAAO;QAEhD,KAAK,MAAM,UAAU,IAAI,IAAI,CAAC,kBAAyB,EAAE,CAAC;YACzD,wCAAwC;YACxC,MAAM,OAAO,CAAC,UAAU,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC;QACzC,CAAC;IACF,CAAC,CAAC,CAAC;AACJ,CAAC;AA4ED,MAAM,UAAU,eAAe,CAC9B,cAA6B,EAC7B,yBAE6C,EAC7C,cAAqE;IAErE,MAAM,yBAAyB,GAC9B,OAAO,yBAAyB,KAAK,UAAU;QAC/C,yBAAyB,KAAK,SAAS,CAAC;IACzC,MAAM,SAAS,GAAG,yBAAyB,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,cAAc,CAAC;IAC3E,MAAM,SAAS,GAAG,yBAAyB;QAC1C,CAAC,CAAC,cAAc;QAChB,CAAC,CAAC,yBAAyB,CAAC;IAC7B,MAAM,SAAS,GAAG,yBAAyB;QAC1C,CAAC,CAAC,yBAAyB;QAC3B,CAAC,CAAC,cAAc,CAAC;IAClB,MAAM,CAAC,SAAS,EAAE,sCAAsC,CAAC,CAAC;IAC1D,MAAM,CAAC,SAAS,EAAE,sCAAsC,CAAC,CAAC;IAC1D,MAAM,EACL,kBAAkB,EAClB,gBAAgB,EAChB,kBAAkB,EAClB,YAAY,EACZ,cAAc,EACd,uBAAuB,EACvB,aAAa,GACb,GAAG,gBAAgB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IAE3C,OAAO;QACN,OAAO,EAAE,SAAS,CAAC,OAAO;QAC1B,OAAO,EAAE,KAAK,EAAE,MAAuB,EAAE,EAAE;YAC1C,MAAM,mBAAmB,GAAa,EAAE,CAAC;YACzC,MAAM,OAAO,GAAG,KAAK,EAAE,UAAe,EAAE,QAAa,EAAE,EAAE;gBACxD,MAAM,IAAI,GAAG,aAAa,CAAC,UAAU,CAAC,CAAC;gBACvC,MAAM,OAAO,GAAG,KAAK,EAAE,GAAQ,EAAE,EAAE;oBAClC,MAAM,SAAS,GAAG,MAAM,QAAQ,CAAC,GAAG,CAAC,CAAC;oBACtC,yDAAyD;oBACzD,mBAAmB;oBACnB,SAAS,CAAC,SAAS,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;oBAClC,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC;oBAC/B,MAAM,eAAe,GAAG,cAAc,CACrC,SAAS,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC,MAAM,EACxC,MAAM,CACN,CAAC;oBACF,IAAI,eAAe,EAAE,CAAC;wBACrB,qBAAqB;oBACtB,CAAC;oBACD,OAAO,MAAM,CAAC;gBACf,CAAC,CAAC;gBACF,aAAa;gBACb,MAAM,MAAM,CAAC,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;gBAC1C,mBAAmB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;gBACrC,qDAAqD;gBACrD,sDAAsD;gBACtD,0BAA0B;gBAC1B,uBAAuB,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;YAC5C,CAAC,CAAC;YACF,MAAM,CAAA,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAG;gBACjB,OAAO;gBACP,IAAI,EAAE;oBACL,kBAAkB;oBAClB,gBAAgB;oBAChB,kBAAkB;iBAClB;gBACD,OAAO,EAAE,MAAM,CAAC,OAAO;gBACvB,SAAS,EAAE,MAAM,CAAC,SAAS;aAC3B,CAAC,CAAA,CAAC;YAEH,4DAA4D;YAC5D,kDAAkD;YAElD,IAAI,SAAS,CAAC,OAAO,GAAG,CAAC,EAAE,CAAC;gBAC3B,MAAM,CAAC,GAAG,CACT,OAAO,EACP,8CAA8C,EAC9C,uBAAuB,CACvB,CAAC;gBACF,KAAK,MAAM,IAAI,IAAI,uBAAuB,EAAE,CAAC;oBAC5C,MAAM,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC;oBAChD,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAChC,CAAC;gBAED,8CAA8C;gBAC9C,KAAK,MAAM,IAAI,IAAI,kBAAkB,EAAE,CAAC;oBACvC,MAAM,MAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;gBACrC,CAAC;gBAED,MAAM,UAAU,GAAG,kBAAkB,CAAC,MAAM,CAC3C,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,mBAAmB,CAAC,QAAQ,CAAC,UAAU,CAAC,CACzD,CAAC;gBACF,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAC3B,2CAA2C;oBAC3C,OAAO,CAAC,KAAK,CACZ,+CAA+C,SAAS,CAAC,OAAO,eAAe,SAAS,CAAC,OAAO,GAAG,EACnG,UAAU,CACV,CAAC;gBACH,CAAC;YACF,CAAC;QACF,CAAC;QACD,kBAAkB;QAClB,YAAY;QACZ,cAAc;QACd,cAAc,EAAE,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC;QAClD,kBAAkB;QAClB,gBAAgB;QAChB,cAAc,EAAE,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC;QAClD,SAAS;QACT,SAAS;KACT,CAAC;AACH,CAAC;AAED,eAAe;AACf,SAAS,gBAAgB,CAAC,SAAwB,EAAE,SAAwB;IAC3E,MAAM,kBAAkB,GAAa,MAAM,CAAC,IAAI,CAC/C,SAAS,CAAC,WAAW,CACrB,CAAC,MAAM,CACP,CAAC,GAAG,EAAE,EAAE,CACP,SAAS,CAAC,WAAW,CAAC,GAAG,CAAC;QAC1B,eAAe,CAAC,SAAS,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;YAC1C,eAAe,CAAC,SAAS,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAC7C,CAAC;IACF,MAAM,kBAAkB,GAAa,MAAM,CAAC,IAAI,CAC/C,SAAS,CAAC,WAAW,CACrB,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;IAC/C,MAAM,gBAAgB,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,MAAM,CACjE,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC,WAAW,CAAC,GAAG,CAAC,CACpC,CAAC;IACF,qDAAqD;IACrD,MAAM,uBAAuB,GAAG,IAAI,GAAG,EAAU,CAAC;IAClD,KAAK,MAAM,UAAU,IAAI,kBAAkB,EAAE,CAAC;QAC7C,MAAM,SAAS,GAAG,SAAS,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC;QAC3D,MAAM,SAAS,GAAG,SAAS,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC;QAC3D,mDAAmD;QACnD,IACC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,IAAI,CAC1B,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,UAAU,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,IAAI,UAAU,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAClE,EACA,CAAC;YACF,uBAAuB,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QACzC,CAAC;QACD,+CAA+C;QAC/C,IAAI,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;YAC3D,uBAAuB,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QACzC,CAAC;IACF,CAAC;IAED,MAAM,YAAY,GAAgD,EAAE,CAAC;IACrE,MAAM,cAAc,GAAgD,EAAE,CAAC;IACvE,KAAK,MAAM,OAAO,IAAI,CAAC,GAAG,kBAAkB,EAAE,GAAG,gBAAgB,CAAC,EAAE,CAAC;QACpE,MAAM,UAAU,GAAG,UAAU,CAAC,SAAS,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC;QAC9D,MAAM,UAAU,GAAG,UAAU,CAAC,SAAS,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC;QAC9D,MAAM,KAAK,GAAG,UAAU,CAAC,MAAM,CAC9B,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI,CAAC,CACzD,CAAC;QACF,MAAM,OAAO,GAAG,UAAU,CAAC,MAAM,CAChC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI,CAAC,CACzD,CAAC;QACF,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACtB,YAAY,CAAC,OAAO,CAAC,GAAG,KAAK,CAAC;YAC9B,2BAA2B;YAC3B,IAAI,kBAAkB,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC1C,uBAAuB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YACtC,CAAC;QACF,CAAC;QACD,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxB,cAAc,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC;YAClC,2BAA2B;YAC3B,IAAI,kBAAkB,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC1C,uBAAuB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YACtC,CAAC;QACF,CAAC;IACF,CAAC;IAED,MAAM,YAAY,GAAG,CAAC,cAAsB,EAAE,GAAQ,EAAE,EAAE;QACzD,OAAO,gBAAgB,CAAC,SAAS,CAAC,WAAW,CAAC,cAAc,CAAC,EAAE,GAAG,CAAC,CAAC;IACrE,CAAC,CAAC;IACF,MAAM,aAAa,GAAG,CAAC,cAAsB,EAAE,EAAE,CAAC,CAAC,GAAQ,EAAE,EAAE;QAC9D,MAAM,UAAU,GAAG,SAAS,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC;QACzD,OAAO,gBAAgB,CAAC,UAAU,EAAE,qBAAqB,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC,CAAC;IAC7E,CAAC,CAAC;IAEF,OAAO;QACN,kBAAkB;QAClB,gBAAgB;QAChB,kBAAkB;QAClB,YAAY;QACZ,cAAc;QACd,uBAAuB;QACvB,YAAY;QACZ,aAAa;KACb,CAAC;AACH,CAAC"}
|
|
1
|
+
{"version":3,"file":"migration.js","sourceRoot":"","sources":["../../src/migration.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,gBAAgB,EAChB,MAAM,EACN,SAAS,EAGT,MAAM,EACN,iBAAiB,EACjB,UAAU,EACV,qBAAqB,EACrB,eAAe,EAKf,cAAc,GACd,MAAM,YAAY,CAAC;AAoLpB,MAAM,WAAW,GAAgB;IAChC,OAAO,EAAE,CAAC;IACV,WAAW,EAAE,EAAE;CACf,CAAC;AAaF,MAAM,UAAU,OAAO,CACtB,oBAAyB,EACzB,oBAAyB,EACzB,qBAA2B;IAE3B,MAAM,yBAAyB,GAAG,OAAO,oBAAoB,KAAK,UAAU,CAAC;IAC7E,MAAM,SAAS,GAAG,yBAAyB;QAC1C,CAAC,CAAC,WAAW;QACb,CAAC,CAAC,oBAAoB,CAAC;IACxB,MAAM,SAAS,GAAG,yBAAyB;QAC1C,CAAC,CAAC,oBAAoB;QACtB,CAAC,CAAC,oBAAoB,CAAC;IACxB,MAAM,SAAS,GAAG,yBAAyB;QAC1C,CAAC,CAAC,oBAAoB;QACtB,CAAC,CAAC,qBAAqB,CAAC;IACzB,wCAAwC;IACxC,MAAM,kBAAkB,GAAa,MAAM,CAAC,IAAI,CAC/C,SAAS,CAAC,WAAW,CACrB,CAAC,MAAM,CACP,CAAC,GAAG,EAAE,EAAE,CACP,SAAS,CAAC,WAAW,CAAC,GAAG,CAAC;QAC1B,eAAe,CAAC,SAAS,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;YAC1C,eAAe,CAAC,SAAS,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAC7C,CAAC;IACF,MAAM,kBAAkB,GAAa,MAAM,CAAC,IAAI,CAC/C,SAAS,CAAC,WAAW,CACrB,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;IAC/C,MAAM,gBAAgB,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,MAAM,CACjE,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC,WAAW,CAAC,GAAG,CAAC,CACpC,CAAC;IACF,qDAAqD;IACrD,MAAM,uBAAuB,GAAG,IAAI,GAAG,EAAU,CAAC;IAClD,KAAK,MAAM,UAAU,IAAI,kBAAkB,EAAE,CAAC;QAC7C,MAAM,SAAS,GAAG,SAAS,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC;QAC3D,MAAM,SAAS,GAAG,SAAS,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC;QAC3D,mDAAmD;QACnD,IACC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,IAAI,CAC1B,CAAC,GAAG,EAAE,EAAE,eAAC,OAAA,CAAC,CAAA,MAAA,SAAS,CAAC,GAAG,CAAC,0CAAE,OAAO,CAAA,KAAI,MAAA,SAAS,CAAC,GAAG,CAAC,0CAAE,OAAO,CAAA,CAAA,EAAA,CAC5D,EACA,CAAC;YACF,uBAAuB,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QACzC,CAAC;QACD,+CAA+C;QAC/C,IAAI,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;YAC3D,uBAAuB,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QACzC,CAAC;IACF,CAAC;IAED,MAAM,YAAY,GAAgD,EAAE,CAAC;IACrE,MAAM,cAAc,GAAgD,EAAE,CAAC;IACvE,KAAK,MAAM,OAAO,IAAI,CAAC,GAAG,kBAAkB,EAAE,GAAG,gBAAgB,CAAC,EAAE,CAAC;QACpE,MAAM,UAAU,GAAG,UAAU,CAAC,SAAS,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC;QAC9D,MAAM,UAAU,GAAG,UAAU,CAAC,SAAS,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC;QAC9D,MAAM,KAAK,GAAG,UAAU,CAAC,MAAM,CAC9B,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI,CAAC,CACzD,CAAC;QACF,MAAM,OAAO,GAAG,UAAU,CAAC,MAAM,CAChC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI,CAAC,CACzD,CAAC;QACF,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACtB,YAAY,CAAC,OAAO,CAAC,GAAG,KAAK,CAAC;YAC9B,2BAA2B;YAC3B,IAAI,kBAAkB,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC1C,uBAAuB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YACtC,CAAC;QACF,CAAC;QACD,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxB,cAAc,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC;YAClC,2BAA2B;YAC3B,IAAI,kBAAkB,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC1C,uBAAuB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YACtC,CAAC;QACF,CAAC;IACF,CAAC;IAED,MAAM,YAAY,GAAG,CAAC,cAAsB,EAAE,GAAQ,EAAE,EAAE;QACzD,OAAO,gBAAgB,CAAC,SAAS,CAAC,WAAW,CAAC,cAAc,CAAC,EAAE,GAAG,CAAC,CAAC;IACrE,CAAC,CAAC;IACF,MAAM,aAAa,GAAG,CAAC,cAAsB,EAAE,EAAE,CAAC,CAAC,GAAQ,EAAE,EAAE;QAC9D,MAAM,UAAU,GAAG,SAAS,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC;QACzD,OAAO,gBAAgB,CAAC,UAAU,EAAE,qBAAqB,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC,CAAC;IAC7E,CAAC,CAAC;IAEF,OAAO;QACN,OAAO,EAAE,SAAS,CAAC,OAAO;QAC1B,OAAO,EAAE,KAAK,EAAE,MAAuB,EAAE,EAAE;YAC1C,MAAM,mBAAmB,GAAa,EAAE,CAAC;YACzC,MAAM,SAAS,CAAC;gBACf,OAAO,EAAE,KAAK,EAAE,UAAe,EAAE,QAAa,EAAE,EAAE;oBACjD,MAAM,IAAI,GAAG,aAAa,CAAC,UAAU,CAAC,CAAC;oBACvC,MAAM,OAAO,GAAG,KAAK,EAAE,GAAQ,EAAE,EAAE;wBAClC,MAAM,SAAS,GAAG,MAAM,QAAQ,CAAC,GAAG,CAAC,CAAC;wBACtC,yDAAyD;wBACzD,mBAAmB;wBACnB,SAAS,CAAC,SAAS,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;wBAClC,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC;wBAC/B,OAAO,MAAM,CAAC;oBACf,CAAC,CAAC;oBACF,aAAa;oBACb,MAAM,MAAM,CAAC,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;oBAC1C,mBAAmB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;oBACrC,qDAAqD;oBACrD,sDAAsD;oBACtD,0BAA0B;oBAC1B,uBAAuB,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;gBAC5C,CAAC;gBACD,QAAQ,EAAE,CAAC,GAAQ,EAAE,EAAE,CAAC,GAAG;gBAC3B,YAAY;gBACZ,IAAI,EAAE;oBACL,kBAAkB;oBAClB,gBAAgB;oBAChB,kBAAkB;iBAClB;gBACD,OAAO,EAAE,MAAM,CAAC,OAAO;gBACvB,SAAS,EAAE,MAAM,CAAC,SAAS;aAC3B,CAAC,CAAC;YAEH,4DAA4D;YAC5D,kDAAkD;YAElD,IAAI,SAAS,CAAC,OAAO,GAAG,CAAC,EAAE,CAAC;gBAC3B,MAAM,CAAC,GAAG,CACT,OAAO,EACP,8CAA8C,EAC9C,uBAAuB,CACvB,CAAC;gBACF,KAAK,MAAM,IAAI,IAAI,uBAAuB,EAAE,CAAC;oBAC5C,MAAM,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC;oBAChD,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAChC,CAAC;gBAED,MAAM,UAAU,GAAG,kBAAkB,CAAC,MAAM,CAC3C,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,mBAAmB,CAAC,QAAQ,CAAC,UAAU,CAAC,CACzD,CAAC;gBACF,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAC3B,2CAA2C;oBAC3C,OAAO,CAAC,KAAK,CACZ,+CAA+C,SAAS,CAAC,OAAO,eAAe,SAAS,CAAC,OAAO,GAAG,EACnG,UAAU,CACV,CAAC;gBACH,CAAC;YACF,CAAC;QACF,CAAC;QACD,kBAAkB;QAClB,YAAY;QACZ,cAAc;QACd,cAAc,EAAE,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC;QAClD,kBAAkB;QAClB,gBAAgB;QAChB,cAAc,EAAE,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC;QAClD,SAAS;QACT,SAAS;KACT,CAAC;AACH,CAAC;AAmDD,MAAM,UAAU,cAAc,CAAC,IAAY,EAAE,EAAU;IACtD,OAAO,CAAC,GAAG,KAAK,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC;AAC9D,CAAC;AAED,SAAS,UAAU,CAClB,UAA4B;IAE5B,IAAI,CAAC,UAAU;QAAE,OAAO,EAAE,CAAC;IAE3B,OAAO;QACN,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;YACpD,sDAAsD;YACtD,SAAS;YACT,MAAM,KAAK,GAAG,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YACtC,IAAI,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC;YAC3B,IAAI,CAAC,SAAS,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;gBAC/B,SAAS,GAAG,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC;YACjD,CAAC;YACD,MAAM,CACL,SAAS,EACT,qCAAqC,UAAU,IAAI,GAAG,6DAA6D,CACnH,CAAC;YAEF,MAAM,UAAU,GAAG,iBAAiB,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;YAEtD,OAAO;gBACN,IAAI,EAAE,GAAG;gBACT,UAAU;gBACV,SAAS,EAAE,IAAI;gBACf,QAAQ,EAAE,KAAK;gBACf,IAAI,EAAE,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,OAAO,CAAC,IAAI,EAAE,EAAE,CAAQ;aACzC,CAAC;QACH,CAAC,CAAC;QACF,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;YACxD,IAAI,EAAE,GAAG;YACT,UAAU,EAAE,iBAAiB,CAAC,UAAU,EAAE,GAAG,CAAC;YAC9C,SAAS,EAAE,KAAK;YAChB,QAAQ,EAAE,IAAI;YACd,IAAI,EAAE,QAAiB;SACvB,CAAC,CAAC;KACH,CAAC;AACH,CAAC;AAWD,MAAM,UAAU,sBAAsB,CACrC,MAAqB,EACrB,SAA8B;IAE9B,IAAI,SAAS,GAAG,SAAS;QACxB,CAAC,CAAC,MAAM;QACR,CAAC,CAAC;YACA,OAAO,EAAE,CAAC;YACV,WAAW,EAAE,EAAE;SACf,CAAC;IACJ,OAAO,OAAO,CAAC,SAAS,EAAE,SAAS,IAAI,MAAM,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE;QAC1E,IAAI,CAAC,SAAS,IAAI,MAAM,CAAC,CAAC,OAAO,KAAK,CAAC;YAAE,OAAO;QAEhD,KAAK,MAAM,UAAU,IAAI,IAAI,CAAC,kBAAyB,EAAE,CAAC;YACzD,wCAAwC;YACxC,MAAM,OAAO,CAAC,UAAU,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC;QACzC,CAAC;IACF,CAAC,CAAC,CAAC;AACJ,CAAC;AA4ED,MAAM,UAAU,eAAe,CAC9B,cAA6B,EAC7B,yBAE6C,EAC7C,cAAqE;IAErE,MAAM,yBAAyB,GAC9B,OAAO,yBAAyB,KAAK,UAAU;QAC/C,yBAAyB,KAAK,SAAS,CAAC;IACzC,MAAM,SAAS,GAAG,yBAAyB,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,cAAc,CAAC;IAC3E,MAAM,SAAS,GAAG,yBAAyB;QAC1C,CAAC,CAAC,cAAc;QAChB,CAAC,CAAC,yBAAyB,CAAC;IAC7B,MAAM,SAAS,GAAG,yBAAyB;QAC1C,CAAC,CAAC,yBAAyB;QAC3B,CAAC,CAAC,cAAc,CAAC;IAClB,MAAM,CAAC,SAAS,EAAE,sCAAsC,CAAC,CAAC;IAC1D,MAAM,CAAC,SAAS,EAAE,sCAAsC,CAAC,CAAC;IAC1D,MAAM,EACL,kBAAkB,EAClB,gBAAgB,EAChB,kBAAkB,EAClB,YAAY,EACZ,cAAc,EACd,uBAAuB,EACvB,aAAa,GACb,GAAG,gBAAgB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IAE3C,OAAO;QACN,OAAO,EAAE,SAAS,CAAC,OAAO;QAC1B,OAAO,EAAE,KAAK,EAAE,MAAuB,EAAE,EAAE;YAC1C,MAAM,mBAAmB,GAAa,EAAE,CAAC;YACzC,MAAM,OAAO,GAAG,KAAK,EAAE,UAAe,EAAE,QAAa,EAAE,EAAE;gBACxD,MAAM,IAAI,GAAG,aAAa,CAAC,UAAU,CAAC,CAAC;gBACvC,MAAM,OAAO,GAAG,KAAK,EAAE,GAAQ,EAAE,EAAE;oBAClC,MAAM,SAAS,GAAG,MAAM,QAAQ,CAAC,GAAG,CAAC,CAAC;oBACtC,yDAAyD;oBACzD,mBAAmB;oBACnB,SAAS,CAAC,SAAS,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;oBAClC,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC;oBAC/B,MAAM,eAAe,GAAG,cAAc,CACrC,SAAS,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC,MAAM,EACxC,MAAM,CACN,CAAC;oBACF,IAAI,eAAe,EAAE,CAAC;wBACrB,qBAAqB;oBACtB,CAAC;oBACD,OAAO,MAAM,CAAC;gBACf,CAAC,CAAC;gBACF,aAAa;gBACb,MAAM,MAAM,CAAC,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;gBAC1C,mBAAmB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;gBACrC,qDAAqD;gBACrD,sDAAsD;gBACtD,0BAA0B;gBAC1B,uBAAuB,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;YAC5C,CAAC,CAAC;YACF,MAAM,CAAA,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAG;gBACjB,OAAO;gBACP,IAAI,EAAE;oBACL,kBAAkB;oBAClB,gBAAgB;oBAChB,kBAAkB;iBAClB;gBACD,OAAO,EAAE,MAAM,CAAC,OAAO;gBACvB,SAAS,EAAE,MAAM,CAAC,SAAS;aAC3B,CAAC,CAAA,CAAC;YAEH,4DAA4D;YAC5D,kDAAkD;YAElD,IAAI,SAAS,CAAC,OAAO,GAAG,CAAC,EAAE,CAAC;gBAC3B,MAAM,CAAC,GAAG,CACT,OAAO,EACP,8CAA8C,EAC9C,uBAAuB,CACvB,CAAC;gBACF,KAAK,MAAM,IAAI,IAAI,uBAAuB,EAAE,CAAC;oBAC5C,MAAM,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC;oBAChD,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAChC,CAAC;gBAED,8CAA8C;gBAC9C,KAAK,MAAM,IAAI,IAAI,kBAAkB,EAAE,CAAC;oBACvC,MAAM,MAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;gBACrC,CAAC;gBAED,MAAM,UAAU,GAAG,kBAAkB,CAAC,MAAM,CAC3C,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,mBAAmB,CAAC,QAAQ,CAAC,UAAU,CAAC,CACzD,CAAC;gBACF,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAC3B,2CAA2C;oBAC3C,OAAO,CAAC,KAAK,CACZ,+CAA+C,SAAS,CAAC,OAAO,eAAe,SAAS,CAAC,OAAO,GAAG,EACnG,UAAU,CACV,CAAC;gBACH,CAAC;YACF,CAAC;QACF,CAAC;QACD,kBAAkB;QAClB,YAAY;QACZ,cAAc;QACd,cAAc,EAAE,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC;QAClD,kBAAkB;QAClB,gBAAgB;QAChB,cAAc,EAAE,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC;QAClD,SAAS;QACT,SAAS;KACT,CAAC;AACH,CAAC;AAED,eAAe;AACf,SAAS,gBAAgB,CAAC,SAAwB,EAAE,SAAwB;IAC3E,MAAM,kBAAkB,GAAa,MAAM,CAAC,IAAI,CAC/C,SAAS,CAAC,WAAW,CACrB,CAAC,MAAM,CACP,CAAC,GAAG,EAAE,EAAE,CACP,SAAS,CAAC,WAAW,CAAC,GAAG,CAAC;QAC1B,eAAe,CAAC,SAAS,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;YAC1C,eAAe,CAAC,SAAS,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAC7C,CAAC;IACF,MAAM,kBAAkB,GAAa,MAAM,CAAC,IAAI,CAC/C,SAAS,CAAC,WAAW,CACrB,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;IAC/C,MAAM,gBAAgB,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,MAAM,CACjE,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC,WAAW,CAAC,GAAG,CAAC,CACpC,CAAC;IACF,qDAAqD;IACrD,MAAM,uBAAuB,GAAG,IAAI,GAAG,EAAU,CAAC;IAClD,KAAK,MAAM,UAAU,IAAI,kBAAkB,EAAE,CAAC;QAC7C,MAAM,SAAS,GAAG,SAAS,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC;QAC3D,MAAM,SAAS,GAAG,SAAS,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC;QAC3D,mDAAmD;QACnD,IACC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,IAAI,CAC1B,CAAC,GAAG,EAAE,EAAE,CACP,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,UAAU,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;YAC/C,CAAC,UAAU,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAC5B,EACA,CAAC;YACF,uBAAuB,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QACzC,CAAC;QACD,+CAA+C;QAC/C,IAAI,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;YAC3D,uBAAuB,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QACzC,CAAC;IACF,CAAC;IAED,MAAM,YAAY,GAAgD,EAAE,CAAC;IACrE,MAAM,cAAc,GAAgD,EAAE,CAAC;IACvE,KAAK,MAAM,OAAO,IAAI,CAAC,GAAG,kBAAkB,EAAE,GAAG,gBAAgB,CAAC,EAAE,CAAC;QACpE,MAAM,UAAU,GAAG,UAAU,CAAC,SAAS,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC;QAC9D,MAAM,UAAU,GAAG,UAAU,CAAC,SAAS,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC;QAC9D,MAAM,KAAK,GAAG,UAAU,CAAC,MAAM,CAC9B,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI,CAAC,CACzD,CAAC;QACF,MAAM,OAAO,GAAG,UAAU,CAAC,MAAM,CAChC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI,CAAC,CACzD,CAAC;QACF,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACtB,YAAY,CAAC,OAAO,CAAC,GAAG,KAAK,CAAC;YAC9B,2BAA2B;YAC3B,IAAI,kBAAkB,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC1C,uBAAuB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YACtC,CAAC;QACF,CAAC;QACD,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxB,cAAc,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC;YAClC,2BAA2B;YAC3B,IAAI,kBAAkB,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC1C,uBAAuB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YACtC,CAAC;QACF,CAAC;IACF,CAAC;IAED,MAAM,YAAY,GAAG,CAAC,cAAsB,EAAE,GAAQ,EAAE,EAAE;QACzD,OAAO,gBAAgB,CAAC,SAAS,CAAC,WAAW,CAAC,cAAc,CAAC,EAAE,GAAG,CAAC,CAAC;IACrE,CAAC,CAAC;IACF,MAAM,aAAa,GAAG,CAAC,cAAsB,EAAE,EAAE,CAAC,CAAC,GAAQ,EAAE,EAAE;QAC9D,MAAM,UAAU,GAAG,SAAS,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC;QACzD,OAAO,gBAAgB,CAAC,UAAU,EAAE,qBAAqB,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC,CAAC;IAC7E,CAAC,CAAC;IAEF,OAAO;QACN,kBAAkB;QAClB,gBAAgB;QAChB,kBAAkB;QAClB,YAAY;QACZ,cAAc;QACd,uBAAuB;QACvB,YAAY;QACZ,aAAa;KACb,CAAC;AACH,CAAC"}
|
package/dist/esm/oidsLegacy.d.ts
CHANGED
|
@@ -15,4 +15,4 @@ export declare const MATCH_LEGACY_OID_JSON_STRING: RegExp;
|
|
|
15
15
|
export declare function replaceLegacyOidsInJsonString(string: string): string;
|
|
16
16
|
export declare function replaceLegacyOidsInObject(obj: any): any;
|
|
17
17
|
export declare function getLegacyDotOidSubIdRange(oid: ObjectIdentifier): string[];
|
|
18
|
-
export declare function isOidKey(key: string):
|
|
18
|
+
export declare function isOidKey(key: string): key is "__@@oid_do_not_use" | "@@id";
|
package/dist/esm/patch.d.ts
CHANGED
|
@@ -21,7 +21,7 @@ export declare class PatchCreator {
|
|
|
21
21
|
createListPush: (oid: ObjectIdentifier, value: any) => Operation[];
|
|
22
22
|
createListAdd: (oid: ObjectIdentifier, value: any) => Operation[];
|
|
23
23
|
createListInsert: (oid: ObjectIdentifier, index: number, value: any) => Operation[];
|
|
24
|
-
createListRemove: (oid: ObjectIdentifier, value: any, only?:
|
|
24
|
+
createListRemove: (oid: ObjectIdentifier, value: any, only?: "first" | "last") => Operation[];
|
|
25
25
|
createListDelete: (oid: ObjectIdentifier, index: number, count?: number) => Operation[];
|
|
26
26
|
createListMoveByRef: (oid: ObjectIdentifier, value: ObjectRef | FileRef, index: number) => Operation[];
|
|
27
27
|
createListMoveByIndex: (oid: ObjectIdentifier, fromIndex: number, toIndex: number) => Operation[];
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { describe, expect, it } from 'vitest';
|
|
2
|
-
import { getFieldDefault } from './fields.js';
|
|
3
2
|
import { assignOid, createOid, maybeGetOid } from '../oids.js';
|
|
4
3
|
import { fields } from './fieldHelpers.js';
|
|
4
|
+
import { getFieldDefault } from './fields.js';
|
|
5
5
|
describe('getting field defaults', () => {
|
|
6
6
|
it('does not apply the same oid from the previous application', () => {
|
|
7
7
|
const field = fields.any({
|
|
@@ -28,5 +28,29 @@ describe('getting field defaults', () => {
|
|
|
28
28
|
const defaults = getFieldDefault(field);
|
|
29
29
|
expect(defaults).toEqual({ foo: 'bar' });
|
|
30
30
|
});
|
|
31
|
+
it('supports defaults on arrays', () => {
|
|
32
|
+
const field = fields.array({
|
|
33
|
+
items: fields.object({
|
|
34
|
+
fields: {
|
|
35
|
+
foo: fields.string(),
|
|
36
|
+
},
|
|
37
|
+
}),
|
|
38
|
+
default: [{ foo: 'baz' }],
|
|
39
|
+
});
|
|
40
|
+
const defaults = getFieldDefault(field);
|
|
41
|
+
expect(defaults).toEqual([{ foo: 'baz' }]);
|
|
42
|
+
});
|
|
43
|
+
it('supports defaults on maps', () => {
|
|
44
|
+
const field = fields.map({
|
|
45
|
+
values: fields.object({
|
|
46
|
+
fields: {
|
|
47
|
+
foo: fields.string({ default: 'bar' }),
|
|
48
|
+
},
|
|
49
|
+
}),
|
|
50
|
+
default: { test: { foo: 'baz' } },
|
|
51
|
+
});
|
|
52
|
+
const defaults = getFieldDefault(field);
|
|
53
|
+
expect(defaults).toEqual({ test: { foo: 'baz' } });
|
|
54
|
+
});
|
|
31
55
|
});
|
|
32
56
|
//# sourceMappingURL=defaults.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"defaults.test.js","sourceRoot":"","sources":["../../../src/schema/defaults.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"defaults.test.js","sourceRoot":"","sources":["../../../src/schema/defaults.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAC/D,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAC3C,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE9C,QAAQ,CAAC,wBAAwB,EAAE,GAAG,EAAE;IACvC,EAAE,CAAC,2DAA2D,EAAE,GAAG,EAAE;QACpE,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC;YACxB,OAAO,EAAE;gBACR,EAAE,EAAE,KAAK;gBACT,IAAI,EAAE,MAAM;aACZ;SACD,CAAC,CAAC;QACH,MAAM,KAAK,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;QACrC,SAAS,CAAC,KAAK,EAAE,SAAS,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC;QACzC,MAAM,MAAM,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;QACtC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC7C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wBAAwB,EAAE,GAAG,EAAE;QACjC,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC;YAC3B,OAAO,EAAE,EAAE;YACX,UAAU,EAAE;gBACX,GAAG,EAAE;oBACJ,IAAI,EAAE,QAAiB;oBACvB,OAAO,EAAE,KAAK;iBACd;aACD;SACD,CAAC,CAAC;QACH,MAAM,QAAQ,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;QACxC,MAAM,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC;IAC1C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6BAA6B,EAAE,GAAG,EAAE;QACtC,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;YAC1B,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC;gBACpB,MAAM,EAAE;oBACP,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE;iBACpB;aACD,CAAC;YACF,OAAO,EAAE,CAAC,EAAE,GAAG,EAAE,KAAK,EAAqB,CAAC;SAC5C,CAAC,CAAC;QACH,MAAM,QAAQ,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;QACxC,MAAM,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;IAC5C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2BAA2B,EAAE,GAAG,EAAE;QACpC,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC;YACxB,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC;gBACrB,MAAM,EAAE;oBACP,GAAG,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;iBACtC;aACD,CAAC;YACF,OAAO,EAAE,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,KAAK,EAAqB,EAAE;SACpD,CAAC,CAAC;QACH,MAAM,QAAQ,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;QACxC,MAAM,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;IACpD,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC,CAAC"}
|
|
@@ -1,18 +1,49 @@
|
|
|
1
|
-
import { ShapeFromFieldsWithDefaults, StorageAnyFieldSchema, StorageArrayFieldSchema, StorageBooleanFieldSchema, StorageFieldSchema, StorageFieldsSchema, StorageFileFieldSchema, StorageMapFieldSchema, StorageNumberFieldSchema, StorageObjectFieldSchema, StorageStringFieldSchema } from './types.js';
|
|
1
|
+
import { ShapeFromFieldsWithDefaults, ShapeFromProperty, StorageAnyFieldSchema, StorageArrayFieldSchema, StorageBooleanFieldSchema, StorageFieldSchema, StorageFieldsSchema, StorageFileFieldSchema, StorageMapFieldSchema, StorageNumberFieldSchema, StorageObjectFieldSchema, StorageStringFieldSchema } from './types.js';
|
|
2
|
+
type ObjectFieldArgs<Props extends StorageFieldsSchema> = {
|
|
3
|
+
/** @deprecated - use fields. renamed for more consistency with collection root. */
|
|
4
|
+
properties?: Props;
|
|
5
|
+
fields?: Props;
|
|
6
|
+
nullable?: boolean;
|
|
7
|
+
default?: ShapeFromFieldsWithDefaults<Props> | (() => ShapeFromFieldsWithDefaults<Props>);
|
|
8
|
+
/** Add some docs to your field which will annotate the generated typing */
|
|
9
|
+
documentation?: string;
|
|
10
|
+
};
|
|
11
|
+
declare function objectField<Props extends StorageFieldsSchema>(args: ObjectFieldArgs<Props>): StorageObjectFieldSchema<Props>;
|
|
12
|
+
/**
|
|
13
|
+
* Used for recursively defined field schemas. Replaces the original properties
|
|
14
|
+
* of an object field with the provided fields. This will mutate the original field.
|
|
15
|
+
*/
|
|
16
|
+
declare function replaceObjectFields(object: StorageObjectFieldSchema<any>, fields: StorageFieldsSchema): StorageObjectFieldSchema<any>;
|
|
17
|
+
type ArrayFieldArgs<T extends StorageFieldSchema> = {
|
|
18
|
+
items: T;
|
|
19
|
+
nullable?: boolean;
|
|
20
|
+
default?: ShapeFromProperty<T>[] | (() => ShapeFromProperty<T>[]);
|
|
21
|
+
/** Add some docs to your field which will annotate the generated typing */
|
|
22
|
+
documentation?: string;
|
|
23
|
+
};
|
|
24
|
+
declare function arrayField<T extends StorageFieldSchema>(args: ArrayFieldArgs<T>): StorageArrayFieldSchema<T>;
|
|
25
|
+
/**
|
|
26
|
+
* Used for recursively defined field schemas. Replaces the original items
|
|
27
|
+
* of an array field with the provided items. This will mutate the original field.
|
|
28
|
+
*/
|
|
29
|
+
declare function replaceArrayItems(array: StorageArrayFieldSchema<any>, items: StorageFieldSchema): StorageArrayFieldSchema<any>;
|
|
30
|
+
type MapFieldArgs<T extends StorageFieldSchema> = {
|
|
31
|
+
values: T;
|
|
32
|
+
default?: Record<string, ShapeFromProperty<T>> | (() => Record<string, ShapeFromProperty<T>>);
|
|
33
|
+
/** Add some docs to your field which will annotate the generated typing */
|
|
34
|
+
documentation?: string;
|
|
35
|
+
};
|
|
36
|
+
declare function mapField<T extends StorageFieldSchema>(args: MapFieldArgs<T>): StorageMapFieldSchema<T>;
|
|
37
|
+
/**
|
|
38
|
+
* Used for recursively defined field schemas. Replaces the original values
|
|
39
|
+
* of a map field with the provided values. This will mutate the original field.
|
|
40
|
+
*/
|
|
41
|
+
declare function replaceMapValues(map: StorageMapFieldSchema<any>, values: StorageFieldSchema): StorageMapFieldSchema<any>;
|
|
2
42
|
export declare const fields: {
|
|
3
|
-
object:
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
/** Add some docs to your field which will annotate the generated typing */
|
|
8
|
-
documentation?: string;
|
|
9
|
-
}) => StorageObjectFieldSchema<Props>;
|
|
10
|
-
array: <T extends StorageFieldSchema>(args: {
|
|
11
|
-
items: T;
|
|
12
|
-
nullable?: boolean;
|
|
13
|
-
/** Add some docs to your field which will annotate the generated typing */
|
|
14
|
-
documentation?: string;
|
|
15
|
-
}) => StorageArrayFieldSchema<T>;
|
|
43
|
+
object: typeof objectField;
|
|
44
|
+
array: typeof arrayField;
|
|
45
|
+
replaceObjectFields: typeof replaceObjectFields;
|
|
46
|
+
replaceArrayItems: typeof replaceArrayItems;
|
|
16
47
|
string: (args?: {
|
|
17
48
|
nullable?: boolean;
|
|
18
49
|
default?: string | (() => string);
|
|
@@ -37,11 +68,8 @@ export declare const fields: {
|
|
|
37
68
|
/** Add some docs to your field which will annotate the generated typing */
|
|
38
69
|
documentation?: string;
|
|
39
70
|
}) => StorageAnyFieldSchema<TShape>;
|
|
40
|
-
map:
|
|
41
|
-
|
|
42
|
-
/** Add some docs to your field which will annotate the generated typing */
|
|
43
|
-
documentation?: string | undefined;
|
|
44
|
-
}) => StorageMapFieldSchema<T_1>;
|
|
71
|
+
map: typeof mapField;
|
|
72
|
+
replaceMapValues: typeof replaceMapValues;
|
|
45
73
|
file: (args?: {
|
|
46
74
|
nullable?: boolean;
|
|
47
75
|
downloadRemote?: boolean;
|
|
@@ -50,3 +78,4 @@ export declare const fields: {
|
|
|
50
78
|
}) => StorageFileFieldSchema;
|
|
51
79
|
id: () => StorageStringFieldSchema;
|
|
52
80
|
};
|
|
81
|
+
export {};
|
|
@@ -1,10 +1,42 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
var __rest = (this && this.__rest) || function (s, e) {
|
|
2
|
+
var t = {};
|
|
3
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
4
|
+
t[p] = s[p];
|
|
5
|
+
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
6
|
+
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
7
|
+
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
8
|
+
t[p[i]] = s[p[i]];
|
|
9
|
+
}
|
|
10
|
+
return t;
|
|
4
11
|
};
|
|
5
|
-
|
|
12
|
+
import cuid from 'cuid';
|
|
13
|
+
function objectField(args) {
|
|
14
|
+
const { properties, fields } = args, resolvedArgs = __rest(args, ["properties", "fields"]);
|
|
15
|
+
const props = properties || fields;
|
|
16
|
+
if (!props) {
|
|
17
|
+
throw new Error('objectField must be passed a properties object');
|
|
18
|
+
}
|
|
19
|
+
return Object.assign(Object.assign({ type: 'object' }, resolvedArgs), { properties: props });
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Used for recursively defined field schemas. Replaces the original properties
|
|
23
|
+
* of an object field with the provided fields. This will mutate the original field.
|
|
24
|
+
*/
|
|
25
|
+
function replaceObjectFields(object, fields) {
|
|
26
|
+
object.properties = fields;
|
|
27
|
+
return object;
|
|
28
|
+
}
|
|
29
|
+
function arrayField(args) {
|
|
6
30
|
return Object.assign({ type: 'array' }, args);
|
|
7
|
-
}
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Used for recursively defined field schemas. Replaces the original items
|
|
34
|
+
* of an array field with the provided items. This will mutate the original field.
|
|
35
|
+
*/
|
|
36
|
+
function replaceArrayItems(array, items) {
|
|
37
|
+
array.items = items;
|
|
38
|
+
return array;
|
|
39
|
+
}
|
|
8
40
|
const stringField = (args) => {
|
|
9
41
|
return Object.assign({ type: 'string' }, args);
|
|
10
42
|
};
|
|
@@ -17,9 +49,17 @@ const booleanField = (args) => {
|
|
|
17
49
|
const anyField = (args) => {
|
|
18
50
|
return Object.assign({ type: 'any' }, args);
|
|
19
51
|
};
|
|
20
|
-
|
|
52
|
+
function mapField(args) {
|
|
21
53
|
return Object.assign({ type: 'map' }, args);
|
|
22
|
-
}
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Used for recursively defined field schemas. Replaces the original values
|
|
57
|
+
* of a map field with the provided values. This will mutate the original field.
|
|
58
|
+
*/
|
|
59
|
+
function replaceMapValues(map, values) {
|
|
60
|
+
map.values = values;
|
|
61
|
+
return map;
|
|
62
|
+
}
|
|
23
63
|
const fileField = (args) => {
|
|
24
64
|
return Object.assign({ type: 'file' }, args);
|
|
25
65
|
};
|
|
@@ -36,11 +76,14 @@ const idField = () => {
|
|
|
36
76
|
export const fields = {
|
|
37
77
|
object: objectField,
|
|
38
78
|
array: arrayField,
|
|
79
|
+
replaceObjectFields,
|
|
80
|
+
replaceArrayItems,
|
|
39
81
|
string: stringField,
|
|
40
82
|
number: numberField,
|
|
41
83
|
boolean: booleanField,
|
|
42
84
|
any: anyField,
|
|
43
85
|
map: mapField,
|
|
86
|
+
replaceMapValues,
|
|
44
87
|
file: fileField,
|
|
45
88
|
id: idField,
|
|
46
89
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fieldHelpers.js","sourceRoot":"","sources":["../../../src/schema/fieldHelpers.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"fieldHelpers.js","sourceRoot":"","sources":["../../../src/schema/fieldHelpers.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AA4BxB,SAAS,WAAW,CACnB,IAA4B;IAE5B,MAAM,EAAE,UAAU,EAAE,MAAM,KAAsB,IAAI,EAArB,YAAY,UAAK,IAAI,EAA9C,wBAAuC,CAAO,CAAC;IACrD,MAAM,KAAK,GAAG,UAAU,IAAI,MAAM,CAAC;IACnC,IAAI,CAAC,KAAK,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;IACnE,CAAC;IACD,qCACC,IAAI,EAAE,QAAQ,IACX,YAAY,KACf,UAAU,EAAE,KAAK,IAChB;AACH,CAAC;AAED;;;GAGG;AACH,SAAS,mBAAmB,CAC3B,MAAqC,EACrC,MAA2B;IAE3B,MAAM,CAAC,UAAU,GAAG,MAAM,CAAC;IAC3B,OAAO,MAAM,CAAC;AACf,CAAC;AAUD,SAAS,UAAU,CAClB,IAAuB;IAEvB,uBACC,IAAI,EAAE,OAAO,IACV,IAAI,EACN;AACH,CAAC;AAED;;;GAGG;AACH,SAAS,iBAAiB,CACzB,KAAmC,EACnC,KAAyB;IAEzB,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC;IACpB,OAAO,KAAK,CAAC;AACd,CAAC;AAED,MAAM,WAAW,GAAG,CAAC,IAMpB,EAA4B,EAAE;IAC9B,uBACC,IAAI,EAAE,QAAQ,IACX,IAAI,EACN;AACH,CAAC,CAAC;AAEF,MAAM,WAAW,GAAG,CAAC,IAKpB,EAA4B,EAAE;IAC9B,uBACC,IAAI,EAAE,QAAQ,IACX,IAAI,EACN;AACH,CAAC,CAAC;AAEF,MAAM,YAAY,GAAG,CAAC,IAKrB,EAA6B,EAAE;IAC/B,uBACC,IAAI,EAAE,SAAS,IACZ,IAAI,EACN;AACH,CAAC,CAAC;AAEF,MAAM,QAAQ,GAAG,CAAS,IAIzB,EAAiC,EAAE;IACnC,uBACC,IAAI,EAAE,KAAK,IACR,IAAI,EACN;AACH,CAAC,CAAC;AAUF,SAAS,QAAQ,CAChB,IAAqB;IAErB,uBACC,IAAI,EAAE,KAAK,IACR,IAAI,EACN;AACH,CAAC;AAED;;;GAGG;AACH,SAAS,gBAAgB,CACxB,GAA+B,EAC/B,MAA0B;IAE1B,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC;IACpB,OAAO,GAAG,CAAC;AACZ,CAAC;AAED,MAAM,SAAS,GAAG,CAAC,IAKlB,EAA0B,EAAE;IAC5B,uBACC,IAAI,EAAE,MAAM,IACT,IAAI,EACN;AACH,CAAC,CAAC;AAEF;;;GAGG;AACH,MAAM,OAAO,GAAG,GAA6B,EAAE;IAC9C,OAAO;QACN,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,IAAI;KACb,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,MAAM,GAAG;IACrB,MAAM,EAAE,WAAW;IACnB,KAAK,EAAE,UAAU;IACjB,mBAAmB;IACnB,iBAAiB;IACjB,MAAM,EAAE,WAAW;IACnB,MAAM,EAAE,WAAW;IACnB,OAAO,EAAE,YAAY;IACrB,GAAG,EAAE,QAAQ;IACb,GAAG,EAAE,QAAQ;IACb,gBAAgB;IAChB,IAAI,EAAE,SAAS;IACf,EAAE,EAAE,OAAO;CACX,CAAC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { StorageCollectionSchema, StorageFieldSchema } from './types.js';
|
|
2
2
|
export declare function isNullable(field: StorageFieldSchema): boolean | undefined;
|
|
3
3
|
export declare function hasDefault(field: StorageFieldSchema | undefined): boolean;
|
|
4
|
-
export declare function
|
|
4
|
+
export declare function isRequired(field: StorageFieldSchema): boolean;
|
|
5
5
|
export declare function isPrunePoint(field: StorageFieldSchema): boolean;
|
|
6
6
|
export declare function addFieldDefaults(collection: StorageCollectionSchema, value: any): any;
|
|
7
7
|
export declare function traverseCollectionFieldsAndApplyDefaults(value: any, field: StorageFieldSchema): any;
|
|
@@ -18,30 +18,8 @@ export function hasDefault(field) {
|
|
|
18
18
|
return false;
|
|
19
19
|
return field.default !== undefined;
|
|
20
20
|
}
|
|
21
|
-
export function
|
|
22
|
-
|
|
23
|
-
return undefined;
|
|
24
|
-
if (field.type === 'file') {
|
|
25
|
-
if (isNullable(field))
|
|
26
|
-
return null;
|
|
27
|
-
return undefined;
|
|
28
|
-
}
|
|
29
|
-
if (field.type === 'map')
|
|
30
|
-
return {};
|
|
31
|
-
if (field.type === 'array') {
|
|
32
|
-
if (isNullable(field))
|
|
33
|
-
return null;
|
|
34
|
-
return [];
|
|
35
|
-
}
|
|
36
|
-
if (field.type === 'object') {
|
|
37
|
-
if (isNullable(field))
|
|
38
|
-
return null;
|
|
39
|
-
return undefined;
|
|
40
|
-
}
|
|
41
|
-
if (typeof field.default === 'function') {
|
|
42
|
-
return field.default();
|
|
43
|
-
}
|
|
44
|
-
return field.default;
|
|
21
|
+
export function isRequired(field) {
|
|
22
|
+
return !isNullable(field) && !hasDefault(field);
|
|
45
23
|
}
|
|
46
24
|
export function isPrunePoint(field) {
|
|
47
25
|
return isNullable(field) || hasDefault(field);
|
|
@@ -90,17 +68,23 @@ export function traverseCollectionFieldsAndApplyDefaults(value, field) {
|
|
|
90
68
|
}
|
|
91
69
|
}
|
|
92
70
|
export function getFieldDefault(field) {
|
|
93
|
-
if (
|
|
94
|
-
field.
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
71
|
+
if ('default' in field) {
|
|
72
|
+
const val = typeof field.default === 'function' ? field.default() : field.default;
|
|
73
|
+
if (val === null)
|
|
74
|
+
return val;
|
|
75
|
+
const cloned = structuredClone(val);
|
|
76
|
+
if (field.type === 'object') {
|
|
77
|
+
// objects also apply defaults of sub-fields over top of the default object
|
|
78
|
+
for (const [key, property] of Object.entries(field.properties)) {
|
|
79
|
+
if (cloned[key] === undefined) {
|
|
80
|
+
cloned[key] = getFieldDefault(property);
|
|
81
|
+
}
|
|
82
|
+
}
|
|
103
83
|
}
|
|
84
|
+
return cloned;
|
|
85
|
+
}
|
|
86
|
+
if (isNullable(field)) {
|
|
87
|
+
return null;
|
|
104
88
|
}
|
|
105
89
|
if (field.type === 'array') {
|
|
106
90
|
return [];
|
|
@@ -108,22 +92,6 @@ export function getFieldDefault(field) {
|
|
|
108
92
|
if (field.type === 'map') {
|
|
109
93
|
return {};
|
|
110
94
|
}
|
|
111
|
-
if (field.type !== 'any' && field.nullable) {
|
|
112
|
-
return null;
|
|
113
|
-
}
|
|
114
|
-
if (field.type === 'object' && field.default) {
|
|
115
|
-
const defaultValue =
|
|
116
|
-
// @ts-ignore
|
|
117
|
-
typeof field.default === 'function'
|
|
118
|
-
? field.default()
|
|
119
|
-
: JSON.parse(JSON.stringify(field.default));
|
|
120
|
-
for (const [key, property] of Object.entries(field.properties)) {
|
|
121
|
-
if (defaultValue[key] === undefined) {
|
|
122
|
-
defaultValue[key] = getFieldDefault(property);
|
|
123
|
-
}
|
|
124
|
-
}
|
|
125
|
-
return defaultValue;
|
|
126
|
-
}
|
|
127
95
|
return undefined;
|
|
128
96
|
}
|
|
129
97
|
export function removeExtraProperties(collection, value) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fields.js","sourceRoot":"","sources":["../../../src/schema/fields.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC3D,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAOvC,MAAM,UAAU,UAAU,CAAC,KAAyB;IACnD,IAAI,KAAK,CAAC,IAAI,KAAK,KAAK;QAAE,OAAO,IAAI,CAAC;IACtC,IAAI,KAAK,CAAC,IAAI,KAAK,KAAK;QAAE,OAAO,KAAK,CAAC;IACvC,OAAO,KAAK,CAAC,QAAQ,CAAC;AACvB,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,KAAqC;IAC/D,IAAI,CAAC,KAAK;QAAE,OAAO,KAAK,CAAC;IACzB,IAAI,KAAK,CAAC,IAAI,KAAK,KAAK;QAAE,OAAO,IAAI,CAAC;IACtC,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO;QAAE,OAAO,IAAI,CAAC;IACxC,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM;QAAE,OAAO,KAAK,CAAC;IACxC,OAAO,KAAK,CAAC,OAAO,KAAK,SAAS,CAAC;AACpC,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,
|
|
1
|
+
{"version":3,"file":"fields.js","sourceRoot":"","sources":["../../../src/schema/fields.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,52 +7,58 @@ export declare namespace schema {
|
|
|
7
7
|
var collection: typeof import("./index.js").collection;
|
|
8
8
|
var fields: {
|
|
9
9
|
object: <Props extends StorageFieldsSchema>(args: {
|
|
10
|
-
properties
|
|
11
|
-
|
|
10
|
+
properties?: Props | undefined;
|
|
11
|
+
fields?: Props | undefined;
|
|
12
|
+
nullable?: boolean;
|
|
12
13
|
default?: import("./types.js").ShapeFromFieldsWithDefaults<Props> | (() => import("./types.js").ShapeFromFieldsWithDefaults<Props>) | undefined;
|
|
13
|
-
documentation?: string
|
|
14
|
+
documentation?: string;
|
|
14
15
|
}) => import("./types.js").StorageObjectFieldSchema<Props>;
|
|
15
16
|
array: <T extends import("./types.js").StorageFieldSchema>(args: {
|
|
16
17
|
items: T;
|
|
17
|
-
nullable?: boolean
|
|
18
|
-
|
|
18
|
+
nullable?: boolean;
|
|
19
|
+
default?: import("./types.js").ShapeFromProperty<T>[] | (() => import("./types.js").ShapeFromProperty<T>[]) | undefined;
|
|
20
|
+
documentation?: string;
|
|
19
21
|
}) => import("./types.js").StorageArrayFieldSchema<T>;
|
|
22
|
+
replaceObjectFields: (object: import("./types.js").StorageObjectFieldSchema<any>, fields: StorageFieldsSchema) => import("./types.js").StorageObjectFieldSchema<any>;
|
|
23
|
+
replaceArrayItems: (array: import("./types.js").StorageArrayFieldSchema<any>, items: import("./types.js").StorageFieldSchema) => import("./types.js").StorageArrayFieldSchema<any>;
|
|
20
24
|
string: (args?: {
|
|
21
|
-
nullable?: boolean
|
|
22
|
-
default?: string | (() => string)
|
|
23
|
-
options?: string[]
|
|
24
|
-
documentation?: string
|
|
25
|
-
}
|
|
25
|
+
nullable?: boolean;
|
|
26
|
+
default?: string | (() => string);
|
|
27
|
+
options?: string[];
|
|
28
|
+
documentation?: string;
|
|
29
|
+
}) => import("./types.js").StorageStringFieldSchema;
|
|
26
30
|
number: (args?: {
|
|
27
|
-
nullable?: boolean
|
|
28
|
-
default?: number | (() => number)
|
|
29
|
-
documentation?: string
|
|
30
|
-
}
|
|
31
|
+
nullable?: boolean;
|
|
32
|
+
default?: number | (() => number);
|
|
33
|
+
documentation?: string;
|
|
34
|
+
}) => import("./types.js").StorageNumberFieldSchema;
|
|
31
35
|
boolean: (args?: {
|
|
32
|
-
nullable?: boolean
|
|
33
|
-
default?: boolean | (() => boolean)
|
|
34
|
-
documentation?: string
|
|
35
|
-
}
|
|
36
|
+
nullable?: boolean;
|
|
37
|
+
default?: boolean | (() => boolean);
|
|
38
|
+
documentation?: string;
|
|
39
|
+
}) => import("./types.js").StorageBooleanFieldSchema;
|
|
36
40
|
any: <TShape>(args?: {
|
|
37
|
-
default?: TShape
|
|
38
|
-
documentation?: string
|
|
39
|
-
}
|
|
40
|
-
map: <
|
|
41
|
-
values:
|
|
42
|
-
|
|
43
|
-
|
|
41
|
+
default?: TShape;
|
|
42
|
+
documentation?: string;
|
|
43
|
+
}) => import("./types.js").StorageAnyFieldSchema<TShape>;
|
|
44
|
+
map: <T extends import("./types.js").StorageFieldSchema>(args: {
|
|
45
|
+
values: T;
|
|
46
|
+
default?: Record<string, import("./types.js").ShapeFromProperty<T>> | (() => Record<string, import("./types.js").ShapeFromProperty<T>>) | undefined;
|
|
47
|
+
documentation?: string;
|
|
48
|
+
}) => import("./types.js").StorageMapFieldSchema<T>;
|
|
49
|
+
replaceMapValues: (map: import("./types.js").StorageMapFieldSchema<any>, values: import("./types.js").StorageFieldSchema) => import("./types.js").StorageMapFieldSchema<any>;
|
|
44
50
|
file: (args?: {
|
|
45
|
-
nullable?: boolean
|
|
46
|
-
downloadRemote?: boolean
|
|
47
|
-
documentation?: string
|
|
48
|
-
}
|
|
51
|
+
nullable?: boolean;
|
|
52
|
+
downloadRemote?: boolean;
|
|
53
|
+
documentation?: string;
|
|
54
|
+
}) => import("./types.js").StorageFileFieldSchema;
|
|
49
55
|
id: () => import("./types.js").StorageStringFieldSchema;
|
|
50
56
|
};
|
|
51
57
|
var generated: {
|
|
52
58
|
id: (() => string) & {
|
|
53
|
-
slug: () => string;
|
|
54
|
-
isCuid: (cuid: string) => boolean;
|
|
55
|
-
isSlug: (slug: string) => boolean;
|
|
59
|
+
slug: (() => string);
|
|
60
|
+
isCuid: ((cuid: string) => boolean);
|
|
61
|
+
isSlug: ((slug: string) => boolean);
|
|
56
62
|
};
|
|
57
63
|
};
|
|
58
64
|
}
|
|
@@ -25,6 +25,7 @@ export type StorageArrayFieldSchema<TItems extends StorageFieldSchema> = {
|
|
|
25
25
|
type: 'array';
|
|
26
26
|
items: TItems;
|
|
27
27
|
nullable?: boolean;
|
|
28
|
+
default?: any[] | (() => any[]);
|
|
28
29
|
/** Add some docs to your field which will annotate the generated typing */
|
|
29
30
|
documentation?: string;
|
|
30
31
|
};
|
|
@@ -45,6 +46,7 @@ export type StorageAnyFieldSchema<TShape = any> = {
|
|
|
45
46
|
export type StorageMapFieldSchema<V extends StorageFieldSchema> = {
|
|
46
47
|
type: 'map';
|
|
47
48
|
values: V;
|
|
49
|
+
default?: Record<string, any> | (() => Record<string, any>);
|
|
48
50
|
/** Add some docs to your field which will annotate the generated typing */
|
|
49
51
|
documentation?: string;
|
|
50
52
|
};
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
/// <reference types="node" resolution-mode="require"/>
|
|
2
1
|
import { StorageCollectionSchema } from './collection.js';
|
|
3
2
|
import { StorageArrayFieldSchema, StorageFieldSchema, StorageFieldsSchema, StorageMapFieldSchema, StorageObjectFieldSchema } from './fields.js';
|
|
4
3
|
type StoragePropertyIsNullable<T extends StorageFieldSchema> = T extends {
|
package/package.json
CHANGED
package/src/migration.ts
CHANGED
|
@@ -1,19 +1,19 @@
|
|
|
1
1
|
import {
|
|
2
|
-
stableStringify,
|
|
3
|
-
StorageCollectionSchema,
|
|
4
|
-
StorageSchema,
|
|
5
2
|
addFieldDefaults,
|
|
6
|
-
StorageDocument,
|
|
7
|
-
CollectionFilter,
|
|
8
|
-
StorageDocumentInit,
|
|
9
|
-
removeExtraProperties,
|
|
10
3
|
assert,
|
|
11
4
|
assignOid,
|
|
12
|
-
getOid,
|
|
13
|
-
hasDefault,
|
|
14
|
-
validateEntity,
|
|
15
5
|
AuthorizationKey,
|
|
6
|
+
CollectionFilter,
|
|
7
|
+
getOid,
|
|
16
8
|
isMultiValueIndex,
|
|
9
|
+
isRequired,
|
|
10
|
+
removeExtraProperties,
|
|
11
|
+
stableStringify,
|
|
12
|
+
StorageCollectionSchema,
|
|
13
|
+
StorageDocument,
|
|
14
|
+
StorageDocumentInit,
|
|
15
|
+
StorageSchema,
|
|
16
|
+
validateEntity,
|
|
17
17
|
} from './index.js';
|
|
18
18
|
|
|
19
19
|
/**@deprecated */
|
|
@@ -27,9 +27,9 @@ export interface PreservedCollectionMigrationStrategy<
|
|
|
27
27
|
Old extends StorageCollectionSchema<any, any, any>,
|
|
28
28
|
New extends StorageCollectionSchema<any, any, any>,
|
|
29
29
|
> {
|
|
30
|
-
(
|
|
31
|
-
|
|
32
|
-
|
|
30
|
+
(
|
|
31
|
+
old: StorageDocument<Old>,
|
|
32
|
+
): StorageDocument<New> | Promise<StorageDocument<New>>;
|
|
33
33
|
}
|
|
34
34
|
/** @deprecated */
|
|
35
35
|
type MigrationStrategy<
|
|
@@ -109,7 +109,7 @@ type StrategyFor<
|
|
|
109
109
|
? PreservedCollectionMigrationStrategy<
|
|
110
110
|
Old['collections'][Key],
|
|
111
111
|
New['collections'][Key]
|
|
112
|
-
|
|
112
|
+
>
|
|
113
113
|
: DroppedCollectionMigrationStrategy<Old['collections'][Key]>;
|
|
114
114
|
|
|
115
115
|
/** @deprecated */
|
|
@@ -476,7 +476,7 @@ export function createDefaultMigration(
|
|
|
476
476
|
: {
|
|
477
477
|
version: 0,
|
|
478
478
|
collections: {},
|
|
479
|
-
|
|
479
|
+
};
|
|
480
480
|
return migrate(oldSchema, newSchema || schema, async ({ migrate, info }) => {
|
|
481
481
|
if ((newSchema || schema).version === 1) return;
|
|
482
482
|
|
|
@@ -697,7 +697,9 @@ function getMigrationInfo(oldSchema: StorageSchema, newSchema: StorageSchema) {
|
|
|
697
697
|
// a new default was added - we can auto-migrate it
|
|
698
698
|
if (
|
|
699
699
|
Object.keys(newFields).some(
|
|
700
|
-
(key) =>
|
|
700
|
+
(key) =>
|
|
701
|
+
(!oldFields[key] || isRequired(oldFields[key])) &&
|
|
702
|
+
!isRequired(newFields[key]),
|
|
701
703
|
)
|
|
702
704
|
) {
|
|
703
705
|
autoMigratedCollections.add(collection);
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { describe, expect, it } from 'vitest';
|
|
2
|
-
import { getFieldDefault } from './fields.js';
|
|
3
2
|
import { assignOid, createOid, maybeGetOid } from '../oids.js';
|
|
4
3
|
import { fields } from './fieldHelpers.js';
|
|
4
|
+
import { getFieldDefault } from './fields.js';
|
|
5
5
|
|
|
6
6
|
describe('getting field defaults', () => {
|
|
7
7
|
it('does not apply the same oid from the previous application', () => {
|
|
@@ -30,4 +30,30 @@ describe('getting field defaults', () => {
|
|
|
30
30
|
const defaults = getFieldDefault(field);
|
|
31
31
|
expect(defaults).toEqual({ foo: 'bar' });
|
|
32
32
|
});
|
|
33
|
+
|
|
34
|
+
it('supports defaults on arrays', () => {
|
|
35
|
+
const field = fields.array({
|
|
36
|
+
items: fields.object({
|
|
37
|
+
fields: {
|
|
38
|
+
foo: fields.string(),
|
|
39
|
+
},
|
|
40
|
+
}),
|
|
41
|
+
default: [{ foo: 'baz' } as { foo: string }],
|
|
42
|
+
});
|
|
43
|
+
const defaults = getFieldDefault(field);
|
|
44
|
+
expect(defaults).toEqual([{ foo: 'baz' }]);
|
|
45
|
+
});
|
|
46
|
+
|
|
47
|
+
it('supports defaults on maps', () => {
|
|
48
|
+
const field = fields.map({
|
|
49
|
+
values: fields.object({
|
|
50
|
+
fields: {
|
|
51
|
+
foo: fields.string({ default: 'bar' }),
|
|
52
|
+
},
|
|
53
|
+
}),
|
|
54
|
+
default: { test: { foo: 'baz' } as { foo: string } },
|
|
55
|
+
});
|
|
56
|
+
const defaults = getFieldDefault(field);
|
|
57
|
+
expect(defaults).toEqual({ test: { foo: 'baz' } });
|
|
58
|
+
});
|
|
33
59
|
});
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import cuid from 'cuid';
|
|
2
2
|
import {
|
|
3
3
|
ShapeFromFieldsWithDefaults,
|
|
4
|
+
ShapeFromProperty,
|
|
4
5
|
StorageAnyFieldSchema,
|
|
5
6
|
StorageArrayFieldSchema,
|
|
6
7
|
StorageBooleanFieldSchema,
|
|
@@ -13,32 +14,73 @@ import {
|
|
|
13
14
|
StorageStringFieldSchema,
|
|
14
15
|
} from './types.js';
|
|
15
16
|
|
|
16
|
-
|
|
17
|
-
|
|
17
|
+
type ObjectFieldArgs<Props extends StorageFieldsSchema> = {
|
|
18
|
+
/** @deprecated - use fields. renamed for more consistency with collection root. */
|
|
19
|
+
properties?: Props;
|
|
20
|
+
fields?: Props;
|
|
18
21
|
nullable?: boolean;
|
|
19
22
|
default?:
|
|
20
23
|
| ShapeFromFieldsWithDefaults<Props>
|
|
21
24
|
| (() => ShapeFromFieldsWithDefaults<Props>);
|
|
22
25
|
/** Add some docs to your field which will annotate the generated typing */
|
|
23
26
|
documentation?: string;
|
|
24
|
-
}
|
|
27
|
+
};
|
|
28
|
+
|
|
29
|
+
function objectField<Props extends StorageFieldsSchema>(
|
|
30
|
+
args: ObjectFieldArgs<Props>,
|
|
31
|
+
): StorageObjectFieldSchema<Props> {
|
|
32
|
+
const { properties, fields, ...resolvedArgs } = args;
|
|
33
|
+
const props = properties || fields;
|
|
34
|
+
if (!props) {
|
|
35
|
+
throw new Error('objectField must be passed a properties object');
|
|
36
|
+
}
|
|
25
37
|
return {
|
|
26
38
|
type: 'object',
|
|
27
|
-
...
|
|
39
|
+
...resolvedArgs,
|
|
40
|
+
properties: props,
|
|
28
41
|
};
|
|
29
|
-
}
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
/**
|
|
45
|
+
* Used for recursively defined field schemas. Replaces the original properties
|
|
46
|
+
* of an object field with the provided fields. This will mutate the original field.
|
|
47
|
+
*/
|
|
48
|
+
function replaceObjectFields(
|
|
49
|
+
object: StorageObjectFieldSchema<any>,
|
|
50
|
+
fields: StorageFieldsSchema,
|
|
51
|
+
): StorageObjectFieldSchema<any> {
|
|
52
|
+
object.properties = fields;
|
|
53
|
+
return object;
|
|
54
|
+
}
|
|
30
55
|
|
|
31
|
-
|
|
56
|
+
type ArrayFieldArgs<T extends StorageFieldSchema> = {
|
|
32
57
|
items: T;
|
|
33
58
|
nullable?: boolean;
|
|
59
|
+
default?: ShapeFromProperty<T>[] | (() => ShapeFromProperty<T>[]);
|
|
34
60
|
/** Add some docs to your field which will annotate the generated typing */
|
|
35
61
|
documentation?: string;
|
|
36
|
-
}
|
|
62
|
+
};
|
|
63
|
+
|
|
64
|
+
function arrayField<T extends StorageFieldSchema>(
|
|
65
|
+
args: ArrayFieldArgs<T>,
|
|
66
|
+
): StorageArrayFieldSchema<T> {
|
|
37
67
|
return {
|
|
38
68
|
type: 'array',
|
|
39
69
|
...args,
|
|
40
70
|
};
|
|
41
|
-
}
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
/**
|
|
74
|
+
* Used for recursively defined field schemas. Replaces the original items
|
|
75
|
+
* of an array field with the provided items. This will mutate the original field.
|
|
76
|
+
*/
|
|
77
|
+
function replaceArrayItems(
|
|
78
|
+
array: StorageArrayFieldSchema<any>,
|
|
79
|
+
items: StorageFieldSchema,
|
|
80
|
+
): StorageArrayFieldSchema<any> {
|
|
81
|
+
array.items = items;
|
|
82
|
+
return array;
|
|
83
|
+
}
|
|
42
84
|
|
|
43
85
|
const stringField = (args?: {
|
|
44
86
|
nullable?: boolean;
|
|
@@ -88,16 +130,34 @@ const anyField = <TShape>(args?: {
|
|
|
88
130
|
};
|
|
89
131
|
};
|
|
90
132
|
|
|
91
|
-
|
|
133
|
+
type MapFieldArgs<T extends StorageFieldSchema> = {
|
|
92
134
|
values: T;
|
|
135
|
+
default?:
|
|
136
|
+
| Record<string, ShapeFromProperty<T>>
|
|
137
|
+
| (() => Record<string, ShapeFromProperty<T>>);
|
|
93
138
|
/** Add some docs to your field which will annotate the generated typing */
|
|
94
139
|
documentation?: string;
|
|
95
|
-
}
|
|
140
|
+
};
|
|
141
|
+
function mapField<T extends StorageFieldSchema>(
|
|
142
|
+
args: MapFieldArgs<T>,
|
|
143
|
+
): StorageMapFieldSchema<T> {
|
|
96
144
|
return {
|
|
97
145
|
type: 'map',
|
|
98
146
|
...args,
|
|
99
147
|
};
|
|
100
|
-
}
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
/**
|
|
151
|
+
* Used for recursively defined field schemas. Replaces the original values
|
|
152
|
+
* of a map field with the provided values. This will mutate the original field.
|
|
153
|
+
*/
|
|
154
|
+
function replaceMapValues(
|
|
155
|
+
map: StorageMapFieldSchema<any>,
|
|
156
|
+
values: StorageFieldSchema,
|
|
157
|
+
): StorageMapFieldSchema<any> {
|
|
158
|
+
map.values = values;
|
|
159
|
+
return map;
|
|
160
|
+
}
|
|
101
161
|
|
|
102
162
|
const fileField = (args?: {
|
|
103
163
|
nullable?: boolean;
|
|
@@ -125,11 +185,14 @@ const idField = (): StorageStringFieldSchema => {
|
|
|
125
185
|
export const fields = {
|
|
126
186
|
object: objectField,
|
|
127
187
|
array: arrayField,
|
|
188
|
+
replaceObjectFields,
|
|
189
|
+
replaceArrayItems,
|
|
128
190
|
string: stringField,
|
|
129
191
|
number: numberField,
|
|
130
192
|
boolean: booleanField,
|
|
131
193
|
any: anyField,
|
|
132
194
|
map: mapField,
|
|
195
|
+
replaceMapValues,
|
|
133
196
|
file: fileField,
|
|
134
197
|
id: idField,
|
|
135
198
|
};
|
package/src/schema/fields.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { LEGACY_OID_KEY, OID_KEY } from '../oidsLegacy.js';
|
|
2
2
|
import { isObject } from '../utils.js';
|
|
3
3
|
import type {
|
|
4
|
-
StorageFieldSchema,
|
|
5
4
|
StorageCollectionSchema,
|
|
5
|
+
StorageFieldSchema,
|
|
6
6
|
StorageFieldsSchema,
|
|
7
7
|
} from './types.js';
|
|
8
8
|
|
|
@@ -20,25 +20,8 @@ export function hasDefault(field: StorageFieldSchema | undefined) {
|
|
|
20
20
|
return field.default !== undefined;
|
|
21
21
|
}
|
|
22
22
|
|
|
23
|
-
export function
|
|
24
|
-
|
|
25
|
-
if (field.type === 'file') {
|
|
26
|
-
if (isNullable(field)) return null;
|
|
27
|
-
return undefined;
|
|
28
|
-
}
|
|
29
|
-
if (field.type === 'map') return {};
|
|
30
|
-
if (field.type === 'array') {
|
|
31
|
-
if (isNullable(field)) return null;
|
|
32
|
-
return [];
|
|
33
|
-
}
|
|
34
|
-
if (field.type === 'object') {
|
|
35
|
-
if (isNullable(field)) return null;
|
|
36
|
-
return undefined;
|
|
37
|
-
}
|
|
38
|
-
if (typeof field.default === 'function') {
|
|
39
|
-
return field.default();
|
|
40
|
-
}
|
|
41
|
-
return field.default;
|
|
23
|
+
export function isRequired(field: StorageFieldSchema) {
|
|
24
|
+
return !isNullable(field) && !hasDefault(field);
|
|
42
25
|
}
|
|
43
26
|
|
|
44
27
|
export function isPrunePoint(field: StorageFieldSchema) {
|
|
@@ -96,44 +79,39 @@ export function traverseCollectionFieldsAndApplyDefaults(
|
|
|
96
79
|
}
|
|
97
80
|
}
|
|
98
81
|
|
|
99
|
-
export function getFieldDefault(field: StorageFieldSchema) {
|
|
100
|
-
if (
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
82
|
+
export function getFieldDefault(field: StorageFieldSchema): any {
|
|
83
|
+
if ('default' in field) {
|
|
84
|
+
const val =
|
|
85
|
+
typeof field.default === 'function' ? field.default() : field.default;
|
|
86
|
+
if (val === null) return val;
|
|
87
|
+
|
|
88
|
+
const cloned = structuredClone(val);
|
|
89
|
+
|
|
90
|
+
if (field.type === 'object') {
|
|
91
|
+
// objects also apply defaults of sub-fields over top of the default object
|
|
92
|
+
for (const [key, property] of Object.entries(
|
|
93
|
+
field.properties as StorageFieldsSchema,
|
|
94
|
+
)) {
|
|
95
|
+
if (cloned[key] === undefined) {
|
|
96
|
+
cloned[key] = getFieldDefault(property);
|
|
97
|
+
}
|
|
98
|
+
}
|
|
111
99
|
}
|
|
100
|
+
return cloned;
|
|
112
101
|
}
|
|
102
|
+
|
|
103
|
+
if (isNullable(field)) {
|
|
104
|
+
return null;
|
|
105
|
+
}
|
|
106
|
+
|
|
113
107
|
if (field.type === 'array') {
|
|
114
108
|
return [];
|
|
115
109
|
}
|
|
110
|
+
|
|
116
111
|
if (field.type === 'map') {
|
|
117
112
|
return {};
|
|
118
113
|
}
|
|
119
|
-
|
|
120
|
-
return null;
|
|
121
|
-
}
|
|
122
|
-
if (field.type === 'object' && field.default) {
|
|
123
|
-
const defaultValue =
|
|
124
|
-
// @ts-ignore
|
|
125
|
-
typeof field.default === 'function'
|
|
126
|
-
? field.default()
|
|
127
|
-
: JSON.parse(JSON.stringify(field.default));
|
|
128
|
-
for (const [key, property] of Object.entries(
|
|
129
|
-
field.properties as StorageFieldsSchema,
|
|
130
|
-
)) {
|
|
131
|
-
if (defaultValue[key] === undefined) {
|
|
132
|
-
defaultValue[key] = getFieldDefault(property);
|
|
133
|
-
}
|
|
134
|
-
}
|
|
135
|
-
return defaultValue;
|
|
136
|
-
}
|
|
114
|
+
|
|
137
115
|
return undefined;
|
|
138
116
|
}
|
|
139
117
|
|
|
@@ -25,6 +25,7 @@ export type StorageArrayFieldSchema<TItems extends StorageFieldSchema> = {
|
|
|
25
25
|
type: 'array';
|
|
26
26
|
items: TItems;
|
|
27
27
|
nullable?: boolean;
|
|
28
|
+
default?: any[] | (() => any[]);
|
|
28
29
|
/** Add some docs to your field which will annotate the generated typing */
|
|
29
30
|
documentation?: string;
|
|
30
31
|
};
|
|
@@ -45,6 +46,7 @@ export type StorageAnyFieldSchema<TShape = any> = {
|
|
|
45
46
|
export type StorageMapFieldSchema<V extends StorageFieldSchema> = {
|
|
46
47
|
type: 'map';
|
|
47
48
|
values: V;
|
|
49
|
+
default?: Record<string, any> | (() => Record<string, any>);
|
|
48
50
|
/** Add some docs to your field which will annotate the generated typing */
|
|
49
51
|
documentation?: string;
|
|
50
52
|
};
|