@stoplight/spectral-core 1.3.0 → 1.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/consts.d.ts +0 -1
- package/dist/consts.js +1 -2
- package/dist/consts.js.map +1 -1
- package/dist/guards/isAggregateError.d.ts +3 -0
- package/dist/guards/isAggregateError.js +9 -0
- package/dist/guards/isAggregateError.js.map +1 -0
- package/dist/meta/rule.schema.json +4 -4
- package/dist/meta/ruleset.schema.json +47 -10
- package/dist/meta/shared.json +5 -2
- package/dist/ruleset/rule/rule.d.ts +6 -11
- package/dist/ruleset/rule/rule.js +45 -44
- package/dist/ruleset/rule/rule.js.map +1 -1
- package/dist/ruleset/ruleset.d.ts +4 -3
- package/dist/ruleset/ruleset.js +23 -5
- package/dist/ruleset/ruleset.js.map +1 -1
- package/dist/ruleset/rulesetFunction.js +9 -1
- package/dist/ruleset/rulesetFunction.js.map +1 -1
- package/dist/ruleset/types.d.ts +9 -1
- package/dist/ruleset/utils/formatsSet.d.ts +4 -0
- package/dist/ruleset/utils/formatsSet.js +14 -0
- package/dist/ruleset/utils/formatsSet.js.map +1 -0
- package/dist/ruleset/validation.js +2 -2
- package/dist/ruleset/validation.js.map +1 -1
- package/dist/runner/runner.js +57 -53
- package/dist/runner/runner.js.map +1 -1
- package/dist/types/function.d.ts +6 -1
- package/dist/types/spectral.d.ts +0 -1
- package/package.json +8 -11
package/dist/consts.d.ts
CHANGED
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 =
|
|
3
|
+
exports.DEFAULT_PARSER_OPTIONS = void 0;
|
|
4
4
|
const types_1 = require("@stoplight/types");
|
|
5
|
-
exports.SPECTRAL_PKG_VERSION = '1.2.1';
|
|
6
5
|
exports.DEFAULT_PARSER_OPTIONS = Object.freeze({
|
|
7
6
|
incompatibleValues: types_1.DiagnosticSeverity.Error,
|
|
8
7
|
duplicateKeys: types_1.DiagnosticSeverity.Error,
|
package/dist/consts.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"consts.js","sourceRoot":"","sources":["../src/consts.ts"],"names":[],"mappings":";;;AAAA,4CAAsD;AAGzC,QAAA,
|
|
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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.isAggregateError = void 0;
|
|
4
|
+
const lodash_1 = require("lodash");
|
|
5
|
+
function isAggregateError(maybeAggregateError) {
|
|
6
|
+
return lodash_1.isError(maybeAggregateError) && maybeAggregateError.constructor.name === 'AggregateError';
|
|
7
|
+
}
|
|
8
|
+
exports.isAggregateError = isAggregateError;
|
|
9
|
+
//# sourceMappingURL=isAggregateError.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"isAggregateError.js","sourceRoot":"","sources":["../../src/guards/isAggregateError.ts"],"names":[],"mappings":";;;AAAA,mCAAiC;AAEjC,SAAgB,gBAAgB,CAAC,mBAA4B;IAC3D,OAAO,gBAAO,CAAC,mBAAmB,CAAC,IAAI,mBAAmB,CAAC,WAAW,CAAC,IAAI,KAAK,gBAAgB,CAAC;AACnG,CAAC;AAFD,4CAEC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
3
|
-
"$id": "
|
|
3
|
+
"$id": "@stoplight/spectral-core/meta/rule.schema",
|
|
4
4
|
"$defs": {
|
|
5
5
|
"Then": {
|
|
6
6
|
"type": "object",
|
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
]
|
|
21
21
|
},
|
|
22
22
|
"Severity": {
|
|
23
|
-
"$ref": "shared
|
|
23
|
+
"$ref": "shared#severity"
|
|
24
24
|
}
|
|
25
25
|
},
|
|
26
26
|
"oneOf": [
|
|
@@ -66,7 +66,7 @@
|
|
|
66
66
|
"type": "array"
|
|
67
67
|
},
|
|
68
68
|
"formats": {
|
|
69
|
-
"$ref": "shared
|
|
69
|
+
"$ref": "shared#formats"
|
|
70
70
|
},
|
|
71
71
|
"then": {
|
|
72
72
|
"anyOf": [
|
|
@@ -95,7 +95,7 @@
|
|
|
95
95
|
}
|
|
96
96
|
},
|
|
97
97
|
{
|
|
98
|
-
"$ref": "shared
|
|
98
|
+
"$ref": "shared#/$defs/HumanReadableSeverity"
|
|
99
99
|
},
|
|
100
100
|
{
|
|
101
101
|
"type": "boolean"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
3
|
-
"$id": "
|
|
3
|
+
"$id": "@stoplight/spectral-core/meta/ruleset.schema",
|
|
4
4
|
"type": "object",
|
|
5
5
|
"additionalProperties": false,
|
|
6
6
|
"properties": {
|
|
@@ -12,11 +12,11 @@
|
|
|
12
12
|
"rules": {
|
|
13
13
|
"type": "object",
|
|
14
14
|
"additionalProperties": {
|
|
15
|
-
"$ref": "rule.schema
|
|
15
|
+
"$ref": "rule.schema#"
|
|
16
16
|
}
|
|
17
17
|
},
|
|
18
18
|
"formats": {
|
|
19
|
-
"$ref": "shared
|
|
19
|
+
"$ref": "shared#formats"
|
|
20
20
|
},
|
|
21
21
|
"extends": {
|
|
22
22
|
"oneOf": [
|
|
@@ -56,10 +56,10 @@
|
|
|
56
56
|
"type": "object",
|
|
57
57
|
"properties": {
|
|
58
58
|
"duplicateKeys": {
|
|
59
|
-
"$ref": "shared
|
|
59
|
+
"$ref": "shared#severity"
|
|
60
60
|
},
|
|
61
61
|
"incompatibleValues": {
|
|
62
|
-
"$ref": "shared
|
|
62
|
+
"$ref": "shared#severity"
|
|
63
63
|
}
|
|
64
64
|
},
|
|
65
65
|
"additionalProperties": false
|
|
@@ -91,7 +91,7 @@
|
|
|
91
91
|
"rules": {
|
|
92
92
|
"type": "object",
|
|
93
93
|
"additionalProperties": {
|
|
94
|
-
"$ref": "shared
|
|
94
|
+
"$ref": "shared#severity"
|
|
95
95
|
},
|
|
96
96
|
"errorMessage": {
|
|
97
97
|
"enum": "must be a valid severity level"
|
|
@@ -130,7 +130,7 @@
|
|
|
130
130
|
"type": "object",
|
|
131
131
|
"properties": {
|
|
132
132
|
"formats": {
|
|
133
|
-
"$ref": "
|
|
133
|
+
"$ref": "shared#formats"
|
|
134
134
|
},
|
|
135
135
|
"extends": {
|
|
136
136
|
"$ref": "#/properties/extends"
|
|
@@ -171,9 +171,46 @@
|
|
|
171
171
|
}
|
|
172
172
|
},
|
|
173
173
|
"additionalProperties": {
|
|
174
|
-
"
|
|
175
|
-
|
|
176
|
-
|
|
174
|
+
"oneOf": [
|
|
175
|
+
{
|
|
176
|
+
"$id": "alias-value",
|
|
177
|
+
"type": "string",
|
|
178
|
+
"pattern": "^[$#]",
|
|
179
|
+
"errorMessage": {
|
|
180
|
+
"_": "the value of an alias must be a valid JSON Path expression, a reference to the existing Alias optionally paired with a JSON Path expression subset, or contain a valid set of targets",
|
|
181
|
+
"pattern": "the value of an alias must be a valid JSON Path expression or a reference to the existing Alias optionally paired with a JSON Path expression subset"
|
|
182
|
+
}
|
|
183
|
+
},
|
|
184
|
+
{
|
|
185
|
+
"type": "object",
|
|
186
|
+
"properties": {
|
|
187
|
+
"description": {
|
|
188
|
+
"type": "string"
|
|
189
|
+
},
|
|
190
|
+
"targets": {
|
|
191
|
+
"type": "array",
|
|
192
|
+
"minItems": 1,
|
|
193
|
+
"items": {
|
|
194
|
+
"type": "object",
|
|
195
|
+
"properties": {
|
|
196
|
+
"formats": {
|
|
197
|
+
"$ref": "shared#formats"
|
|
198
|
+
},
|
|
199
|
+
"given": {
|
|
200
|
+
"$ref": "alias-value"
|
|
201
|
+
}
|
|
202
|
+
},
|
|
203
|
+
"required": ["formats", "given"],
|
|
204
|
+
"errorMessage": "a valid target must contain given and non-empty formats"
|
|
205
|
+
},
|
|
206
|
+
"errorMessage": {
|
|
207
|
+
"minItems": "targets must have at least a single alias definition"
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
},
|
|
211
|
+
"required": ["targets"]
|
|
212
|
+
}
|
|
213
|
+
]
|
|
177
214
|
}
|
|
178
215
|
}
|
|
179
216
|
},
|
package/dist/meta/shared.json
CHANGED
|
@@ -1,15 +1,17 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
3
|
-
"$id": "
|
|
3
|
+
"$id": "@stoplight/spectral-core/meta/shared",
|
|
4
4
|
"$defs": {
|
|
5
5
|
"Formats": {
|
|
6
|
+
"$anchor": "formats",
|
|
6
7
|
"type": "array",
|
|
7
8
|
"items": {
|
|
8
|
-
"$ref": "
|
|
9
|
+
"$ref": "#format"
|
|
9
10
|
},
|
|
10
11
|
"errorMessage": "must be an array of formats"
|
|
11
12
|
},
|
|
12
13
|
"Format": {
|
|
14
|
+
"$anchor": "format",
|
|
13
15
|
"spectral-runtime": "spectral-format",
|
|
14
16
|
"errorMessage": "must be a valid format"
|
|
15
17
|
},
|
|
@@ -20,6 +22,7 @@
|
|
|
20
22
|
"enum": ["error", "warn", "info", "hint", "off"]
|
|
21
23
|
},
|
|
22
24
|
"Severity": {
|
|
25
|
+
"$anchor": "severity",
|
|
23
26
|
"oneOf": [
|
|
24
27
|
{
|
|
25
28
|
"$ref": "#/$defs/DiagnosticSeverity"
|
|
@@ -1,10 +1,8 @@
|
|
|
1
|
-
import { JsonPath, Optional } from '@stoplight/types';
|
|
2
|
-
import { JSONPathExpression } from 'nimma';
|
|
3
|
-
import { DiagnosticSeverity } from '@stoplight/types';
|
|
4
|
-
import { IGivenNode } from '../../types';
|
|
1
|
+
import { JsonPath, Optional, DiagnosticSeverity } from '@stoplight/types';
|
|
5
2
|
import { Ruleset } from '../ruleset';
|
|
6
3
|
import { Format } from '../format';
|
|
7
|
-
import { HumanReadableDiagnosticSeverity, IRuleThen, RuleDefinition } from '../types';
|
|
4
|
+
import type { HumanReadableDiagnosticSeverity, IRuleThen, RuleDefinition } from '../types';
|
|
5
|
+
import { FormatsSet } from '../utils/formatsSet';
|
|
8
6
|
export interface IRule {
|
|
9
7
|
description: string | null;
|
|
10
8
|
message: string | null;
|
|
@@ -19,7 +17,7 @@ export interface IRule {
|
|
|
19
17
|
}
|
|
20
18
|
export declare type StringifiedRule = Omit<IRule, 'formats' | 'then'> & {
|
|
21
19
|
name: string;
|
|
22
|
-
formats:
|
|
20
|
+
formats: FormatsSet | null;
|
|
23
21
|
then: (Pick<IRuleThen, 'field'> & {
|
|
24
22
|
function: string;
|
|
25
23
|
functionOptions?: string;
|
|
@@ -34,11 +32,9 @@ export declare class Rule implements IRule {
|
|
|
34
32
|
description: string | null;
|
|
35
33
|
message: string | null;
|
|
36
34
|
resolved: boolean;
|
|
37
|
-
formats:
|
|
35
|
+
formats: FormatsSet | null;
|
|
38
36
|
recommended: boolean;
|
|
39
37
|
documentationUrl: string | null;
|
|
40
|
-
expressions?: JSONPathExpression[] | null;
|
|
41
|
-
get isOptimized(): boolean;
|
|
42
38
|
constructor(name: string, definition: RuleDefinition, owner: Ruleset);
|
|
43
39
|
overrides?: {
|
|
44
40
|
rulesetSource: string;
|
|
@@ -53,9 +49,8 @@ export declare class Rule implements IRule {
|
|
|
53
49
|
set then(then: RuleDefinition['then']);
|
|
54
50
|
get given(): string[];
|
|
55
51
|
set given(given: RuleDefinition['given']);
|
|
52
|
+
getGivenForFormats(formats: Set<Format<any>> | null): string[];
|
|
56
53
|
matchesFormat(formats: Set<Format> | null): boolean;
|
|
57
|
-
optimize(): boolean;
|
|
58
54
|
clone(): Rule;
|
|
59
|
-
hookup(cb: (rule: Rule, node: IGivenNode) => void): void;
|
|
60
55
|
toJSON(): StringifiedRule;
|
|
61
56
|
}
|
|
@@ -1,14 +1,15 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var _Rule_instances, _Rule_severity, _Rule_enabled, _Rule_then, _Rule_given, _Rule_resolveAlias;
|
|
2
|
+
var _Rule_instances, _Rule_severity, _Rule_enabled, _Rule_then, _Rule_given, _Rule_resolveAlias, _Rule_resolveAliasForFormats;
|
|
3
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
4
|
exports.Rule = void 0;
|
|
5
5
|
const tslib_1 = require("tslib");
|
|
6
|
-
const
|
|
6
|
+
const lodash_1 = require("lodash");
|
|
7
7
|
const path_1 = require("@stoplight/path");
|
|
8
8
|
const json_1 = require("@stoplight/json");
|
|
9
|
+
const spectral_runtime_1 = require("@stoplight/spectral-runtime");
|
|
9
10
|
const severity_1 = require("../utils/severity");
|
|
10
11
|
const minimatch_1 = require("../utils/minimatch");
|
|
11
|
-
const
|
|
12
|
+
const formatsSet_1 = require("../utils/formatsSet");
|
|
12
13
|
const ALIAS = /^#([A-Za-z0-9_-]+)/;
|
|
13
14
|
class Rule {
|
|
14
15
|
constructor(name, definition, owner) {
|
|
@@ -28,13 +29,10 @@ class Rule {
|
|
|
28
29
|
this.documentationUrl = (_c = definition.documentationUrl) !== null && _c !== void 0 ? _c : null;
|
|
29
30
|
this.severity = definition.severity;
|
|
30
31
|
this.resolved = definition.resolved !== false;
|
|
31
|
-
this.formats = 'formats' in definition ? new
|
|
32
|
+
this.formats = 'formats' in definition ? new formatsSet_1.FormatsSet(definition.formats) : null;
|
|
32
33
|
this.then = definition.then;
|
|
33
34
|
this.given = definition.given;
|
|
34
35
|
}
|
|
35
|
-
get isOptimized() {
|
|
36
|
-
return Array.isArray(this.expressions);
|
|
37
|
-
}
|
|
38
36
|
get enabled() {
|
|
39
37
|
return tslib_1.__classPrivateFieldGet(this, _Rule_enabled, "f") || this.overrides !== void 0;
|
|
40
38
|
}
|
|
@@ -86,10 +84,18 @@ class Rule {
|
|
|
86
84
|
tslib_1.__classPrivateFieldSet(this, _Rule_then, Array.isArray(then) ? then : [then], "f");
|
|
87
85
|
}
|
|
88
86
|
get given() {
|
|
89
|
-
return tslib_1.__classPrivateFieldGet(this, _Rule_given, "f")
|
|
87
|
+
return tslib_1.__classPrivateFieldGet(this, _Rule_given, "f");
|
|
90
88
|
}
|
|
91
89
|
set given(given) {
|
|
92
|
-
|
|
90
|
+
const actualGiven = Array.isArray(given) ? given : [given];
|
|
91
|
+
tslib_1.__classPrivateFieldSet(this, _Rule_given, this.owner.hasComplexAliases
|
|
92
|
+
? actualGiven
|
|
93
|
+
: actualGiven.map(expr => tslib_1.__classPrivateFieldGet(this, _Rule_instances, "m", _Rule_resolveAlias).call(this, expr, null)).filter(lodash_1.isString), "f");
|
|
94
|
+
}
|
|
95
|
+
getGivenForFormats(formats) {
|
|
96
|
+
return this.owner.hasComplexAliases
|
|
97
|
+
? tslib_1.__classPrivateFieldGet(this, _Rule_given, "f").map(expr => tslib_1.__classPrivateFieldGet(this, _Rule_instances, "m", _Rule_resolveAlias).call(this, expr, formats)).filter(lodash_1.isString)
|
|
98
|
+
: tslib_1.__classPrivateFieldGet(this, _Rule_given, "f");
|
|
93
99
|
}
|
|
94
100
|
matchesFormat(formats) {
|
|
95
101
|
if (this.formats === null) {
|
|
@@ -105,36 +111,9 @@ class Rule {
|
|
|
105
111
|
}
|
|
106
112
|
return false;
|
|
107
113
|
}
|
|
108
|
-
optimize() {
|
|
109
|
-
if (this.expressions !== void 0)
|
|
110
|
-
return this.isOptimized;
|
|
111
|
-
try {
|
|
112
|
-
this.expressions = this.given.map(given => {
|
|
113
|
-
const expr = new nimma_1.JSONPathExpression(given, stub, stub);
|
|
114
|
-
if (expr.matches === null) {
|
|
115
|
-
throw new Error(`Rule "${this.name}": cannot optimize ${given}`);
|
|
116
|
-
}
|
|
117
|
-
return expr;
|
|
118
|
-
});
|
|
119
|
-
}
|
|
120
|
-
catch {
|
|
121
|
-
this.expressions = null;
|
|
122
|
-
}
|
|
123
|
-
return this.isOptimized;
|
|
124
|
-
}
|
|
125
114
|
clone() {
|
|
126
115
|
return new Rule(this.name, this.definition, this.owner);
|
|
127
116
|
}
|
|
128
|
-
hookup(cb) {
|
|
129
|
-
for (const expr of this.expressions) {
|
|
130
|
-
expr.onMatch = (value, path) => {
|
|
131
|
-
cb(this, {
|
|
132
|
-
path,
|
|
133
|
-
value,
|
|
134
|
-
});
|
|
135
|
-
};
|
|
136
|
-
}
|
|
137
|
-
}
|
|
138
117
|
toJSON() {
|
|
139
118
|
return {
|
|
140
119
|
name: this.name,
|
|
@@ -145,19 +124,19 @@ class Rule {
|
|
|
145
124
|
documentationUrl: this.documentationUrl,
|
|
146
125
|
severity: this.severity,
|
|
147
126
|
resolved: this.resolved,
|
|
148
|
-
formats: this.formats
|
|
127
|
+
formats: this.formats,
|
|
149
128
|
then: this.then.map(then => ({
|
|
150
129
|
...then.function,
|
|
151
130
|
function: then.function.name,
|
|
152
131
|
...('functionOptions' in then ? { functionOptions: spectral_runtime_1.printValue(then.functionOptions) } : null),
|
|
153
132
|
})),
|
|
154
|
-
given:
|
|
133
|
+
given: Array.isArray(this.definition.given) ? this.definition.given : [this.definition.given],
|
|
155
134
|
owner: this.owner.id,
|
|
156
135
|
};
|
|
157
136
|
}
|
|
158
137
|
}
|
|
159
138
|
exports.Rule = Rule;
|
|
160
|
-
_Rule_severity = new WeakMap(), _Rule_enabled = new WeakMap(), _Rule_then = new WeakMap(), _Rule_given = new WeakMap(), _Rule_instances = new WeakSet(), _Rule_resolveAlias = function _Rule_resolveAlias(expr) {
|
|
139
|
+
_Rule_severity = new WeakMap(), _Rule_enabled = new WeakMap(), _Rule_then = new WeakMap(), _Rule_given = new WeakMap(), _Rule_instances = new WeakSet(), _Rule_resolveAlias = function _Rule_resolveAlias(expr, formats) {
|
|
161
140
|
var _a;
|
|
162
141
|
let resolvedExpr = expr;
|
|
163
142
|
const stack = new Set();
|
|
@@ -174,15 +153,37 @@ _Rule_severity = new WeakMap(), _Rule_enabled = new WeakMap(), _Rule_then = new
|
|
|
174
153
|
if (this.owner.aliases === null || !(alias in this.owner.aliases)) {
|
|
175
154
|
throw new ReferenceError(`Alias "${alias}" does not exist`);
|
|
176
155
|
}
|
|
177
|
-
|
|
178
|
-
|
|
156
|
+
const aliasValue = this.owner.aliases[alias];
|
|
157
|
+
let actualAliasValue;
|
|
158
|
+
if (typeof aliasValue === 'string') {
|
|
159
|
+
actualAliasValue = aliasValue;
|
|
160
|
+
}
|
|
161
|
+
else {
|
|
162
|
+
actualAliasValue = tslib_1.__classPrivateFieldGet(this, _Rule_instances, "m", _Rule_resolveAliasForFormats).call(this, aliasValue, formats);
|
|
163
|
+
}
|
|
164
|
+
if (actualAliasValue === null) {
|
|
165
|
+
return null;
|
|
166
|
+
}
|
|
167
|
+
if (actualAliasValue.length + 1 === expr.length) {
|
|
168
|
+
resolvedExpr = actualAliasValue;
|
|
179
169
|
}
|
|
180
170
|
else {
|
|
181
|
-
resolvedExpr =
|
|
171
|
+
resolvedExpr = actualAliasValue + resolvedExpr.slice(alias.length + 1);
|
|
182
172
|
}
|
|
183
173
|
}
|
|
184
174
|
return resolvedExpr;
|
|
175
|
+
}, _Rule_resolveAliasForFormats = function _Rule_resolveAliasForFormats({ targets }, formats) {
|
|
176
|
+
if (formats === null || formats.size === 0) {
|
|
177
|
+
return null;
|
|
178
|
+
}
|
|
179
|
+
for (let i = targets.length - 1; i >= 0; i--) {
|
|
180
|
+
const target = targets[i];
|
|
181
|
+
for (const format of target.formats) {
|
|
182
|
+
if (formats.has(format)) {
|
|
183
|
+
return target.given;
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
return null;
|
|
185
188
|
};
|
|
186
|
-
function stub() {
|
|
187
|
-
}
|
|
188
189
|
//# sourceMappingURL=rule.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rule.js","sourceRoot":"","sources":["../../../src/ruleset/rule/rule.ts"],"names":[],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"rule.js","sourceRoot":"","sources":["../../../src/ruleset/rule/rule.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Rule, StringifiedRule } from './rule/rule';
|
|
2
2
|
import { FileRulesetSeverityDefinition, ParserOptions, RulesetAliasesDefinition, RulesetDefinition, RulesetOverridesDefinition } from './types';
|
|
3
|
-
import {
|
|
3
|
+
import { FormatsSet } from './utils/formatsSet';
|
|
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:
|
|
15
|
+
formats: FormatsSet | null;
|
|
16
16
|
rules: Record<string, StringifiedRule>;
|
|
17
17
|
overrides: RulesetOverridesDefinition | null;
|
|
18
18
|
parserOptions: ParserOptions;
|
|
@@ -22,9 +22,10 @@ export declare class Ruleset {
|
|
|
22
22
|
readonly maybeDefinition: unknown;
|
|
23
23
|
readonly id: number;
|
|
24
24
|
protected readonly extends: Ruleset[] | null;
|
|
25
|
-
readonly formats:
|
|
25
|
+
readonly formats: FormatsSet<import("./format").Format<void>>;
|
|
26
26
|
readonly overrides: RulesetOverridesDefinition | null;
|
|
27
27
|
readonly aliases: RulesetAliasesDefinition | null;
|
|
28
|
+
readonly hasComplexAliases: boolean;
|
|
28
29
|
readonly rules: Record<string, Rule>;
|
|
29
30
|
readonly definition: RulesetDefinition;
|
|
30
31
|
constructor(maybeDefinition: unknown, context?: RulesetContext);
|
package/dist/ruleset/ruleset.js
CHANGED
|
@@ -10,6 +10,7 @@ const rules_1 = require("./mergers/rules");
|
|
|
10
10
|
const __1 = require("..");
|
|
11
11
|
const rulesets_1 = require("./mergers/rulesets");
|
|
12
12
|
const json_1 = require("@stoplight/json");
|
|
13
|
+
const formatsSet_1 = require("./utils/formatsSet");
|
|
13
14
|
const STACK_SYMBOL = Symbol('@stoplight/spectral/ruleset/#stack');
|
|
14
15
|
const DEFAULT_RULESET_FILE = /^\.?spectral\.(ya?ml|json|m?js)$/;
|
|
15
16
|
let SEED = 1;
|
|
@@ -19,7 +20,7 @@ class Ruleset {
|
|
|
19
20
|
this.maybeDefinition = maybeDefinition;
|
|
20
21
|
_Ruleset_instances.add(this);
|
|
21
22
|
this.id = SEED++;
|
|
22
|
-
this.formats = new
|
|
23
|
+
this.formats = new formatsSet_1.FormatsSet();
|
|
23
24
|
_Ruleset_context.set(this, void 0);
|
|
24
25
|
let definition;
|
|
25
26
|
if (json_1.isPlainObject(maybeDefinition) && 'extends' in maybeDefinition) {
|
|
@@ -36,7 +37,23 @@ class Ruleset {
|
|
|
36
37
|
severity: 'recommended',
|
|
37
38
|
...context,
|
|
38
39
|
}, "f");
|
|
39
|
-
|
|
40
|
+
let hasComplexAliases = false;
|
|
41
|
+
this.aliases =
|
|
42
|
+
definition.aliases === void 0
|
|
43
|
+
? null
|
|
44
|
+
: Object.fromEntries(Object.entries(definition.aliases).map(alias => {
|
|
45
|
+
const [name, value] = alias;
|
|
46
|
+
if (typeof value === 'string') {
|
|
47
|
+
return alias;
|
|
48
|
+
}
|
|
49
|
+
hasComplexAliases = true;
|
|
50
|
+
const targets = value.targets.map(target => ({
|
|
51
|
+
formats: new formatsSet_1.FormatsSet(target.formats),
|
|
52
|
+
given: target.given,
|
|
53
|
+
}));
|
|
54
|
+
return [name, { ...value, targets }];
|
|
55
|
+
}));
|
|
56
|
+
this.hasComplexAliases = hasComplexAliases;
|
|
40
57
|
const stack = (_a = context === null || context === void 0 ? void 0 : context[STACK_SYMBOL]) !== null && _a !== void 0 ? _a : new Map();
|
|
41
58
|
stack.set(this.definition, this);
|
|
42
59
|
this.extends =
|
|
@@ -165,7 +182,7 @@ class Ruleset {
|
|
|
165
182
|
extends: this.extends,
|
|
166
183
|
source: this.source,
|
|
167
184
|
aliases: this.aliases,
|
|
168
|
-
formats: this.formats.size === 0 ? null :
|
|
185
|
+
formats: this.formats.size === 0 ? null : this.formats,
|
|
169
186
|
rules: this.rules,
|
|
170
187
|
overrides: this.overrides,
|
|
171
188
|
parserOptions: this.parserOptions,
|
|
@@ -198,10 +215,11 @@ _Ruleset_context = new WeakMap(), _Ruleset_instances = new WeakSet(), _Ruleset_g
|
|
|
198
215
|
}
|
|
199
216
|
}
|
|
200
217
|
else if (rule.owner !== this) {
|
|
201
|
-
rule.formats =
|
|
218
|
+
rule.formats =
|
|
219
|
+
rule.owner.definition.formats === void 0 ? null : new formatsSet_1.FormatsSet(rule.owner.definition.formats);
|
|
202
220
|
}
|
|
203
221
|
else if (this.definition.formats !== void 0) {
|
|
204
|
-
rule.formats = new
|
|
222
|
+
rule.formats = new formatsSet_1.FormatsSet(this.definition.formats);
|
|
205
223
|
}
|
|
206
224
|
if (this.definition.documentationUrl !== void 0 && rule.documentationUrl === null) {
|
|
207
225
|
rule.documentationUrl = `${this.definition.documentationUrl}#${name}`;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ruleset.js","sourceRoot":"","sources":["../../src/ruleset/ruleset.ts"],"names":[],"mappings":";;;;;AAAA,0CAAoD;AACpD,iDAA8C;AAS9C,6CAAkD;
|
|
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 ?
|
|
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":";;;AAAA,6BAAuC;AACvC,6CAAqC;AACrC,2CAAmC;
|
|
1
|
+
{"version":3,"file":"rulesetFunction.js","sourceRoot":"","sources":["../../src/ruleset/rulesetFunction.ts"],"names":[],"mappings":"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"}
|
package/dist/ruleset/types.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { DiagnosticSeverity } from '@stoplight/types';
|
|
2
2
|
import { Format } from './format';
|
|
3
3
|
import { RulesetFunction, RulesetFunctionWithValidator } from '../types';
|
|
4
|
+
import { FormatsSet } from './utils/formatsSet';
|
|
4
5
|
export declare type HumanReadableDiagnosticSeverity = 'error' | 'warn' | 'info' | 'hint' | 'off';
|
|
5
6
|
export declare type FileRuleSeverityDefinition = DiagnosticSeverity | HumanReadableDiagnosticSeverity | boolean;
|
|
6
7
|
export declare type FileRulesetSeverityDefinition = 'off' | 'recommended' | 'all';
|
|
@@ -38,7 +39,14 @@ export declare type RulesetOverrideDefinition = Pick<RulesetDefinition, 'formats
|
|
|
38
39
|
export declare type RulesetOverridesDefinition = ReadonlyArray<{
|
|
39
40
|
files: string[];
|
|
40
41
|
} & RulesetOverrideDefinition>;
|
|
41
|
-
export declare type
|
|
42
|
+
export declare type RulesetScopedAliasDefinition = {
|
|
43
|
+
description?: string;
|
|
44
|
+
targets: {
|
|
45
|
+
formats: FormatsSet;
|
|
46
|
+
given: string;
|
|
47
|
+
}[];
|
|
48
|
+
};
|
|
49
|
+
export declare type RulesetAliasesDefinition = Record<string, string | RulesetScopedAliasDefinition>;
|
|
42
50
|
export declare type RulesetDefinition = Readonly<{
|
|
43
51
|
documentationUrl?: string;
|
|
44
52
|
formats?: Format<any>[];
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.FormatsSet = void 0;
|
|
4
|
+
function printFormat(format) {
|
|
5
|
+
var _a;
|
|
6
|
+
return (_a = format.displayName) !== null && _a !== void 0 ? _a : format.name;
|
|
7
|
+
}
|
|
8
|
+
class FormatsSet extends Set {
|
|
9
|
+
toJSON() {
|
|
10
|
+
return Array.from(this).map(printFormat);
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
exports.FormatsSet = FormatsSet;
|
|
14
|
+
//# sourceMappingURL=formatsSet.js.map
|
|
@@ -0,0 +1 @@
|
|
|
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"}
|
|
@@ -10,7 +10,7 @@ const ruleSchema = require("../meta/rule.schema.json");
|
|
|
10
10
|
const rulesetSchema = require("../meta/ruleset.schema.json");
|
|
11
11
|
const shared = require("../meta/shared.json");
|
|
12
12
|
const message = ajv_1._ `'spectral-message'`;
|
|
13
|
-
const ajv = new ajv_1.default({ allErrors: true, strict: true, strictRequired: false });
|
|
13
|
+
const ajv = new ajv_1.default({ allErrors: true, strict: true, strictRequired: false, keywords: ['$anchor'] });
|
|
14
14
|
ajv_formats_1.default(ajv);
|
|
15
15
|
ajv_errors_1.default(ajv);
|
|
16
16
|
ajv.addKeyword({
|
|
@@ -43,7 +43,7 @@ class RulesetValidationError extends Error {
|
|
|
43
43
|
}
|
|
44
44
|
exports.RulesetValidationError = RulesetValidationError;
|
|
45
45
|
const RULE_INSTANCE_PATH = /^\/rules\/[^/]+/;
|
|
46
|
-
const GENERIC_INSTANCE_PATH = /^\/(?:extends|overrides(?:\/\d+\/extends)?)/;
|
|
46
|
+
const GENERIC_INSTANCE_PATH = /^\/(?:aliases|extends|overrides(?:\/\d+\/extends)?)/;
|
|
47
47
|
class RulesetAjvValidationError extends RulesetValidationError {
|
|
48
48
|
constructor(ruleset, errors) {
|
|
49
49
|
super(RulesetAjvValidationError.serializeAjvErrors(ruleset, errors));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validation.js","sourceRoot":"","sources":["../../src/ruleset/validation.ts"],"names":[],"mappings":";;;AAAA,6BAA0C;AAC1C,6CAAqC;AACrC,2CAAmC;AACnC,0CAAgD;AAChD,kEAAoE;AAEpE,uDAAuD;AACvD,6DAA6D;AAC7D,8CAA8C;AAG9C,MAAM,OAAO,GAAG,OAAC,CAAA,oBAAoB,CAAC;AAEtC,MAAM,GAAG,GAAG,IAAI,aAAG,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"validation.js","sourceRoot":"","sources":["../../src/ruleset/validation.ts"],"names":[],"mappings":"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"}
|
package/dist/runner/runner.js
CHANGED
|
@@ -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
|
|
10
|
-
const
|
|
11
|
-
|
|
12
|
-
|
|
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 isAggregateError_1 = require("../guards/isAggregateError");
|
|
34
10
|
class Runner {
|
|
35
11
|
constructor(runtime, inventory) {
|
|
36
12
|
var _a;
|
|
@@ -45,43 +21,39 @@ class Runner {
|
|
|
45
21
|
this.results.push(result);
|
|
46
22
|
}
|
|
47
23
|
async run(ruleset) {
|
|
24
|
+
var _a, _b;
|
|
25
|
+
var _c;
|
|
48
26
|
this.runtime.emit('setup');
|
|
49
27
|
const { inventory: documentInventory } = this;
|
|
50
28
|
const { rules } = ruleset;
|
|
29
|
+
const formats = (_a = this.document.formats) !== null && _a !== void 0 ? _a : null;
|
|
51
30
|
const runnerContext = {
|
|
52
31
|
ruleset,
|
|
53
32
|
documentInventory,
|
|
54
33
|
results: this.results,
|
|
55
34
|
promises: [],
|
|
56
35
|
};
|
|
57
|
-
const
|
|
58
|
-
const
|
|
59
|
-
const
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
lintNode_1.lintNode(runnerContext, node, rule);
|
|
36
|
+
const enabledRules = Object.values(rules).filter(rule => rule.enabled);
|
|
37
|
+
const relevantRules = enabledRules.filter(rule => rule.matchesFormat(documentInventory.formats));
|
|
38
|
+
const callbacks = {
|
|
39
|
+
resolved: {},
|
|
40
|
+
unresolved: {},
|
|
63
41
|
};
|
|
64
42
|
for (const rule of relevantRules) {
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
43
|
+
for (const given of rule.getGivenForFormats(formats)) {
|
|
44
|
+
const cb = (scope) => {
|
|
45
|
+
lintNode_1.lintNode(runnerContext, scope, rule);
|
|
46
|
+
};
|
|
47
|
+
((_b = (_c = callbacks[rule.resolved ? 'resolved' : 'unresolved'])[given]) !== null && _b !== void 0 ? _b : (_c[given] = [])).push(cb);
|
|
68
48
|
}
|
|
69
|
-
if (rule.resolved) {
|
|
70
|
-
optimizedRules.push(rule);
|
|
71
|
-
}
|
|
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
49
|
}
|
|
80
|
-
|
|
81
|
-
|
|
50
|
+
const resolvedJsonPaths = Object.keys(callbacks.resolved);
|
|
51
|
+
const unresolvedJsonPaths = Object.keys(callbacks.unresolved);
|
|
52
|
+
if (resolvedJsonPaths.length > 0) {
|
|
53
|
+
execute(runnerContext.documentInventory.resolved, callbacks.resolved, resolvedJsonPaths);
|
|
82
54
|
}
|
|
83
|
-
|
|
84
|
-
|
|
55
|
+
if (unresolvedJsonPaths.length > 0) {
|
|
56
|
+
execute(runnerContext.documentInventory.unresolved, callbacks.unresolved, unresolvedJsonPaths);
|
|
85
57
|
}
|
|
86
58
|
this.runtime.emit('beforeTeardown');
|
|
87
59
|
try {
|
|
@@ -98,7 +70,39 @@ class Runner {
|
|
|
98
70
|
}
|
|
99
71
|
}
|
|
100
72
|
exports.Runner = Runner;
|
|
101
|
-
function
|
|
102
|
-
|
|
73
|
+
function execute(input, callbacks, jsonPathExpressions) {
|
|
74
|
+
var _a;
|
|
75
|
+
if (!json_1.isPlainObject(input) && !Array.isArray(input)) {
|
|
76
|
+
for (const cb of (_a = callbacks.$) !== null && _a !== void 0 ? _a : []) {
|
|
77
|
+
cb({
|
|
78
|
+
path: [],
|
|
79
|
+
value: input,
|
|
80
|
+
});
|
|
81
|
+
}
|
|
82
|
+
return;
|
|
83
|
+
}
|
|
84
|
+
try {
|
|
85
|
+
const nimma = new legacy_1.default(jsonPathExpressions, {
|
|
86
|
+
fallback: fallbacks_1.jsonPathPlus,
|
|
87
|
+
unsafe: false,
|
|
88
|
+
output: 'auto',
|
|
89
|
+
});
|
|
90
|
+
nimma.query(input, Object.entries(callbacks).reduce((mapped, [key, cbs]) => {
|
|
91
|
+
mapped[key] = scope => {
|
|
92
|
+
for (const cb of cbs) {
|
|
93
|
+
cb(scope);
|
|
94
|
+
}
|
|
95
|
+
};
|
|
96
|
+
return mapped;
|
|
97
|
+
}, {}));
|
|
98
|
+
}
|
|
99
|
+
catch (e) {
|
|
100
|
+
if (isAggregateError_1.isAggregateError(e) && e.errors.length === 1) {
|
|
101
|
+
throw e.errors[0];
|
|
102
|
+
}
|
|
103
|
+
else {
|
|
104
|
+
throw e;
|
|
105
|
+
}
|
|
106
|
+
}
|
|
103
107
|
}
|
|
104
108
|
//# sourceMappingURL=runner.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runner.js","sourceRoot":"","sources":["../../src/runner/runner.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"runner.js","sourceRoot":"","sources":["../../src/runner/runner.ts"],"names":[],"mappings":";;;AAGA,oCAAkE;AAClE,yCAAsC;AAItC,yCAA+C;AAC/C,+CAA+C;AAC/C,0CAAgD;AAChD,iEAA8D;AAE9D,MAAa,MAAM;IAGjB,YAA+B,OAAsB,EAAqB,SAA4B;;QAAvE,YAAO,GAAP,OAAO,CAAe;QAAqB,cAAS,GAAT,SAAS,CAAmB;QACpG,IAAI,CAAC,OAAO,GAAG,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,GAAG,CAAC,MAAA,IAAI,CAAC,SAAS,CAAC,MAAM,mCAAI,EAAE,CAAC,CAAC,CAAC;IACnF,CAAC;IAED,IAAc,QAAQ;QACpB,OAAO,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC;IACjC,CAAC;IAEM,SAAS,CAAC,MAAmB;QAClC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC5B,CAAC;IAEM,KAAK,CAAC,GAAG,CAAC,OAAgB;;;QAC/B,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAE3B,MAAM,EAAE,SAAS,EAAE,iBAAiB,EAAE,GAAG,IAAI,CAAC;QAC9C,MAAM,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC;QAC1B,MAAM,OAAO,GAAG,MAAA,IAAI,CAAC,QAAQ,CAAC,OAAO,mCAAI,IAAI,CAAC;QAE9C,MAAM,aAAa,GAA2B;YAC5C,OAAO;YACP,iBAAiB;YACjB,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,QAAQ,EAAE,EAAE;SACb,CAAC;QAEF,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACvE,MAAM,aAAa,GAAG,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC,CAAC;QACjG,MAAM,SAAS,GAAkE;YAC/E,QAAQ,EAAE,EAAE;YACZ,UAAU,EAAE,EAAE;SACf,CAAC;QAEF,KAAK,MAAM,IAAI,IAAI,aAAa,EAAE;YAChC,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,EAAE;gBACpD,MAAM,EAAE,GAAa,CAAC,KAAK,EAAQ,EAAE;oBACnC,mBAAQ,CAAC,aAAa,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;gBACvC,CAAC,CAAC;gBAEF,aAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,EAAC,KAAK,wCAAL,KAAK,IAAM,EAAE,EAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;aAC/E;SACF;QAED,MAAM,iBAAiB,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;QAC1D,MAAM,mBAAmB,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;QAE9D,IAAI,iBAAiB,CAAC,MAAM,GAAG,CAAC,EAAE;YAChC,OAAO,CAAC,aAAa,CAAC,iBAAiB,CAAC,QAAQ,EAAE,SAAS,CAAC,QAAQ,EAAE,iBAAiB,CAAC,CAAC;SAC1F;QAED,IAAI,mBAAmB,CAAC,MAAM,GAAG,CAAC,EAAE;YAClC,OAAO,CAAC,aAAa,CAAC,iBAAiB,CAAC,UAAU,EAAE,SAAS,CAAC,UAAU,EAAE,mBAAmB,CAAC,CAAC;SAChG;QAED,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QAEpC,IAAI;YACF,IAAI,aAAa,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;gBACrC,MAAM,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;aAC3C;SACF;gBAAS;YACR,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;SACpC;IACH,CAAC;IAEM,UAAU,CAAC,kBAA0C;QAC1D,OAAO,sBAAc,CAAC,IAAI,CAAC,OAAO,EAAE,kBAAkB,CAAC,CAAC;IAC1D,CAAC;CACF;AAvED,wBAuEC;AAED,SAAS,OAAO,CAAC,KAAc,EAAE,SAAqC,EAAE,mBAA6B;;IACnG,IAAI,CAAC,oBAAa,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;QAClD,KAAK,MAAM,EAAE,IAAI,MAAA,SAAS,CAAC,CAAC,mCAAI,EAAE,EAAE;YAClC,EAAE,CAAC;gBACD,IAAI,EAAE,EAAE;gBACR,KAAK,EAAE,KAAK;aACb,CAAC,CAAC;SACJ;QAED,OAAO;KACR;IAED,IAAI;QACF,MAAM,KAAK,GAAG,IAAI,gBAAK,CAAC,mBAAmB,EAAE;YAC3C,QAAQ,EAAE,wBAAY;YACtB,MAAM,EAAE,KAAK;YACb,MAAM,EAAE,MAAM;SACf,CAAC,CAAC;QAEH,KAAK,CAAC,KAAK,CACT,KAAK,EACL,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,MAAM,CAA2B,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,EAAE;YAChF,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,EAAE;gBACpB,KAAK,MAAM,EAAE,IAAI,GAAG,EAAE;oBACpB,EAAE,CAAC,KAAK,CAAC,CAAC;iBACX;YACH,CAAC,CAAC;YAEF,OAAO,MAAM,CAAC;QAChB,CAAC,EAAE,EAAE,CAAC,CACP,CAAC;KACH;IAAC,OAAO,CAAC,EAAE;QACV,IAAI,mCAAgB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE;YAChD,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;SACnB;aAAM;YACL,MAAM,CAAC,CAAC;SACT;KACF;AACH,CAAC"}
|
package/dist/types/function.d.ts
CHANGED
|
@@ -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;
|
package/dist/types/spectral.d.ts
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@stoplight/spectral-core",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.6.0",
|
|
4
4
|
"main": "dist/index.js",
|
|
5
5
|
"types": "dist/index.d.ts",
|
|
6
6
|
"sideEffects": false,
|
|
@@ -18,16 +18,14 @@
|
|
|
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.
|
|
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": "
|
|
28
|
+
"@stoplight/spectral-ref-resolver": "^1.0.0",
|
|
31
29
|
"@stoplight/spectral-runtime": "^1.0.0",
|
|
32
30
|
"@stoplight/types": "12.3.0",
|
|
33
31
|
"ajv": "~8.6.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": "
|
|
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.
|
|
43
|
-
"tslib": "
|
|
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
|
}
|