@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.
Files changed (161) hide show
  1. package/dist/esm/EventSubscriber.d.ts +1 -1
  2. package/dist/esm/EventSubscriber.js.map +1 -1
  3. package/dist/esm/baseline.d.ts +1 -1
  4. package/dist/esm/batching.js.map +1 -1
  5. package/dist/esm/error.d.ts +1 -0
  6. package/dist/esm/error.js +2 -1
  7. package/dist/esm/error.js.map +1 -1
  8. package/dist/esm/files.d.ts +3 -2
  9. package/dist/esm/indexes.d.ts +2 -2
  10. package/dist/esm/indexes.js.map +1 -1
  11. package/dist/esm/memo.js.map +1 -1
  12. package/dist/esm/migration.d.ts +23 -23
  13. package/dist/esm/migration.js.map +1 -1
  14. package/dist/esm/oids.d.ts +1 -1
  15. package/dist/esm/oids.js.map +1 -1
  16. package/dist/esm/operation.d.ts +8 -8
  17. package/dist/esm/operation.js.map +1 -1
  18. package/dist/esm/patch.js.map +1 -1
  19. package/dist/esm/protocol.d.ts +18 -18
  20. package/dist/esm/refs.d.ts +1 -1
  21. package/dist/esm/replica.js +1 -1
  22. package/dist/esm/replica.js.map +1 -1
  23. package/dist/esm/schema/children.js.map +1 -1
  24. package/dist/esm/schema/fieldHelpers.d.ts +5 -5
  25. package/dist/esm/schema/fields.js.map +1 -1
  26. package/dist/esm/schema/index.js.map +1 -1
  27. package/dist/esm/schema/types/collection.d.ts +1 -1
  28. package/dist/esm/schema/types/compounds.d.ts +4 -4
  29. package/dist/esm/schema/types/fields.d.ts +11 -11
  30. package/dist/esm/schema/types/filters.d.ts +7 -7
  31. package/dist/esm/schema/types/shapes.d.ts +10 -9
  32. package/dist/esm/schema/types/synthetics.d.ts +12 -12
  33. package/dist/esm/schema/types.d.ts +3 -3
  34. package/dist/esm/schema/validation.d.ts +1 -1
  35. package/dist/esm/schema/validation.js.map +1 -1
  36. package/dist/esm/timestamp.js.map +1 -1
  37. package/dist/esm/timestamp.test.js.map +1 -1
  38. package/dist/esm/undo.js.map +1 -1
  39. package/dist/esm/utils.js.map +1 -1
  40. package/package.json +5 -8
  41. package/src/error.ts +1 -0
  42. package/src/protocol.ts +1 -1
  43. package/dist/cjs/EventSubscriber.d.ts +0 -18
  44. package/dist/cjs/EventSubscriber.js +0 -70
  45. package/dist/cjs/EventSubscriber.js.map +0 -1
  46. package/dist/cjs/baseline.d.ts +0 -5
  47. package/dist/cjs/baseline.js +0 -3
  48. package/dist/cjs/baseline.js.map +0 -1
  49. package/dist/cjs/batching.d.ts +0 -43
  50. package/dist/cjs/batching.js +0 -98
  51. package/dist/cjs/batching.js.map +0 -1
  52. package/dist/cjs/error.d.ts +0 -21
  53. package/dist/cjs/error.js +0 -42
  54. package/dist/cjs/error.js.map +0 -1
  55. package/dist/cjs/files.d.ts +0 -19
  56. package/dist/cjs/files.js +0 -19
  57. package/dist/cjs/files.js.map +0 -1
  58. package/dist/cjs/index.d.ts +0 -21
  59. package/dist/cjs/index.js +0 -44
  60. package/dist/cjs/index.js.map +0 -1
  61. package/dist/cjs/indexes.d.ts +0 -17
  62. package/dist/cjs/indexes.js +0 -146
  63. package/dist/cjs/indexes.js.map +0 -1
  64. package/dist/cjs/indexes.test.d.ts +0 -1
  65. package/dist/cjs/indexes.test.js +0 -156
  66. package/dist/cjs/indexes.test.js.map +0 -1
  67. package/dist/cjs/memo.d.ts +0 -6
  68. package/dist/cjs/memo.js +0 -25
  69. package/dist/cjs/memo.js.map +0 -1
  70. package/dist/cjs/memo.test.d.ts +0 -1
  71. package/dist/cjs/memo.test.js +0 -29
  72. package/dist/cjs/memo.test.js.map +0 -1
  73. package/dist/cjs/migration.d.ts +0 -174
  74. package/dist/cjs/migration.js +0 -310
  75. package/dist/cjs/migration.js.map +0 -1
  76. package/dist/cjs/oids.d.ts +0 -101
  77. package/dist/cjs/oids.js +0 -466
  78. package/dist/cjs/oids.js.map +0 -1
  79. package/dist/cjs/oids.test.d.ts +0 -1
  80. package/dist/cjs/oids.test.js +0 -409
  81. package/dist/cjs/oids.test.js.map +0 -1
  82. package/dist/cjs/operation.d.ts +0 -142
  83. package/dist/cjs/operation.js +0 -549
  84. package/dist/cjs/operation.js.map +0 -1
  85. package/dist/cjs/operation.test.d.ts +0 -1
  86. package/dist/cjs/operation.test.js +0 -977
  87. package/dist/cjs/operation.test.js.map +0 -1
  88. package/dist/cjs/patch.d.ts +0 -28
  89. package/dist/cjs/patch.js +0 -230
  90. package/dist/cjs/patch.js.map +0 -1
  91. package/dist/cjs/presence.d.ts +0 -29
  92. package/dist/cjs/presence.js +0 -3
  93. package/dist/cjs/presence.js.map +0 -1
  94. package/dist/cjs/protocol.d.ts +0 -145
  95. package/dist/cjs/protocol.js +0 -4
  96. package/dist/cjs/protocol.js.map +0 -1
  97. package/dist/cjs/refs.d.ts +0 -7
  98. package/dist/cjs/refs.js +0 -30
  99. package/dist/cjs/refs.js.map +0 -1
  100. package/dist/cjs/replica.d.ts +0 -28
  101. package/dist/cjs/replica.js +0 -29
  102. package/dist/cjs/replica.js.map +0 -1
  103. package/dist/cjs/schema/children.d.ts +0 -2
  104. package/dist/cjs/schema/children.js +0 -24
  105. package/dist/cjs/schema/children.js.map +0 -1
  106. package/dist/cjs/schema/defaults.test.d.ts +0 -1
  107. package/dist/cjs/schema/defaults.test.js +0 -34
  108. package/dist/cjs/schema/defaults.test.js.map +0 -1
  109. package/dist/cjs/schema/fieldHelpers.d.ts +0 -35
  110. package/dist/cjs/schema/fieldHelpers.js +0 -38
  111. package/dist/cjs/schema/fieldHelpers.js.map +0 -1
  112. package/dist/cjs/schema/fields.d.ts +0 -10
  113. package/dist/cjs/schema/fields.js +0 -172
  114. package/dist/cjs/schema/fields.js.map +0 -1
  115. package/dist/cjs/schema/index.d.ts +0 -54
  116. package/dist/cjs/schema/index.js +0 -63
  117. package/dist/cjs/schema/index.js.map +0 -1
  118. package/dist/cjs/schema/indexFilters.d.ts +0 -6
  119. package/dist/cjs/schema/indexFilters.js +0 -31
  120. package/dist/cjs/schema/indexFilters.js.map +0 -1
  121. package/dist/cjs/schema/types/collection.d.ts +0 -23
  122. package/dist/cjs/schema/types/collection.js +0 -3
  123. package/dist/cjs/schema/types/collection.js.map +0 -1
  124. package/dist/cjs/schema/types/compounds.d.ts +0 -11
  125. package/dist/cjs/schema/types/compounds.js +0 -3
  126. package/dist/cjs/schema/types/compounds.js.map +0 -1
  127. package/dist/cjs/schema/types/fields.d.ts +0 -55
  128. package/dist/cjs/schema/types/fields.js +0 -3
  129. package/dist/cjs/schema/types/fields.js.map +0 -1
  130. package/dist/cjs/schema/types/filters.d.ts +0 -29
  131. package/dist/cjs/schema/types/filters.js +0 -3
  132. package/dist/cjs/schema/types/filters.js.map +0 -1
  133. package/dist/cjs/schema/types/shapes.d.ts +0 -24
  134. package/dist/cjs/schema/types/shapes.js +0 -3
  135. package/dist/cjs/schema/types/shapes.js.map +0 -1
  136. package/dist/cjs/schema/types/synthetics.d.ts +0 -37
  137. package/dist/cjs/schema/types/synthetics.js +0 -3
  138. package/dist/cjs/schema/types/synthetics.js.map +0 -1
  139. package/dist/cjs/schema/types.d.ts +0 -18
  140. package/dist/cjs/schema/types.js +0 -23
  141. package/dist/cjs/schema/types.js.map +0 -1
  142. package/dist/cjs/schema/validation.d.ts +0 -14
  143. package/dist/cjs/schema/validation.js +0 -158
  144. package/dist/cjs/schema/validation.js.map +0 -1
  145. package/dist/cjs/timestamp.d.ts +0 -51
  146. package/dist/cjs/timestamp.js +0 -254
  147. package/dist/cjs/timestamp.js.map +0 -1
  148. package/dist/cjs/timestamp.test.d.ts +0 -1
  149. package/dist/cjs/timestamp.test.js +0 -105
  150. package/dist/cjs/timestamp.test.js.map +0 -1
  151. package/dist/cjs/undo.d.ts +0 -3
  152. package/dist/cjs/undo.js +0 -201
  153. package/dist/cjs/undo.js.map +0 -1
  154. package/dist/cjs/utils.d.ts +0 -20
  155. package/dist/cjs/utils.js +0 -146
  156. package/dist/cjs/utils.js.map +0 -1
  157. package/dist/cjs/utils.test.d.ts +0 -1
  158. package/dist/cjs/utils.test.js +0 -37
  159. package/dist/cjs/utils.test.js.map +0 -1
  160. package/dist/tsconfig-cjs.tsbuildinfo +0 -1
  161. package/dist/tsconfig.tsbuildinfo +0 -1
