@redocly/openapi-core 2.18.0 → 2.18.2

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.
@@ -1,8 +1,17 @@
1
+ import type { ErrorObject, Context as AjvContext } from '@redocly/ajv/dist/2020.js';
1
2
  import type { Location } from '../ref-utils.js';
2
- import type { ErrorObject } from '@redocly/ajv/dist/2020.js';
3
3
  import type { ResolveFn } from '../walk.js';
4
+ import type { SpecVersion } from '../oas-types.js';
5
+ import type { Oas3Schema, Oas3_1Schema } from '../typings/openapi.js';
4
6
  export declare function releaseAjvInstance(): void;
5
- export declare function validateJsonSchema(data: any, schema: any, schemaLoc: Location, instancePath: string, resolve: ResolveFn, allowAdditionalProperties: boolean): {
7
+ export declare function validateJsonSchema(data: unknown, schema: Oas3Schema | Oas3_1Schema, options: {
8
+ schemaLoc: Location;
9
+ instancePath: string;
10
+ resolve: ResolveFn;
11
+ allowAdditionalProperties: boolean;
12
+ ajvContext?: AjvContext;
13
+ specVersion: SpecVersion;
14
+ }): {
6
15
  valid: boolean;
7
16
  errors: (ErrorObject & {
8
17
  suggest?: string[];
@@ -1 +1 @@
1
- {"version":3,"file":"ajv.d.ts","sourceRoot":"","sources":["../../src/rules/ajv.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,KAAK,EAAoB,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAC/E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAI5C,wBAAgB,kBAAkB,SAEjC;AAgDD,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,GAAG,EACT,MAAM,EAAE,GAAG,EACX,SAAS,EAAE,QAAQ,EACnB,YAAY,EAAE,MAAM,EACpB,OAAO,EAAE,SAAS,EAClB,yBAAyB,EAAE,OAAO,GACjC;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,CAAC,WAAW,GAAG;QAAE,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC,EAAE,CAAA;CAAE,CA6CtE"}
1
+ {"version":3,"file":"ajv.d.ts","sourceRoot":"","sources":["../../src/rules/ajv.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EACV,WAAW,EAEX,OAAO,IAAI,UAAU,EAEtB,MAAM,2BAA2B,CAAC;AACnC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAOtE,wBAAgB,kBAAkB,SAGjC;AAuED,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,OAAO,EACb,MAAM,EAAE,UAAU,GAAG,YAAY,EACjC,OAAO,EAAE;IACP,SAAS,EAAE,QAAQ,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,SAAS,CAAC;IACnB,yBAAyB,EAAE,OAAO,CAAC;IACnC,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,WAAW,EAAE,WAAW,CAAC;CAC1B,GACA;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,CAAC,WAAW,GAAG;QAAE,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC,EAAE,CAAA;CAAE,CAkDtE"}
package/lib/rules/ajv.js CHANGED
@@ -1,14 +1,25 @@
1
1
  import addFormats from 'ajv-formats';
2
- import Ajv from '@redocly/ajv/dist/2020.js';
2
+ import Ajv2020 from '@redocly/ajv/dist/2020.js';
3
+ import AjvDraft4 from '@redocly/ajv/dist/draft4.js';
3
4
  import { escapePointerFragment } from '../ref-utils.js';
4
- let ajvInstance = null;
5
+ const ajvInstances = {};
5
6
  export function releaseAjvInstance() {
6
- ajvInstance = null;
7
+ ajvInstances['2020'] = undefined;
8
+ ajvInstances['draft4'] = undefined;
7
9
  }
8
- function getAjv(resolve) {
9
- if (!ajvInstance) {
10
- ajvInstance = new Ajv({
11
- schemaId: '$id',
10
+ function getSchemaIdKey(dialect) {
11
+ return dialect === 'draft4' ? 'id' : '$id';
12
+ }
13
+ function getDialectBySpecVersion(specVersion) {
14
+ if (specVersion === 'oas2' || specVersion === 'oas3_0')
15
+ return 'draft4';
16
+ return '2020';
17
+ }
18
+ function getAjv(resolve, dialect) {
19
+ if (!ajvInstances[dialect]) {
20
+ const schemaIdKey = getSchemaIdKey(dialect);
21
+ const options = {
22
+ schemaId: schemaIdKey,
12
23
  meta: true,
13
24
  allErrors: true,
14
25
  strictSchema: false,
@@ -17,42 +28,51 @@ function getAjv(resolve) {
17
28
  discriminator: true,
18
29
  allowUnionTypes: true,
19
30
  validateFormats: true,
31
+ passContext: true,
20
32
  loadSchemaSync(base, $ref, $id) {
21
33
  const decodedBase = decodeURI(base.split('#')[0]);
22
34
  const resolvedRef = resolve({ $ref }, decodedBase);
23
35
  if (!resolvedRef || !resolvedRef.location)
24
36
  return false;
25
37
  return {
26
- $id: encodeURI(resolvedRef.location.source.absoluteRef) + '#' + $id,
38
+ [schemaIdKey]: encodeURI(resolvedRef.location.source.absoluteRef) + '#' + $id,
27
39
  ...resolvedRef.node,
28
40
  };
29
41
  },
30
42
  logger: false,
31
- });
32
- addFormats(ajvInstance); // TODO: fix type mismatch
43
+ };
44
+ ajvInstances[dialect] = dialect === '2020' ? new Ajv2020(options) : new AjvDraft4(options);
45
+ addFormats(ajvInstances[dialect]);
33
46
  }
34
- return ajvInstance;
47
+ return ajvInstances[dialect];
35
48
  }
36
- function getAjvValidator(schema, loc, resolve, allowAdditionalProperties) {
37
- const ajv = getAjv(resolve);
49
+ function getAjvValidator(schema, loc, resolve, allowAdditionalProperties, dialect) {
50
+ const ajv = getAjv(resolve, dialect);
38
51
  const $id = encodeURI(loc.absolutePointer);
52
+ const schemaIdKey = getSchemaIdKey(dialect);
39
53
  if (!ajv.getSchema($id)) {
40
54
  ajv.setDefaultUnevaluatedProperties(allowAdditionalProperties);
41
- ajv.addSchema({ $id, ...schema }, $id);
55
+ ajv.addSchema({
56
+ [schemaIdKey]: $id,
57
+ ...schema,
58
+ }, $id);
42
59
  }
43
60
  return ajv.getSchema($id);
44
61
  }
45
- export function validateJsonSchema(data, schema, schemaLoc, instancePath, resolve, allowAdditionalProperties) {
46
- const validate = getAjvValidator(schema, schemaLoc, resolve, allowAdditionalProperties);
62
+ export function validateJsonSchema(data, schema, options) {
63
+ const { schemaLoc, instancePath, resolve, allowAdditionalProperties, ajvContext, specVersion } = options;
64
+ const dialect = getDialectBySpecVersion(specVersion);
65
+ const validate = getAjvValidator(schema, schemaLoc, resolve, allowAdditionalProperties, dialect);
47
66
  if (!validate)
48
67
  return { valid: true, errors: [] }; // unresolved refs are reported
49
- const valid = validate(data, {
68
+ const dataCxt = {
50
69
  instancePath,
51
70
  parentData: { fake: {} },
52
71
  parentDataProperty: 'fake',
53
72
  rootData: {},
54
73
  dynamicAnchors: {},
55
- });
74
+ };
75
+ const valid = validate.call(ajvContext ?? {}, data, dataCxt);
56
76
  return {
57
77
  valid: !!valid,
58
78
  errors: (validate.errors || []).map(beatifyErrorMessage),
@@ -1 +1 @@
1
- {"version":3,"file":"ajv.js","sourceRoot":"","sources":["../../src/rules/ajv.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ajv.js","sourceRoot":"","sources":["../../src/rules/ajv.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"no-invalid-parameter-examples.d.ts","sourceRoot":"","sources":["../../../src/rules/common/no-invalid-parameter-examples.ts"],"names":[],"mappings":"AAOA,eAAO,MAAM,0BAA0B,EAAE,GA8BxC,CAAC"}
1
+ {"version":3,"file":"no-invalid-parameter-examples.d.ts","sourceRoot":"","sources":["../../../src/rules/common/no-invalid-parameter-examples.ts"],"names":[],"mappings":"AAOA,eAAO,MAAM,0BAA0B,EAAE,GA4BxC,CAAC"}
@@ -6,12 +6,22 @@ export const NoInvalidParameterExamples = (opts) => {
6
6
  Parameter: {
7
7
  leave(parameter, ctx) {
8
8
  if (isDefined(parameter.example)) {
9
- validateExample(parameter.example, parameter.schema, ctx.location.child('example'), ctx, !!opts.allowAdditionalProperties);
9
+ validateExample(parameter.example, parameter.schema, {
10
+ location: ctx.location.child('example'),
11
+ ctx,
12
+ allowAdditionalProperties: !!opts.allowAdditionalProperties,
13
+ ajvContext: { apiContext: 'request' },
14
+ });
10
15
  }
11
16
  if (isPlainObject(parameter.examples)) {
12
17
  for (const [key, example] of Object.entries(parameter.examples)) {
13
18
  if (isPlainObject(example) && 'value' in example) {
14
- validateExample(example.value, parameter.schema, ctx.location.child(['examples', key]), ctx, !!opts.allowAdditionalProperties);
19
+ validateExample(example.value, parameter.schema, {
20
+ location: ctx.location.child(['examples', key]),
21
+ ctx,
22
+ allowAdditionalProperties: !!opts.allowAdditionalProperties,
23
+ ajvContext: { apiContext: 'request' },
24
+ });
15
25
  }
16
26
  }
17
27
  }
@@ -1 +1 @@
1
- {"version":3,"file":"no-invalid-parameter-examples.js","sourceRoot":"","sources":["../../../src/rules/common/no-invalid-parameter-examples.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAK/D,MAAM,CAAC,MAAM,0BAA0B,GAAQ,CAAC,IAAS,EAAE,EAAE;IAC3D,OAAO;QACL,SAAS,EAAE;YACT,KAAK,CAAC,SAAwB,EAAE,GAAgB;gBAC9C,IAAI,SAAS,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC;oBACjC,eAAe,CACb,SAAS,CAAC,OAAO,EACjB,SAAS,CAAC,MAAO,EACjB,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,EAC7B,GAAG,EACH,CAAC,CAAC,IAAI,CAAC,yBAAyB,CACjC,CAAC;gBACJ,CAAC;gBAED,IAAI,aAAa,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC;oBACtC,KAAK,MAAM,CAAC,GAAG,EAAE,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC;wBAChE,IAAI,aAAa,CAAC,OAAO,CAAC,IAAI,OAAO,IAAI,OAAO,EAAE,CAAC;4BACjD,eAAe,CACb,OAAO,CAAC,KAAK,EACb,SAAS,CAAC,MAAO,EACjB,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC,EACrC,GAAG,EACH,CAAC,CAAC,IAAI,CAAC,yBAAyB,CACjC,CAAC;wBACJ,CAAC;oBACH,CAAC;gBACH,CAAC;YACH,CAAC;SACF;KACF,CAAC;AACJ,CAAC,CAAC"}
1
+ {"version":3,"file":"no-invalid-parameter-examples.js","sourceRoot":"","sources":["../../../src/rules/common/no-invalid-parameter-examples.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAK/D,MAAM,CAAC,MAAM,0BAA0B,GAAQ,CAAC,IAAS,EAAE,EAAE;IAC3D,OAAO;QACL,SAAS,EAAE;YACT,KAAK,CAAC,SAAwB,EAAE,GAAgB;gBAC9C,IAAI,SAAS,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC;oBACjC,eAAe,CAAC,SAAS,CAAC,OAAO,EAAE,SAAS,CAAC,MAAO,EAAE;wBACpD,QAAQ,EAAE,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC;wBACvC,GAAG;wBACH,yBAAyB,EAAE,CAAC,CAAC,IAAI,CAAC,yBAAyB;wBAC3D,UAAU,EAAE,EAAE,UAAU,EAAE,SAAS,EAAE;qBACtC,CAAC,CAAC;gBACL,CAAC;gBAED,IAAI,aAAa,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC;oBACtC,KAAK,MAAM,CAAC,GAAG,EAAE,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC;wBAChE,IAAI,aAAa,CAAC,OAAO,CAAC,IAAI,OAAO,IAAI,OAAO,EAAE,CAAC;4BACjD,eAAe,CAAC,OAAO,CAAC,KAAK,EAAE,SAAS,CAAC,MAAO,EAAE;gCAChD,QAAQ,EAAE,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;gCAC/C,GAAG;gCACH,yBAAyB,EAAE,CAAC,CAAC,IAAI,CAAC,yBAAyB;gCAC3D,UAAU,EAAE,EAAE,UAAU,EAAE,SAAS,EAAE;6BACtC,CAAC,CAAC;wBACL,CAAC;oBACH,CAAC;gBACH,CAAC;YACH,CAAC;SACF;KACF,CAAC;AACJ,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"no-invalid-schema-examples.d.ts","sourceRoot":"","sources":["../../../src/rules/common/no-invalid-schema-examples.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAE5D,eAAO,MAAM,uBAAuB,EAAE,QAAQ,GAAG,QAuChD,CAAC"}
1
+ {"version":3,"file":"no-invalid-schema-examples.d.ts","sourceRoot":"","sources":["../../../src/rules/common/no-invalid-schema-examples.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAE5D,eAAO,MAAM,uBAAuB,EAAE,QAAQ,GAAG,QAmChD,CAAC"}
@@ -7,7 +7,11 @@ export const NoInvalidSchemaExamples = (opts) => {
7
7
  const examples = schema.examples;
8
8
  if (Array.isArray(examples)) {
9
9
  for (const example of examples) {
10
- validateExample(example, schema, ctx.location.child(['examples', examples.indexOf(example)]), ctx, !!opts.allowAdditionalProperties);
10
+ validateExample(example, schema, {
11
+ location: ctx.location.child(['examples', examples.indexOf(example)]),
12
+ ctx,
13
+ allowAdditionalProperties: !!opts.allowAdditionalProperties,
14
+ });
11
15
  }
12
16
  }
13
17
  if (isDefined(schema.example)) {
@@ -17,7 +21,11 @@ export const NoInvalidSchemaExamples = (opts) => {
17
21
  schema.type !== undefined) {
18
22
  return;
19
23
  }
20
- validateExample(schema.example, schema, ctx.location.child('example'), ctx, !!opts.allowAdditionalProperties);
24
+ validateExample(schema.example, schema, {
25
+ location: ctx.location.child('example'),
26
+ ctx,
27
+ allowAdditionalProperties: !!opts.allowAdditionalProperties,
28
+ });
21
29
  }
22
30
  },
23
31
  },
@@ -1 +1 @@
1
- {"version":3,"file":"no-invalid-schema-examples.js","sourceRoot":"","sources":["../../../src/rules/common/no-invalid-schema-examples.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAMtD,MAAM,CAAC,MAAM,uBAAuB,GAAwB,CAAC,IAAS,EAAE,EAAE;IACxE,OAAO;QACL,MAAM,EAAE;YACN,KAAK,CAAC,MAAiC,EAAE,GAAgB;gBACvD,MAAM,QAAQ,GAAI,MAAuB,CAAC,QAAQ,CAAC;gBAEnD,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;oBAC5B,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;wBAC/B,eAAe,CACb,OAAO,EACP,MAAM,EACN,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,UAAU,EAAE,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAC3D,GAAG,EACH,CAAC,CAAC,IAAI,CAAC,yBAAyB,CACjC,CAAC;oBACJ,CAAC;gBACH,CAAC;gBAED,IAAI,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;oBAC9B,mCAAmC;oBACnC,IACG,MAAqB,CAAC,QAAQ,KAAK,IAAI;wBACxC,MAAM,CAAC,OAAO,KAAK,IAAI;wBACvB,MAAM,CAAC,IAAI,KAAK,SAAS,EACzB,CAAC;wBACD,OAAO;oBACT,CAAC;oBAED,eAAe,CACb,MAAM,CAAC,OAAO,EACd,MAAM,EACN,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,EAC7B,GAAG,EACH,CAAC,CAAC,IAAI,CAAC,yBAAyB,CACjC,CAAC;gBACJ,CAAC;YACH,CAAC;SACF;KACF,CAAC;AACJ,CAAC,CAAC"}
1
+ {"version":3,"file":"no-invalid-schema-examples.js","sourceRoot":"","sources":["../../../src/rules/common/no-invalid-schema-examples.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAMtD,MAAM,CAAC,MAAM,uBAAuB,GAAwB,CAAC,IAAS,EAAE,EAAE;IACxE,OAAO;QACL,MAAM,EAAE;YACN,KAAK,CAAC,MAAiC,EAAE,GAAgB;gBACvD,MAAM,QAAQ,GAAI,MAAuB,CAAC,QAAQ,CAAC;gBAEnD,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;oBAC5B,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;wBAC/B,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE;4BAC/B,QAAQ,EAAE,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,UAAU,EAAE,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;4BACrE,GAAG;4BACH,yBAAyB,EAAE,CAAC,CAAC,IAAI,CAAC,yBAAyB;yBAC5D,CAAC,CAAC;oBACL,CAAC;gBACH,CAAC;gBAED,IAAI,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;oBAC9B,mCAAmC;oBACnC,IACG,MAAqB,CAAC,QAAQ,KAAK,IAAI;wBACxC,MAAM,CAAC,OAAO,KAAK,IAAI;wBACvB,MAAM,CAAC,IAAI,KAAK,SAAS,EACzB,CAAC;wBACD,OAAO;oBACT,CAAC;oBAED,eAAe,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE;wBACtC,QAAQ,EAAE,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC;wBACvC,GAAG;wBACH,yBAAyB,EAAE,CAAC,CAAC,IAAI,CAAC,yBAAyB;qBAC5D,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;SACF;KACF,CAAC;AACJ,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"no-invalid-media-type-examples.d.ts","sourceRoot":"","sources":["../../../src/rules/oas3/no-invalid-media-type-examples.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAKlD,eAAO,MAAM,oBAAoB,EAAE,QA8ClC,CAAC"}
1
+ {"version":3,"file":"no-invalid-media-type-examples.d.ts","sourceRoot":"","sources":["../../../src/rules/oas3/no-invalid-media-type-examples.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAMlD,eAAO,MAAM,oBAAoB,EAAE,QA+DlC,CAAC"}
@@ -3,34 +3,55 @@ import { validateExample } from '../utils.js';
3
3
  import { isDefined } from '../../utils/is-defined.js';
4
4
  import { isPlainObject } from '../../utils/is-plain-object.js';
5
5
  export const ValidContentExamples = (opts) => {
6
+ const skip = (mediaType) => {
7
+ return mediaType.schema === undefined;
8
+ };
9
+ const leave = (context) => (mediaType, ctx) => {
10
+ const { location, resolve } = ctx;
11
+ if (isDefined(mediaType.example)) {
12
+ resolveAndValidateExample(mediaType.example, location.child('example'));
13
+ }
14
+ else if (isPlainObject(mediaType.examples)) {
15
+ for (const exampleName of Object.keys(mediaType.examples)) {
16
+ resolveAndValidateExample(mediaType.examples[exampleName], location.child(['examples', exampleName, 'value']), true);
17
+ }
18
+ }
19
+ function resolveAndValidateExample(example, location, isMultiple) {
20
+ if (isRef(example)) {
21
+ const resolved = resolve(example);
22
+ if (!resolved.location)
23
+ return;
24
+ location = isMultiple ? resolved.location.child('value') : resolved.location;
25
+ example = resolved.node;
26
+ }
27
+ if (isMultiple && typeof example?.value === 'undefined') {
28
+ return;
29
+ }
30
+ validateExample(isMultiple ? example.value : example, mediaType.schema, {
31
+ location,
32
+ ctx,
33
+ allowAdditionalProperties: !!opts.allowAdditionalProperties,
34
+ ajvContext: context,
35
+ });
36
+ }
37
+ };
6
38
  return {
7
- MediaType: {
8
- skip(mediaType) {
9
- return mediaType.schema === undefined;
39
+ Parameter: {
40
+ MediaType: {
41
+ skip,
42
+ leave: leave({ apiContext: 'request' }),
10
43
  },
11
- leave(mediaType, ctx) {
12
- const { location, resolve } = ctx;
13
- if (isDefined(mediaType.example)) {
14
- resolveAndValidateExample(mediaType.example, location.child('example'));
15
- }
16
- else if (isPlainObject(mediaType.examples)) {
17
- for (const exampleName of Object.keys(mediaType.examples)) {
18
- resolveAndValidateExample(mediaType.examples[exampleName], location.child(['examples', exampleName, 'value']), true);
19
- }
20
- }
21
- function resolveAndValidateExample(example, location, isMultiple) {
22
- if (isRef(example)) {
23
- const resolved = resolve(example);
24
- if (!resolved.location)
25
- return;
26
- location = isMultiple ? resolved.location.child('value') : resolved.location;
27
- example = resolved.node;
28
- }
29
- if (isMultiple && typeof example?.value === 'undefined') {
30
- return;
31
- }
32
- validateExample(isMultiple ? example.value : example, mediaType.schema, location, ctx, !!opts.allowAdditionalProperties);
33
- }
44
+ },
45
+ RequestBody: {
46
+ MediaType: {
47
+ skip,
48
+ leave: leave({ apiContext: 'request' }),
49
+ },
50
+ },
51
+ Response: {
52
+ MediaType: {
53
+ skip,
54
+ leave: leave({ apiContext: 'response' }),
34
55
  },
35
56
  },
36
57
  };
@@ -1 +1 @@
1
- {"version":3,"file":"no-invalid-media-type-examples.js","sourceRoot":"","sources":["../../../src/rules/oas3/no-invalid-media-type-examples.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAO/D,MAAM,CAAC,MAAM,oBAAoB,GAAa,CAAC,IAAI,EAAE,EAAE;IACrD,OAAO;QACL,SAAS,EAAE;YACT,IAAI,CAAC,SAAS;gBACZ,OAAO,SAAS,CAAC,MAAM,KAAK,SAAS,CAAC;YACxC,CAAC;YACD,KAAK,CAAC,SAAS,EAAE,GAAgB;gBAC/B,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,GAAG,CAAC;gBAElC,IAAI,SAAS,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC;oBACjC,yBAAyB,CAAC,SAAS,CAAC,OAAO,EAAE,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC;gBAC1E,CAAC;qBAAM,IAAI,aAAa,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC;oBAC7C,KAAK,MAAM,WAAW,IAAI,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC;wBAC1D,yBAAyB,CACvB,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC,EAC/B,QAAQ,CAAC,KAAK,CAAC,CAAC,UAAU,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC,EAClD,IAAI,CACL,CAAC;oBACJ,CAAC;gBACH,CAAC;gBAED,SAAS,yBAAyB,CAChC,OAA0B,EAC1B,QAAkB,EAClB,UAAoB;oBAEpB,IAAI,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;wBACnB,MAAM,QAAQ,GAAG,OAAO,CAAc,OAAO,CAAC,CAAC;wBAC/C,IAAI,CAAC,QAAQ,CAAC,QAAQ;4BAAE,OAAO;wBAC/B,QAAQ,GAAG,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC;wBAC7E,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC;oBAC1B,CAAC;oBACD,IAAI,UAAU,IAAI,OAAO,OAAO,EAAE,KAAK,KAAK,WAAW,EAAE,CAAC;wBACxD,OAAO;oBACT,CAAC;oBACD,eAAe,CACb,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,EACpC,SAAS,CAAC,MAAO,EACjB,QAAQ,EACR,GAAG,EACH,CAAC,CAAC,IAAI,CAAC,yBAAyB,CACjC,CAAC;gBACJ,CAAC;YACH,CAAC;SACF;KACF,CAAC;AACJ,CAAC,CAAC"}
1
+ {"version":3,"file":"no-invalid-media-type-examples.js","sourceRoot":"","sources":["../../../src/rules/oas3/no-invalid-media-type-examples.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAQ/D,MAAM,CAAC,MAAM,oBAAoB,GAAa,CAAC,IAAI,EAAE,EAAE;IACrD,MAAM,IAAI,GAAG,CAAC,SAAwB,EAAE,EAAE;QACxC,OAAO,SAAS,CAAC,MAAM,KAAK,SAAS,CAAC;IACxC,CAAC,CAAC;IAEF,MAAM,KAAK,GAAG,CAAC,OAAmB,EAAE,EAAE,CAAC,CAAC,SAAwB,EAAE,GAAgB,EAAE,EAAE;QACpF,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,GAAG,CAAC;QAElC,IAAI,SAAS,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC;YACjC,yBAAyB,CAAC,SAAS,CAAC,OAAO,EAAE,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC;QAC1E,CAAC;aAAM,IAAI,aAAa,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC7C,KAAK,MAAM,WAAW,IAAI,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC1D,yBAAyB,CACvB,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC,EAC/B,QAAQ,CAAC,KAAK,CAAC,CAAC,UAAU,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC,EAClD,IAAI,CACL,CAAC;YACJ,CAAC;QACH,CAAC;QAED,SAAS,yBAAyB,CAChC,OAA0B,EAC1B,QAAkB,EAClB,UAAoB;YAEpB,IAAI,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;gBACnB,MAAM,QAAQ,GAAG,OAAO,CAAc,OAAO,CAAC,CAAC;gBAC/C,IAAI,CAAC,QAAQ,CAAC,QAAQ;oBAAE,OAAO;gBAC/B,QAAQ,GAAG,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC;gBAC7E,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC;YAC1B,CAAC;YACD,IAAI,UAAU,IAAI,OAAO,OAAO,EAAE,KAAK,KAAK,WAAW,EAAE,CAAC;gBACxD,OAAO;YACT,CAAC;YACD,eAAe,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,EAAE,SAAS,CAAC,MAAO,EAAE;gBACvE,QAAQ;gBACR,GAAG;gBACH,yBAAyB,EAAE,CAAC,CAAC,IAAI,CAAC,yBAAyB;gBAC3D,UAAU,EAAE,OAAO;aACpB,CAAC,CAAC;QACL,CAAC;IACH,CAAC,CAAC;IAEF,OAAO;QACL,SAAS,EAAE;YACT,SAAS,EAAE;gBACT,IAAI;gBACJ,KAAK,EAAE,KAAK,CAAC,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC;aACxC;SACF;QACD,WAAW,EAAE;YACX,SAAS,EAAE;gBACT,IAAI;gBACJ,KAAK,EAAE,KAAK,CAAC,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC;aACxC;SACF;QACD,QAAQ,EAAE;YACR,SAAS,EAAE;gBACT,IAAI;gBACJ,KAAK,EAAE,KAAK,CAAC,EAAE,UAAU,EAAE,UAAU,EAAE,CAAC;aACzC;SACF;KACF,CAAC;AACJ,CAAC,CAAC"}
@@ -1,4 +1,5 @@
1
1
  import { Location } from '../ref-utils.js';
2
+ import type { Context as AjvContext } from '@redocly/ajv/dist/2020.js';
2
3
  import type { Oas3Schema, Oas3Tag, Oas3_2Tag, Oas3_1Schema, Referenced } from '../typings/openapi.js';
3
4
  import type { Oas2Tag } from '../typings/swagger.js';
4
5
  import type { UserContext } from '../walk.js';
@@ -17,7 +18,12 @@ export declare function fieldNonEmpty(type: string, field: string): string;
17
18
  export declare function validateDefinedAndNonEmpty(fieldName: string, value: any, ctx: UserContext): void;
18
19
  export declare function validateOneOfDefinedAndNonEmpty(fieldNames: string[], value: any, ctx: UserContext): void;
19
20
  export declare function getSuggest(given: string, variants: string[]): string[];
20
- export declare function validateExample(example: any, schema: Referenced<Oas3Schema | Oas3_1Schema>, dataLoc: Location, { resolve, location, report }: UserContext, allowAdditionalProperties: boolean): void;
21
+ export declare function validateExample(example: any, schema: Referenced<Oas3Schema | Oas3_1Schema>, options: {
22
+ location: Location;
23
+ ctx: UserContext;
24
+ allowAdditionalProperties: boolean;
25
+ ajvContext?: AjvContext;
26
+ }): void;
21
27
  export declare function validateSchemaEnumType(schemaEnum: string[], propertyValue: string, propName: string, refLocation: Location | undefined, { report, location }: UserContext): void;
22
28
  export declare function validateResponseCodes(responseCodes: string[], codeRange: string, { report }: UserContext): void;
23
29
  export declare function getTagName(tag: Oas2Tag | Oas3Tag | Oas3_2Tag, ignoreCase: boolean): string;
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/rules/utils.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAI3C,OAAO,KAAK,EACV,UAAU,EACV,OAAO,EACP,SAAS,EACT,YAAY,EACZ,UAAU,EACX,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE9C,wBAAgB,SAAS,CAAC,KAAK,EAAE,OAAO,8HAUvC;AAED;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,GAAG,OAAO,CAiB9F;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAExE;AAED,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,CAIjF;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAEjE;AAED,wBAAgB,0BAA0B,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,WAAW,QAgBzF;AAED,wBAAgB,+BAA+B,CAC7C,UAAU,EAAE,MAAM,EAAE,EACpB,KAAK,EAAE,GAAG,EACV,GAAG,EAAE,WAAW,QAqBjB;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAkBtE;AAED,wBAAgB,eAAe,CAC7B,OAAO,EAAE,GAAG,EACZ,MAAM,EAAE,UAAU,CAAC,UAAU,GAAG,YAAY,CAAC,EAC7C,OAAO,EAAE,QAAQ,EACjB,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,WAAW,EAC1C,yBAAyB,EAAE,OAAO,QAoCnC;AAED,wBAAgB,sBAAsB,CACpC,UAAU,EAAE,MAAM,EAAE,EACpB,aAAa,EAAE,MAAM,EACrB,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,QAAQ,GAAG,SAAS,EACjC,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,WAAW,QAelC;AAED,wBAAgB,qBAAqB,CACnC,aAAa,EAAE,MAAM,EAAE,EACvB,SAAS,EAAE,MAAM,EACjB,EAAE,MAAM,EAAE,EAAE,WAAW,QAgBxB;AAED,wBAAgB,UAAU,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,GAAG,SAAS,EAAE,UAAU,EAAE,OAAO,GAAG,MAAM,CAE1F"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/rules/utils.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAI3C,OAAO,KAAK,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACvE,OAAO,KAAK,EACV,UAAU,EACV,OAAO,EACP,SAAS,EACT,YAAY,EACZ,UAAU,EACX,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE9C,wBAAgB,SAAS,CAAC,KAAK,EAAE,OAAO,8HAUvC;AAED;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,GAAG,OAAO,CAiB9F;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAExE;AAED,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,CAIjF;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAEjE;AAED,wBAAgB,0BAA0B,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,WAAW,QAgBzF;AAED,wBAAgB,+BAA+B,CAC7C,UAAU,EAAE,MAAM,EAAE,EACpB,KAAK,EAAE,GAAG,EACV,GAAG,EAAE,WAAW,QAqBjB;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAkBtE;AAED,wBAAgB,eAAe,CAC7B,OAAO,EAAE,GAAG,EACZ,MAAM,EAAE,UAAU,CAAC,UAAU,GAAG,YAAY,CAAC,EAC7C,OAAO,EAAE;IACP,QAAQ,EAAE,QAAQ,CAAC;IACnB,GAAG,EAAE,WAAW,CAAC;IACjB,yBAAyB,EAAE,OAAO,CAAC;IACnC,UAAU,CAAC,EAAE,UAAU,CAAC;CACzB,QAsCF;AAED,wBAAgB,sBAAsB,CACpC,UAAU,EAAE,MAAM,EAAE,EACpB,aAAa,EAAE,MAAM,EACrB,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,QAAQ,GAAG,SAAS,EACjC,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,WAAW,QAelC;AAED,wBAAgB,qBAAqB,CACnC,aAAa,EAAE,MAAM,EAAE,EACvB,SAAS,EAAE,MAAM,EACjB,EAAE,MAAM,EAAE,EAAE,WAAW,QAgBxB;AAED,wBAAgB,UAAU,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,GAAG,SAAS,EAAE,UAAU,EAAE,OAAO,GAAG,MAAM,CAE1F"}
@@ -103,18 +103,27 @@ export function getSuggest(given, variants) {
103
103
  // if (bestMatch.distance <= 4) return bestMatch.string;
104
104
  return distances.map((d) => d.variant);
105
105
  }
106
- export function validateExample(example, schema, dataLoc, { resolve, location, report }, allowAdditionalProperties) {
106
+ export function validateExample(example, schema, options) {
107
+ const { location, ctx, allowAdditionalProperties, ajvContext } = options;
108
+ const { resolve, location: parentLocation, report, specVersion } = ctx;
107
109
  try {
108
- const { valid, errors } = validateJsonSchema(example, schema, location.child('schema'), dataLoc.pointer, resolve, allowAdditionalProperties);
110
+ const { valid, errors } = validateJsonSchema(example, schema, {
111
+ schemaLoc: parentLocation.child('schema'),
112
+ instancePath: location.pointer,
113
+ resolve,
114
+ allowAdditionalProperties,
115
+ ajvContext,
116
+ specVersion,
117
+ });
109
118
  if (!valid) {
110
119
  for (const error of errors) {
111
120
  report({
112
121
  message: `Example value must conform to the schema: ${error.message}.`,
113
122
  location: {
114
- ...new Location(dataLoc.source, error.instancePath),
123
+ ...new Location(location.source, error.instancePath),
115
124
  reportOnKey: error.keyword === 'unevaluatedProperties' || error.keyword === 'additionalProperties',
116
125
  },
117
- from: location,
126
+ from: parentLocation,
118
127
  suggest: error.suggest,
119
128
  });
120
129
  }
@@ -126,8 +135,8 @@ export function validateExample(example, schema, dataLoc, { resolve, location, r
126
135
  }
127
136
  report({
128
137
  message: `Example validation errored: ${e.message}.`,
129
- location: location.child('schema'),
130
- from: location,
138
+ location: parentLocation.child('schema'),
139
+ from: parentLocation,
131
140
  });
132
141
  }
133
142
  }
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/rules/utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/rules/utils.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@redocly/openapi-core",
3
- "version": "2.18.0",
3
+ "version": "2.18.2",
4
4
  "description": "",
5
5
  "type": "module",
6
6
  "types": "lib/index.d.ts",
@@ -52,9 +52,9 @@
52
52
  "Roman Hotsiy <roman@redocly.com> (https://redocly.com/)"
53
53
  ],
54
54
  "dependencies": {
55
- "@redocly/ajv": "^8.17.2",
55
+ "@redocly/ajv": "^8.17.4",
56
56
  "@redocly/config": "^0.43.0",
57
- "ajv": "npm:@redocly/ajv@8.17.2",
57
+ "ajv": "npm:@redocly/ajv@8.17.4",
58
58
  "ajv-formats": "^3.0.1",
59
59
  "colorette": "^1.2.0",
60
60
  "js-levenshtein": "^1.1.6",