@texaryn/schema-json 0.7.0 → 0.8.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 (61) hide show
  1. package/CHANGELOG.md +32 -0
  2. package/README.md +33 -1
  3. package/THIRD-PARTY-NOTICES.md +7 -0
  4. package/dist/adapter.d.ts.map +1 -1
  5. package/dist/adapter.js +479 -24
  6. package/dist/adapter.js.map +1 -1
  7. package/dist/bare-maps.d.ts +3 -0
  8. package/dist/bare-maps.d.ts.map +1 -0
  9. package/dist/bare-maps.js +44 -0
  10. package/dist/bare-maps.js.map +1 -0
  11. package/dist/identity.d.ts +11 -2
  12. package/dist/identity.d.ts.map +1 -1
  13. package/dist/identity.js +103 -22
  14. package/dist/identity.js.map +1 -1
  15. package/dist/index.d.ts +4 -1
  16. package/dist/index.d.ts.map +1 -1
  17. package/dist/index.js +3 -1
  18. package/dist/index.js.map +1 -1
  19. package/dist/instance-pointer.d.ts +9 -0
  20. package/dist/instance-pointer.d.ts.map +1 -0
  21. package/dist/instance-pointer.js +115 -0
  22. package/dist/instance-pointer.js.map +1 -0
  23. package/dist/local-pointer-aliases.d.ts +4 -0
  24. package/dist/local-pointer-aliases.d.ts.map +1 -0
  25. package/dist/local-pointer-aliases.js +345 -0
  26. package/dist/local-pointer-aliases.js.map +1 -0
  27. package/dist/normalize.d.ts +1 -1
  28. package/dist/normalize.d.ts.map +1 -1
  29. package/dist/normalize.js +3 -1
  30. package/dist/normalize.js.map +1 -1
  31. package/dist/projection-shape.d.ts +25 -0
  32. package/dist/projection-shape.d.ts.map +1 -0
  33. package/dist/projection-shape.js +74 -0
  34. package/dist/projection-shape.js.map +1 -0
  35. package/dist/projection-validation-coherence.d.ts +11 -0
  36. package/dist/projection-validation-coherence.d.ts.map +1 -0
  37. package/dist/projection-validation-coherence.js +213 -0
  38. package/dist/projection-validation-coherence.js.map +1 -0
  39. package/dist/projection.d.ts +2 -2
  40. package/dist/projection.d.ts.map +1 -1
  41. package/dist/projection.js +922 -243
  42. package/dist/projection.js.map +1 -1
  43. package/dist/resources.d.ts +19 -0
  44. package/dist/resources.d.ts.map +1 -0
  45. package/dist/resources.js +730 -0
  46. package/dist/resources.js.map +1 -0
  47. package/dist/root-reference.js +1 -1
  48. package/dist/schema-graph.d.ts +7 -0
  49. package/dist/schema-graph.d.ts.map +1 -1
  50. package/dist/schema-graph.js +79 -20
  51. package/dist/schema-graph.js.map +1 -1
  52. package/dist/submission-projection.d.ts +5 -0
  53. package/dist/submission-projection.d.ts.map +1 -0
  54. package/dist/submission-projection.js +233 -0
  55. package/dist/submission-projection.js.map +1 -0
  56. package/dist/types.d.ts +6 -1
  57. package/dist/types.d.ts.map +1 -1
  58. package/dist/vendor/json-schema-library/LICENSE.md +9 -0
  59. package/dist/vendor/json-schema-library/index.mjs +2 -0
  60. package/dist/vendor/json-schema-library/index.mjs.map +1 -0
  61. package/package.json +9 -4
package/dist/adapter.js CHANGED
@@ -1,11 +1,17 @@
1
- import { compileSchema, } from 'json-schema-library';
1
+ import { compileSchema, isSchemaNode, } from './vendor/json-schema-library/index.mjs';
2
2
  import { detectDialect } from './dialect.js';
3
3
  import { loadMetaschemas, referencedDialects } from './metaschemas/index.js';
4
+ import { loadExternalResources } from './resources.js';
5
+ import { materializeLocalPointerAliases } from './local-pointer-aliases.js';
4
6
  import { newProjectionCache } from './identity.js';
5
7
  import { buildProjection, DEFAULT_LIMITS } from './projection.js';
