@verdant-web/common 2.7.3 → 2.9.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/authz.js.map +1 -1
- package/dist/esm/baseline.d.ts +2 -1
- package/dist/esm/diffing.d.ts +40 -0
- package/dist/esm/diffing.js +317 -0
- package/dist/esm/diffing.js.map +1 -0
- package/dist/esm/diffing.test.d.ts +1 -0
- package/dist/esm/diffing.test.js +1680 -0
- package/dist/esm/diffing.test.js.map +1 -0
- package/dist/esm/index.d.ts +20 -19
- package/dist/esm/index.js +17 -16
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/oids.d.ts +5 -0
- package/dist/esm/oids.js +23 -1
- package/dist/esm/oids.js.map +1 -1
- package/dist/esm/operation.d.ts +11 -24
- package/dist/esm/operation.js +32 -270
- package/dist/esm/operation.js.map +1 -1
- package/dist/esm/operation.test.js +122 -592
- package/dist/esm/operation.test.js.map +1 -1
- package/dist/esm/patch.d.ts +19 -15
- package/dist/esm/patch.js +79 -18
- package/dist/esm/patch.js.map +1 -1
- package/dist/esm/schema/validation.d.ts +8 -1
- package/dist/esm/schema/validation.js +133 -63
- package/dist/esm/schema/validation.js.map +1 -1
- package/dist/esm/schema/validation.test.d.ts +1 -0
- package/dist/esm/schema/validation.test.js +60 -0
- package/dist/esm/schema/validation.test.js.map +1 -0
- package/dist/esm/timestamp.d.ts +1 -0
- package/dist/esm/timestamp.js +3 -0
- package/dist/esm/timestamp.js.map +1 -1
- package/dist/esm/undo.d.ts +2 -1
- package/dist/esm/undo.js +53 -146
- package/dist/esm/undo.js.map +1 -1
- package/dist/esm/undo.test.d.ts +1 -0
- package/dist/esm/undo.test.js +81 -0
- package/dist/esm/undo.test.js.map +1 -0
- package/package.json +1 -1
- package/src/authz.ts +2 -0
- package/src/baseline.ts +3 -1
- package/src/diffing.test.ts +1803 -0
- package/src/diffing.ts +402 -0
- package/src/index.ts +21 -20
- package/src/oids.ts +23 -1
- package/src/operation.test.ts +148 -623
- package/src/operation.ts +45 -378
- package/src/patch.ts +146 -14
- package/src/schema/validation.test.ts +66 -0
- package/src/schema/validation.ts +156 -73
- package/src/timestamp.ts +4 -1
- package/src/undo.test.ts +100 -0
- package/src/undo.ts +83 -144
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import { isFile, isFileData } from '../files.js';
|
|
1
|
+
import { isFile, isFileData, isFileRef } from '../files.js';
|
|
2
2
|
import { OID_KEY } from '../oidsLegacy.js';
|
|
3
|
+
import { isObjectRef } from '../operation.js';
|
|
3
4
|
import { isObject } from '../utils.js';
|
|
4
5
|
import { hasDefault, isNullable } from './fields.js';
|
|
5
6
|
export function validateEntity(schema, entity) {
|
|
@@ -26,12 +27,15 @@ export function validateEntity(schema, entity) {
|
|
|
26
27
|
}
|
|
27
28
|
return;
|
|
28
29
|
}
|
|
29
|
-
export function validateEntityField({ field, value, fieldPath = [], depth, requireDefaults, }) {
|
|
30
|
+
export function validateEntityField({ field, value, fieldPath = [], depth, requireDefaults, expectRefs, hasPassedFirstLevel, }) {
|
|
31
|
+
// we only _actually_ start expecting refs after the first validation level.
|
|
32
|
+
// TODO: something more... elegant?
|
|
33
|
+
const actuallyExpectRefs = expectRefs && hasPassedFirstLevel;
|
|
30
34
|
if (depth !== undefined && depth <= 0)
|
|
31
35
|
return;
|
|
32
|
-
if (isNullable(field) && value === null)
|
|
36
|
+
if (isNullable(field) && (value === null || value === undefined))
|
|
33
37
|
return;
|
|
34
|
-
if (value === null) {
|
|
38
|
+
if (value === null || value === undefined) {
|
|
35
39
|
if (requireDefaults || !hasDefault(field)) {
|
|
36
40
|
return {
|
|
37
41
|
type: 'no-default',
|
|
@@ -41,71 +45,117 @@ export function validateEntityField({ field, value, fieldPath = [], depth, requi
|
|
|
41
45
|
}
|
|
42
46
|
}
|
|
43
47
|
if (field.type === 'object') {
|
|
44
|
-
if (
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
48
|
+
if (actuallyExpectRefs) {
|
|
49
|
+
if (!isObjectRef(value)) {
|
|
50
|
+
return {
|
|
51
|
+
type: 'invalid-type',
|
|
52
|
+
fieldPath,
|
|
53
|
+
message: `Expected ref for field ${formatField(fieldPath)}, got ${safeStringify(value)}`,
|
|
54
|
+
};
|
|
55
|
+
}
|
|
50
56
|
}
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
+
else {
|
|
58
|
+
if (!isObject(value)) {
|
|
59
|
+
return {
|
|
60
|
+
type: 'invalid-type',
|
|
61
|
+
fieldPath,
|
|
62
|
+
message: `Expected object ${field.nullable ? 'or null ' : ''}for field ${formatField(fieldPath)}, got ${safeStringify(value)}`,
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
for (const [key, subField] of Object.entries(field.properties)) {
|
|
66
|
+
// legacy -- old objects sometimes accidentally include this key
|
|
67
|
+
if (key === OID_KEY)
|
|
68
|
+
continue;
|
|
69
|
+
const error = validateEntityField({
|
|
57
70
|
field: subField,
|
|
58
71
|
value: value[key],
|
|
59
72
|
fieldPath: [...fieldPath, key],
|
|
60
73
|
depth: depth !== undefined ? depth - 1 : undefined,
|
|
74
|
+
expectRefs,
|
|
75
|
+
hasPassedFirstLevel: true,
|
|
61
76
|
});
|
|
77
|
+
if (error) {
|
|
78
|
+
return error;
|
|
79
|
+
}
|
|
62
80
|
}
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
}
|
|
81
|
+
// check for unexpected keys
|
|
82
|
+
for (const key of Object.keys(value)) {
|
|
83
|
+
if (!field.properties[key]) {
|
|
84
|
+
return {
|
|
85
|
+
type: 'invalid-key',
|
|
86
|
+
fieldPath: [...fieldPath, key],
|
|
87
|
+
message: `Invalid unexpected field "${key}" on value ${formatField(fieldPath)}`,
|
|
88
|
+
};
|
|
89
|
+
}
|
|
72
90
|
}
|
|
73
91
|
}
|
|
74
92
|
}
|
|
75
93
|
else if (field.type === 'array') {
|
|
76
|
-
if (
|
|
77
|
-
if (value
|
|
78
|
-
return
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
}
|
|
94
|
+
if (actuallyExpectRefs) {
|
|
95
|
+
if (!isObjectRef(value)) {
|
|
96
|
+
return {
|
|
97
|
+
type: 'invalid-type',
|
|
98
|
+
fieldPath,
|
|
99
|
+
message: `Expected ref for field ${formatField(fieldPath)}, got ${safeStringify(value)}`,
|
|
100
|
+
};
|
|
101
|
+
}
|
|
84
102
|
}
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
103
|
+
else {
|
|
104
|
+
if (!Array.isArray(value)) {
|
|
105
|
+
if (value === null && field.nullable)
|
|
106
|
+
return;
|
|
107
|
+
return {
|
|
108
|
+
type: 'invalid-value',
|
|
109
|
+
fieldPath,
|
|
110
|
+
message: `Expected array ${field.nullable ? 'or null ' : ''}for field ${formatField(fieldPath)}, got ${safeStringify(value)}`,
|
|
111
|
+
};
|
|
112
|
+
}
|
|
113
|
+
for (const item of value) {
|
|
114
|
+
const error = validateEntityField({
|
|
115
|
+
field: field.items,
|
|
116
|
+
value: item,
|
|
117
|
+
fieldPath: [...fieldPath, '[]'],
|
|
118
|
+
depth: depth !== undefined ? depth - 1 : undefined,
|
|
119
|
+
expectRefs,
|
|
120
|
+
hasPassedFirstLevel: true,
|
|
121
|
+
});
|
|
122
|
+
if (error) {
|
|
123
|
+
return error;
|
|
124
|
+
}
|
|
125
|
+
}
|
|
92
126
|
}
|
|
93
127
|
}
|
|
94
128
|
else if (field.type === 'map') {
|
|
95
|
-
if (
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
129
|
+
if (actuallyExpectRefs) {
|
|
130
|
+
if (!isObjectRef(value)) {
|
|
131
|
+
return {
|
|
132
|
+
type: 'invalid-type',
|
|
133
|
+
fieldPath,
|
|
134
|
+
message: `Expected ref for field ${formatField(fieldPath)}, got ${safeStringify(value)}`,
|
|
135
|
+
};
|
|
136
|
+
}
|
|
101
137
|
}
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
138
|
+
else {
|
|
139
|
+
if (!isObject(value)) {
|
|
140
|
+
return {
|
|
141
|
+
type: 'invalid-type',
|
|
142
|
+
fieldPath,
|
|
143
|
+
message: `Expected map for field ${formatField(fieldPath)}, got ${safeStringify(value)}`,
|
|
144
|
+
};
|
|
145
|
+
}
|
|
146
|
+
for (const [key, item] of Object.entries(value)) {
|
|
147
|
+
const error = validateEntityField({
|
|
148
|
+
field: field.values,
|
|
149
|
+
value: item,
|
|
150
|
+
fieldPath: [...fieldPath, key],
|
|
151
|
+
depth: depth !== undefined ? depth - 1 : undefined,
|
|
152
|
+
expectRefs,
|
|
153
|
+
hasPassedFirstLevel: true,
|
|
154
|
+
});
|
|
155
|
+
if (error) {
|
|
156
|
+
return error;
|
|
157
|
+
}
|
|
158
|
+
}
|
|
109
159
|
}
|
|
110
160
|
}
|
|
111
161
|
else if (field.type === 'string') {
|
|
@@ -113,14 +163,14 @@ export function validateEntityField({ field, value, fieldPath = [], depth, requi
|
|
|
113
163
|
return {
|
|
114
164
|
type: 'invalid-type',
|
|
115
165
|
fieldPath,
|
|
116
|
-
message: `Expected string ${field.nullable ? 'or null ' : ''}for field ${formatField(fieldPath)}, got ${value}`,
|
|
166
|
+
message: `Expected string ${field.nullable ? 'or null ' : ''}for field ${formatField(fieldPath)}, got ${safeStringify(value)}`,
|
|
117
167
|
};
|
|
118
168
|
}
|
|
119
169
|
if (field.options && !field.options.includes(value)) {
|
|
120
170
|
return {
|
|
121
171
|
type: 'invalid-value',
|
|
122
172
|
fieldPath,
|
|
123
|
-
message: `Expected one of ${field.options.join(', ')} for field ${formatField(fieldPath)}, got ${value}`,
|
|
173
|
+
message: `Expected one of ${field.options.join(', ')} for field ${formatField(fieldPath)}, got ${safeStringify(value)}`,
|
|
124
174
|
};
|
|
125
175
|
}
|
|
126
176
|
}
|
|
@@ -129,7 +179,7 @@ export function validateEntityField({ field, value, fieldPath = [], depth, requi
|
|
|
129
179
|
return {
|
|
130
180
|
type: 'invalid-type',
|
|
131
181
|
fieldPath,
|
|
132
|
-
message: `Expected boolean ${field.nullable ? 'or null ' : ''}for field ${formatField(fieldPath)}, got ${value}`,
|
|
182
|
+
message: `Expected boolean ${field.nullable ? 'or null ' : ''}for field ${formatField(fieldPath)}, got ${safeStringify(value)}`,
|
|
133
183
|
};
|
|
134
184
|
}
|
|
135
185
|
}
|
|
@@ -138,20 +188,40 @@ export function validateEntityField({ field, value, fieldPath = [], depth, requi
|
|
|
138
188
|
return {
|
|
139
189
|
type: 'invalid-type',
|
|
140
190
|
fieldPath,
|
|
141
|
-
message: `Expected number ${field.nullable ? 'or null ' : ''}for field ${formatField(fieldPath)}, got ${value}`,
|
|
191
|
+
message: `Expected number ${field.nullable ? 'or null ' : ''}for field ${formatField(fieldPath)}, got ${safeStringify(value)}`,
|
|
142
192
|
};
|
|
143
193
|
}
|
|
144
194
|
}
|
|
145
195
|
else if (field.type === 'file') {
|
|
146
|
-
if (
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
196
|
+
if (actuallyExpectRefs) {
|
|
197
|
+
if (!isFileRef(value)) {
|
|
198
|
+
return {
|
|
199
|
+
type: 'invalid-type',
|
|
200
|
+
fieldPath,
|
|
201
|
+
message: `Expected file ref for field ${formatField(fieldPath)}, got ${safeStringify(value)}`,
|
|
202
|
+
};
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
else {
|
|
206
|
+
if (!isFile(value) && !isFileData(value)) {
|
|
207
|
+
return {
|
|
208
|
+
type: 'invalid-type',
|
|
209
|
+
fieldPath,
|
|
210
|
+
message: `Expected file ${field.nullable ? 'or null ' : ''}for field ${formatField(fieldPath)}, got ${safeStringify(value)}`,
|
|
211
|
+
};
|
|
212
|
+
}
|
|
152
213
|
}
|
|
153
214
|
}
|
|
154
215
|
}
|
|
216
|
+
function safeStringify(value) {
|
|
217
|
+
try {
|
|
218
|
+
return JSON.stringify(value);
|
|
219
|
+
}
|
|
220
|
+
catch (err) {
|
|
221
|
+
// for example, recursive objects can't be stringified
|
|
222
|
+
return String(value);
|
|
223
|
+
}
|
|
224
|
+
}
|
|
155
225
|
function formatField(fieldPath) {
|
|
156
226
|
if (fieldPath.length === 0)
|
|
157
227
|
return 'root';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validation.js","sourceRoot":"","sources":["../../../src/schema/validation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"validation.js","sourceRoot":"","sources":["../../../src/schema/validation.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import { describe, expect, it } from 'vitest';
|
|
2
|
+
import { createFileRef } from '../files.js';
|
|
3
|
+
import { createRef } from '../oids.js';
|
|
4
|
+
import { schema, validateEntityField } from './index.js';
|
|
5
|
+
describe('validation', () => {
|
|
6
|
+
it('validates shallowly with refs', () => {
|
|
7
|
+
const fieldSchema = schema.fields.object({
|
|
8
|
+
fields: {
|
|
9
|
+
obj: schema.fields.object({
|
|
10
|
+
fields: {},
|
|
11
|
+
}),
|
|
12
|
+
file: schema.fields.file(),
|
|
13
|
+
},
|
|
14
|
+
});
|
|
15
|
+
expect(validateEntityField({
|
|
16
|
+
field: fieldSchema,
|
|
17
|
+
value: {
|
|
18
|
+
obj: createRef('some/id:1'),
|
|
19
|
+
file: createFileRef('somefile'),
|
|
20
|
+
},
|
|
21
|
+
fieldPath: [],
|
|
22
|
+
expectRefs: true,
|
|
23
|
+
})).toBeUndefined();
|
|
24
|
+
expect(validateEntityField({
|
|
25
|
+
field: fieldSchema,
|
|
26
|
+
value: {
|
|
27
|
+
obj: createRef('some/id:1'),
|
|
28
|
+
file: createRef('some/object:1'),
|
|
29
|
+
},
|
|
30
|
+
fieldPath: [],
|
|
31
|
+
expectRefs: true,
|
|
32
|
+
})).toMatchInlineSnapshot(`
|
|
33
|
+
{
|
|
34
|
+
"fieldPath": [
|
|
35
|
+
"file",
|
|
36
|
+
],
|
|
37
|
+
"message": "Expected file ref for field file, got {"@@type":"ref","id":"some/object:1"}",
|
|
38
|
+
"type": "invalid-type",
|
|
39
|
+
}
|
|
40
|
+
`);
|
|
41
|
+
expect(validateEntityField({
|
|
42
|
+
field: fieldSchema,
|
|
43
|
+
value: {
|
|
44
|
+
obj: 'foo',
|
|
45
|
+
file: createFileRef('somefile'),
|
|
46
|
+
},
|
|
47
|
+
fieldPath: [],
|
|
48
|
+
expectRefs: true,
|
|
49
|
+
})).toMatchInlineSnapshot(`
|
|
50
|
+
{
|
|
51
|
+
"fieldPath": [
|
|
52
|
+
"obj",
|
|
53
|
+
],
|
|
54
|
+
"message": "Expected ref for field obj, got "foo"",
|
|
55
|
+
"type": "invalid-type",
|
|
56
|
+
}
|
|
57
|
+
`);
|
|
58
|
+
});
|
|
59
|
+
});
|
|
60
|
+
//# sourceMappingURL=validation.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validation.test.js","sourceRoot":"","sources":["../../../src/schema/validation.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,EAAE,MAAM,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAEzD,QAAQ,CAAC,YAAY,EAAE,GAAG,EAAE;IAC3B,EAAE,CAAC,+BAA+B,EAAE,GAAG,EAAE;QACxC,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC;YACxC,MAAM,EAAE;gBACP,GAAG,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC;oBACzB,MAAM,EAAE,EAAE;iBACV,CAAC;gBACF,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE;aAC1B;SACD,CAAC,CAAC;QACH,MAAM,CACL,mBAAmB,CAAC;YACnB,KAAK,EAAE,WAAW;YAClB,KAAK,EAAE;gBACN,GAAG,EAAE,SAAS,CAAC,WAAW,CAAC;gBAC3B,IAAI,EAAE,aAAa,CAAC,UAAU,CAAC;aAC/B;YACD,SAAS,EAAE,EAAE;YACb,UAAU,EAAE,IAAI;SAChB,CAAC,CACF,CAAC,aAAa,EAAE,CAAC;QAClB,MAAM,CACL,mBAAmB,CAAC;YACnB,KAAK,EAAE,WAAW;YAClB,KAAK,EAAE;gBACN,GAAG,EAAE,SAAS,CAAC,WAAW,CAAC;gBAC3B,IAAI,EAAE,SAAS,CAAC,eAAe,CAAC;aAChC;YACD,SAAS,EAAE,EAAE;YACb,UAAU,EAAE,IAAI;SAChB,CAAC,CACF,CAAC,qBAAqB,CAAC;;;;;;;;GAQvB,CAAC,CAAC;QACH,MAAM,CACL,mBAAmB,CAAC;YACnB,KAAK,EAAE,WAAW;YAClB,KAAK,EAAE;gBACN,GAAG,EAAE,KAAK;gBACV,IAAI,EAAE,aAAa,CAAC,UAAU,CAAC;aAC/B;YACD,SAAS,EAAE,EAAE;YACb,UAAU,EAAE,IAAI;SAChB,CAAC,CACF,CAAC,qBAAqB,CAAC;;;;;;;;GAQvB,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC,CAAC"}
|
package/dist/esm/timestamp.d.ts
CHANGED
|
@@ -12,6 +12,7 @@ export declare class NaiveTimestampProvider implements TimestampProvider {
|
|
|
12
12
|
update: () => void;
|
|
13
13
|
zero: (version: number | string) => string;
|
|
14
14
|
getWallClockTime: (timestamp: string) => number;
|
|
15
|
+
reset(): void;
|
|
15
16
|
}
|
|
16
17
|
export declare class HybridLogicalClockTimestampProvider implements TimestampProvider {
|
|
17
18
|
private latest;
|
package/dist/esm/timestamp.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"timestamp.js","sourceRoot":"","sources":["../../src/timestamp.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"timestamp.js","sourceRoot":"","sources":["../../src/timestamp.ts"],"names":[],"mappings":"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"}
|
package/dist/esm/undo.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { AuthorizationKey } from './authz.js';
|
|
1
2
|
import { ObjectIdentifier } from './oids.js';
|
|
2
3
|
import { Operation } from './operation.js';
|
|
3
|
-
export declare function getUndoOperations(oid: ObjectIdentifier, initial: any, operations: Operation[], getNow: () => string): Operation[];
|
|
4
|
+
export declare function getUndoOperations(oid: ObjectIdentifier, initial: any, operations: Operation[], getNow: () => string, getSubId?: () => string, authz?: AuthorizationKey): Operation[];
|