@stoplight/spectral-core 1.2.1 → 1.5.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/consts.d.ts CHANGED
@@ -1,3 +1,2 @@
1
1
  import { ParserOptions } from './ruleset';
2
- export declare const SPECTRAL_PKG_VERSION = "";
3
2
  export declare const DEFAULT_PARSER_OPTIONS: Readonly<Required<ParserOptions>>;
package/dist/consts.js CHANGED
@@ -1,8 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.DEFAULT_PARSER_OPTIONS = exports.SPECTRAL_PKG_VERSION = void 0;
3
+ exports.DEFAULT_PARSER_OPTIONS = void 0;
4
4
  const types_1 = require("@stoplight/types");
5
- exports.SPECTRAL_PKG_VERSION = '1.2.0';
6
5
  exports.DEFAULT_PARSER_OPTIONS = Object.freeze({
7
6
  incompatibleValues: types_1.DiagnosticSeverity.Error,
8
7
  duplicateKeys: types_1.DiagnosticSeverity.Error,
@@ -1 +1 @@
1
- {"version":3,"file":"consts.js","sourceRoot":"","sources":["../src/consts.ts"],"names":[],"mappings":";;;AAAA,4CAAsD;AAGzC,QAAA,oBAAoB,GAAG,EAAE,CAAC;AAE1B,QAAA,sBAAsB,GAAG,MAAM,CAAC,MAAM,CAA0B;IAC3E,kBAAkB,EAAE,0BAAkB,CAAC,KAAK;IAC5C,aAAa,EAAE,0BAAkB,CAAC,KAAK;CACxC,CAAC,CAAC"}
1
+ {"version":3,"file":"consts.js","sourceRoot":"","sources":["../src/consts.ts"],"names":[],"mappings":";;;AAAA,4CAAsD;AAGzC,QAAA,sBAAsB,GAAG,MAAM,CAAC,MAAM,CAA0B;IAC3E,kBAAkB,EAAE,0BAAkB,CAAC,KAAK;IAC5C,aAAa,EAAE,0BAAkB,CAAC,KAAK;CACxC,CAAC,CAAC"}
@@ -1,7 +1,5 @@
1
1
  import { JsonPath, Optional } from '@stoplight/types';
2
- import { JSONPathExpression } from 'nimma';
3
2
  import { DiagnosticSeverity } from '@stoplight/types';
4
- import { IGivenNode } from '../../types';
5
3
  import { Ruleset } from '../ruleset';
6
4
  import { Format } from '../format';
7
5
  import { HumanReadableDiagnosticSeverity, IRuleThen, RuleDefinition } from '../types';
@@ -17,6 +15,15 @@ export interface IRule {
17
15
  then: IRuleThen[];
18
16
  given: string[];
19
17
  }
18
+ export declare type StringifiedRule = Omit<IRule, 'formats' | 'then'> & {
19
+ name: string;
20
+ formats: string[] | null;
21
+ then: (Pick<IRuleThen, 'field'> & {
22
+ function: string;
23
+ functionOptions?: string;
24
+ })[];
25
+ owner: number;
26
+ };
20
27
  export declare class Rule implements IRule {
21
28
  #private;
22
29
  readonly name: string;
@@ -28,8 +35,6 @@ export declare class Rule implements IRule {
28
35
  formats: Set<Format> | null;
29
36
  recommended: boolean;
30
37
  documentationUrl: string | null;
31
- expressions?: JSONPathExpression[] | null;
32
- get isOptimized(): boolean;
33
38
  constructor(name: string, definition: RuleDefinition, owner: Ruleset);
34
39
  overrides?: {
35
40
  rulesetSource: string;
@@ -45,7 +50,6 @@ export declare class Rule implements IRule {
45
50
  get given(): string[];
46
51
  set given(given: RuleDefinition['given']);
47
52
  matchesFormat(formats: Set<Format> | null): boolean;
48
- optimize(): boolean;
49
53
  clone(): Rule;
50
- hookup(cb: (rule: Rule, node: IGivenNode) => void): void;
54
+ toJSON(): StringifiedRule;
51
55
  }
@@ -3,11 +3,11 @@ var _Rule_instances, _Rule_severity, _Rule_enabled, _Rule_then, _Rule_given, _Ru
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
4
  exports.Rule = void 0;
5
5
  const tslib_1 = require("tslib");
6
- const nimma_1 = require("nimma");
7
6
  const path_1 = require("@stoplight/path");
8
7
  const json_1 = require("@stoplight/json");
9
8
  const severity_1 = require("../utils/severity");
10
9
  const minimatch_1 = require("../utils/minimatch");
10
+ const spectral_runtime_1 = require("@stoplight/spectral-runtime");
11
11
  const ALIAS = /^#([A-Za-z0-9_-]+)/;
12
12
  class Rule {
13
13
  constructor(name, definition, owner) {
@@ -31,9 +31,6 @@ class Rule {
31
31
  this.then = definition.then;
32
32
  this.given = definition.given;
33
33
  }
34
- get isOptimized() {
35
- return Array.isArray(this.expressions);
36
- }
37
34
  get enabled() {
38
35
  return tslib_1.__classPrivateFieldGet(this, _Rule_enabled, "f") || this.overrides !== void 0;
39
36
  }
@@ -104,35 +101,28 @@ class Rule {
104
101
  }
105
102
  return false;
106
103
  }
107
- optimize() {
108
- if (this.expressions !== void 0)
109
- return this.isOptimized;
110
- try {
111
- this.expressions = this.given.map(given => {
112
- const expr = new nimma_1.JSONPathExpression(given, stub, stub);
113
- if (expr.matches === null) {
114
- throw new Error(`Rule "${this.name}": cannot optimize ${given}`);
115
- }
116
- return expr;
117
- });
118
- }
119
- catch {
120
- this.expressions = null;
121
- }
122
- return this.isOptimized;
123
- }
124
104
  clone() {
125
105
  return new Rule(this.name, this.definition, this.owner);
126
106
  }
127
- hookup(cb) {
128
- for (const expr of this.expressions) {
129
- expr.onMatch = (value, path) => {
130
- cb(this, {
131
- path,
132
- value,
133
- });
134
- };
135
- }
107
+ toJSON() {
108
+ return {
109
+ name: this.name,
110
+ recommended: this.recommended,
111
+ enabled: this.enabled,
112
+ description: this.description,
113
+ message: this.message,
114
+ documentationUrl: this.documentationUrl,
115
+ severity: this.severity,
116
+ resolved: this.resolved,
117
+ formats: this.formats === null ? null : Array.from(this.formats).map(fn => { var _a; return (_a = fn.displayName) !== null && _a !== void 0 ? _a : fn.name; }),
118
+ then: this.then.map(then => ({
119
+ ...then.function,
120
+ function: then.function.name,
121
+ ...('functionOptions' in then ? { functionOptions: spectral_runtime_1.printValue(then.functionOptions) } : null),
122
+ })),
123
+ given: tslib_1.__classPrivateFieldGet(this, _Rule_given, "f"),
124
+ owner: this.owner.id,
125
+ };
136
126
  }
137
127
  }
138
128
  exports.Rule = Rule;
@@ -162,6 +152,4 @@ _Rule_severity = new WeakMap(), _Rule_enabled = new WeakMap(), _Rule_then = new
162
152
  }
163
153
  return resolvedExpr;
164
154
  };
165
- function stub() {
166
- }
167
155
  //# sourceMappingURL=rule.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"rule.js","sourceRoot":"","sources":["../../../src/ruleset/rule/rule.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"rule.js","sourceRoot":"","sources":["../../../src/ruleset/rule/rule.ts"],"names":[],"mappings":";;;;;AACA,0CAAoD;AAEpD,0CAAgD;AAEhD,gDAAkF;AAIlF,kDAA+C;AAC/C,kEAAyD;AAEzD,MAAM,KAAK,GAAG,oBAAoB,CAAC;AAsBnC,MAAa,IAAI;IAYf,YACkB,IAAY,EACZ,UAA0B,EAC1B,KAAc;;QAFd,SAAI,GAAJ,IAAI,CAAQ;QACZ,eAAU,GAAV,UAAU,CAAgB;QAC1B,UAAK,GAAL,KAAK,CAAS;;QAZhC,iCAA+B;QAG/B,gCAAkB;QAGlB,6BAAoB;QACpB,8BAAkB;QAOhB,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC,WAAW,KAAK,KAAK,CAAC;QACpD,+BAAA,IAAI,iBAAY,IAAI,CAAC,WAAW,MAAA,CAAC;QACjC,IAAI,CAAC,WAAW,GAAG,MAAA,UAAU,CAAC,WAAW,mCAAI,IAAI,CAAC;QAClD,IAAI,CAAC,OAAO,GAAG,MAAA,UAAU,CAAC,OAAO,mCAAI,IAAI,CAAC;QAC1C,IAAI,CAAC,gBAAgB,GAAG,MAAA,UAAU,CAAC,gBAAgB,mCAAI,IAAI,CAAC;QAC5D,IAAI,CAAC,QAAQ,GAAG,UAAU,CAAC,QAAQ,CAAC;QACpC,IAAI,CAAC,QAAQ,GAAG,UAAU,CAAC,QAAQ,KAAK,KAAK,CAAC;QAC9C,IAAI,CAAC,OAAO,GAAG,SAAS,IAAI,UAAU,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAC5E,IAAI,CAAC,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC;QAC5B,IAAI,CAAC,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC;IAChC,CAAC;IAID,IAAW,OAAO;QAChB,OAAO,+BAAA,IAAI,qBAAS,IAAI,IAAI,CAAC,SAAS,KAAK,KAAK,CAAC,CAAC;IACpD,CAAC;IAED,IAAW,OAAO,CAAC,OAAgB;QACjC,+BAAA,IAAI,iBAAY,OAAO,MAAA,CAAC;IAC1B,CAAC;IAEM,oBAAoB,CAAC,MAAc,EAAE,IAAc;QACxD,IAAI,IAAI,CAAC,SAAS,KAAK,KAAK,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,KAAK,CAAC,EAAE;YACrE,OAAO,IAAI,CAAC,QAAQ,CAAC;SACtB;QAED,MAAM,cAAc,GAAG,eAAQ,CAAC,cAAO,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC,CAAC;QAC/E,MAAM,iBAAiB,GAA2C,EAAE,CAAC;QAErE,KAAK,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE;YACpE,IAAI,qBAAS,CAAC,cAAc,EAAE,MAAM,CAAC,EAAE;gBACrC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;aAClC;SACF;QAED,IAAI,iBAAiB,CAAC,MAAM,KAAK,CAAC,EAAE;YAClC,OAAO,IAAI,CAAC,QAAQ,CAAC;SACtB;QAED,IAAI,QAAQ,GAAuB,IAAI,CAAC,QAAQ,CAAC;QACjD,IAAI,cAAc,GAAG,EAAE,CAAC;QACxB,MAAM,OAAO,GAAG,oBAAa,CAAC,IAAI,CAAC,CAAC;QAEpC,KAAK,MAAM,gBAAgB,IAAI,iBAAiB,EAAE;YAChD,KAAK,MAAM,CAAC,YAAY,EAAE,gBAAgB,CAAC,IAAI,gBAAgB,CAAC,OAAO,EAAE,EAAE;gBACzE,IAAI,YAAY,CAAC,MAAM,IAAI,cAAc,CAAC,MAAM,IAAI,OAAO,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE;oBACpF,cAAc,GAAG,YAAY,CAAC;oBAC9B,QAAQ,GAAG,gBAAgB,CAAC;iBAC7B;aACF;SACF;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,IAAW,QAAQ;QACjB,OAAO,+BAAA,IAAI,sBAAU,CAAC;IACxB,CAAC;IAED,IAAW,QAAQ,CAAC,QAAwE;QAC1F,IAAI,QAAQ,KAAK,KAAK,CAAC,EAAE;YACvB,+BAAA,IAAI,kBAAa,iCAAsB,MAAA,CAAC;SACzC;aAAM;YACL,+BAAA,IAAI,kBAAa,gCAAqB,CAAC,QAAQ,CAAC,MAAA,CAAC;SAClD;IACH,CAAC;IAED,IAAW,IAAI;QACb,OAAO,+BAAA,IAAI,kBAAM,CAAC;IACpB,CAAC;IAED,IAAW,IAAI,CAAC,IAA4B;QAC1C,+BAAA,IAAI,cAAS,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAA,CAAC;IACnD,CAAC;IAED,IAAW,KAAK;QAEd,OAAO,+BAAA,IAAI,mBAAO,CAAC,GAAG,CAAC,+BAAA,IAAI,2CAAc,EAAE,IAAI,CAAC,CAAC;IACnD,CAAC;IAED,IAAW,KAAK,CAAC,KAA8B;QAC7C,+BAAA,IAAI,eAAU,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAA,CAAC;IACvD,CAAC;IAmCM,aAAa,CAAC,OAA2B;QAC9C,IAAI,IAAI,CAAC,OAAO,KAAK,IAAI,EAAE;YACzB,OAAO,IAAI,CAAC;SACb;QAED,IAAI,OAAO,KAAK,IAAI,EAAE;YACpB,OAAO,KAAK,CAAC;SACd;QAED,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE;YAC5B,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE;gBAC5B,OAAO,IAAI,CAAC;aACb;SACF;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAEM,KAAK;QACV,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IAC1D,CAAC;IAEM,MAAM;QACX,OAAO;YACL,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;YACvC,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,OAAO,EAAE,IAAI,CAAC,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,WAAC,OAAA,MAAA,EAAE,CAAC,WAAW,mCAAI,EAAE,CAAC,IAAI,CAAA,EAAA,CAAC;YACrG,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBAC3B,GAAG,IAAI,CAAC,QAAQ;gBAChB,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI;gBAC5B,GAAG,CAAC,iBAAiB,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,6BAAU,CAAC,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;aAC9F,CAAC,CAAC;YACH,KAAK,EAAE,+BAAA,IAAI,mBAAO;YAClB,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE;SACrB,CAAC;IACJ,CAAC;CACF;AAjLD,oBAiLC;0MA3E2B,IAAY;;IACpC,IAAI,YAAY,GAAG,IAAI,CAAC;IAExB,MAAM,KAAK,GAAG,IAAI,GAAG,EAAU,CAAC;IAEhC,OAAO,YAAY,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;QACnC,MAAM,KAAK,GAAG,MAAA,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,0CAAG,CAAC,CAAC,CAAC;QAE5C,IAAI,KAAK,KAAK,KAAK,CAAC,IAAI,KAAK,KAAK,IAAI,EAAE;YACtC,MAAM,IAAI,cAAc,CAAC,IAAI,IAAI,CAAC,IAAI,oCAAoC,CAAC,CAAC;SAC7E;QAED,IAAI,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;YACpB,MAAM,MAAM,GAAG,CAAC,GAAG,KAAK,EAAE,KAAK,CAAC,CAAC;YACjC,MAAM,IAAI,cAAc,CAAC,UAAU,MAAM,CAAC,CAAC,CAAC,oCAAoC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;SACxG;QAED,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAEjB,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,KAAK,IAAI,IAAI,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE;YACjE,MAAM,IAAI,cAAc,CAAC,UAAU,KAAK,kBAAkB,CAAC,CAAC;SAC7D;QAED,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,KAAK,IAAI,CAAC,MAAM,EAAE;YACpC,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;SAC1C;aAAM;YACL,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,YAAY,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;SACjF;KACF;IAED,OAAO,YAAY,CAAC;AACtB,CAAC"}
@@ -1,4 +1,4 @@
1
- import { Rule } from './rule/rule';
1
+ import { Rule, StringifiedRule } from './rule/rule';
2
2
  import { FileRulesetSeverityDefinition, ParserOptions, RulesetAliasesDefinition, RulesetDefinition, RulesetOverridesDefinition } from './types';
3
3
  import { Format } from './format';
4
4
  declare const STACK_SYMBOL: unique symbol;
@@ -7,10 +7,21 @@ declare type RulesetContext = {
7
7
  readonly source?: string;
8
8
  readonly [STACK_SYMBOL]?: Map<RulesetDefinition, Ruleset>;
9
9
  };
10
+ export declare type StringifiedRuleset = {
11
+ id: number;
12
+ extends: StringifiedRuleset[] | null;
13
+ source: string | null;
14
+ aliases: RulesetAliasesDefinition | null;
15
+ formats: string[] | null;
16
+ rules: Record<string, StringifiedRule>;
17
+ overrides: RulesetOverridesDefinition | null;
18
+ parserOptions: ParserOptions;
19
+ };
10
20
  export declare class Ruleset {
11
21
  #private;
12
22
  readonly maybeDefinition: unknown;
13
- protected extends: Ruleset[];
23
+ readonly id: number;
24
+ protected readonly extends: Ruleset[] | null;
14
25
  readonly formats: Set<Format<void>>;
15
26
  readonly overrides: RulesetOverridesDefinition | null;
16
27
  readonly aliases: RulesetAliasesDefinition | null;
@@ -21,5 +32,9 @@ export declare class Ruleset {
21
32
  fromSource(source: string | null): Ruleset;
22
33
  get parserOptions(): ParserOptions;
23
34
  static isDefaultRulesetFile(uri: string): boolean;
35
+ toJSON(): Omit<StringifiedRuleset, 'extends' | 'rules'> & {
36
+ extends: Ruleset['extends'];
37
+ rules: Ruleset['rules'];
38
+ };
24
39
  }
25
40
  export {};
@@ -12,11 +12,13 @@ const rulesets_1 = require("./mergers/rulesets");
12
12
  const json_1 = require("@stoplight/json");
13
13
  const STACK_SYMBOL = Symbol('@stoplight/spectral/ruleset/#stack');
14
14
  const DEFAULT_RULESET_FILE = /^\.?spectral\.(ya?ml|json|m?js)$/;
15
+ let SEED = 1;
15
16
  class Ruleset {
16
17
  constructor(maybeDefinition, context) {
17
18
  var _a;
18
19
  this.maybeDefinition = maybeDefinition;
19
20
  _Ruleset_instances.add(this);
21
+ this.id = SEED++;
20
22
  this.formats = new Set();
21
23
  _Ruleset_context.set(this, void 0);
22
24
  let definition;
@@ -55,7 +57,7 @@ class Ruleset {
55
57
  extensions.push(new Ruleset(actualExtension, { severity, [STACK_SYMBOL]: stack }));
56
58
  return extensions;
57
59
  }, [])
58
- : [];
60
+ : null;
59
61
  if (stack.size === 1 && definition.overrides) {
60
62
  this.overrides = definition.overrides;
61
63
  }
@@ -68,9 +70,11 @@ class Ruleset {
68
70
  this.formats.add(format);
69
71
  }
70
72
  }
71
- for (const { formats } of this.extends) {
72
- for (const format of formats) {
73
- this.formats.add(format);
73
+ if (Array.isArray(this.extends)) {
74
+ for (const { formats } of this.extends) {
75
+ for (const format of formats) {
76
+ this.formats.add(format);
77
+ }
74
78
  }
75
79
  }
76
80
  this.rules = tslib_1.__classPrivateFieldGet(this, _Ruleset_instances, "m", _Ruleset_getRules).call(this);
@@ -155,11 +159,23 @@ class Ruleset {
155
159
  static isDefaultRulesetFile(uri) {
156
160
  return DEFAULT_RULESET_FILE.test(uri);
157
161
  }
162
+ toJSON() {
163
+ return {
164
+ id: this.id,
165
+ extends: this.extends,
166
+ source: this.source,
167
+ aliases: this.aliases,
168
+ formats: this.formats.size === 0 ? null : Array.from(this.formats).map(fn => { var _a; return (_a = fn.displayName) !== null && _a !== void 0 ? _a : fn.name; }),
169
+ rules: this.rules,
170
+ overrides: this.overrides,
171
+ parserOptions: this.parserOptions,
172
+ };
173
+ }
158
174
  }
159
175
  exports.Ruleset = Ruleset;
160
176
  _Ruleset_context = new WeakMap(), _Ruleset_instances = new WeakSet(), _Ruleset_getRules = function _Ruleset_getRules() {
161
177
  const rules = {};
162
- if (this.extends.length > 0) {
178
+ if (this.extends !== null && this.extends.length > 0) {
163
179
  for (const extendedRuleset of this.extends) {
164
180
  if (extendedRuleset === this)
165
181
  continue;
@@ -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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"}
@@ -45,8 +45,9 @@ class RulesetFunctionValidationError extends validation_1.RulesetValidationError
45
45
  }
46
46
  }
47
47
  exports.RulesetFunctionValidationError = RulesetFunctionValidationError;
48
+ const DEFAULT_OPTIONS_VALIDATOR = (o) => o === null;
48
49
  function createRulesetFunction({ input, errorOnInvalidInput = false, options, }, fn) {
49
- const validateOptions = options === null ? (o) => o === null : ajv.compile(options);
50
+ const validateOptions = options === null ? DEFAULT_OPTIONS_VALIDATOR : ajv.compile(options);
50
51
  const validateInput = input !== null ? ajv.compile(input) : input;
51
52
  const wrappedFn = function (input, options, ...args) {
52
53
  var _a, _b, _c;
@@ -84,6 +85,13 @@ function createRulesetFunction({ input, errorOnInvalidInput = false, options, },
84
85
  throw new Error(`"functionOptions" of "${fn.name || '<unknown>'}" function must be valid`);
85
86
  }
86
87
  };
88
+ Reflect.defineProperty(wrappedFn, 'schemas', {
89
+ enumerable: false,
90
+ value: {
91
+ input,
92
+ options,
93
+ },
94
+ });
87
95
  return wrappedFn;
88
96
  }
89
97
  exports.createRulesetFunction = createRulesetFunction;
@@ -1 +1 @@
1
- {"version":3,"file":"rulesetFunction.js","sourceRoot":"","sources":["../../src/ruleset/rulesetFunction.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"rulesetFunction.js","sourceRoot":"","sources":["../../src/ruleset/rulesetFunction.ts"],"names":[],"mappings":"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"}
@@ -1,36 +1,12 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.Runner = void 0;
4
- const jsonpath_plus_1 = require("jsonpath-plus");
5
- const lodash_1 = require("lodash");
6
- const nimma_1 = require("nimma");
7
4
  const utils_1 = require("../utils");
8
5
  const lintNode_1 = require("./lintNode");
9
- const lodash_2 = require("lodash");
10
- const runRule = (context, rule) => {
11
- const target = rule.resolved ? context.documentInventory.resolved : context.documentInventory.unresolved;
12
- for (const given of rule.given) {
13
- if (given === '$') {
14
- lintNode_1.lintNode(context, {
15
- path: ['$'],
16
- value: target,
17
- }, rule);
18
- }
19
- else if (lodash_1.isObject(target)) {
20
- jsonpath_plus_1.JSONPath({
21
- path: given,
22
- json: target,
23
- resultType: 'all',
24
- callback: (result => {
25
- lintNode_1.lintNode(context, {
26
- path: lodash_2.toPath(result.path.slice(1)),
27
- value: result.value,
28
- }, rule);
29
- }),
30
- });
31
- }
32
- }
33
- };
6
+ const legacy_1 = require("nimma/legacy");
7
+ const fallbacks_1 = require("nimma/fallbacks");
8
+ const json_1 = require("@stoplight/json");
9
+ const lodash_1 = require("lodash");
34
10
  class Runner {
35
11
  constructor(runtime, inventory) {
36
12
  var _a;
@@ -45,6 +21,8 @@ class Runner {
45
21
  this.results.push(result);
46
22
  }
47
23
  async run(ruleset) {
24
+ var _a;
25
+ var _b;
48
26
  this.runtime.emit('setup');
49
27
  const { inventory: documentInventory } = this;
50
28
  const { rules } = ruleset;
@@ -54,34 +32,23 @@ class Runner {
54
32
  results: this.results,
55
33
  promises: [],
56
34
  };
57
- const relevantRules = Object.values(rules).filter(rule => rule.enabled && rule.matchesFormat(documentInventory.formats));
58
- const optimizedRules = [];
59
- const optimizedUnresolvedRules = [];
60
- const unoptimizedRules = [];
61
- const traverseCb = (rule, node) => {
62
- lintNode_1.lintNode(runnerContext, node, rule);
35
+ const enabledRules = Object.values(rules).filter(rule => rule.enabled);
36
+ const relevantRules = enabledRules.filter(rule => rule.matchesFormat(documentInventory.formats));
37
+ const callbacks = {
38
+ resolved: {},
39
+ unresolved: {},
63
40
  };
64
41
  for (const rule of relevantRules) {
65
- if (!rule.isOptimized) {
66
- unoptimizedRules.push(rule);
67
- continue;
68
- }
69
- if (rule.resolved) {
70
- optimizedRules.push(rule);
42
+ for (const given of rule.given) {
43
+ const cb = (scope) => {
44
+ lintNode_1.lintNode(runnerContext, scope, rule);
45
+ };
46
+ ((_a = (_b = callbacks[rule.resolved ? 'resolved' : 'unresolved'])[given]) !== null && _a !== void 0 ? _a : (_b[given] = [])).push(cb);
71
47
  }
72
- else {
73
- optimizedUnresolvedRules.push(rule);
74
- }
75
- rule.hookup(traverseCb);
76
- }
77
- if (optimizedRules.length > 0) {
78
- nimma_1.traverse(Object(runnerContext.documentInventory.resolved), optimizedRules.flatMap(pickExpressions));
79
48
  }
80
- if (optimizedUnresolvedRules.length > 0) {
81
- nimma_1.traverse(Object(runnerContext.documentInventory.unresolved), optimizedUnresolvedRules.flatMap(pickExpressions));
82
- }
83
- for (const rule of unoptimizedRules) {
84
- runRule(runnerContext, rule);
49
+ execute(runnerContext.documentInventory.resolved, callbacks.resolved, relevantRules.flatMap(r => (r.resolved ? r.given : [])));
50
+ if (Object.keys(callbacks.unresolved).length > 0) {
51
+ execute(runnerContext.documentInventory.unresolved, callbacks.unresolved, relevantRules.flatMap(r => (!r.resolved ? r.given : [])));
85
52
  }
86
53
  this.runtime.emit('beforeTeardown');
87
54
  try {
@@ -98,7 +65,42 @@ class Runner {
98
65
  }
99
66
  }
100
67
  exports.Runner = Runner;
101
- function pickExpressions({ expressions }) {
102
- return expressions;
68
+ function execute(input, callbacks, jsonPathExpressions) {
69
+ var _a;
70
+ if (!json_1.isPlainObject(input) && !Array.isArray(input)) {
71
+ for (const cb of (_a = callbacks.$) !== null && _a !== void 0 ? _a : []) {
72
+ cb({
73
+ path: [],
74
+ value: input,
75
+ });
76
+ }
77
+ return;
78
+ }
79
+ try {
80
+ const nimma = new legacy_1.default(jsonPathExpressions, {
81
+ fallback: fallbacks_1.jsonPathPlus,
82
+ unsafe: false,
83
+ output: 'auto',
84
+ });
85
+ nimma.query(input, Object.entries(callbacks).reduce((mapped, [key, cbs]) => {
86
+ mapped[key] = scope => {
87
+ for (const cb of cbs) {
88
+ cb(scope);
89
+ }
90
+ };
91
+ return mapped;
92
+ }, {}));
93
+ }
94
+ catch (e) {
95
+ if (isAggregateError(e) && e.errors.length === 1) {
96
+ throw e.errors[0];
97
+ }
98
+ else {
99
+ throw e;
100
+ }
101
+ }
102
+ }
103
+ function isAggregateError(maybeAggregateError) {
104
+ return lodash_1.isError(maybeAggregateError) && maybeAggregateError.constructor.name === 'AggregateError';
103
105
  }
104
106
  //# sourceMappingURL=runner.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"runner.js","sourceRoot":"","sources":["../../src/runner/runner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runner.js","sourceRoot":"","sources":["../../src/runner/runner.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,8 @@
1
- import { JsonPath } from '@stoplight/types';
1
+ import type { JsonPath } from '@stoplight/types';
2
2
  import type { IDocumentInventory } from '../documentInventory';
3
3
  import type { IRule } from '../ruleset/rule/rule';
4
4
  import type { IDocument } from '../document';
5
+ import type { JSONSchema7 } from 'json-schema';
5
6
  export declare type RulesetFunction<I extends unknown = unknown, O extends unknown = unknown> = (input: I, options: O, context: RulesetFunctionContext) => void | IFunctionResult[] | Promise<void | IFunctionResult[]>;
6
7
  export declare type RulesetFunctionContext = {
7
8
  path: JsonPath;
@@ -12,6 +13,10 @@ export declare type RulesetFunctionContext = {
12
13
  export declare type IFunction = RulesetFunction;
13
14
  export declare type RulesetFunctionWithValidator<I extends unknown = unknown, O extends unknown = unknown> = RulesetFunction<I, O> & {
14
15
  validator<O = unknown>(options: unknown): asserts options is O;
16
+ readonly schemas: Readonly<{
17
+ input: Readonly<JSONSchema7> | null;
18
+ options: Readonly<JSONSchema7> | null;
19
+ }>;
15
20
  };
16
21
  export interface IFunctionResult {
17
22
  message: string;
@@ -3,7 +3,6 @@ import { JSONSchema7 } from 'json-schema';
3
3
  import type { Resolver } from '@stoplight/spectral-ref-resolver';
4
4
  export interface IConstructorOpts {
5
5
  resolver?: Resolver;
6
- useNimma?: boolean;
7
6
  }
8
7
  export interface IRunOpts {
9
8
  ignoreUnknownFormat?: boolean;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@stoplight/spectral-core",
3
- "version": "1.2.1",
3
+ "version": "1.5.1",
4
4
  "main": "dist/index.js",
5
5
  "types": "dist/index.d.ts",
6
6
  "sideEffects": false,
@@ -18,17 +18,15 @@
18
18
  "engines": {
19
19
  "node": ">=12"
20
20
  },
21
- "scripts": {
22
- "postbuild": "node -r esm ./scripts/inline-version.mjs"
23
- },
21
+ "scripts": {},
24
22
  "dependencies": {
25
23
  "@stoplight/better-ajv-errors": "0.2.0",
26
- "@stoplight/json": "3.15.0",
24
+ "@stoplight/json": "3.17.0",
27
25
  "@stoplight/lifecycle": "2.3.2",
28
26
  "@stoplight/path": "1.3.2",
29
27
  "@stoplight/spectral-parsers": "^1.0.0",
30
- "@stoplight/spectral-ref-resolver": "*",
31
- "@stoplight/spectral-runtime": "*",
28
+ "@stoplight/spectral-ref-resolver": "^1.0.0",
29
+ "@stoplight/spectral-runtime": "^1.0.0",
32
30
  "@stoplight/types": "12.3.0",
33
31
  "ajv": "~8.6.0",
34
32
  "ajv-errors": "~3.0.0",
@@ -36,11 +34,12 @@
36
34
  "blueimp-md5": "2.18.0",
37
35
  "expression-eval": "4.0.0",
38
36
  "json-schema": "0.3.0",
39
- "jsonpath-plus": "5.0.7",
37
+ "jsonpath-plus": "6.0.1",
40
38
  "lodash": "~4.17.21",
39
+ "lodash.topath": "^4.5.2",
41
40
  "minimatch": "3.0.4",
42
- "nimma": "0.0.0",
43
- "tslib": "~2.3.0"
41
+ "nimma": "0.1.3",
42
+ "tslib": "^2.3.0"
44
43
  },
45
44
  "devDependencies": {
46
45
  "@stoplight/spectral-formats": "*",
@@ -50,9 +49,7 @@
50
49
  "@types/json-schema": "^7.0.7",
51
50
  "@types/minimatch": "^3.0.5",
52
51
  "@types/treeify": "^1.0.0",
53
- "esm": "^3.2.25",
54
52
  "nock": "^13.1.0",
55
- "recast": "^0.20.4",
56
53
  "treeify": "^1.1.0"
57
54
  }
58
55
  }