8
+ import { assertProjectionValidationCoherence } from './projection-validation-coherence.js';
9
+ import { projectSubmissionData, supportsSubmissionProjection } from './submission-projection.js';
6
10
  import { withoutUnreachableBranches } from './normalize.js';
11
+ import { DRAFTS } from './bare-maps.js';
7
12
  import { fixRootReference } from './root-reference.js';
8
- import { buildSchemaGraph, rejectSameLocationCycles, cyclicPositions, markPositions } from './schema-graph.js';
13
+ import { buildSchemaGraph, rejectSameLocationCycles, cyclicPositions, markPositions, POSITION } from './schema-graph.js';
14
+ import { pointerResolver } from './instance-pointer.js';
9
15
  export async function createJsonSchemaAdapter(schema, config) {
10
16
  return createAdapter(schema, config, DEFAULT_LIMITS);
11
17
  }
@@ -13,21 +19,68 @@ export async function createAdapter(schema, config, limits) {
13
19
  const dialect = detectDialect(schema, {
14
20
  defaultDialect: config?.defaultDialect ?? 'draft-07',
15
21
  });
22
+ if (config?.dynamicReferenceProjection === 'local' && dialect === 'draft-07') {
23
+ throw new TypeError('Local dynamic reference projection requires Draft 2019-09 or Draft 2020-12.');
24
+ }
16
25
  // json-schema-library carries no metaschema documents, so a schema referencing its own fails closed.
17
- const referenced = referencedDialects(schema);
18
- const remotes = referenced.length > 0 ? await loadMetaschemas(referenced) : undefined;
26
+ const externalRemotes = await loadExternalResources(schema, dialect, config);
27
+ const referenced = referencedDialects([schema, ...externalRemotes]);
28
+ const metaschemas = referenced.length > 0 ? await loadMetaschemas(referenced) : [];
29
+ const remotes = [...metaschemas, ...externalRemotes];
30
+ const graph = buildSchemaGraph(schema, dialect, remotes);
31
+ const referencesByDocument = new Map();
32
+ for (const target of graph.references.values()) {
33
+ const hash = target.indexOf('#');
34
+ if (hash < 0)
35
+ continue;
36
+ const prefix = target.slice(0, hash);
37
+ const pointers = referencesByDocument.get(prefix) ?? [];
38
+ pointers.push(target.slice(hash));
39
+ referencesByDocument.set(prefix, pointers);
40
+ }
19
41
  // json-schema-library evaluates some branches the specification never does, so only the projection drops them.
20
- const document = withoutUnreachableBranches(schema);
21
- const graph = buildSchemaGraph(document, dialect, remotes ?? []);
42
+ const document = withoutUnreachableBranches(schema, referencesByDocument.get('') ?? []);
43
+ const projectionRemotes = [
44
+ ...metaschemas,
45
+ ...externalRemotes.map((remote) => {
46
+ const id = remote.$id;
47
+ const base = typeof id === 'string' ? id.split('#', 1)[0] : '';
48
+ return withoutUnreachableBranches(remote, referencesByDocument.get(base) ?? []);
49
+ }),
50
+ ];
22
51
  rejectSameLocationCycles(graph);
23
- const marked = markPositions(graph, document, remotes ?? []);
52
+ const marked = markPositions(graph, document, projectionRemotes);
24
53
  const validated = await prepareSchema(schema, dialect, remotes);
25
- const projected = await prepareSchema(marked.document, dialect, remotes && marked.remotes);
26
- const cache = newProjectionCache(dialect, cyclicPositions(graph), marked.at);
54
+ const projected = await prepareSchema(marked.document, dialect, marked.remotes);
55
+ const dynamicReferenceProjection = config?.dynamicReferenceProjection === 'local';
56
+ if (dynamicReferenceProjection) {
57
+ const externalResourceIds = new Set(externalRemotes.flatMap((remote) => {
58
+ const id = remote.$id;
59
+ return typeof id === 'string' ? [id.split('#', 1)[0]] : [];
60
+ }));
61
+ enableLocalDynamicReferenceScopes(validated, dialect, externalResourceIds);
62
+ enableLocalDynamicReferenceScopes(projected, dialect, externalResourceIds);
63
+ }
64
+ assertProjectionValidationCoherence(validated, projected, dialect);
65
+ const submissionSchema = supportsSubmissionProjection([schema, ...remotes], dialect)
66
+ ? await prepareSchema(marked.document, dialect, marked.remotes)
67
+ : undefined;
68
+ if (dynamicReferenceProjection && submissionSchema) {
69
+ const externalResourceIds = new Set(externalRemotes.flatMap((remote) => {
70
+ const id = remote.$id;
71
+ return typeof id === 'string' ? [id.split('#', 1)[0]] : [];
72
+ }));
73
+ enableLocalDynamicReferenceScopes(submissionSchema, dialect, externalResourceIds);
74
+ }
75
+ // A schema node can validate differently under different dynamic anchor scopes.
76
+ const cache = newProjectionCache(dialect, cyclicPositions(graph), marked.at, dynamicReferenceProjection, !dynamicReferenceProjection && !hasOneOf([marked.document, marked.remotes]), graph.retainedPositions);
27
77
  return {
28
- project(data) {
29
- return buildProjection(projected, data, cache, limits);
78
+ project(data, options) {
79
+ return buildProjection(projected, data, cache, limits, options);
30
80
  },
81
+ ...(submissionSchema
82
+ ? { projectSubmission: (data) => projectSubmissionData(validated, submissionSchema, data, dialect) }
83
+ : {}),
31
84
  validate(data) {
32
85
  return runValidation(validated, data);
33
86
  },
@@ -36,6 +89,386 @@ export async function createAdapter(schema, config, limits) {
36
89
  },
37
90
  };
38
91
  }
92
+ const DYNAMIC_REFERENCE_ANNOTATIONS = new Set([
93
+ '$anchor', '$comment', '$dynamicAnchor', '$id', '$schema', 'default', 'deprecated', 'description', 'examples',
94
+ 'readOnly', 'title', 'writeOnly', POSITION,
95
+ ]);
96
+ const DYNAMIC_REFERENCE_SCOPE_BARRIERS = new Set([
97
+ 'additionalItems', 'additionalProperties', 'contains', 'contentSchema', 'not', 'patternProperties', 'prefixItems',
98
+ 'propertyNames', 'unevaluatedItems', 'unevaluatedProperties',
99
+ ]);
100
+ const SCHEMA_MAP_KEYWORDS = new Set([
101
+ '$defs', 'definitions', 'dependencies', 'dependentSchemas', 'patternProperties', 'properties',
102
+ ]);
103
+ const SCHEMA_ARRAY_KEYWORDS = new Set(['allOf', 'anyOf', 'oneOf', 'prefixItems']);
104
+ const SCHEMA_SINGLE_KEYWORDS = new Set([
105
+ 'additionalItems', 'additionalProperties', 'contains', 'contentSchema', 'else', 'if', 'not', 'propertyNames', 'then',
106
+ 'unevaluatedItems', 'unevaluatedProperties',
107
+ ]);
108
+ function enableLocalDynamicReferenceScopes(root, dialect, externalResourceIds) {
109
+ const compiledRoots = [
110
+ root,
111
+ ...Object.values(root.context.remotes).filter((remote) => {
112
+ if (!isSchemaNode(remote) || remote === root || typeof remote.$id !== 'string')
113
+ return false;
114
+ return externalResourceIds.has(remote.$id.split('#', 1)[0]);
115
+ }),
116
+ ];
117
+ const referencePolicies = new Map();
118
+ const recursiveReferencePolicies = new Map();
119
+ const unclassifiedCompiledReferencePolicies = new Set();
120
+ const classifiedReferencePolicies = new Set();
121
+ const activeValidationScope = [];
122
+ const validatorWrappers = new WeakMap();
123
+ const wrappedValidators = new WeakSet();
124
+ let validationDepth = 0;
125
+ let reductionDepth = 0;
126
+ for (const compiledRoot of compiledRoots) {
127
+ const authoredReferencePaths = collectAuthoredReferencePaths(compiledRoot.schema);
128
+ for (const node of compiledRoot.toSchemaNodes()) {
129
+ if (node.$id?.startsWith('/')) {
130
+ throw new TypeError('Local reference projection does not support root-relative resource identifiers.');
131
+ }
132
+ if (typeof node.schema !== 'object' || node.schema === null)
133
+ continue;
134
+ const schema = node.schema;
135
+ if (dialect === '2020-12' && '$recursiveRef' in schema) {
136
+ throw new TypeError('Local dynamic reference projection does not support $recursiveRef.');
137
+ }
138
+ const dynamicReference = dialect === '2020-12' && typeof schema.$dynamicRef === 'string';
139
+ const recursiveReference = dialect === '2019-09' && typeof schema.$recursiveRef === 'string';
140
+ if (!dynamicReference && !recursiveReference)
141
+ continue;
142
+ if (recursiveReference && schema.$recursiveRef !== '#') {
143
+ throw new TypeError('Local dynamic reference projection only supports the $recursiveRef value "#".');
144
+ }
145
+ const keyword = dynamicReference ? '$dynamicRef' : '$recursiveRef';
146
+ const reference = schema.$dynamicRef ?? schema.$recursiveRef;
147
+ const policyKey = referencePolicyKey(node, keyword, reference);
148
+ const authoredPaths = authoredReferencePaths.get(schema);
149
+ const parsedPath = authoredPaths ? undefined : schemaKeywordPath(compiledRoot, node.schemaLocation);
150
+ const keywordPaths = authoredPaths ?? (parsedPath ? [parsedPath] : undefined);
151
+ if (!keywordPaths) {
152
+ unclassifiedCompiledReferencePolicies.add(policyKey);
153
+ }
154
+ else {
155
+ classifiedReferencePolicies.add(policyKey);
156
+ for (const keywords of keywordPaths) {
157
+ if (!keywords.some((pathKeyword) => pathKeyword === 'properties' || pathKeyword === 'items') ||
158
+ keywords.some((pathKeyword) => DYNAMIC_REFERENCE_SCOPE_BARRIERS.has(pathKeyword))) {
159
+ throw new TypeError('Local dynamic reference projection does not support references below unsupported applicators or tuple items.');
160
+ }
161
+ }
162
+ }
163
+ if (recursiveReference && Object.keys(schema).some((keyword) => keyword !== '$recursiveRef' && keyword !== POSITION)) {
164
+ throw new TypeError('Local dynamic reference projection does not support siblings beside $recursiveRef.');
165
+ }
166
+ if (dynamicReference && Object.keys(schema).some((keyword) => keyword !== '$dynamicRef' && !DYNAMIC_REFERENCE_ANNOTATIONS.has(keyword))) {
167
+ throw new TypeError('Local dynamic reference projection does not support assertion siblings beside $dynamicRef.');
168
+ }
169
+ const staticTarget = node.resolveRef({ path: [] });
170
+ if (!isSchemaNode(staticTarget)) {
171
+ throw new TypeError(`Cannot resolve local reference at ${node.schemaLocation}.`);
172
+ }
173
+ const targetRoot = staticTarget.context.rootNode;
174
+ const targetRootId = targetRoot.$id?.split('#', 1)[0];
175
+ if (targetRoot !== root && (!targetRootId || !externalResourceIds.has(targetRootId))) {
176
+ throw new TypeError('Local dynamic reference projection does not support external targets unless they were loaded by the configured resource resolver.');
177
+ }
178
+ if (dynamicReference) {
179
+ const anchor = dynamicReferenceAnchor(schema.$dynamicRef);
180
+ const policy = anchor !== undefined && staticTarget.schema.$dynamicAnchor === anchor
181
+ ? anchor
182
+ : undefined;
183
+ referencePolicies.set(referencePolicyKey(node, '$dynamicRef', schema.$dynamicRef), policy);
184
+ }
185
+ else {
186
+ recursiveReferencePolicies.set(referencePolicyKey(node, '$recursiveRef', schema.$recursiveRef), staticTarget.schema.$recursiveAnchor === true);
187
+ }
188
+ }
189
+ }
190
+ for (const key of unclassifiedCompiledReferencePolicies) {
191
+ if (!classifiedReferencePolicies.has(key)) {
192
+ throw new TypeError('Cannot classify a compiled local dynamic reference.');
193
+ }
194
+ }
195
+ const instrumented = new WeakSet();
196
+ const instrument = (compiledRoot) => {
197
+ for (const node of compiledRoot.toSchemaNodes()) {
198
+ if (instrumented.has(node))
199
+ continue;
200
+ instrumented.add(node);
201
+ const schema = node.schema;
202
+ node.validators = node.validators.map((validator) => {
203
+ if (wrappedValidators.has(validator))
204
+ return validator;
205
+ const existing = validatorWrappers.get(validator);
206
+ if (existing)
207
+ return existing;
208
+ const wrapped = ((params) => {
209
+ activeValidationScope.push({ pointer: params.pointer, node: params.node });
210
+ try {
211
+ return validator(params);
212
+ }
213
+ finally {
214
+ activeValidationScope.pop();
215
+ }
216
+ });
217
+ Object.assign(wrapped, validator);
218
+ wrappedValidators.add(wrapped);
219
+ validatorWrappers.set(validator, wrapped);
220
+ return wrapped;
221
+ });
222
+ const validate = node.validate.bind(node);
223
+ node.validate = ((data, pointer = '#', path = []) => {
224
+ const outermost = validationDepth === 0;
225
+ const inheritedLength = activeValidationScope.length;
226
+ if (outermost)
227
+ activeValidationScope.push(...path);
228
+ validationDepth += 1;
229
+ try {
230
+ return validate(data, pointer, path);
231
+ }
232
+ finally {
233
+ validationDepth -= 1;
234
+ if (outermost)
235
+ activeValidationScope.length = inheritedLength;
236
+ }
237
+ });
238
+ const reduceNode = node.reduceNode.bind(node);
239
+ node.reduceNode = ((data, options = {}) => {
240
+ const outermost = reductionDepth === 0;
241
+ const inheritedLength = activeValidationScope.length;
242
+ if (outermost)
243
+ activeValidationScope.push(...(options.path ?? []));
244
+ if (activeValidationScope[activeValidationScope.length - 1]?.node !== node) {
245
+ activeValidationScope.push({ pointer: options.pointer ?? node.evaluationPath, node });
246
+ }
247
+ reductionDepth += 1;
248
+ try {
249
+ return reduceNode(data, options);
250
+ }
251
+ finally {
252
+ reductionDepth -= 1;
253
+ activeValidationScope.length = inheritedLength;
254
+ }
255
+ });
256
+ if (dialect === '2020-12' && typeof schema.$dynamicRef === 'string') {
257
+ const key = referencePolicyKey(node, '$dynamicRef', schema.$dynamicRef);
258
+ if (!referencePolicies.has(key)) {
259
+ throw new TypeError(`Cannot verify compiled local $dynamicRef at ${node.schemaLocation}.`);
260
+ }
261
+ const anchor = referencePolicies.get(key);
262
+ const resolveRef = node.resolveRef.bind(node);
263
+ node.resolveRef = ({ pointer, path = [] } = {}) => {
264
+ if (anchor === undefined) {
265
+ const staticPath = [];
266
+ const resolved = resolveRef({ pointer, path: staticPath });
267
+ if (path !== staticPath)
268
+ path.push(...staticPath);
269
+ return resolved;
270
+ }
271
+ const scopedPath = [];
272
+ const scope = (validationDepth > 0 || reductionDepth > 0) && activeValidationScope.length > 0
273
+ ? activeValidationScope
274
+ : path;
275
+ for (const entry of scope) {
276
+ const anchorNode = entry.node.context.dynamicAnchors[dynamicAnchorUri(entry.node.$id, anchor)];
277
+ if (isSchemaNode(anchorNode))
278
+ scopedPath.push({ pointer: entry.pointer, node: anchorNode });
279
+ }
280
+ const inheritedLength = scopedPath.length;
281
+ const resolved = resolveRef({ pointer, path: scopedPath });
282
+ if (path !== scopedPath)
283
+ path.push(...scopedPath.slice(inheritedLength));
284
+ return resolved;
285
+ };
286
+ }
287
+ if (dialect === '2019-09' && typeof schema.$recursiveRef === 'string') {
288
+ const key = referencePolicyKey(node, '$recursiveRef', schema.$recursiveRef);
289
+ let isRecursive = recursiveReferencePolicies.get(key);
290
+ if (isRecursive === undefined && !recursiveReferencePolicies.has(key)) {
291
+ if (schema.$recursiveRef !== '#') {
292
+ throw new TypeError(`Cannot verify compiled local $recursiveRef at ${node.schemaLocation}.`);
293
+ }
294
+ const staticTarget = node.resolveRef({ path: [] });
295
+ const targetRootId = isSchemaNode(staticTarget) ? staticTarget.context.rootNode.$id?.split('#', 1)[0] : undefined;
296
+ if (!isSchemaNode(staticTarget) ||
297
+ (staticTarget.context.rootNode !== root && (!targetRootId || !externalResourceIds.has(targetRootId)))) {
298
+ throw new TypeError(`Cannot verify compiled local $recursiveRef at ${node.schemaLocation}.`);
299
+ }
300
+ isRecursive = staticTarget.schema.$recursiveAnchor === true;
301
+ }
302
+ const resolveRef = node.resolveRef.bind(node);
303
+ node.resolveRef = ({ pointer, path = [] } = {}) => {
304
+ const staticPath = [];
305
+ const staticTarget = resolveRef({ pointer, path: staticPath });
306
+ if (!isRecursive || !isSchemaNode(staticTarget) || staticTarget.schema.$recursiveAnchor !== true) {
307
+ if (path !== staticPath)
308
+ path.push(...staticPath);
309
+ return staticTarget;
310
+ }
311
+ const scope = (validationDepth > 0 || reductionDepth > 0) && activeValidationScope.length > 0
312
+ ? activeValidationScope
313
+ : path;
314
+ const outerAnchor = scope.find(({ node: entry }) => entry.schema.$recursiveAnchor === true);
315
+ if (outerAnchor) {
316
+ const resourceRoot = outerAnchor.node.getNodeRef('#');
317
+ if (isSchemaNode(resourceRoot)) {
318
+ path.push({ pointer: pointer, node: resourceRoot });
319
+ return resourceRoot;
320
+ }
321
+ }
322
+ if (path !== staticPath)
323
+ path.push(...staticPath);
324
+ return staticTarget;
325
+ };
326
+ }
327
+ const compileSchema = node.compileSchema.bind(node);
328
+ node.compileSchema = ((schema, evaluationPath, schemaLocation, dynamicId) => {
329
+ const compiled = compileSchema(schema, evaluationPath, schemaLocation, dynamicId);
330
+ instrument(compiled);
331
+ return compiled;
332
+ });
333
+ }
334
+ };
335
+ for (const compiledRoot of compiledRoots)
336
+ instrument(compiledRoot);
337
+ }
338
+ function referencePolicyKey(node, keyword, reference) {
339
+ return `${node.$id ?? ''}\u0000${keyword}\u0000${reference}`;
340
+ }
341
+ function collectAuthoredReferencePaths(schema) {
342
+ const paths = new WeakMap();
343
+ const ancestors = new Set();
344
+ const visit = (value, keywords) => {
345
+ if (typeof value !== 'object' || value === null || Array.isArray(value) || ancestors.has(value))
346
+ return;
347
+ ancestors.add(value);
348
+ const current = value;
349
+ if (typeof current.$dynamicRef === 'string' || typeof current.$recursiveRef === 'string') {
350
+ const found = paths.get(value) ?? [];
351
+ found.push(keywords);
352
+ paths.set(value, found);
353
+ }
354
+ for (const keyword of SCHEMA_MAP_KEYWORDS) {
355
+ const map = current[keyword];
356
+ if (typeof map !== 'object' || map === null || Array.isArray(map))
357
+ continue;
358
+ for (const child of Object.values(map))
359
+ visit(child, [...keywords, keyword]);
360
+ }
361
+ for (const keyword of SCHEMA_ARRAY_KEYWORDS) {
362
+ const branches = current[keyword];
363
+ if (Array.isArray(branches)) {
364
+ for (const child of branches)
365
+ visit(child, [...keywords, keyword]);
366
+ }
367
+ }
368
+ for (const keyword of SCHEMA_SINGLE_KEYWORDS) {
369
+ visit(current[keyword], [...keywords, keyword]);
370
+ }
371
+ if (Object.hasOwn(current, 'items')) {
372
+ const items = current.items;
373
+ if (Array.isArray(items)) {
374
+ for (const child of items)
375
+ visit(child, [...keywords, 'prefixItems']);
376
+ }
377
+ else {
378
+ visit(items, [...keywords, 'items']);
379
+ }
380
+ }
381
+ ancestors.delete(value);
382
+ };
383
+ visit(schema, []);
384
+ return paths;
385
+ }
386
+ function schemaKeywordPath(root, schemaLocation) {
387
+ const hashIndex = schemaLocation.indexOf('#');
388
+ if (hashIndex < 0)
389
+ return undefined;
390
+ const fragment = schemaLocation.slice(hashIndex + 1);
391
+ if (!fragment.startsWith('/'))
392
+ return [];
393
+ const segments = fragment.slice(1).split('/');
394
+ const keywords = [];
395
+ let current = root.schema;
396
+ let index = 0;
397
+ while (index < segments.length) {
398
+ if (typeof current !== 'object' || current === null || Array.isArray(current))
399
+ return undefined;
400
+ const schema = current;
401
+ const segment = segments[index];
402
+ if (SCHEMA_MAP_KEYWORDS.has(segment)) {
403
+ keywords.push(segment);
404
+ const map = schema[segment];
405
+ const member = segments[index + 1];
406
+ if (typeof map !== 'object' || map === null || Array.isArray(map) || member === undefined ||
407
+ !Object.prototype.hasOwnProperty.call(map, member))
408
+ return undefined;
409
+ current = map[member];
410
+ index += 2;
411
+ continue;
412
+ }
413
+ if (SCHEMA_ARRAY_KEYWORDS.has(segment)) {
414
+ keywords.push(segment);
415
+ const array = schema[segment];
416
+ const itemIndex = Number(segments[index + 1]);
417
+ if (!Array.isArray(array) || !Number.isInteger(itemIndex) || itemIndex < 0 || itemIndex >= array.length) {
418
+ return undefined;
419
+ }
420
+ current = array[itemIndex];
421
+ index += 2;
422
+ continue;
423
+ }
424
+ if (segment === 'items') {
425
+ const items = schema.items;
426
+ if (Array.isArray(items)) {
427
+ keywords.push('prefixItems');
428
+ const itemIndex = Number(segments[index + 1]);
429
+ if (!Number.isInteger(itemIndex) || itemIndex < 0 || itemIndex >= items.length)
430
+ return undefined;
431
+ current = items[itemIndex];
432
+ index += 2;
433
+ }
434
+ else {
435
+ keywords.push(segment);
436
+ if (!(segment in schema))
437
+ return undefined;
438
+ current = items;
439
+ index += 1;
440
+ }
441
+ continue;
442
+ }
443
+ if (SCHEMA_SINGLE_KEYWORDS.has(segment)) {
444
+ keywords.push(segment);
445
+ if (!(segment in schema))
446
+ return undefined;
447
+ current = schema[segment];
448
+ index += 1;
449
+ continue;
450
+ }
451
+ return undefined;
452
+ }
453
+ return keywords;
454
+ }
455
+ function dynamicAnchorUri(resourceId, anchor) {
456
+ const currentId = resourceId ?? '#';
457
+ return `${currentId.replace(/#.*$/, '')}#${anchor}`;
458
+ }
459
+ function dynamicReferenceAnchor(reference) {
460
+ const hash = reference.indexOf('#');
461
+ if (hash < 0)
462
+ return undefined;
463
+ let fragment;
464
+ try {
465
+ fragment = decodeURIComponent(reference.slice(hash + 1));
466
+ }
467
+ catch {
468
+ throw new TypeError(`Local dynamic reference projection cannot decode anchor in ${reference}.`);
469
+ }
470
+ return fragment === '' || fragment.startsWith('/') ? undefined : fragment;
471
+ }
39
472
  // json-schema-library's `draft` compile option uses "draft-2019-09"/"draft-2020-12" rather
40
473
  // than this package's "2019-09"/"2020-12" Dialect values.
41
474
  function toDraftOption(dialect) {
@@ -51,18 +484,34 @@ async function prepareSchema(schema, dialect, remotes) {
51
484
  // annotation unless the format-assertion vocabulary is declared, so asserting it
52
485
  // is a deviation rather than a stricter setting.
53
486
  const formatAssertion = dialect === 'draft-07' ? undefined : false;
54
- const root = compileSchema(schema, {
487
+ const root = compileSchema(materializeLocalPointerAliases(schema, dialect), {
488
+ drafts: DRAFTS,
55
489
  draft: toDraftOption(dialect),
56
490
  formatAssertion,
57
- remotes,
491
+ remotes: remotes?.map((remote) => materializeLocalPointerAliases(remote, dialect, true)),
58
492
  });
59
493
  fixRootReference(root, dialect);
60
494
  return root;
61
495
  }
62
- // json-schema-library reports data pointers as "#"-prefixed URI fragments (e.g. "#/age");
63
- // ValidationError.instancePointer expects an RFC 6901 JSON Pointer (e.g. "/age").
64
- function toInstancePointer(jslPointer) {
65
- return jslPointer === '#' ? '' : jslPointer.replace(/^#/, '');
496
+ function hasOneOf(value, visited = new WeakSet()) {
497
+ if (typeof value !== 'object' || value === null || visited.has(value))
498
+ return false;
499
+ visited.add(value);
500
+ let descriptors;
501
+ try {
502
+ descriptors = Object.getOwnPropertyDescriptors(value);
503
+ }
504
+ catch {
505
+ return true;
506
+ }
507
+ const properties = Object.values(descriptors);
508
+ if (properties.some((descriptor) => !('value' in descriptor)))
509
+ return true;
510
+ const oneOf = descriptors.oneOf;
511
+ if (oneOf && Array.isArray(oneOf.value) && oneOf.value.length > 0) {
512
+ return true;
513
+ }
514
+ return properties.some((descriptor) => hasOneOf(descriptor.value, visited));
66
515
  }
67
516
  // jsl error codes are kebab-case ("min-length-error"); ValidationError.keyword is expected
68
517
  // to be the JSON Schema keyword itself ("minLength"). Unrecognized codes fall back to a
@@ -125,16 +574,21 @@ function toKeyword(code) {
125
574
  const withoutSuffix = code.replace(/-(error|warning)$/, '');
126
575
  return withoutSuffix.replace(/-([a-z0-9])/g, (_, char) => char.toUpperCase());
127
576
  }
128
- function mapValidationError(error) {
577
+ function mapValidationError(error, resolve) {
129
578
  const code = typeof error.code === 'string' ? error.code : String(error.code);
130
- const basePointer = typeof error.data?.pointer === 'string' ? error.data.pointer : '#';
579
+ const data = (error.data ?? {});
580
+ const basePointer = typeof data.pointer === 'string' ? data.pointer : '#';
131
581
  // required-property-error reports the *parent* object's pointer with the missing property
132
582
  // name in data.key; consumers expect the error located at the missing property itself.
133
- const key = error.data?.key;
134
- const missingKey = code === 'required-property-error' && typeof key === 'string' ? key : undefined;
135
- const pointer = missingKey ? `${basePointer}/${missingKey}` : basePointer;
583
+ const missingKey = code === 'required-property-error' && typeof data.key === 'string' ? data.key : undefined;
584
+ // These two report the parent as data.value; the child's own key says which child failed.
585
+ const lastKey = code === 'no-additional-properties-error' && typeof data.property === 'string'
586
+ ? data.property
587
+ : code === 'additional-items-error' && data.key !== undefined
588
+ ? String(data.key)
589
+ : undefined;
136
590
  return {
137
- instancePointer: toInstancePointer(pointer),
591
+ instancePointer: resolve(basePointer, { code, value: data.value, missingKey, lastKey }),
138
592
  keyword: toKeyword(code),
139
593
  message: error.message,
140
594
  params: (error.data ?? {}),
@@ -142,9 +596,10 @@ function mapValidationError(error) {
142
596
  }
143
597
  function runValidation(prepared, data) {
144
598
  const result = prepared.validate(data);
599
+ const resolve = pointerResolver(data);
145
600
  return {
146
601
  valid: result.valid,
147
- errors: result.errors.map(mapValidationError),
602
+ errors: result.errors.map((error) => mapValidationError(error, resolve)),
148
603
  };
149
604
  }
150
605
  function runValidationAt(prepared, data, pointer) {
@@ -1 +1 @@
1
- {"version":3,"file":"adapter.js","sourceRoot":"","sources":["../src/adapter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"adapter.js","sourceRoot":"","sources":["../src/adapter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { type Draft } from 'json-schema-library';
2
+ export declare const DRAFTS: Draft[];
3
+ //# sourceMappingURL=bare-maps.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bare-maps.d.ts","sourceRoot":"","sources":["../src/bare-maps.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgE,KAAK,KAAK,EAAmB,MAAM,qBAAqB,CAAA;AAyC/H,eAAO,MAAM,MAAM,EAAE,KAAK,EAAwE,CAAA"}