@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 +0 -1
- package/dist/consts.js +1 -2
- package/dist/consts.js.map +1 -1
- package/dist/ruleset/rule/rule.d.ts +10 -6
- package/dist/ruleset/rule/rule.js +20 -32
- package/dist/ruleset/rule/rule.js.map +1 -1
- package/dist/ruleset/ruleset.d.ts +17 -2
- package/dist/ruleset/ruleset.js +21 -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/runner/runner.js +56 -54
- 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 +9 -12
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.0';
|
|
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"}
|
|
@@ -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
|
-
|
|
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
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
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":";;;;;AACA,
|
|
1
|
+
{"version":3,"file":"rule.js","sourceRoot":"","sources":["../../../src/ruleset/rule/rule.ts"],"names":[],"mappings":"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"}
|
|
@@ -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
|
-
|
|
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 {};
|
package/dist/ruleset/ruleset.js
CHANGED
|
@@ -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
|
-
|
|
72
|
-
for (const
|
|
73
|
-
|
|
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":";;;;;AAAA,0CAAoD;AACpD,iDAA8C;AAS9C,6CAAkD;AAElD,2CAA4C;AAC5C,0BAAmE;AACnE,iDAAmD;AACnD,0CAA6F;AAG7F,MAAM,YAAY,GAAG,MAAM,CAAC,oCAAoC,CAAC,CAAC;AAClE,MAAM,oBAAoB,GAAG,kCAAkC,CAAC;AAQhE,MAAa,OAAO;
|
|
1
|
+
{"version":3,"file":"ruleset.js","sourceRoot":"","sources":["../../src/ruleset/ruleset.ts"],"names":[],"mappings":";;;;;AAAA,0CAAoD;AACpD,iDAA8C;AAS9C,6CAAkD;AAElD,2CAA4C;AAC5C,0BAAmE;AACnE,iDAAmD;AACnD,0CAA6F;AAG7F,MAAM,YAAY,GAAG,MAAM,CAAC,oCAAoC,CAAC,CAAC;AAClE,MAAM,oBAAoB,GAAG,kCAAkC,CAAC;AAQhE,IAAI,IAAI,GAAG,CAAC,CAAC;AAab,MAAa,OAAO;IAYlB,YAAqB,eAAwB,EAAE,OAAwB;;QAAlD,oBAAe,GAAf,eAAe,CAAS;;QAX7B,OAAE,GAAG,IAAI,EAAE,CAAC;QAGZ,YAAO,GAAG,IAAI,GAAG,EAAU,CAAC;QAM5C,mCAAgF;QAG9E,IAAI,UAA6B,CAAC;QAClC,IAAI,oBAAa,CAAC,eAAe,CAAC,IAAI,SAAS,IAAI,eAAe,EAAE;YAClE,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE,GAAG,GAAG,EAAE,GAAG,eAAe,CAAC;YAE/C,+BAAkB,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,GAAG,GAAG,EAAE,CAAC,CAAC;YAC5C,UAAU,GAAG,eAAoC,CAAC;SACnD;aAAM;YACL,+BAAkB,CAAC,eAAe,CAAC,CAAC;YACpC,UAAU,GAAG,eAAe,CAAC;SAC9B;QAED,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAE7B,+BAAA,IAAI,oBAAY;YACd,QAAQ,EAAE,aAAa;YACvB,GAAG,OAAO;SACX,MAAA,CAAC;QAEF,IAAI,CAAC,OAAO,GAAG,UAAU,CAAC,OAAO,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,UAAU,CAAC,OAAO,EAAE,CAAC;QAEhF,MAAM,KAAK,GAAG,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAG,YAAY,CAAC,mCAAI,IAAI,GAAG,EAA8B,CAAC;QAE/E,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;QAEjC,IAAI,CAAC,OAAO;YACV,SAAS,IAAI,UAAU;gBACrB,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CACpF,CAAC,UAAU,EAAE,SAAS,EAAE,EAAE;oBACxB,IAAI,eAAe,CAAC;oBACpB,IAAI,QAAQ,GAAkC,aAAa,CAAC;oBAE5D,IAAI,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE;wBAC5B,CAAC,eAAe,EAAE,QAAQ,CAAC,GAAG,SAAS,CAAC;qBACzC;yBAAM;wBACL,eAAe,GAAG,SAAS,CAAC;qBAC7B;oBAED,MAAM,gBAAgB,GAAG,KAAK,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;oBAEpD,IAAI,gBAAgB,KAAK,KAAK,CAAC,EAAE;wBAC/B,OAAO,UAAU,CAAC;qBACnB;oBAED,UAAU,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,eAAe,EAAE,EAAE,QAAQ,EAAE,CAAC,YAAY,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;oBACnF,OAAO,UAAU,CAAC;gBACpB,CAAC,EACD,EAAE,CACH;gBACH,CAAC,CAAC,IAAI,CAAC;QAEX,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,UAAU,CAAC,SAAS,EAAE;YAC5C,IAAI,CAAC,SAAS,GAAG,UAAU,CAAC,SAAS,CAAC;SACvC;aAAM;YACL,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;SACvB;QAED,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAE9B,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE;YAC1C,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE;gBAC5C,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;aAC1B;SACF;QAED,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE;YAC/B,KAAK,MAAM,EAAE,OAAO,EAAE,IAAI,IAAI,CAAC,OAAO,EAAE;gBACtC,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE;oBAC5B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;iBAC1B;aACF;SACF;QAED,IAAI,CAAC,KAAK,GAAG,+BAAA,IAAI,6CAAU,MAAd,IAAI,CAAY,CAAC;IAChC,CAAC;IAED,IAAI,MAAM;;QACR,OAAO,MAAA,+BAAA,IAAI,wBAAS,CAAC,MAAM,mCAAI,IAAI,CAAC;IACtC,CAAC;IAEM,UAAU,CAAC,MAAqB;QACrC,IAAI,IAAI,CAAC,SAAS,KAAK,IAAI,EAAE;YAC3B,OAAO,IAAI,CAAC;SACb;QAED,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,GAAG,IAAI,CAAC;QAEvC,IAAI,MAAM,KAAK,IAAI,EAAE;YACnB,MAAM,IAAI,KAAK,CACb,wHAAwH,CACzH,CAAC;SACH;QAED,IAAI,aAAa,KAAK,IAAI,EAAE;YAC1B,MAAM,IAAI,KAAK,CACb,sHAAsH,CACvH,CAAC;SACH;QAED,MAAM,cAAc,GAAG,eAAQ,CAAC,cAAO,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC,CAAC;QAChE,MAAM,gBAAgB,GAMlB,EAAE,CAAC;QAEP,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE,GAAG,OAAO,EAAE,EAAE,EAAE;;YACjE,MAAM,aAAa,GAAa,EAAE,CAAC;YAEnC,KAAK,MAAM,OAAO,IAAI,KAAK,EAAE;gBAC3B,MAAM,aAAa,GAAG,MAAA,2BAAoB,CAAC,OAAO,CAAC,mCAAI,OAAO,CAAC;gBAE/D,IAAI,CAAC,qBAAS,CAAC,cAAc,EAAE,aAAa,CAAC;oBAAE,SAAS;gBAExD,MAAM,OAAO,GAAG,4BAAqB,CAAC,OAAO,CAAC,CAAC;gBAE/C,IAAI,aAAa,KAAK,OAAO,EAAE;oBAC7B,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;iBAC7B;qBAAM,IAAI,CAAC,CAAC,OAAO,IAAI,OAAO,CAAC,IAAI,OAAO,KAAK,IAAI,EAAE;oBACpD,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAC;iBACtE;qBAAM;oBACL,KAAK,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;wBAC5D,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,OAAO,IAAI,KAAK,SAAS,EAAE;4BACzD,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAC;yBACtE;wBAED,MAAM,EAAE,UAAU,EAAE,oBAAoB,EAAE,GAAG,OAAC,gBAAgB,CAAC,QAAQ,qCAAzB,gBAAgB,CAAC,QAAQ,IAAM;4BAC3E,aAAa;4BACb,UAAU,EAAE,IAAI,GAAG,EAAE;yBACtB,EAAC,CAAC;wBAEH,MAAM,QAAQ,GAAG,yBAAqB,CAAC,IAAI,CAAC,CAAC;wBAC7C,IAAI,0BAA0B,GAAG,oBAAoB,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;wBAEzE,IAAI,0BAA0B,KAAK,KAAK,CAAC,EAAE;4BACzC,0BAA0B,GAAG,IAAI,GAAG,EAAE,CAAC;4BACvC,oBAAoB,CAAC,GAAG,CAAC,aAAa,EAAE,0BAA0B,CAAC,CAAC;yBACrE;wBAED,0BAA0B,CAAC,GAAG,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;qBACnD;iBACF;aACF;YAED,OAAO,aAAa,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;QACnD,CAAC,CAAC,CAAC;QAEH,MAAM,EAAE,SAAS,EAAE,CAAC,EAAE,GAAG,UAAU,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC;QAExD,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE;YACxE,OAAO,IAAI,CAAC;SACb;QAED,MAAM,eAAe,GACnB,SAAS,CAAC,MAAM,KAAK,CAAC;YACpB,CAAC,CAAC,IAAI;YACN,CAAC,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC;gBACtB,CAAC,CAAC,SAAS;qBACN,KAAK,CAAC,CAAC,CAAC;qBACR,MAAM,CACL,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,wBAAa,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,EACjD,SAAS,CAAC,CAAC,CAAsB,CAClC;gBACL,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;QAEnB,MAAM,OAAO,GAAG,IAAI,OAAO,CACzB,eAAe,KAAK,IAAI,CAAC,CAAC,CAAE,UAAgC,CAAC,CAAC,CAAC,wBAAa,CAAC,UAAU,EAAE,eAAe,EAAE,KAAK,CAAC,EAChH;YACE,QAAQ,EAAE,aAAa;YACvB,MAAM,EAAE,aAAa;SACtB,CACF,CAAC;QAEF,KAAK,MAAM,CAAC,QAAQ,EAAE,oBAAoB,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,gBAAgB,CAAC,EAAE;YAC/E,IAAI,QAAQ,IAAI,OAAO,CAAC,KAAK,EAAE;gBAC7B,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,SAAS,GAAG,oBAAoB,CAAC;aAC1D;SACF;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;IA2CD,IAAW,aAAa;QACtB,OAAO,EAAE,GAAG,0BAAsB,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,CAAC;IACzE,CAAC;IAEM,MAAM,CAAC,oBAAoB,CAAC,GAAW;QAC5C,OAAO,oBAAoB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACxC,CAAC;IAEM,MAAM;QAIX,OAAO;YACL,EAAE,EAAE,IAAI,CAAC,EAAE;YACX,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC,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;YACvG,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,aAAa,EAAE,IAAI,CAAC,aAAa;SAClC,CAAC;IACJ,CAAC;CACF;AApQD,0BAoQC;;IA/DG,MAAM,KAAK,GAAyB,EAAE,CAAC;IAEvC,IAAI,IAAI,CAAC,OAAO,KAAK,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;QACpD,KAAK,MAAM,eAAe,IAAI,IAAI,CAAC,OAAO,EAAE;YAC1C,IAAI,eAAe,KAAK,IAAI;gBAAE,SAAS;YACvC,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC,KAAK,CAAC,EAAE;gBACvD,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;aACzB;SACF;KACF;IAED,IAAI,OAAO,IAAI,IAAI,CAAC,UAAU,EAAE;QAC9B,KAAK,MAAM,CAAC,IAAI,EAAE,UAAU,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE;YACtE,MAAM,IAAI,GAAG,iBAAS,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC;YAC5D,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;YAEnB,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI,EAAE;gBACvB,IAAI,CAAC,OAAO;oBACV,+BAAA,IAAI,wBAAS,CAAC,QAAQ,KAAK,KAAK,IAAI,CAAC,+BAAA,IAAI,wBAAS,CAAC,QAAQ,KAAK,aAAa,IAAI,IAAI,CAAC,WAAW,CAAC,CAAC;aACtG;YAED,IAAI,IAAI,CAAC,OAAO,KAAK,IAAI,EAAE;gBACzB,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,OAAO,EAAE;oBACjC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;iBAC1B;aACF;iBAAM,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI,EAAE;gBAC9B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;aACzG;iBAAM,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,KAAK,KAAK,CAAC,EAAE;gBAC7C,IAAI,CAAC,OAAO,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;aACjD;YAED,IAAI,IAAI,CAAC,UAAU,CAAC,gBAAgB,KAAK,KAAK,CAAC,IAAI,IAAI,CAAC,gBAAgB,KAAK,IAAI,EAAE;gBACjF,IAAI,CAAC,gBAAgB,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,gBAAgB,IAAI,IAAI,EAAE,CAAC;aACvE;SACF;KACF;IAED,OAAO,KAAK,CAAC;AACf,CAAC"}
|
|
@@ -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/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 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
|
|
58
|
-
const
|
|
59
|
-
const
|
|
60
|
-
|
|
61
|
-
|
|
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
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
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
|
-
|
|
81
|
-
|
|
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
|
|
102
|
-
|
|
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":";;;
|
|
1
|
+
{"version":3,"file":"runner.js","sourceRoot":"","sources":["../../src/runner/runner.ts"],"names":[],"mappings":"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"}
|
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.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.
|
|
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": "
|
|
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
|
}
|