@@ -1,24 +0,0 @@
1
- import { StorageCollectionSchema } from './collection.js';
2
- import { StorageArrayFieldSchema, StorageFieldSchema, StorageFieldsSchema, StorageMapFieldSchema, StorageObjectFieldSchema } from './fields.js';
3
- declare type StoragePropertyIsNullable<T extends StorageFieldSchema> = T extends {
4
- nullable?: boolean;
5
- } ? T['nullable'] extends boolean ? true : false : T['type'] extends 'any' ? true : false;
6
- export declare type BaseShapeFromProperty<T extends StorageFieldSchema> = T['type'] extends 'string' ? string : T['type'] extends 'number' ? number : T['type'] extends 'boolean' ? boolean : T extends StorageArrayFieldSchema<infer U> ? ShapeFromProperty<U>[] : T extends StorageObjectFieldSchema<infer U> ? ShapeFromFields<U> : T extends StorageMapFieldSchema<any> ? Record<string, ShapeFromProperty<T['values']>> : T['type'] extends 'any' ? any : T['type'] extends 'file' ? File : never;
7
- export declare type ShapeFromProperty<T extends StorageFieldSchema> = StoragePropertyIsNullable<T> extends true ? BaseShapeFromProperty<T> | null : BaseShapeFromProperty<T>;
8
- export declare type ShapeFromFields<T extends StorageFieldsSchema> = {
9
- [K in keyof T]: ShapeFromProperty<T[K]>;
10
- };
11
- export declare type StorageDocument<Collection extends StorageCollectionSchema<any, any, any>> = ShapeFromFields<Collection['fields']>;
12
- declare type StoragePropertyIsOptional<T extends StorageFieldSchema> = StoragePropertyIsNullable<T> extends true ? true : T extends {
13
- default?: any;
14
- } ? true : T['type'] extends 'any' ? true : T['type'] extends 'array' ? true : T['type'] extends 'map' ? true : false;
15
- export declare type ShapeFromFieldsWithDefaults<T extends StorageFieldsSchema> = {
16
- [K in keyof T as StoragePropertyIsOptional<T[K]> extends true ? K : never]?: ShapeFromProperty<T[K]>;
17
- } & {
18
- [K in keyof T as StoragePropertyIsOptional<T[K]> extends true ? never : K]: ShapeFromProperty<T[K]>;
19
- };
20
- export declare type StorageDocumentInit<Collection extends StorageCollectionSchema<any, any, any>> = ShapeFromFieldsWithDefaults<Collection['fields']>;
21
- export declare type FieldsFromShape<Shape extends Record<string, unknown>> = {
22
- [K in keyof Shape]: StorageFieldSchema;
23
- };
24
- export {};
@@ -1,3 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=shapes.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"shapes.js","sourceRoot":"","sources":["../../../../src/schema/types/shapes.ts"],"names":[],"mappings":""}
@@ -1,37 +0,0 @@
1
- import { StorageBooleanFieldSchema, StorageFieldsSchema, StorageNumberFieldSchema, StorageStringFieldSchema } from './fields.js';
2
- import { ShapeFromFields } from './shapes.js';
3
- export declare type StorageStringSyntheticSchema<Fields extends StorageFieldsSchema> = {
4
- type: 'string';
5
- compute: (value: ShapeFromFields<Fields>) => string | null;
6
- };
7
- export declare type StorageNumberSyntheticSchema<Fields extends StorageFieldsSchema> = {
8
- type: 'number';
9
- compute: (value: ShapeFromFields<Fields>) => number | null;
10
- };
11
- export declare type StorageBooleanSyntheticSchema<Fields extends StorageFieldsSchema> = {
12
- type: 'boolean';
13
- compute: (value: ShapeFromFields<Fields>) => boolean | null;
14
- };
15
- export declare type StorageStringArraySyntheticSchema<Fields extends StorageFieldsSchema> = {
16
- type: 'string[]';
17
- compute: (value: ShapeFromFields<Fields>) => string[];
18
- };
19
- export declare type StorageNumberArraySyntheticSchema<Fields extends StorageFieldsSchema> = {
20
- type: 'number[]';
21
- compute: (value: ShapeFromFields<Fields>) => number[];
22
- };
23
- export declare type StorageBooleanArraySyntheticSchema<Fields extends StorageFieldsSchema> = {
24
- type: 'boolean[]';
25
- compute: (value: ShapeFromFields<Fields>) => boolean[];
26
- };
27
- export declare type StorageDirectSyntheticSchema<Fields extends StorageFieldsSchema> = {
28
- field: DirectIndexableFieldName<Fields>;
29
- };
30
- declare type DirectIndexableFields<Fields extends StorageFieldsSchema> = {
31
- [K in keyof Fields as Fields[K] extends StorageStringFieldSchema ? K : Fields[K] extends StorageNumberFieldSchema ? K : Fields[K] extends StorageBooleanFieldSchema ? K : never]: any;
32
- };
33
- export declare type DirectIndexableFieldName<Fields extends StorageFieldsSchema> = keyof DirectIndexableFields<Fields> extends never ? string : keyof DirectIndexableFields<Fields>;
34
- export declare type StorageSyntheticIndices<Fields extends StorageFieldsSchema> = Record<string, StorageSyntheticIndexSchema<Fields>>;
35
- export declare type StorageSyntheticIndexSchema<Fields extends StorageFieldsSchema> = StorageStringSyntheticSchema<Fields> | StorageNumberSyntheticSchema<Fields> | StorageBooleanSyntheticSchema<Fields> | StorageStringArraySyntheticSchema<Fields> | StorageNumberArraySyntheticSchema<Fields> | StorageBooleanArraySyntheticSchema<Fields> | StorageDirectSyntheticSchema<Fields>;
36
- export declare type IndexValueTag = Exclude<StorageSyntheticIndexSchema<any>, StorageDirectSyntheticSchema<any>>['type'];
37
- export {};
@@ -1,3 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=synthetics.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"synthetics.js","sourceRoot":"","sources":["../../../../src/schema/types/synthetics.ts"],"names":[],"mappings":""}
@@ -1,18 +0,0 @@
1
- import { StorageCollectionSchema } from './types/collection.js';
2
- export * from './types/collection.js';
3
- export * from './types/compounds.js';
4
- export * from './types/fields.js';
5
- export * from './types/filters.js';
6
- export * from './types/shapes.js';
7
- export * from './types/synthetics.js';
8
- export declare type StorageSchema<Collections extends {
9
- [k: string]: StorageCollectionSchema;
10
- } = {
11
- [k: string]: StorageCollectionSchema;
12
- }> = {
13
- version: number;
14
- wip?: true;
15
- collections: Collections;
16
- };
17
- export declare type SchemaCollectionName<Schema extends StorageSchema<any>> = Schema extends StorageSchema<infer Cs> ? Exclude<keyof Cs, number | symbol> : never;
18
- export declare type SchemaCollection<Schema extends StorageSchema<any>, Name extends SchemaCollectionName<Schema>> = Schema extends StorageSchema<infer Cs> ? Cs[Name] : never;
@@ -1,23 +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
- Object.defineProperty(exports, "__esModule", { value: true });
17
- __exportStar(require("./types/collection.js"), exports);
18
- __exportStar(require("./types/compounds.js"), exports);
19
- __exportStar(require("./types/fields.js"), exports);
20
- __exportStar(require("./types/filters.js"), exports);
21
- __exportStar(require("./types/shapes.js"), exports);
22
- __exportStar(require("./types/synthetics.js"), exports);
23
- //# sourceMappingURL=types.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/schema/types.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAEA,wDAAsC;AACtC,uDAAqC;AACrC,oDAAkC;AAClC,qDAAmC;AACnC,oDAAkC;AAClC,wDAAsC"}
@@ -1,14 +0,0 @@
1
- import { StorageFieldSchema, StorageFieldsSchema } from './types.js';
2
- export declare function validateEntity(schema: StorageFieldsSchema, entity: any): EntityValidationProblem | void;
3
- export declare type EntityValidationProblem = {
4
- type: 'null' | 'no-default' | 'invalid-type' | 'invalid-value' | 'invalid-key';
5
- fieldPath: (string | number)[];
6
- message: string;
7
- };
8
- export declare function validateEntityField({ field, value, fieldPath, depth, requireDefaults, }: {
9
- field: StorageFieldSchema;
10
- value: any;
11
- fieldPath: (string | number)[];
12
- depth?: number;
13
- requireDefaults?: boolean;
14
- }): EntityValidationProblem | undefined;
@@ -1,158 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.validateEntityField = exports.validateEntity = void 0;
4
- const oids_js_1 = require("../oids.js");
5
- const utils_js_1 = require("../utils.js");
6
- const fields_js_1 = require("./fields.js");
7
- function validateEntity(schema, entity) {
8
- for (const [key, value] of Object.entries(entity)) {
9
- // legacy -- old objects sometimes accidentally include this key
10
- if (key === oids_js_1.OID_KEY)
11
- continue;
12
- if (!schema[key]) {
13
- return {
14
- type: 'invalid-key',
15
- fieldPath: [key],
16
- message: `Invalid field "${key}"`,
17
- };
18
- }
19
- if (value) {
20
- const err = validateEntityField({
21
- field: schema[key],
22
- value,
23
- fieldPath: [key],
24
- });
25
- if (err)
26
- return err;
27
- }
28
- }
29
- return;
30
- }
31
- exports.validateEntity = validateEntity;
32
- function validateEntityField({ field, value, fieldPath = [], depth, requireDefaults, }) {
33
- if (depth !== undefined && depth <= 0)
34
- return;
35
- if ((0, fields_js_1.isNullable)(field) && value === null)
36
- return;
37
- if (value === null) {
38
- if (requireDefaults || !(0, fields_js_1.hasDefault)(field)) {
39
- return {
40
- type: 'no-default',
41
- fieldPath,
42
- message: `Invalid null value for field ${formatField(fieldPath)}`,
43
- };
44
- }
45
- }
46
- if (field.type === 'object') {
47
- if (!(0, utils_js_1.isObject)(value)) {
48
- return {
49
- type: 'invalid-type',
50
- fieldPath,
51
- message: `Expected object${field.nullable ? ' or null' : ''} for field ${formatField(fieldPath)}, got ${value}`,
52
- };
53
- }
54
- for (const [key, subField] of Object.entries(field.properties)) {
55
- // legacy -- old objects sometimes accidentally include this key
56
- if (key === oids_js_1.OID_KEY)
57
- continue;
58
- if (value[key]) {
59
- validateEntityField({
60
- field: subField,
61
- value: value[key],
62
- fieldPath: [...fieldPath, key],
63
- depth: depth !== undefined ? depth - 1 : undefined,
64
- });
65
- }
66
- }
67
- // check for unexpected keys
68
- for (const key of Object.keys(value)) {
69
- if (!field.properties[key]) {
70
- return {
71
- type: 'invalid-key',
72
- fieldPath: [...fieldPath, key],
73
- message: `Invalid unexpected field "${key}" on value ${formatField(fieldPath)}`,
74
- };
75
- }
76
- }
77
- }
78
- else if (field.type === 'array') {
79
- if (!Array.isArray(value)) {
80
- if (value === null && field.nullable)
81
- return;
82
- return {
83
- type: 'invalid-value',
84
- fieldPath,
85
- message: `Expected array${field.nullable ? ' or null' : ''} for field ${formatField(fieldPath)}, got ${value}`,
86
- };
87
- }
88
- for (const item of value) {
89
- validateEntityField({
90
- field: field.items,
91
- value: item,
92
- fieldPath: [...fieldPath, '[]'],
93
- depth: depth !== undefined ? depth - 1 : undefined,
94
- });
95
- }
96
- }
97
- else if (field.type === 'map') {
98
- if (!(0, utils_js_1.isObject)(value)) {
99
- return {
100
- type: 'invalid-type',
101
- fieldPath,
102
- message: `Expected map for field ${formatField(fieldPath)}, got ${value}`,
103
- };
104
- }
105
- for (const [key, item] of Object.entries(value)) {
106
- validateEntityField({
107
- field: field.values,
108
- value: item,
109
- fieldPath: [...fieldPath, key],
110
- depth: depth !== undefined ? depth - 1 : undefined,
111
- });
112
- }
113
- }
114
- else if (field.type === 'string') {
115
- if (typeof value !== 'string') {
116
- return {
117
- type: 'invalid-type',
118
- fieldPath,
119
- message: `Expected string ${field.nullable ? ' or null' : ''} for field ${formatField(fieldPath)}, got ${value}`,
120
- };
121
- }
122
- if (field.options && !field.options.includes(value)) {
123
- return {
124
- type: 'invalid-value',
125
- fieldPath,
126
- message: `Expected one of ${field.options.join(', ')} for field ${formatField(fieldPath)}, got ${value}`,
127
- };
128
- }
129
- }
130
- else if (field.type === 'boolean') {
131
- if (typeof value !== 'boolean') {
132
- return {
133
- type: 'invalid-type',
134
- fieldPath,
135
- message: `Expected boolean ${field.nullable ? ' or null' : ''} for field ${formatField(fieldPath)}, got ${value}`,
136
- };
137
- }
138
- }
139
- else if (field.type === 'number') {
140
- if (typeof value !== 'number') {
141
- return {
142
- type: 'invalid-type',
143
- fieldPath,
144
- message: `Expected number ${field.nullable ? ' or null' : ''} for field ${formatField(fieldPath)}, got ${value}`,
145
- };
146
- }
147
- }
148
- else if (field.type === 'file') {
149
- // TODO: how?
150
- }
151
- }
152
- exports.validateEntityField = validateEntityField;
153
- function formatField(fieldPath) {
154
- if (fieldPath.length === 0)
155
- return 'root';
156
- return fieldPath.join('.');
157
- }
158
- //# sourceMappingURL=validation.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"validation.js","sourceRoot":"","sources":["../../../src/schema/validation.ts"],"names":[],"mappings":"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"}
@@ -1,51 +0,0 @@
1
- export interface TimestampProvider {
2
- now(version: number): string;
3
- update(remoteTimestamp: string): void;
4
- zero(version: number): string;
5
- getWallClockTime(timestamp: string): number;
6
- }
7
- export declare function encodeVersion(version: number | string): string;
8
- export declare function OLD_encodeVersion(version: number | string): string;
9
- export declare class NaiveTimestampProvider implements TimestampProvider {
10
- counter: number;
11
- now: (version: number | string) => string;
12
- update: () => void;
13
- zero: (version: number | string) => string;
14
- getWallClockTime: (timestamp: string) => number;
15
- }
16
- export declare class HybridLogicalClockTimestampProvider implements TimestampProvider {
17
- private latest;
18
- private zeroCounter;
19
- now: (version: string | number) => string;
20
- /**
21
- * @deprecated - use now() instead and update to latest format
22
- */
23
- OLD_now: (version: string | number) => string;
24
- /** Get the current timer state. Does not increment counter. */
25
- timerState: () => HLCTimestamp;
26
- update: (remoteTimestamp: string) => void;
27
- get: (version: string | number, raw: HLCTimestamp) => string;
28
- zero: (version: string | number) => string;
29
- getWallClockTime: typeof getWallClockTime;
30
- }
31
- interface HLCTimestamp {
32
- time: number;
33
- counter: number;
34
- node: string;
35
- }
36
- export declare function serializeHlcTimestamp(ts: HLCTimestamp): string;
37
- export declare function deserializeHlcTimestamp(clock: string): HLCTimestamp;
38
- /**
39
- * Below, converters for old-style timestamps are defined.
40
- * These are for migrating older clients to the new format.
41
- */
42
- /**
43
- * Converts a timestamp from the old format to the new format.
44
- */
45
- export declare function convertOldHlcTimestamp(ts: string): string;
46
- export declare function OLD_serializeHlcTimestamp(ts: HLCTimestamp): string;
47
- export declare function OLD_deserializeHlcTimestamp(clock: string): HLCTimestamp;
48
- export declare function getTimestampSchemaVersion(timestamp: string): number;
49
- export declare function compareTimestampSchemaVersions(a: string, b: string): number;
50
- export declare function getWallClockTime(timestamp: string): number;
51
- export {};
@@ -1,254 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.getWallClockTime = exports.compareTimestampSchemaVersions = exports.getTimestampSchemaVersion = exports.OLD_deserializeHlcTimestamp = exports.OLD_serializeHlcTimestamp = exports.convertOldHlcTimestamp = exports.deserializeHlcTimestamp = exports.serializeHlcTimestamp = exports.HybridLogicalClockTimestampProvider = exports.NaiveTimestampProvider = exports.OLD_encodeVersion = exports.encodeVersion = void 0;
7
- const cuid_1 = __importDefault(require("cuid"));
8
- const VERSION_BLOCK_LENGTH = 4;
9
- const ENCODING_NUMBER_RADIX = 36;
10
- function encodeVersion(version) {
11
- return version
12
- .toString(ENCODING_NUMBER_RADIX)
13
- .padStart(VERSION_BLOCK_LENGTH, '0');
14
- }
15
- exports.encodeVersion = encodeVersion;
16
- function OLD_encodeVersion(version) {
17
- return version.toString().padStart(6, '0');
18
- }
19
- exports.OLD_encodeVersion = OLD_encodeVersion;
20
- class NaiveTimestampProvider {
21
- constructor() {
22
- this.counter = 0;
23
- this.now = (version) => {
24
- return (encodeVersion(version) + Date.now().toString() + '-' + this.counter++);
25
- };
26
- this.update = () => {
27
- this.counter = 0;
28
- };
29
- this.zero = (version) => {
30
- return encodeVersion(version) + '0' + '-' + this.counter++;
31
- };
32
- this.getWallClockTime = (timestamp) => {
33
- return parseInt(timestamp.slice(VERSION_BLOCK_LENGTH).split('-')[0], 10);
34
- };
35
- }
36
- }
37
- exports.NaiveTimestampProvider = NaiveTimestampProvider;
38
- class HybridLogicalClockTimestampProvider {
39
- constructor() {
40
- this.latest = {
41
- time: Date.now(),
42
- counter: 0,
43
- node: generateNodeId(),
44
- };
45
- this.zeroCounter = 0;
46
- this.now = (version) => {
47
- this.latest = getHlcNow(this.latest);
48
- return this.get(version, this.latest);
49
- };
50
- /**
51
- * @deprecated - use now() instead and update to latest format
52
- */
53
- this.OLD_now = (version) => {
54
- this.latest = getHlcNow(this.latest);
55
- return OLD_encodeVersion(version) + OLD_serializeHlcTimestamp(this.latest);
56
- };
57
- /** Get the current timer state. Does not increment counter. */
58
- this.timerState = () => {
59
- return this.latest;
60
- };
61
- this.update = (remoteTimestamp) => {
62
- // strip version from remote timestamp
63
- const hlcString = remoteTimestamp.slice(VERSION_BLOCK_LENGTH);
64
- this.latest = updateFromRemote(this.latest, deserializeHlcTimestamp(hlcString));
65
- };
66
- this.get = (version, raw) => {
67
- return encodeVersion(version) + serializeHlcTimestamp(raw);
68
- };
69
- this.zero = (version) => {
70
- return (encodeVersion(version) +
71
- serializeHlcTimestamp({
72
- time: 0,
73
- // to keep zero timestamps unique, we use a counter here as well
74
- counter: this.zeroCounter++,
75
- node: this.latest.node,
76
- }));
77
- };
78
- this.getWallClockTime = getWallClockTime;
79
- }
80
- }
81
- exports.HybridLogicalClockTimestampProvider = HybridLogicalClockTimestampProvider;
82
- class ClockDriftError extends Error {
83
- constructor(...args) {
84
- super();
85
- this.type = 'ClockDriftError';
86
- this.message = ['maximum clock drift exceeded'].concat(args).join(' ');
87
- }
88
- }
89
- class OverflowError extends Error {
90
- constructor() {
91
- super();
92
- this.type = 'OverflowError';
93
- this.message = 'timestamp counter overflow';
94
- }
95
- }
96
- const COUNTER_BLOCK_LENGTH = 4;
97
- const NODE_BLOCK_LENGTH = 7;
98
- const MAX_CLOCK_DRIFT = 60 * 1000;
99
- // 9 base36 characters should last until the year 5000
100
- // when encoding a unix MS timestamp
101
- const TIME_BLOCK_LENGTH = 9;
102
- function generateNodeId() {
103
- return cuid_1.default
104
- .slug()
105
- .padStart(NODE_BLOCK_LENGTH, '0')
106
- .slice(0, NODE_BLOCK_LENGTH);
107
- }
108
- function serializeHlcTimestamp(ts) {
109
- // string representation of the time
110
- const dateString = new Date(ts.time)
111
- .getTime()
112
- .toString(ENCODING_NUMBER_RADIX)
113
- .padStart(TIME_BLOCK_LENGTH, '0');
114
- // counter, 336, padded to 4 characters
115
- const counter = ts.counter
116
- .toString(ENCODING_NUMBER_RADIX)
117
- .padStart(COUNTER_BLOCK_LENGTH, '0');
118
- // node id padded to 16 characters
119
- const node = ts.node.padStart(NODE_BLOCK_LENGTH, '0');
120
- return `${dateString}${counter}${node}`;
121
- }
122
- exports.serializeHlcTimestamp = serializeHlcTimestamp;
123
- function getHlcNow(prev) {
124
- const wallTime = Date.now();
125
- // pick prev's time if it's later than our local device
126
- const newWallTime = Math.max(prev.time, wallTime);
127
- // reset counter if wall time changed
128
- const newCounter = prev.time === newWallTime ? prev.counter + 1 : 0;
129
- // check for drift
130
- if (newWallTime - wallTime > MAX_CLOCK_DRIFT) {
131
- throw new ClockDriftError(newWallTime, wallTime, MAX_CLOCK_DRIFT);
132
- }
133
- // check for counter overflow (max is 4 bytes)
134
- if (newCounter > 65535) {
135
- throw new OverflowError();
136
- }
137
- return {
138
- time: newWallTime,
139
- counter: newCounter,
140
- node: prev.node,
141
- };
142
- }
143
- function updateFromRemote(local, remote) {
144
- const wallTime = Date.now();
145
- // pick remote's time if it's later than our local device
146
- const newTime = Math.max(wallTime, Math.max(local.time, remote.time));
147
- const maxCounter = Math.max(local.counter, remote.counter);
148
- let newCounter;
149
- // if all clocks are the same, increment the counter
150
- if (local.time === newTime && remote.time === newTime) {
151
- newCounter = maxCounter + 1;
152
- }
153
- // if local time is the same as new time, increment our local counter
154
- else if (local.time === newTime) {
155
- newCounter = local.counter + 1;
156
- }
157
- // if remote time is the same as new time, increment remote counter
158
- else if (remote.time === newTime) {
159
- newCounter = remote.counter + 1;
160
- }
161
- // otherwise, reset the counter
162
- else {
163
- newCounter = 0;
164
- }
165
- // check for drift
166
- if (newTime - wallTime > MAX_CLOCK_DRIFT) {
167
- throw new ClockDriftError(newTime, wallTime, MAX_CLOCK_DRIFT);
168
- }
169
- if (newCounter > 65535) {
170
- throw new OverflowError();
171
- }
172
- return {
173
- time: newTime,
174
- counter: newCounter,
175
- node: local.node,
176
- };
177
- }
178
- function deserializeHlcTimestamp(clock) {
179
- const dateString = clock.slice(0, TIME_BLOCK_LENGTH);
180
- const counter = clock.slice(TIME_BLOCK_LENGTH, TIME_BLOCK_LENGTH + COUNTER_BLOCK_LENGTH);
181
- const node = clock.slice(TIME_BLOCK_LENGTH + COUNTER_BLOCK_LENGTH);
182
- const time = parseInt(dateString, ENCODING_NUMBER_RADIX);
183
- const counterNum = parseInt(counter, ENCODING_NUMBER_RADIX);
184
- if (isNaN(time) || isNaN(counterNum)) {
185
- throw new Error('invalid clock format');
186
- }
187
- return {
188
- time,
189
- counter: counterNum,
190
- node,
191
- };
192
- }
193
- exports.deserializeHlcTimestamp = deserializeHlcTimestamp;
194
- function removeLeadingZeroes(str) {
195
- return str.replace(/^0+/, '');
196
- }
197
- /**
198
- * Below, converters for old-style timestamps are defined.
199
- * These are for migrating older clients to the new format.
200
- */
201
- /**
202
- * Converts a timestamp from the old format to the new format.
203
- */
204
- function convertOldHlcTimestamp(ts) {
205
- const versionBlock = ts.slice(0, 6);
206
- // no jokes please
207
- const clockBlock = ts.slice(6);
208
- const deserialized = OLD_deserializeHlcTimestamp(clockBlock);
209
- // version was base 10 and now is base 36
210
- const versionNumber = parseInt(versionBlock, 10);
211
- const encodedVersion = encodeVersion(versionNumber);
212
- return encodedVersion + serializeHlcTimestamp(deserialized);
213
- }
214
- exports.convertOldHlcTimestamp = convertOldHlcTimestamp;
215
- function OLD_serializeHlcTimestamp(ts) {
216
- // ISO string representation of the time
217
- const dateString = new Date(ts.time).toISOString();
218
- // counter, base16, padded to 4 characters
219
- const counter = ts.counter.toString(16).toUpperCase().padStart(4, '0');
220
- // node id padded to 16 characters
221
- const node = ts.node.padStart(16, '0');
222
- return `${dateString}-${counter}-${node}`;
223
- }
224
- exports.OLD_serializeHlcTimestamp = OLD_serializeHlcTimestamp;
225
- function OLD_deserializeHlcTimestamp(clock) {
226
- // ISO string representation of the time
227
- const dateString = clock.slice(0, 24);
228
- const counter = clock.slice(25, 25 + 4);
229
- const node = clock.slice(25 + 4 + 1);
230
- const time = new Date(dateString).getTime();
231
- const counterNum = parseInt(counter, 16);
232
- if (isNaN(time) || isNaN(counterNum)) {
233
- throw new Error('invalid clock format');
234
- }
235
- return {
236
- time,
237
- counter: counterNum,
238
- node: node.slice(node.length - 7),
239
- };
240
- }
241
- exports.OLD_deserializeHlcTimestamp = OLD_deserializeHlcTimestamp;
242
- function getTimestampSchemaVersion(timestamp) {
243
- return parseInt(timestamp.slice(0, VERSION_BLOCK_LENGTH), 36);
244
- }
245
- exports.getTimestampSchemaVersion = getTimestampSchemaVersion;
246
- function compareTimestampSchemaVersions(a, b) {
247
- return getTimestampSchemaVersion(a) - getTimestampSchemaVersion(b);
248
- }
249
- exports.compareTimestampSchemaVersions = compareTimestampSchemaVersions;
250
- function getWallClockTime(timestamp) {
251
- return deserializeHlcTimestamp(timestamp.slice(VERSION_BLOCK_LENGTH)).time;
252
- }
253
- exports.getWallClockTime = getWallClockTime;
254
- //# sourceMappingURL=timestamp.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"timestamp.js","sourceRoot":"","sources":["../../src/timestamp.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- export {};