@stoplight/spectral-core 1.11.1 → 1.12.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.
Files changed (44) hide show
  1. package/dist/ruleset/formats.d.ts +4 -0
  2. package/dist/ruleset/{utils/formatsSet.js → formats.js} +4 -4
  3. package/dist/ruleset/formats.js.map +1 -0
  4. package/dist/ruleset/{rulesetFunction.d.ts → function.d.ts} +0 -0
  5. package/dist/ruleset/{rulesetFunction.js → function.js} +1 -1
  6. package/dist/ruleset/function.js.map +1 -0
  7. package/dist/ruleset/index.d.ts +5 -5
  8. package/dist/ruleset/index.js +7 -7
  9. package/dist/ruleset/index.js.map +1 -1
  10. package/dist/ruleset/mergers/rules.js +6 -3
  11. package/dist/ruleset/mergers/rules.js.map +1 -1
  12. package/dist/ruleset/meta/js-extensions.json +64 -0
  13. package/dist/ruleset/meta/json-extensions.json +79 -0
  14. package/dist/{meta → ruleset/meta}/rule.schema.json +1 -3
  15. package/dist/{meta → ruleset/meta}/ruleset.schema.json +10 -33
  16. package/dist/{meta → ruleset/meta}/shared.json +1 -6
  17. package/dist/ruleset/rule.d.ts +6 -6
  18. package/dist/ruleset/rule.js +2 -2
  19. package/dist/ruleset/rule.js.map +1 -1
  20. package/dist/ruleset/ruleset.d.ts +5 -8
  21. package/dist/ruleset/ruleset.js +9 -10
  22. package/dist/ruleset/ruleset.js.map +1 -1
  23. package/dist/ruleset/types.d.ts +12 -7
  24. package/dist/ruleset/validation/ajv.d.ts +2 -0
  25. package/dist/ruleset/validation/ajv.js +64 -0
  26. package/dist/ruleset/validation/ajv.js.map +1 -0
  27. package/dist/ruleset/{validation.d.ts → validation/assertions.d.ts} +2 -6
  28. package/dist/ruleset/validation/assertions.js +31 -0
  29. package/dist/ruleset/validation/assertions.js.map +1 -0
  30. package/dist/ruleset/validation/errors.d.ts +11 -0
  31. package/dist/ruleset/validation/errors.js +59 -0
  32. package/dist/ruleset/validation/errors.js.map +1 -0
  33. package/dist/ruleset/validation/index.d.ts +2 -0
  34. package/dist/ruleset/validation/index.js +8 -0
  35. package/dist/ruleset/validation/index.js.map +1 -0
  36. package/package.json +22 -8
  37. package/dist/ruleset/rulesetFunction.js.map +0 -1
  38. package/dist/ruleset/utils/formatsSet.d.ts +0 -4
  39. package/dist/ruleset/utils/formatsSet.js.map +0 -1
  40. package/dist/ruleset/utils/index.d.ts +0 -1
  41. package/dist/ruleset/utils/index.js +0 -5
  42. package/dist/ruleset/utils/index.js.map +0 -1
  43. package/dist/ruleset/validation.js +0 -115
  44. package/dist/ruleset/validation.js.map +0 -1
@@ -0,0 +1,4 @@
1
+ import type { Format } from './format';
2
+ export declare class Formats<T extends Format = Format> extends Set<T> {
3
+ toJSON(): string[];
4
+ }
@@ -1,14 +1,14 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.FormatsSet = void 0;
3
+ exports.Formats = void 0;
4
4
  function printFormat(format) {
5
5
  var _a;
6
6
  return (_a = format.displayName) !== null && _a !== void 0 ? _a : format.name;
7
7
  }
