@haverstack/core 0.28.0 → 0.29.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/README.md +9 -2
- package/dist/access.d.ts +20 -0
- package/dist/access.d.ts.map +1 -1
- package/dist/access.js +26 -0
- package/dist/access.js.map +1 -1
- package/dist/changes.d.ts +1 -2
- package/dist/changes.d.ts.map +1 -1
- package/dist/changes.js +27 -6
- package/dist/changes.js.map +1 -1
- package/dist/combine.d.ts.map +1 -1
- package/dist/combine.js +1 -4
- package/dist/combine.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/merge.d.ts +1 -1
- package/dist/merge.js +2 -2
- package/dist/merge.js.map +1 -1
- package/dist/schema.d.ts.map +1 -1
- package/dist/schema.js +56 -5
- package/dist/schema.js.map +1 -1
- package/dist/stack.d.ts +104 -90
- package/dist/stack.d.ts.map +1 -1
- package/dist/stack.js +361 -260
- package/dist/stack.js.map +1 -1
- package/dist/testing.d.ts +3 -14
- package/dist/testing.d.ts.map +1 -1
- package/dist/testing.js +27 -41
- package/dist/testing.js.map +1 -1
- package/dist/types.d.ts +98 -28
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +8 -0
- package/dist/types.js.map +1 -1
- package/dist/validate.d.ts +31 -0
- package/dist/validate.d.ts.map +1 -1
- package/dist/validate.js +150 -3
- package/dist/validate.js.map +1 -1
- package/dist/wire-entry.d.ts +1 -1
- package/dist/wire-entry.d.ts.map +1 -1
- package/dist/wire-entry.js +1 -1
- package/dist/wire-entry.js.map +1 -1
- package/dist/wire-record.d.ts +16 -1
- package/dist/wire-record.d.ts.map +1 -1
- package/dist/wire-record.js +56 -0
- package/dist/wire-record.js.map +1 -1
- package/package.json +1 -1
package/dist/validate.js
CHANGED
|
@@ -48,7 +48,12 @@ const validateField = (value, def, path, errors, depth = 0) => {
|
|
|
48
48
|
errors.push({ path, message: `Expected array, got ${typeof value}` });
|
|
49
49
|
return;
|
|
50
50
|
}
|
|
51
|
-
|
|
51
|
+
// An open array is the list-shaped counterpart of an open object: the
|
|
52
|
+
// schema places a list here and says nothing about what it holds.
|
|
53
|
+
if (def.open)
|
|
54
|
+
return;
|
|
55
|
+
const items = def.items;
|
|
56
|
+
value.forEach((item, i) => validateField(item, items, `${path}[${i}]`, errors, depth + 1));
|
|
52
57
|
return;
|
|
53
58
|
}
|
|
54
59
|
if (def.kind === 'object') {
|
|
@@ -56,6 +61,10 @@ const validateField = (value, def, path, errors, depth = 0) => {
|
|
|
56
61
|
errors.push({ path, message: `Expected object, got ${typeof value}` });
|
|
57
62
|
return;
|
|
58
63
|
}
|
|
64
|
+
// An open object says "an object lives here" and nothing about its
|
|
65
|
+
// interior, so there is no set of declared keys to hold it to.
|
|
66
|
+
if (def.open)
|
|
67
|
+
return;
|
|
59
68
|
validateContent(value, def.properties, path, errors, depth + 1);
|
|
60
69
|
return;
|
|
61
70
|
}
|
|
@@ -106,6 +115,20 @@ export const validateContent = (content, schema, prefix = '', errors = [], depth
|
|
|
106
115
|
});
|
|
107
116
|
return errors;
|
|
108
117
|
}
|
|
118
|
+
// A field the schema does not declare is refused rather than stored.
|
|
119
|
+
// The schema is the record's shape; a key outside it is a typo, a stale
|
|
120
|
+
// writer, or a caller reaching for something that isn't content at all,
|
|
121
|
+
// and storing it makes all three look like a write that worked. Declare
|
|
122
|
+
// an `object` field `open` for a shape a schema cannot describe.
|
|
123
|
+
// See docs/spec/data-model.md § Undeclared content fields.
|
|
124
|
+
for (const key of Object.keys(content)) {
|
|
125
|
+
if (Object.hasOwn(schema, key))
|
|
126
|
+
continue;
|
|
127
|
+
errors.push({
|
|
128
|
+
path: prefix ? `${prefix}.${key}` : key,
|
|
129
|
+
message: `"${key}" is not declared by this type`,
|
|
130
|
+
});
|
|
131
|
+
}
|
|
109
132
|
// Check all schema fields
|
|
110
133
|
for (const [key, def] of Object.entries(schema)) {
|
|
111
134
|
const path = prefix ? `${prefix}.${key}` : key;
|
|
@@ -148,6 +171,130 @@ export const validateReservedKeys = (content) => RESERVED_CONTENT_KEYS.filter((k
|
|
|
148
171
|
path: key,
|
|
149
172
|
message: `"${key}" is a reserved content key and cannot be used as a field name`,
|
|
150
173
|
}));
|
|
174
|
+
/**
|
|
175
|
+
* Every scalar kind, as a total Record so adding one to ScalarFieldKind
|
|
176
|
+
* fails to compile until it is listed here.
|
|
177
|
+
*/
|
|
178
|
+
const SCALAR_KINDS = {
|
|
179
|
+
string: true,
|
|
180
|
+
number: true,
|
|
181
|
+
boolean: true,
|
|
182
|
+
date: true,
|
|
183
|
+
text: true,
|
|
184
|
+
'record-ref': true,
|
|
185
|
+
'file-ref': true,
|
|
186
|
+
};
|
|
187
|
+
const isPlainObject = (value) => typeof value === 'object' && value !== null && !Array.isArray(value);
|
|
188
|
+
const validateFieldDefShape = (def, path, errors, depth) => {
|
|
189
|
+
if (!isPlainObject(def)) {
|
|
190
|
+
errors.push({ path, message: `A field definition must be an object, got ${typeof def}` });
|
|
191
|
+
return;
|
|
192
|
+
}
|
|
193
|
+
if (def.required !== undefined && typeof def.required !== 'boolean') {
|
|
194
|
+
errors.push({ path, message: '"required" must be a boolean' });
|
|
195
|
+
}
|
|
196
|
+
if (def.open !== undefined && typeof def.open !== 'boolean') {
|
|
197
|
+
errors.push({ path, message: '"open" must be a boolean' });
|
|
198
|
+
}
|
|
199
|
+
const isOpen = def.open === true;
|
|
200
|
+
if (typeof def.kind !== 'string') {
|
|
201
|
+
errors.push({ path, message: 'A field definition must name a "kind"' });
|
|
202
|
+
return;
|
|
203
|
+
}
|
|
204
|
+
if (def.kind === 'array') {
|
|
205
|
+
if (isOpen) {
|
|
206
|
+
if (def.items !== undefined) {
|
|
207
|
+
errors.push({ path, message: 'An open array cannot also declare "items"' });
|
|
208
|
+
}
|
|
209
|
+
return;
|
|
210
|
+
}
|
|
211
|
+
if (def.items === undefined) {
|
|
212
|
+
errors.push({
|
|
213
|
+
path,
|
|
214
|
+
message: 'An array must declare "items", or "open": true to leave its elements unvalidated',
|
|
215
|
+
});
|
|
216
|
+
return;
|
|
217
|
+
}
|
|
218
|
+
validateFieldDefShape(def.items, `${path}[]`, errors, depth + 1);
|
|
219
|
+
return;
|
|
220
|
+
}
|
|
221
|
+
if (def.kind === 'object') {
|
|
222
|
+
if (isOpen) {
|
|
223
|
+
if (def.properties !== undefined) {
|
|
224
|
+
errors.push({ path, message: 'An open object cannot also declare "properties"' });
|
|
225
|
+
}
|
|
226
|
+
return;
|
|
227
|
+
}
|
|
228
|
+
if (def.properties === undefined) {
|
|
229
|
+
errors.push({
|
|
230
|
+
path,
|
|
231
|
+
message: 'An object must declare "properties", or "open": true to leave its keys unvalidated',
|
|
232
|
+
});
|
|
233
|
+
return;
|
|
234
|
+
}
|
|
235
|
+
validateSchemaShape(def.properties, path, errors, depth + 1);
|
|
236
|
+
return;
|
|
237
|
+
}
|
|
238
|
+
if (!Object.hasOwn(SCALAR_KINDS, def.kind)) {
|
|
239
|
+
errors.push({
|
|
240
|
+
path,
|
|
241
|
+
message: `"${def.kind}" is not a field kind`,
|
|
242
|
+
});
|
|
243
|
+
}
|
|
244
|
+
};
|
|
245
|
+
/**
|
|
246
|
+
* Check that a schema is actually a schema, before anything reads it as
|
|
247
|
+
* one. `defineType()` takes a TypeSchema, but a schema off the wire is
|
|
248
|
+
* parsed JSON that TypeScript never saw, so every shape below is reachable
|
|
249
|
+
* at runtime: a container declaring neither its interior nor `open` throws
|
|
250
|
+
* out of hashSchema() rather than reporting anything, and a definition with
|
|
251
|
+
* an unknown `kind` — or none — defines a field whose every write fails
|
|
252
|
+
* against an expectation the schema never actually stated, sending the
|
|
253
|
+
* caller looking through their content for a bug that is in their type.
|
|
254
|
+
*
|
|
255
|
+
* Refused at definition time for the reason a field name no filter could
|
|
256
|
+
* address is: a schema is a promise, and one nothing can satisfy is worth
|
|
257
|
+
* catching where it is written. See docs/spec/data-model.md § Types.
|
|
258
|
+
*/
|
|
259
|
+
export const validateSchemaShape = (schema, prefix = '', errors = [], depth = 0) => {
|
|
260
|
+
if (depth > MAX_VALIDATION_DEPTH) {
|
|
261
|
+
errors.push({
|
|
262
|
+
path: prefix || '(root)',
|
|
263
|
+
message: `Schema nesting exceeds maximum depth of ${MAX_VALIDATION_DEPTH}`,
|
|
264
|
+
});
|
|
265
|
+
return errors;
|
|
266
|
+
}
|
|
267
|
+
if (!isPlainObject(schema)) {
|
|
268
|
+
errors.push({
|
|
269
|
+
path: prefix || '(root)',
|
|
270
|
+
message: `A schema must be an object mapping field names to definitions, got ${typeof schema}`,
|
|
271
|
+
});
|
|
272
|
+
return errors;
|
|
273
|
+
}
|
|
274
|
+
for (const [key, def] of Object.entries(schema)) {
|
|
275
|
+
validateFieldDefShape(def, prefix ? `${prefix}.${key}` : key, errors, depth);
|
|
276
|
+
}
|
|
277
|
+
return errors;
|
|
278
|
+
};
|
|
279
|
+
/**
|
|
280
|
+
* The same three names, refused where a schema declares them. Top-level
|
|
281
|
+
* only, exactly matching the content rule's scope above: a nested
|
|
282
|
+
* declaration names a field a record can actually carry, so refusing one
|
|
283
|
+
* would deny a writable shape.
|
|
284
|
+
*
|
|
285
|
+
* A declaration cannot license what the content rule refuses, so accepting
|
|
286
|
+
* one would define a field no record could ever hold — and, where the
|
|
287
|
+
* declaration is `required`, a type no record could satisfy at all: supply
|
|
288
|
+
* the field and the write is refused as a reserved key, omit it and the
|
|
289
|
+
* write is refused as a missing required field. Refused at definition time
|
|
290
|
+
* for the reason a field name no filter could address is
|
|
291
|
+
* (validateSchemaFieldNames): a schema is a promise that a field is
|
|
292
|
+
* meaningful. See docs/spec/data-model.md § Reserved content keys.
|
|
293
|
+
*/
|
|
294
|
+
export const validateSchemaReservedNames = (schema) => RESERVED_CONTENT_KEYS.filter((key) => Object.hasOwn(schema, key)).map((key) => ({
|
|
295
|
+
path: key,
|
|
296
|
+
message: `"${key}" is a reserved content key and cannot be declared as a field name`,
|
|
297
|
+
}));
|
|
151
298
|
/**
|
|
152
299
|
* `undefined` is not a value a merge patch can carry: `null` is the
|
|
153
300
|
* deletion sentinel, JSON drops the key on the way to storage, and the
|
|
@@ -243,9 +390,9 @@ export const validateSchemaFieldNames = (schema, prefix = '', errors = [], depth
|
|
|
243
390
|
});
|
|
244
391
|
}
|
|
245
392
|
let inner = def;
|
|
246
|
-
while (inner.kind === 'array')
|
|
393
|
+
while (inner.kind === 'array' && !inner.open)
|
|
247
394
|
inner = inner.items;
|
|
248
|
-
if (inner.kind === 'object')
|
|
395
|
+
if (inner.kind === 'object' && !inner.open)
|
|
249
396
|
validateSchemaFieldNames(inner.properties, path, errors, depth + 1);
|
|
250
397
|
}
|
|
251
398
|
return errors;
|
package/dist/validate.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validate.js","sourceRoot":"","sources":["../src/validate.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAIH,MAAM,oBAAoB,GAAG,EAAE,CAAC;AAEhC,0FAA0F;AAC1F,MAAM,UAAU,GAAG,gBAAgB,CAAC;AAEpC;;;;;GAKG;AACH,MAAM,WAAW,GAAG,sEAAsE,CAAC;AAW3F,0DAA0D;AAC1D,mBAAmB;AACnB,0DAA0D;AAE1D,MAAM,eAAe,GAAG,CAAC,IAAqB,EAAU,EAAE;IACxD,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,QAAQ,CAAC;QACd,KAAK,MAAM,CAAC;QACZ,KAAK,YAAY,CAAC;QAClB,KAAK,UAAU;YACb,OAAO,QAAQ,CAAC;QAClB,KAAK,QAAQ;YACX,OAAO,QAAQ,CAAC;QAClB,KAAK,SAAS;YACZ,OAAO,SAAS,CAAC;QACnB,KAAK,MAAM;YACT,OAAO,QAAQ,CAAC,CAAC,4CAA4C;IACjE,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,aAAa,GAAG,CACpB,KAAc,EACd,GAAa,EACb,IAAY,EACZ,MAAyB,EACzB,KAAK,GAAG,CAAC,EACH,EAAE;IACR,IAAI,KAAK,GAAG,oBAAoB,EAAE,CAAC;QACjC,MAAM,CAAC,IAAI,CAAC;YACV,IAAI;YACJ,OAAO,EAAE,2CAA2C,oBAAoB,EAAE;SAC3E,CAAC,CAAC;QACH,OAAO;IACT,CAAC;IAED,IAAI,GAAG,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QACzB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YAC1B,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,uBAAuB,OAAO,KAAK,EAAE,EAAE,CAAC,CAAC;YACtE,OAAO;QACT,CAAC;QACD,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC,IAAI,EAAE,GAAG,CAAC,KAAK,EAAE,GAAG,IAAI,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC;QAC/F,OAAO;IACT,CAAC;IAED,IAAI,GAAG,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC1B,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YACxE,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,wBAAwB,OAAO,KAAK,EAAE,EAAE,CAAC,CAAC;YACvE,OAAO;QACT,CAAC;QACD,eAAe,CAAC,KAAgC,EAAE,GAAG,CAAC,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;QAC3F,OAAO;IACT,CAAC;IAED,oBAAoB;IACpB,IAAI,GAAG,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;QACxB,IACE,OAAO,KAAK,KAAK,QAAQ;YACzB,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC;YACxB,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,KAAe,CAAC,CAAC,EAClC,CAAC;YACD,MAAM,CAAC,IAAI,CAAC;gBACV,IAAI;gBACJ,OAAO,EAAE,sCAAsC,OAAO,KAAK,EAAE;aAC9D,CAAC,CAAC;QACL,CAAC;QACD,OAAO;IACT,CAAC;IAED,IAAI,GAAG,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;QAC5B,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YACzD,MAAM,CAAC,IAAI,CAAC;gBACV,IAAI;gBACJ,OAAO,EAAE,wDAAwD;aAClE,CAAC,CAAC;QACL,CAAC;QACD,OAAO;IACT,CAAC;IAED,MAAM,QAAQ,GAAG,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC3C,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,MAAM,CAAC,IAAI,CAAC;YACV,IAAI;YACJ,OAAO,EAAE,YAAY,QAAQ,SAAS,OAAO,KAAK,EAAE;SACrD,CAAC,CAAC;IACL,CAAC;AACH,CAAC,CAAC;AAEF,0DAA0D;AAC1D,aAAa;AACb,0DAA0D;AAE1D;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,CAC7B,OAAgC,EAChC,MAAkB,EAClB,MAAM,GAAG,EAAE,EACX,SAA4B,EAAE,EAC9B,KAAK,GAAG,CAAC,EACU,EAAE;IACrB,IAAI,KAAK,GAAG,oBAAoB,EAAE,CAAC;QACjC,MAAM,CAAC,IAAI,CAAC;YACV,IAAI,EAAE,MAAM,IAAI,QAAQ;YACxB,OAAO,EAAE,2CAA2C,oBAAoB,EAAE;SAC3E,CAAC,CAAC;QACH,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,0BAA0B;IAC1B,KAAK,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QAChD,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;QAC/C,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;QAE3B,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;YAC1C,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAC;gBACjB,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,2BAA2B,EAAE,CAAC,CAAC;YAC9D,CAAC;YACD,SAAS;QACX,CAAC;QAED,aAAa,CAAC,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;IACjD,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAEF;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAsB,CAAC,WAAW,EAAE,aAAa,EAAE,WAAW,CAAC,CAAC;AAElG;;;GAGG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,OAAgC,EAAqB,EAAE,CAC1F,qBAAqB,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;IAC/E,IAAI,EAAE,GAAG;IACT,OAAO,EAAE,IAAI,GAAG,gEAAgE;CACjF,CAAC,CAAC,CAAC;AAEN;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,KAA8B,EAAqB,EAAE,CACvF,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;KACf,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,SAAS,CAAC;KACzC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;IACb,IAAI,EAAE,GAAG;IACT,OAAO,EAAE,IAAI,GAAG,gFAAgF;CACjG,CAAC,CAAC,CAAC;AAER;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,CAAC,MAAM,+BAA+B,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAU,CAAC;AAE5F;;;GAGG;AACH,MAAM,CAAC,MAAM,8BAA8B,GAAG,+BAA+B,CAAC,MAAM,CAClF,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,GAAG,CACvB,CAAC;AAEF,0EAA0E;AAC1E,MAAM,cAAc,GAAG,CAAC,KAAwB,EAAU,EAAE,CAC1D,IAAI,MAAM,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;AAErF,MAAM,qBAAqB,GAAG,cAAc,CAAC,+BAA+B,CAAC,CAAC;AAE9E,MAAM,CAAC,MAAM,wBAAwB,GAAG,cAAc,CAAC,8BAA8B,CAAC,CAAC;AAEvF;;;;;GAKG;AACH,MAAM,gBAAgB,GAAG,CACvB,KAAc,EACd,MAAc,EACd,MAAyB,EACzB,KAAa,EACP,EAAE;IACR,mEAAmE;IACnE,wEAAwE;IACxE,+DAA+D;IAC/D,IAAI,KAAK,GAAG,oBAAoB;QAAE,OAAO;IACzC,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,gBAAgB,CAAC,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC;QACzF,OAAO;IACT,CAAC;IACD,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO;IACxD,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACjD,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;QAC/C,IAAI,qBAAqB,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;YACpC,MAAM,CAAC,IAAI,CAAC;gBACV,IAAI;gBACJ,OAAO,EACL,eAAe,GAAG,kCAAkC;oBACpD,IAAI,+BAA+B,CAAC,IAAI,CAAC,GAAG,CAAC,sCAAsC;aACtF,CAAC,CAAC;QACL,CAAC;QACD,gBAAgB,CAAC,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;IACnD,CAAC;AACH,CAAC,CAAC;AAEF,wCAAwC;AACxC,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,OAAgC,EAAqB,EAAE;IACzF,MAAM,MAAM,GAAsB,EAAE,CAAC;IACrC,gBAAgB,CAAC,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;IACzC,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,CACtC,MAAkB,EAClB,MAAM,GAAG,EAAE,EACX,SAA4B,EAAE,EAC9B,KAAK,GAAG,CAAC,EACU,EAAE;IACrB,IAAI,KAAK,GAAG,oBAAoB;QAAE,OAAO,MAAM,CAAC;IAChD,KAAK,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QAChD,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;QAC/C,IAAI,qBAAqB,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;YACpC,MAAM,CAAC,IAAI,CAAC;gBACV,IAAI;gBACJ,OAAO,EACL,eAAe,GAAG,kCAAkC;oBACpD,IAAI,+BAA+B,CAAC,IAAI,CAAC,GAAG,CAAC,sCAAsC;aACtF,CAAC,CAAC;QACL,CAAC;QACD,IAAI,KAAK,GAAa,GAAG,CAAC;QAC1B,OAAO,KAAK,CAAC,IAAI,KAAK,OAAO;YAAE,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;QACnD,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ;YACzB,wBAAwB,CAAC,KAAK,CAAC,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;IACxE,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,OAAgC,EAAE,MAAkB,EAAW,EAAE,CACvF,eAAe,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"validate.js","sourceRoot":"","sources":["../src/validate.ts"],"names":[],"mappings":"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"}
|
package/dist/wire-entry.d.ts
CHANGED
|
@@ -22,7 +22,7 @@ export type { ParsedChangeParams } from './wire-request.js';
|
|
|
22
22
|
export { parseDate } from './wire-request.js';
|
|
23
23
|
export { StackQueryError } from './stack.js';
|
|
24
24
|
export { StackValidationError } from './stack.js';
|
|
25
|
-
export { createOptionsFromWireRecord } from './wire-record.js';
|
|
25
|
+
export { createOptionsFromWireRecord, changesFromWireBody } from './wire-record.js';
|
|
26
26
|
export type { WireCreateRequest } from './wire-record.js';
|
|
27
27
|
export { isOwnerActingAlone } from './access.js';
|
|
28
28
|
//# sourceMappingURL=wire-entry.d.ts.map
|
package/dist/wire-entry.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wire-entry.d.ts","sourceRoot":"","sources":["../src/wire-entry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EACL,yBAAyB,EACzB,iBAAiB,EACjB,mBAAmB,EACnB,wBAAwB,EACxB,eAAe,EACf,eAAe,GAChB,MAAM,WAAW,CAAC;AACnB,YAAY,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAK9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAK9C,OAAO,EAAE,yBAAyB,EAAE,MAAM,WAAW,CAAC;AAEtD,OAAO,EACL,2BAA2B,EAC3B,4BAA4B,EAC5B,oCAAoC,EACpC,mBAAmB,EACnB,oBAAoB,GACrB,MAAM,0BAA0B,CAAC;AAClC,YAAY,EAAE,6BAA6B,EAAE,MAAM,0BAA0B,CAAC;AAM9E,OAAO,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAC;AAInE,YAAY,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAO7D,OAAO,EACL,gBAAgB,EAChB,cAAc,EACd,iBAAiB,EACjB,YAAY,EACZ,mBAAmB,EACnB,gBAAgB,GACjB,MAAM,mBAAmB,CAAC;AAC3B,YAAY,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAI5D,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAK9C,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAI7C,OAAO,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAKlD,OAAO,EAAE,2BAA2B,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"wire-entry.d.ts","sourceRoot":"","sources":["../src/wire-entry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EACL,yBAAyB,EACzB,iBAAiB,EACjB,mBAAmB,EACnB,wBAAwB,EACxB,eAAe,EACf,eAAe,GAChB,MAAM,WAAW,CAAC;AACnB,YAAY,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAK9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAK9C,OAAO,EAAE,yBAAyB,EAAE,MAAM,WAAW,CAAC;AAEtD,OAAO,EACL,2BAA2B,EAC3B,4BAA4B,EAC5B,oCAAoC,EACpC,mBAAmB,EACnB,oBAAoB,GACrB,MAAM,0BAA0B,CAAC;AAClC,YAAY,EAAE,6BAA6B,EAAE,MAAM,0BAA0B,CAAC;AAM9E,OAAO,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAC;AAInE,YAAY,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAO7D,OAAO,EACL,gBAAgB,EAChB,cAAc,EACd,iBAAiB,EACjB,YAAY,EACZ,mBAAmB,EACnB,gBAAgB,GACjB,MAAM,mBAAmB,CAAC;AAC3B,YAAY,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAI5D,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAK9C,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAI7C,OAAO,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAKlD,OAAO,EAAE,2BAA2B,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AACpF,YAAY,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAK1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC"}
|
package/dist/wire-entry.js
CHANGED
|
@@ -43,7 +43,7 @@ export { StackValidationError } from './stack.js';
|
|
|
43
43
|
// No in-repo caller: the create half of the same contract, so a server
|
|
44
44
|
// inherits which half of a record body it may trust rather than deciding
|
|
45
45
|
// field by field. See docs/spec/wire-format.md § Records.
|
|
46
|
-
export { createOptionsFromWireRecord } from './wire-record.js';
|
|
46
|
+
export { createOptionsFromWireRecord, changesFromWireBody } from './wire-record.js';
|
|
47
47
|
// The tier gating hard delete, commitMigration() and includeUnlisted, which
|
|
48
48
|
// a server must decide for those routes itself. Computing it as "is the
|
|
49
49
|
// owner" is a privilege bug with no symptom.
|
package/dist/wire-entry.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wire-entry.js","sourceRoot":"","sources":["../src/wire-entry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EACL,yBAAyB,EACzB,iBAAiB,EACjB,mBAAmB,EACnB,wBAAwB,EACxB,eAAe,EACf,eAAe,GAChB,MAAM,WAAW,CAAC;AAGnB,0EAA0E;AAC1E,0EAA0E;AAC1E,qBAAqB;AACrB,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAE9C,6DAA6D;AAC7D,gEAAgE;AAChE,oDAAoD;AACpD,OAAO,EAAE,yBAAyB,EAAE,MAAM,WAAW,CAAC;AAEtD,OAAO,EACL,2BAA2B,EAC3B,4BAA4B,EAC5B,oCAAoC,EACpC,mBAAmB,EACnB,oBAAoB,GACrB,MAAM,0BAA0B,CAAC;AAGlC,kEAAkE;AAClE,yEAAyE;AACzE,wEAAwE;AACxE,6EAA6E;AAC7E,OAAO,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAC;AAMnE,wEAAwE;AACxE,oEAAoE;AACpE,wEAAwE;AACxE,sEAAsE;AACtE,gEAAgE;AAChE,OAAO,EACL,gBAAgB,EAChB,cAAc,EACd,iBAAiB,EACjB,YAAY,EACZ,mBAAmB,EACnB,gBAAgB,GACjB,MAAM,mBAAmB,CAAC;AAG3B,wEAAwE;AACxE,sCAAsC;AACtC,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAE9C,0EAA0E;AAC1E,2EAA2E;AAC3E,4EAA4E;AAC5E,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAE7C,4EAA4E;AAC5E,oEAAoE;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAElD,uEAAuE;AACvE,yEAAyE;AACzE,0DAA0D;AAC1D,OAAO,EAAE,2BAA2B,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"wire-entry.js","sourceRoot":"","sources":["../src/wire-entry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EACL,yBAAyB,EACzB,iBAAiB,EACjB,mBAAmB,EACnB,wBAAwB,EACxB,eAAe,EACf,eAAe,GAChB,MAAM,WAAW,CAAC;AAGnB,0EAA0E;AAC1E,0EAA0E;AAC1E,qBAAqB;AACrB,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAE9C,6DAA6D;AAC7D,gEAAgE;AAChE,oDAAoD;AACpD,OAAO,EAAE,yBAAyB,EAAE,MAAM,WAAW,CAAC;AAEtD,OAAO,EACL,2BAA2B,EAC3B,4BAA4B,EAC5B,oCAAoC,EACpC,mBAAmB,EACnB,oBAAoB,GACrB,MAAM,0BAA0B,CAAC;AAGlC,kEAAkE;AAClE,yEAAyE;AACzE,wEAAwE;AACxE,6EAA6E;AAC7E,OAAO,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAC;AAMnE,wEAAwE;AACxE,oEAAoE;AACpE,wEAAwE;AACxE,sEAAsE;AACtE,gEAAgE;AAChE,OAAO,EACL,gBAAgB,EAChB,cAAc,EACd,iBAAiB,EACjB,YAAY,EACZ,mBAAmB,EACnB,gBAAgB,GACjB,MAAM,mBAAmB,CAAC;AAG3B,wEAAwE;AACxE,sCAAsC;AACtC,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAE9C,0EAA0E;AAC1E,2EAA2E;AAC3E,4EAA4E;AAC5E,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAE7C,4EAA4E;AAC5E,oEAAoE;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAElD,uEAAuE;AACvE,yEAAyE;AACzE,0DAA0D;AAC1D,OAAO,EAAE,2BAA2B,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAGpF,4EAA4E;AAC5E,wEAAwE;AACxE,6CAA6C;AAC7C,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC"}
|
package/dist/wire-record.d.ts
CHANGED
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
* here: docs/spec/wire-format.md § Records.
|
|
12
12
|
*/
|
|
13
13
|
import type { BackdatableCreateRecordOptions } from './stack.js';
|
|
14
|
-
import type { EntityId, TokenSession, TypeId } from './types.js';
|
|
14
|
+
import type { EntityId, RecordChanges, TokenSession, TypeId } from './types.js';
|
|
15
15
|
/**
|
|
16
16
|
* A `POST /records` body as the three arguments `ScopedStack.create()`
|
|
17
17
|
* takes. Not spread-ready, so a call site reads as three deliberate things.
|
|
@@ -32,4 +32,19 @@ export type WireCreateRequest = {
|
|
|
32
32
|
* would let the two answers drift.
|
|
33
33
|
*/
|
|
34
34
|
export declare function createOptionsFromWireRecord(body: unknown, session: TokenSession, ownerEntityId: EntityId): WireCreateRequest;
|
|
35
|
+
/**
|
|
36
|
+
* Read a `PATCH /records/:id` body as a change set. The envelope's keys
|
|
37
|
+
* are native aspects, so an unrecognized one is a client reaching for
|
|
38
|
+
* something this endpoint does not have — refused rather than ignored,
|
|
39
|
+
* since a dropped `permissions` silently fails to share and a dropped
|
|
40
|
+
* `unlisted` silently fails to publish.
|
|
41
|
+
*
|
|
42
|
+
* `StackQueryError` (400) for a key that addresses nothing and
|
|
43
|
+
* `StackValidationError` (422) for one whose value is the wrong shape —
|
|
44
|
+
* the same split every other write endpoint makes. Content keys are
|
|
45
|
+
* `Stack`'s to judge, so `contentPatch` is checked for being an object and
|
|
46
|
+
* nothing more.
|
|
47
|
+
* See docs/spec/wire-format.md § Records.
|
|
48
|
+
*/
|
|
49
|
+
export declare function changesFromWireBody(body: unknown): RecordChanges;
|
|
35
50
|
//# sourceMappingURL=wire-record.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wire-record.d.ts","sourceRoot":"","sources":["../src/wire-record.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAIH,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"wire-record.d.ts","sourceRoot":"","sources":["../src/wire-record.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAIH,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,YAAY,CAAC;AAEjE,OAAO,KAAK,EAEV,QAAQ,EAER,aAAa,EACb,YAAY,EACZ,MAAM,EACP,MAAM,YAAY,CAAC;AAEpB;;;GAGG;AACH,MAAM,MAAM,iBAAiB,GAAG;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,0EAA0E;IAC1E,OAAO,EAAE,IAAI,CAAC,8BAA8B,EAAE,UAAU,GAAG,aAAa,CAAC,CAAC;CAC3E,CAAC;AA8CF;;;;;;;;GAQG;AACH,wBAAgB,2BAA2B,CACzC,IAAI,EAAE,OAAO,EACb,OAAO,EAAE,YAAY,EACrB,aAAa,EAAE,QAAQ,GACtB,iBAAiB,CAoCnB;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,OAAO,GAAG,aAAa,CAoDhE"}
|
package/dist/wire-record.js
CHANGED
|
@@ -12,6 +12,7 @@
|
|
|
12
12
|
*/
|
|
13
13
|
import { isOwnerActingAlone } from './access.js';
|
|
14
14
|
import { StackQueryError, StackValidationError } from './stack.js';
|
|
15
|
+
import { RECORD_CHANGE_KEYS } from './types.js';
|
|
15
16
|
function requireBody(body) {
|
|
16
17
|
if (typeof body !== 'object' || body === null || Array.isArray(body))
|
|
17
18
|
throw new StackQueryError('Invalid record body: expected an object');
|
|
@@ -104,4 +105,59 @@ export function createOptionsFromWireRecord(body, session, ownerEntityId) {
|
|
|
104
105
|
}
|
|
105
106
|
return { typeId, content: content, options };
|
|
106
107
|
}
|
|
108
|
+
/**
|
|
109
|
+
* Read a `PATCH /records/:id` body as a change set. The envelope's keys
|
|
110
|
+
* are native aspects, so an unrecognized one is a client reaching for
|
|
111
|
+
* something this endpoint does not have — refused rather than ignored,
|
|
112
|
+
* since a dropped `permissions` silently fails to share and a dropped
|
|
113
|
+
* `unlisted` silently fails to publish.
|
|
114
|
+
*
|
|
115
|
+
* `StackQueryError` (400) for a key that addresses nothing and
|
|
116
|
+
* `StackValidationError` (422) for one whose value is the wrong shape —
|
|
117
|
+
* the same split every other write endpoint makes. Content keys are
|
|
118
|
+
* `Stack`'s to judge, so `contentPatch` is checked for being an object and
|
|
119
|
+
* nothing more.
|
|
120
|
+
* See docs/spec/wire-format.md § Records.
|
|
121
|
+
*/
|
|
122
|
+
export function changesFromWireBody(body) {
|
|
123
|
+
const envelope = requireBody(body);
|
|
124
|
+
const unknown = Object.keys(envelope).filter((key) => !RECORD_CHANGE_KEYS.includes(key));
|
|
125
|
+
if (unknown.length > 0) {
|
|
126
|
+
throw new StackQueryError(`Unknown change-set key${unknown.length > 1 ? 's' : ''}: ${unknown.join(', ')}. ` +
|
|
127
|
+
`A change set names one or more of: ${RECORD_CHANGE_KEYS.join(', ')}.`);
|
|
128
|
+
}
|
|
129
|
+
const changes = {};
|
|
130
|
+
if (envelope.contentPatch !== undefined) {
|
|
131
|
+
const patch = envelope.contentPatch;
|
|
132
|
+
if (typeof patch !== 'object' || patch === null || Array.isArray(patch))
|
|
133
|
+
fieldError('contentPatch', 'contentPatch must be an object');
|
|
134
|
+
changes.contentPatch = patch;
|
|
135
|
+
}
|
|
136
|
+
// The one key `null` is a value for rather than a removal spelling: it
|
|
137
|
+
// is the root, the same sentinel `?parentId=null` carries.
|
|
138
|
+
if (envelope.parentId !== undefined) {
|
|
139
|
+
const parentId = envelope.parentId;
|
|
140
|
+
if (parentId !== null && typeof parentId !== 'string')
|
|
141
|
+
fieldError('parentId', 'parentId must be a string or null');
|
|
142
|
+
changes.parentId = parentId;
|
|
143
|
+
}
|
|
144
|
+
const permissions = optionalArray(envelope, 'permissions');
|
|
145
|
+
if (permissions !== undefined)
|
|
146
|
+
changes.permissions = permissions;
|
|
147
|
+
const associations = optionalArray(envelope, 'associations');
|
|
148
|
+
if (associations !== undefined)
|
|
149
|
+
changes.associations = associations;
|
|
150
|
+
if (envelope.unlisted !== undefined) {
|
|
151
|
+
if (typeof envelope.unlisted !== 'boolean')
|
|
152
|
+
fieldError('unlisted', 'unlisted must be a boolean');
|
|
153
|
+
changes.unlisted = envelope.unlisted;
|
|
154
|
+
}
|
|
155
|
+
// Every key was absent. Refused here rather than left to mutate(), so a
|
|
156
|
+
// server answers 400 without a storage round trip; mutate() refuses it
|
|
157
|
+
// again for callers that never went through the wire.
|
|
158
|
+
if (Object.keys(changes).length === 0) {
|
|
159
|
+
throw new StackQueryError(`An empty change set addresses nothing. Name one or more of: ${RECORD_CHANGE_KEYS.join(', ')}.`);
|
|
160
|
+
}
|
|
161
|
+
return changes;
|
|
162
|
+
}
|
|
107
163
|
//# sourceMappingURL=wire-record.js.map
|
package/dist/wire-record.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wire-record.js","sourceRoot":"","sources":["../src/wire-record.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"wire-record.js","sourceRoot":"","sources":["../src/wire-record.ts"],"names":[],"mappings":"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"}
|