@verdant-web/common 2.1.0 → 2.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/error.d.ts +7 -2
- package/dist/cjs/error.js +6 -1
- package/dist/cjs/error.js.map +1 -1
- package/dist/cjs/indexes.js +2 -2
- package/dist/cjs/indexes.js.map +1 -1
- package/dist/cjs/presence.d.ts +2 -0
- package/dist/cjs/schema/fieldHelpers.d.ts +4 -4
- package/dist/cjs/schema/fieldHelpers.js.map +1 -1
- package/dist/cjs/schema/fields.d.ts +0 -2
- package/dist/cjs/schema/fields.js +1 -16
- package/dist/cjs/schema/fields.js.map +1 -1
- package/dist/cjs/schema/index.d.ts +3 -3
- package/dist/cjs/schema/index.js +1 -2
- package/dist/cjs/schema/index.js.map +1 -1
- package/dist/cjs/schema/types/compounds.d.ts +2 -2
- package/dist/cjs/schema/types/fields.d.ts +3 -26
- package/dist/cjs/schema/types/shapes.d.ts +3 -3
- package/dist/cjs/schema/validation.js.map +1 -1
- package/dist/esm/error.d.ts +7 -2
- package/dist/esm/error.js +6 -1
- package/dist/esm/error.js.map +1 -1
- package/dist/esm/indexes.js +2 -2
- package/dist/esm/indexes.js.map +1 -1
- package/dist/esm/presence.d.ts +2 -0
- package/dist/esm/schema/fieldHelpers.d.ts +4 -4
- package/dist/esm/schema/fieldHelpers.js.map +1 -1
- package/dist/esm/schema/fields.d.ts +0 -2
- package/dist/esm/schema/fields.js +0 -14
- package/dist/esm/schema/fields.js.map +1 -1
- package/dist/esm/schema/index.d.ts +3 -3
- package/dist/esm/schema/index.js +1 -2
- package/dist/esm/schema/index.js.map +1 -1
- package/dist/esm/schema/types/compounds.d.ts +2 -2
- package/dist/esm/schema/types/fields.d.ts +3 -26
- package/dist/esm/schema/types/shapes.d.ts +3 -3
- package/dist/esm/schema/validation.js.map +1 -1
- package/dist/tsconfig-cjs.tsbuildinfo +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
- package/src/error.ts +6 -1
- package/src/indexes.ts +2 -2
- package/src/presence.ts +2 -0
- package/src/schema/fieldHelpers.ts +5 -5
- package/src/schema/fields.ts +3 -13
- package/src/schema/index.ts +1 -2
- package/src/schema/types/compounds.ts +6 -6
- package/src/schema/types/fields.ts +8 -47
- package/src/schema/types/shapes.ts +2 -7
- package/src/schema/types/synthetics.ts +0 -1
- package/src/schema/validation.ts +2 -6
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
export type StorageStringFieldSchema = {
|
|
2
2
|
type: 'string';
|
|
3
|
-
/** @deprecated - add an index to indexes with this field name. */
|
|
4
|
-
indexed?: boolean;
|
|
5
3
|
nullable?: boolean;
|
|
6
4
|
default?: string | (() => string);
|
|
7
5
|
/** Limit the values to a certain set of options */
|
|
@@ -9,8 +7,6 @@ export type StorageStringFieldSchema = {
|
|
|
9
7
|
};
|
|
10
8
|
export type StorageNumberFieldSchema = {
|
|
11
9
|
type: 'number';
|
|
12
|
-
/** @deprecated - add an index to indexes with this field name. */
|
|
13
|
-
indexed?: boolean;
|
|
14
10
|
nullable?: boolean;
|
|
15
11
|
default?: number | (() => number);
|
|
16
12
|
};
|
|
@@ -18,26 +14,23 @@ export type StorageBooleanFieldSchema = {
|
|
|
18
14
|
type: 'boolean';
|
|
19
15
|
nullable?: boolean;
|
|
20
16
|
default?: boolean | (() => boolean);
|
|
21
|
-
/** @deprecated - add an index to indexes with this field name. */
|
|
22
|
-
indexed?: boolean;
|
|
23
17
|
};
|
|
24
|
-
export type StorageArrayFieldSchema<TItems extends
|
|
18
|
+
export type StorageArrayFieldSchema<TItems extends StorageFieldSchema> = {
|
|
25
19
|
type: 'array';
|
|
26
20
|
items: TItems;
|
|
27
21
|
nullable?: boolean;
|
|
28
22
|
};
|
|
29
|
-
export type StorageObjectFieldSchema<Props extends
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
};
|
|
23
|
+
export type StorageObjectFieldSchema<Props extends StorageFieldsSchema> = {
|
|
24
|
+
type: 'object';
|
|
25
|
+
properties: Props;
|
|
26
|
+
nullable?: boolean;
|
|
27
|
+
default?: Record<string, any> | (() => Record<string, any>);
|
|
28
|
+
};
|
|
36
29
|
export type StorageAnyFieldSchema<TShape = any> = {
|
|
37
30
|
type: 'any';
|
|
38
31
|
default?: TShape;
|
|
39
32
|
};
|
|
40
|
-
export type StorageMapFieldSchema<V extends
|
|
33
|
+
export type StorageMapFieldSchema<V extends StorageFieldSchema> = {
|
|
41
34
|
type: 'map';
|
|
42
35
|
values: V;
|
|
43
36
|
};
|
|
@@ -62,42 +55,10 @@ export type StorageFieldSchema =
|
|
|
62
55
|
| StorageMapFieldSchema<any>
|
|
63
56
|
| StorageFileFieldSchema;
|
|
64
57
|
|
|
65
|
-
// nested versions don't have index info
|
|
66
|
-
export type NestedStorageStringFieldSchema = {
|
|
67
|
-
type: 'string';
|
|
68
|
-
nullable?: boolean;
|
|
69
|
-
default?: string | (() => string);
|
|
70
|
-
};
|
|
71
|
-
export type NestedStorageNumberFieldSchema = {
|
|
72
|
-
type: 'number';
|
|
73
|
-
nullable?: boolean;
|
|
74
|
-
default?: number | (() => number);
|
|
75
|
-
};
|
|
76
|
-
export type NestedStorageBooleanFieldSchema = {
|
|
77
|
-
type: 'boolean';
|
|
78
|
-
nullable?: boolean;
|
|
79
|
-
default: boolean | (() => boolean);
|
|
80
|
-
};
|
|
81
|
-
|
|
82
|
-
export type NestedStorageFieldSchema =
|
|
83
|
-
| NestedStorageStringFieldSchema
|
|
84
|
-
| NestedStorageNumberFieldSchema
|
|
85
|
-
| NestedStorageBooleanFieldSchema
|
|
86
|
-
| StorageArrayFieldSchema<any>
|
|
87
|
-
| StorageObjectFieldSchema<any>
|
|
88
|
-
| StorageAnyFieldSchema
|
|
89
|
-
| StorageMapFieldSchema<any>
|
|
90
|
-
| StorageFileFieldSchema;
|
|
91
|
-
|
|
92
58
|
export type StorageFieldsSchema = {
|
|
93
59
|
[key: string]: StorageFieldSchema;
|
|
94
60
|
};
|
|
95
61
|
|
|
96
|
-
export type NestedStorageFieldsSchema = Record<
|
|
97
|
-
string,
|
|
98
|
-
NestedStorageFieldSchema
|
|
99
|
-
>;
|
|
100
|
-
|
|
101
62
|
// filters to only fields which can be indexed
|
|
102
63
|
export type StorageIndexableFields<Fields extends StorageFieldsSchema> = {
|
|
103
64
|
[K in keyof Fields]: Fields[K] extends { indexed: boolean } ? K : never;
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { StorageCollectionSchema } from './collection.js';
|
|
2
2
|
import {
|
|
3
|
-
NestedStorageFieldsSchema,
|
|
4
3
|
StorageArrayFieldSchema,
|
|
5
4
|
StorageFieldSchema,
|
|
6
5
|
StorageFieldsSchema,
|
|
@@ -42,9 +41,7 @@ export type ShapeFromProperty<T extends StorageFieldSchema> =
|
|
|
42
41
|
? BaseShapeFromProperty<T> | null
|
|
43
42
|
: BaseShapeFromProperty<T>;
|
|
44
43
|
|
|
45
|
-
export type ShapeFromFields<
|
|
46
|
-
T extends StorageFieldsSchema | NestedStorageFieldsSchema,
|
|
47
|
-
> = {
|
|
44
|
+
export type ShapeFromFields<T extends StorageFieldsSchema> = {
|
|
48
45
|
[K in keyof T]: ShapeFromProperty<T[K]>;
|
|
49
46
|
};
|
|
50
47
|
|
|
@@ -65,9 +62,7 @@ type StoragePropertyIsOptional<T extends StorageFieldSchema> =
|
|
|
65
62
|
? true
|
|
66
63
|
: false;
|
|
67
64
|
|
|
68
|
-
export type ShapeFromFieldsWithDefaults<
|
|
69
|
-
T extends StorageFieldsSchema | NestedStorageFieldsSchema,
|
|
70
|
-
> = {
|
|
65
|
+
export type ShapeFromFieldsWithDefaults<T extends StorageFieldsSchema> = {
|
|
71
66
|
[K in keyof T as StoragePropertyIsOptional<T[K]> extends true
|
|
72
67
|
? K
|
|
73
68
|
: never]?: ShapeFromProperty<T[K]>;
|
package/src/schema/validation.ts
CHANGED
|
@@ -1,11 +1,7 @@
|
|
|
1
1
|
import { OID_KEY } from '../oids.js';
|
|
2
2
|
import { isObject } from '../utils.js';
|
|
3
3
|
import { hasDefault, isNullable } from './fields.js';
|
|
4
|
-
import {
|
|
5
|
-
NestedStorageFieldsSchema,
|
|
6
|
-
StorageFieldSchema,
|
|
7
|
-
StorageFieldsSchema,
|
|
8
|
-
} from './types.js';
|
|
4
|
+
import { StorageFieldSchema, StorageFieldsSchema } from './types.js';
|
|
9
5
|
|
|
10
6
|
export function validateEntity(
|
|
11
7
|
schema: StorageFieldsSchema,
|
|
@@ -81,7 +77,7 @@ export function validateEntityField({
|
|
|
81
77
|
};
|
|
82
78
|
}
|
|
83
79
|
for (const [key, subField] of Object.entries(
|
|
84
|
-
field.properties as
|
|
80
|
+
field.properties as StorageFieldsSchema,
|
|
85
81
|
)) {
|
|
86
82
|
// legacy -- old objects sometimes accidentally include this key
|
|
87
83
|
if (key === OID_KEY) continue;
|