8
- class FormatsSet extends Set {
8
+ class Formats extends Set {
9
9
  toJSON() {
10
10
  return Array.from(this).map(printFormat);
11
11
  }
12
12
  }
13
- exports.FormatsSet = FormatsSet;
14
- //# sourceMappingURL=formatsSet.js.map
13
+ exports.Formats = Formats;
14
+ //# sourceMappingURL=formats.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"formats.js","sourceRoot":"","sources":["../../src/ruleset/formats.ts"],"names":[],"mappings":";;;AAEA,SAAS,WAAW,CAAC,MAAc;;IACjC,OAAO,MAAA,MAAM,CAAC,WAAW,mCAAI,MAAM,CAAC,IAAI,CAAC;AAC3C,CAAC;AAED,MAAa,OAAmC,SAAQ,GAAM;IACrD,MAAM;QACX,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IAC3C,CAAC;CACF;AAJD,0BAIC"}
@@ -96,4 +96,4 @@ function createRulesetFunction({ input, errorOnInvalidInput = false, options, },
96
96
  return wrappedFn;
97
97
  }
98
98
  exports.createRulesetFunction = createRulesetFunction;
99
- //# sourceMappingURL=rulesetFunction.js.map
99
+ //# sourceMappingURL=function.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"function.js","sourceRoot":"","sources":["../../src/ruleset/function.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
- export { assertValidRuleset, RulesetValidationError } from './validation';
2
- export { getDiagnosticSeverity } from './utils';
3
- export { createRulesetFunction, SchemaDefinition as RulesetFunctionSchemaDefinition } from './rulesetFunction';
1
+ export { assertValidRuleset, RulesetValidationError } from './validation/index';
2
+ export { getDiagnosticSeverity } from './utils/severity';
3
+ export { createRulesetFunction, SchemaDefinition as RulesetFunctionSchemaDefinition } from './function';
4
4
  export { Format } from './format';
5
5
  export { RulesetDefinition, RuleDefinition, ParserOptions, HumanReadableDiagnosticSeverity } from './types';
6
- export { Ruleset } from './ruleset';
7
- export { Rule } from './rule';
6
+ export { Ruleset, StringifiedRuleset } from './ruleset';
7
+ export { Rule, StringifiedRule } from './rule';
@@ -1,13 +1,13 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.Rule = exports.Ruleset = exports.createRulesetFunction = exports.getDiagnosticSeverity = exports.RulesetValidationError = exports.assertValidRuleset = void 0;
4
- var validation_1 = require("./validation");
5
- Object.defineProperty(exports, "assertValidRuleset", { enumerable: true, get: function () { return validation_1.assertValidRuleset; } });
6
- Object.defineProperty(exports, "RulesetValidationError", { enumerable: true, get: function () { return validation_1.RulesetValidationError; } });
7
- var utils_1 = require("./utils");
8
- Object.defineProperty(exports, "getDiagnosticSeverity", { enumerable: true, get: function () { return utils_1.getDiagnosticSeverity; } });
9
- var rulesetFunction_1 = require("./rulesetFunction");
10
- Object.defineProperty(exports, "createRulesetFunction", { enumerable: true, get: function () { return rulesetFunction_1.createRulesetFunction; } });
4
+ var index_1 = require("./validation/index");
5
+ Object.defineProperty(exports, "assertValidRuleset", { enumerable: true, get: function () { return index_1.assertValidRuleset; } });
6
+ Object.defineProperty(exports, "RulesetValidationError", { enumerable: true, get: function () { return index_1.RulesetValidationError; } });
7
+ var severity_1 = require("./utils/severity");
8
+ Object.defineProperty(exports, "getDiagnosticSeverity", { enumerable: true, get: function () { return severity_1.getDiagnosticSeverity; } });
9
+ var function_1 = require("./function");
10
+ Object.defineProperty(exports, "createRulesetFunction", { enumerable: true, get: function () { return function_1.createRulesetFunction; } });
11
11
  var ruleset_1 = require("./ruleset");
12
12
  Object.defineProperty(exports, "Ruleset", { enumerable: true, get: function () { return ruleset_1.Ruleset; } });
13
13
  var rule_1 = require("./rule");
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/ruleset/index.ts"],"names":[],"mappings":";;;AAAA,2CAA0E;AAAjE,gHAAA,kBAAkB,OAAA;AAAE,oHAAA,sBAAsB,OAAA;AACnD,iCAAgD;AAAvC,8GAAA,qBAAqB,OAAA;AAC9B,qDAA+G;AAAtG,wHAAA,qBAAqB,OAAA;AAG9B,qCAAoC;AAA3B,kGAAA,OAAO,OAAA;AAChB,+BAA8B;AAArB,4FAAA,IAAI,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/ruleset/index.ts"],"names":[],"mappings":";;;AAAA,4CAAgF;AAAvE,2GAAA,kBAAkB,OAAA;AAAE,+GAAA,sBAAsB,OAAA;AACnD,6CAAyD;AAAhD,iHAAA,qBAAqB,OAAA;AAC9B,uCAAwG;AAA/F,iHAAA,qBAAqB,OAAA;AAG9B,qCAAwD;AAA/C,kGAAA,OAAO,OAAA;AAChB,+BAA+C;AAAtC,4FAAA,IAAI,OAAA"}
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.mergeRule = void 0;
4
- const validation_1 = require("../validation");
4
+ const assertions_1 = require("../validation/assertions");
5
5
  const rule_1 = require("../rule");
6
6
  function assertExistingRule(maybeRule, name) {
7
7
  if (maybeRule === void 0) {
@@ -27,10 +27,13 @@ function mergeRule(existingRule, name, rule, ruleset) {
27
27
  break;
28
28
  case 'object':
29
29
  if (existingRule !== void 0) {
30
- Object.assign(existingRule, rule, { owner: existingRule.owner });
30
+ Object.assign(existingRule, rule, {
31
+ enabled: true,
32
+ owner: existingRule.owner,
33
+ });
31
34
  }
32
35
  else {
33
- (0, validation_1.assertValidRule)(rule);
36
+ (0, assertions_1.assertValidRule)(rule);
34
37
  return new rule_1.Rule(name, rule, ruleset);
35
38
  }
36
39
  break;
@@ -1 +1 @@
1
- {"version":3,"file":"rules.js","sourceRoot":"","sources":["../../../src/ruleset/mergers/rules.ts"],"names":[],"mappings":";;;AACA,8CAAgD;AAChD,kCAA+B;AAI/B,SAAS,kBAAkB,CAAC,SAAyB,EAAE,IAAY;IACjE,IAAI,SAAS,KAAK,KAAK,CAAC,EAAE;QACxB,MAAM,IAAI,cAAc,CAAC,qCAAqC,IAAI,GAAG,CAAC,CAAC;KACxE;AACH,CAAC;AAQD,SAAgB,SAAS,CACvB,YAA4B,EAC5B,IAAY,EACZ,IAAwB,EACxB,OAAgB;IAEhB,QAAQ,OAAO,IAAI,EAAE;QACnB,KAAK,SAAS;YACZ,kBAAkB,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;YACvC,YAAY,CAAC,OAAO,GAAG,IAAI,CAAC;YAC5B,MAAM;QACR,KAAK,QAAQ,CAAC;QACd,KAAK,QAAQ;YACX,kBAAkB,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;YACvC,YAAY,CAAC,QAAQ,GAAG,IAAI,CAAC;YAC7B,IAAI,IAAI,KAAK,KAAK,EAAE;gBAClB,YAAY,CAAC,OAAO,GAAG,KAAK,CAAC;aAC9B;iBAAM,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE;gBAChC,YAAY,CAAC,OAAO,GAAG,IAAI,CAAC;aAC7B;YACD,MAAM;QACR,KAAK,QAAQ;YACX,IAAI,YAAY,KAAK,KAAK,CAAC,EAAE;gBAC3B,MAAM,CAAC,MAAM,CAAC,YAAY,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,YAAY,CAAC,KAAK,EAAE,CAAC,CAAC;aAClE;iBAAM;gBACL,IAAA,4BAAe,EAAC,IAAI,CAAC,CAAC;gBACtB,OAAO,IAAI,WAAI,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;aACtC;YAED,MAAM;QACR;YACE,MAAM,IAAI,KAAK,CAAC,eAAe,CAAC,CAAC;KACpC;IAED,OAAO,YAAY,CAAC;AACtB,CAAC;AAnCD,8BAmCC"}
1
+ {"version":3,"file":"rules.js","sourceRoot":"","sources":["../../../src/ruleset/mergers/rules.ts"],"names":[],"mappings":";;;AACA,yDAA2D;AAC3D,kCAA+B;AAI/B,SAAS,kBAAkB,CAAC,SAAyB,EAAE,IAAY;IACjE,IAAI,SAAS,KAAK,KAAK,CAAC,EAAE;QACxB,MAAM,IAAI,cAAc,CAAC,qCAAqC,IAAI,GAAG,CAAC,CAAC;KACxE;AACH,CAAC;AAQD,SAAgB,SAAS,CACvB,YAA4B,EAC5B,IAAY,EACZ,IAAwB,EACxB,OAAgB;IAEhB,QAAQ,OAAO,IAAI,EAAE;QACnB,KAAK,SAAS;YACZ,kBAAkB,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;YACvC,YAAY,CAAC,OAAO,GAAG,IAAI,CAAC;YAC5B,MAAM;QACR,KAAK,QAAQ,CAAC;QACd,KAAK,QAAQ;YACX,kBAAkB,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;YACvC,YAAY,CAAC,QAAQ,GAAG,IAAI,CAAC;YAC7B,IAAI,IAAI,KAAK,KAAK,EAAE;gBAClB,YAAY,CAAC,OAAO,GAAG,KAAK,CAAC;aAC9B;iBAAM,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE;gBAChC,YAAY,CAAC,OAAO,GAAG,IAAI,CAAC;aAC7B;YACD,MAAM;QACR,KAAK,QAAQ;YACX,IAAI,YAAY,KAAK,KAAK,CAAC,EAAE;gBAC3B,MAAM,CAAC,MAAM,CAAC,YAAY,EAAE,IAAI,EAAE;oBAChC,OAAO,EAAE,IAAI;oBACb,KAAK,EAAE,YAAY,CAAC,KAAK;iBAC1B,CAAC,CAAC;aACJ;iBAAM;gBACL,IAAA,4BAAe,EAAC,IAAI,CAAC,CAAC;gBACtB,OAAO,IAAI,WAAI,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;aACtC;YAED,MAAM;QACR;YACE,MAAM,IAAI,KAAK,CAAC,eAAe,CAAC,CAAC;KACpC;IAED,OAAO,YAAY,CAAC;AACtB,CAAC;AAtCD,8BAsCC"}
@@ -0,0 +1,64 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "$id": "@stoplight/spectral-core/meta/extensions",
4
+ "$defs": {
5
+ "Extends": {
6
+ "$anchor": "extends",
7
+ "oneOf": [
8
+ {
9
+ "$id": "ruleset",
10
+ "$ref": "ruleset.schema#",
11
+ "errorMessage": "must be a valid ruleset"
12
+ },
13
+ {
14
+ "type": "array",
15
+ "items": {
16
+ "anyOf": [
17
+ {
18
+ "$ref": "ruleset"
19
+ },
20
+ {
21
+ "type": "array",
22
+ "minItems": 2,
23
+ "additionalItems": false,
24
+ "items": [
25
+ {
26
+ "$ref": "ruleset"
27
+ },
28
+ {
29
+ "type": "string",
30
+ "enum": ["off", "recommended", "all"],
31
+ "errorMessage": "allowed types are \"off\", \"recommended\" and \"all\""
32
+ }
33
+ ]
34
+ }
35
+ ]
36
+ }
37
+ }
38
+ ],
39
+ "errorMessage": "must be a valid ruleset"
40
+ },
41
+ "Format": {
42
+ "$anchor": "format",
43
+ "spectral-runtime": "format",
44
+ "errorMessage": "must be a valid format"
45
+ },
46
+ "Function": {
47
+ "$anchor": "function",
48
+ "spectral-runtime": "function",
49
+ "type": "object",
50
+ "properties": {
51
+ "function": true
52
+ },
53
+ "required": ["function"]
54
+ },
55
+ "Functions": {
56
+ "$anchor": "functions",
57
+ "not": {}
58
+ },
59
+ "FunctionsDir": {
60
+ "$anchor": "functionsDir",
61
+ "not": {}
62
+ }
63
+ }
64
+ }
@@ -0,0 +1,79 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "$id": "@stoplight/spectral-core/meta/extensions",
4
+ "$defs": {
5
+ "Extends": {
6
+ "$anchor": "extends",
7
+ "oneOf": [
8
+ {
9
+ "type": "string"
10
+ },
11
+ {
12
+ "type": "array",
13
+ "items": {
14
+ "oneOf": [
15
+ {
16
+ "type": "string"
17
+ },
18
+ {
19
+ "type": "array",
20
+ "minItems": 2,
21
+ "additionalItems": false,
22
+ "items": [
23
+ {
24
+ "type": "string"
25
+ },
26
+ {
27
+ "enum": ["all", "recommended", "off"],
28
+ "errorMessage": "allowed types are \"off\", \"recommended\" and \"all\""
29
+ }
30
+ ]
31
+ }
32
+ ]
33
+ }
34
+ }
35
+ ]
36
+ },
37
+ "Format": {
38
+ "$anchor": "format",
39
+ "enum": [
40
+ "oas2",
41
+ "oas3",
42
+ "oas3.0",
43
+ "oas3.1",
44
+ "asyncapi2",
45
+ "json-schema",
46
+ "json-schema-loose",
47
+ "json-schema-draft4",
48
+ "json-schema-draft6",
49
+ "json-schema-draft7",
50
+ "json-schema-draft-2019-09",
51
+ "json-schema-2019-09",
52
+ "json-schema-draft-2020-12",
53
+ "json-schema-2020-12"
54
+ ],
55
+ "errorMessage": "must be a valid format"
56
+ },
57
+ "Functions": {
58
+ "$anchor": "functions",
59
+ "type": "array",
60
+ "items": {
61
+ "type": "string"
62
+ }
63
+ },
64
+ "FunctionsDir": {
65
+ "$anchor": "functionsDir",
66
+ "type": "string"
67
+ },
68
+ "Function": {
69
+ "$anchor": "function",
70
+ "type": "object",
71
+ "properties": {
72
+ "function": {
73
+ "type": "string"
74
+ }
75
+ },
76
+ "required": ["function"]
77
+ }
78
+ }
79
+ }
@@ -13,9 +13,7 @@
13
13
  }
14
14
  },
