immosquare-cleaner 0.1.23 → 0.1.24
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/immosquare-cleaner/version.rb +1 -1
- data/linters/rubocop-3.2.2.yml +1 -0
- data/linters/rubocop.yml +2 -0
- data/node_modules/@eslint-community/eslint-utils/node_modules/eslint/node_modules/@eslint/eslintrc/LICENSE +19 -0
- data/node_modules/@eslint-community/eslint-utils/node_modules/eslint/node_modules/@eslint/eslintrc/README.md +71 -0
- data/node_modules/@eslint-community/eslint-utils/node_modules/eslint/node_modules/@eslint/eslintrc/conf/config-schema.js +79 -0
- data/node_modules/@eslint-community/eslint-utils/node_modules/eslint/node_modules/@eslint/eslintrc/conf/environments.js +215 -0
- data/node_modules/@eslint-community/eslint-utils/node_modules/eslint/node_modules/@eslint/eslintrc/dist/eslintrc-universal.cjs +1104 -0
- data/node_modules/@eslint-community/eslint-utils/node_modules/eslint/node_modules/@eslint/eslintrc/dist/eslintrc-universal.cjs.map +1 -0
- data/node_modules/@eslint-community/eslint-utils/node_modules/eslint/node_modules/@eslint/eslintrc/dist/eslintrc.cjs +4333 -0
- data/node_modules/@eslint-community/eslint-utils/node_modules/eslint/node_modules/@eslint/eslintrc/dist/eslintrc.cjs.map +1 -0
- data/node_modules/@eslint-community/eslint-utils/node_modules/eslint/node_modules/@eslint/eslintrc/lib/cascading-config-array-factory.js +532 -0
- data/node_modules/@eslint-community/eslint-utils/node_modules/eslint/node_modules/@eslint/eslintrc/lib/config-array/config-array.js +523 -0
- data/node_modules/@eslint-community/eslint-utils/node_modules/eslint/node_modules/@eslint/eslintrc/lib/config-array/config-dependency.js +115 -0
- data/node_modules/@eslint-community/eslint-utils/node_modules/eslint/node_modules/@eslint/eslintrc/lib/config-array/extracted-config.js +145 -0
- data/node_modules/@eslint-community/eslint-utils/node_modules/eslint/node_modules/@eslint/eslintrc/lib/config-array/ignore-pattern.js +238 -0
- data/node_modules/@eslint-community/eslint-utils/node_modules/eslint/node_modules/@eslint/eslintrc/lib/config-array/index.js +19 -0
- data/node_modules/@eslint-community/eslint-utils/node_modules/eslint/node_modules/@eslint/eslintrc/lib/config-array/override-tester.js +225 -0
- data/node_modules/@eslint-community/eslint-utils/node_modules/eslint/node_modules/@eslint/eslintrc/lib/config-array-factory.js +1149 -0
- data/node_modules/@eslint-community/eslint-utils/node_modules/eslint/node_modules/@eslint/eslintrc/lib/flat-compat.js +318 -0
- data/node_modules/@eslint-community/eslint-utils/node_modules/eslint/node_modules/@eslint/eslintrc/lib/index-universal.js +29 -0
- data/node_modules/@eslint-community/eslint-utils/node_modules/eslint/node_modules/@eslint/eslintrc/lib/index.js +56 -0
- data/node_modules/@eslint-community/eslint-utils/node_modules/eslint/node_modules/@eslint/eslintrc/lib/shared/ajv.js +191 -0
- data/node_modules/@eslint-community/eslint-utils/node_modules/eslint/node_modules/@eslint/eslintrc/lib/shared/config-ops.js +135 -0
- data/node_modules/@eslint-community/eslint-utils/node_modules/eslint/node_modules/@eslint/eslintrc/lib/shared/config-validator.js +325 -0
- data/node_modules/@eslint-community/eslint-utils/node_modules/eslint/node_modules/@eslint/eslintrc/lib/shared/deprecation-warnings.js +63 -0
- data/node_modules/@eslint-community/eslint-utils/node_modules/eslint/node_modules/@eslint/eslintrc/lib/shared/naming.js +96 -0
- data/node_modules/@eslint-community/eslint-utils/node_modules/eslint/node_modules/@eslint/eslintrc/lib/shared/relative-module-resolver.js +42 -0
- data/node_modules/@eslint-community/eslint-utils/node_modules/eslint/node_modules/@eslint/eslintrc/lib/shared/types.js +149 -0
- data/node_modules/@eslint-community/eslint-utils/node_modules/eslint/node_modules/@eslint/eslintrc/node_modules/strip-json-comments/index.d.ts +36 -0
- data/node_modules/@eslint-community/eslint-utils/node_modules/eslint/node_modules/@eslint/eslintrc/node_modules/strip-json-comments/index.js +77 -0
- data/node_modules/@eslint-community/eslint-utils/node_modules/eslint/node_modules/@eslint/eslintrc/node_modules/strip-json-comments/license +9 -0
- data/node_modules/@eslint-community/eslint-utils/node_modules/eslint/node_modules/@eslint/eslintrc/node_modules/strip-json-comments/package.json +47 -0
- data/node_modules/@eslint-community/eslint-utils/node_modules/eslint/node_modules/@eslint/eslintrc/node_modules/strip-json-comments/readme.md +78 -0
- data/node_modules/@eslint-community/eslint-utils/node_modules/eslint/node_modules/@eslint/eslintrc/package.json +82 -0
- data/node_modules/@eslint-community/eslint-utils/node_modules/eslint/node_modules/@eslint/eslintrc/universal.js +9 -0
- data/node_modules/@eslint-community/eslint-utils/node_modules/eslint/node_modules/@eslint/js/LICENSE +19 -0
- data/node_modules/@eslint-community/eslint-utils/node_modules/eslint/node_modules/@eslint/js/README.md +57 -0
- data/node_modules/@eslint-community/eslint-utils/node_modules/eslint/node_modules/@eslint/js/package.json +31 -0
- data/node_modules/@eslint-community/eslint-utils/node_modules/eslint/node_modules/@eslint/js/src/configs/eslint-all.js +278 -0
- data/node_modules/@eslint-community/eslint-utils/node_modules/eslint/node_modules/@eslint/js/src/configs/eslint-recommended.js +76 -0
- data/node_modules/@eslint-community/eslint-utils/node_modules/eslint/node_modules/@eslint/js/src/index.js +17 -0
- data/node_modules/@eslint-community/eslint-utils/node_modules/eslint/node_modules/@humanwhocodes/config-array/LICENSE +201 -0
- data/node_modules/@eslint-community/eslint-utils/node_modules/eslint/node_modules/@humanwhocodes/config-array/README.md +342 -0
- data/node_modules/@eslint-community/eslint-utils/node_modules/eslint/node_modules/@humanwhocodes/config-array/api.js +1061 -0
- data/node_modules/@eslint-community/eslint-utils/node_modules/eslint/node_modules/@humanwhocodes/config-array/node_modules/@humanwhocodes/object-schema/CHANGELOG.md +8 -0
- data/node_modules/@eslint-community/eslint-utils/node_modules/eslint/node_modules/@humanwhocodes/config-array/node_modules/@humanwhocodes/object-schema/LICENSE +29 -0
- data/node_modules/@eslint-community/eslint-utils/node_modules/eslint/node_modules/@humanwhocodes/config-array/node_modules/@humanwhocodes/object-schema/README.md +234 -0
- data/node_modules/@eslint-community/eslint-utils/node_modules/eslint/node_modules/@humanwhocodes/config-array/node_modules/@humanwhocodes/object-schema/package.json +33 -0
- data/node_modules/@eslint-community/eslint-utils/node_modules/eslint/node_modules/@humanwhocodes/config-array/node_modules/@humanwhocodes/object-schema/src/index.js +7 -0
- data/node_modules/@eslint-community/eslint-utils/node_modules/eslint/node_modules/@humanwhocodes/config-array/node_modules/@humanwhocodes/object-schema/src/merge-strategy.js +53 -0
- data/node_modules/@eslint-community/eslint-utils/node_modules/eslint/node_modules/@humanwhocodes/config-array/node_modules/@humanwhocodes/object-schema/src/object-schema.js +235 -0
- data/node_modules/@eslint-community/eslint-utils/node_modules/eslint/node_modules/@humanwhocodes/config-array/node_modules/@humanwhocodes/object-schema/src/validation-strategy.js +102 -0
- data/node_modules/@eslint-community/eslint-utils/node_modules/eslint/node_modules/@humanwhocodes/config-array/node_modules/@humanwhocodes/object-schema/tests/merge-strategy.js +66 -0
- data/node_modules/@eslint-community/eslint-utils/node_modules/eslint/node_modules/@humanwhocodes/config-array/node_modules/@humanwhocodes/object-schema/tests/object-schema.js +611 -0
- data/node_modules/@eslint-community/eslint-utils/node_modules/eslint/node_modules/@humanwhocodes/config-array/node_modules/@humanwhocodes/object-schema/tests/validation-strategy.js +186 -0
- data/node_modules/@eslint-community/eslint-utils/node_modules/eslint/node_modules/@humanwhocodes/config-array/node_modules/minimatch/LICENSE +15 -0
- data/node_modules/@eslint-community/eslint-utils/node_modules/eslint/node_modules/@humanwhocodes/config-array/node_modules/minimatch/README.md +224 -0
- data/node_modules/@eslint-community/eslint-utils/node_modules/eslint/node_modules/@humanwhocodes/config-array/node_modules/minimatch/minimatch.js +947 -0
- data/node_modules/@eslint-community/eslint-utils/node_modules/eslint/node_modules/@humanwhocodes/config-array/node_modules/minimatch/node_modules/brace-expansion/LICENSE +21 -0
- data/node_modules/@eslint-community/eslint-utils/node_modules/eslint/node_modules/@humanwhocodes/config-array/node_modules/minimatch/node_modules/brace-expansion/README.md +129 -0
- data/node_modules/@eslint-community/eslint-utils/node_modules/eslint/node_modules/@humanwhocodes/config-array/node_modules/minimatch/node_modules/brace-expansion/index.js +201 -0
- data/node_modules/@eslint-community/eslint-utils/node_modules/eslint/node_modules/@humanwhocodes/config-array/node_modules/minimatch/node_modules/brace-expansion/package.json +47 -0
- data/node_modules/@eslint-community/eslint-utils/node_modules/eslint/node_modules/@humanwhocodes/config-array/node_modules/minimatch/package.json +33 -0
- data/node_modules/@eslint-community/eslint-utils/node_modules/eslint/node_modules/@humanwhocodes/config-array/package.json +61 -0
- data/node_modules/@eslint-community/eslint-utils/node_modules/eslint/node_modules/chalk/index.d.ts +415 -0
- data/node_modules/@eslint-community/eslint-utils/node_modules/eslint/node_modules/chalk/license +9 -0
- data/node_modules/@eslint-community/eslint-utils/node_modules/eslint/node_modules/chalk/package.json +68 -0
- data/node_modules/@eslint-community/eslint-utils/node_modules/eslint/node_modules/chalk/readme.md +341 -0
- data/node_modules/@eslint-community/eslint-utils/node_modules/eslint/node_modules/chalk/source/index.js +229 -0
- data/node_modules/@eslint-community/eslint-utils/node_modules/eslint/node_modules/chalk/source/templates.js +134 -0
- data/node_modules/@eslint-community/eslint-utils/node_modules/eslint/node_modules/chalk/source/util.js +39 -0
- data/node_modules/@eslint-community/eslint-utils/node_modules/eslint/node_modules/minimatch/LICENSE +15 -0
- data/node_modules/@eslint-community/eslint-utils/node_modules/eslint/node_modules/minimatch/README.md +230 -0
- data/node_modules/@eslint-community/eslint-utils/node_modules/eslint/node_modules/minimatch/minimatch.js +947 -0
- data/node_modules/@eslint-community/eslint-utils/node_modules/eslint/node_modules/minimatch/node_modules/brace-expansion/LICENSE +21 -0
- data/node_modules/@eslint-community/eslint-utils/node_modules/eslint/node_modules/minimatch/node_modules/brace-expansion/README.md +129 -0
- data/node_modules/@eslint-community/eslint-utils/node_modules/eslint/node_modules/minimatch/node_modules/brace-expansion/index.js +201 -0
- data/node_modules/@eslint-community/eslint-utils/node_modules/eslint/node_modules/minimatch/node_modules/brace-expansion/package.json +47 -0
- data/node_modules/@eslint-community/eslint-utils/node_modules/eslint/node_modules/minimatch/package.json +33 -0
- data/node_modules/@eslint-community/eslint-utils/node_modules/eslint/node_modules/strip-ansi/index.d.ts +17 -0
- data/node_modules/@eslint-community/eslint-utils/node_modules/eslint/node_modules/strip-ansi/index.js +4 -0
- data/node_modules/@eslint-community/eslint-utils/node_modules/eslint/node_modules/strip-ansi/license +9 -0
- data/node_modules/@eslint-community/eslint-utils/node_modules/eslint/node_modules/strip-ansi/node_modules/ansi-regex/index.d.ts +37 -0
- data/node_modules/@eslint-community/eslint-utils/node_modules/eslint/node_modules/strip-ansi/node_modules/ansi-regex/index.js +10 -0
- data/node_modules/@eslint-community/eslint-utils/node_modules/eslint/node_modules/strip-ansi/node_modules/ansi-regex/license +9 -0
- data/node_modules/@eslint-community/eslint-utils/node_modules/eslint/node_modules/strip-ansi/node_modules/ansi-regex/package.json +55 -0
- data/node_modules/@eslint-community/eslint-utils/node_modules/eslint/node_modules/strip-ansi/node_modules/ansi-regex/readme.md +78 -0
- data/node_modules/@eslint-community/eslint-utils/node_modules/eslint/node_modules/strip-ansi/package.json +54 -0
- data/node_modules/@eslint-community/eslint-utils/node_modules/eslint/node_modules/strip-ansi/readme.md +46 -0
- data/node_modules/eslint-plugin-import/node_modules/debug/node_modules/ms/index.js +162 -0
- data/node_modules/eslint-plugin-import/node_modules/debug/node_modules/ms/license.md +21 -0
- data/node_modules/eslint-plugin-import/node_modules/debug/node_modules/ms/package.json +38 -0
- data/node_modules/eslint-plugin-import/node_modules/debug/node_modules/ms/readme.md +59 -0
- data/node_modules/npm-check-updates/build/package.json +2 -3
- data/node_modules/npm-check-updates/build/src/lib/runGlobal.js +18 -11
- data/node_modules/npm-check-updates/build/src/lib/runGlobal.js.map +1 -1
- data/node_modules/npm-check-updates/build/src/package-managers/bun.js +2 -3
- data/node_modules/npm-check-updates/build/src/package-managers/bun.js.map +1 -1
- data/node_modules/npm-check-updates/build/src/package-managers/npm.js +12 -8
- data/node_modules/npm-check-updates/build/src/package-managers/npm.js.map +1 -1
- data/node_modules/npm-check-updates/build/src/package-managers/pnpm.js +37 -14
- data/node_modules/npm-check-updates/build/src/package-managers/pnpm.js.map +1 -1
- data/node_modules/npm-check-updates/build/src/package-managers/yarn.js +36 -11
- data/node_modules/npm-check-updates/build/src/package-managers/yarn.js.map +1 -1
- data/node_modules/npm-check-updates/package.json +2 -3
- data/node_modules/prettier/LICENSE +3 -3
- data/node_modules/prettier/index.cjs +1 -1
- data/node_modules/prettier/index.mjs +14 -22
- data/node_modules/prettier/package.json +1 -1
- data/node_modules/prettier/plugins/acorn.js +10 -10
- data/node_modules/prettier/plugins/acorn.mjs +10 -10
- data/node_modules/prettier/plugins/angular.js +1 -1
- data/node_modules/prettier/plugins/angular.mjs +1 -1
- data/node_modules/prettier/plugins/babel.js +8 -8
- data/node_modules/prettier/plugins/babel.mjs +8 -8
- data/node_modules/prettier/plugins/estree.js +24 -24
- data/node_modules/prettier/plugins/estree.mjs +24 -24
- data/node_modules/prettier/plugins/flow.js +17 -17
- data/node_modules/prettier/plugins/flow.mjs +17 -17
- data/node_modules/prettier/plugins/graphql.js +6 -6
- data/node_modules/prettier/plugins/graphql.mjs +6 -6
- data/node_modules/prettier/plugins/html.js +1 -1
- data/node_modules/prettier/plugins/html.mjs +1 -1
- data/node_modules/prettier/plugins/markdown.js +1 -1
- data/node_modules/prettier/plugins/markdown.mjs +1 -1
- data/node_modules/prettier/plugins/meriyah.js +4 -4
- data/node_modules/prettier/plugins/meriyah.mjs +4 -4
- data/node_modules/prettier/plugins/typescript.js +19 -19
- data/node_modules/prettier/plugins/typescript.mjs +19 -19
- data/node_modules/prettier/standalone.js +10 -10
- data/node_modules/prettier/standalone.mjs +9 -9
- data/package.json +2 -2
- metadata +95 -4
@@ -0,0 +1,318 @@
|
|
1
|
+
/**
|
2
|
+
* @fileoverview Compatibility class for flat config.
|
3
|
+
* @author Nicholas C. Zakas
|
4
|
+
*/
|
5
|
+
|
6
|
+
//-----------------------------------------------------------------------------
|
7
|
+
// Requirements
|
8
|
+
//-----------------------------------------------------------------------------
|
9
|
+
|
10
|
+
import createDebug from "debug";
|
11
|
+
import path from "path";
|
12
|
+
|
13
|
+
import environments from "../conf/environments.js";
|
14
|
+
import { ConfigArrayFactory } from "./config-array-factory.js";
|
15
|
+
|
16
|
+
//-----------------------------------------------------------------------------
|
17
|
+
// Helpers
|
18
|
+
//-----------------------------------------------------------------------------
|
19
|
+
|
20
|
+
/** @typedef {import("../../shared/types").Environment} Environment */
|
21
|
+
/** @typedef {import("../../shared/types").Processor} Processor */
|
22
|
+
|
23
|
+
const debug = createDebug("eslintrc:flat-compat");
|
24
|
+
const cafactory = Symbol("cafactory");
|
25
|
+
|
26
|
+
/**
|
27
|
+
* Translates an ESLintRC-style config object into a flag-config-style config
|
28
|
+
* object.
|
29
|
+
* @param {Object} eslintrcConfig An ESLintRC-style config object.
|
30
|
+
* @param {Object} options Options to help translate the config.
|
31
|
+
* @param {string} options.resolveConfigRelativeTo To the directory to resolve
|
32
|
+
* configs from.
|
33
|
+
* @param {string} options.resolvePluginsRelativeTo The directory to resolve
|
34
|
+
* plugins from.
|
35
|
+
* @param {ReadOnlyMap<string,Environment>} options.pluginEnvironments A map of plugin environment
|
36
|
+
* names to objects.
|
37
|
+
* @param {ReadOnlyMap<string,Processor>} options.pluginProcessors A map of plugin processor
|
38
|
+
* names to objects.
|
39
|
+
* @returns {Object} A flag-config-style config object.
|
40
|
+
*/
|
41
|
+
function translateESLintRC(eslintrcConfig, {
|
42
|
+
resolveConfigRelativeTo,
|
43
|
+
resolvePluginsRelativeTo,
|
44
|
+
pluginEnvironments,
|
45
|
+
pluginProcessors
|
46
|
+
}) {
|
47
|
+
|
48
|
+
const flatConfig = {};
|
49
|
+
const configs = [];
|
50
|
+
const languageOptions = {};
|
51
|
+
const linterOptions = {};
|
52
|
+
const keysToCopy = ["settings", "rules", "processor"];
|
53
|
+
const languageOptionsKeysToCopy = ["globals", "parser", "parserOptions"];
|
54
|
+
const linterOptionsKeysToCopy = ["noInlineConfig", "reportUnusedDisableDirectives"];
|
55
|
+
|
56
|
+
// copy over simple translations
|
57
|
+
for (const key of keysToCopy) {
|
58
|
+
if (key in eslintrcConfig && typeof eslintrcConfig[key] !== "undefined") {
|
59
|
+
flatConfig[key] = eslintrcConfig[key];
|
60
|
+
}
|
61
|
+
}
|
62
|
+
|
63
|
+
// copy over languageOptions
|
64
|
+
for (const key of languageOptionsKeysToCopy) {
|
65
|
+
if (key in eslintrcConfig && typeof eslintrcConfig[key] !== "undefined") {
|
66
|
+
|
67
|
+
// create the languageOptions key in the flat config
|
68
|
+
flatConfig.languageOptions = languageOptions;
|
69
|
+
|
70
|
+
if (key === "parser") {
|
71
|
+
debug(`Resolving parser '${languageOptions[key]}' relative to ${resolveConfigRelativeTo}`);
|
72
|
+
|
73
|
+
if (eslintrcConfig[key].error) {
|
74
|
+
throw eslintrcConfig[key].error;
|
75
|
+
}
|
76
|
+
|
77
|
+
languageOptions[key] = eslintrcConfig[key].definition;
|
78
|
+
continue;
|
79
|
+
}
|
80
|
+
|
81
|
+
// clone any object values that are in the eslintrc config
|
82
|
+
if (eslintrcConfig[key] && typeof eslintrcConfig[key] === "object") {
|
83
|
+
languageOptions[key] = {
|
84
|
+
...eslintrcConfig[key]
|
85
|
+
};
|
86
|
+
} else {
|
87
|
+
languageOptions[key] = eslintrcConfig[key];
|
88
|
+
}
|
89
|
+
}
|
90
|
+
}
|
91
|
+
|
92
|
+
// copy over linterOptions
|
93
|
+
for (const key of linterOptionsKeysToCopy) {
|
94
|
+
if (key in eslintrcConfig && typeof eslintrcConfig[key] !== "undefined") {
|
95
|
+
flatConfig.linterOptions = linterOptions;
|
96
|
+
linterOptions[key] = eslintrcConfig[key];
|
97
|
+
}
|
98
|
+
}
|
99
|
+
|
100
|
+
// move ecmaVersion a level up
|
101
|
+
if (languageOptions.parserOptions) {
|
102
|
+
|
103
|
+
if ("ecmaVersion" in languageOptions.parserOptions) {
|
104
|
+
languageOptions.ecmaVersion = languageOptions.parserOptions.ecmaVersion;
|
105
|
+
delete languageOptions.parserOptions.ecmaVersion;
|
106
|
+
}
|
107
|
+
|
108
|
+
if ("sourceType" in languageOptions.parserOptions) {
|
109
|
+
languageOptions.sourceType = languageOptions.parserOptions.sourceType;
|
110
|
+
delete languageOptions.parserOptions.sourceType;
|
111
|
+
}
|
112
|
+
|
113
|
+
// check to see if we even need parserOptions anymore and remove it if not
|
114
|
+
if (Object.keys(languageOptions.parserOptions).length === 0) {
|
115
|
+
delete languageOptions.parserOptions;
|
116
|
+
}
|
117
|
+
}
|
118
|
+
|
119
|
+
// overrides
|
120
|
+
if (eslintrcConfig.criteria) {
|
121
|
+
flatConfig.files = [absoluteFilePath => eslintrcConfig.criteria.test(absoluteFilePath)];
|
122
|
+
}
|
123
|
+
|
124
|
+
// translate plugins
|
125
|
+
if (eslintrcConfig.plugins && typeof eslintrcConfig.plugins === "object") {
|
126
|
+
debug(`Translating plugins: ${eslintrcConfig.plugins}`);
|
127
|
+
|
128
|
+
flatConfig.plugins = {};
|
129
|
+
|
130
|
+
for (const pluginName of Object.keys(eslintrcConfig.plugins)) {
|
131
|
+
|
132
|
+
debug(`Translating plugin: ${pluginName}`);
|
133
|
+
debug(`Resolving plugin '${pluginName} relative to ${resolvePluginsRelativeTo}`);
|
134
|
+
|
135
|
+
const { definition: plugin, error } = eslintrcConfig.plugins[pluginName];
|
136
|
+
|
137
|
+
if (error) {
|
138
|
+
throw error;
|
139
|
+
}
|
140
|
+
|
141
|
+
flatConfig.plugins[pluginName] = plugin;
|
142
|
+
|
143
|
+
// create a config for any processors
|
144
|
+
if (plugin.processors) {
|
145
|
+
for (const processorName of Object.keys(plugin.processors)) {
|
146
|
+
if (processorName.startsWith(".")) {
|
147
|
+
debug(`Assigning processor: ${pluginName}/${processorName}`);
|
148
|
+
|
149
|
+
configs.unshift({
|
150
|
+
files: [`**/*${processorName}`],
|
151
|
+
processor: pluginProcessors.get(`${pluginName}/${processorName}`)
|
152
|
+
});
|
153
|
+
}
|
154
|
+
|
155
|
+
}
|
156
|
+
}
|
157
|
+
}
|
158
|
+
}
|
159
|
+
|
160
|
+
// translate env - must come after plugins
|
161
|
+
if (eslintrcConfig.env && typeof eslintrcConfig.env === "object") {
|
162
|
+
for (const envName of Object.keys(eslintrcConfig.env)) {
|
163
|
+
|
164
|
+
// only add environments that are true
|
165
|
+
if (eslintrcConfig.env[envName]) {
|
166
|
+
debug(`Translating environment: ${envName}`);
|
167
|
+
|
168
|
+
if (environments.has(envName)) {
|
169
|
+
|
170
|
+
// built-in environments should be defined first
|
171
|
+
configs.unshift(...translateESLintRC({
|
172
|
+
criteria: eslintrcConfig.criteria,
|
173
|
+
...environments.get(envName)
|
174
|
+
}, {
|
175
|
+
resolveConfigRelativeTo,
|
176
|
+
resolvePluginsRelativeTo
|
177
|
+
}));
|
178
|
+
} else if (pluginEnvironments.has(envName)) {
|
179
|
+
|
180
|
+
// if the environment comes from a plugin, it should come after the plugin config
|
181
|
+
configs.push(...translateESLintRC({
|
182
|
+
criteria: eslintrcConfig.criteria,
|
183
|
+
...pluginEnvironments.get(envName)
|
184
|
+
}, {
|
185
|
+
resolveConfigRelativeTo,
|
186
|
+
resolvePluginsRelativeTo
|
187
|
+
}));
|
188
|
+
}
|
189
|
+
}
|
190
|
+
}
|
191
|
+
}
|
192
|
+
|
193
|
+
// only add if there are actually keys in the config
|
194
|
+
if (Object.keys(flatConfig).length > 0) {
|
195
|
+
configs.push(flatConfig);
|
196
|
+
}
|
197
|
+
|
198
|
+
return configs;
|
199
|
+
}
|
200
|
+
|
201
|
+
|
202
|
+
//-----------------------------------------------------------------------------
|
203
|
+
// Exports
|
204
|
+
//-----------------------------------------------------------------------------
|
205
|
+
|
206
|
+
/**
|
207
|
+
* A compatibility class for working with configs.
|
208
|
+
*/
|
209
|
+
class FlatCompat {
|
210
|
+
|
211
|
+
constructor({
|
212
|
+
baseDirectory = process.cwd(),
|
213
|
+
resolvePluginsRelativeTo = baseDirectory,
|
214
|
+
recommendedConfig,
|
215
|
+
allConfig
|
216
|
+
} = {}) {
|
217
|
+
this.baseDirectory = baseDirectory;
|
218
|
+
this.resolvePluginsRelativeTo = resolvePluginsRelativeTo;
|
219
|
+
this[cafactory] = new ConfigArrayFactory({
|
220
|
+
cwd: baseDirectory,
|
221
|
+
resolvePluginsRelativeTo,
|
222
|
+
getEslintAllConfig: () => {
|
223
|
+
|
224
|
+
if (!allConfig) {
|
225
|
+
throw new TypeError("Missing parameter 'allConfig' in FlatCompat constructor.");
|
226
|
+
}
|
227
|
+
|
228
|
+
return allConfig;
|
229
|
+
},
|
230
|
+
getEslintRecommendedConfig: () => {
|
231
|
+
|
232
|
+
if (!recommendedConfig) {
|
233
|
+
throw new TypeError("Missing parameter 'recommendedConfig' in FlatCompat constructor.");
|
234
|
+
}
|
235
|
+
|
236
|
+
return recommendedConfig;
|
237
|
+
}
|
238
|
+
});
|
239
|
+
}
|
240
|
+
|
241
|
+
/**
|
242
|
+
* Translates an ESLintRC-style config into a flag-config-style config.
|
243
|
+
* @param {Object} eslintrcConfig The ESLintRC-style config object.
|
244
|
+
* @returns {Object} A flag-config-style config object.
|
245
|
+
*/
|
246
|
+
config(eslintrcConfig) {
|
247
|
+
const eslintrcArray = this[cafactory].create(eslintrcConfig, {
|
248
|
+
basePath: this.baseDirectory
|
249
|
+
});
|
250
|
+
|
251
|
+
const flatArray = [];
|
252
|
+
let hasIgnorePatterns = false;
|
253
|
+
|
254
|
+
eslintrcArray.forEach(configData => {
|
255
|
+
if (configData.type === "config") {
|
256
|
+
hasIgnorePatterns = hasIgnorePatterns || configData.ignorePattern;
|
257
|
+
flatArray.push(...translateESLintRC(configData, {
|
258
|
+
resolveConfigRelativeTo: path.join(this.baseDirectory, "__placeholder.js"),
|
259
|
+
resolvePluginsRelativeTo: path.join(this.resolvePluginsRelativeTo, "__placeholder.js"),
|
260
|
+
pluginEnvironments: eslintrcArray.pluginEnvironments,
|
261
|
+
pluginProcessors: eslintrcArray.pluginProcessors
|
262
|
+
}));
|
263
|
+
}
|
264
|
+
});
|
265
|
+
|
266
|
+
// combine ignorePatterns to emulate ESLintRC behavior better
|
267
|
+
if (hasIgnorePatterns) {
|
268
|
+
flatArray.unshift({
|
269
|
+
ignores: [filePath => {
|
270
|
+
|
271
|
+
// Compute the final config for this file.
|
272
|
+
// This filters config array elements by `files`/`excludedFiles` then merges the elements.
|
273
|
+
const finalConfig = eslintrcArray.extractConfig(filePath);
|
274
|
+
|
275
|
+
// Test the `ignorePattern` properties of the final config.
|
276
|
+
return Boolean(finalConfig.ignores) && finalConfig.ignores(filePath);
|
277
|
+
}]
|
278
|
+
});
|
279
|
+
}
|
280
|
+
|
281
|
+
return flatArray;
|
282
|
+
}
|
283
|
+
|
284
|
+
/**
|
285
|
+
* Translates the `env` section of an ESLintRC-style config.
|
286
|
+
* @param {Object} envConfig The `env` section of an ESLintRC config.
|
287
|
+
* @returns {Object[]} An array of flag-config objects representing the environments.
|
288
|
+
*/
|
289
|
+
env(envConfig) {
|
290
|
+
return this.config({
|
291
|
+
env: envConfig
|
292
|
+
});
|
293
|
+
}
|
294
|
+
|
295
|
+
/**
|
296
|
+
* Translates the `extends` section of an ESLintRC-style config.
|
297
|
+
* @param {...string} configsToExtend The names of the configs to load.
|
298
|
+
* @returns {Object[]} An array of flag-config objects representing the config.
|
299
|
+
*/
|
300
|
+
extends(...configsToExtend) {
|
301
|
+
return this.config({
|
302
|
+
extends: configsToExtend
|
303
|
+
});
|
304
|
+
}
|
305
|
+
|
306
|
+
/**
|
307
|
+
* Translates the `plugins` section of an ESLintRC-style config.
|
308
|
+
* @param {...string} plugins The names of the plugins to load.
|
309
|
+
* @returns {Object[]} An array of flag-config objects representing the plugins.
|
310
|
+
*/
|
311
|
+
plugins(...plugins) {
|
312
|
+
return this.config({
|
313
|
+
plugins
|
314
|
+
});
|
315
|
+
}
|
316
|
+
}
|
317
|
+
|
318
|
+
export { FlatCompat };
|
@@ -0,0 +1,29 @@
|
|
1
|
+
/**
|
2
|
+
* @fileoverview Package exports for @eslint/eslintrc
|
3
|
+
* @author Nicholas C. Zakas
|
4
|
+
*/
|
5
|
+
//------------------------------------------------------------------------------
|
6
|
+
// Requirements
|
7
|
+
//------------------------------------------------------------------------------
|
8
|
+
|
9
|
+
import * as ConfigOps from "./shared/config-ops.js";
|
10
|
+
import ConfigValidator from "./shared/config-validator.js";
|
11
|
+
import * as naming from "./shared/naming.js";
|
12
|
+
import environments from "../conf/environments.js";
|
13
|
+
|
14
|
+
//-----------------------------------------------------------------------------
|
15
|
+
// Exports
|
16
|
+
//-----------------------------------------------------------------------------
|
17
|
+
|
18
|
+
const Legacy = {
|
19
|
+
environments,
|
20
|
+
|
21
|
+
// shared
|
22
|
+
ConfigOps,
|
23
|
+
ConfigValidator,
|
24
|
+
naming
|
25
|
+
};
|
26
|
+
|
27
|
+
export {
|
28
|
+
Legacy
|
29
|
+
};
|
@@ -0,0 +1,56 @@
|
|
1
|
+
/**
|
2
|
+
* @fileoverview Package exports for @eslint/eslintrc
|
3
|
+
* @author Nicholas C. Zakas
|
4
|
+
*/
|
5
|
+
//------------------------------------------------------------------------------
|
6
|
+
// Requirements
|
7
|
+
//------------------------------------------------------------------------------
|
8
|
+
|
9
|
+
import {
|
10
|
+
ConfigArrayFactory,
|
11
|
+
createContext as createConfigArrayFactoryContext
|
12
|
+
} from "./config-array-factory.js";
|
13
|
+
|
14
|
+
import { CascadingConfigArrayFactory } from "./cascading-config-array-factory.js";
|
15
|
+
import * as ModuleResolver from "./shared/relative-module-resolver.js";
|
16
|
+
import { ConfigArray, getUsedExtractedConfigs } from "./config-array/index.js";
|
17
|
+
import { ConfigDependency } from "./config-array/config-dependency.js";
|
18
|
+
import { ExtractedConfig } from "./config-array/extracted-config.js";
|
19
|
+
import { IgnorePattern } from "./config-array/ignore-pattern.js";
|
20
|
+
import { OverrideTester } from "./config-array/override-tester.js";
|
21
|
+
import * as ConfigOps from "./shared/config-ops.js";
|
22
|
+
import ConfigValidator from "./shared/config-validator.js";
|
23
|
+
import * as naming from "./shared/naming.js";
|
24
|
+
import { FlatCompat } from "./flat-compat.js";
|
25
|
+
import environments from "../conf/environments.js";
|
26
|
+
|
27
|
+
//-----------------------------------------------------------------------------
|
28
|
+
// Exports
|
29
|
+
//-----------------------------------------------------------------------------
|
30
|
+
|
31
|
+
const Legacy = {
|
32
|
+
ConfigArray,
|
33
|
+
createConfigArrayFactoryContext,
|
34
|
+
CascadingConfigArrayFactory,
|
35
|
+
ConfigArrayFactory,
|
36
|
+
ConfigDependency,
|
37
|
+
ExtractedConfig,
|
38
|
+
IgnorePattern,
|
39
|
+
OverrideTester,
|
40
|
+
getUsedExtractedConfigs,
|
41
|
+
environments,
|
42
|
+
|
43
|
+
// shared
|
44
|
+
ConfigOps,
|
45
|
+
ConfigValidator,
|
46
|
+
ModuleResolver,
|
47
|
+
naming
|
48
|
+
};
|
49
|
+
|
50
|
+
export {
|
51
|
+
|
52
|
+
Legacy,
|
53
|
+
|
54
|
+
FlatCompat
|
55
|
+
|
56
|
+
};
|
@@ -0,0 +1,191 @@
|
|
1
|
+
/**
|
2
|
+
* @fileoverview The instance of Ajv validator.
|
3
|
+
* @author Evgeny Poberezkin
|
4
|
+
*/
|
5
|
+
|
6
|
+
//------------------------------------------------------------------------------
|
7
|
+
// Requirements
|
8
|
+
//------------------------------------------------------------------------------
|
9
|
+
|
10
|
+
import Ajv from "ajv";
|
11
|
+
|
12
|
+
//-----------------------------------------------------------------------------
|
13
|
+
// Helpers
|
14
|
+
//-----------------------------------------------------------------------------
|
15
|
+
|
16
|
+
/*
|
17
|
+
* Copied from ajv/lib/refs/json-schema-draft-04.json
|
18
|
+
* The MIT License (MIT)
|
19
|
+
* Copyright (c) 2015-2017 Evgeny Poberezkin
|
20
|
+
*/
|
21
|
+
const metaSchema = {
|
22
|
+
id: "http://json-schema.org/draft-04/schema#",
|
23
|
+
$schema: "http://json-schema.org/draft-04/schema#",
|
24
|
+
description: "Core schema meta-schema",
|
25
|
+
definitions: {
|
26
|
+
schemaArray: {
|
27
|
+
type: "array",
|
28
|
+
minItems: 1,
|
29
|
+
items: { $ref: "#" }
|
30
|
+
},
|
31
|
+
positiveInteger: {
|
32
|
+
type: "integer",
|
33
|
+
minimum: 0
|
34
|
+
},
|
35
|
+
positiveIntegerDefault0: {
|
36
|
+
allOf: [{ $ref: "#/definitions/positiveInteger" }, { default: 0 }]
|
37
|
+
},
|
38
|
+
simpleTypes: {
|
39
|
+
enum: ["array", "boolean", "integer", "null", "number", "object", "string"]
|
40
|
+
},
|
41
|
+
stringArray: {
|
42
|
+
type: "array",
|
43
|
+
items: { type: "string" },
|
44
|
+
minItems: 1,
|
45
|
+
uniqueItems: true
|
46
|
+
}
|
47
|
+
},
|
48
|
+
type: "object",
|
49
|
+
properties: {
|
50
|
+
id: {
|
51
|
+
type: "string"
|
52
|
+
},
|
53
|
+
$schema: {
|
54
|
+
type: "string"
|
55
|
+
},
|
56
|
+
title: {
|
57
|
+
type: "string"
|
58
|
+
},
|
59
|
+
description: {
|
60
|
+
type: "string"
|
61
|
+
},
|
62
|
+
default: { },
|
63
|
+
multipleOf: {
|
64
|
+
type: "number",
|
65
|
+
minimum: 0,
|
66
|
+
exclusiveMinimum: true
|
67
|
+
},
|
68
|
+
maximum: {
|
69
|
+
type: "number"
|
70
|
+
},
|
71
|
+
exclusiveMaximum: {
|
72
|
+
type: "boolean",
|
73
|
+
default: false
|
74
|
+
},
|
75
|
+
minimum: {
|
76
|
+
type: "number"
|
77
|
+
},
|
78
|
+
exclusiveMinimum: {
|
79
|
+
type: "boolean",
|
80
|
+
default: false
|
81
|
+
},
|
82
|
+
maxLength: { $ref: "#/definitions/positiveInteger" },
|
83
|
+
minLength: { $ref: "#/definitions/positiveIntegerDefault0" },
|
84
|
+
pattern: {
|
85
|
+
type: "string",
|
86
|
+
format: "regex"
|
87
|
+
},
|
88
|
+
additionalItems: {
|
89
|
+
anyOf: [
|
90
|
+
{ type: "boolean" },
|
91
|
+
{ $ref: "#" }
|
92
|
+
],
|
93
|
+
default: { }
|
94
|
+
},
|
95
|
+
items: {
|
96
|
+
anyOf: [
|
97
|
+
{ $ref: "#" },
|
98
|
+
{ $ref: "#/definitions/schemaArray" }
|
99
|
+
],
|
100
|
+
default: { }
|
101
|
+
},
|
102
|
+
maxItems: { $ref: "#/definitions/positiveInteger" },
|
103
|
+
minItems: { $ref: "#/definitions/positiveIntegerDefault0" },
|
104
|
+
uniqueItems: {
|
105
|
+
type: "boolean",
|
106
|
+
default: false
|
107
|
+
},
|
108
|
+
maxProperties: { $ref: "#/definitions/positiveInteger" },
|
109
|
+
minProperties: { $ref: "#/definitions/positiveIntegerDefault0" },
|
110
|
+
required: { $ref: "#/definitions/stringArray" },
|
111
|
+
additionalProperties: {
|
112
|
+
anyOf: [
|
113
|
+
{ type: "boolean" },
|
114
|
+
{ $ref: "#" }
|
115
|
+
],
|
116
|
+
default: { }
|
117
|
+
},
|
118
|
+
definitions: {
|
119
|
+
type: "object",
|
120
|
+
additionalProperties: { $ref: "#" },
|
121
|
+
default: { }
|
122
|
+
},
|
123
|
+
properties: {
|
124
|
+
type: "object",
|
125
|
+
additionalProperties: { $ref: "#" },
|
126
|
+
default: { }
|
127
|
+
},
|
128
|
+
patternProperties: {
|
129
|
+
type: "object",
|
130
|
+
additionalProperties: { $ref: "#" },
|
131
|
+
default: { }
|
132
|
+
},
|
133
|
+
dependencies: {
|
134
|
+
type: "object",
|
135
|
+
additionalProperties: {
|
136
|
+
anyOf: [
|
137
|
+
{ $ref: "#" },
|
138
|
+
{ $ref: "#/definitions/stringArray" }
|
139
|
+
]
|
140
|
+
}
|
141
|
+
},
|
142
|
+
enum: {
|
143
|
+
type: "array",
|
144
|
+
minItems: 1,
|
145
|
+
uniqueItems: true
|
146
|
+
},
|
147
|
+
type: {
|
148
|
+
anyOf: [
|
149
|
+
{ $ref: "#/definitions/simpleTypes" },
|
150
|
+
{
|
151
|
+
type: "array",
|
152
|
+
items: { $ref: "#/definitions/simpleTypes" },
|
153
|
+
minItems: 1,
|
154
|
+
uniqueItems: true
|
155
|
+
}
|
156
|
+
]
|
157
|
+
},
|
158
|
+
format: { type: "string" },
|
159
|
+
allOf: { $ref: "#/definitions/schemaArray" },
|
160
|
+
anyOf: { $ref: "#/definitions/schemaArray" },
|
161
|
+
oneOf: { $ref: "#/definitions/schemaArray" },
|
162
|
+
not: { $ref: "#" }
|
163
|
+
},
|
164
|
+
dependencies: {
|
165
|
+
exclusiveMaximum: ["maximum"],
|
166
|
+
exclusiveMinimum: ["minimum"]
|
167
|
+
},
|
168
|
+
default: { }
|
169
|
+
};
|
170
|
+
|
171
|
+
//------------------------------------------------------------------------------
|
172
|
+
// Public Interface
|
173
|
+
//------------------------------------------------------------------------------
|
174
|
+
|
175
|
+
export default (additionalOptions = {}) => {
|
176
|
+
const ajv = new Ajv({
|
177
|
+
meta: false,
|
178
|
+
useDefaults: true,
|
179
|
+
validateSchema: false,
|
180
|
+
missingRefs: "ignore",
|
181
|
+
verbose: true,
|
182
|
+
schemaId: "auto",
|
183
|
+
...additionalOptions
|
184
|
+
});
|
185
|
+
|
186
|
+
ajv.addMetaSchema(metaSchema);
|
187
|
+
// eslint-disable-next-line no-underscore-dangle
|
188
|
+
ajv._opts.defaultMeta = metaSchema.id;
|
189
|
+
|
190
|
+
return ajv;
|
191
|
+
};
|