@fenge/eslint-config 0.1.1 → 0.1.2

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.
@@ -26,19 +26,382 @@ export declare function typescript(project?: string): readonly [{
26
26
  readonly "@fenge-ts": typeof fengeTsPlugin;
27
27
  readonly fp: unknown;
28
28
  readonly n: import("eslint").ESLint.Plugin & {
29
- configs: {
30
- 'recommended-module': import("eslint").ESLint.ConfigData;
31
- 'recommended-script': import("eslint").ESLint.ConfigData;
32
- recommended: import("eslint").ESLint.ConfigData;
33
- 'flat/recommended-module': import("eslint").Linter.FlatConfig;
34
- 'flat/recommended-script': import("eslint").Linter.FlatConfig;
35
- 'flat/recommended': import("eslint").Linter.FlatConfig;
36
- 'flat/mixed-esm-and-cjs': import("eslint").Linter.FlatConfig[];
37
- };
29
+ configs: import("eslint-plugin-n").Configs;
38
30
  };
39
31
  readonly import: unknown;
40
32
  readonly promise: unknown;
41
- readonly react: typeof import("eslint-plugin-react");
33
+ readonly react: {
34
+ deprecatedRules: Partial<{
35
+ 'boolean-prop-naming': import("eslint").Rule.RuleModule;
36
+ 'button-has-type': import("eslint").Rule.RuleModule;
37
+ 'checked-requires-onchange-or-readonly': import("eslint").Rule.RuleModule;
38
+ 'default-props-match-prop-types': import("eslint").Rule.RuleModule;
39
+ 'destructuring-assignment': import("eslint").Rule.RuleModule;
40
+ 'display-name': import("eslint").Rule.RuleModule;
41
+ 'forbid-component-props': import("eslint").Rule.RuleModule;
42
+ 'forbid-dom-props': import("eslint").Rule.RuleModule;
43
+ 'forbid-elements': import("eslint").Rule.RuleModule;
44
+ 'forbid-foreign-prop-types': import("eslint").Rule.RuleModule;
45
+ 'forbid-prop-types': import("eslint").Rule.RuleModule;
46
+ 'forward-ref-uses-ref': {
47
+ meta: {
48
+ docs: {
49
+ description: string;
50
+ category: string;
51
+ recommended: boolean;
52
+ url: string;
53
+ };
54
+ messages: {
55
+ missingRefParameter: string;
56
+ addRefParameter: string;
57
+ removeForwardRef: string;
58
+ };
59
+ schema: undefined[];
60
+ type: string;
61
+ hasSuggestions: boolean;
62
+ };
63
+ create(context: any): {
64
+ "FunctionExpression, ArrowFunctionExpression"(node: any): void;
65
+ };
66
+ };
67
+ 'function-component-definition': import("eslint").Rule.RuleModule;
68
+ 'hook-use-state': import("eslint").Rule.RuleModule;
69
+ 'iframe-missing-sandbox': import("eslint").Rule.RuleModule;
70
+ 'jsx-boolean-value': import("eslint").Rule.RuleModule;
71
+ 'jsx-child-element-spacing': import("eslint").Rule.RuleModule;
72
+ 'jsx-closing-bracket-location': import("eslint").Rule.RuleModule;
73
+ 'jsx-closing-tag-location': import("eslint").Rule.RuleModule;
74
+ 'jsx-curly-spacing': import("eslint").Rule.RuleModule;
75
+ 'jsx-curly-newline': import("eslint").Rule.RuleModule;
76
+ 'jsx-equals-spacing': import("eslint").Rule.RuleModule;
77
+ 'jsx-filename-extension': import("eslint").Rule.RuleModule;
78
+ 'jsx-first-prop-new-line': import("eslint").Rule.RuleModule;
79
+ 'jsx-handler-names': import("eslint").Rule.RuleModule;
80
+ 'jsx-indent': import("eslint").Rule.RuleModule;
81
+ 'jsx-indent-props': import("eslint").Rule.RuleModule;
82
+ 'jsx-key': import("eslint").Rule.RuleModule;
83
+ 'jsx-max-depth': import("eslint").Rule.RuleModule;
84
+ 'jsx-max-props-per-line': import("eslint").Rule.RuleModule;
85
+ 'jsx-newline': import("eslint").Rule.RuleModule;
86
+ 'jsx-no-bind': import("eslint").Rule.RuleModule;
87
+ 'jsx-no-comment-textnodes': import("eslint").Rule.RuleModule;
88
+ 'jsx-no-constructed-context-values': import("eslint").Rule.RuleModule;
89
+ 'jsx-no-duplicate-props': import("eslint").Rule.RuleModule;
90
+ 'jsx-no-leaked-render': import("eslint").Rule.RuleModule;
91
+ 'jsx-no-literals': {
92
+ meta: import("eslint").Rule.RuleMetaData;
93
+ create(context: any): (false & {
94
+ Literal(node: any): void;
95
+ JSXAttribute(node: any): void;
96
+ JSXText(node: any): void;
97
+ TemplateLiteral(node: any): void;
98
+ }) | ({
99
+ ImportDeclaration(node: any): void;
100
+ VariableDeclaration(node: any): void;
101
+ } & {
102
+ Literal(node: any): void;
103
+ JSXAttribute(node: any): void;
104
+ JSXText(node: any): void;
105
+ TemplateLiteral(node: any): void;
106
+ });
107
+ };
108
+ 'jsx-no-script-url': import("eslint").Rule.RuleModule;
109
+ 'jsx-no-target-blank': import("eslint").Rule.RuleModule;
110
+ 'jsx-no-useless-fragment': import("eslint").Rule.RuleModule;
111
+ 'jsx-one-expression-per-line': import("eslint").Rule.RuleModule;
112
+ 'jsx-no-undef': import("eslint").Rule.RuleModule;
113
+ 'jsx-curly-brace-presence': import("eslint").Rule.RuleModule;
114
+ 'jsx-pascal-case': import("eslint").Rule.RuleModule;
115
+ 'jsx-fragments': import("eslint").Rule.RuleModule;
116
+ 'jsx-props-no-multi-spaces': import("eslint").Rule.RuleModule;
117
+ 'jsx-props-no-spreading': import("eslint").Rule.RuleModule;
118
+ 'jsx-props-no-spread-multi': {
119
+ meta: {
120
+ docs: {
121
+ description: string;
122
+ category: string;
123
+ recommended: boolean;
124
+ url: string;
125
+ };
126
+ messages: {
127
+ noMultiSpreading: string;
128
+ };
129
+ };
130
+ create(context: any): {
131
+ JSXOpeningElement(node: any): void;
132
+ };
133
+ };
134
+ 'jsx-sort-default-props': import("eslint").Rule.RuleModule;
135
+ 'jsx-sort-props': import("eslint").Rule.RuleModule;
136
+ 'jsx-space-before-closing': import("eslint").Rule.RuleModule;
137
+ 'jsx-tag-spacing': import("eslint").Rule.RuleModule;
138
+ 'jsx-uses-react': import("eslint").Rule.RuleModule;
139
+ 'jsx-uses-vars': import("eslint").Rule.RuleModule;
140
+ 'jsx-wrap-multilines': import("eslint").Rule.RuleModule;
141
+ 'no-invalid-html-attribute': import("eslint").Rule.RuleModule;
142
+ 'no-access-state-in-setstate': import("eslint").Rule.RuleModule;
143
+ 'no-adjacent-inline-elements': import("eslint").Rule.RuleModule;
144
+ 'no-array-index-key': import("eslint").Rule.RuleModule;
145
+ 'no-arrow-function-lifecycle': import("eslint").Rule.RuleModule;
146
+ 'no-children-prop': import("eslint").Rule.RuleModule;
147
+ 'no-danger': import("eslint").Rule.RuleModule;
148
+ 'no-danger-with-children': import("eslint").Rule.RuleModule;
149
+ 'no-deprecated': import("eslint").Rule.RuleModule;
150
+ 'no-did-mount-set-state': import("eslint").Rule.RuleModule;
151
+ 'no-did-update-set-state': import("eslint").Rule.RuleModule;
152
+ 'no-direct-mutation-state': import("eslint").Rule.RuleModule;
153
+ 'no-find-dom-node': import("eslint").Rule.RuleModule;
154
+ 'no-is-mounted': import("eslint").Rule.RuleModule;
155
+ 'no-multi-comp': import("eslint").Rule.RuleModule;
156
+ 'no-namespace': import("eslint").Rule.RuleModule;
157
+ 'no-set-state': import("eslint").Rule.RuleModule;
158
+ 'no-string-refs': import("eslint").Rule.RuleModule;
159
+ 'no-redundant-should-component-update': import("eslint").Rule.RuleModule;
160
+ 'no-render-return-value': import("eslint").Rule.RuleModule;
161
+ 'no-this-in-sfc': import("eslint").Rule.RuleModule;
162
+ 'no-typos': import("eslint").Rule.RuleModule;
163
+ 'no-unescaped-entities': import("eslint").Rule.RuleModule;
164
+ 'no-unknown-property': import("eslint").Rule.RuleModule;
165
+ 'no-unsafe': import("eslint").Rule.RuleModule;
166
+ 'no-unstable-nested-components': import("eslint").Rule.RuleModule;
167
+ 'no-unused-class-component-methods': import("eslint").Rule.RuleModule;
168
+ 'no-unused-prop-types': import("eslint").Rule.RuleModule;
169
+ 'no-unused-state': import("eslint").Rule.RuleModule;
170
+ 'no-object-type-as-default-prop': import("eslint").Rule.RuleModule;
171
+ 'no-will-update-set-state': import("eslint").Rule.RuleModule;
172
+ 'prefer-es6-class': import("eslint").Rule.RuleModule;
173
+ 'prefer-exact-props': import("eslint").Rule.RuleModule;
174
+ 'prefer-read-only-props': import("eslint").Rule.RuleModule;
175
+ 'prefer-stateless-function': import("eslint").Rule.RuleModule;
176
+ 'prop-types': import("eslint").Rule.RuleModule;
177
+ 'react-in-jsx-scope': import("eslint").Rule.RuleModule;
178
+ 'require-default-props': import("eslint").Rule.RuleModule;
179
+ 'require-optimization': import("eslint").Rule.RuleModule;
180
+ 'require-render-return': import("eslint").Rule.RuleModule;
181
+ 'self-closing-comp': import("eslint").Rule.RuleModule;
182
+ 'sort-comp': import("eslint").Rule.RuleModule;
183
+ 'sort-default-props': import("eslint").Rule.RuleModule;
184
+ 'sort-prop-types': import("eslint").Rule.RuleModule;
185
+ 'state-in-constructor': import("eslint").Rule.RuleModule;
186
+ 'static-property-placement': import("eslint").Rule.RuleModule;
187
+ 'style-prop-object': import("eslint").Rule.RuleModule;
188
+ 'void-dom-elements-no-children': import("eslint").Rule.RuleModule;
189
+ }>;
190
+ rules: {
191
+ 'boolean-prop-naming': import("eslint").Rule.RuleModule;
192
+ 'button-has-type': import("eslint").Rule.RuleModule;
193
+ 'checked-requires-onchange-or-readonly': import("eslint").Rule.RuleModule;
194
+ 'default-props-match-prop-types': import("eslint").Rule.RuleModule;
195
+ 'destructuring-assignment': import("eslint").Rule.RuleModule;
196
+ 'display-name': import("eslint").Rule.RuleModule;
197
+ 'forbid-component-props': import("eslint").Rule.RuleModule;
198
+ 'forbid-dom-props': import("eslint").Rule.RuleModule;
199
+ 'forbid-elements': import("eslint").Rule.RuleModule;
200
+ 'forbid-foreign-prop-types': import("eslint").Rule.RuleModule;
201
+ 'forbid-prop-types': import("eslint").Rule.RuleModule;
202
+ 'forward-ref-uses-ref': {
203
+ meta: {
204
+ docs: {
205
+ description: string;
206
+ category: string;
207
+ recommended: boolean;
208
+ url: string;
209
+ };
210
+ messages: {
211
+ missingRefParameter: string;
212
+ addRefParameter: string;
213
+ removeForwardRef: string;
214
+ };
215
+ schema: undefined[];
216
+ type: string;
217
+ hasSuggestions: boolean;
218
+ };
219
+ create(context: any): {
220
+ "FunctionExpression, ArrowFunctionExpression"(node: any): void;
221
+ };
222
+ };
223
+ 'function-component-definition': import("eslint").Rule.RuleModule;
224
+ 'hook-use-state': import("eslint").Rule.RuleModule;
225
+ 'iframe-missing-sandbox': import("eslint").Rule.RuleModule;
226
+ 'jsx-boolean-value': import("eslint").Rule.RuleModule;
227
+ 'jsx-child-element-spacing': import("eslint").Rule.RuleModule;
228
+ 'jsx-closing-bracket-location': import("eslint").Rule.RuleModule;
229
+ 'jsx-closing-tag-location': import("eslint").Rule.RuleModule;
230
+ 'jsx-curly-spacing': import("eslint").Rule.RuleModule;
231
+ 'jsx-curly-newline': import("eslint").Rule.RuleModule;
232
+ 'jsx-equals-spacing': import("eslint").Rule.RuleModule;
233
+ 'jsx-filename-extension': import("eslint").Rule.RuleModule;
234
+ 'jsx-first-prop-new-line': import("eslint").Rule.RuleModule;
235
+ 'jsx-handler-names': import("eslint").Rule.RuleModule;
236
+ 'jsx-indent': import("eslint").Rule.RuleModule;
237
+ 'jsx-indent-props': import("eslint").Rule.RuleModule;
238
+ 'jsx-key': import("eslint").Rule.RuleModule;
239
+ 'jsx-max-depth': import("eslint").Rule.RuleModule;
240
+ 'jsx-max-props-per-line': import("eslint").Rule.RuleModule;
241
+ 'jsx-newline': import("eslint").Rule.RuleModule;
242
+ 'jsx-no-bind': import("eslint").Rule.RuleModule;
243
+ 'jsx-no-comment-textnodes': import("eslint").Rule.RuleModule;
244
+ 'jsx-no-constructed-context-values': import("eslint").Rule.RuleModule;
245
+ 'jsx-no-duplicate-props': import("eslint").Rule.RuleModule;
246
+ 'jsx-no-leaked-render': import("eslint").Rule.RuleModule;
247
+ 'jsx-no-literals': {
248
+ meta: import("eslint").Rule.RuleMetaData;
249
+ create(context: any): (false & {
250
+ Literal(node: any): void;
251
+ JSXAttribute(node: any): void;
252
+ JSXText(node: any): void;
253
+ TemplateLiteral(node: any): void;
254
+ }) | ({
255
+ ImportDeclaration(node: any): void;
256
+ VariableDeclaration(node: any): void;
257
+ } & {
258
+ Literal(node: any): void;
259
+ JSXAttribute(node: any): void;
260
+ JSXText(node: any): void;
261
+ TemplateLiteral(node: any): void;
262
+ });
263
+ };
264
+ 'jsx-no-script-url': import("eslint").Rule.RuleModule;
265
+ 'jsx-no-target-blank': import("eslint").Rule.RuleModule;
266
+ 'jsx-no-useless-fragment': import("eslint").Rule.RuleModule;
267
+ 'jsx-one-expression-per-line': import("eslint").Rule.RuleModule;
268
+ 'jsx-no-undef': import("eslint").Rule.RuleModule;
269
+ 'jsx-curly-brace-presence': import("eslint").Rule.RuleModule;
270
+ 'jsx-pascal-case': import("eslint").Rule.RuleModule;
271
+ 'jsx-fragments': import("eslint").Rule.RuleModule;
272
+ 'jsx-props-no-multi-spaces': import("eslint").Rule.RuleModule;
273
+ 'jsx-props-no-spreading': import("eslint").Rule.RuleModule;
274
+ 'jsx-props-no-spread-multi': {
275
+ meta: {
276
+ docs: {
277
+ description: string;
278
+ category: string;
279
+ recommended: boolean;
280
+ url: string;
281
+ };
282
+ messages: {
283
+ noMultiSpreading: string;
284
+ };
285
+ };
286
+ create(context: any): {
287
+ JSXOpeningElement(node: any): void;
288
+ };
289
+ };
290
+ 'jsx-sort-default-props': import("eslint").Rule.RuleModule;
291
+ 'jsx-sort-props': import("eslint").Rule.RuleModule;
292
+ 'jsx-space-before-closing': import("eslint").Rule.RuleModule;
293
+ 'jsx-tag-spacing': import("eslint").Rule.RuleModule;
294
+ 'jsx-uses-react': import("eslint").Rule.RuleModule;
295
+ 'jsx-uses-vars': import("eslint").Rule.RuleModule;
296
+ 'jsx-wrap-multilines': import("eslint").Rule.RuleModule;
297
+ 'no-invalid-html-attribute': import("eslint").Rule.RuleModule;
298
+ 'no-access-state-in-setstate': import("eslint").Rule.RuleModule;
299
+ 'no-adjacent-inline-elements': import("eslint").Rule.RuleModule;
300
+ 'no-array-index-key': import("eslint").Rule.RuleModule;
301
+ 'no-arrow-function-lifecycle': import("eslint").Rule.RuleModule;
302
+ 'no-children-prop': import("eslint").Rule.RuleModule;
303
+ 'no-danger': import("eslint").Rule.RuleModule;
304
+ 'no-danger-with-children': import("eslint").Rule.RuleModule;
305
+ 'no-deprecated': import("eslint").Rule.RuleModule;
306
+ 'no-did-mount-set-state': import("eslint").Rule.RuleModule;
307
+ 'no-did-update-set-state': import("eslint").Rule.RuleModule;
308
+ 'no-direct-mutation-state': import("eslint").Rule.RuleModule;
309
+ 'no-find-dom-node': import("eslint").Rule.RuleModule;
310
+ 'no-is-mounted': import("eslint").Rule.RuleModule;
311
+ 'no-multi-comp': import("eslint").Rule.RuleModule;
312
+ 'no-namespace': import("eslint").Rule.RuleModule;
313
+ 'no-set-state': import("eslint").Rule.RuleModule;
314
+ 'no-string-refs': import("eslint").Rule.RuleModule;
315
+ 'no-redundant-should-component-update': import("eslint").Rule.RuleModule;
316
+ 'no-render-return-value': import("eslint").Rule.RuleModule;
317
+ 'no-this-in-sfc': import("eslint").Rule.RuleModule;
318
+ 'no-typos': import("eslint").Rule.RuleModule;
319
+ 'no-unescaped-entities': import("eslint").Rule.RuleModule;
320
+ 'no-unknown-property': import("eslint").Rule.RuleModule;
321
+ 'no-unsafe': import("eslint").Rule.RuleModule;
322
+ 'no-unstable-nested-components': import("eslint").Rule.RuleModule;
323
+ 'no-unused-class-component-methods': import("eslint").Rule.RuleModule;
324
+ 'no-unused-prop-types': import("eslint").Rule.RuleModule;
325
+ 'no-unused-state': import("eslint").Rule.RuleModule;
326
+ 'no-object-type-as-default-prop': import("eslint").Rule.RuleModule;
327
+ 'no-will-update-set-state': import("eslint").Rule.RuleModule;
328
+ 'prefer-es6-class': import("eslint").Rule.RuleModule;
329
+ 'prefer-exact-props': import("eslint").Rule.RuleModule;
330
+ 'prefer-read-only-props': import("eslint").Rule.RuleModule;
331
+ 'prefer-stateless-function': import("eslint").Rule.RuleModule;
332
+ 'prop-types': import("eslint").Rule.RuleModule;
333
+ 'react-in-jsx-scope': import("eslint").Rule.RuleModule;
334
+ 'require-default-props': import("eslint").Rule.RuleModule;
335
+ 'require-optimization': import("eslint").Rule.RuleModule;
336
+ 'require-render-return': import("eslint").Rule.RuleModule;
337
+ 'self-closing-comp': import("eslint").Rule.RuleModule;
338
+ 'sort-comp': import("eslint").Rule.RuleModule;
339
+ 'sort-default-props': import("eslint").Rule.RuleModule;
340
+ 'sort-prop-types': import("eslint").Rule.RuleModule;
341
+ 'state-in-constructor': import("eslint").Rule.RuleModule;
342
+ 'static-property-placement': import("eslint").Rule.RuleModule;
343
+ 'style-prop-object': import("eslint").Rule.RuleModule;
344
+ 'void-dom-elements-no-children': import("eslint").Rule.RuleModule;
345
+ };
346
+ configs: {
347
+ recommended: {
348
+ plugins: ["react"];
349
+ parserOptions: {
350
+ ecmaFeatures: {
351
+ jsx: boolean;
352
+ };
353
+ };
354
+ rules: {
355
+ "react/display-name": number;
356
+ "react/jsx-key": number;
357
+ "react/jsx-no-comment-textnodes": number;
358
+ "react/jsx-no-duplicate-props": number;
359
+ "react/jsx-no-target-blank": number;
360
+ "react/jsx-no-undef": number;
361
+ "react/jsx-uses-react": number;
362
+ "react/jsx-uses-vars": number;
363
+ "react/no-children-prop": number;
364
+ "react/no-danger-with-children": number;
365
+ "react/no-deprecated": number;
366
+ "react/no-direct-mutation-state": number;
367
+ "react/no-find-dom-node": number;
368
+ "react/no-is-mounted": number;
369
+ "react/no-render-return-value": number;
370
+ "react/no-string-refs": number;
371
+ "react/no-unescaped-entities": number;
372
+ "react/no-unknown-property": number;
373
+ "react/no-unsafe": number;
374
+ "react/prop-types": number;
375
+ "react/react-in-jsx-scope": number;
376
+ "react/require-render-return": number;
377
+ };
378
+ };
379
+ all: {
380
+ plugins: ["react"];
381
+ parserOptions: {
382
+ ecmaFeatures: {
383
+ jsx: boolean;
384
+ };
385
+ };
386
+ rules: Record<"boolean-prop-naming" | "button-has-type" | "checked-requires-onchange-or-readonly" | "default-props-match-prop-types" | "destructuring-assignment" | "display-name" | "forbid-component-props" | "forbid-dom-props" | "forbid-elements" | "forbid-foreign-prop-types" | "forbid-prop-types" | "prop-types" | "forward-ref-uses-ref" | "function-component-definition" | "hook-use-state" | "iframe-missing-sandbox" | "jsx-boolean-value" | "jsx-child-element-spacing" | "jsx-closing-bracket-location" | "jsx-closing-tag-location" | "jsx-curly-spacing" | "jsx-curly-newline" | "jsx-equals-spacing" | "jsx-filename-extension" | "jsx-first-prop-new-line" | "jsx-handler-names" | "jsx-indent" | "jsx-indent-props" | "jsx-key" | "jsx-max-depth" | "jsx-max-props-per-line" | "jsx-newline" | "jsx-no-bind" | "jsx-no-comment-textnodes" | "jsx-no-constructed-context-values" | "jsx-no-duplicate-props" | "jsx-no-leaked-render" | "jsx-no-literals" | "jsx-no-script-url" | "jsx-no-target-blank" | "jsx-no-useless-fragment" | "jsx-one-expression-per-line" | "jsx-no-undef" | "jsx-curly-brace-presence" | "jsx-pascal-case" | "jsx-fragments" | "jsx-props-no-multi-spaces" | "jsx-props-no-spreading" | "jsx-props-no-spread-multi" | "sort-default-props" | "jsx-sort-default-props" | "jsx-sort-props" | "jsx-tag-spacing" | "jsx-space-before-closing" | "jsx-uses-react" | "jsx-uses-vars" | "jsx-wrap-multilines" | "no-invalid-html-attribute" | "no-access-state-in-setstate" | "no-adjacent-inline-elements" | "no-array-index-key" | "no-arrow-function-lifecycle" | "no-children-prop" | "no-danger" | "no-danger-with-children" | "no-deprecated" | "no-direct-mutation-state" | "no-find-dom-node" | "no-is-mounted" | "no-multi-comp" | "no-namespace" | "no-set-state" | "no-string-refs" | "no-redundant-should-component-update" | "no-render-return-value" | "no-this-in-sfc" | "no-typos" | "no-unescaped-entities" | "no-unknown-property" | "no-unsafe" | "no-unstable-nested-components" | "no-unused-class-component-methods" | "no-unused-prop-types" | "no-unused-state" | "no-object-type-as-default-prop" | "prefer-es6-class" | "prefer-exact-props" | "prefer-read-only-props" | "prefer-stateless-function" | "react-in-jsx-scope" | "require-default-props" | "require-optimization" | "require-render-return" | "self-closing-comp" | "sort-comp" | "sort-prop-types" | "state-in-constructor" | "static-property-placement" | "style-prop-object" | "void-dom-elements-no-children" | "no-did-mount-set-state" | "no-did-update-set-state" | "no-will-update-set-state", 2 | "error">;
387
+ };
388
+ 'jsx-runtime': {
389
+ plugins: ["react"];
390
+ parserOptions: {
391
+ ecmaFeatures: {
392
+ jsx: boolean;
393
+ };
394
+ jsxPragma: any;
395
+ };
396
+ rules: {
397
+ "react/react-in-jsx-scope": number;
398
+ "react/jsx-uses-react": number;
399
+ };
400
+ };
401
+ } & {
402
+ flat?: Record<string, import("eslint-plugin-react").ReactFlatConfig>;
403
+ };
404
+ };
42
405
  readonly "react-hooks": unknown;
43
406
  readonly sonarjs: typeof import("eslint-plugin-sonarjs");
44
407
  readonly unicorn: import("eslint").ESLint.Plugin & {
@@ -155,7 +518,6 @@ export declare function typescript(project?: string): readonly [{
155
518
  readonly "no-empty-function": "off";
156
519
  readonly "no-invalid-this": "off";
157
520
  readonly "no-shadow": "off";
158
- readonly "lines-between-class-members": "off";
159
521
  readonly "no-array-constructor": "off";
160
522
  readonly "no-dupe-class-members": "off";
161
523
  readonly "no-implied-eval": "off";
@@ -176,9 +538,6 @@ export declare function typescript(project?: string): readonly [{
176
538
  readonly "@typescript-eslint/no-shadow": readonly ["error", {
177
539
  readonly ignoreOnInitialization: true;
178
540
  }];
179
- readonly "@typescript-eslint/lines-between-class-members": readonly ["error", "always", {
180
- readonly exceptAfterSingleLine: true;
181
- }];
182
541
  readonly "@typescript-eslint/no-array-constructor": "error";
183
542
  readonly "@typescript-eslint/no-dupe-class-members": "error";
184
543
  readonly "@typescript-eslint/no-implied-eval": "error";
@@ -334,6 +693,7 @@ export declare function typescript(project?: string): readonly [{
334
693
  readonly "unicorn/no-unreadable-iife": "error";
335
694
  readonly "unicorn/no-useless-spread": "error";
336
695
  readonly "unicorn/prefer-array-flat-map": "error";
696
+ readonly "unicorn/prefer-export-from": "error";
337
697
  readonly "unicorn/prefer-global-this": "error";
338
698
  readonly "unicorn/prefer-includes": "error";
339
699
  readonly "unicorn/prefer-module": "error";
@@ -465,16 +825,6 @@ export declare function typescript(project?: string): readonly [{
465
825
  readonly 'prefer-regex-literals': readonly ["error", {
466
826
  readonly disallowRedundantWrapping: true;
467
827
  }];
468
- readonly 'spaced-comment': readonly ["error", "always", {
469
- readonly line: {
470
- readonly markers: readonly ["*package", "!", "/", ",", "="];
471
- };
472
- readonly block: {
473
- readonly balanced: true;
474
- readonly markers: readonly ["*package", "!", ",", ":", "::", "flow-include"];
475
- readonly exceptions: readonly ["*"];
476
- };
477
- }];
478
828
  readonly 'symbol-description': "error";
479
829
  readonly 'unicode-bom': readonly ["error", "never"];
480
830
  readonly 'use-isnan': readonly ["error", {
@@ -1 +1 @@
1
- {"version":3,"file":"typescript.d.ts","sourceRoot":"","sources":["../../src/config/typescript.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,aAAa,MAAM,yBAAyB,CAAC;AACzD,OAAO,QAAQ,MAAM,2BAA2B,CAAC;AACjD,OAAO,iBAAiB,MAAM,2BAA2B,CAAC;AAG1D,wBAAgB,UAAU,CAAC,OAAO,CAAC,EAAE,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;6CAiBrC,QAAO;6CAGP,QAAQ;oCAEK,QAAQ;kDAGd,QAAQ;kDAGC,QACjB;2CAEY,QAAQ;iDAInB,QAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2NP"}
1
+ {"version":3,"file":"typescript.d.ts","sourceRoot":"","sources":["../../src/config/typescript.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import process from "node:process";
2
2
  import * as fengeTsPlugin from "@fenge/eslint-plugin-ts";
3
3
  import tsParser from "@typescript-eslint/parser";
4
- import deprecationPlugin from "eslint-plugin-deprecation";
4
+ import deprecationPlugin from "eslint-plugin-deprecation"; // TODO: Remove this plugin and use `@typescript-eslint/no-deprecated` when eslint upgraded to 9.
5
5
  import { javascript } from "./javascript.js";
6
6
  export function typescript(project) {
7
7
  const jsConfig = javascript()[0];
@@ -235,4 +235,4 @@ export function typescript(project) {
235
235
  },
236
236
  ];
237
237
  }
238
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXNjcmlwdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb25maWcvdHlwZXNjcmlwdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLE9BQU8sTUFBTSxjQUFjLENBQUM7QUFDbkMsT0FBTyxLQUFLLGFBQWEsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLFFBQVEsTUFBTSwyQkFBMkIsQ0FBQztBQUNqRCxPQUFPLGlCQUFpQixNQUFNLDJCQUEyQixDQUFDO0FBQzFELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUU3QyxNQUFNLFVBQVUsVUFBVSxDQUFDLE9BQWdCO0lBQ3pDLE1BQU0sUUFBUSxHQUFHLFVBQVUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBRWpDLE1BQU0sbUJBQW1CLEdBQUcsR0FBRyxFQUFFO1FBQy9CLGlEQUFpRDtRQUNqRCxNQUFNLGlCQUFpQixHQUFHO1lBQ3hCLGVBQWU7WUFDZixhQUFhO1lBQ2Isd0JBQXdCO1lBQ3hCLGNBQWM7WUFDZCxlQUFlO1lBQ2YsbUJBQW1CO1lBQ25CLG9CQUFvQjtZQUNwQixjQUFjO1lBQ2QsbUJBQW1CO1lBQ25CLFFBQVE7WUFDUixtQkFBbUI7WUFDbkIsYUFBYTtZQUNiLGlCQUFpQjtZQUNqQixzQkFBc0I7WUFDdEIsNkJBQTZCO1lBQzdCLFlBQVk7WUFDWixzQkFBc0I7WUFDdEIsdUJBQXVCO1lBQ3ZCLG1CQUFtQjtZQUNuQixpQkFBaUI7WUFDakIsZUFBZTtZQUNmLGlCQUFpQjtZQUNqQixpQkFBaUI7WUFDakIsY0FBYztZQUNkLDBCQUEwQjtZQUMxQixrQkFBa0I7WUFDbEIsY0FBYztZQUNkLHVCQUF1QjtZQUN2QixXQUFXO1lBQ1gsa0JBQWtCO1lBQ2xCLHVCQUF1QjtZQUN2QixnQkFBZ0I7WUFDaEIsc0JBQXNCO1lBQ3RCLHdCQUF3QjtZQUN4QixzQkFBc0I7WUFDdEIsa0JBQWtCLEVBQUUsK0NBQStDO1lBQ25F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QUssRUFBRTtnQkFDTCxvQ0FBb0M7Z0JBQ3BDLG1DQUFtQzthQUNwQztZQUNELEtBQUssRUFBRTtnQkFDTCx5Q0FBeUMsRUFBRSxLQUFLO2dCQUNoRCxtQ0FBbUMsRUFBRSxLQUFLO2dCQUMxQyw0QkFBNEIsRUFBRSxDQUFDLE9BQU8sRUFBRSxFQUFFLG9CQUFvQixFQUFFLElBQUksRUFBRSxDQUFDO2FBQ3hFO1NBQ0Y7S0FDTyxDQUFDO0FBQ2IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBwcm9jZXNzIGZyb20gXCJub2RlOnByb2Nlc3NcIjtcbmltcG9ydCAqIGFzIGZlbmdlVHNQbHVnaW4gZnJvbSBcIkBmZW5nZS9lc2xpbnQtcGx1Z2luLXRzXCI7XG5pbXBvcnQgdHNQYXJzZXIgZnJvbSBcIkB0eXBlc2NyaXB0LWVzbGludC9wYXJzZXJcIjtcbmltcG9ydCBkZXByZWNhdGlvblBsdWdpbiBmcm9tIFwiZXNsaW50LXBsdWdpbi1kZXByZWNhdGlvblwiO1xuaW1wb3J0IHsgamF2YXNjcmlwdCB9IGZyb20gXCIuL2phdmFzY3JpcHQuanNcIjtcblxuZXhwb3J0IGZ1bmN0aW9uIHR5cGVzY3JpcHQocHJvamVjdD86IHN0cmluZykge1xuICBjb25zdCBqc0NvbmZpZyA9IGphdmFzY3JpcHQoKVswXTtcblxuICBjb25zdCBnZXRUc0V4dGVuc2lvblJ1bGVzID0gKCkgPT4ge1xuICAgIC8vIGh0dHBzOi8vdHlwZXNjcmlwdC1lc2xpbnQuaW8vcnVsZXMvPz1leHRlbnNpb25cbiAgICBjb25zdCBleHRlbnNpb25SdWxlS2V5cyA9IFtcbiAgICAgIFwiYmxvY2stc3BhY2luZ1wiLFxuICAgICAgXCJicmFjZS1zdHlsZVwiLFxuICAgICAgXCJjbGFzcy1tZXRob2RzLXVzZS10aGlzXCIsXG4gICAgICBcImNvbW1hLWRhbmdsZVwiLFxuICAgICAgXCJjb21tYS1zcGFjaW5nXCIsXG4gICAgICBcImNvbnNpc3RlbnQtcmV0dXJuXCIsXG4gICAgICBcImRlZmF1bHQtcGFyYW0tbGFzdFwiLFxuICAgICAgXCJkb3Qtbm90YXRpb25cIixcbiAgICAgIFwiZnVuYy1jYWxsLXNwYWNpbmdcIixcbiAgICAgIFwiaW5kZW50XCIsXG4gICAgICBcImluaXQtZGVjbGFyYXRpb25zXCIsXG4gICAgICBcImtleS1zcGFjaW5nXCIsXG4gICAgICBcImtleXdvcmQtc3BhY2luZ1wiLFxuICAgICAgXCJsaW5lcy1hcm91bmQtY29tbWVudFwiLFxuICAgICAgXCJsaW5lcy1iZXR3ZWVuLWNsYXNzLW1lbWJlcnNcIixcbiAgICAgIFwibWF4LXBhcmFtc1wiLFxuICAgICAgXCJuby1hcnJheS1jb25zdHJ1Y3RvclwiLFxuICAgICAgXCJuby1kdXBlLWNsYXNzLW1lbWJlcnNcIixcbiAgICAgIFwibm8tZW1wdHktZnVuY3Rpb25cIixcbiAgICAgIFwibm8tZXh0cmEtcGFyZW5zXCIsXG4gICAgICBcIm5vLWV4dHJhLXNlbWlcIixcbiAgICAgIFwibm8taW1wbGllZC1ldmFsXCIsXG4gICAgICBcIm5vLWludmFsaWQtdGhpc1wiLFxuICAgICAgXCJuby1sb29wLWZ1bmNcIixcbiAgICAgIC8vIFwibm8tbG9zcy1vZi1wcmVjaXNpb25cIixcbiAgICAgIFwibm8tbWFnaWMtbnVtYmVyc1wiLFxuICAgICAgXCJuby1yZWRlY2xhcmVcIixcbiAgICAgIFwibm8tcmVzdHJpY3RlZC1pbXBvcnRzXCIsXG4gICAgICBcIm5vLXNoYWRvd1wiLFxuICAgICAgXCJuby10aHJvdy1saXRlcmFsXCIsXG4gICAgICBcIm5vLXVudXNlZC1leHByZXNzaW9uc1wiLFxuICAgICAgXCJuby11bnVzZWQtdmFyc1wiLFxuICAgICAgXCJuby11c2UtYmVmb3JlLWRlZmluZVwiLFxuICAgICAgXCJuby11c2VsZXNzLWNvbnN0cnVjdG9yXCIsXG4gICAgICBcIm9iamVjdC1jdXJseS1zcGFjaW5nXCIsXG4gICAgICBcIm9ubHktdGhyb3ctZXJyb3JcIiwgLy8gdGhpcyBydWxlIGJhc2VkIG9uICdlc2xpbnQvbm8tdGhyb3ctbGl0ZXJhbCdcbiAgICAgIFwicGFkZGluZy1saW5lLWJldHdlZW4tc3RhdGVtZW50c1wiLFxuICAgICAgXCJwcmVmZXItZGVzdHJ1Y3R1cmluZ1wiLFxuICAgICAgXCJwcmVmZXItcHJvbWlzZS1yZWplY3QtZXJyb3JzXCIsXG4gICAgICBcInF1b3Rlc1wiLFxuICAgICAgXCJyZXF1aXJlLWF3YWl0XCIsXG4gICAgICBcInJldHVybi1hd2FpdFwiLCAvLyB0aGlzIHJ1bGUgYmFzZWQgb24gJ2VzbGludC9uby1yZXR1cm4tYXdhaXQnIGluc3RlYWQgb2YgJ2VzbGludC9yZXR1cm4tYXdhaXQnXG4gICAgICBcInNlbWlcIixcbiAgICAgIFwic3BhY2UtYmVmb3JlLWJsb2Nrc1wiLFxuICAgICAgXCJzcGFjZS1iZWZvcmUtZnVuY3Rpb24tcGFyZW5cIixcbiAgICAgIFwic3BhY2UtaW5maXgtb3BzXCIsXG4gICAgXSBhcyBjb25zdDtcbiAgICB0eXBlIEV4dGVuc2lvblJ1bGVLZXkgPSAodHlwZW9mIGV4dGVuc2lvblJ1bGVLZXlzKVtudW1iZXJdO1xuICAgIHR5cGUgSnNDb25maWdSdWxlS2V5ID0ga2V5b2YgdHlwZW9mIGpzQ29uZmlnLnJ1bGVzO1xuXG4gICAgdHlwZSBKc0V4dGVuc2lvbktleSA9IEV4dHJhY3Q8RXh0ZW5zaW9uUnVsZUtleSwgSnNDb25maWdSdWxlS2V5PjsgLy8gRXh0cmFjdFxuICAgIHR5cGUgVHNFeHRlbnNpb25LZXkgPSBgQHR5cGVzY3JpcHQtZXNsaW50LyR7SnNFeHRlbnNpb25LZXl9YDtcblxuICAgIHR5cGUgR2V0SnNLZXk8VCBleHRlbmRzIFRzRXh0ZW5zaW9uS2V5PiA9XG4gICAgICBUIGV4dGVuZHMgYEB0eXBlc2NyaXB0LWVzbGludC8ke2luZmVyIEt9YCA/IEsgOiBuZXZlcjtcbiAgICB0eXBlIEpzUmVzdWx0ID0ge1xuICAgICAgW0tleSBpbiBKc0V4dGVuc2lvbktleV06IFwib2ZmXCI7XG4gICAgfTtcbiAgICB0eXBlIFRzUmVzdWx0ID0ge1xuICAgICAgW0tleSBpbiBUc0V4dGVuc2lvbktleV06ICh0eXBlb2YganNDb25maWcucnVsZXMpW0dldEpzS2V5PEtleT5dO1xuICAgIH07XG4gICAgdHlwZSBSZXN1bHQgPSBKc1Jlc3VsdCAmIFRzUmVzdWx0O1xuXG4gICAgY29uc3QgZXh0ZW5zaW9uUnVsZUtleVNldCA9IG5ldyBTZXQ8c3RyaW5nPihleHRlbnNpb25SdWxlS2V5cyk7XG4gICAgcmV0dXJuIE9iamVjdC5lbnRyaWVzKGpzQ29uZmlnLnJ1bGVzKVxuICAgICAgLmZpbHRlcigoW2tleV0pID0+IGV4dGVuc2lvblJ1bGVLZXlTZXQuaGFzKGtleSkpXG4gICAgICAucmVkdWNlKFxuICAgICAgICAocHJldiwgW2pzUnVsZUtleSwganNSdWxlVmFsdWVdKSA9PiAoe1xuICAgICAgICAgIC4uLnByZXYsXG4gICAgICAgICAgW2pzUnVsZUtleV06IFwib2ZmXCIsXG4gICAgICAgICAgW2BAdHlwZXNjcmlwdC1lc2xpbnQvJHtqc1J1bGVLZXl9YF06IGpzUnVsZVZhbHVlLFxuICAgICAgICB9KSxcbiAgICAgICAge30gYXMgUmVzdWx0LFxuICAgICAgKTtcbiAgfTtcblxuICByZXR1cm4gW1xuICAgIHtcbiAgICAgIC4uLmpzQ29uZmlnLFxuICAgICAgbmFtZTogXCJmZW5nZS90eXBlc2NyaXB0XCIsXG4gICAgICBmaWxlczogW1wiKiovKi57dHMsY3RzLG10cyx0c3h9XCJdLFxuICAgICAgbGFuZ3VhZ2VPcHRpb25zOiB7XG4gICAgICAgIC4uLmpzQ29uZmlnLmxhbmd1YWdlT3B0aW9ucyxcbiAgICAgICAgcGFyc2VyOiB0c1BhcnNlciwgLy8gVW5mb3J0dW5hdGVseSBwYXJzZXIgY2Fubm90IGJlIGEgc3RyaW5nLiBFc2xpbnQgc2hvdWxkIHN1cHBvcnQgaXQuIGh0dHBzOi8vZXNsaW50Lm9yZy9kb2NzL2xhdGVzdC91c2UvY29uZmlndXJlL2NvbmZpZ3VyYXRpb24tZmlsZXMtbmV3I2NvbmZpZ3VyaW5nLWEtY3VzdG9tLXBhcnNlci1hbmQtaXRzLW9wdGlvbnNcbiAgICAgICAgcGFyc2VyT3B0aW9uczoge1xuICAgICAgICAgIC4uLmpzQ29uZmlnLmxhbmd1YWdlT3B0aW9ucy5wYXJzZXJPcHRpb25zLFxuICAgICAgICAgIHRzY29uZmlnUm9vdERpcjogcHJvY2Vzcy5jd2QoKSxcbiAgICAgICAgICBwcm9qZWN0OiBwcm9qZWN0ID8/IFwidHNjb25maWcuanNvblwiLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHBsdWdpbnM6IHtcbiAgICAgICAgLi4uanNDb25maWcucGx1Z2lucyxcbiAgICAgICAgZGVwcmVjYXRpb246IGRlcHJlY2F0aW9uUGx1Z2luLFxuICAgICAgICBcIkBmZW5nZS10c1wiOiBmZW5nZVRzUGx1Z2luLFxuICAgICAgfSxcbiAgICAgIHJ1bGVzOiB7XG4gICAgICAgIC4uLmpzQ29uZmlnLnJ1bGVzLFxuICAgICAgICAuLi5nZXRUc0V4dGVuc2lvblJ1bGVzKCksXG5cbiAgICAgICAgLy8gZGVwcmVjYXRpb25cbiAgICAgICAgXCJkZXByZWNhdGlvbi9kZXByZWNhdGlvblwiOiBcImVycm9yXCIsXG4gICAgICAgIC8vIGZlbmdlXG4gICAgICAgIFwiQGZlbmdlLXRzL2V4YWN0LW1hcC1zZXQtdHlwZVwiOiBcImVycm9yXCIsXG4gICAgICAgIFwiQGZlbmdlLXRzL25vLWNvbnN0LWVudW1cIjogXCJlcnJvclwiLFxuICAgICAgICBcIkBmZW5nZS10cy9uby1kZWNsYXJlcy1pbi10cy1maWxlXCI6IFwiZXJyb3JcIixcbiAgICAgICAgXCJAZmVuZ2UtdHMvbm8tZXhwb3J0LWFzc2lnbm1lbnRcIjogXCJlcnJvclwiLFxuICAgICAgICBcIkBmZW5nZS10cy9uby1wcm9wZXJ0eS1kZWNvcmF0b3JcIjogXCJlcnJvclwiLFxuICAgICAgICBcIkBmZW5nZS10cy9uby11bnR5cGVkLWVtcHR5LWFycmF5XCI6IFwiZXJyb3JcIixcbiAgICAgICAgLy8gdHlwZXNjcmlwdFxuICAgICAgICBcIkB0eXBlc2NyaXB0LWVzbGludC9hZGphY2VudC1vdmVybG9hZC1zaWduYXR1cmVzXCI6IFwiZXJyb3JcIixcbiAgICAgICAgLy8gXCJAdHlwZXNjcmlwdC1lc2xpbnQvYXJyYXktdHlwZVwiOiBbXCJlcnJvclwiLCAnYXJyYXktc2ltcGxlJ10sIC8vIFRoZSBkZWZhdWx0IG9wdGlvbiBpcyAnYXJyYXknLiBOb3QgdmVyeSBzdXJlIGlmIHdlIG5lZWQgdG8gY2hhbmdlIHRoZSBvcHRpb24uIFNvIGRpc2FibGVkIGl0LlxuICAgICAgICBcIkB0eXBlc2NyaXB0LWVzbGludC9hd2FpdC10aGVuYWJsZVwiOiBcImVycm9yXCIsXG4gICAgICAgIFwiQHR5cGVzY3JpcHQtZXNsaW50L2Jhbi10eXBlc1wiOiBcImVycm9yXCIsXG4gICAgICAgIFwiQHR5cGVzY3JpcHQtZXNsaW50L2NvbnNpc3RlbnQtZ2VuZXJpYy1jb25zdHJ1Y3RvcnNcIjogXCJlcnJvclwiLFxuICAgICAgICBcIkB0eXBlc2NyaXB0LWVzbGludC9jb25zaXN0ZW50LWluZGV4ZWQtb2JqZWN0LXN0eWxlXCI6IFwiZXJyb3JcIixcbiAgICAgICAgXCJAdHlwZXNjcmlwdC1lc2xpbnQvY29uc2lzdGVudC10eXBlLWFzc2VydGlvbnNcIjogW1xuICAgICAgICAgIFwiZXJyb3JcIixcbiAgICAgICAgICB7XG4gICAgICAgICAgICBhc3NlcnRpb25TdHlsZTogXCJhc1wiLFxuICAgICAgICAgICAgb2JqZWN0TGl0ZXJhbFR5cGVBc3NlcnRpb25zOiBcImFsbG93LWFzLXBhcmFtZXRlclwiLFxuICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICAgIFwiQHR5cGVzY3JpcHQtZXNsaW50L2NvbnNpc3RlbnQtdHlwZS1kZWZpbml0aW9uc1wiOiBbXG4gICAgICAgICAgXCJlcnJvclwiLFxuICAgICAgICAgIFwiaW50ZXJmYWNlXCIsXG4gICAgICAgIF0sIC8vIFRPRE8gc2hvdWxkIHdlIGNoYW5nZSB0byAndHlwZSc/XG4gICAgICAgIFwiQHR5cGVzY3JpcHQtZXNsaW50L2NvbnNpc3RlbnQtdHlwZS1leHBvcnRzXCI6IFwiZXJyb3JcIixcbiAgICAgICAgLy8gXCJAdHlwZXNjcmlwdC1lc2xpbnQvY29uc2lzdGVudC10eXBlLWltcG9ydHNcIjogXCJlcnJvcixcbiAgICAgICAgXCJAdHlwZXNjcmlwdC1lc2xpbnQvZG90LW5vdGF0aW9uXCI6IFtcImVycm9yXCIsIHsgYWxsb3dLZXl3b3JkczogdHJ1ZSB9XSxcbiAgICAgICAgXCJAdHlwZXNjcmlwdC1lc2xpbnQvbWV0aG9kLXNpZ25hdHVyZS1zdHlsZVwiOiBcImVycm9yXCIsXG4gICAgICAgIFwiQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uXCI6IFtcbiAgICAgICAgICBcImVycm9yXCIsXG4gICAgICAgICAge1xuICAgICAgICAgICAgc2VsZWN0b3I6IFwiZnVuY3Rpb25cIixcbiAgICAgICAgICAgIGZvcm1hdDogW1wiY2FtZWxDYXNlXCIsIFwiUGFzY2FsQ2FzZVwiXSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIHNlbGVjdG9yOiBcInZhcmlhYmxlXCIsXG4gICAgICAgICAgICB0eXBlczogW1wiZnVuY3Rpb25cIl0sXG4gICAgICAgICAgICBmb3JtYXQ6IFtcImNhbWVsQ2FzZVwiLCBcIlBhc2NhbENhc2VcIl0sIC8vIGRlY29yYXRvcnMgbmVlZCBQYXNjYWxDYXNlXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBzZWxlY3RvcjogXCJjbGFzc1wiLFxuICAgICAgICAgICAgZm9ybWF0OiBbXCJQYXNjYWxDYXNlXCJdLFxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgc2VsZWN0b3I6IFwiaW50ZXJmYWNlXCIsXG4gICAgICAgICAgICBmb3JtYXQ6IFtcIlBhc2NhbENhc2VcIl0sXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBzZWxlY3RvcjogXCJ0eXBlQWxpYXNcIixcbiAgICAgICAgICAgIGZvcm1hdDogW1wiUGFzY2FsQ2FzZVwiXSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIHNlbGVjdG9yOiBcInR5cGVQYXJhbWV0ZXJcIixcbiAgICAgICAgICAgIGZvcm1hdDogW1wiVVBQRVJfQ0FTRVwiLCBcIlBhc2NhbENhc2VcIl0sXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgICAgXCJAdHlwZXNjcmlwdC1lc2xpbnQvbm8tYXJyYXktZGVsZXRlXCI6IFwiZXJyb3JcIixcbiAgICAgICAgXCJAdHlwZXNjcmlwdC1lc2xpbnQvbm8tYmFzZS10by1zdHJpbmdcIjogW1xuICAgICAgICAgIFwiZXJyb3JcIixcbiAgICAgICAgICB7IGlnbm9yZWRUeXBlTmFtZXM6IFtdIH0sXG4gICAgICAgIF0sXG4gICAgICAgIFwiQHR5cGVzY3JpcHQtZXNsaW50L25vLWNvbmZ1c2luZy1ub24tbnVsbC1hc3NlcnRpb25cIjogXCJlcnJvclwiLFxuICAgICAgICBcIkB0eXBlc2NyaXB0LWVzbGludC9uby1kdXBsaWNhdGUtZW51bS12YWx1ZXNcIjogXCJlcnJvclwiLFxuICAgICAgICBcIkB0eXBlc2NyaXB0LWVzbGludC9uby1kdXBsaWNhdGUtdHlwZS1jb25zdGl0dWVudHNcIjogXCJlcnJvclwiLFxuICAgICAgICBcIkB0eXBlc2NyaXB0LWVzbGludC9uby1lbXB0eS1vYmplY3QtdHlwZVwiOiBcImVycm9yXCIsXG4gICAgICAgIFwiQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4dHJhLW5vbi1udWxsLWFzc2VydGlvblwiOiBcImVycm9yXCIsXG4gICAgICAgIFwiQHR5cGVzY3JpcHQtZXNsaW50L25vLWZsb2F0aW5nLXByb21pc2VzXCI6IFtcbiAgICAgICAgICBcImVycm9yXCIsXG4gICAgICAgICAge1xuICAgICAgICAgICAgaWdub3JlVm9pZDogZmFsc2UsXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgICAgXCJAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZm9yLWluLWFycmF5XCI6IFwiZXJyb3JcIixcbiAgICAgICAgXCJAdHlwZXNjcmlwdC1lc2xpbnQvbm8taW1wb3J0LXR5cGUtc2lkZS1lZmZlY3RzXCI6IFwiZXJyb3JcIixcbiAgICAgICAgXCJAdHlwZXNjcmlwdC1lc2xpbnQvbm8taW5mZXJyYWJsZS10eXBlc1wiOiBcImVycm9yXCIsXG4gICAgICAgIFwiQHR5cGVzY3JpcHQtZXNsaW50L25vLW1pc3VzZWQtbmV3XCI6IFwiZXJyb3JcIixcbiAgICAgICAgXCJAdHlwZXNjcmlwdC1lc2xpbnQvbm8tbWlzdXNlZC1wcm9taXNlc1wiOiBcImVycm9yXCIsXG4gICAgICAgIFwiQHR5cGVzY3JpcHQtZXNsaW50L25vLW1peGVkLWVudW1zXCI6IFwiZXJyb3JcIixcbiAgICAgICAgXCJAdHlwZXNjcmlwdC1lc2xpbnQvbm8tbmFtZXNwYWNlXCI6IFwiZXJyb3JcIixcbiAgICAgICAgXCJAdHlwZXNjcmlwdC1lc2xpbnQvbm8tbm9uLW51bGwtYXNzZXJ0ZWQtb3B0aW9uYWwtY2hhaW5cIjogXCJlcnJvclwiLFxuICAgICAgICBcIkB0eXBlc2NyaXB0LWVzbGludC9uby1ub24tbnVsbC1hc3NlcnRpb25cIjogXCJlcnJvclwiLFxuICAgICAgICBcIkB0eXBlc2NyaXB0LWVzbGludC9uby1yZXF1aXJlLWltcG9ydHNcIjogXCJlcnJvclwiLFxuICAgICAgICBcIkB0eXBlc2NyaXB0LWVzbGludC9uby10aGlzLWFsaWFzXCI6IFwiZXJyb3JcIixcbiAgICAgICAgXCJAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW5uZWNlc3NhcnktY29uZGl0aW9uXCI6IFwiZXJyb3JcIixcbiAgICAgICAgXCJAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW5uZWNlc3NhcnktcGFyYW1ldGVyLXByb3BlcnR5LWFzc2lnbm1lbnRcIjpcbiAgICAgICAgICBcImVycm9yXCIsXG4gICAgICAgIFwiQHR5cGVzY3JpcHQtZXNsaW50L25vLXVubmVjZXNzYXJ5LXRlbXBsYXRlLWV4cHJlc3Npb25cIjogXCJlcnJvclwiLCAvLyBqcyBhbHNvIG5lZWQgdGhpcyBydWxlXG4gICAgICAgIFwiQHR5cGVzY3JpcHQtZXNsaW50L25vLXVubmVjZXNzYXJ5LXR5cGUtYXNzZXJ0aW9uXCI6IFwiZXJyb3JcIixcbiAgICAgICAgXCJAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW5uZWNlc3NhcnktdHlwZS1jb25zdHJhaW50XCI6IFwiZXJyb3JcIixcbiAgICAgICAgXCJAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW5zYWZlLWRlY2xhcmF0aW9uLW1lcmdpbmdcIjogXCJlcnJvclwiLFxuICAgICAgICAvLyAnQHR5cGVzY3JpcHQtZXNsaW50L25vLXVuc2FmZS1mdW5jdGlvbi10eXBlJzogXCJlcnJvclwiLFxuICAgICAgICAvLyBcIkB0eXBlc2NyaXB0LWVzbGludC9uby13cmFwcGVyLW9iamVjdC10eXBlc1wiOiBcImVycm9yXCIsXG4gICAgICAgIFwiQHR5cGVzY3JpcHQtZXNsaW50L29ubHktdGhyb3ctZXJyb3JcIjogXCJlcnJvclwiLFxuICAgICAgICBcIkB0eXBlc2NyaXB0LWVzbGludC9wcmVmZXItYXMtY29uc3RcIjogXCJlcnJvclwiLFxuICAgICAgICBcIkB0eXBlc2NyaXB0LWVzbGludC9wcmVmZXItZnVuY3Rpb24tdHlwZVwiOiBcImVycm9yXCIsXG4gICAgICAgIFwiQHR5cGVzY3JpcHQtZXNsaW50L3ByZWZlci1vcHRpb25hbC1jaGFpblwiOiBcImVycm9yXCIsXG4gICAgICAgIFwiQHR5cGVzY3JpcHQtZXNsaW50L3ByZWZlci1yZWFkb25seVwiOiBcImVycm9yXCIsXG4gICAgICAgIFwiQHR5cGVzY3JpcHQtZXNsaW50L3ByZWZlci10cy1leHBlY3QtZXJyb3JcIjogXCJlcnJvclwiLFxuICAgICAgICBcIkB0eXBlc2NyaXB0LWVzbGludC9yZXN0cmljdC1wbHVzLW9wZXJhbmRzXCI6IFtcbiAgICAgICAgICBcImVycm9yXCIsXG4gICAgICAgICAge1xuICAgICAgICAgICAgLy8gYWxsb3dBbnk6IGZhbHNlLFxuICAgICAgICAgICAgYWxsb3dCb29sZWFuOiBmYWxzZSxcbiAgICAgICAgICAgIGFsbG93TnVsbGlzaDogZmFsc2UsXG4gICAgICAgICAgICBhbGxvd051bWJlckFuZFN0cmluZzogZmFsc2UsXG4gICAgICAgICAgICBhbGxvd1JlZ0V4cDogZmFsc2UsXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgICAgLy8gXCJAdHlwZXNjcmlwdC1lc2xpbnQvcmVzdHJpY3QtdGVtcGxhdGUtZXhwcmVzc2lvbnNcIjogXCJlcnJvclwiLFxuICAgICAgICBcIkB0eXBlc2NyaXB0LWVzbGludC9yZXR1cm4tYXdhaXRcIjogW1wiZXJyb3JcIiwgXCJhbHdheXNcIl0sXG4gICAgICAgIFwiQHR5cGVzY3JpcHQtZXNsaW50L3N3aXRjaC1leGhhdXN0aXZlbmVzcy1jaGVja1wiOiBbXG4gICAgICAgICAgXCJlcnJvclwiLFxuICAgICAgICAgIHsgcmVxdWlyZURlZmF1bHRGb3JOb25VbmlvbjogdHJ1ZSB9LFxuICAgICAgICBdLFxuICAgICAgICBcIkB0eXBlc2NyaXB0LWVzbGludC91bmJvdW5kLW1ldGhvZFwiOiBcImVycm9yXCIsXG4gICAgICAgIFwiQHR5cGVzY3JpcHQtZXNsaW50L3VuaWZpZWQtc2lnbmF0dXJlc1wiOiBcImVycm9yXCIsXG4gICAgICB9LFxuICAgIH0sXG4gICAge1xuICAgICAgbmFtZTogXCJmZW5nZS90eXBlc2NyaXB0L2NvbmZpZ1wiLFxuICAgICAgZmlsZXM6IFtcIioqLyouY29uZmlnLnt0cyxjdHMsbXRzLHRzeH1cIl0sXG4gICAgICBydWxlczoge1xuICAgICAgICBcImltcG9ydC9uby1kZWZhdWx0LWV4cG9ydFwiOiBcIm9mZlwiLFxuICAgICAgfSxcbiAgICB9LFxuICAgIHtcbiAgICAgIG5hbWU6IFwiZmVuZ2UvdHlwZXNjcmlwdC9kZWNsYXJhdGlvblwiLFxuICAgICAgZmlsZXM6IFtcIioqLyouZC57dHMsY3RzLG10cyx0c3h9XCJdLFxuICAgICAgcnVsZXM6IHtcbiAgICAgICAgXCJpbXBvcnQvbm8tZGVmYXVsdC1leHBvcnRcIjogXCJvZmZcIixcbiAgICAgIH0sXG4gICAgfSxcbiAgICB7XG4gICAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vbW90ZW1lbi9taW5pbWF0Y2gtY2hlYXQtc2hlZXRcbiAgICAgIG5hbWU6IFwiZmVuZ2UvdHlwZXNjcmlwdC90ZXN0XCIsXG4gICAgICBmaWxlczogW1xuICAgICAgICBcIioqL19fdGVzdHNfXy8qKi8qLnt0cyxjdHMsbXRzLHRzeH1cIixcbiAgICAgICAgXCIqKi8qLnt0ZXN0LHNwZWN9Lnt0cyxjdHMsbXRzLHRzeH1cIixcbiAgICAgIF0sXG4gICAgICBydWxlczoge1xuICAgICAgICBcIkB0eXBlc2NyaXB0LWVzbGludC9uby1mbG9hdGluZy1wcm9taXNlc1wiOiBcIm9mZlwiLFxuICAgICAgICBcIkB0eXBlc2NyaXB0LWVzbGludC91bmJvdW5kLW1ldGhvZFwiOiBcIm9mZlwiLFxuICAgICAgICBcImVzbS9uby1waGFudG9tLWRlcC1pbXBvcnRzXCI6IFtcImVycm9yXCIsIHsgYWxsb3dEZXZEZXBlbmRlbmNpZXM6IHRydWUgfV0sXG4gICAgICB9LFxuICAgIH0sXG4gIF0gYXMgY29uc3Q7XG59XG4iXX0=
238
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXNjcmlwdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb25maWcvdHlwZXNjcmlwdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLE9BQU8sTUFBTSxjQUFjLENBQUM7QUFDbkMsT0FBTyxLQUFLLGFBQWEsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLFFBQVEsTUFBTSwyQkFBMkIsQ0FBQztBQUNqRCxPQUFPLGlCQUFpQixNQUFNLDJCQUEyQixDQUFDLENBQUMsaUdBQWlHO0FBQzVKLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUU3QyxNQUFNLFVBQVUsVUFBVSxDQUFDLE9BQWdCO0lBQ3pDLE1BQU0sUUFBUSxHQUFHLFVBQVUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBRWpDLE1BQU0sbUJBQW1CLEdBQUcsR0FBRyxFQUFFO1FBQy9CLGlEQUFpRDtRQUNqRCxNQUFNLGlCQUFpQixHQUFHO1lBQ3hCLGVBQWU7WUFDZixhQUFhO1lBQ2Isd0JBQXdCO1lBQ3hCLGNBQWM7WUFDZCxlQUFlO1lBQ2YsbUJBQW1CO1lBQ25CLG9CQUFvQjtZQUNwQixjQUFjO1lBQ2QsbUJBQW1CO1lBQ25CLFFBQVE7WUFDUixtQkFBbUI7WUFDbkIsYUFBYTtZQUNiLGlCQUFpQjtZQUNqQixzQkFBc0I7WUFDdEIsNkJBQTZCO1lBQzdCLFlBQVk7WUFDWixzQkFBc0I7WUFDdEIsdUJBQXVCO1lBQ3ZCLG1CQUFtQjtZQUNuQixpQkFBaUI7WUFDakIsZUFBZTtZQUNmLGlCQUFpQjtZQUNqQixpQkFBaUI7WUFDakIsY0FBYztZQUNkLDBCQUEwQjtZQUMxQixrQkFBa0I7WUFDbEIsY0FBYztZQUNkLHVCQUF1QjtZQUN2QixXQUFXO1lBQ1gsa0JBQWtCO1lBQ2xCLHVCQUF1QjtZQUN2QixnQkFBZ0I7WUFDaEIsc0JBQXNCO1lBQ3RCLHdCQUF3QjtZQUN4QixzQkFBc0I7WUFDdEIsa0JBQWtCLEVBQUUs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QXVCO1lBQzdCLEtBQUssRUFBRTtnQkFDTCxvQ0FBb0M7Z0JBQ3BDLG1DQUFtQzthQUNwQztZQUNELEtBQUssRUFBRTtnQkFDTCx5Q0FBeUMsRUFBRSxLQUFLO2dCQUNoRCxtQ0FBbUMsRUFBRSxLQUFLO2dCQUMxQyw0QkFBNEIsRUFBRSxDQUFDLE9BQU8sRUFBRSxFQUFFLG9CQUFvQixFQUFFLElBQUksRUFBRSxDQUFDO2FBQ3hFO1NBQ0Y7S0FDTyxDQUFDO0FBQ2IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBwcm9jZXNzIGZyb20gXCJub2RlOnByb2Nlc3NcIjtcbmltcG9ydCAqIGFzIGZlbmdlVHNQbHVnaW4gZnJvbSBcIkBmZW5nZS9lc2xpbnQtcGx1Z2luLXRzXCI7XG5pbXBvcnQgdHNQYXJzZXIgZnJvbSBcIkB0eXBlc2NyaXB0LWVzbGludC9wYXJzZXJcIjtcbmltcG9ydCBkZXByZWNhdGlvblBsdWdpbiBmcm9tIFwiZXNsaW50LXBsdWdpbi1kZXByZWNhdGlvblwiOyAvLyBUT0RPOiBSZW1vdmUgdGhpcyBwbHVnaW4gYW5kIHVzZSBgQHR5cGVzY3JpcHQtZXNsaW50L25vLWRlcHJlY2F0ZWRgIHdoZW4gZXNsaW50IHVwZ3JhZGVkIHRvIDkuXG5pbXBvcnQgeyBqYXZhc2NyaXB0IH0gZnJvbSBcIi4vamF2YXNjcmlwdC5qc1wiO1xuXG5leHBvcnQgZnVuY3Rpb24gdHlwZXNjcmlwdChwcm9qZWN0Pzogc3RyaW5nKSB7XG4gIGNvbnN0IGpzQ29uZmlnID0gamF2YXNjcmlwdCgpWzBdO1xuXG4gIGNvbnN0IGdldFRzRXh0ZW5zaW9uUnVsZXMgPSAoKSA9PiB7XG4gICAgLy8gaHR0cHM6Ly90eXBlc2NyaXB0LWVzbGludC5pby9ydWxlcy8/PWV4dGVuc2lvblxuICAgIGNvbnN0IGV4dGVuc2lvblJ1bGVLZXlzID0gW1xuICAgICAgXCJibG9jay1zcGFjaW5nXCIsXG4gICAgICBcImJyYWNlLXN0eWxlXCIsXG4gICAgICBcImNsYXNzLW1ldGhvZHMtdXNlLXRoaXNcIixcbiAgICAgIFwiY29tbWEtZGFuZ2xlXCIsXG4gICAgICBcImNvbW1hLXNwYWNpbmdcIixcbiAgICAgIFwiY29uc2lzdGVudC1yZXR1cm5cIixcbiAgICAgIFwiZGVmYXVsdC1wYXJhbS1sYXN0XCIsXG4gICAgICBcImRvdC1ub3RhdGlvblwiLFxuICAgICAgXCJmdW5jLWNhbGwtc3BhY2luZ1wiLFxuICAgICAgXCJpbmRlbnRcIixcbiAgICAgIFwiaW5pdC1kZWNsYXJhdGlvbnNcIixcbiAgICAgIFwia2V5LXNwYWNpbmdcIixcbiAgICAgIFwia2V5d29yZC1zcGFjaW5nXCIsXG4gICAgICBcImxpbmVzLWFyb3VuZC1jb21tZW50XCIsXG4gICAgICBcImxpbmVzLWJldHdlZW4tY2xhc3MtbWVtYmVyc1wiLFxuICAgICAgXCJtYXgtcGFyYW1zXCIsXG4gICAgICBcIm5vLWFycmF5LWNvbnN0cnVjdG9yXCIsXG4gICAgICBcIm5vLWR1cGUtY2xhc3MtbWVtYmVyc1wiLFxuICAgICAgXCJuby1lbXB0eS1mdW5jdGlvblwiLFxuICAgICAgXCJuby1leHRyYS1wYXJlbnNcIixcbiAgICAgIFwibm8tZXh0cmEtc2VtaVwiLFxuICAgICAgXCJuby1pbXBsaWVkLWV2YWxcIixcbiAgICAgIFwibm8taW52YWxpZC10aGlzXCIsXG4gICAgICBcIm5vLWxvb3AtZnVuY1wiLFxuICAgICAgLy8gXCJuby1sb3NzLW9mLXByZWNpc2lvblwiLFxuICAgICAgXCJuby1tYWdpYy1udW1iZXJzXCIsXG4gICAgICBcIm5vLXJlZGVjbGFyZVwiLFxuICAgICAgXCJuby1yZXN0cmljdGVkLWltcG9ydHNcIixcbiAgICAgIFwibm8tc2hhZG93XCIsXG4gICAgICBcIm5vLXRocm93LWxpdGVyYWxcIixcbiAgICAgIFwibm8tdW51c2VkLWV4cHJlc3Npb25zXCIsXG4gICAgICBcIm5vLXVudXNlZC12YXJzXCIsXG4gICAgICBcIm5vLXVzZS1iZWZvcmUtZGVmaW5lXCIsXG4gICAgICBcIm5vLXVzZWxlc3MtY29uc3RydWN0b3JcIixcbiAgICAgIFwib2JqZWN0LWN1cmx5LXNwYWNpbmdcIixcbiAgICAgIFwib25seS10aHJvdy1lcnJvclwiLCAvLyB0aGlzIHJ1bGUgYmFzZWQgb24gJ2VzbGludC9uby10aHJvdy1saXRlcmFsJ1xuICAgICAgXCJwYWRkaW5nLWxpbmUtYmV0d2Vlbi1zdGF0ZW1lbnRzXCIsXG4gICAgICBcInByZWZlci1kZXN0cnVjdHVyaW5nXCIsXG4gICAgICBcInByZWZlci1wcm9taXNlLXJlamVjdC1lcnJvcnNcIixcbiAgICAgIFwicXVvdGVzXCIsXG4gICAgICBcInJlcXVpcmUtYXdhaXRcIixcbiAgICAgIFwicmV0dXJuLWF3YWl0XCIsIC8vIHRoaXMgcnVsZSBiYXNlZCBvbiAnZXNsaW50L25vLXJldHVybi1hd2FpdCcgaW5zdGVhZCBvZiAnZXNsaW50L3JldHVybi1hd2FpdCdcbiAgICAgIFwic2VtaVwiLFxuICAgICAgXCJzcGFjZS1iZWZvcmUtYmxvY2tzXCIsXG4gICAgICBcInNwYWNlLWJlZm9yZS1mdW5jdGlvbi1wYXJlblwiLFxuICAgICAgXCJzcGFjZS1pbmZpeC1vcHNcIixcbiAgICBdIGFzIGNvbnN0O1xuICAgIHR5cGUgRXh0ZW5zaW9uUnVsZUtleSA9ICh0eXBlb2YgZXh0ZW5zaW9uUnVsZUtleXMpW251bWJlcl07XG4gICAgdHlwZSBKc0NvbmZpZ1J1bGVLZXkgPSBrZXlvZiB0eXBlb2YganNDb25maWcucnVsZXM7XG5cbiAgICB0eXBlIEpzRXh0ZW5zaW9uS2V5ID0gRXh0cmFjdDxFeHRlbnNpb25SdWxlS2V5LCBKc0NvbmZpZ1J1bGVLZXk+OyAvLyBFeHRyYWN0XG4gICAgdHlwZSBUc0V4dGVuc2lvbktleSA9IGBAdHlwZXNjcmlwdC1lc2xpbnQvJHtKc0V4dGVuc2lvbktleX1gO1xuXG4gICAgdHlwZSBHZXRKc0tleTxUIGV4dGVuZHMgVHNFeHRlbnNpb25LZXk+ID1cbiAgICAgIFQgZXh0ZW5kcyBgQHR5cGVzY3JpcHQtZXNsaW50LyR7aW5mZXIgS31gID8gSyA6IG5ldmVyO1xuICAgIHR5cGUgSnNSZXN1bHQgPSB7XG4gICAgICBbS2V5IGluIEpzRXh0ZW5zaW9uS2V5XTogXCJvZmZcIjtcbiAgICB9O1xuICAgIHR5cGUgVHNSZXN1bHQgPSB7XG4gICAgICBbS2V5IGluIFRzRXh0ZW5zaW9uS2V5XTogKHR5cGVvZiBqc0NvbmZpZy5ydWxlcylbR2V0SnNLZXk8S2V5Pl07XG4gICAgfTtcbiAgICB0eXBlIFJlc3VsdCA9IEpzUmVzdWx0ICYgVHNSZXN1bHQ7XG5cbiAgICBjb25zdCBleHRlbnNpb25SdWxlS2V5U2V0ID0gbmV3IFNldDxzdHJpbmc+KGV4dGVuc2lvblJ1bGVLZXlzKTtcbiAgICByZXR1cm4gT2JqZWN0LmVudHJpZXMoanNDb25maWcucnVsZXMpXG4gICAgICAuZmlsdGVyKChba2V5XSkgPT4gZXh0ZW5zaW9uUnVsZUtleVNldC5oYXMoa2V5KSlcbiAgICAgIC5yZWR1Y2UoXG4gICAgICAgIChwcmV2LCBbanNSdWxlS2V5LCBqc1J1bGVWYWx1ZV0pID0+ICh7XG4gICAgICAgICAgLi4ucHJldixcbiAgICAgICAgICBbanNSdWxlS2V5XTogXCJvZmZcIixcbiAgICAgICAgICBbYEB0eXBlc2NyaXB0LWVzbGludC8ke2pzUnVsZUtleX1gXToganNSdWxlVmFsdWUsXG4gICAgICAgIH0pLFxuICAgICAgICB7fSBhcyBSZXN1bHQsXG4gICAgICApO1xuICB9O1xuXG4gIHJldHVybiBbXG4gICAge1xuICAgICAgLi4uanNDb25maWcsXG4gICAgICBuYW1lOiBcImZlbmdlL3R5cGVzY3JpcHRcIixcbiAgICAgIGZpbGVzOiBbXCIqKi8qLnt0cyxjdHMsbXRzLHRzeH1cIl0sXG4gICAgICBsYW5ndWFnZU9wdGlvbnM6IHtcbiAgICAgICAgLi4uanNDb25maWcubGFuZ3VhZ2VPcHRpb25zLFxuICAgICAgICBwYXJzZXI6IHRzUGFyc2VyLCAvLyBVbmZvcnR1bmF0ZWx5IHBhcnNlciBjYW5ub3QgYmUgYSBzdHJpbmcuIEVzbGludCBzaG91bGQgc3VwcG9ydCBpdC4gaHR0cHM6Ly9lc2xpbnQub3JnL2RvY3MvbGF0ZXN0L3VzZS9jb25maWd1cmUvY29uZmlndXJhdGlvbi1maWxlcy1uZXcjY29uZmlndXJpbmctYS1jdXN0b20tcGFyc2VyLWFuZC1pdHMtb3B0aW9uc1xuICAgICAgICBwYXJzZXJPcHRpb25zOiB7XG4gICAgICAgICAgLi4uanNDb25maWcubGFuZ3VhZ2VPcHRpb25zLnBhcnNlck9wdGlvbnMsXG4gICAgICAgICAgdHNjb25maWdSb290RGlyOiBwcm9jZXNzLmN3ZCgpLFxuICAgICAgICAgIHByb2plY3Q6IHByb2plY3QgPz8gXCJ0c2NvbmZpZy5qc29uXCIsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAgcGx1Z2luczoge1xuICAgICAgICAuLi5qc0NvbmZpZy5wbHVnaW5zLFxuICAgICAgICBkZXByZWNhdGlvbjogZGVwcmVjYXRpb25QbHVnaW4sXG4gICAgICAgIFwiQGZlbmdlLXRzXCI6IGZlbmdlVHNQbHVnaW4sXG4gICAgICB9LFxuICAgICAgcnVsZXM6IHtcbiAgICAgICAgLi4uanNDb25maWcucnVsZXMsXG4gICAgICAgIC4uLmdldFRzRXh0ZW5zaW9uUnVsZXMoKSxcblxuICAgICAgICAvLyBkZXByZWNhdGlvblxuICAgICAgICBcImRlcHJlY2F0aW9uL2RlcHJlY2F0aW9uXCI6IFwiZXJyb3JcIixcbiAgICAgICAgLy8gZmVuZ2VcbiAgICAgICAgXCJAZmVuZ2UtdHMvZXhhY3QtbWFwLXNldC10eXBlXCI6IFwiZXJyb3JcIixcbiAgICAgICAgXCJAZmVuZ2UtdHMvbm8tY29uc3QtZW51bVwiOiBcImVycm9yXCIsXG4gICAgICAgIFwiQGZlbmdlLXRzL25vLWRlY2xhcmVzLWluLXRzLWZpbGVcIjogXCJlcnJvclwiLFxuICAgICAgICBcIkBmZW5nZS10cy9uby1leHBvcnQtYXNzaWdubWVudFwiOiBcImVycm9yXCIsXG4gICAgICAgIFwiQGZlbmdlLXRzL25vLXByb3BlcnR5LWRlY29yYXRvclwiOiBcImVycm9yXCIsXG4gICAgICAgIFwiQGZlbmdlLXRzL25vLXVudHlwZWQtZW1wdHktYXJyYXlcIjogXCJlcnJvclwiLFxuICAgICAgICAvLyB0eXBlc2NyaXB0XG4gICAgICAgIFwiQHR5cGVzY3JpcHQtZXNsaW50L2FkamFjZW50LW92ZXJsb2FkLXNpZ25hdHVyZXNcIjogXCJlcnJvclwiLFxuICAgICAgICAvLyBcIkB0eXBlc2NyaXB0LWVzbGludC9hcnJheS10eXBlXCI6IFtcImVycm9yXCIsICdhcnJheS1zaW1wbGUnXSwgLy8gVGhlIGRlZmF1bHQgb3B0aW9uIGlzICdhcnJheScuIE5vdCB2ZXJ5IHN1cmUgaWYgd2UgbmVlZCB0byBjaGFuZ2UgdGhlIG9wdGlvbi4gU28gZGlzYWJsZWQgaXQuXG4gICAgICAgIFwiQHR5cGVzY3JpcHQtZXNsaW50L2F3YWl0LXRoZW5hYmxlXCI6IFwiZXJyb3JcIixcbiAgICAgICAgXCJAdHlwZXNjcmlwdC1lc2xpbnQvYmFuLXR5cGVzXCI6IFwiZXJyb3JcIixcbiAgICAgICAgXCJAdHlwZXNjcmlwdC1lc2xpbnQvY29uc2lzdGVudC1nZW5lcmljLWNvbnN0cnVjdG9yc1wiOiBcImVycm9yXCIsXG4gICAgICAgIFwiQHR5cGVzY3JpcHQtZXNsaW50L2NvbnNpc3RlbnQtaW5kZXhlZC1vYmplY3Qtc3R5bGVcIjogXCJlcnJvclwiLFxuICAgICAgICBcIkB0eXBlc2NyaXB0LWVzbGludC9jb25zaXN0ZW50LXR5cGUtYXNzZXJ0aW9uc1wiOiBbXG4gICAgICAgICAgXCJlcnJvclwiLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGFzc2VydGlvblN0eWxlOiBcImFzXCIsXG4gICAgICAgICAgICBvYmplY3RMaXRlcmFsVHlwZUFzc2VydGlvbnM6IFwiYWxsb3ctYXMtcGFyYW1ldGVyXCIsXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgICAgXCJAdHlwZXNjcmlwdC1lc2xpbnQvY29uc2lzdGVudC10eXBlLWRlZmluaXRpb25zXCI6IFtcbiAgICAgICAgICBcImVycm9yXCIsXG4gICAgICAgICAgXCJpbnRlcmZhY2VcIixcbiAgICAgICAgXSwgLy8gVE9ETyBzaG91bGQgd2UgY2hhbmdlIHRvICd0eXBlJz9cbiAgICAgICAgXCJAdHlwZXNjcmlwdC1lc2xpbnQvY29uc2lzdGVudC10eXBlLWV4cG9ydHNcIjogXCJlcnJvclwiLFxuICAgICAgICAvLyBcIkB0eXBlc2NyaXB0LWVzbGludC9jb25zaXN0ZW50LXR5cGUtaW1wb3J0c1wiOiBcImVycm9yLFxuICAgICAgICBcIkB0eXBlc2NyaXB0LWVzbGludC9kb3Qtbm90YXRpb25cIjogW1wiZXJyb3JcIiwgeyBhbGxvd0tleXdvcmRzOiB0cnVlIH1dLFxuICAgICAgICBcIkB0eXBlc2NyaXB0LWVzbGludC9tZXRob2Qtc2lnbmF0dXJlLXN0eWxlXCI6IFwiZXJyb3JcIixcbiAgICAgICAgXCJAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cIjogW1xuICAgICAgICAgIFwiZXJyb3JcIixcbiAgICAgICAgICB7XG4gICAgICAgICAgICBzZWxlY3RvcjogXCJmdW5jdGlvblwiLFxuICAgICAgICAgICAgZm9ybWF0OiBbXCJjYW1lbENhc2VcIiwgXCJQYXNjYWxDYXNlXCJdLFxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgc2VsZWN0b3I6IFwidmFyaWFibGVcIixcbiAgICAgICAgICAgIHR5cGVzOiBbXCJmdW5jdGlvblwiXSxcbiAgICAgICAgICAgIGZvcm1hdDogW1wiY2FtZWxDYXNlXCIsIFwiUGFzY2FsQ2FzZVwiXSwgLy8gZGVjb3JhdG9ycyBuZWVkIFBhc2NhbENhc2VcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIHNlbGVjdG9yOiBcImNsYXNzXCIsXG4gICAgICAgICAgICBmb3JtYXQ6IFtcIlBhc2NhbENhc2VcIl0sXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBzZWxlY3RvcjogXCJpbnRlcmZhY2VcIixcbiAgICAgICAgICAgIGZvcm1hdDogW1wiUGFzY2FsQ2FzZVwiXSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIHNlbGVjdG9yOiBcInR5cGVBbGlhc1wiLFxuICAgICAgICAgICAgZm9ybWF0OiBbXCJQYXNjYWxDYXNlXCJdLFxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgc2VsZWN0b3I6IFwidHlwZVBhcmFtZXRlclwiLFxuICAgICAgICAgICAgZm9ybWF0OiBbXCJVUFBFUl9DQVNFXCIsIFwiUGFzY2FsQ2FzZVwiXSxcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgICBcIkB0eXBlc2NyaXB0LWVzbGludC9uby1hcnJheS1kZWxldGVcIjogXCJlcnJvclwiLFxuICAgICAgICBcIkB0eXBlc2NyaXB0LWVzbGludC9uby1iYXNlLXRvLXN0cmluZ1wiOiBbXG4gICAgICAgICAgXCJlcnJvclwiLFxuICAgICAgICAgIHsgaWdub3JlZFR5cGVOYW1lczogW10gfSxcbiAgICAgICAgXSxcbiAgICAgICAgXCJAdHlwZXNjcmlwdC1lc2xpbnQvbm8tY29uZnVzaW5nLW5vbi1udWxsLWFzc2VydGlvblwiOiBcImVycm9yXCIsXG4gICAgICAgIFwiQHR5cGVzY3JpcHQtZXNsaW50L25vLWR1cGxpY2F0ZS1lbnVtLXZhbHVlc1wiOiBcImVycm9yXCIsXG4gICAgICAgIFwiQHR5cGVzY3JpcHQtZXNsaW50L25vLWR1cGxpY2F0ZS10eXBlLWNvbnN0aXR1ZW50c1wiOiBcImVycm9yXCIsXG4gICAgICAgIFwiQHR5cGVzY3JpcHQtZXNsaW50L25vLWVtcHR5LW9iamVjdC10eXBlXCI6IFwiZXJyb3JcIixcbiAgICAgICAgXCJAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXh0cmEtbm9uLW51bGwtYXNzZXJ0aW9uXCI6IFwiZXJyb3JcIixcbiAgICAgICAgXCJAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZmxvYXRpbmctcHJvbWlzZXNcIjogW1xuICAgICAgICAgIFwiZXJyb3JcIixcbiAgICAgICAgICB7XG4gICAgICAgICAgICBpZ25vcmVWb2lkOiBmYWxzZSxcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgICBcIkB0eXBlc2NyaXB0LWVzbGludC9uby1mb3ItaW4tYXJyYXlcIjogXCJlcnJvclwiLFxuICAgICAgICBcIkB0eXBlc2NyaXB0LWVzbGludC9uby1pbXBvcnQtdHlwZS1zaWRlLWVmZmVjdHNcIjogXCJlcnJvclwiLFxuICAgICAgICBcIkB0eXBlc2NyaXB0LWVzbGludC9uby1pbmZlcnJhYmxlLXR5cGVzXCI6IFwiZXJyb3JcIixcbiAgICAgICAgXCJAdHlwZXNjcmlwdC1lc2xpbnQvbm8tbWlzdXNlZC1uZXdcIjogXCJlcnJvclwiLFxuICAgICAgICBcIkB0eXBlc2NyaXB0LWVzbGludC9uby1taXN1c2VkLXByb21pc2VzXCI6IFwiZXJyb3JcIixcbiAgICAgICAgXCJAdHlwZXNjcmlwdC1lc2xpbnQvbm8tbWl4ZWQtZW51bXNcIjogXCJlcnJvclwiLFxuICAgICAgICBcIkB0eXBlc2NyaXB0LWVzbGludC9uby1uYW1lc3BhY2VcIjogXCJlcnJvclwiLFxuICAgICAgICBcIkB0eXBlc2NyaXB0LWVzbGludC9uby1ub24tbnVsbC1hc3NlcnRlZC1vcHRpb25hbC1jaGFpblwiOiBcImVycm9yXCIsXG4gICAgICAgIFwiQHR5cGVzY3JpcHQtZXNsaW50L25vLW5vbi1udWxsLWFzc2VydGlvblwiOiBcImVycm9yXCIsXG4gICAgICAgIFwiQHR5cGVzY3JpcHQtZXNsaW50L25vLXJlcXVpcmUtaW1wb3J0c1wiOiBcImVycm9yXCIsXG4gICAgICAgIFwiQHR5cGVzY3JpcHQtZXNsaW50L25vLXRoaXMtYWxpYXNcIjogXCJlcnJvclwiLFxuICAgICAgICBcIkB0eXBlc2NyaXB0LWVzbGludC9uby11bm5lY2Vzc2FyeS1jb25kaXRpb25cIjogXCJlcnJvclwiLFxuICAgICAgICBcIkB0eXBlc2NyaXB0LWVzbGludC9uby11bm5lY2Vzc2FyeS1wYXJhbWV0ZXItcHJvcGVydHktYXNzaWdubWVudFwiOlxuICAgICAgICAgIFwiZXJyb3JcIixcbiAgICAgICAgXCJAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW5uZWNlc3NhcnktdGVtcGxhdGUtZXhwcmVzc2lvblwiOiBcImVycm9yXCIsIC8vIGpzIGFsc28gbmVlZCB0aGlzIHJ1bGVcbiAgICAgICAgXCJAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW5uZWNlc3NhcnktdHlwZS1hc3NlcnRpb25cIjogXCJlcnJvclwiLFxuICAgICAgICBcIkB0eXBlc2NyaXB0LWVzbGludC9uby11bm5lY2Vzc2FyeS10eXBlLWNvbnN0cmFpbnRcIjogXCJlcnJvclwiLFxuICAgICAgICBcIkB0eXBlc2NyaXB0LWVzbGludC9uby11bnNhZmUtZGVjbGFyYXRpb24tbWVyZ2luZ1wiOiBcImVycm9yXCIsXG4gICAgICAgIC8vICdAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW5zYWZlLWZ1bmN0aW9uLXR5cGUnOiBcImVycm9yXCIsXG4gICAgICAgIC8vIFwiQHR5cGVzY3JpcHQtZXNsaW50L25vLXdyYXBwZXItb2JqZWN0LXR5cGVzXCI6IFwiZXJyb3JcIixcbiAgICAgICAgXCJAdHlwZXNjcmlwdC1lc2xpbnQvb25seS10aHJvdy1lcnJvclwiOiBcImVycm9yXCIsXG4gICAgICAgIFwiQHR5cGVzY3JpcHQtZXNsaW50L3ByZWZlci1hcy1jb25zdFwiOiBcImVycm9yXCIsXG4gICAgICAgIFwiQHR5cGVzY3JpcHQtZXNsaW50L3ByZWZlci1mdW5jdGlvbi10eXBlXCI6IFwiZXJyb3JcIixcbiAgICAgICAgXCJAdHlwZXNjcmlwdC1lc2xpbnQvcHJlZmVyLW9wdGlvbmFsLWNoYWluXCI6IFwiZXJyb3JcIixcbiAgICAgICAgXCJAdHlwZXNjcmlwdC1lc2xpbnQvcHJlZmVyLXJlYWRvbmx5XCI6IFwiZXJyb3JcIixcbiAgICAgICAgXCJAdHlwZXNjcmlwdC1lc2xpbnQvcHJlZmVyLXRzLWV4cGVjdC1lcnJvclwiOiBcImVycm9yXCIsXG4gICAgICAgIFwiQHR5cGVzY3JpcHQtZXNsaW50L3Jlc3RyaWN0LXBsdXMtb3BlcmFuZHNcIjogW1xuICAgICAgICAgIFwiZXJyb3JcIixcbiAgICAgICAgICB7XG4gICAgICAgICAgICAvLyBhbGxvd0FueTogZmFsc2UsXG4gICAgICAgICAgICBhbGxvd0Jvb2xlYW46IGZhbHNlLFxuICAgICAgICAgICAgYWxsb3dOdWxsaXNoOiBmYWxzZSxcbiAgICAgICAgICAgIGFsbG93TnVtYmVyQW5kU3RyaW5nOiBmYWxzZSxcbiAgICAgICAgICAgIGFsbG93UmVnRXhwOiBmYWxzZSxcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgICAvLyBcIkB0eXBlc2NyaXB0LWVzbGludC9yZXN0cmljdC10ZW1wbGF0ZS1leHByZXNzaW9uc1wiOiBcImVycm9yXCIsXG4gICAgICAgIFwiQHR5cGVzY3JpcHQtZXNsaW50L3JldHVybi1hd2FpdFwiOiBbXCJlcnJvclwiLCBcImFsd2F5c1wiXSxcbiAgICAgICAgXCJAdHlwZXNjcmlwdC1lc2xpbnQvc3dpdGNoLWV4aGF1c3RpdmVuZXNzLWNoZWNrXCI6IFtcbiAgICAgICAgICBcImVycm9yXCIsXG4gICAgICAgICAgeyByZXF1aXJlRGVmYXVsdEZvck5vblVuaW9uOiB0cnVlIH0sXG4gICAgICAgIF0sXG4gICAgICAgIFwiQHR5cGVzY3JpcHQtZXNsaW50L3VuYm91bmQtbWV0aG9kXCI6IFwiZXJyb3JcIixcbiAgICAgICAgXCJAdHlwZXNjcmlwdC1lc2xpbnQvdW5pZmllZC1zaWduYXR1cmVzXCI6IFwiZXJyb3JcIixcbiAgICAgIH0sXG4gICAgfSxcbiAgICB7XG4gICAgICBuYW1lOiBcImZlbmdlL3R5cGVzY3JpcHQvY29uZmlnXCIsXG4gICAgICBmaWxlczogW1wiKiovKi5jb25maWcue3RzLGN0cyxtdHMsdHN4fVwiXSxcbiAgICAgIHJ1bGVzOiB7XG4gICAgICAgIFwiaW1wb3J0L25vLWRlZmF1bHQtZXhwb3J0XCI6IFwib2ZmXCIsXG4gICAgICB9LFxuICAgIH0sXG4gICAge1xuICAgICAgbmFtZTogXCJmZW5nZS90eXBlc2NyaXB0L2RlY2xhcmF0aW9uXCIsXG4gICAgICBmaWxlczogW1wiKiovKi5kLnt0cyxjdHMsbXRzLHRzeH1cIl0sXG4gICAgICBydWxlczoge1xuICAgICAgICBcImltcG9ydC9uby1kZWZhdWx0LWV4cG9ydFwiOiBcIm9mZlwiLFxuICAgICAgfSxcbiAgICB9LFxuICAgIHtcbiAgICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9tb3RlbWVuL21pbmltYXRjaC1jaGVhdC1zaGVldFxuICAgICAgbmFtZTogXCJmZW5nZS90eXBlc2NyaXB0L3Rlc3RcIixcbiAgICAgIGZpbGVzOiBbXG4gICAgICAgIFwiKiovX190ZXN0c19fLyoqLyoue3RzLGN0cyxtdHMsdHN4fVwiLFxuICAgICAgICBcIioqLyoue3Rlc3Qsc3BlY30ue3RzLGN0cyxtdHMsdHN4fVwiLFxuICAgICAgXSxcbiAgICAgIHJ1bGVzOiB7XG4gICAgICAgIFwiQHR5cGVzY3JpcHQtZXNsaW50L25vLWZsb2F0aW5nLXByb21pc2VzXCI6IFwib2ZmXCIsXG4gICAgICAgIFwiQHR5cGVzY3JpcHQtZXNsaW50L3VuYm91bmQtbWV0aG9kXCI6IFwib2ZmXCIsXG4gICAgICAgIFwiZXNtL25vLXBoYW50b20tZGVwLWltcG9ydHNcIjogW1wiZXJyb3JcIiwgeyBhbGxvd0RldkRlcGVuZGVuY2llczogdHJ1ZSB9XSxcbiAgICAgIH0sXG4gICAgfSxcbiAgXSBhcyBjb25zdDtcbn1cbiJdfQ==
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fenge/eslint-config",
3
- "version": "0.1.1",
3
+ "version": "0.1.2",
4
4
  "description": "A super strict eslint config for linting js/ts/package.json.",
5
5
  "keywords": [
6
6
  "opinionated",
@@ -27,22 +27,22 @@
27
27
  "@typescript-eslint/parser": "7.16.1",
28
28
  "confusing-browser-globals": "1.0.11",
29
29
  "eslint-plugin-deprecation": "3.0.0",
30
- "eslint-plugin-es-x": "8.0.0",
30
+ "eslint-plugin-es-x": "8.1.0",
31
31
  "eslint-plugin-fp": "2.3.0",
32
32
  "eslint-plugin-import": "2.31.0",
33
- "eslint-plugin-n": "17.11.1",
33
+ "eslint-plugin-n": "17.12.0",
34
34
  "eslint-plugin-promise": "7.1.0",
35
- "eslint-plugin-react": "7.37.1",
35
+ "eslint-plugin-react": "7.37.2",
36
36
  "eslint-plugin-react-hooks": "5.0.0",
37
37
  "eslint-plugin-simple-import-sort": "12.1.1",
38
38
  "eslint-plugin-sonarjs": "1.0.4",
39
39
  "eslint-plugin-unicorn": "56.0.0",
40
- "globals": "15.11.0",
40
+ "globals": "15.12.0",
41
41
  "@fenge/eslint-plugin": "0.1.1",
42
42
  "@fenge/eslint-plugin-ts": "0.1.0",
43
43
  "eslint-plugin-esm": "0.2.1",
44
44
  "eslint-plugin-pkg-json": "0.1.1",
45
- "eslint-plugin-publint": "0.0.3"
45
+ "eslint-plugin-publint": "0.0.4"
46
46
  },
47
47
  "devDependencies": {
48
48
  "@swc-node/register": "1.10.0",
@@ -54,6 +54,6 @@
54
54
  },
55
55
  "scripts": {
56
56
  "build": "tsc -p tsconfig.build.json",
57
- "test": "globstar -- node --test --import @swc-node/register/esm-register src/**/*.spec.ts test/**/*.spec.ts"
57
+ "test": "node --test --import @swc-node/register/esm-register \"**/*.spec.ts\""
58
58
  }
59
59
  }
@@ -90,7 +90,7 @@ export function javascript() {
90
90
  // }],
91
91
  // 'key-spacing': ['error', { beforeColon: false, afterColon: true }],
92
92
  // 'keyword-spacing': ['error', { before: true, after: true }],
93
- 'lines-between-class-members': ['error', 'always', { exceptAfterSingleLine: true }],
93
+ // 'lines-between-class-members': ['error', 'always', { exceptAfterSingleLine: true }],
94
94
  // 'multiline-ternary': ['error', 'always-multiline'],
95
95
  'new-cap': ['error', { newIsCap: true, capIsNew: false, properties: true }],
96
96
  // 'new-parens': 'error',
@@ -218,10 +218,10 @@ export function javascript() {
218
218
  // 'space-in-parens': ['error', 'never'],
219
219
  // 'space-infix-ops': 'error',
220
220
  // 'space-unary-ops': ['error', { words: true, nonwords: false }],
221
- 'spaced-comment': ['error', 'always', {
222
- line: { markers: ['*package', '!', '/', ',', '='] },
223
- block: { balanced: true, markers: ['*package', '!', ',', ':', '::', 'flow-include'], exceptions: ['*'] }
224
- }],
221
+ // 'spaced-comment': ['error', 'always', {
222
+ // line: { markers: ['*package', '!', '/', ',', '='] },
223
+ // block: { balanced: true, markers: ['*package', '!', ',', ':', '::', 'flow-include'], exceptions: ['*'] }
224
+ // }],
225
225
  'symbol-description': 'error',
226
226
  // 'template-curly-spacing': ['error', 'never'],
227
227
  // 'template-tag-spacing': ['error', 'never'],
@@ -439,6 +439,7 @@ export function javascript() {
439
439
  "unicorn/no-unreadable-iife": "error",
440
440
  "unicorn/no-useless-spread": "error",
441
441
  "unicorn/prefer-array-flat-map": "error",
442
+ "unicorn/prefer-export-from": "error",
442
443
  "unicorn/prefer-global-this": "error",
443
444
  "unicorn/prefer-includes": "error",
444
445
  "unicorn/prefer-module": "error",