15
15
  {
16
- "type": "object",
17
- "spectral-runtime": "ruleset-function",
18
- "required": ["function"]
16
+ "$ref": "extensions#function"
19
17
  }
20
18
  ]
21
19
  },
@@ -9,49 +9,26 @@
9
9
  "format": "url",
10
10
  "errorMessage": "must be a valid URL"
11
11
  },
12
- "description": { "type": "string" },
12
+ "description": {
13
+ "type": "string"
14
+ },
13
15
  "rules": {
14
16
  "type": "object",
15
17
  "additionalProperties": {
16
18
  "$ref": "rule.schema#"
17
19
  }
18
20
  },
21
+ "functions": {
22
+ "$ref": "extensions#functions"
23
+ },
24
+ "functionsDir": {
25
+ "$ref": "extensions#functionsDir"
26
+ },
19
27
  "formats": {
20
28
  "$ref": "shared#formats"
21
29
  },
22
30
  "extends": {
23
- "oneOf": [
24
- {
25
- "$ref": "#",
26
- "errorMessage": "must be a valid ruleset"
27
- },
28
- {
29
- "type": "array",
30
- "items": {
31
- "oneOf": [
32
- {
33
- "$ref": "#/properties/extends/oneOf/0"
34
- },
35
- {
36
- "type": "array",
37
- "minItems": 2,
38
- "additionalItems": false,
39
- "items": [
40
- {
41
- "$ref": "#"
42
- },
43
- {
44
- "type": "string",
45
- "enum": ["off", "recommended", "all"],
46
- "errorMessage": "allowed types are \"off\", \"recommended\" and \"all\""
47
- }
48
- ]
49
- }
50
- ]
51
- }
52
- }
53
- ],
54
- "errorMessage": "must be a valid ruleset"
31
+ "$ref": "extensions#extends"
55
32
  },
56
33
  "parserOptions": {
57
34
  "type": "object",
@@ -6,15 +6,10 @@
6
6
  "$anchor": "formats",
7
7
  "type": "array",
8
8
  "items": {
9
- "$ref": "#format"
9
+ "$ref": "extensions#format"
10
10
  },
11
11
  "errorMessage": "must be an array of formats"
12
12
  },
13
- "Format": {
14
- "$anchor": "format",
15
- "spectral-runtime": "spectral-format",
16
- "errorMessage": "must be a valid format"
17
- },
18
13
  "DiagnosticSeverity": {
19
14
  "enum": [-1, 0, 1, 2, 3]
20
15
  },
@@ -1,14 +1,14 @@
1
1
  import { DiagnosticSeverity, JsonPath, Optional } from '@stoplight/types';
2
2
  import { Ruleset } from './ruleset';
3
3
  import { Format } from './format';
