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.
Files changed (135) hide show
  1. checksums.yaml +4 -4
  2. data/lib/immosquare-cleaner/version.rb +1 -1
  3. data/linters/rubocop-3.2.2.yml +1 -0
  4. data/linters/rubocop.yml +2 -0
  5. data/node_modules/@eslint-community/eslint-utils/node_modules/eslint/node_modules/@eslint/eslintrc/LICENSE +19 -0
  6. data/node_modules/@eslint-community/eslint-utils/node_modules/eslint/node_modules/@eslint/eslintrc/README.md +71 -0
  7. data/node_modules/@eslint-community/eslint-utils/node_modules/eslint/node_modules/@eslint/eslintrc/conf/config-schema.js +79 -0
  8. data/node_modules/@eslint-community/eslint-utils/node_modules/eslint/node_modules/@eslint/eslintrc/conf/environments.js +215 -0
  9. data/node_modules/@eslint-community/eslint-utils/node_modules/eslint/node_modules/@eslint/eslintrc/dist/eslintrc-universal.cjs +1104 -0
  10. data/node_modules/@eslint-community/eslint-utils/node_modules/eslint/node_modules/@eslint/eslintrc/dist/eslintrc-universal.cjs.map +1 -0
  11. data/node_modules/@eslint-community/eslint-utils/node_modules/eslint/node_modules/@eslint/eslintrc/dist/eslintrc.cjs +4333 -0
  12. data/node_modules/@eslint-community/eslint-utils/node_modules/eslint/node_modules/@eslint/eslintrc/dist/eslintrc.cjs.map +1 -0
  13. data/node_modules/@eslint-community/eslint-utils/node_modules/eslint/node_modules/@eslint/eslintrc/lib/cascading-config-array-factory.js +532 -0
  14. data/node_modules/@eslint-community/eslint-utils/node_modules/eslint/node_modules/@eslint/eslintrc/lib/config-array/config-array.js +523 -0
  15. data/node_modules/@eslint-community/eslint-utils/node_modules/eslint/node_modules/@eslint/eslintrc/lib/config-array/config-dependency.js +115 -0
  16. data/node_modules/@eslint-community/eslint-utils/node_modules/eslint/node_modules/@eslint/eslintrc/lib/config-array/extracted-config.js +145 -0
  17. data/node_modules/@eslint-community/eslint-utils/node_modules/eslint/node_modules/@eslint/eslintrc/lib/config-array/ignore-pattern.js +238 -0
  18. data/node_modules/@eslint-community/eslint-utils/node_modules/eslint/node_modules/@eslint/eslintrc/lib/config-array/index.js +19 -0
  19. data/node_modules/@eslint-community/eslint-utils/node_modules/eslint/node_modules/@eslint/eslintrc/lib/config-array/override-tester.js +225 -0
  20. data/node_modules/@eslint-community/eslint-utils/node_modules/eslint/node_modules/@eslint/eslintrc/lib/config-array-factory.js +1149 -0
  21. data/node_modules/@eslint-community/eslint-utils/node_modules/eslint/node_modules/@eslint/eslintrc/lib/flat-compat.js +318 -0
  22. data/node_modules/@eslint-community/eslint-utils/node_modules/eslint/node_modules/@eslint/eslintrc/lib/index-universal.js +29 -0
  23. data/node_modules/@eslint-community/eslint-utils/node_modules/eslint/node_modules/@eslint/eslintrc/lib/index.js +56 -0
  24. data/node_modules/@eslint-community/eslint-utils/node_modules/eslint/node_modules/@eslint/eslintrc/lib/shared/ajv.js +191 -0
  25. data/node_modules/@eslint-community/eslint-utils/node_modules/eslint/node_modules/@eslint/eslintrc/lib/shared/config-ops.js +135 -0
  26. data/node_modules/@eslint-community/eslint-utils/node_modules/eslint/node_modules/@eslint/eslintrc/lib/shared/config-validator.js +325 -0
  27. data/node_modules/@eslint-community/eslint-utils/node_modules/eslint/node_modules/@eslint/eslintrc/lib/shared/deprecation-warnings.js +63 -0
  28. data/node_modules/@eslint-community/eslint-utils/node_modules/eslint/node_modules/@eslint/eslintrc/lib/shared/naming.js +96 -0
  29. data/node_modules/@eslint-community/eslint-utils/node_modules/eslint/node_modules/@eslint/eslintrc/lib/shared/relative-module-resolver.js +42 -0
  30. data/node_modules/@eslint-community/eslint-utils/node_modules/eslint/node_modules/@eslint/eslintrc/lib/shared/types.js +149 -0
  31. data/node_modules/@eslint-community/eslint-utils/node_modules/eslint/node_modules/@eslint/eslintrc/node_modules/strip-json-comments/index.d.ts +36 -0
  32. data/node_modules/@eslint-community/eslint-utils/node_modules/eslint/node_modules/@eslint/eslintrc/node_modules/strip-json-comments/index.js +77 -0
  33. data/node_modules/@eslint-community/eslint-utils/node_modules/eslint/node_modules/@eslint/eslintrc/node_modules/strip-json-comments/license +9 -0
  34. data/node_modules/@eslint-community/eslint-utils/node_modules/eslint/node_modules/@eslint/eslintrc/node_modules/strip-json-comments/package.json +47 -0
  35. data/node_modules/@eslint-community/eslint-utils/node_modules/eslint/node_modules/@eslint/eslintrc/node_modules/strip-json-comments/readme.md +78 -0
  36. data/node_modules/@eslint-community/eslint-utils/node_modules/eslint/node_modules/@eslint/eslintrc/package.json +82 -0
  37. data/node_modules/@eslint-community/eslint-utils/node_modules/eslint/node_modules/@eslint/eslintrc/universal.js +9 -0
  38. data/node_modules/@eslint-community/eslint-utils/node_modules/eslint/node_modules/@eslint/js/LICENSE +19 -0
  39. data/node_modules/@eslint-community/eslint-utils/node_modules/eslint/node_modules/@eslint/js/README.md +57 -0
  40. data/node_modules/@eslint-community/eslint-utils/node_modules/eslint/node_modules/@eslint/js/package.json +31 -0
  41. data/node_modules/@eslint-community/eslint-utils/node_modules/eslint/node_modules/@eslint/js/src/configs/eslint-all.js +278 -0
  42. data/node_modules/@eslint-community/eslint-utils/node_modules/eslint/node_modules/@eslint/js/src/configs/eslint-recommended.js +76 -0
  43. data/node_modules/@eslint-community/eslint-utils/node_modules/eslint/node_modules/@eslint/js/src/index.js +17 -0
  44. data/node_modules/@eslint-community/eslint-utils/node_modules/eslint/node_modules/@humanwhocodes/config-array/LICENSE +201 -0
  45. data/node_modules/@eslint-community/eslint-utils/node_modules/eslint/node_modules/@humanwhocodes/config-array/README.md +342 -0
  46. data/node_modules/@eslint-community/eslint-utils/node_modules/eslint/node_modules/@humanwhocodes/config-array/api.js +1061 -0
  47. data/node_modules/@eslint-community/eslint-utils/node_modules/eslint/node_modules/@humanwhocodes/config-array/node_modules/@humanwhocodes/object-schema/CHANGELOG.md +8 -0
  48. data/node_modules/@eslint-community/eslint-utils/node_modules/eslint/node_modules/@humanwhocodes/config-array/node_modules/@humanwhocodes/object-schema/LICENSE +29 -0
  49. data/node_modules/@eslint-community/eslint-utils/node_modules/eslint/node_modules/@humanwhocodes/config-array/node_modules/@humanwhocodes/object-schema/README.md +234 -0
  50. data/node_modules/@eslint-community/eslint-utils/node_modules/eslint/node_modules/@humanwhocodes/config-array/node_modules/@humanwhocodes/object-schema/package.json +33 -0
  51. 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
  52. 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
  53. 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
  54. 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
  55. 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
  56. 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
  57. 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
  58. data/node_modules/@eslint-community/eslint-utils/node_modules/eslint/node_modules/@humanwhocodes/config-array/node_modules/minimatch/LICENSE +15 -0
  59. data/node_modules/@eslint-community/eslint-utils/node_modules/eslint/node_modules/@humanwhocodes/config-array/node_modules/minimatch/README.md +224 -0
  60. data/node_modules/@eslint-community/eslint-utils/node_modules/eslint/node_modules/@humanwhocodes/config-array/node_modules/minimatch/minimatch.js +947 -0
  61. 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
  62. 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
  63. 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
  64. 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
  65. data/node_modules/@eslint-community/eslint-utils/node_modules/eslint/node_modules/@humanwhocodes/config-array/node_modules/minimatch/package.json +33 -0
  66. data/node_modules/@eslint-community/eslint-utils/node_modules/eslint/node_modules/@humanwhocodes/config-array/package.json +61 -0
  67. data/node_modules/@eslint-community/eslint-utils/node_modules/eslint/node_modules/chalk/index.d.ts +415 -0
  68. data/node_modules/@eslint-community/eslint-utils/node_modules/eslint/node_modules/chalk/license +9 -0
  69. data/node_modules/@eslint-community/eslint-utils/node_modules/eslint/node_modules/chalk/package.json +68 -0
  70. data/node_modules/@eslint-community/eslint-utils/node_modules/eslint/node_modules/chalk/readme.md +341 -0
  71. data/node_modules/@eslint-community/eslint-utils/node_modules/eslint/node_modules/chalk/source/index.js +229 -0
  72. data/node_modules/@eslint-community/eslint-utils/node_modules/eslint/node_modules/chalk/source/templates.js +134 -0
  73. data/node_modules/@eslint-community/eslint-utils/node_modules/eslint/node_modules/chalk/source/util.js +39 -0
  74. data/node_modules/@eslint-community/eslint-utils/node_modules/eslint/node_modules/minimatch/LICENSE +15 -0
  75. data/node_modules/@eslint-community/eslint-utils/node_modules/eslint/node_modules/minimatch/README.md +230 -0
  76. data/node_modules/@eslint-community/eslint-utils/node_modules/eslint/node_modules/minimatch/minimatch.js +947 -0
  77. data/node_modules/@eslint-community/eslint-utils/node_modules/eslint/node_modules/minimatch/node_modules/brace-expansion/LICENSE +21 -0
  78. data/node_modules/@eslint-community/eslint-utils/node_modules/eslint/node_modules/minimatch/node_modules/brace-expansion/README.md +129 -0
  79. data/node_modules/@eslint-community/eslint-utils/node_modules/eslint/node_modules/minimatch/node_modules/brace-expansion/index.js +201 -0
  80. data/node_modules/@eslint-community/eslint-utils/node_modules/eslint/node_modules/minimatch/node_modules/brace-expansion/package.json +47 -0
  81. data/node_modules/@eslint-community/eslint-utils/node_modules/eslint/node_modules/minimatch/package.json +33 -0
  82. data/node_modules/@eslint-community/eslint-utils/node_modules/eslint/node_modules/strip-ansi/index.d.ts +17 -0
  83. data/node_modules/@eslint-community/eslint-utils/node_modules/eslint/node_modules/strip-ansi/index.js +4 -0
  84. data/node_modules/@eslint-community/eslint-utils/node_modules/eslint/node_modules/strip-ansi/license +9 -0
  85. data/node_modules/@eslint-community/eslint-utils/node_modules/eslint/node_modules/strip-ansi/node_modules/ansi-regex/index.d.ts +37 -0
  86. data/node_modules/@eslint-community/eslint-utils/node_modules/eslint/node_modules/strip-ansi/node_modules/ansi-regex/index.js +10 -0
  87. data/node_modules/@eslint-community/eslint-utils/node_modules/eslint/node_modules/strip-ansi/node_modules/ansi-regex/license +9 -0
  88. data/node_modules/@eslint-community/eslint-utils/node_modules/eslint/node_modules/strip-ansi/node_modules/ansi-regex/package.json +55 -0
  89. data/node_modules/@eslint-community/eslint-utils/node_modules/eslint/node_modules/strip-ansi/node_modules/ansi-regex/readme.md +78 -0
  90. data/node_modules/@eslint-community/eslint-utils/node_modules/eslint/node_modules/strip-ansi/package.json +54 -0
  91. data/node_modules/@eslint-community/eslint-utils/node_modules/eslint/node_modules/strip-ansi/readme.md +46 -0
  92. data/node_modules/eslint-plugin-import/node_modules/debug/node_modules/ms/index.js +162 -0
  93. data/node_modules/eslint-plugin-import/node_modules/debug/node_modules/ms/license.md +21 -0
  94. data/node_modules/eslint-plugin-import/node_modules/debug/node_modules/ms/package.json +38 -0
  95. data/node_modules/eslint-plugin-import/node_modules/debug/node_modules/ms/readme.md +59 -0
  96. data/node_modules/npm-check-updates/build/package.json +2 -3
  97. data/node_modules/npm-check-updates/build/src/lib/runGlobal.js +18 -11
  98. data/node_modules/npm-check-updates/build/src/lib/runGlobal.js.map +1 -1
  99. data/node_modules/npm-check-updates/build/src/package-managers/bun.js +2 -3
  100. data/node_modules/npm-check-updates/build/src/package-managers/bun.js.map +1 -1
  101. data/node_modules/npm-check-updates/build/src/package-managers/npm.js +12 -8
  102. data/node_modules/npm-check-updates/build/src/package-managers/npm.js.map +1 -1
  103. data/node_modules/npm-check-updates/build/src/package-managers/pnpm.js +37 -14
  104. data/node_modules/npm-check-updates/build/src/package-managers/pnpm.js.map +1 -1
  105. data/node_modules/npm-check-updates/build/src/package-managers/yarn.js +36 -11
  106. data/node_modules/npm-check-updates/build/src/package-managers/yarn.js.map +1 -1
  107. data/node_modules/npm-check-updates/package.json +2 -3
  108. data/node_modules/prettier/LICENSE +3 -3
  109. data/node_modules/prettier/index.cjs +1 -1
  110. data/node_modules/prettier/index.mjs +14 -22
  111. data/node_modules/prettier/package.json +1 -1
  112. data/node_modules/prettier/plugins/acorn.js +10 -10
  113. data/node_modules/prettier/plugins/acorn.mjs +10 -10
  114. data/node_modules/prettier/plugins/angular.js +1 -1
  115. data/node_modules/prettier/plugins/angular.mjs +1 -1
  116. data/node_modules/prettier/plugins/babel.js +8 -8
  117. data/node_modules/prettier/plugins/babel.mjs +8 -8
  118. data/node_modules/prettier/plugins/estree.js +24 -24
  119. data/node_modules/prettier/plugins/estree.mjs +24 -24
  120. data/node_modules/prettier/plugins/flow.js +17 -17
  121. data/node_modules/prettier/plugins/flow.mjs +17 -17
  122. data/node_modules/prettier/plugins/graphql.js +6 -6
  123. data/node_modules/prettier/plugins/graphql.mjs +6 -6
  124. data/node_modules/prettier/plugins/html.js +1 -1
  125. data/node_modules/prettier/plugins/html.mjs +1 -1
  126. data/node_modules/prettier/plugins/markdown.js +1 -1
  127. data/node_modules/prettier/plugins/markdown.mjs +1 -1
  128. data/node_modules/prettier/plugins/meriyah.js +4 -4
  129. data/node_modules/prettier/plugins/meriyah.mjs +4 -4
  130. data/node_modules/prettier/plugins/typescript.js +19 -19
  131. data/node_modules/prettier/plugins/typescript.mjs +19 -19
  132. data/node_modules/prettier/standalone.js +10 -10
  133. data/node_modules/prettier/standalone.mjs +9 -9
  134. data/package.json +2 -2
  135. 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
+ };