@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.
Files changed (50) hide show
  1. package/dist/cjs/error.d.ts +7 -2
  2. package/dist/cjs/error.js +6 -1
  3. package/dist/cjs/error.js.map +1 -1
  4. package/dist/cjs/indexes.js +2 -2
  5. package/dist/cjs/indexes.js.map +1 -1
  6. package/dist/cjs/presence.d.ts +2 -0
  7. package/dist/cjs/schema/fieldHelpers.d.ts +4 -4
  8. package/dist/cjs/schema/fieldHelpers.js.map +1 -1
  9. package/dist/cjs/schema/fields.d.ts +0 -2
  10. package/dist/cjs/schema/fields.js +1 -16
  11. package/dist/cjs/schema/fields.js.map +1 -1
  12. package/dist/cjs/schema/index.d.ts +3 -3
  13. package/dist/cjs/schema/index.js +1 -2
  14. package/dist/cjs/schema/index.js.map +1 -1
  15. package/dist/cjs/schema/types/compounds.d.ts +2 -2
  16. package/dist/cjs/schema/types/fields.d.ts +3 -26
  17. package/dist/cjs/schema/types/shapes.d.ts +3 -3
  18. package/dist/cjs/schema/validation.js.map +1 -1
  19. package/dist/esm/error.d.ts +7 -2
  20. package/dist/esm/error.js +6 -1
  21. package/dist/esm/error.js.map +1 -1
  22. package/dist/esm/indexes.js +2 -2
  23. package/dist/esm/indexes.js.map +1 -1
  24. package/dist/esm/presence.d.ts +2 -0
  25. package/dist/esm/schema/fieldHelpers.d.ts +4 -4
  26. package/dist/esm/schema/fieldHelpers.js.map +1 -1
  27. package/dist/esm/schema/fields.d.ts +0 -2
  28. package/dist/esm/schema/fields.js +0 -14
  29. package/dist/esm/schema/fields.js.map +1 -1
  30. package/dist/esm/schema/index.d.ts +3 -3
  31. package/dist/esm/schema/index.js +1 -2
  32. package/dist/esm/schema/index.js.map +1 -1
  33. package/dist/esm/schema/types/compounds.d.ts +2 -2
  34. package/dist/esm/schema/types/fields.d.ts +3 -26
  35. package/dist/esm/schema/types/shapes.d.ts +3 -3
  36. package/dist/esm/schema/validation.js.map +1 -1
  37. package/dist/tsconfig-cjs.tsbuildinfo +1 -1
  38. package/dist/tsconfig.tsbuildinfo +1 -1
  39. package/package.json +1 -1
  40. package/src/error.ts +6 -1
  41. package/src/indexes.ts +2 -2
  42. package/src/presence.ts +2 -0
  43. package/src/schema/fieldHelpers.ts +5 -5
  44. package/src/schema/fields.ts +3 -13
  45. package/src/schema/index.ts +1 -2
  46. package/src/schema/types/compounds.ts +6 -6
  47. package/src/schema/types/fields.ts +8 -47
  48. package/src/schema/types/shapes.ts +2 -7
  49. package/src/schema/types/synthetics.ts +0 -1
  50. 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 NestedStorageFieldSchema> = {
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 NestedStorageFieldsSchema> =
30
- {
31
- type: 'object';
32
- properties: Props;
33
- nullable?: boolean;
34
- default?: Record<string, any> | (() => Record<string, any>);
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 NestedStorageFieldSchema> = {
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]>;
@@ -1,6 +1,5 @@
1
1
  import {
2
2
  StorageBooleanFieldSchema,
3
- StorageFieldSchema,
4
3
  StorageFieldsSchema,
5
4
  StorageNumberFieldSchema,
6
5
  StorageStringFieldSchema,
@@ -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 NestedStorageFieldsSchema,
80
+ field.properties as StorageFieldsSchema,
85
81
  )) {
86
82
  // legacy -- old objects sometimes accidentally include this key
87
83
  if (key === OID_KEY) continue;