4
- import type { HumanReadableDiagnosticSeverity, IRuleThen, RuleDefinition } from './types';
5
- import { FormatsSet } from './utils/formatsSet';
4
+ import type { HumanReadableDiagnosticSeverity, IRuleThen, RuleDefinition, Stringifable } from './types';
5
+ import { Formats } from './formats';
6
6
  export interface IRule {
7
7
  description: string | null;
8
8
  message: string | null;
9
9
  severity: DiagnosticSeverity;
10
10
  resolved: boolean;
11
- formats: Set<Format> | null;
11
+ formats: Formats | null;
12
12
  enabled: boolean;
13
13
  recommended: boolean;
14
14
  documentationUrl: string | null;
@@ -17,7 +17,7 @@ export interface IRule {
17
17
  }
18
18
  export declare type StringifiedRule = Omit<IRule, 'formats' | 'then'> & {
19
19
  name: string;
20
- formats: FormatsSet | null;
20
+ formats: string[] | null;
21
21
  then: (Pick<IRuleThen, 'field'> & {
22
22
  function: string;
23
23
  functionOptions?: string;
@@ -32,7 +32,7 @@ export declare class Rule implements IRule {
32
32
  description: string | null;
33
33
  message: string | null;
34
34
  resolved: boolean;
35
- formats: FormatsSet | null;
35
+ formats: Formats | null;
36
36
  recommended: boolean;
37
37
  documentationUrl: string | null;
38
38
  constructor(name: string, definition: RuleDefinition, owner: Ruleset);
@@ -52,5 +52,5 @@ export declare class Rule implements IRule {
52
52
  getGivenForFormats(formats: Set<Format> | null): string[];
53
53
  matchesFormat(formats: Set<Format> | null): boolean;
54
54
  clone(): Rule;
55
- toJSON(): StringifiedRule;
55
+ toJSON(): Stringifable<StringifiedRule>;
56
56
  }
@@ -9,7 +9,7 @@ const json_1 = require("@stoplight/json");
9
9
  const spectral_runtime_1 = require("@stoplight/spectral-runtime");
10
10
  const severity_1 = require("./utils/severity");
11
11
  const minimatch_1 = require("./utils/minimatch");
12
- const formatsSet_1 = require("./utils/formatsSet");
12
+ const formats_1 = require("./formats");
13
13
  const guards_1 = require("./utils/guards");
14
14
  const ALIAS = /^#([A-Za-z0-9_-]+)/;
15
15
  class Rule {
@@ -29,7 +29,7 @@ class Rule {
29
29
  this.documentationUrl = (_d = definition.documentationUrl) !== null && _d !== void 0 ? _d : null;
30
30
  this.severity = definition.severity;
31
31
  this.resolved = definition.resolved !== false;
32
- this.formats = 'formats' in definition ? new formatsSet_1.FormatsSet(definition.formats) : null;
32
+ this.formats = 'formats' in definition ? new formats_1.Formats(definition.formats) : null;
33
33
  this.then = definition.then;
34
34
  this.given = definition.given;
35
35
  }
@@ -1 +1 @@
1
- {"version":3,"file":"rule.js","sourceRoot":"","sources":["../../src/ruleset/rule.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"rule.js","sourceRoot":"","sources":["../../src/ruleset/rule.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { Rule, StringifiedRule } from './rule';
2
- import { FileRulesetSeverityDefinition, ParserOptions, RulesetAliasesDefinition, RulesetDefinition, RulesetOverridesDefinition } from './types';
3
- import { FormatsSet } from './utils/formatsSet';
2
+ import type { FileRulesetSeverityDefinition, ParserOptions, RulesetAliasesDefinition, RulesetDefinition, RulesetOverridesDefinition, Stringifable } from './types';
3
+ import { Formats } from './formats';
4
4
  declare const STACK_SYMBOL: unique symbol;
5
5
  declare type RulesetContext = {
6
6
  readonly severity?: FileRulesetSeverityDefinition;
@@ -12,7 +12,7 @@ export declare type StringifiedRuleset = {
12
12
  extends: StringifiedRuleset[] | null;
13
13
  source: string | null;
14
14
  aliases: RulesetAliasesDefinition | null;
15
- formats: FormatsSet | null;
15
+ formats: Formats | null;
16
16
  rules: Record<string, StringifiedRule>;
17
17
  overrides: RulesetOverridesDefinition | null;
18
18
  parserOptions: ParserOptions;
@@ -22,7 +22,7 @@ export declare class Ruleset {
22
22
  readonly maybeDefinition: unknown;
23
23
  readonly id: number;
24
24
  protected readonly extends: Ruleset[] | null;
25
- readonly formats: FormatsSet<import("./format").Format<void>>;
25
+ readonly formats: Formats<import("./format").Format<void>>;
26
26
  readonly overrides: RulesetOverridesDefinition | null;
27
27
  readonly aliases: RulesetAliasesDefinition | null;
28
28
  readonly hasComplexAliases: boolean;
@@ -33,9 +33,6 @@ export declare class Ruleset {
33
33
  fromSource(source: string | null): Ruleset;
34
34
  get parserOptions(): ParserOptions;
35
35
  static isDefaultRulesetFile(uri: string): boolean;
36
- toJSON(): Omit<StringifiedRuleset, 'extends' | 'rules'> & {
37
- extends: Ruleset['extends'];
38
- rules: Ruleset['rules'];
39
- };
36
+ toJSON(): Stringifable<StringifiedRuleset>;
40
37
  }
41
38
  export {};
@@ -4,13 +4,13 @@ Object.defineProperty(exports, "__esModule", { value: true });
4
4
  exports.Ruleset = void 0;
5
5
  const tslib_1 = require("tslib");
6
6
  const path_1 = require("@stoplight/path");
7
+ const json_1 = require("@stoplight/json");
7
8
  const minimatch_1 = require("./utils/minimatch");
8
- const validation_1 = require("./validation");
9
+ const index_1 = require("./validation/index");
9
10
  const rules_1 = require("./mergers/rules");
10
11
  const __1 = require("..");
11
12
  const rulesets_1 = require("./mergers/rulesets");
12
- const json_1 = require("@stoplight/json");
13
- const formatsSet_1 = require("./utils/formatsSet");
13
+ const formats_1 = require("./formats");
14
14
  const guards_1 = require("./utils/guards");
15
15
  const STACK_SYMBOL = Symbol('@stoplight/spectral/ruleset/#stack');
16
16
  const DEFAULT_RULESET_FILE = /^\.?spectral\.(ya?ml|json|m?js)$/;
@@ -21,16 +21,16 @@ class Ruleset {
21
21
  this.maybeDefinition = maybeDefinition;
22
22
  _Ruleset_instances.add(this);
23
23
  this.id = SEED++;
24
- this.formats = new formatsSet_1.FormatsSet();
24
+ this.formats = new formats_1.Formats();
25
25
  _Ruleset_context.set(this, void 0);
26
26
  let definition;
27
27
  if ((0, json_1.isPlainObject)(maybeDefinition) && 'extends' in maybeDefinition) {
28
28
  const { extends: _, ...def } = maybeDefinition;
29
- (0, validation_1.assertValidRuleset)({ extends: [], ...def });
29
+ (0, index_1.assertValidRuleset)({ extends: [], ...def });
30
30
  definition = maybeDefinition;
31
31
  }
32
32
  else {
33
- (0, validation_1.assertValidRuleset)(maybeDefinition);
33
+ (0, index_1.assertValidRuleset)(maybeDefinition);
34
34
  definition = maybeDefinition;
35
35
  }
36
36
  this.definition = definition;
@@ -49,7 +49,7 @@ class Ruleset {
49
49
  }
50
50
  hasComplexAliases = true;
51
51
  const targets = value.targets.map(target => ({
52
- formats: new formatsSet_1.FormatsSet(target.formats),
52
+ formats: new formats_1.Formats(target.formats),
53
53
  given: target.given,
54
54
  }));
55
55
  return [name, { ...value, targets }];
@@ -216,11 +216,10 @@ _Ruleset_context = new WeakMap(), _Ruleset_instances = new WeakSet(), _Ruleset_g
216
216
  }
217
217
  }
218
218
  else if (rule.owner !== this) {
219
- rule.formats =
220
- rule.owner.definition.formats === void 0 ? null : new formatsSet_1.FormatsSet(rule.owner.definition.formats);
219
+ rule.formats = rule.owner.definition.formats === void 0 ? null : new formats_1.Formats(rule.owner.definition.formats);
221
220
  }
222
221
  else if (this.definition.formats !== void 0) {
223
- rule.formats = new formatsSet_1.FormatsSet(this.definition.formats);
222
+ rule.formats = new formats_1.Formats(this.definition.formats);
224
223
  }
225
224
  if (this.definition.documentationUrl !== void 0 && rule.documentationUrl === null) {
226
225
  rule.documentationUrl = `${this.definition.documentationUrl}#${name}`;
@@ -1 +1 @@
1
- {"version":3,"file":"ruleset.js","sourceRoot":"","sources":["../../src/ruleset/ruleset.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ruleset.js","sourceRoot":"","sources":["../../src/ruleset/ruleset.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
- import { DiagnosticSeverity } from '@stoplight/types';
2
- import { Format } from './format';
3
- import { RulesetFunction, RulesetFunctionWithValidator } from '../types';
4
- import { FormatsSet } from './utils/formatsSet';
1
+ import type { DiagnosticSeverity } from '@stoplight/types';
2
+ import type { Format } from './format';
3
+ import type { RulesetFunction, RulesetFunctionWithValidator } from '../types';
4
+ import type { Formats } from './formats';
5
5
  export declare type HumanReadableDiagnosticSeverity = 'error' | 'warn' | 'info' | 'hint' | 'off';
6
6
  export declare type FileRuleSeverityDefinition = DiagnosticSeverity | HumanReadableDiagnosticSeverity | boolean;
7
7
  export declare type FileRulesetSeverityDefinition = 'off' | 'recommended' | 'all';
@@ -12,7 +12,7 @@ export declare type ParserOptions = {
12
12
  };
13
13
  export declare type RuleDefinition = {
14
14
  type?: 'validation' | 'style';
15
- formats?: Format[];
15
+ formats?: Formats | Format[];
16
16
  documentationUrl?: string;
17
17
  message?: string;
18
18
  description?: string;
@@ -43,7 +43,7 @@ export declare type RulesetOverridesDefinition = ReadonlyArray<{
43
43
  export declare type RulesetScopedAliasDefinition = {
44
44
  description?: string;
45
45
  targets: {
46
- formats: FormatsSet | Format[];
46
+ formats: Formats | Format[];
47
47
  given: string[];
48
48
  }[];
49
49
  };
@@ -51,7 +51,7 @@ export declare type RulesetAliasesDefinition = Record<string, string[] | Ruleset
51
51
  export declare type RulesetDefinition = Readonly<{
52
52
  documentationUrl?: string;
53
53
  description?: string;
54
- formats?: FormatsSet | Format[];
54
+ formats?: Formats | Format[];
55
55
  parserOptions?: Partial<ParserOptions>;
56
56
  overrides?: RulesetOverridesDefinition;
57
57
  aliases?: RulesetAliasesDefinition;
@@ -65,3 +65,8 @@ export declare type RulesetDefinition = Readonly<{
65
65
  extends: RulesetExtendsDefinition;
66
66
  rules: Record<string, Readonly<FileRuleDefinition>>;
67
67
  }>>;
68
+ export declare type Stringifable<T> = T extends object ? {
69
+ [P in keyof T]: Stringifable<T[P]> | {
70
+ toJSON?(): Stringifable<T[P]>;
71
+ };
72
+ } : T;
@@ -0,0 +1,2 @@
1
+ import { ValidateFunction } from 'ajv';
2
+ export declare function createValidator(format: 'js' | 'json'): ValidateFunction;
@@ -0,0 +1,64 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createValidator = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const ajv_1 = (0, tslib_1.__importStar)(require("ajv"));
6
+ const ajv_formats_1 = (0, tslib_1.__importDefault)(require("ajv-formats"));
7
+ const ajv_errors_1 = (0, tslib_1.__importDefault)(require("ajv-errors"));
8
+ const ruleSchema = (0, tslib_1.__importStar)(require("../meta/rule.schema.json"));
9
+ const shared = (0, tslib_1.__importStar)(require("../meta/shared.json"));
10
+ const rulesetSchema = (0, tslib_1.__importStar)(require("../meta/ruleset.schema.json"));
11
+ const jsExtensions = (0, tslib_1.__importStar)(require("../meta/js-extensions.json"));
12
+ const jsonExtensions = (0, tslib_1.__importStar)(require("../meta/json-extensions.json"));
13
+ const message = (0, ajv_1._) `'spectral-message'`;
14
+ const validators = {
15
+ js: null,
16
+ json: null,
17
+ };
18
+ function createValidator(format) {
19
+ const existingValidator = validators[format];
20
+ if (existingValidator !== null) {
21
+ return existingValidator;
22
+ }
23
+ const ajv = new ajv_1.default({
24
+ allErrors: true,
25
+ strict: true,
26
+ strictRequired: false,
27
+ keywords: ['$anchor'],
28
+ schemas: [ruleSchema, shared],
29
+ });
30
+ (0, ajv_formats_1.default)(ajv);
31
+ (0, ajv_errors_1.default)(ajv);
32
+ ajv.addKeyword({
33
+ keyword: 'spectral-runtime',
34
+ schemaType: 'string',
35
+ error: {
36
+ message(ctx) {
37
+ return (0, ajv_1._) `${ctx.data}[Symbol.for(${message})]`;
38
+ },
39
+ },
40
+ code(cxt) {
41
+ const { data } = cxt;
42
+ switch (cxt.schema) {
43
+ case 'format':
44
+ cxt.fail((0, ajv_1._) `typeof ${data} !== "function"`);
45
+ break;
46
+ case 'ruleset-function':
47
+ cxt.pass((0, ajv_1._) `typeof ${data}.function === "function"`);
48
+ cxt.pass((0, ajv_1._) `(() => { try { ${data}.function.validator && ${data}.function.validator('functionOptions' in ${data} ? ${data} : null); } catch (e) { ${data}[${message}] = e.message } })()`);
49
+ break;
50
+ }
51
+ },
52
+ });
53
+ if (format === 'js') {
54
+ ajv.addSchema(jsExtensions);
55
+ }
56
+ else {
57
+ ajv.addSchema(jsonExtensions);
58
+ }
59
+ const validator = ajv.compile(rulesetSchema);
60
+ validators[format] = validator;
61
+ return validator;
62
+ }
63
+ exports.createValidator = createValidator;
64
+ //# sourceMappingURL=ajv.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ajv.js","sourceRoot":"","sources":["../../../src/ruleset/validation/ajv.ts"],"names":[],"mappings":";;;;AAAA,wDAA+C;AAC/C,2EAAqC;AACrC,yEAAmC;AACnC,kFAAuD;AACvD,yEAA8C;AAC9C,wFAA6D;AAC7D,sFAA2D;AAC3D,0FAA+D;AAE/D,MAAM,OAAO,GAAG,IAAA,OAAC,EAAA,oBAAoB,CAAC;AAEtC,MAAM,UAAU,GAAwD;IACtE,EAAE,EAAE,IAAI;IACR,IAAI,EAAE,IAAI;CACX,CAAC;AAEF,SAAgB,eAAe,CAAC,MAAqB;IACnD,MAAM,iBAAiB,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC;IAC7C,IAAI,iBAAiB,KAAK,IAAI,EAAE;QAC9B,OAAO,iBAAiB,CAAC;KAC1B;IAED,MAAM,GAAG,GAAG,IAAI,aAAG,CAAC;QAClB,SAAS,EAAE,IAAI;QACf,MAAM,EAAE,IAAI;QACZ,cAAc,EAAE,KAAK;QACrB,QAAQ,EAAE,CAAC,SAAS,CAAC;QACrB,OAAO,EAAE,CAAC,UAAU,EAAE,MAAM,CAAC;KAC9B,CAAC,CAAC;IACH,IAAA,qBAAU,EAAC,GAAG,CAAC,CAAC;IAChB,IAAA,oBAAS,EAAC,GAAG,CAAC,CAAC;IACf,GAAG,CAAC,UAAU,CAAC;QACb,OAAO,EAAE,kBAAkB;QAC3B,UAAU,EAAE,QAAQ;QACpB,KAAK,EAAE;YACL,OAAO,CAAC,GAAG;gBACT,OAAO,IAAA,OAAC,EAAA,GAAG,GAAG,CAAC,IAAI,eAAe,OAAO,IAAI,CAAC;YAChD,CAAC;SACF;QACD,IAAI,CAAC,GAAG;YACN,MAAM,EAAE,IAAI,EAAE,GAAG,GAAG,CAAC;YAErB,QAAQ,GAAG,CAAC,MAAiB,EAAE;gBAC7B,KAAK,QAAQ;oBACX,GAAG,CAAC,IAAI,CAAC,IAAA,OAAC,EAAA,UAAU,IAAI,iBAAiB,CAAC,CAAC;oBAC3C,MAAM;gBACR,KAAK,kBAAkB;oBACrB,GAAG,CAAC,IAAI,CAAC,IAAA,OAAC,EAAA,UAAU,IAAI,0BAA0B,CAAC,CAAC;oBACpD,GAAG,CAAC,IAAI,CACN,IAAA,OAAC,EAAA,kBAAkB,IAAI,0BAA0B,IAAI,4CAA4C,IAAI,MAAM,IAAI,2BAA2B,IAAI,IAAI,OAAO,sBAAsB,CAChL,CAAC;oBACF,MAAM;aACT;QACH,CAAC;KACF,CAAC,CAAC;IAEH,IAAI,MAAM,KAAK,IAAI,EAAE;QACnB,GAAG,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;KAC7B;SAAM;QACL,GAAG,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;KAC/B;IAED,MAAM,SAAS,GAAG,GAAG,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;IAC7C,UAAU,CAAC,MAAM,CAAC,GAAG,SAAS,CAAC;IAC/B,OAAO,SAAS,CAAC;AACnB,CAAC;AAjDD,0CAiDC"}
@@ -1,8 +1,4 @@
1
- import type { FileRuleDefinition, RuleDefinition, RulesetDefinition } from './types';
2
- export declare class RulesetValidationError extends Error {
3
- readonly message: string;
4
- constructor(message: string);
5
- }
6
- export declare function assertValidRuleset(ruleset: unknown): asserts ruleset is RulesetDefinition;
1
+ import type { FileRuleDefinition, RuleDefinition, RulesetDefinition } from '../types';
2
+ export declare function assertValidRuleset(ruleset: unknown, format?: 'js' | 'json'): asserts ruleset is RulesetDefinition;
7
3
  export declare function isValidRule(rule: FileRuleDefinition): rule is RuleDefinition;
8
4
  export declare function assertValidRule(rule: FileRuleDefinition): asserts rule is RuleDefinition;
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.assertValidRule = exports.isValidRule = exports.assertValidRuleset = void 0;
4
+ const json_1 = require("@stoplight/json");
5
+ const ajv_1 = require("./ajv");
6
+ const errors_1 = require("./errors");
7
+ function assertValidRuleset(ruleset, format = 'js') {
8
+ var _a;
9
+ if (!(0, json_1.isPlainObject)(ruleset)) {
10
+ throw new Error('Provided ruleset is not an object');
11
+ }
12
+ if (!('rules' in ruleset) && !('extends' in ruleset) && !('overrides' in ruleset)) {
13
+ throw new errors_1.RulesetValidationError('Ruleset must have rules or extends or overrides defined');
14
+ }
15
+ const validate = (0, ajv_1.createValidator)(format);
16
+ if (!validate(ruleset)) {
17
+ throw new errors_1.RulesetAjvValidationError(ruleset, (_a = validate.errors) !== null && _a !== void 0 ? _a : []);
18
+ }
19
+ }
20
+ exports.assertValidRuleset = assertValidRuleset;
21
+ function isValidRule(rule) {
22
+ return typeof rule === 'object' && rule !== null && !Array.isArray(rule) && ('given' in rule || 'then' in rule);
23
+ }
24
+ exports.isValidRule = isValidRule;
25
+ function assertValidRule(rule) {
26
+ if (!isValidRule(rule)) {
27
+ throw new TypeError('Invalid rule');
28
+ }
29
+ }
30
+ exports.assertValidRule = assertValidRule;
31
+ //# sourceMappingURL=assertions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"assertions.js","sourceRoot":"","sources":["../../../src/ruleset/validation/assertions.ts"],"names":[],"mappings":";;;AAAA,0CAAgD;AAChD,+BAAwC;AACxC,qCAA6E;AAG7E,SAAgB,kBAAkB,CAChC,OAAgB,EAChB,SAAwB,IAAI;;IAE5B,IAAI,CAAC,IAAA,oBAAa,EAAC,OAAO,CAAC,EAAE;QAC3B,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;KACtD;IAED,IAAI,CAAC,CAAC,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,WAAW,IAAI,OAAO,CAAC,EAAE;QACjF,MAAM,IAAI,+BAAsB,CAAC,yDAAyD,CAAC,CAAC;KAC7F;IAED,MAAM,QAAQ,GAAG,IAAA,qBAAe,EAAC,MAAM,CAAC,CAAC;IAEzC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE;QACtB,MAAM,IAAI,kCAAyB,CAAC,OAAO,EAAE,MAAA,QAAQ,CAAC,MAAM,mCAAI,EAAE,CAAC,CAAC;KACrE;AACH,CAAC;AAjBD,gDAiBC;AAED,SAAgB,WAAW,CAAC,IAAwB;IAClD,OAAO,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,IAAI,MAAM,IAAI,IAAI,CAAC,CAAC;AAClH,CAAC;AAFD,kCAEC;AAED,SAAgB,eAAe,CAAC,IAAwB;IACtD,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE;QACtB,MAAM,IAAI,SAAS,CAAC,cAAc,CAAC,CAAC;KACrC;AACH,CAAC;AAJD,0CAIC"}
@@ -0,0 +1,11 @@
1
+ import { ErrorObject } from 'ajv';
2
+ export declare class RulesetValidationError extends Error {
3
+ readonly message: string;
4
+ constructor(message: string);
5
+ }
6
+ export declare class RulesetAjvValidationError extends RulesetValidationError {
7
+ ruleset: Record<string, unknown>;
8
+ errors: ErrorObject[];
9
+ constructor(ruleset: Record<string, unknown>, errors: ErrorObject[]);
10
+ static serializeAjvErrors(ruleset: Record<string, unknown>, errors: ErrorObject[]): string;
11
+ }
@@ -0,0 +1,59 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.RulesetAjvValidationError = exports.RulesetValidationError = void 0;
4
+ const spectral_runtime_1 = require("@stoplight/spectral-runtime");
5
+ class RulesetValidationError extends Error {
6
+ constructor(message) {
7
+ super(message);
8
+ this.message = message;
9
+ }
10
+ }
11
+ exports.RulesetValidationError = RulesetValidationError;
12
+ const RULE_INSTANCE_PATH = /^\/rules\/[^/]+/;
13
+ const GENERIC_INSTANCE_PATH = /^\/(?:aliases|extends|overrides(?:\/\d+\/extends)?)/;
14
+ class RulesetAjvValidationError extends RulesetValidationError {
15
+ constructor(ruleset, errors) {
16
+ super(RulesetAjvValidationError.serializeAjvErrors(ruleset, errors));
17
+ this.ruleset = ruleset;
18
+ this.errors = errors;
19
+ }
20
+ static serializeAjvErrors(ruleset, errors) {
21
+ const sortedErrors = [...errors]
22
+ .sort((errorA, errorB) => {
23
+ const diff = errorA.instancePath.length - errorB.instancePath.length;
24
+ return diff === 0 ? (errorA.keyword === 'errorMessage' && errorB.keyword !== 'errorMessage' ? -1 : 0) : diff;
25
+ })
26
+ .filter((error, i, sortedErrors) => i === 0 || sortedErrors[i - 1].instancePath !== error.instancePath);
27
+ const filteredErrors = [];
28
+ l: for (let i = 0; i < sortedErrors.length; i++) {
29
+ const error = sortedErrors[i];
30
+ const prevError = i === 0 ? null : sortedErrors[i - 1];
31
+ if (GENERIC_INSTANCE_PATH.test(error.instancePath)) {
32
+ let x = 1;
33
+ while (i + x < sortedErrors.length) {
34
+ if (sortedErrors[i + x].instancePath.startsWith(error.instancePath) ||
35
+ !GENERIC_INSTANCE_PATH.test(sortedErrors[i + x].instancePath)) {
36
+ continue l;
37
+ }
38
+ x++;
39
+ }
40
+ }
41
+ else if (prevError === null) {
42
+ filteredErrors.push(error);
43
+ continue;
44
+ }
45
+ else {
46
+ const match = RULE_INSTANCE_PATH.exec(error.instancePath);
47
+ if (match !== null && match[0] !== match.input && match[0] === prevError.instancePath) {
48
+ filteredErrors.pop();
49
+ }
50
+ }
51
+ filteredErrors.push(error);
52
+ }
53
+ return filteredErrors
54
+ .map(({ message, instancePath }) => `Error at ${(0, spectral_runtime_1.printPath)(instancePath.slice(1).split('/'), spectral_runtime_1.PrintStyle.Pointer)}: ${message !== null && message !== void 0 ? message : ''}`)
55
+ .join('\n');
56
+ }
57
+ }
58
+ exports.RulesetAjvValidationError = RulesetAjvValidationError;
59
+ //# sourceMappingURL=errors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../../src/ruleset/validation/errors.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export { RulesetValidationError } from './errors';
2
+ export { assertValidRuleset } from './assertions';
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.assertValidRuleset = exports.RulesetValidationError = void 0;
4
+ var errors_1 = require("./errors");
5
+ Object.defineProperty(exports, "RulesetValidationError", { enumerable: true, get: function () { return errors_1.RulesetValidationError; } });
6
+ var assertions_1 = require("./assertions");
7
+ Object.defineProperty(exports, "assertValidRuleset", { enumerable: true, get: function () { return assertions_1.assertValidRuleset; } });
8
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/ruleset/validation/index.ts"],"names":[],"mappings":";;;AAAA,mCAAkD;AAAzC,gHAAA,sBAAsB,OAAA;AAC/B,2CAAkD;AAAzC,gHAAA,kBAAkB,OAAA"}
package/package.json CHANGED
@@ -1,8 +1,6 @@
1
1
  {
2
2
  "name": "@stoplight/spectral-core",
3
- "version": "1.11.1",
4
- "main": "dist/index.js",
5
- "types": "dist/index.d.ts",
3
+ "version": "1.12.2",
6
4
  "sideEffects": false,
7
5
  "homepage": "https://github.com/stoplightio/spectral",
8
6
  "bugs": "https://github.com/stoplightio/spectral/issues",
@@ -15,6 +13,23 @@
15
13
  "files": [
16
14
  "dist"
17
15
  ],
16
+ "type": "commonjs",
17
+ "main": "dist/index.js",
18
+ "types": "dist/index.d.ts",
19
+ "exports": {
20
+ ".": {
21
+ "types": "./dist/index.d.ts",
22
+ "default": "./dist/index.js"
23
+ },
24
+ "./ruleset": {
25
+ "types": "./dist/ruleset/index.d.ts",
26
+ "default": "./dist/ruleset/index.js"
27
+ },
28
+ "./ruleset/validation": {
29
+ "types": "./dist/ruleset/validation/index.d.ts",
30
+ "default": "./dist/ruleset/validation/index.js"
31
+ }
32
+ },
18
33
  "engines": {
19
34
  "node": "^12.20 || >= 14.13"
20
35
  },
@@ -23,23 +38,23 @@
23
38
  },
24
39
  "dependencies": {
25
40
  "@stoplight/better-ajv-errors": "1.0.1",
26
- "@stoplight/json": "~3.17.1",
41
+ "@stoplight/json": "~3.18.1",
27
42
  "@stoplight/lifecycle": "2.3.2",
28
43
  "@stoplight/path": "1.3.2",
29
44
  "@stoplight/spectral-parsers": "^1.0.0",
30
45
  "@stoplight/spectral-ref-resolver": "^1.0.0",
31
46
  "@stoplight/spectral-runtime": "^1.0.0",
32
- "@stoplight/types": "12.3.0",
47
+ "@stoplight/types": "13.1.0",
48
+ "@types/json-schema": "^7.0.7",
33
49
  "ajv": "^8.6.0",
34
50
  "ajv-errors": "~3.0.0",
35
51
  "ajv-formats": "~2.1.0",
36
52
  "blueimp-md5": "2.18.0",
37
- "json-schema": "0.4.0",
38
53
  "jsonpath-plus": "6.0.1",
39
54
  "lodash": "~4.17.21",
40
55
  "lodash.topath": "^4.5.2",
41
56
  "minimatch": "3.0.4",
42
- "nimma": "0.2.0",
57
+ "nimma": "0.2.1",
43
58
  "pony-cause": "^1.0.0",
44
59
  "simple-eval": "1.0.0",
45
60
  "tslib": "^2.3.0"
@@ -49,7 +64,6 @@
49
64
  "@stoplight/spectral-functions": "*",
50
65
  "@stoplight/spectral-parsers": "*",
51
66
  "@stoplight/yaml": "^4.2.2",
52
- "@types/json-schema": "^7.0.7",
53
67
  "@types/minimatch": "^3.0.5",
54
68
  "@types/treeify": "^1.0.0",
55
69
  "nock": "^13.1.0",
@@ -1 +0,0 @@
1
- {"version":3,"file":"rulesetFunction.js","sourceRoot":"","sources":["../../src/ruleset/rulesetFunction.ts"],"names":[],"mappings":";;;;AAAA,2DAAuC;AACvC,2EAAqC;AACrC,yEAAmC;AAMnC,kEAAgF;AAEhF,6CAAsD;AAGtD,MAAM,GAAG,GAAG,IAAI,aAAG,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;AACxG,IAAA,oBAAS,EAAC,GAAG,CAAC,CAAC;AACf,IAAA,qBAAU,EAAC,GAAG,CAAC,CAAC;AAEhB,MAAa,8BAA+B,SAAQ,mCAAsB;IACxE,YAAY,EAAU,EAAE,MAAqB;QAC3C,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;YAClC,QAAQ,KAAK,CAAC,OAAO,EAAE;gBACrB,KAAK,MAAM,CAAC,CAAC;oBACX,MAAM,IAAI,GAAG,IAAA,4BAAS,EAAC,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,6BAAU,CAAC,GAAG,CAAC,CAAC;oBAC/E,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;oBAE3G,OAAO,IAAI,EAAE,uBAAuB,IAAI,8CAA8C,MAAM,EAAE,CAAC;iBAChG;gBAED,KAAK,UAAU,CAAC,CAAC;oBACf,MAAM,eAAe,GAAI,KAAuB,CAAC,MAAM,CAAC,eAAe,CAAC;oBACxE,MAAM,mBAAmB,GACvB,KAAK,CAAC,YAAY,KAAK,EAAE;wBACvB,CAAC,CAAC,eAAe;wBACjB,CAAC,CAAC,IAAA,4BAAS,EAAC,CAAC,GAAG,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,eAAe,CAAC,EAAE,6BAAU,CAAC,GAAG,CAAC,CAAC;oBAE9F,OAAO,IAAI,EAAE,0BAA0B,mBAAmB,UAAU,CAAC;iBACtE;gBAED,KAAK,sBAAsB,CAAC,CAAC;oBAC3B,MAAM,kBAAkB,GAAI,KAAmC,CAAC,MAAM,CAAC,kBAAkB,CAAC;oBAC1F,MAAM,sBAAsB,GAC1B,KAAK,CAAC,YAAY,KAAK,EAAE;wBACvB,CAAC,CAAC,kBAAkB;wBACpB,CAAC,CAAC,IAAA,4BAAS,EAAC,CAAC,GAAG,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,kBAAkB,CAAC,EAAE,6BAAU,CAAC,GAAG,CAAC,CAAC;oBAEjG,OAAO,IAAI,EAAE,gCAAgC,sBAAsB,UAAU,CAAC;iBAC/E;gBAED,KAAK,MAAM,CAAC,CAAC;oBACX,MAAM,IAAI,GAAG,IAAA,4BAAS,EAAC,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,6BAAU,CAAC,GAAG,CAAC,CAAC;oBAC/E,MAAM,MAAM,GAAI,KAAmB,CAAC,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC,6BAAU,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBAEpF,OAAO,IAAI,EAAE,uBAAuB,IAAI,+CAA+C,MAAM,EAAE,CAAC;iBACjG;gBACD;oBACE,OAAO,KAAK,CAAC,OAAO,CAAC;aACxB;QACH,CAAC,CAAC,CAAC;QAEH,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAC7B,CAAC;CACF;AA5CD,wEA4CC;AA8BD,MAAM,yBAAyB,GAAG,CAAC,CAAU,EAAW,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC;AAEtE,SAAgB,qBAAqB,CACnC,EACE,KAAK,EACL,mBAAmB,GAAG,KAAK,EAC3B,OAAO,GAKR,EACD,EAAyB;IAEzB,MAAM,eAAe,GAAG,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,yBAAyB,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAC5F,MAAM,aAAa,GAAG,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;IAUlE,MAAM,SAAS,GAA2B,UACxC,KAAK,EACL,OAAO,EACP,GAAG,IAAI;;QAEP,IAAI,CAAA,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAG,KAAK,CAAC,MAAK,KAAK,EAAE;YACpC,IAAI,mBAAmB,EAAE;gBACvB,OAAO;oBACL;wBACE,OAAO,EAAE,MAAA,MAAA,MAAA,aAAa,CAAC,MAAM,0CAAE,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,KAAK,cAAc,CAAC,0CAAE,OAAO,mCAAI,eAAe;qBAC3G;iBACF,CAAC;aACH;YAED,OAAO;SACR;QAED,SAAS,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QAE7B,OAAO,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,CAAC;IACrC,CAAC,CAAC;IAEF,OAAO,CAAC,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC;IAE9D,MAAM,SAAS,GAAG,IAAI,GAAG,EAAW,CAAC;IACrC,SAAS,CAAC,SAAS,GAAG,UAAU,CAAU;QACxC,IAAI,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;YAAE,OAAO;QAE7B,IAAI,eAAe,CAAC,CAAC,CAAC,EAAE;YACtB,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YACjB,OAAO;SACR;QAED,IAAI,OAAO,KAAK,IAAI,EAAE;YACpB,MAAM,IAAI,SAAS,CAAC,IAAI,EAAE,CAAC,IAAI,IAAI,WAAW,wCAAwC,CAAC,CAAC;SACzF;aAAM,IACL,QAAQ,IAAI,eAAe;YAC3B,KAAK,CAAC,OAAO,CAAC,eAAe,CAAC,MAAM,CAAC;YACrC,eAAe,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EACjC;YACA,MAAM,IAAI,8BAA8B,CAAC,EAAE,CAAC,IAAI,IAAI,WAAW,EAAE,eAAe,CAAC,MAAM,CAAC,CAAC;SAC1F;aAAM;YACL,MAAM,IAAI,KAAK,CAAC,yBAAyB,EAAE,CAAC,IAAI,IAAI,WAAW,0BAA0B,CAAC,CAAC;SAC5F;IACH,CAAC,CAAC;IAEF,OAAO,CAAC,cAAc,CAAC,SAAS,EAAE,SAAS,EAAE;QAC3C,UAAU,EAAE,KAAK;QACjB,KAAK,EAAE;YACL,KAAK;YACL,OAAO;SACR;KACF,CAAC,CAAC;IAEH,OAAO,SAA+C,CAAC;AACzD,CAAC;AA9ED,sDA8EC"}
@@ -1,4 +0,0 @@
1
- import type { Format } from '../format';
2
- export declare class FormatsSet<T extends Format = Format> extends Set<T> {
3
- toJSON(): string[];
4
- }
@@ -1 +0,0 @@
1
- {"version":3,"file":"formatsSet.js","sourceRoot":"","sources":["../../../src/ruleset/utils/formatsSet.ts"],"names":[],"mappings":";;;AAEA,SAAS,WAAW,CAAC,MAAc;;IACjC,OAAO,MAAA,MAAM,CAAC,WAAW,mCAAI,MAAM,CAAC,IAAI,CAAC;AAC3C,CAAC;AAED,MAAa,UAAsC,SAAQ,GAAM;IACxD,MAAM;QACX,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IAC3C,CAAC;CACF;AAJD,gCAIC"}
@@ -1 +0,0 @@
1
- export * from './severity';
@@ -1,5 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const tslib_1 = require("tslib");
4
- (0, tslib_1.__exportStar)(require("./severity"), exports);
5
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/ruleset/utils/index.ts"],"names":[],"mappings":";;;AAAA,0DAA2B"}
@@ -1,115 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.assertValidRule = exports.isValidRule = exports.assertValidRuleset = exports.RulesetValidationError = void 0;
4
- const tslib_1 = require("tslib");
5
- const ajv_1 = (0, tslib_1.__importStar)(require("ajv"));
6
- const ajv_formats_1 = (0, tslib_1.__importDefault)(require("ajv-formats"));
7
- const ajv_errors_1 = (0, tslib_1.__importDefault)(require("ajv-errors"));
8
- const json_1 = require("@stoplight/json");
9
- const spectral_runtime_1 = require("@stoplight/spectral-runtime");
10
- const ruleSchema = (0, tslib_1.__importStar)(require("../meta/rule.schema.json"));
11
- const rulesetSchema = (0, tslib_1.__importStar)(require("../meta/ruleset.schema.json"));
12
- const shared = (0, tslib_1.__importStar)(require("../meta/shared.json"));
13
- const message = (0, ajv_1._) `'spectral-message'`;
14
- const ajv = new ajv_1.default({ allErrors: true, strict: true, strictRequired: false, keywords: ['$anchor', 'x-internal'] });
15
- (0, ajv_formats_1.default)(ajv);
16
- (0, ajv_errors_1.default)(ajv);
17
- ajv.addKeyword({
18
- keyword: 'spectral-runtime',
19
- schemaType: 'string',
20
- error: {
21
- message(ctx) {
22
- return (0, ajv_1._) `${ctx.data}[Symbol.for(${message})]`;
23
- },
24
- },
25
- code(cxt) {
26
- const { data } = cxt;
27
- switch (cxt.schema) {
28
- case 'spectral-format':
29
- cxt.fail((0, ajv_1._) `typeof ${data} !== "function"`);
30
- break;
31
- case 'spectral-function':
32
- cxt.pass((0, ajv_1._) `typeof ${data}.function === "function"`);
33
- cxt.pass((0, ajv_1._) `(() => { try { ${data}.function.validator && ${data}.function.validator('functionOptions' in ${data} ? ${data} : null); } catch (e) { ${data}[${message}] = e.message } })()`);
34
- break;
35
- }
36
- },
37
- });
38
- const validate = ajv.addSchema(ruleSchema).addSchema(shared).compile(rulesetSchema);
39
- class RulesetValidationError extends Error {
40
- constructor(message) {
41
- super(message);
42
- this.message = message;
43
- }
44
- }
45
- exports.RulesetValidationError = RulesetValidationError;
46
- const RULE_INSTANCE_PATH = /^\/rules\/[^/]+/;
47
- const GENERIC_INSTANCE_PATH = /^\/(?:aliases|extends|overrides(?:\/\d+\/extends)?)/;
48
- class RulesetAjvValidationError extends RulesetValidationError {
49
- constructor(ruleset, errors) {
50
- super(RulesetAjvValidationError.serializeAjvErrors(ruleset, errors));
51
- this.ruleset = ruleset;
52
- this.errors = errors;
53
- }
54
- static serializeAjvErrors(ruleset, errors) {
55
- const sortedErrors = [...errors]
56
- .sort((errorA, errorB) => {
57
- const diff = errorA.instancePath.length - errorB.instancePath.length;
58
- return diff === 0 ? (errorA.keyword === 'errorMessage' && errorB.keyword !== 'errorMessage' ? -1 : 0) : diff;
59
- })
60
- .filter((error, i, sortedErrors) => i === 0 || sortedErrors[i - 1].instancePath !== error.instancePath);
61
- const filteredErrors = [];
62
- l: for (let i = 0; i < sortedErrors.length; i++) {
63
- const error = sortedErrors[i];
64
- const prevError = i === 0 ? null : sortedErrors[i - 1];
65
- if (GENERIC_INSTANCE_PATH.test(error.instancePath)) {
66
- let x = 1;
67
- while (i + x < sortedErrors.length) {
68
- if (sortedErrors[i + x].instancePath.startsWith(error.instancePath) ||
69
- !GENERIC_INSTANCE_PATH.test(sortedErrors[i + x].instancePath)) {
70
- continue l;
71
- }
72
- x++;
73
- }
74
- }
75
- else if (prevError === null) {
76
- filteredErrors.push(error);
77
- continue;
78
- }
79
- else {
80
- const match = RULE_INSTANCE_PATH.exec(error.instancePath);
81
- if (match !== null && match[0] !== match.input && match[0] === prevError.instancePath) {
82
- filteredErrors.pop();
83
- }
84
- }
85
- filteredErrors.push(error);
86
- }
87
- return filteredErrors
88
- .map(({ message, instancePath }) => `Error at ${(0, spectral_runtime_1.printPath)(instancePath.slice(1).split('/'), spectral_runtime_1.PrintStyle.Pointer)}: ${message !== null && message !== void 0 ? message : ''}`)
89
- .join('\n');
90
- }
91
- }
92
- function assertValidRuleset(ruleset) {
93
- var _a;
94
- if (!(0, json_1.isPlainObject)(ruleset)) {
95
- throw new Error('Provided ruleset is not an object');
96
- }
97
- if (!('rules' in ruleset) && !('extends' in ruleset) && !('overrides' in ruleset)) {
98
- throw new RulesetValidationError('Ruleset must have rules or extends or overrides defined');
99
- }
100
- if (!validate(ruleset)) {
101
- throw new RulesetAjvValidationError(ruleset, (_a = validate.errors) !== null && _a !== void 0 ? _a : []);
102
- }
103
- }
104
- exports.assertValidRuleset = assertValidRuleset;
105
- function isValidRule(rule) {
106
- return typeof rule === 'object' && rule !== null && !Array.isArray(rule) && ('given' in rule || 'then' in rule);
107
- }
108
- exports.isValidRule = isValidRule;
109
- function assertValidRule(rule) {
110
- if (!isValidRule(rule)) {
111
- throw new TypeError('Invalid rule');
112
- }
113
- }
114
- exports.assertValidRule = assertValidRule;
115
- //# sourceMappingURL=validation.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"validation.js","sourceRoot":"","sources":["../../src/ruleset/validation.ts"],"names":[],"mappings":"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"}