@verdant-web/common 2.2.0 → 2.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/esm/EventSubscriber.d.ts +1 -1
- package/dist/esm/EventSubscriber.js.map +1 -1
- package/dist/esm/baseline.d.ts +1 -1
- package/dist/esm/batching.js.map +1 -1
- package/dist/esm/error.d.ts +1 -0
- package/dist/esm/error.js +2 -1
- package/dist/esm/error.js.map +1 -1
- package/dist/esm/files.d.ts +3 -2
- package/dist/esm/indexes.d.ts +2 -2
- package/dist/esm/indexes.js.map +1 -1
- package/dist/esm/memo.js.map +1 -1
- package/dist/esm/migration.d.ts +23 -23
- package/dist/esm/migration.js.map +1 -1
- package/dist/esm/oids.d.ts +1 -1
- package/dist/esm/oids.js.map +1 -1
- package/dist/esm/operation.d.ts +8 -8
- package/dist/esm/operation.js.map +1 -1
- package/dist/esm/patch.js.map +1 -1
- package/dist/esm/protocol.d.ts +18 -18
- package/dist/esm/refs.d.ts +1 -1
- package/dist/esm/replica.js +1 -1
- package/dist/esm/replica.js.map +1 -1
- package/dist/esm/schema/children.js.map +1 -1
- package/dist/esm/schema/fieldHelpers.d.ts +5 -5
- package/dist/esm/schema/fields.js.map +1 -1
- package/dist/esm/schema/index.js.map +1 -1
- package/dist/esm/schema/types/collection.d.ts +1 -1
- package/dist/esm/schema/types/compounds.d.ts +4 -4
- package/dist/esm/schema/types/fields.d.ts +11 -11
- package/dist/esm/schema/types/filters.d.ts +7 -7
- package/dist/esm/schema/types/shapes.d.ts +10 -9
- package/dist/esm/schema/types/synthetics.d.ts +12 -12
- package/dist/esm/schema/types.d.ts +3 -3
- package/dist/esm/schema/validation.d.ts +1 -1
- package/dist/esm/schema/validation.js.map +1 -1
- package/dist/esm/timestamp.js.map +1 -1
- package/dist/esm/timestamp.test.js.map +1 -1
- package/dist/esm/undo.js.map +1 -1
- package/dist/esm/utils.js.map +1 -1
- package/package.json +5 -8
- package/src/error.ts +1 -0
- package/src/protocol.ts +1 -1
- package/dist/cjs/EventSubscriber.d.ts +0 -18
- package/dist/cjs/EventSubscriber.js +0 -70
- package/dist/cjs/EventSubscriber.js.map +0 -1
- package/dist/cjs/baseline.d.ts +0 -5
- package/dist/cjs/baseline.js +0 -3
- package/dist/cjs/baseline.js.map +0 -1
- package/dist/cjs/batching.d.ts +0 -43
- package/dist/cjs/batching.js +0 -98
- package/dist/cjs/batching.js.map +0 -1
- package/dist/cjs/error.d.ts +0 -21
- package/dist/cjs/error.js +0 -42
- package/dist/cjs/error.js.map +0 -1
- package/dist/cjs/files.d.ts +0 -19
- package/dist/cjs/files.js +0 -19
- package/dist/cjs/files.js.map +0 -1
- package/dist/cjs/index.d.ts +0 -21
- package/dist/cjs/index.js +0 -44
- package/dist/cjs/index.js.map +0 -1
- package/dist/cjs/indexes.d.ts +0 -17
- package/dist/cjs/indexes.js +0 -146
- package/dist/cjs/indexes.js.map +0 -1
- package/dist/cjs/indexes.test.d.ts +0 -1
- package/dist/cjs/indexes.test.js +0 -156
- package/dist/cjs/indexes.test.js.map +0 -1
- package/dist/cjs/memo.d.ts +0 -6
- package/dist/cjs/memo.js +0 -25
- package/dist/cjs/memo.js.map +0 -1
- package/dist/cjs/memo.test.d.ts +0 -1
- package/dist/cjs/memo.test.js +0 -29
- package/dist/cjs/memo.test.js.map +0 -1
- package/dist/cjs/migration.d.ts +0 -174
- package/dist/cjs/migration.js +0 -310
- package/dist/cjs/migration.js.map +0 -1
- package/dist/cjs/oids.d.ts +0 -101
- package/dist/cjs/oids.js +0 -466
- package/dist/cjs/oids.js.map +0 -1
- package/dist/cjs/oids.test.d.ts +0 -1
- package/dist/cjs/oids.test.js +0 -409
- package/dist/cjs/oids.test.js.map +0 -1
- package/dist/cjs/operation.d.ts +0 -142
- package/dist/cjs/operation.js +0 -549
- package/dist/cjs/operation.js.map +0 -1
- package/dist/cjs/operation.test.d.ts +0 -1
- package/dist/cjs/operation.test.js +0 -977
- package/dist/cjs/operation.test.js.map +0 -1
- package/dist/cjs/patch.d.ts +0 -28
- package/dist/cjs/patch.js +0 -230
- package/dist/cjs/patch.js.map +0 -1
- package/dist/cjs/presence.d.ts +0 -29
- package/dist/cjs/presence.js +0 -3
- package/dist/cjs/presence.js.map +0 -1
- package/dist/cjs/protocol.d.ts +0 -145
- package/dist/cjs/protocol.js +0 -4
- package/dist/cjs/protocol.js.map +0 -1
- package/dist/cjs/refs.d.ts +0 -7
- package/dist/cjs/refs.js +0 -30
- package/dist/cjs/refs.js.map +0 -1
- package/dist/cjs/replica.d.ts +0 -28
- package/dist/cjs/replica.js +0 -29
- package/dist/cjs/replica.js.map +0 -1
- package/dist/cjs/schema/children.d.ts +0 -2
- package/dist/cjs/schema/children.js +0 -24
- package/dist/cjs/schema/children.js.map +0 -1
- package/dist/cjs/schema/defaults.test.d.ts +0 -1
- package/dist/cjs/schema/defaults.test.js +0 -34
- package/dist/cjs/schema/defaults.test.js.map +0 -1
- package/dist/cjs/schema/fieldHelpers.d.ts +0 -35
- package/dist/cjs/schema/fieldHelpers.js +0 -38
- package/dist/cjs/schema/fieldHelpers.js.map +0 -1
- package/dist/cjs/schema/fields.d.ts +0 -10
- package/dist/cjs/schema/fields.js +0 -172
- package/dist/cjs/schema/fields.js.map +0 -1
- package/dist/cjs/schema/index.d.ts +0 -54
- package/dist/cjs/schema/index.js +0 -63
- package/dist/cjs/schema/index.js.map +0 -1
- package/dist/cjs/schema/indexFilters.d.ts +0 -6
- package/dist/cjs/schema/indexFilters.js +0 -31
- package/dist/cjs/schema/indexFilters.js.map +0 -1
- package/dist/cjs/schema/types/collection.d.ts +0 -23
- package/dist/cjs/schema/types/collection.js +0 -3
- package/dist/cjs/schema/types/collection.js.map +0 -1
- package/dist/cjs/schema/types/compounds.d.ts +0 -11
- package/dist/cjs/schema/types/compounds.js +0 -3
- package/dist/cjs/schema/types/compounds.js.map +0 -1
- package/dist/cjs/schema/types/fields.d.ts +0 -55
- package/dist/cjs/schema/types/fields.js +0 -3
- package/dist/cjs/schema/types/fields.js.map +0 -1
- package/dist/cjs/schema/types/filters.d.ts +0 -29
- package/dist/cjs/schema/types/filters.js +0 -3
- package/dist/cjs/schema/types/filters.js.map +0 -1
- package/dist/cjs/schema/types/shapes.d.ts +0 -24
- package/dist/cjs/schema/types/shapes.js +0 -3
- package/dist/cjs/schema/types/shapes.js.map +0 -1
- package/dist/cjs/schema/types/synthetics.d.ts +0 -37
- package/dist/cjs/schema/types/synthetics.js +0 -3
- package/dist/cjs/schema/types/synthetics.js.map +0 -1
- package/dist/cjs/schema/types.d.ts +0 -18
- package/dist/cjs/schema/types.js +0 -23
- package/dist/cjs/schema/types.js.map +0 -1
- package/dist/cjs/schema/validation.d.ts +0 -14
- package/dist/cjs/schema/validation.js +0 -158
- package/dist/cjs/schema/validation.js.map +0 -1
- package/dist/cjs/timestamp.d.ts +0 -51
- package/dist/cjs/timestamp.js +0 -254
- package/dist/cjs/timestamp.js.map +0 -1
- package/dist/cjs/timestamp.test.d.ts +0 -1
- package/dist/cjs/timestamp.test.js +0 -105
- package/dist/cjs/timestamp.test.js.map +0 -1
- package/dist/cjs/undo.d.ts +0 -3
- package/dist/cjs/undo.js +0 -201
- package/dist/cjs/undo.js.map +0 -1
- package/dist/cjs/utils.d.ts +0 -20
- package/dist/cjs/utils.js +0 -146
- package/dist/cjs/utils.js.map +0 -1
- package/dist/cjs/utils.test.d.ts +0 -1
- package/dist/cjs/utils.test.js +0 -37
- package/dist/cjs/utils.test.js.map +0 -1
- package/dist/tsconfig-cjs.tsbuildinfo +0 -1
- package/dist/tsconfig.tsbuildinfo +0 -1
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const vitest_1 = require("vitest");
|
|
4
|
-
const fields_js_1 = require("./fields.js");
|
|
5
|
-
const oids_js_1 = require("../oids.js");
|
|
6
|
-
const fieldHelpers_js_1 = require("./fieldHelpers.js");
|
|
7
|
-
(0, vitest_1.describe)('getting field defaults', () => {
|
|
8
|
-
(0, vitest_1.it)('does not apply the same oid from the previous application', () => {
|
|
9
|
-
const field = fieldHelpers_js_1.fields.any({
|
|
10
|
-
default: {
|
|
11
|
-
id: '123',
|
|
12
|
-
name: 'test',
|
|
13
|
-
},
|
|
14
|
-
});
|
|
15
|
-
const first = (0, fields_js_1.getFieldDefault)(field);
|
|
16
|
-
(0, oids_js_1.assignOid)(first, (0, oids_js_1.createOid)('test', '1'));
|
|
17
|
-
const second = (0, fields_js_1.getFieldDefault)(field);
|
|
18
|
-
(0, vitest_1.expect)((0, oids_js_1.maybeGetOid)(second)).toBe(undefined);
|
|
19
|
-
});
|
|
20
|
-
(0, vitest_1.it)('defaults nested fields', () => {
|
|
21
|
-
const field = fieldHelpers_js_1.fields.object({
|
|
22
|
-
default: {},
|
|
23
|
-
properties: {
|
|
24
|
-
foo: {
|
|
25
|
-
type: 'string',
|
|
26
|
-
default: 'bar',
|
|
27
|
-
},
|
|
28
|
-
},
|
|
29
|
-
});
|
|
30
|
-
const defaults = (0, fields_js_1.getFieldDefault)(field);
|
|
31
|
-
(0, vitest_1.expect)(defaults).toEqual({ foo: 'bar' });
|
|
32
|
-
});
|
|
33
|
-
});
|
|
34
|
-
//# sourceMappingURL=defaults.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"defaults.test.js","sourceRoot":"","sources":["../../../src/schema/defaults.test.ts"],"names":[],"mappings":";;AAAA,mCAA8C;AAC9C,2CAA8C;AAC9C,wCAA+D;AAC/D,uDAA2C;AAE3C,IAAA,iBAAQ,EAAC,wBAAwB,EAAE,GAAG,EAAE;IACvC,IAAA,WAAE,EAAC,2DAA2D,EAAE,GAAG,EAAE;QACpE,MAAM,KAAK,GAAG,wBAAM,CAAC,GAAG,CAAC;YACxB,OAAO,EAAE;gBACR,EAAE,EAAE,KAAK;gBACT,IAAI,EAAE,MAAM;aACZ;SACD,CAAC,CAAC;QACH,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;IAEH,IAAA,WAAE,EAAC,wBAAwB,EAAE,GAAG,EAAE;QACjC,MAAM,KAAK,GAAG,wBAAM,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,IAAA,2BAAe,EAAC,KAAK,CAAC,CAAC;QACxC,IAAA,eAAM,EAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC;IAC1C,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC,CAAC"}
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
import { ShapeFromFieldsWithDefaults, StorageAnyFieldSchema, StorageArrayFieldSchema, StorageBooleanFieldSchema, StorageFieldSchema, StorageFieldsSchema, StorageFileFieldSchema, StorageMapFieldSchema, StorageNumberFieldSchema, StorageObjectFieldSchema, StorageStringFieldSchema } from './types.js';
|
|
2
|
-
export declare const fields: {
|
|
3
|
-
object: <Props extends StorageFieldsSchema>(args: {
|
|
4
|
-
properties: Props;
|
|
5
|
-
nullable?: boolean | undefined;
|
|
6
|
-
default?: ShapeFromFieldsWithDefaults<Props> | (() => ShapeFromFieldsWithDefaults<Props>) | undefined;
|
|
7
|
-
}) => StorageObjectFieldSchema<Props>;
|
|
8
|
-
array: <T extends StorageFieldSchema>(args: {
|
|
9
|
-
items: T;
|
|
10
|
-
nullable?: boolean | undefined;
|
|
11
|
-
}) => StorageArrayFieldSchema<T>;
|
|
12
|
-
string: (args?: {
|
|
13
|
-
nullable?: boolean;
|
|
14
|
-
default?: string | (() => string);
|
|
15
|
-
options?: string[];
|
|
16
|
-
}) => StorageStringFieldSchema;
|
|
17
|
-
number: (args?: {
|
|
18
|
-
nullable?: boolean;
|
|
19
|
-
default?: number | (() => number);
|
|
20
|
-
}) => StorageNumberFieldSchema;
|
|
21
|
-
boolean: (args?: {
|
|
22
|
-
nullable?: boolean;
|
|
23
|
-
default?: boolean | (() => boolean);
|
|
24
|
-
}) => StorageBooleanFieldSchema;
|
|
25
|
-
any: <TShape>(args?: {
|
|
26
|
-
default?: TShape | undefined;
|
|
27
|
-
} | undefined) => StorageAnyFieldSchema<TShape>;
|
|
28
|
-
map: <T_1 extends StorageFieldSchema>(args: {
|
|
29
|
-
values: T_1;
|
|
30
|
-
}) => StorageMapFieldSchema<T_1>;
|
|
31
|
-
file: (args?: {
|
|
32
|
-
nullable?: boolean;
|
|
33
|
-
downloadRemote?: boolean;
|
|
34
|
-
}) => StorageFileFieldSchema;
|
|
35
|
-
};
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.fields = void 0;
|
|
4
|
-
const objectField = (args) => {
|
|
5
|
-
return Object.assign({ type: 'object' }, args);
|
|
6
|
-
};
|
|
7
|
-
const arrayField = (args) => {
|
|
8
|
-
return Object.assign({ type: 'array' }, args);
|
|
9
|
-
};
|
|
10
|
-
const stringField = (args) => {
|
|
11
|
-
return Object.assign({ type: 'string' }, args);
|
|
12
|
-
};
|
|
13
|
-
const numberField = (args) => {
|
|
14
|
-
return Object.assign({ type: 'number' }, args);
|
|
15
|
-
};
|
|
16
|
-
const booleanField = (args) => {
|
|
17
|
-
return Object.assign({ type: 'boolean' }, args);
|
|
18
|
-
};
|
|
19
|
-
const anyField = (args) => {
|
|
20
|
-
return Object.assign({ type: 'any' }, args);
|
|
21
|
-
};
|
|
22
|
-
const mapField = (args) => {
|
|
23
|
-
return Object.assign({ type: 'map' }, args);
|
|
24
|
-
};
|
|
25
|
-
const fileField = (args) => {
|
|
26
|
-
return Object.assign({ type: 'file' }, args);
|
|
27
|
-
};
|
|
28
|
-
exports.fields = {
|
|
29
|
-
object: objectField,
|
|
30
|
-
array: arrayField,
|
|
31
|
-
string: stringField,
|
|
32
|
-
number: numberField,
|
|
33
|
-
boolean: booleanField,
|
|
34
|
-
any: anyField,
|
|
35
|
-
map: mapField,
|
|
36
|
-
file: fileField,
|
|
37
|
-
};
|
|
38
|
-
//# sourceMappingURL=fieldHelpers.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"fieldHelpers.js","sourceRoot":"","sources":["../../../src/schema/fieldHelpers.ts"],"names":[],"mappings":";;;AAcA,MAAM,WAAW,GAAG,CAAoC,IAMvD,EAAmC,EAAE;IACrC,uBACC,IAAI,EAAE,QAAQ,IACX,IAAI,EACN;AACH,CAAC,CAAC;AAEF,MAAM,UAAU,GAAG,CAA+B,IAGjD,EAA8B,EAAE;IAChC,uBACC,IAAI,EAAE,OAAO,IACV,IAAI,EACN;AACH,CAAC,CAAC;AAEF,MAAM,WAAW,GAAG,CAAC,IAIpB,EAA4B,EAAE;IAC9B,uBACC,IAAI,EAAE,QAAQ,IACX,IAAI,EACN;AACH,CAAC,CAAC;AAEF,MAAM,WAAW,GAAG,CAAC,IAGpB,EAA4B,EAAE;IAC9B,uBACC,IAAI,EAAE,QAAQ,IACX,IAAI,EACN;AACH,CAAC,CAAC;AAEF,MAAM,YAAY,GAAG,CAAC,IAGrB,EAA6B,EAAE;IAC/B,uBACC,IAAI,EAAE,SAAS,IACZ,IAAI,EACN;AACH,CAAC,CAAC;AAEF,MAAM,QAAQ,GAAG,CAAS,IAEzB,EAAiC,EAAE;IACnC,uBACC,IAAI,EAAE,KAAK,IACR,IAAI,EACN;AACH,CAAC,CAAC;AAEF,MAAM,QAAQ,GAAG,CAA+B,IAE/C,EAA4B,EAAE;IAC9B,uBACC,IAAI,EAAE,KAAK,IACR,IAAI,EACN;AACH,CAAC,CAAC;AAEF,MAAM,SAAS,GAAG,CAAC,IAGlB,EAA0B,EAAE;IAC5B,uBACC,IAAI,EAAE,MAAM,IACT,IAAI,EACN;AACH,CAAC,CAAC;AAEW,QAAA,MAAM,GAAG;IACrB,MAAM,EAAE,WAAW;IACnB,KAAK,EAAE,UAAU;IACjB,MAAM,EAAE,WAAW;IACnB,MAAM,EAAE,WAAW;IACnB,OAAO,EAAE,YAAY;IACrB,GAAG,EAAE,QAAQ;IACb,GAAG,EAAE,QAAQ;IACb,IAAI,EAAE,SAAS;CACf,CAAC"}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import type { StorageFieldSchema, StorageCollectionSchema } from './types.js';
|
|
2
|
-
export declare function isNullable(field: StorageFieldSchema): boolean | undefined;
|
|
3
|
-
export declare function hasDefault(field: StorageFieldSchema | undefined): boolean;
|
|
4
|
-
export declare function getDefault(field: StorageFieldSchema | undefined): any;
|
|
5
|
-
export declare function isPrunePoint(field: StorageFieldSchema): boolean;
|
|
6
|
-
export declare function addFieldDefaults(collection: StorageCollectionSchema, value: any): any;
|
|
7
|
-
export declare function traverseCollectionFieldsAndApplyDefaults(value: any, field: StorageFieldSchema): any;
|
|
8
|
-
export declare function getFieldDefault(field: StorageFieldSchema): any;
|
|
9
|
-
export declare function removeExtraProperties(collection: StorageCollectionSchema, value: any): any;
|
|
10
|
-
export declare function traverseCollectionFieldsAndRemoveExtraProperties(value: any, field: StorageFieldSchema): void;
|
|
@@ -1,172 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.traverseCollectionFieldsAndRemoveExtraProperties = exports.removeExtraProperties = exports.getFieldDefault = exports.traverseCollectionFieldsAndApplyDefaults = exports.addFieldDefaults = exports.isPrunePoint = exports.getDefault = exports.hasDefault = exports.isNullable = void 0;
|
|
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;
|
|
14
|
-
function hasDefault(field) {
|
|
15
|
-
if (!field)
|
|
16
|
-
return false;
|
|
17
|
-
if (field.type === 'map')
|
|
18
|
-
return true;
|
|
19
|
-
if (field.type === 'array')
|
|
20
|
-
return true;
|
|
21
|
-
if (field.type === 'file')
|
|
22
|
-
return false;
|
|
23
|
-
return field.default !== undefined;
|
|
24
|
-
}
|
|
25
|
-
exports.hasDefault = hasDefault;
|
|
26
|
-
function getDefault(field) {
|
|
27
|
-
if (!field || !hasDefault(field))
|
|
28
|
-
return undefined;
|
|
29
|
-
if (field.type === 'file') {
|
|
30
|
-
if (isNullable(field))
|
|
31
|
-
return null;
|
|
32
|
-
return undefined;
|
|
33
|
-
}
|
|
34
|
-
if (field.type === 'map')
|
|
35
|
-
return {};
|
|
36
|
-
if (field.type === 'array') {
|
|
37
|
-
if (isNullable(field))
|
|
38
|
-
return null;
|
|
39
|
-
return [];
|
|
40
|
-
}
|
|
41
|
-
if (field.type === 'object') {
|
|
42
|
-
if (isNullable(field))
|
|
43
|
-
return null;
|
|
44
|
-
return undefined;
|
|
45
|
-
}
|
|
46
|
-
if (typeof field.default === 'function') {
|
|
47
|
-
return field.default();
|
|
48
|
-
}
|
|
49
|
-
return field.default;
|
|
50
|
-
}
|
|
51
|
-
exports.getDefault = getDefault;
|
|
52
|
-
function isPrunePoint(field) {
|
|
53
|
-
return isNullable(field) || hasDefault(field);
|
|
54
|
-
}
|
|
55
|
-
exports.isPrunePoint = isPrunePoint;
|
|
56
|
-
function addFieldDefaults(collection, value) {
|
|
57
|
-
for (const [key, field] of Object.entries(collection.fields)) {
|
|
58
|
-
const defaultValue = getFieldDefault(field);
|
|
59
|
-
if ((defaultValue !== undefined && value[key] === undefined) ||
|
|
60
|
-
// covers the case where a previously nullable field
|
|
61
|
-
// now has a default during a new migration
|
|
62
|
-
(!isNullable(field) && value[key] === null)) {
|
|
63
|
-
value[key] = defaultValue;
|
|
64
|
-
}
|
|
65
|
-
if (value[key]) {
|
|
66
|
-
traverseCollectionFieldsAndApplyDefaults(value[key], field);
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
-
return value;
|
|
70
|
-
}
|
|
71
|
-
exports.addFieldDefaults = addFieldDefaults;
|
|
72
|
-
function traverseCollectionFieldsAndApplyDefaults(value, field) {
|
|
73
|
-
if (value === undefined || value === null)
|
|
74
|
-
return value;
|
|
75
|
-
if (field.type === 'object') {
|
|
76
|
-
for (const [key, subField] of Object.entries(field.properties)) {
|
|
77
|
-
if (value[key] === undefined) {
|
|
78
|
-
const defaultValue = getFieldDefault(subField);
|
|
79
|
-
if (defaultValue !== undefined) {
|
|
80
|
-
value[key] = defaultValue;
|
|
81
|
-
}
|
|
82
|
-
}
|
|
83
|
-
traverseCollectionFieldsAndApplyDefaults(value[key], subField);
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
else if (field.type === 'array') {
|
|
87
|
-
for (const item of value) {
|
|
88
|
-
traverseCollectionFieldsAndApplyDefaults(item, field.items);
|
|
89
|
-
}
|
|
90
|
-
}
|
|
91
|
-
else if (field.type === 'map') {
|
|
92
|
-
for (const [key, item] of Object.entries(value)) {
|
|
93
|
-
// santiy check to weed out any id field
|
|
94
|
-
if (key === oids_js_1.OID_KEY || key === oids_js_1.LEGACY_OID_KEY)
|
|
95
|
-
continue;
|
|
96
|
-
traverseCollectionFieldsAndApplyDefaults(item, field.values);
|
|
97
|
-
}
|
|
98
|
-
}
|
|
99
|
-
}
|
|
100
|
-
exports.traverseCollectionFieldsAndApplyDefaults = traverseCollectionFieldsAndApplyDefaults;
|
|
101
|
-
function getFieldDefault(field) {
|
|
102
|
-
if (field.type === 'string' ||
|
|
103
|
-
field.type === 'number' ||
|
|
104
|
-
field.type === 'boolean' ||
|
|
105
|
-
field.type === 'any') {
|
|
106
|
-
if (field.default && typeof field.default === 'function') {
|
|
107
|
-
return field.default();
|
|
108
|
-
}
|
|
109
|
-
else if (field.default !== undefined) {
|
|
110
|
-
// TODO: structuredClone?
|
|
111
|
-
return JSON.parse(JSON.stringify(field.default));
|
|
112
|
-
}
|
|
113
|
-
}
|
|
114
|
-
if (field.type === 'array') {
|
|
115
|
-
return [];
|
|
116
|
-
}
|
|
117
|
-
if (field.type === 'map') {
|
|
118
|
-
return {};
|
|
119
|
-
}
|
|
120
|
-
if (field.type !== 'any' && field.nullable) {
|
|
121
|
-
return null;
|
|
122
|
-
}
|
|
123
|
-
if (field.type === 'object' && field.default) {
|
|
124
|
-
const defaultValue =
|
|
125
|
-
// @ts-ignore
|
|
126
|
-
typeof field.default === 'function'
|
|
127
|
-
? field.default()
|
|
128
|
-
: JSON.parse(JSON.stringify(field.default));
|
|
129
|
-
for (const [key, property] of Object.entries(field.properties)) {
|
|
130
|
-
if (defaultValue[key] === undefined) {
|
|
131
|
-
defaultValue[key] = getFieldDefault(property);
|
|
132
|
-
}
|
|
133
|
-
}
|
|
134
|
-
return defaultValue;
|
|
135
|
-
}
|
|
136
|
-
return undefined;
|
|
137
|
-
}
|
|
138
|
-
exports.getFieldDefault = getFieldDefault;
|
|
139
|
-
function removeExtraProperties(collection, value) {
|
|
140
|
-
for (const [key, fieldValue] of Object.entries(value)) {
|
|
141
|
-
// MUST NOT DELETE THESE!
|
|
142
|
-
if (key === oids_js_1.OID_KEY || key === oids_js_1.LEGACY_OID_KEY)
|
|
143
|
-
continue;
|
|
144
|
-
if (!collection.fields[key]) {
|
|
145
|
-
delete value[key];
|
|
146
|
-
}
|
|
147
|
-
else {
|
|
148
|
-
traverseCollectionFieldsAndRemoveExtraProperties(fieldValue, collection.fields[key]);
|
|
149
|
-
}
|
|
150
|
-
}
|
|
151
|
-
return value;
|
|
152
|
-
}
|
|
153
|
-
exports.removeExtraProperties = removeExtraProperties;
|
|
154
|
-
function traverseCollectionFieldsAndRemoveExtraProperties(value, field) {
|
|
155
|
-
if ((0, utils_js_1.isObject)(value) && field.type === 'object') {
|
|
156
|
-
for (const [key, fieldValue] of Object.entries(value)) {
|
|
157
|
-
if (!field.properties[key]) {
|
|
158
|
-
delete value[key];
|
|
159
|
-
}
|
|
160
|
-
else {
|
|
161
|
-
traverseCollectionFieldsAndRemoveExtraProperties(fieldValue, field.properties[key]);
|
|
162
|
-
}
|
|
163
|
-
}
|
|
164
|
-
}
|
|
165
|
-
else if (Array.isArray(value) && field.type === 'array') {
|
|
166
|
-
for (const item of value) {
|
|
167
|
-
traverseCollectionFieldsAndRemoveExtraProperties(item, field.items);
|
|
168
|
-
}
|
|
169
|
-
}
|
|
170
|
-
}
|
|
171
|
-
exports.traverseCollectionFieldsAndRemoveExtraProperties = traverseCollectionFieldsAndRemoveExtraProperties;
|
|
172
|
-
//# sourceMappingURL=fields.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"fields.js","sourceRoot":"","sources":["../../../src/schema/fields.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,54 +0,0 @@
|
|
|
1
|
-
import { CollectionCompoundIndices, StorageCollectionSchema, StorageFieldsSchema, StorageSchema, StorageSyntheticIndices } from './types.js';
|
|
2
|
-
export declare function collection<Fields extends StorageFieldsSchema, Synthetics extends StorageSyntheticIndices<Fields>, Compounds extends CollectionCompoundIndices<Fields, Synthetics>>({ synthetics, indexes, ...input }: StorageCollectionSchema<Fields, Synthetics, Compounds>): StorageCollectionSchema<Fields, Synthetics, Compounds>;
|
|
3
|
-
export declare function schema<Schema extends StorageSchema<{
|
|
4
|
-
[key: string]: StorageCollectionSchema<any, any, any>;
|
|
5
|
-
}>>(input: Schema): StorageSchema;
|
|
6
|
-
export declare namespace schema {
|
|
7
|
-
var collection: typeof import("./index.js").collection;
|
|
8
|
-
var fields: {
|
|
9
|
-
object: <Props extends StorageFieldsSchema>(args: {
|
|
10
|
-
properties: Props;
|
|
11
|
-
nullable?: boolean | undefined;
|
|
12
|
-
default?: import("./types.js").ShapeFromFieldsWithDefaults<Props> | (() => import("./types.js").ShapeFromFieldsWithDefaults<Props>) | undefined;
|
|
13
|
-
}) => import("./types.js").StorageObjectFieldSchema<Props>;
|
|
14
|
-
array: <T extends import("./types.js").StorageFieldSchema>(args: {
|
|
15
|
-
items: T;
|
|
16
|
-
nullable?: boolean | undefined;
|
|
17
|
-
}) => import("./types.js").StorageArrayFieldSchema<T>;
|
|
18
|
-
string: (args?: {
|
|
19
|
-
nullable?: boolean | undefined;
|
|
20
|
-
default?: string | (() => string) | undefined;
|
|
21
|
-
options?: string[] | undefined;
|
|
22
|
-
} | undefined) => import("./types.js").StorageStringFieldSchema;
|
|
23
|
-
number: (args?: {
|
|
24
|
-
nullable?: boolean | undefined;
|
|
25
|
-
default?: number | (() => number) | undefined;
|
|
26
|
-
} | undefined) => import("./types.js").StorageNumberFieldSchema;
|
|
27
|
-
boolean: (args?: {
|
|
28
|
-
nullable?: boolean | undefined;
|
|
29
|
-
default?: boolean | (() => boolean) | undefined;
|
|
30
|
-
} | undefined) => import("./types.js").StorageBooleanFieldSchema;
|
|
31
|
-
any: <TShape>(args?: {
|
|
32
|
-
default?: TShape | undefined;
|
|
33
|
-
} | undefined) => import("./types.js").StorageAnyFieldSchema<TShape>;
|
|
34
|
-
map: <T_1 extends import("./types.js").StorageFieldSchema>(args: {
|
|
35
|
-
values: T_1;
|
|
36
|
-
}) => import("./types.js").StorageMapFieldSchema<T_1>;
|
|
37
|
-
file: (args?: {
|
|
38
|
-
nullable?: boolean | undefined;
|
|
39
|
-
downloadRemote?: boolean | undefined;
|
|
40
|
-
} | undefined) => import("./types.js").StorageFileFieldSchema;
|
|
41
|
-
};
|
|
42
|
-
var generated: {
|
|
43
|
-
id: (() => string) & {
|
|
44
|
-
slug: () => string;
|
|
45
|
-
isCuid: (cuid: string) => boolean;
|
|
46
|
-
isSlug: (slug: string) => boolean;
|
|
47
|
-
};
|
|
48
|
-
};
|
|
49
|
-
}
|
|
50
|
-
export * from './types.js';
|
|
51
|
-
export * from './indexFilters.js';
|
|
52
|
-
export * from './fields.js';
|
|
53
|
-
export * from './validation.js';
|
|
54
|
-
export * from './children.js';
|
package/dist/cjs/schema/index.js
DELETED
|
@@ -1,63 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
-
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
-
};
|
|
16
|
-
var __rest = (this && this.__rest) || function (s, e) {
|
|
17
|
-
var t = {};
|
|
18
|
-
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
19
|
-
t[p] = s[p];
|
|
20
|
-
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
21
|
-
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
22
|
-
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
23
|
-
t[p[i]] = s[p[i]];
|
|
24
|
-
}
|
|
25
|
-
return t;
|
|
26
|
-
};
|
|
27
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
28
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
29
|
-
};
|
|
30
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
31
|
-
exports.schema = exports.collection = void 0;
|
|
32
|
-
const fieldHelpers_js_1 = require("./fieldHelpers.js");
|
|
33
|
-
const cuid_1 = __importDefault(require("cuid"));
|
|
34
|
-
function collection(_a) {
|
|
35
|
-
var { synthetics, indexes } = _a, input = __rest(_a, ["synthetics", "indexes"]);
|
|
36
|
-
// back compat - copy synthetics in with indexes
|
|
37
|
-
const finalIndexes = Object.assign(Object.assign({}, synthetics), indexes);
|
|
38
|
-
// add all indexed fields into the synthetic indices (back compat)
|
|
39
|
-
for (const [key, field] of Object.entries(input.fields)) {
|
|
40
|
-
if ('indexed' in field) {
|
|
41
|
-
finalIndexes[key] = {
|
|
42
|
-
field: key,
|
|
43
|
-
};
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
return Object.assign(Object.assign({}, input), { indexes: finalIndexes });
|
|
47
|
-
}
|
|
48
|
-
exports.collection = collection;
|
|
49
|
-
function schema(input) {
|
|
50
|
-
return input;
|
|
51
|
-
}
|
|
52
|
-
exports.schema = schema;
|
|
53
|
-
schema.collection = collection;
|
|
54
|
-
schema.fields = fieldHelpers_js_1.fields;
|
|
55
|
-
schema.generated = {
|
|
56
|
-
id: cuid_1.default,
|
|
57
|
-
};
|
|
58
|
-
__exportStar(require("./types.js"), exports);
|
|
59
|
-
__exportStar(require("./indexFilters.js"), exports);
|
|
60
|
-
__exportStar(require("./fields.js"), exports);
|
|
61
|
-
__exportStar(require("./validation.js"), exports);
|
|
62
|
-
__exportStar(require("./children.js"), exports);
|
|
63
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/schema/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AASA,uDAA2C;AAC3C,gDAAwB;AAExB,SAAgB,UAAU,CAIxB,EAQD;QARC,EACD,UAAU,EACV,OAAO,OAMP,EALG,KAAK,cAHP,yBAID,CADQ;IAMR,gDAAgD;IAChD,MAAM,YAAY,mCAAQ,UAAU,GAAK,OAAO,CAAE,CAAC;IACnD,kEAAkE;IAClE,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE;QACxD,IAAI,SAAS,IAAI,KAAK,EAAE;YACvB,YAAY,CAAC,GAAG,CAAC,GAAG;gBACnB,KAAK,EAAE,GAAG;aAC8B,CAAC;SAC1C;KACD;IACD,uCACI,KAAK,KACR,OAAO,EAAE,YAA0B,IAClC;AACH,CAAC;AA3BD,gCA2BC;AAED,SAAgB,MAAM,CAOpB,KAAa;IACd,OAAO,KAAK,CAAC;AACd,CAAC;AATD,wBASC;AACD,MAAM,CAAC,UAAU,GAAG,UAAU,CAAC;AAC/B,MAAM,CAAC,MAAM,GAAG,wBAAM,CAAC;AACvB,MAAM,CAAC,SAAS,GAAG;IAClB,EAAE,EAAE,cAAI;CACR,CAAC;AAEF,6CAA2B;AAE3B,oDAAkC;AAClC,8CAA4B;AAC5B,kDAAgC;AAChC,gDAA8B"}
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
import { CollectionCompoundIndexFilter, CollectionFilter, MatchCollectionIndexFilter, RangeCollectionIndexFilter, SortIndexFilter, StartsWithIndexFilter } from './types.js';
|
|
2
|
-
export declare function isMatchIndexFilter(filter: CollectionFilter): filter is MatchCollectionIndexFilter;
|
|
3
|
-
export declare function isRangeIndexFilter(filter: CollectionFilter): filter is RangeCollectionIndexFilter;
|
|
4
|
-
export declare function isCompoundIndexFilter(filter: CollectionFilter): filter is CollectionCompoundIndexFilter;
|
|
5
|
-
export declare function isStartsWithIndexFilter(filter: CollectionFilter): filter is StartsWithIndexFilter;
|
|
6
|
-
export declare function isSortIndexFilter(filter: CollectionFilter): filter is SortIndexFilter;
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.isSortIndexFilter = exports.isStartsWithIndexFilter = exports.isCompoundIndexFilter = exports.isRangeIndexFilter = exports.isMatchIndexFilter = void 0;
|
|
4
|
-
function isMatchIndexFilter(filter) {
|
|
5
|
-
return filter.equals !== undefined;
|
|
6
|
-
}
|
|
7
|
-
exports.isMatchIndexFilter = isMatchIndexFilter;
|
|
8
|
-
function isRangeIndexFilter(filter) {
|
|
9
|
-
return (filter.gte !== undefined ||
|
|
10
|
-
filter.lte !== undefined ||
|
|
11
|
-
filter.gt !== undefined ||
|
|
12
|
-
filter.lt !== undefined);
|
|
13
|
-
}
|
|
14
|
-
exports.isRangeIndexFilter = isRangeIndexFilter;
|
|
15
|
-
function isCompoundIndexFilter(filter) {
|
|
16
|
-
return !!filter.match;
|
|
17
|
-
}
|
|
18
|
-
exports.isCompoundIndexFilter = isCompoundIndexFilter;
|
|
19
|
-
function isStartsWithIndexFilter(filter) {
|
|
20
|
-
return filter.startsWith !== undefined;
|
|
21
|
-
}
|
|
22
|
-
exports.isStartsWithIndexFilter = isStartsWithIndexFilter;
|
|
23
|
-
function isSortIndexFilter(filter) {
|
|
24
|
-
return (!isRangeIndexFilter(filter) &&
|
|
25
|
-
!isMatchIndexFilter(filter) &&
|
|
26
|
-
!isCompoundIndexFilter(filter) &&
|
|
27
|
-
!isStartsWithIndexFilter(filter) &&
|
|
28
|
-
filter.order);
|
|
29
|
-
}
|
|
30
|
-
exports.isSortIndexFilter = isSortIndexFilter;
|
|
31
|
-
//# sourceMappingURL=indexFilters.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"indexFilters.js","sourceRoot":"","sources":["../../../src/schema/indexFilters.ts"],"names":[],"mappings":";;;AASA,SAAgB,kBAAkB,CACjC,MAAwB;IAExB,OAAQ,MAAc,CAAC,MAAM,KAAK,SAAS,CAAC;AAC7C,CAAC;AAJD,gDAIC;AAED,SAAgB,kBAAkB,CACjC,MAAwB;IAExB,OAAO,CACL,MAAc,CAAC,GAAG,KAAK,SAAS;QAChC,MAAc,CAAC,GAAG,KAAK,SAAS;QAChC,MAAc,CAAC,EAAE,KAAK,SAAS;QAC/B,MAAc,CAAC,EAAE,KAAK,SAAS,CAChC,CAAC;AACH,CAAC;AATD,gDASC;AAED,SAAgB,qBAAqB,CACpC,MAAwB;IAExB,OAAO,CAAC,CAAE,MAAc,CAAC,KAAK,CAAC;AAChC,CAAC;AAJD,sDAIC;AAED,SAAgB,uBAAuB,CACtC,MAAwB;IAExB,OAAQ,MAAc,CAAC,UAAU,KAAK,SAAS,CAAC;AACjD,CAAC;AAJD,0DAIC;AAED,SAAgB,iBAAiB,CAChC,MAAwB;IAExB,OAAO,CACN,CAAC,kBAAkB,CAAC,MAAM,CAAC;QAC3B,CAAC,kBAAkB,CAAC,MAAM,CAAC;QAC3B,CAAC,qBAAqB,CAAC,MAAM,CAAC;QAC9B,CAAC,uBAAuB,CAAC,MAAM,CAAC;QAC/B,MAAc,CAAC,KAAK,CACrB,CAAC;AACH,CAAC;AAVD,8CAUC"}
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
import { CollectionCompoundIndices } from './compounds.js';
|
|
2
|
-
import { StorageFieldsSchema } from './fields.js';
|
|
3
|
-
import { DirectIndexableFieldName, StorageSyntheticIndices } from './synthetics.js';
|
|
4
|
-
/**
|
|
5
|
-
* The main collection schema
|
|
6
|
-
*/
|
|
7
|
-
export declare type StorageCollectionSchema<Fields extends StorageFieldsSchema = StorageFieldsSchema, Synthetics extends StorageSyntheticIndices<Fields> = StorageSyntheticIndices<Fields>, Compounds extends CollectionCompoundIndices<Fields, Synthetics> = CollectionCompoundIndices<Fields, Synthetics>> = {
|
|
8
|
-
name: string;
|
|
9
|
-
/**
|
|
10
|
-
* Your primary key must be a string, number, or boolean field. It must also
|
|
11
|
-
* not be rewritten.
|
|
12
|
-
*/
|
|
13
|
-
primaryKey: DirectIndexableFieldName<Fields>;
|
|
14
|
-
fields: Fields;
|
|
15
|
-
indexes?: Synthetics;
|
|
16
|
-
compounds?: Compounds;
|
|
17
|
-
/**
|
|
18
|
-
* @deprecated - plural name is the key used to index this collection in the schema. this field is no longer used.
|
|
19
|
-
*/
|
|
20
|
-
pluralName?: string;
|
|
21
|
-
/** @deprecated - use "indexes" */
|
|
22
|
-
synthetics?: Synthetics;
|
|
23
|
-
};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"collection.js","sourceRoot":"","sources":["../../../../src/schema/types/collection.ts"],"names":[],"mappings":""}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import { StorageArrayFieldSchema, StorageBooleanFieldSchema, StorageFieldsSchema, StorageNumberFieldSchema, StorageStringFieldSchema } from './fields.js';
|
|
2
|
-
import { DirectIndexableFieldName, StorageSyntheticIndices } from './synthetics.js';
|
|
3
|
-
declare type PrimitiveArrayFields<Fields extends StorageFieldsSchema> = {
|
|
4
|
-
[K in keyof Fields as Fields[K] extends StorageArrayFieldSchema<infer U> ? U extends StorageStringFieldSchema | StorageNumberFieldSchema | StorageBooleanFieldSchema ? K : never : never]: Fields[K];
|
|
5
|
-
};
|
|
6
|
-
declare type PrimitiveArrayFieldName<Fields extends StorageFieldsSchema> = Extract<keyof PrimitiveArrayFields<Fields>, string>;
|
|
7
|
-
export declare type CollectionCompoundIndex<Fields extends StorageFieldsSchema, Synthetics extends StorageSyntheticIndices<Fields>> = {
|
|
8
|
-
of: (DirectIndexableFieldName<Fields> | PrimitiveArrayFieldName<Fields> | Extract<keyof Synthetics, string>)[];
|
|
9
|
-
};
|
|
10
|
-
export declare type CollectionCompoundIndices<Fields extends StorageFieldsSchema, Synthetics extends StorageSyntheticIndices<Fields>> = Record<string, CollectionCompoundIndex<Fields, Synthetics>>;
|
|
11
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"compounds.js","sourceRoot":"","sources":["../../../../src/schema/types/compounds.ts"],"names":[],"mappings":""}
|
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
export declare type StorageStringFieldSchema = {
|
|
2
|
-
type: 'string';
|
|
3
|
-
nullable?: boolean;
|
|
4
|
-
default?: string | (() => string);
|
|
5
|
-
/** Limit the values to a certain set of options */
|
|
6
|
-
options?: string[];
|
|
7
|
-
};
|
|
8
|
-
export declare type StorageNumberFieldSchema = {
|
|
9
|
-
type: 'number';
|
|
10
|
-
nullable?: boolean;
|
|
11
|
-
default?: number | (() => number);
|
|
12
|
-
};
|
|
13
|
-
export declare type StorageBooleanFieldSchema = {
|
|
14
|
-
type: 'boolean';
|
|
15
|
-
nullable?: boolean;
|
|
16
|
-
default?: boolean | (() => boolean);
|
|
17
|
-
};
|
|
18
|
-
export declare type StorageArrayFieldSchema<TItems extends StorageFieldSchema> = {
|
|
19
|
-
type: 'array';
|
|
20
|
-
items: TItems;
|
|
21
|
-
nullable?: boolean;
|
|
22
|
-
};
|
|
23
|
-
export declare type StorageObjectFieldSchema<Props extends StorageFieldsSchema> = {
|
|
24
|
-
type: 'object';
|
|
25
|
-
properties: Props;
|
|
26
|
-
nullable?: boolean;
|
|
27
|
-
default?: Record<string, any> | (() => Record<string, any>);
|
|
28
|
-
};
|
|
29
|
-
export declare type StorageAnyFieldSchema<TShape = any> = {
|
|
30
|
-
type: 'any';
|
|
31
|
-
default?: TShape;
|
|
32
|
-
};
|
|
33
|
-
export declare type StorageMapFieldSchema<V extends StorageFieldSchema> = {
|
|
34
|
-
type: 'map';
|
|
35
|
-
values: V;
|
|
36
|
-
};
|
|
37
|
-
export declare type StorageFileFieldSchema = {
|
|
38
|
-
type: 'file';
|
|
39
|
-
nullable?: boolean;
|
|
40
|
-
/**
|
|
41
|
-
* Instructs the client to download synced files to local storage on first request for offline use.
|
|
42
|
-
* Leave this false to save storage space on the client, at the cost of requiring a network
|
|
43
|
-
* connection to use files created by other devices.
|
|
44
|
-
*/
|
|
45
|
-
downloadRemote?: boolean;
|
|
46
|
-
};
|
|
47
|
-
export declare type StorageFieldSchema = StorageStringFieldSchema | StorageNumberFieldSchema | StorageBooleanFieldSchema | StorageArrayFieldSchema<any> | StorageObjectFieldSchema<any> | StorageAnyFieldSchema | StorageMapFieldSchema<any> | StorageFileFieldSchema;
|
|
48
|
-
export declare type StorageFieldsSchema = {
|
|
49
|
-
[key: string]: StorageFieldSchema;
|
|
50
|
-
};
|
|
51
|
-
export declare type StorageIndexableFields<Fields extends StorageFieldsSchema> = {
|
|
52
|
-
[K in keyof Fields]: Fields[K] extends {
|
|
53
|
-
indexed: boolean;
|
|
54
|
-
} ? K : never;
|
|
55
|
-
};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"fields.js","sourceRoot":"","sources":["../../../../src/schema/types/fields.ts"],"names":[],"mappings":""}
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
export declare type MatchCollectionIndexFilter = {
|
|
2
|
-
where: string;
|
|
3
|
-
equals: any;
|
|
4
|
-
order?: 'asc' | 'desc';
|
|
5
|
-
};
|
|
6
|
-
export declare type RangeCollectionIndexFilter = {
|
|
7
|
-
where: string;
|
|
8
|
-
gte?: any;
|
|
9
|
-
lte?: any;
|
|
10
|
-
gt?: any;
|
|
11
|
-
lt?: any;
|
|
12
|
-
order?: 'asc' | 'desc';
|
|
13
|
-
};
|
|
14
|
-
export declare type CollectionCompoundIndexFilter = {
|
|
15
|
-
where: string;
|
|
16
|
-
match: Record<string, any>;
|
|
17
|
-
order: 'asc' | 'desc';
|
|
18
|
-
};
|
|
19
|
-
export declare type SortIndexFilter = {
|
|
20
|
-
where: string;
|
|
21
|
-
order: 'asc' | 'desc';
|
|
22
|
-
};
|
|
23
|
-
export declare type StartsWithIndexFilter = {
|
|
24
|
-
where: string;
|
|
25
|
-
startsWith: string;
|
|
26
|
-
order?: 'asc' | 'desc';
|
|
27
|
-
};
|
|
28
|
-
export declare type CollectionIndexFilter = MatchCollectionIndexFilter | RangeCollectionIndexFilter | CollectionCompoundIndexFilter | StartsWithIndexFilter | SortIndexFilter;
|
|
29
|
-
export declare type CollectionFilter = CollectionIndexFilter;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"filters.js","sourceRoot":"","sources":["../../../../src/schema/types/filters.ts"],"names":[],"mappings":""}
|