@cdklabs/eslint-plugin 1.0.0 → 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,26 @@
1
+ class Super3 {
2
+ static propOneHop = 'abc';
3
+ static propThreeHops = 'abc';
4
+ }
5
+
6
+ class Super2 extends Super3 {
7
+ static oneHop() {
8
+ }
9
+
10
+ static twoHops() {
11
+ }
12
+ }
13
+
14
+ class Super extends Super2 {
15
+ static propOneHop = 'abc';
16
+ static oneHop() {
17
+ }
18
+ }
19
+
20
+ class Foo extends Super {
21
+ static baz() {
22
+ Super.oneHop();
23
+ Super2.twoHops();
24
+ return Super.propOneHop + Super3.propThreeHops;
25
+ }
26
+ }
@@ -0,0 +1,11 @@
1
+ class Foo {
2
+ static prop = 'abc';
3
+
4
+ static bar() {
5
+ }
6
+
7
+ static baz() {
8
+ Foo.bar();
9
+ return Foo.prop;
10
+ }
11
+ }
@@ -0,0 +1,6 @@
1
+ class A {
2
+ x: string;
3
+ constructor(x: string) {
4
+ this.x = x;
5
+ }
6
+ }
@@ -0,0 +1,4 @@
1
+ class A {
2
+ private x = 'foo';
3
+ foo() { return this.x; }
4
+ }
@@ -0,0 +1 @@
1
+ throw new ValidationError('<insert error message>', this);
@@ -0,0 +1 @@
1
+ throw new ValidationError('My error', this);
package/README.md CHANGED
@@ -19,6 +19,27 @@ Eslint plugin for the CDK repository. Contains rules that need to be applied spe
19
19
 
20
20
  * `consider-promise-all`: when using `Promise.all()`, attest that there is no unbounded parallelism.
21
21
 
22
+ * `no-throw-default-error`: Forbid throwing the default JavaScript error type. Instead a custom typed error should be thrown.
23
+
24
+ * `no-this-in-static`: Forbid the use of the keywords `this` and `super` in
25
+ static methods.
26
+
27
+ ## How to use these rules
28
+
29
+ Import the plugin and declare rules with the `@cdklabs` prefix:
30
+
31
+ ```js
32
+ module.exports = {
33
+ plugins: [
34
+ // ... other plugins
35
+ '@cdklabs',
36
+ ],
37
+ rules: {
38
+ '@cdklabs/no-throw-default-error': [ 'error' ],
39
+ }
40
+ }
41
+ ```
42
+
22
43
  ## How to add new rules
23
44
 
24
45
  * Make a new file in `lib/rules`. It should export one function called `create`. The
package/lib/index.d.ts CHANGED
@@ -7,5 +7,7 @@ export declare const rules: {
7
7
  'invalid-cfn-imports': any;
8
8
  'no-literal-partition': any;
9
9
  'no-invalid-path': any;
10
+ 'no-throw-default-error': any;
10
11
  'promiseall-no-unbounded-parallelism': any;
12
+ 'no-this-in-static': any;
11
13
  };
package/lib/index.js CHANGED
@@ -11,6 +11,8 @@ exports.rules = {
11
11
  'invalid-cfn-imports': require('./rules/invalid-cfn-imports'),
12
12
  'no-literal-partition': require('./rules/no-literal-partition'),
13
13
  'no-invalid-path': require('./rules/no-invalid-path'),
14
+ 'no-throw-default-error': require('./rules/no-throw-default-error'),
14
15
  'promiseall-no-unbounded-parallelism': require('./rules/promiseall-no-unbounded-parallelism'),
16
+ 'no-this-in-static': require('./rules/no-this-in-static'),
15
17
  };
16
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLDBEQUEwRDs7O0FBRTdDLFFBQUEsSUFBSSxHQUFHO0lBQ2xCLElBQUksRUFBRSxPQUFPLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxJQUFJO0lBQ3JDLE9BQU8sRUFBRSxPQUFPLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxPQUFPO0NBQzVDLENBQUM7QUFFVyxRQUFBLEtBQUssR0FBRztJQUNuQixtQkFBbUIsRUFBRSxPQUFPLENBQUMsMkJBQTJCLENBQUM7SUFDekQscUJBQXFCLEVBQUUsT0FBTyxDQUFDLDZCQUE2QixDQUFDO0lBQzdELHNCQUFzQixFQUFFLE9BQU8sQ0FBQyw4QkFBOEIsQ0FBQztJQUMvRCxpQkFBaUIsRUFBRSxPQUFPLENBQUMseUJBQXlCLENBQUM7SUFDckQscUNBQXFDLEVBQUUsT0FBTyxDQUFDLDZDQUE2QyxDQUFDO0NBQzlGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tcmVxdWlyZS1pbXBvcnRzICovXG5cbmV4cG9ydCBjb25zdCBtZXRhID0ge1xuICBuYW1lOiByZXF1aXJlKCcuLi9wYWNrYWdlLmpzb24nKS5uYW1lLFxuICB2ZXJzaW9uOiByZXF1aXJlKCcuLi9wYWNrYWdlLmpzb24nKS52ZXJzaW9uLFxufTtcblxuZXhwb3J0IGNvbnN0IHJ1bGVzID0ge1xuICAnbm8tY29yZS1jb25zdHJ1Y3QnOiByZXF1aXJlKCcuL3J1bGVzL25vLWNvcmUtY29uc3RydWN0JyksXG4gICdpbnZhbGlkLWNmbi1pbXBvcnRzJzogcmVxdWlyZSgnLi9ydWxlcy9pbnZhbGlkLWNmbi1pbXBvcnRzJyksXG4gICduby1saXRlcmFsLXBhcnRpdGlvbic6IHJlcXVpcmUoJy4vcnVsZXMvbm8tbGl0ZXJhbC1wYXJ0aXRpb24nKSxcbiAgJ25vLWludmFsaWQtcGF0aCc6IHJlcXVpcmUoJy4vcnVsZXMvbm8taW52YWxpZC1wYXRoJyksXG4gICdwcm9taXNlYWxsLW5vLXVuYm91bmRlZC1wYXJhbGxlbGlzbSc6IHJlcXVpcmUoJy4vcnVsZXMvcHJvbWlzZWFsbC1uby11bmJvdW5kZWQtcGFyYWxsZWxpc20nKSxcbn07XG4iXX0=
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLDBEQUEwRDs7O0FBRTdDLFFBQUEsSUFBSSxHQUFHO0lBQ2xCLElBQUksRUFBRSxPQUFPLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxJQUFJO0lBQ3JDLE9BQU8sRUFBRSxPQUFPLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxPQUFPO0NBQzVDLENBQUM7QUFFVyxRQUFBLEtBQUssR0FBRztJQUNuQixtQkFBbUIsRUFBRSxPQUFPLENBQUMsMkJBQTJCLENBQUM7SUFDekQscUJBQXFCLEVBQUUsT0FBTyxDQUFDLDZCQUE2QixDQUFDO0lBQzdELHNCQUFzQixFQUFFLE9BQU8sQ0FBQyw4QkFBOEIsQ0FBQztJQUMvRCxpQkFBaUIsRUFBRSxPQUFPLENBQUMseUJBQXlCLENBQUM7SUFDckQsd0JBQXdCLEVBQUUsT0FBTyxDQUFDLGdDQUFnQyxDQUFDO0lBQ25FLHFDQUFxQyxFQUFFLE9BQU8sQ0FBQyw2Q0FBNkMsQ0FBQztJQUM3RixtQkFBbUIsRUFBRSxPQUFPLENBQUMsMkJBQTJCLENBQUM7Q0FDMUQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby1yZXF1aXJlLWltcG9ydHMgKi9cblxuZXhwb3J0IGNvbnN0IG1ldGEgPSB7XG4gIG5hbWU6IHJlcXVpcmUoJy4uL3BhY2thZ2UuanNvbicpLm5hbWUsXG4gIHZlcnNpb246IHJlcXVpcmUoJy4uL3BhY2thZ2UuanNvbicpLnZlcnNpb24sXG59O1xuXG5leHBvcnQgY29uc3QgcnVsZXMgPSB7XG4gICduby1jb3JlLWNvbnN0cnVjdCc6IHJlcXVpcmUoJy4vcnVsZXMvbm8tY29yZS1jb25zdHJ1Y3QnKSxcbiAgJ2ludmFsaWQtY2ZuLWltcG9ydHMnOiByZXF1aXJlKCcuL3J1bGVzL2ludmFsaWQtY2ZuLWltcG9ydHMnKSxcbiAgJ25vLWxpdGVyYWwtcGFydGl0aW9uJzogcmVxdWlyZSgnLi9ydWxlcy9uby1saXRlcmFsLXBhcnRpdGlvbicpLFxuICAnbm8taW52YWxpZC1wYXRoJzogcmVxdWlyZSgnLi9ydWxlcy9uby1pbnZhbGlkLXBhdGgnKSxcbiAgJ25vLXRocm93LWRlZmF1bHQtZXJyb3InOiByZXF1aXJlKCcuL3J1bGVzL25vLXRocm93LWRlZmF1bHQtZXJyb3InKSxcbiAgJ3Byb21pc2VhbGwtbm8tdW5ib3VuZGVkLXBhcmFsbGVsaXNtJzogcmVxdWlyZSgnLi9ydWxlcy9wcm9taXNlYWxsLW5vLXVuYm91bmRlZC1wYXJhbGxlbGlzbScpLFxuICAnbm8tdGhpcy1pbi1zdGF0aWMnOiByZXF1aXJlKCcuL3J1bGVzL25vLXRoaXMtaW4tc3RhdGljJyksXG59O1xuIl19
@@ -15,13 +15,23 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
15
15
  }) : function(o, v) {
16
16
  o["default"] = v;
17
17
  });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
25
35
  Object.defineProperty(exports, "__esModule", { value: true });
26
36
  exports.ImportCache = void 0;
27
37
  const crypto = __importStar(require("crypto"));
@@ -49,4 +59,4 @@ function hashed(key) {
49
59
  hash.update(JSON.stringify(key));
50
60
  return hash.digest('hex');
51
61
  }
52
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1wb3J0LWNhY2hlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3ByaXZhdGUvaW1wb3J0LWNhY2hlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsK0NBQWlDO0FBaUJqQyxNQUFhLFdBQVc7SUFBeEI7UUFDVSxZQUFPLEdBQXlDLEVBQUUsQ0FBQztJQWlCN0QsQ0FBQztJQWZRLE1BQU0sQ0FBQyxNQUF5QjtRQUNyQyxNQUFNLEdBQUcsR0FBbUI7WUFDMUIsUUFBUSxFQUFFLE1BQU0sQ0FBQyxRQUFRO1lBQ3pCLFFBQVEsRUFBRSxNQUFNLENBQUMsUUFBUTtTQUMxQixDQUFDO1FBQ0YsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxNQUFNLENBQUM7SUFDckMsQ0FBQztJQUVNLElBQUksQ0FBQyxHQUFtQjtRQUM3QixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDbkMsQ0FBQztJQUVELElBQVcsT0FBTztRQUNoQixPQUFPLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3JDLENBQUM7Q0FDRjtBQWxCRCxrQ0FrQkM7QUFFRCxTQUFTLE1BQU0sQ0FBQyxHQUFPO0lBQ3JCLE1BQU0sSUFBSSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDdEMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDakMsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQzVCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBjcnlwdG8gZnJvbSAnY3J5cHRvJztcblxuZXhwb3J0IGludGVyZmFjZSBJbXBvcnRDYWNoZUtleSB7XG4gIHJlYWRvbmx5IGZpbGVOYW1lOiBzdHJpbmc7XG4gIHJlYWRvbmx5IHR5cGVOYW1lOiBzdHJpbmc7XG59XG5cbi8vIGBub2RlYCBpcyBhIHR5cGUgZnJvbSBAdHlwZXNjcmlwdC1lc2xpbnQvdHlwZXNjcmlwdC1lc3RyZWUsIGJ1dCB1c2luZyAnYW55JyBmb3Igbm93XG4vLyBzaW5jZSBpdCdzIGluY29tcGF0aWJsZSB3aXRoIGVzbGludC5SdWxlIG5hbWVzcGFjZS4gV2FpdGluZyBmb3IgYmV0dGVyIGNvbXBhdGliaWxpdHkgaW5cbi8vIGh0dHBzOi8vZ2l0aHViLmNvbS90eXBlc2NyaXB0LWVzbGludC90eXBlc2NyaXB0LWVzbGludC90cmVlLzE3NjVhMTc4ZTQ1NmIxNTJiZDQ4MTkyZWI1ZGI3ZTg1NDFlMmFkZjIvcGFja2FnZXMvZXhwZXJpbWVudGFsLXV0aWxzI25vdGVcbmV4cG9ydCB0eXBlIE5vZGUgPSBhbnk7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSW1wb3J0Q2FjaGVSZWNvcmQgZXh0ZW5kcyBJbXBvcnRDYWNoZUtleSB7XG4gIHJlYWRvbmx5IGltcG9ydE5vZGU6IE5vZGU7XG4gIHJlYWRvbmx5IGxvY2FsTmFtZTogc3RyaW5nO1xufVxuXG5leHBvcnQgY2xhc3MgSW1wb3J0Q2FjaGUge1xuICBwcml2YXRlIHJlY29yZHM6IHsgW2tleTogc3RyaW5nXTogSW1wb3J0Q2FjaGVSZWNvcmQgfSA9IHt9O1xuXG4gIHB1YmxpYyByZWNvcmQocmVjb3JkOiBJbXBvcnRDYWNoZVJlY29yZCk6IHZvaWQge1xuICAgIGNvbnN0IGtleTogSW1wb3J0Q2FjaGVLZXkgPSB7XG4gICAgICBmaWxlTmFtZTogcmVjb3JkLmZpbGVOYW1lLFxuICAgICAgdHlwZU5hbWU6IHJlY29yZC50eXBlTmFtZSxcbiAgICB9O1xuICAgIHRoaXMucmVjb3Jkc1toYXNoZWQoa2V5KV0gPSByZWNvcmQ7XG4gIH1cblxuICBwdWJsaWMgZmluZChrZXk6IEltcG9ydENhY2hlS2V5KTogSW1wb3J0Q2FjaGVSZWNvcmQgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLnJlY29yZHNbaGFzaGVkKGtleSldO1xuICB9XG5cbiAgcHVibGljIGdldCBpbXBvcnRzKCk6IEltcG9ydENhY2hlUmVjb3JkW10ge1xuICAgIHJldHVybiBPYmplY3QudmFsdWVzKHRoaXMucmVjb3Jkcyk7XG4gIH1cbn1cblxuZnVuY3Rpb24gaGFzaGVkKGtleToge30pOiBzdHJpbmcge1xuICBjb25zdCBoYXNoID0gY3J5cHRvLmNyZWF0ZUhhc2goJ21kNScpO1xuICBoYXNoLnVwZGF0ZShKU09OLnN0cmluZ2lmeShrZXkpKTtcbiAgcmV0dXJuIGhhc2guZGlnZXN0KCdoZXgnKTtcbn0iXX0=
62
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1wb3J0LWNhY2hlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3ByaXZhdGUvaW1wb3J0LWNhY2hlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLCtDQUFpQztBQWlCakMsTUFBYSxXQUFXO0lBQXhCO1FBQ1UsWUFBTyxHQUF5QyxFQUFFLENBQUM7SUFpQjdELENBQUM7SUFmUSxNQUFNLENBQUMsTUFBeUI7UUFDckMsTUFBTSxHQUFHLEdBQW1CO1lBQzFCLFFBQVEsRUFBRSxNQUFNLENBQUMsUUFBUTtZQUN6QixRQUFRLEVBQUUsTUFBTSxDQUFDLFFBQVE7U0FDMUIsQ0FBQztRQUNGLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsTUFBTSxDQUFDO0lBQ3JDLENBQUM7SUFFTSxJQUFJLENBQUMsR0FBbUI7UUFDN0IsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQ25DLENBQUM7SUFFRCxJQUFXLE9BQU87UUFDaEIsT0FBTyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNyQyxDQUFDO0NBQ0Y7QUFsQkQsa0NBa0JDO0FBRUQsU0FBUyxNQUFNLENBQUMsR0FBTztJQUNyQixNQUFNLElBQUksR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3RDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQ2pDLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUM1QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgY3J5cHRvIGZyb20gJ2NyeXB0byc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSW1wb3J0Q2FjaGVLZXkge1xuICByZWFkb25seSBmaWxlTmFtZTogc3RyaW5nO1xuICByZWFkb25seSB0eXBlTmFtZTogc3RyaW5nO1xufVxuXG4vLyBgbm9kZWAgaXMgYSB0eXBlIGZyb20gQHR5cGVzY3JpcHQtZXNsaW50L3R5cGVzY3JpcHQtZXN0cmVlLCBidXQgdXNpbmcgJ2FueScgZm9yIG5vd1xuLy8gc2luY2UgaXQncyBpbmNvbXBhdGlibGUgd2l0aCBlc2xpbnQuUnVsZSBuYW1lc3BhY2UuIFdhaXRpbmcgZm9yIGJldHRlciBjb21wYXRpYmlsaXR5IGluXG4vLyBodHRwczovL2dpdGh1Yi5jb20vdHlwZXNjcmlwdC1lc2xpbnQvdHlwZXNjcmlwdC1lc2xpbnQvdHJlZS8xNzY1YTE3OGU0NTZiMTUyYmQ0ODE5MmViNWRiN2U4NTQxZTJhZGYyL3BhY2thZ2VzL2V4cGVyaW1lbnRhbC11dGlscyNub3RlXG5leHBvcnQgdHlwZSBOb2RlID0gYW55O1xuXG5leHBvcnQgaW50ZXJmYWNlIEltcG9ydENhY2hlUmVjb3JkIGV4dGVuZHMgSW1wb3J0Q2FjaGVLZXkge1xuICByZWFkb25seSBpbXBvcnROb2RlOiBOb2RlO1xuICByZWFkb25seSBsb2NhbE5hbWU6IHN0cmluZztcbn1cblxuZXhwb3J0IGNsYXNzIEltcG9ydENhY2hlIHtcbiAgcHJpdmF0ZSByZWNvcmRzOiB7IFtrZXk6IHN0cmluZ106IEltcG9ydENhY2hlUmVjb3JkIH0gPSB7fTtcblxuICBwdWJsaWMgcmVjb3JkKHJlY29yZDogSW1wb3J0Q2FjaGVSZWNvcmQpOiB2b2lkIHtcbiAgICBjb25zdCBrZXk6IEltcG9ydENhY2hlS2V5ID0ge1xuICAgICAgZmlsZU5hbWU6IHJlY29yZC5maWxlTmFtZSxcbiAgICAgIHR5cGVOYW1lOiByZWNvcmQudHlwZU5hbWUsXG4gICAgfTtcbiAgICB0aGlzLnJlY29yZHNbaGFzaGVkKGtleSldID0gcmVjb3JkO1xuICB9XG5cbiAgcHVibGljIGZpbmQoa2V5OiBJbXBvcnRDYWNoZUtleSk6IEltcG9ydENhY2hlUmVjb3JkIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5yZWNvcmRzW2hhc2hlZChrZXkpXTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgaW1wb3J0cygpOiBJbXBvcnRDYWNoZVJlY29yZFtdIHtcbiAgICByZXR1cm4gT2JqZWN0LnZhbHVlcyh0aGlzLnJlY29yZHMpO1xuICB9XG59XG5cbmZ1bmN0aW9uIGhhc2hlZChrZXk6IHt9KTogc3RyaW5nIHtcbiAgY29uc3QgaGFzaCA9IGNyeXB0by5jcmVhdGVIYXNoKCdtZDUnKTtcbiAgaGFzaC51cGRhdGUoSlNPTi5zdHJpbmdpZnkoa2V5KSk7XG4gIHJldHVybiBoYXNoLmRpZ2VzdCgnaGV4Jyk7XG59Il19
@@ -15,13 +15,23 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
15
15
  }) : function(o, v) {
16
16
  o["default"] = v;
17
17
  });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
25
35
  Object.defineProperty(exports, "__esModule", { value: true });
26
36
  exports.isProdFile = isProdFile;
27
37
  const path = __importStar(require("path"));
@@ -34,4 +44,4 @@ function isProdFile(filename) {
34
44
  const isInOurTestFolder = path.resolve(filename).startsWith(path.resolve(__dirname, '..', '..', 'test'));
35
45
  return (!isInTestFolder && !isTestingPackage) || isInOurTestFolder;
36
46
  }
37
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXMtcHJvZC1maWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3ByaXZhdGUvaXMtcHJvZC1maWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFLQSxnQ0FPQztBQVpELDJDQUE2QjtBQUU3Qjs7R0FFRztBQUNILFNBQWdCLFVBQVUsQ0FBQyxRQUFnQjtJQUN6QyxNQUFNLGNBQWMsR0FBRyxJQUFJLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDN0QsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUV2RSxNQUFNLGlCQUFpQixHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQztJQUV6RyxPQUFPLENBQUMsQ0FBQyxjQUFjLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLGlCQUFpQixDQUFDO0FBQ3JFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBwYXRoIGZyb20gJ3BhdGgnO1xuXG4vKipcbiAqIFdlIGRvbid0IGNhcmUgYWJvdXQgcHJvamVjdCB0ZXN0IGZpbGVzIChpbiBhIC90ZXN0LyBkaXJlY3RvcnksIGV4Y2x1ZGluZyBvdXIgZml4dHVyZXMpXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc1Byb2RGaWxlKGZpbGVuYW1lOiBzdHJpbmcpIHtcbiAgY29uc3QgaXNJblRlc3RGb2xkZXIgPSBuZXcgUmVnRXhwKC9cXC90ZXN0XFwvLykudGVzdChmaWxlbmFtZSk7XG4gIGNvbnN0IGlzVGVzdGluZ1BhY2thZ2UgPSBuZXcgUmVnRXhwKC9AYXdzLWNkay10ZXN0aW5nLykudGVzdChmaWxlbmFtZSk7XG5cbiAgY29uc3QgaXNJbk91clRlc3RGb2xkZXIgPSBwYXRoLnJlc29sdmUoZmlsZW5hbWUpLnN0YXJ0c1dpdGgocGF0aC5yZXNvbHZlKF9fZGlybmFtZSwgJy4uJywgJy4uJywgJ3Rlc3QnKSk7XG5cbiAgcmV0dXJuICghaXNJblRlc3RGb2xkZXIgJiYgIWlzVGVzdGluZ1BhY2thZ2UpIHx8IGlzSW5PdXJUZXN0Rm9sZGVyO1xufVxuIl19
47
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXMtcHJvZC1maWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3ByaXZhdGUvaXMtcHJvZC1maWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBS0EsZ0NBT0M7QUFaRCwyQ0FBNkI7QUFFN0I7O0dBRUc7QUFDSCxTQUFnQixVQUFVLENBQUMsUUFBZ0I7SUFDekMsTUFBTSxjQUFjLEdBQUcsSUFBSSxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQzdELE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxNQUFNLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7SUFFdkUsTUFBTSxpQkFBaUIsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUM7SUFFekcsT0FBTyxDQUFDLENBQUMsY0FBYyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxpQkFBaUIsQ0FBQztBQUNyRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgcGF0aCBmcm9tICdwYXRoJztcblxuLyoqXG4gKiBXZSBkb24ndCBjYXJlIGFib3V0IHByb2plY3QgdGVzdCBmaWxlcyAoaW4gYSAvdGVzdC8gZGlyZWN0b3J5LCBleGNsdWRpbmcgb3VyIGZpeHR1cmVzKVxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNQcm9kRmlsZShmaWxlbmFtZTogc3RyaW5nKSB7XG4gIGNvbnN0IGlzSW5UZXN0Rm9sZGVyID0gbmV3IFJlZ0V4cCgvXFwvdGVzdFxcLy8pLnRlc3QoZmlsZW5hbWUpO1xuICBjb25zdCBpc1Rlc3RpbmdQYWNrYWdlID0gbmV3IFJlZ0V4cCgvQGF3cy1jZGstdGVzdGluZy8pLnRlc3QoZmlsZW5hbWUpO1xuXG4gIGNvbnN0IGlzSW5PdXJUZXN0Rm9sZGVyID0gcGF0aC5yZXNvbHZlKGZpbGVuYW1lKS5zdGFydHNXaXRoKHBhdGgucmVzb2x2ZShfX2Rpcm5hbWUsICcuLicsICcuLicsICd0ZXN0JykpO1xuXG4gIHJldHVybiAoIWlzSW5UZXN0Rm9sZGVyICYmICFpc1Rlc3RpbmdQYWNrYWdlKSB8fCBpc0luT3VyVGVzdEZvbGRlcjtcbn1cbiJdfQ==
@@ -15,13 +15,23 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
15
15
  }) : function(o, v) {
16
16
  o["default"] = v;
17
17
  });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
25
35
  Object.defineProperty(exports, "__esModule", { value: true });
26
36
  exports.create = create;
27
37
  const fs = __importStar(require("fs"));
@@ -99,4 +109,4 @@ function create(context) {
99
109
  },
100
110
  };
101
111
  }
102
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm8taW52YWxpZC1wYXRoLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3J1bGVzL25vLWludmFsaWQtcGF0aC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBb0NBLHdCQXNEQztBQTFGRCx1Q0FBeUI7QUFDekIsMkNBQTZCO0FBRzdCLFNBQVMsa0JBQWtCLENBQUMsSUFBUzs7SUFDbkMsT0FBTyxDQUNMLENBQUEsTUFBQSxNQUFBLElBQUksQ0FBQyxNQUFNLDBDQUFFLFFBQVEsMENBQUUsSUFBSSxNQUFLLE1BQU07UUFDdEMsQ0FBQyxDQUFBLE1BQUEsTUFBQSxNQUFBLE1BQUEsSUFBSSxDQUFDLE1BQU0sMENBQUUsVUFBVSwwQ0FBRSxNQUFNLDBDQUFFLE1BQU0sMENBQUUsSUFBSSxNQUFLLE1BQU07YUFDekQsTUFBQSxNQUFBLElBQUksQ0FBQyxNQUFNLDBDQUFFLFNBQVMsMENBQUUsSUFBSSxDQUFDLENBQUMsQ0FBTSxFQUFFLEVBQUUsZUFBQyxPQUFBLENBQUEsTUFBQSxNQUFBLENBQUMsQ0FBQyxNQUFNLDBDQUFFLE1BQU0sMENBQUUsSUFBSSxNQUFLLE1BQU0sQ0FBQSxFQUFBLENBQUMsQ0FBQSxDQUFDLENBQzdFLENBQUM7QUFDSixDQUFDO0FBRUQsU0FBUyxtQkFBbUIsQ0FBQyxJQUFTO0lBQ3BDLGlFQUFpRTtJQUNqRSxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUMzQyxPQUFPLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFNLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLEtBQUssU0FBUyxDQUFDLENBQUM7QUFDN0QsQ0FBQztBQUVELFNBQVMsVUFBVSxDQUFDLElBQWM7SUFDaEMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMs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QUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsRUFBRSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLGNBQWMsQ0FBQyxDQUFDLENBQUM7d0JBQzlGLElBQUksRUFBRSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDOzRCQUMxQix1RUFBdUU7NEJBQ3ZFLE9BQU8sQ0FBQyxNQUFNLENBQUMsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLEdBQUcsWUFBWSxDQUFDLElBQUksQ0FBQywySkFBMkosRUFBRSxDQUFDLENBQUM7NEJBQ3BOLE9BQU87d0JBQ1QsQ0FBQztvQkFDSCxDQUFDO2dCQUNILENBQUM7WUFDSCxDQUFDO1FBQ0gsQ0FBQztLQUNGLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgZnMgZnJvbSAnZnMnO1xuaW1wb3J0ICogYXMgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCB7IFJ1bGUgfSBmcm9tICdlc2xpbnQnO1xuXG5mdW5jdGlvbiBpc1BhdGhKb2luRnVuY0NhbGwobm9kZTogYW55KTogYm9vbGVhbiB7XG4gIHJldHVybiAoXG4gICAgbm9kZS5jYWxsZWU/LnByb3BlcnR5Py5uYW1lID09PSAnam9pbicgJiZcbiAgICAobm9kZS5wYXJlbnQ/LmV4cHJlc3Npb24/LmNhbGxlZT8ub2JqZWN0Py5uYW1lID09PSAncGF0aCcgfHxcbiAgICBub2RlLnBhcmVudD8uYXJndW1lbnRzPy5zb21lKChhOiBhbnkpID0+IGEuY2FsbGVlPy5vYmplY3Q/Lm5hbWUgPT09ICdwYXRoJykpXG4gICk7XG59XG5cbmZ1bmN0aW9uIG5vQXJndW1lbnRWYXJpYWJsZXMobm9kZTogYW55KTogYm9vbGVhbiB7XG4gIC8vIE91dHNpZGUgb2YgdGhlIGZpcnN0IGFyZ3VtZW50LCBhbGwgYXJndW1lbnRzIHNob3VsZCBiZSBzdHJpbmdzXG4gIGNvbnN0IGNvbXBvbmVudHMgPSBub2RlLmFyZ3VtZW50cy5zbGljZSgxKTtcbiAgcmV0dXJuIGNvbXBvbmVudHMuZXZlcnkoKGE6IGFueSkgPT4gYS52YWx1ZSAhPT0gdW5kZWZpbmVkKTtcbn1cblxuZnVuY3Rpb24gaGFzU2xhc2hlcyhhcmdzOiBzdHJpbmdbXSk6IGJvb2xlYW4ge1xuICByZXR1cm4gYXJncy5zb21lKChhKSA9PiBhLmluY2x1ZGVzKCcvJykpO1xufVxuXG5mdW5jdGlvbiBmaXJzdEFyZ0lzRGlybmFtZShub2RlOiBhbnkpOiBib29sZWFuIHtcbiAgcmV0dXJuIG5vZGUuYXJndW1lbnRzWzBdLm5hbWUgJiYgbm9kZS5hcmd1bWVudHNbMF0ubmFtZSA9PT0gJ19fZGlybmFtZSc7XG59XG5cbmZ1bmN0aW9uIGFyZ3VtZW50TGlzdChub2RlOiBhbnkpOiBzdHJpbmdbXSB7XG4gIC8vIEFscmVhZHkgY29uZmlybWVkIHRoYXQgZmlyc3QgYXJndW1lbnQgaXMgJ19fZGlybmFtZScsIHNvIGNhbiBzYWZlbHkgcmVtb3ZlIGl0XG4gIGNvbnN0IGFyZ3M6IHN0cmluZ1tdID0gbm9kZS5hcmd1bWVudHMuc2xpY2UoMSkubWFwKChhOiBhbnkpID0+IHsgcmV0dXJuIGEudmFsdWU7IH0pO1xuICByZXR1cm4gYXJncztcbn1cblxuZnVuY3Rpb24gcmVjcmVhdGVQYXRoKGFyZ3M6IHN0cmluZ1tdKTogc3RyaW5nIHtcbiAgcmV0dXJuIGBwYXRoLmpvaW4oX19kaXJuYW1lLCAnJHthcmdzLmpvaW4oJ1xcJywgXFwnJyl9JylgO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlKGNvbnRleHQ6IFJ1bGUuUnVsZUNvbnRleHQpOiBSdWxlLk5vZGVMaXN0ZW5lciB7XG4gIHJldHVybiB7XG4gICAgQ2FsbEV4cHJlc3Npb24obm9kZTogYW55KSB7XG4gICAgICBpZiAoaXNQYXRoSm9pbkZ1bmNDYWxsKG5vZGUpKSB7XG4gICAgICAgIGlmIChub2RlLmFyZ3VtZW50cy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAvLyBFUlJPUjogdGhpcyBpcyAncGF0aC5qb2luKCknXG4gICAgICAgICAgY29udGV4dC5yZXBvcnQoeyBub2RlLCBtZXNzYWdlOiAnXFwncGF0aC5qb2luKClcXCcgaXMgbm90IGEgdmFsaWQgcGF0aC4gWW91IG11c3Qgc3BlY2lmeSBhcmd1bWVudHMgaW50byB0aGUgZnVuY3Rpb24uJyB9KTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIW5vQXJndW1lbnRWYXJpYWJsZXMobm9kZSkpIHtcbiAgICAgICAgICAvLyBXQVJOSU5HOiB1bmV4cGVjdGVkIG5vbi1zdHJpbmcgaW4gdGhlIGFyZ3VtZW50IGxpc3QuIFRoaXMgaGFwcGVucyBpZiBwYXJ0IG9mIHRoZSBhcmd1bWVudCBsaXN0IGlzIGEgdmFyaWFibGUsIGkuZS4gYHBhdGguam9pbihfX2Rpcm5hbWUsIG15UGF0aClgLlxuICAgICAgICAgIC8vIFdlIG1heSBiZSBhYmxlIHRvIGRvIHNvbWV0aGluZyBhYm91dCB0aGlzLCBidXQgd2UgY3VycmVudGx5IGFyZSBqdXN0IGdvaW5nIHRvIGxldCBpdCBwYXNzLlxuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFdlIGN1cnJlbnRseSBkbyBub3QgbGludCBhbnkgcGF0aC5qb2luIHdpdGhvdXQgJ19fZGlybmFtZScgYXMgdGhlIGZpcnN0IGFyZ3VtZW50XG4gICAgICAgIGlmICghZmlyc3RBcmdJc0Rpcm5hbWUobm9kZSkpIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBhcmdzID0gYXJndW1lbnRMaXN0KG5vZGUpO1xuXG4gICAgICAgIGlmIChoYXNTbGFzaGVzKGFyZ3MpKSB7XG4gICAgICAgICAgLy8gRVJST1I6IFRoaXMgcGF0aCBsb29rcyBsaWtlICdwYXRoLmpvaW4oX19kaXJuYW1lLCAnYS9iJyknIGFuZCBzaG91bGQgYmUgY2hhbmdlZCB0byAncGF0aC5qb2luKF9fZGlybmFtZSwgJ2EnLCAnYicpJ1xuICAgICAgICAgIGNvbnRleHQucmVwb3J0KHsgbm9kZSwgbWVzc2FnZTogYCR7cmVjcmVhdGVQYXRoKGFyZ3MpfSBpcyBub3QgYSB2YWxpZCBwYXRoLiBJdCBoYXMgJy8nIGluIHRoZSBhcmd1bWVudHMgd2hpY2ggaXMgbm90IGFsbG93ZWQuIEVhY2ggZGlyZWN0b3J5IHNob3VsZCBiZSBpdHMgb3duIHNlcGFyYXRlIGFyZ3VtZW50LmAgfSk7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgZmlyc3REb3duRGlyID0gYXJncy5maW5kSW5kZXgoKHApID0+IHAgIT09ICcuLicpO1xuXG4gICAgICAgIC8vIENvbmZpcm0gcGF0aCBkb2VzIG5vdCBoYXZlIGFueSB1bm5lY2Vzc2FyeSAnLi4nIHBhdGhzXG4gICAgICAgIC8vIFRoaXMgYWxsb3dzIHVzIHRvIHZhbGlkYXRlIHN1YnNlcXVlbnQgY2hlY2tzXG4gICAgICAgIGlmIChmaXJzdERvd25EaXIgPiAwICYmIGFyZ3Muc29tZSgocCwgaSkgPT4gcCA9PT0gJy4uJyAmJiBpID4gZmlyc3REb3duRGlyKSkge1xuICAgICAgICAgIC8vIEVSUk9SOiBUaGlzIHBhdGggb3NjaWxsYXRlcyBiZXR3ZWVuIHVwIGFuZCBkb3duIGNvbW1hbmRzXG4gICAgICAgICAgY29udGV4dC5yZXBvcnQoeyBub2RlLCBtZXNzYWdlOiBgJHtyZWNyZWF0ZVBhdGgoYXJncyl9IGlzIG5vdCBhIHZhbGlkIHBhdGguIEl0IGdvZXMgYmFja3dhcmRzIGFuZCBmb3J3YXJkcyBhbmQgYmFja3dhcmRzIGFnYWluLCBhbmQgY2FuIGJlIHNpbXBsaWZpZWQuYCB9KTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICAvLyBFeGNsdWRlIHRoZSBjYXNlIHdoZXJlIHRoZXJlIGFyZSBubyAnLi4nIGF0IGFsbCBpbiB0aGUgcGF0aCAtLSB0aG9zZSBhcmUgbmV2ZXIgaW52YWxpZFxuICAgICAgICBjb25zdCBjdXJyZW50RmlsZSA9IGNvbnRleHQuZ2V0RmlsZW5hbWUoKTtcbiAgICAgICAgaWYgKGZpcnN0RG93bkRpciA+IDApIHtcbiAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGZpcnN0RG93bkRpcjsgaSsrKSB7XG4gICAgICAgICAgICBjb25zdCBwakZpbGUgPSBwYXRoLmpvaW4oLi4uW3BhdGguZGlybmFtZShjdXJyZW50RmlsZSksIC4uLmFyZ3Muc2xpY2UoMCwgaSksICdwYWNrYWdlLmpzb24nXSk7XG4gICAgICAgICAgICBpZiAoZnMuZXhpc3RzU3luYyhwakZpbGUpKSB7XG4gICAgICAgICAgICAgIC8vIEVSUk9SOiB0aGlzIHBhdGggd2lsbCBlbmQgdXAgZ29pbmcgb3V0IG9mIHRoZSBwYWNrYWdlLmpzb24gZGlyZWN0b3J5XG4gICAgICAgICAgICAgIGNvbnRleHQucmVwb3J0KHsgbm9kZSwgbWVzc2FnZTogYCR7cmVjcmVhdGVQYXRoKGFyZ3MpfSBpcyBub3QgYSB2YWxpZCBwYXRoLiBJdCBnb2VzIGJleW9uZCB0aGUgcGFyZW50IGxpYnJhcnkncyBwYWNrYWdlLmpzb24gZmlsZSBzbyB0aGUgZmlsZSBpdCBwb2ludHMgdG8gd2lsbCBub3QgYmUgYXZhaWxhYmxlIGFmdGVyIHRoZSBsaWJyYXJ5IGlzIHBhY2thZ2VkLmAgfSk7XG4gICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICB9O1xufVxuIl19
112
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm8taW52YWxpZC1wYXRoLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3J1bGVzL25vLWludmFsaWQtcGF0aC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQW9DQSx3QkFzREM7QUExRkQsdUNBQXlCO0FBQ3pCLDJDQUE2QjtBQUc3QixTQUFTLGtCQUFrQixDQUFDLElBQVM7O0lBQ25DLE9BQU8sQ0FDTCxDQUFBLE1BQUEsTUFBQSxJQUFJLENBQUMsTUFBTSwwQ0FBRSxRQUFRLDBDQUFFLElBQUksTUFBSyxNQUFNO1FBQ3RDLENBQUMsQ0FBQSxNQUFBLE1BQUEsTUFBQSxNQUFBLElBQUksQ0FBQyxNQUFNLDBDQUFFLFVBQVUsMENBQUUsTUFBTSwwQ0FBRSxNQUFNLDBDQUFFLElBQUksTUFBSyxNQUFNO2FBQ3pELE1BQUEsTUFBQSxJQUFJLENBQUMsTUFBTSwwQ0FBRSxTQUFTLDBDQUFFLElBQUksQ0FBQyxDQUFDLENBQU0sRUFBRSxFQUFFLGVBQUMsT0FBQSxDQUFBLE1BQUEsTUFBQSxDQUFDLENBQUMsTUFBTSwwQ0FBRSxNQUFNLDBDQUFFLElBQUksTUFBSyxNQUFNLENBQUEsRUFBQSxDQUFDLENBQUEsQ0FBQyxDQUM3RSxDQUFDO0FBQ0osQ0FBQztBQUVELFNBQVMsbUJBQW1CLENBQUMsSUFBUztJQUNwQyxpRUFBaUU7SUFDakUsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDM0MsT0FBTyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxLQUFLLFNBQVMsQ0FBQyxDQUFDO0FBQzdELENBQUM7QUFFRCxTQUFTLFVBQVUsQ0FBQyxJQUFjO0lBQ2hDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMs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QUFDLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLEVBQUUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxjQUFjLENBQUMsQ0FBQyxDQUFDO3dCQUM5RixJQUFJLEVBQUUsQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQzs0QkFDMUIsdUVBQXVFOzRCQUN2RSxPQUFPLENBQUMsTUFBTSxDQUFDLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxHQUFHLFlBQVksQ0FBQyxJQUFJLENBQUMsMkpBQTJKLEVBQUUsQ0FBQyxDQUFDOzRCQUNwTixPQUFPO3dCQUNULENBQUM7b0JBQ0gsQ0FBQztnQkFDSCxDQUFDO1lBQ0gsQ0FBQztRQUNILENBQUM7S0FDRixDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGZzIGZyb20gJ2ZzJztcbmltcG9ydCAqIGFzIHBhdGggZnJvbSAncGF0aCc7XG5pbXBvcnQgeyBSdWxlIH0gZnJvbSAnZXNsaW50JztcblxuZnVuY3Rpb24gaXNQYXRoSm9pbkZ1bmNDYWxsKG5vZGU6IGFueSk6IGJvb2xlYW4ge1xuICByZXR1cm4gKFxuICAgIG5vZGUuY2FsbGVlPy5wcm9wZXJ0eT8ubmFtZSA9PT0gJ2pvaW4nICYmXG4gICAgKG5vZGUucGFyZW50Py5leHByZXNzaW9uPy5jYWxsZWU/Lm9iamVjdD8ubmFtZSA9PT0gJ3BhdGgnIHx8XG4gICAgbm9kZS5wYXJlbnQ/LmFyZ3VtZW50cz8uc29tZSgoYTogYW55KSA9PiBhLmNhbGxlZT8ub2JqZWN0Py5uYW1lID09PSAncGF0aCcpKVxuICApO1xufVxuXG5mdW5jdGlvbiBub0FyZ3VtZW50VmFyaWFibGVzKG5vZGU6IGFueSk6IGJvb2xlYW4ge1xuICAvLyBPdXRzaWRlIG9mIHRoZSBmaXJzdCBhcmd1bWVudCwgYWxsIGFyZ3VtZW50cyBzaG91bGQgYmUgc3RyaW5nc1xuICBjb25zdCBjb21wb25lbnRzID0gbm9kZS5hcmd1bWVudHMuc2xpY2UoMSk7XG4gIHJldHVybiBjb21wb25lbnRzLmV2ZXJ5KChhOiBhbnkpID0+IGEudmFsdWUgIT09IHVuZGVmaW5lZCk7XG59XG5cbmZ1bmN0aW9uIGhhc1NsYXNoZXMoYXJnczogc3RyaW5nW10pOiBib29sZWFuIHtcbiAgcmV0dXJuIGFyZ3Muc29tZSgoYSkgPT4gYS5pbmNsdWRlcygnLycpKTtcbn1cblxuZnVuY3Rpb24gZmlyc3RBcmdJc0Rpcm5hbWUobm9kZTogYW55KTogYm9vbGVhbiB7XG4gIHJldHVybiBub2RlLmFyZ3VtZW50c1swXS5uYW1lICYmIG5vZGUuYXJndW1lbnRzWzBdLm5hbWUgPT09ICdfX2Rpcm5hbWUnO1xufVxuXG5mdW5jdGlvbiBhcmd1bWVudExpc3Qobm9kZTogYW55KTogc3RyaW5nW10ge1xuICAvLyBBbHJlYWR5IGNvbmZpcm1lZCB0aGF0IGZpcnN0IGFyZ3VtZW50IGlzICdfX2Rpcm5hbWUnLCBzbyBjYW4gc2FmZWx5IHJlbW92ZSBpdFxuICBjb25zdCBhcmdzOiBzdHJpbmdbXSA9IG5vZGUuYXJndW1lbnRzLnNsaWNlKDEpLm1hcCgoYTogYW55KSA9PiB7IHJldHVybiBhLnZhbHVlOyB9KTtcbiAgcmV0dXJuIGFyZ3M7XG59XG5cbmZ1bmN0aW9uIHJlY3JlYXRlUGF0aChhcmdzOiBzdHJpbmdbXSk6IHN0cmluZyB7XG4gIHJldHVybiBgcGF0aC5qb2luKF9fZGlybmFtZSwgJyR7YXJncy5qb2luKCdcXCcsIFxcJycpfScpYDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZShjb250ZXh0OiBSdWxlLlJ1bGVDb250ZXh0KTogUnVsZS5Ob2RlTGlzdGVuZXIge1xuICByZXR1cm4ge1xuICAgIENhbGxFeHByZXNzaW9uKG5vZGU6IGFueSkge1xuICAgICAgaWYgKGlzUGF0aEpvaW5GdW5jQ2FsbChub2RlKSkge1xuICAgICAgICBpZiAobm9kZS5hcmd1bWVudHMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgLy8gRVJST1I6IHRoaXMgaXMgJ3BhdGguam9pbigpJ1xuICAgICAgICAgIGNvbnRleHQucmVwb3J0KHsgbm9kZSwgbWVzc2FnZTogJ1xcJ3BhdGguam9pbigpXFwnIGlzIG5vdCBhIHZhbGlkIHBhdGguIFlvdSBtdXN0IHNwZWNpZnkgYXJndW1lbnRzIGludG8gdGhlIGZ1bmN0aW9uLicgfSk7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCFub0FyZ3VtZW50VmFyaWFibGVzKG5vZGUpKSB7XG4gICAgICAgICAgLy8gV0FSTklORzogdW5leHBlY3RlZCBub24tc3RyaW5nIGluIHRoZSBhcmd1bWVudCBsaXN0LiBUaGlzIGhhcHBlbnMgaWYgcGFydCBvZiB0aGUgYXJndW1lbnQgbGlzdCBpcyBhIHZhcmlhYmxlLCBpLmUuIGBwYXRoLmpvaW4oX19kaXJuYW1lLCBteVBhdGgpYC5cbiAgICAgICAgICAvLyBXZSBtYXkgYmUgYWJsZSB0byBkbyBzb21ldGhpbmcgYWJvdXQgdGhpcywgYnV0IHdlIGN1cnJlbnRseSBhcmUganVzdCBnb2luZyB0byBsZXQgaXQgcGFzcy5cbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICAvLyBXZSBjdXJyZW50bHkgZG8gbm90IGxpbnQgYW55IHBhdGguam9pbiB3aXRob3V0ICdfX2Rpcm5hbWUnIGFzIHRoZSBmaXJzdCBhcmd1bWVudFxuICAgICAgICBpZiAoIWZpcnN0QXJnSXNEaXJuYW1lKG5vZGUpKSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgYXJncyA9IGFyZ3VtZW50TGlzdChub2RlKTtcblxuICAgICAgICBpZiAoaGFzU2xhc2hlcyhhcmdzKSkge1xuICAgICAgICAgIC8vIEVSUk9SOiBUaGlzIHBhdGggbG9va3MgbGlrZSAncGF0aC5qb2luKF9fZGlybmFtZSwgJ2EvYicpJyBhbmQgc2hvdWxkIGJlIGNoYW5nZWQgdG8gJ3BhdGguam9pbihfX2Rpcm5hbWUsICdhJywgJ2InKSdcbiAgICAgICAgICBjb250ZXh0LnJlcG9ydCh7IG5vZGUsIG1lc3NhZ2U6IGAke3JlY3JlYXRlUGF0aChhcmdzKX0gaXMgbm90IGEgdmFsaWQgcGF0aC4gSXQgaGFzICcvJyBpbiB0aGUgYXJndW1lbnRzIHdoaWNoIGlzIG5vdCBhbGxvd2VkLiBFYWNoIGRpcmVjdG9yeSBzaG91bGQgYmUgaXRzIG93biBzZXBhcmF0ZSBhcmd1bWVudC5gIH0pO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGZpcnN0RG93bkRpciA9IGFyZ3MuZmluZEluZGV4KChwKSA9PiBwICE9PSAnLi4nKTtcblxuICAgICAgICAvLyBDb25maXJtIHBhdGggZG9lcyBub3QgaGF2ZSBhbnkgdW5uZWNlc3NhcnkgJy4uJyBwYXRoc1xuICAgICAgICAvLyBUaGlzIGFsbG93cyB1cyB0byB2YWxpZGF0ZSBzdWJzZXF1ZW50IGNoZWNrc1xuICAgICAgICBpZiAoZmlyc3REb3duRGlyID4gMCAmJiBhcmdzLnNvbWUoKHAsIGkpID0+IHAgPT09ICcuLicgJiYgaSA+IGZpcnN0RG93bkRpcikpIHtcbiAgICAgICAgICAvLyBFUlJPUjogVGhpcyBwYXRoIG9zY2lsbGF0ZXMgYmV0d2VlbiB1cCBhbmQgZG93biBjb21tYW5kc1xuICAgICAgICAgIGNvbnRleHQucmVwb3J0KHsgbm9kZSwgbWVzc2FnZTogYCR7cmVjcmVhdGVQYXRoKGFyZ3MpfSBpcyBub3QgYSB2YWxpZCBwYXRoLiBJdCBnb2VzIGJhY2t3YXJkcyBhbmQgZm9yd2FyZHMgYW5kIGJhY2t3YXJkcyBhZ2FpbiwgYW5kIGNhbiBiZSBzaW1wbGlmaWVkLmAgfSk7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gRXhjbHVkZSB0aGUgY2FzZSB3aGVyZSB0aGVyZSBhcmUgbm8gJy4uJyBhdCBhbGwgaW4gdGhlIHBhdGggLS0gdGhvc2UgYXJlIG5ldmVyIGludmFsaWRcbiAgICAgICAgY29uc3QgY3VycmVudEZpbGUgPSBjb250ZXh0LmdldEZpbGVuYW1lKCk7XG4gICAgICAgIGlmIChmaXJzdERvd25EaXIgPiAwKSB7XG4gICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBmaXJzdERvd25EaXI7IGkrKykge1xuICAgICAgICAgICAgY29uc3QgcGpGaWxlID0gcGF0aC5qb2luKC4uLltwYXRoLmRpcm5hbWUoY3VycmVudEZpbGUpLCAuLi5hcmdzLnNsaWNlKDAsIGkpLCAncGFja2FnZS5qc29uJ10pO1xuICAgICAgICAgICAgaWYgKGZzLmV4aXN0c1N5bmMocGpGaWxlKSkge1xuICAgICAgICAgICAgICAvLyBFUlJPUjogdGhpcyBwYXRoIHdpbGwgZW5kIHVwIGdvaW5nIG91dCBvZiB0aGUgcGFja2FnZS5qc29uIGRpcmVjdG9yeVxuICAgICAgICAgICAgICBjb250ZXh0LnJlcG9ydCh7IG5vZGUsIG1lc3NhZ2U6IGAke3JlY3JlYXRlUGF0aChhcmdzKX0gaXMgbm90IGEgdmFsaWQgcGF0aC4gSXQgZ29lcyBiZXlvbmQgdGhlIHBhcmVudCBsaWJyYXJ5J3MgcGFja2FnZS5qc29uIGZpbGUgc28gdGhlIGZpbGUgaXQgcG9pbnRzIHRvIHdpbGwgbm90IGJlIGF2YWlsYWJsZSBhZnRlciB0aGUgbGlicmFyeSBpcyBwYWNrYWdlZC5gIH0pO1xuICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgfTtcbn1cbiJdfQ==
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Adapted from https://github.com/mysticatea/eslint-plugin/blob/v13.0.0/tests/lib/rules/no-this-in-static.js
3
+ * @author Toru Nagashima
4
+ * @copyright 2016 Toru Nagashima. All rights reserved.
5
+ * MIT License
6
+ */
7
+ import { Rule } from 'eslint';
8
+ export declare const meta: {
9
+ fixable: boolean;
10
+ };
11
+ export declare function create(context: Rule.RuleContext): Rule.NodeListener;
@@ -0,0 +1,120 @@
1
+ "use strict";
2
+ /**
3
+ * Adapted from https://github.com/mysticatea/eslint-plugin/blob/v13.0.0/tests/lib/rules/no-this-in-static.js
4
+ * @author Toru Nagashima
5
+ * @copyright 2016 Toru Nagashima. All rights reserved.
6
+ * MIT License
7
+ */
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.meta = void 0;
10
+ exports.create = create;
11
+ exports.meta = {
12
+ fixable: true,
13
+ };
14
+ function create(context) {
15
+ const sourceCode = context.sourceCode;
16
+ const staticFunctionStack = [];
17
+ const classDeclarations = new Map();
18
+ function isStaticMethod(node) {
19
+ return (node.type === 'FunctionExpression' &&
20
+ node.parent.type === 'MethodDefinition' &&
21
+ node.parent.static === true);
22
+ }
23
+ function enterFunction(node) {
24
+ staticFunctionStack.push(isStaticMethod(node));
25
+ }
26
+ function exitFunction() {
27
+ staticFunctionStack.pop();
28
+ }
29
+ function reportIfStatic(node) {
30
+ var _a;
31
+ const currentMethodIsStatic = staticFunctionStack.length > 0 && staticFunctionStack[staticFunctionStack.length - 1];
32
+ if (currentMethodIsStatic) {
33
+ context.report({
34
+ node,
35
+ loc: (_a = node.loc) !== null && _a !== void 0 ? _a : { line: 0, column: 0 },
36
+ message: "'{{type}}' keyword found in a static method. Replace it with the class name.",
37
+ data: { type: sourceCode.getText(node) },
38
+ fix(fixer) {
39
+ if (node.type === 'Super') {
40
+ const hierarchy = superClasses(findClassDeclaration(node));
41
+ const memberName = findMemberName(node);
42
+ if (memberName == null) {
43
+ return null;
44
+ }
45
+ const superDecl = hierarchy.find(hasStaticMemberCalled(memberName));
46
+ return superDecl ? fixer.replaceText(node, superDecl.id.name) : null;
47
+ }
48
+ if (node.type === 'ThisExpression') {
49
+ const decl = findClassDeclaration(node);
50
+ return decl ? fixer.replaceText(node, decl.id.name) : null;
51
+ }
52
+ return null;
53
+ },
54
+ });
55
+ }
56
+ }
57
+ function superClasses(node) {
58
+ var _a;
59
+ if (node == null) {
60
+ return [];
61
+ }
62
+ const result = [];
63
+ let superClass = node.superClass;
64
+ while (superClass != null) {
65
+ if (superClass.type === 'Identifier') {
66
+ const className = superClass.name;
67
+ const decl = classDeclarations.get(className);
68
+ result.push(decl);
69
+ superClass = (_a = classDeclarations.get(className)) === null || _a === void 0 ? void 0 : _a.superClass;
70
+ }
71
+ }
72
+ return result;
73
+ }
74
+ function enterClass(node) {
75
+ classDeclarations.set(node.id.name, node);
76
+ }
77
+ function findClassDeclaration(node) {
78
+ let parent = node.parent;
79
+ while (parent != null) {
80
+ if (parent.type === 'ClassDeclaration') {
81
+ return parent;
82
+ }
83
+ parent = parent.parent;
84
+ }
85
+ return null;
86
+ }
87
+ function findMemberName(node) {
88
+ let parent = node.parent;
89
+ while (parent != null) {
90
+ if (parent.type == 'MemberExpression'
91
+ && parent.property.type === 'Identifier') {
92
+ return parent.property.name;
93
+ }
94
+ if (parent.type === 'CallExpression'
95
+ && parent.callee.type === 'MemberExpression'
96
+ && parent.callee.property.type === 'Identifier') {
97
+ return parent.callee.property.name;
98
+ }
99
+ parent = parent.parent;
100
+ }
101
+ return null;
102
+ }
103
+ const hasStaticMemberCalled = (name) => (decl) => {
104
+ return decl.body.body.some((node) => {
105
+ return (node.type === 'MethodDefinition' || node.type === 'PropertyDefinition')
106
+ && node.static && node.key.type === 'Identifier'
107
+ && node.key.name === name;
108
+ });
109
+ };
110
+ return {
111
+ 'FunctionDeclaration': enterFunction,
112
+ 'FunctionExpression': enterFunction,
113
+ 'FunctionDeclaration:exit': exitFunction,
114
+ 'FunctionExpression:exit': exitFunction,
115
+ 'ThisExpression': reportIfStatic,
116
+ 'Super': reportIfStatic,
117
+ 'ClassDeclaration': enterClass,
118
+ };
119
+ }
120
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm8tdGhpcy1pbi1zdGF0aWMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcnVsZXMvbm8tdGhpcy1pbi1zdGF0aWMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7OztHQUtHOzs7QUFVSCx3QkF1SUM7QUEzSVksUUFBQSxJQUFJLEdBQUc7SUFDbEIsT0FBTyxFQUFFLElBQUk7Q0FDZCxDQUFDO0FBRUYsU0FBZ0IsTUFBTSxDQUFDLE9BQXlCO0lBQzlDLE1BQU0sVUFBVSxHQUFHLE9BQU8sQ0FBQyxVQUFVLENBQUM7SUFDdEMsTUFBTSxtQkFBbUIsR0FBYyxFQUFFLENBQUM7SUFDMUMsTUFBTSxpQkFBaUIsR0FBa0MsSUFBSSxHQUFHLEVBQUUsQ0FBQztJQUVuRSxTQUFTLGNBQWMsQ0FBQyxJQUFTO1FBQy9CLE9BQU8sQ0FDTCxJQUFJLENBQUMsSUFBSSxLQUFLLG9CQUFvQjtZQUNsQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksS0FBSyxrQkFBa0I7WUFDdkMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEtBQUssSUFBSSxDQUM1QixDQUFDO0lBQ0osQ0FBQztJQUVELFNBQVMsYUFBYSxDQUFDLElBQXNFO1FBQzNGLG1CQUFtQixDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUNqRCxDQUFDO0lBRUQsU0FBUyxZQUFZO1FBQ25CLG1CQUFtQixDQUFDLEdBQUcsRUFBRSxDQUFDO0lBQzVCLENBQUM7SUFFRCxTQUFTLGNBQWMsQ0FBQyxJQUFvRDs7UUFDMUUsTUFBTSxxQkFBcUIsR0FBRyxtQkFBbUIsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxJQUFJLG1CQUFtQixDQUFDLG1CQUFtQixDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztRQUVwSCxJQUFJLHFCQUFxQixFQUFFLENBQUM7WUFDMUIsT0FBTyxDQUFDLE1BQU0sQ0FBQztnQkFDYixJQUFJO2dCQUNKLEdBQUcsRUFBRSxN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QkFBcUIsRUFBRSxhQUFhO1FBQ3BDLG9CQUFvQixFQUFFLGFBQWE7UUFDbkMsMEJBQTBCLEVBQUUsWUFBWTtRQUN4Qyx5QkFBeUIsRUFBRSxZQUFZO1FBQ3ZDLGdCQUFnQixFQUFFLGNBQWM7UUFDaEMsT0FBTyxFQUFFLGNBQWM7UUFDdkIsa0JBQWtCLEVBQUUsVUFBVTtLQUMvQixDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQWRhcHRlZCBmcm9tIGh0dHBzOi8vZ2l0aHViLmNvbS9teXN0aWNhdGVhL2VzbGludC1wbHVnaW4vYmxvYi92MTMuMC4wL3Rlc3RzL2xpYi9ydWxlcy9uby10aGlzLWluLXN0YXRpYy5qc1xuICogQGF1dGhvciBUb3J1IE5hZ2FzaGltYVxuICogQGNvcHlyaWdodCAyMDE2IFRvcnUgTmFnYXNoaW1hLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogTUlUIExpY2Vuc2VcbiAqL1xuXG5pbXBvcnQgeyBSdWxlIH0gZnJvbSAnZXNsaW50JztcbmltcG9ydCB0eXBlIHsgQ2xhc3NEZWNsYXJhdGlvbiwgRnVuY3Rpb25EZWNsYXJhdGlvbiwgRnVuY3Rpb25FeHByZXNzaW9uLCBTdXBlciwgVGhpc0V4cHJlc3Npb24gfSBmcm9tICdlc3RyZWUnO1xuaW1wb3J0IE5vZGVQYXJlbnRFeHRlbnNpb24gPSBSdWxlLk5vZGVQYXJlbnRFeHRlbnNpb247XG5cbmV4cG9ydCBjb25zdCBtZXRhID0ge1xuICBmaXhhYmxlOiB0cnVlLFxufTtcblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZShjb250ZXh0OiBSdWxlLlJ1bGVDb250ZXh0KTogUnVsZS5Ob2RlTGlzdGVuZXIge1xuICBjb25zdCBzb3VyY2VDb2RlID0gY29udGV4dC5zb3VyY2VDb2RlO1xuICBjb25zdCBzdGF0aWNGdW5jdGlvblN0YWNrOiBib29sZWFuW10gPSBbXTtcbiAgY29uc3QgY2xhc3NEZWNsYXJhdGlvbnM6IE1hcDxzdHJpbmcsIENsYXNzRGVjbGFyYXRpb24+ID0gbmV3IE1hcCgpO1xuXG4gIGZ1bmN0aW9uIGlzU3RhdGljTWV0aG9kKG5vZGU6IGFueSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAoXG4gICAgICBub2RlLnR5cGUgPT09ICdGdW5jdGlvbkV4cHJlc3Npb24nICYmXG4gICAgICBub2RlLnBhcmVudC50eXBlID09PSAnTWV0aG9kRGVmaW5pdGlvbicgJiZcbiAgICAgIG5vZGUucGFyZW50LnN0YXRpYyA9PT0gdHJ1ZVxuICAgICk7XG4gIH1cblxuICBmdW5jdGlvbiBlbnRlckZ1bmN0aW9uKG5vZGU6IChGdW5jdGlvbkRlY2xhcmF0aW9uIHwgRnVuY3Rpb25FeHByZXNzaW9uKSAmIE5vZGVQYXJlbnRFeHRlbnNpb24pIHtcbiAgICBzdGF0aWNGdW5jdGlvblN0YWNrLnB1c2goaXNTdGF0aWNNZXRob2Qobm9kZSkpO1xuICB9XG5cbiAgZnVuY3Rpb24gZXhpdEZ1bmN0aW9uKCkge1xuICAgIHN0YXRpY0Z1bmN0aW9uU3RhY2sucG9wKCk7XG4gIH1cblxuICBmdW5jdGlvbiByZXBvcnRJZlN0YXRpYyhub2RlOiAoVGhpc0V4cHJlc3Npb24gfCBTdXBlcikgJiBOb2RlUGFyZW50RXh0ZW5zaW9uKSB7XG4gICAgY29uc3QgY3VycmVudE1ldGhvZElzU3RhdGljID0gc3RhdGljRnVuY3Rpb25TdGFjay5sZW5ndGggPiAwICYmIHN0YXRpY0Z1bmN0aW9uU3RhY2tbc3RhdGljRnVuY3Rpb25TdGFjay5sZW5ndGggLSAxXTtcblxuICAgIGlmIChjdXJyZW50TWV0aG9kSXNTdGF0aWMpIHtcbiAgICAgIGNvbnRleHQucmVwb3J0KHtcbiAgICAgICAgbm9kZSxcbiAgICAgICAgbG9jOiBub2RlLmxvYyA/PyB7IGxpbmU6IDAsIGNvbHVtbjogMCB9LFxuICAgICAgICBtZXNzYWdlOiBcIid7e3R5cGV9fScga2V5d29yZCBmb3VuZCBpbiBhIHN0YXRpYyBtZXRob2QuIFJlcGxhY2UgaXQgd2l0aCB0aGUgY2xhc3MgbmFtZS5cIixcbiAgICAgICAgZGF0YTogeyB0eXBlOiBzb3VyY2VDb2RlLmdldFRleHQobm9kZSkgfSxcbiAgICAgICAgZml4KGZpeGVyOiBSdWxlLlJ1bGVGaXhlcikge1xuICAgICAgICAgIGlmIChub2RlLnR5cGUgPT09ICdTdXBlcicpIHtcbiAgICAgICAgICAgIGNvbnN0IGhpZXJhcmNoeSA9IHN1cGVyQ2xhc3NlcyhmaW5kQ2xhc3NEZWNsYXJhdGlvbihub2RlKSk7XG4gICAgICAgICAgICBjb25zdCBtZW1iZXJOYW1lID0gZmluZE1lbWJlck5hbWUobm9kZSk7XG5cbiAgICAgICAgICAgIGlmIChtZW1iZXJOYW1lID09IG51bGwpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGNvbnN0IHN1cGVyRGVjbCA9IGhpZXJhcmNoeS5maW5kKGhhc1N0YXRpY01lbWJlckNhbGxlZChtZW1iZXJOYW1lKSk7XG4gICAgICAgICAgICByZXR1cm4gc3VwZXJEZWNsID8gZml4ZXIucmVwbGFjZVRleHQobm9kZSwgc3VwZXJEZWNsLmlkLm5hbWUpIDogbnVsbDtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAobm9kZS50eXBlID09PSAnVGhpc0V4cHJlc3Npb24nKSB7XG4gICAgICAgICAgICBjb25zdCBkZWNsID0gZmluZENsYXNzRGVjbGFyYXRpb24obm9kZSk7XG4gICAgICAgICAgICByZXR1cm4gZGVjbCA/IGZpeGVyLnJlcGxhY2VUZXh0KG5vZGUsIGRlY2wuaWQubmFtZSkgOiBudWxsO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9LFxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgZnVuY3Rpb24gc3VwZXJDbGFzc2VzKG5vZGU6IENsYXNzRGVjbGFyYXRpb24gfCBudWxsKTogQ2xhc3NEZWNsYXJhdGlvbltdIHtcbiAgICBpZiAobm9kZSA9PSBudWxsKSB7XG4gICAgICByZXR1cm4gW107XG4gICAgfVxuXG4gICAgY29uc3QgcmVzdWx0OiBDbGFzc0RlY2xhcmF0aW9uW10gPSBbXTtcblxuICAgIGxldCBzdXBlckNsYXNzID0gbm9kZS5zdXBlckNsYXNzO1xuXG4gICAgd2hpbGUgKHN1cGVyQ2xhc3MgIT0gbnVsbCkge1xuICAgICAgaWYgKHN1cGVyQ2xhc3MudHlwZSA9PT0gJ0lkZW50aWZpZXInKSB7XG4gICAgICAgIGNvbnN0IGNsYXNzTmFtZSA9IHN1cGVyQ2xhc3MubmFtZTtcbiAgICAgICAgY29uc3QgZGVjbCA9IGNsYXNzRGVjbGFyYXRpb25zLmdldChjbGFzc05hbWUpITtcbiAgICAgICAgcmVzdWx0LnB1c2goZGVjbCk7XG4gICAgICAgIHN1cGVyQ2xhc3MgPSBjbGFzc0RlY2xhcmF0aW9ucy5nZXQoY2xhc3NOYW1lKT8uc3VwZXJDbGFzcztcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgZnVuY3Rpb24gZW50ZXJDbGFzcyhub2RlOiBDbGFzc0RlY2xhcmF0aW9uICYgTm9kZVBhcmVudEV4dGVuc2lvbikge1xuICAgIGNsYXNzRGVjbGFyYXRpb25zLnNldChub2RlLmlkLm5hbWUsIG5vZGUpO1xuICB9XG5cbiAgZnVuY3Rpb24gZmluZENsYXNzRGVjbGFyYXRpb24obm9kZTogTm9kZVBhcmVudEV4dGVuc2lvbik6IENsYXNzRGVjbGFyYXRpb24gfCBudWxsIHtcbiAgICBsZXQgcGFyZW50ID0gbm9kZS5wYXJlbnQ7XG5cbiAgICB3aGlsZSAocGFyZW50ICE9IG51bGwpIHtcbiAgICAgIGlmIChwYXJlbnQudHlwZSA9PT0gJ0NsYXNzRGVjbGFyYXRpb24nKSB7XG4gICAgICAgIHJldHVybiBwYXJlbnQ7XG4gICAgICB9XG5cbiAgICAgIHBhcmVudCA9IHBhcmVudC5wYXJlbnQ7XG4gICAgfVxuXG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBmdW5jdGlvbiBmaW5kTWVtYmVyTmFtZShub2RlOiBOb2RlUGFyZW50RXh0ZW5zaW9uKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgbGV0IHBhcmVudCA9IG5vZGUucGFyZW50O1xuXG4gICAgd2hpbGUgKHBhcmVudCAhPSBudWxsKSB7XG4gICAgICBpZiAoXG4gICAgICAgIHBhcmVudC50eXBlID09ICdNZW1iZXJFeHByZXNzaW9uJ1xuICAgICAgICAmJiBwYXJlbnQucHJvcGVydHkudHlwZSA9PT0gJ0lkZW50aWZpZXInXG4gICAgICApIHtcbiAgICAgICAgcmV0dXJuIHBhcmVudC5wcm9wZXJ0eS5uYW1lO1xuICAgICAgfVxuXG4gICAgICBpZiAoXG4gICAgICAgIHBhcmVudC50eXBlID09PSAnQ2FsbEV4cHJlc3Npb24nXG4gICAgICAgICYmIHBhcmVudC5jYWxsZWUudHlwZSA9PT0gJ01lbWJlckV4cHJlc3Npb24nXG4gICAgICAgICYmIHBhcmVudC5jYWxsZWUucHJvcGVydHkudHlwZSA9PT0gJ0lkZW50aWZpZXInXG4gICAgICApIHtcbiAgICAgICAgcmV0dXJuIHBhcmVudC5jYWxsZWUucHJvcGVydHkubmFtZTtcbiAgICAgIH1cblxuICAgICAgcGFyZW50ID0gcGFyZW50LnBhcmVudDtcbiAgICB9XG5cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIGNvbnN0IGhhc1N0YXRpY01lbWJlckNhbGxlZCA9IChuYW1lOiBzdHJpbmcpID0+IChkZWNsOiBDbGFzc0RlY2xhcmF0aW9uKSA9PiB7XG4gICAgcmV0dXJuIGRlY2wuYm9keS5ib2R5LnNvbWUoKG5vZGUpID0+IHtcbiAgICAgIHJldHVybiAobm9kZS50eXBlID09PSAnTWV0aG9kRGVmaW5pdGlvbicgfHwgbm9kZS50eXBlID09PSAnUHJvcGVydHlEZWZpbml0aW9uJylcbiAgICAgICAgJiYgbm9kZS5zdGF0aWMgJiYgbm9kZS5rZXkudHlwZSA9PT0gJ0lkZW50aWZpZXInXG4gICAgICAgICYmIG5vZGUua2V5Lm5hbWUgPT09IG5hbWU7XG4gICAgfSk7XG4gIH07XG5cbiAgcmV0dXJuIHtcbiAgICAnRnVuY3Rpb25EZWNsYXJhdGlvbic6IGVudGVyRnVuY3Rpb24sXG4gICAgJ0Z1bmN0aW9uRXhwcmVzc2lvbic6IGVudGVyRnVuY3Rpb24sXG4gICAgJ0Z1bmN0aW9uRGVjbGFyYXRpb246ZXhpdCc6IGV4aXRGdW5jdGlvbixcbiAgICAnRnVuY3Rpb25FeHByZXNzaW9uOmV4aXQnOiBleGl0RnVuY3Rpb24sXG4gICAgJ1RoaXNFeHByZXNzaW9uJzogcmVwb3J0SWZTdGF0aWMsXG4gICAgJ1N1cGVyJzogcmVwb3J0SWZTdGF0aWMsXG4gICAgJ0NsYXNzRGVjbGFyYXRpb24nOiBlbnRlckNsYXNzLFxuICB9O1xufVxuIl19
@@ -0,0 +1,5 @@
1
+ import { Rule } from 'eslint';
2
+ export declare const meta: {
3
+ hasSuggestions: boolean;
4
+ };
5
+ export declare function create(context: Rule.RuleContext): Rule.NodeListener;
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.meta = void 0;
4
+ exports.create = create;
5
+ exports.meta = {
6
+ hasSuggestions: true,
7
+ };
8
+ function create(context) {
9
+ return {
10
+ ThrowStatement(node) {
11
+ if (node.argument.type !== 'NewExpression') {
12
+ return;
13
+ }
14
+ const newExpr = node.argument;
15
+ if (newExpr.callee &&
16
+ newExpr.callee.type === 'Identifier' &&
17
+ newExpr.callee.name === 'Error') {
18
+ context.report({
19
+ node: newExpr,
20
+ message: 'Expected a non-default error object to be thrown.',
21
+ suggest: [
22
+ {
23
+ desc: 'Replace with `ValidationError`',
24
+ fix: (fixer) => {
25
+ var _a;
26
+ // no existing args
27
+ if (newExpr.arguments.length === 0) {
28
+ return fixer.replaceText(newExpr, "new ValidationError('<insert error message>', this)");
29
+ }
30
+ const fixes = [
31
+ fixer.replaceText(newExpr.callee, 'ValidationError'),
32
+ ];
33
+ const last = (_a = newExpr.arguments.at(-1)) === null || _a === void 0 ? void 0 : _a.range;
34
+ if (last) {
35
+ fixes.push(fixer.insertTextAfterRange(last, ', this'));
36
+ }
37
+ return fixes;
38
+ },
39
+ },
40
+ ],
41
+ });
42
+ }
43
+ },
44
+ };
45
+ }
46
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm8tdGhyb3ctZGVmYXVsdC1lcnJvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ydWxlcy9uby10aHJvdy1kZWZhdWx0LWVycm9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQU9BLHdCQTRDQztBQWhEWSxRQUFBLElBQUksR0FBRztJQUNsQixjQUFjLEVBQUUsSUFBSTtDQUNyQixDQUFDO0FBRUYsU0FBZ0IsTUFBTSxDQUFDLE9BQXlCO0lBQzlDLE9BQU87UUFDTCxjQUFjLENBQUMsSUFBb0I7WUFDakMsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksS0FBSyxlQUFlLEVBQUUsQ0FBQztnQkFDM0MsT0FBTztZQUNULENBQUM7WUFFRCxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsUUFBeUIsQ0FBQztZQUMvQyxJQUNFLE9BQU8sQ0FBQyxNQUFNO2dCQUNkLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxLQUFLLFlBQVk7Z0JBQ3BDLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxLQUFLLE9BQU8sRUFDL0IsQ0FBQztnQkFDRCxPQUFPLENBQUMsTUFBTSxDQUFDO29CQUNiLElBQUksRUFBRSxPQUFPO29CQUNiLE9BQU8sRUFBRSxtREFBbUQ7b0JBQzVELE9BQU8sRUFBRTt3QkFDUDs0QkFDRSxJQUFJLEVBQUUsZ0NBQWdDOzRCQUN0QyxHQUFHLEVBQUUsQ0FBQyxLQUFxQixFQUFFLEVBQUU7O2dDQUM3QixtQkFBbUI7Z0NBQ25CLElBQUksT0FBTyxDQUFDLFNBQVMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7b0NBQ25DLE9BQU8sS0FBSyxDQUFDLFdBQVcsQ0FBQyxPQUFPLEVBQUUscURBQXFELENBQUMsQ0FBQztnQ0FDM0YsQ0FBQztnQ0FFRCxNQUFNLEtBQUssR0FBRztvQ0FDWixLQUFLLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsaUJBQWlCLENBQUM7aUNBQ3JELENBQUM7Z0NBRUYsTUFBTSxJQUFJLEdBQUcsTUFBQSxPQUFPLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQywwQ0FBRSxLQUFLLENBQUM7Z0NBQzdDLElBQUksSUFBSSxFQUFFLENBQUM7b0NBQ1QsS0FBSyxDQUFDLElBQUksQ0FDUixLQUFLLENBQUMsb0JBQW9CLENBQUMsSUFBSSxFQUFFLFFBQVEsQ0FBQyxDQUMzQyxDQUFDO2dDQUNKLENBQUM7Z0NBRUQsT0FBTyxLQUFLLENBQUM7NEJBQ2YsQ0FBQzt5QkFDRjtxQkFDRjtpQkFDRixDQUFDLENBQUM7WUFDTCxDQUFDO1FBQ0gsQ0FBQztLQUNGLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUnVsZSB9IGZyb20gJ2VzbGludCc7XG5pbXBvcnQgdHlwZSB7IE5ld0V4cHJlc3Npb24sIFRocm93U3RhdGVtZW50IH0gZnJvbSAnZXN0cmVlJztcblxuZXhwb3J0IGNvbnN0IG1ldGEgPSB7XG4gIGhhc1N1Z2dlc3Rpb25zOiB0cnVlLFxufTtcblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZShjb250ZXh0OiBSdWxlLlJ1bGVDb250ZXh0KTogUnVsZS5Ob2RlTGlzdGVuZXIge1xuICByZXR1cm4ge1xuICAgIFRocm93U3RhdGVtZW50KG5vZGU6IFRocm93U3RhdGVtZW50KSB7XG4gICAgICBpZiAobm9kZS5hcmd1bWVudC50eXBlICE9PSAnTmV3RXhwcmVzc2lvbicpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBuZXdFeHByID0gbm9kZS5hcmd1bWVudCBhcyBOZXdFeHByZXNzaW9uO1xuICAgICAgaWYgKFxuICAgICAgICBuZXdFeHByLmNhbGxlZSAmJlxuICAgICAgICBuZXdFeHByLmNhbGxlZS50eXBlID09PSAnSWRlbnRpZmllcicgJiZcbiAgICAgICAgbmV3RXhwci5jYWxsZWUubmFtZSA9PT0gJ0Vycm9yJ1xuICAgICAgKSB7XG4gICAgICAgIGNvbnRleHQucmVwb3J0KHtcbiAgICAgICAgICBub2RlOiBuZXdFeHByLFxuICAgICAgICAgIG1lc3NhZ2U6ICdFeHBlY3RlZCBhIG5vbi1kZWZhdWx0IGVycm9yIG9iamVjdCB0byBiZSB0aHJvd24uJyxcbiAgICAgICAgICBzdWdnZXN0OiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIGRlc2M6ICdSZXBsYWNlIHdpdGggYFZhbGlkYXRpb25FcnJvcmAnLFxuICAgICAgICAgICAgICBmaXg6IChmaXhlcjogUnVsZS5SdWxlRml4ZXIpID0+IHtcbiAgICAgICAgICAgICAgICAvLyBubyBleGlzdGluZyBhcmdzXG4gICAgICAgICAgICAgICAgaWYgKG5ld0V4cHIuYXJndW1lbnRzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgICAgICAgcmV0dXJuIGZpeGVyLnJlcGxhY2VUZXh0KG5ld0V4cHIsIFwibmV3IFZhbGlkYXRpb25FcnJvcignPGluc2VydCBlcnJvciBtZXNzYWdlPicsIHRoaXMpXCIpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGNvbnN0IGZpeGVzID0gW1xuICAgICAgICAgICAgICAgICAgZml4ZXIucmVwbGFjZVRleHQobmV3RXhwci5jYWxsZWUsICdWYWxpZGF0aW9uRXJyb3InKSxcbiAgICAgICAgICAgICAgICBdO1xuXG4gICAgICAgICAgICAgICAgY29uc3QgbGFzdCA9IG5ld0V4cHIuYXJndW1lbnRzLmF0KC0xKT8ucmFuZ2U7XG4gICAgICAgICAgICAgICAgaWYgKGxhc3QpIHtcbiAgICAgICAgICAgICAgICAgIGZpeGVzLnB1c2goXG4gICAgICAgICAgICAgICAgICAgIGZpeGVyLmluc2VydFRleHRBZnRlclJhbmdlKGxhc3QsICcsIHRoaXMnKSxcbiAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgcmV0dXJuIGZpeGVzO1xuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICBdLFxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9LFxuICB9O1xufVxuIl19
package/package.json CHANGED
@@ -34,25 +34,26 @@
34
34
  "organization": true
35
35
  },
36
36
  "devDependencies": {
37
+ "@stylistic/eslint-plugin": "^2",
37
38
  "@types/eslint": "^8",
38
39
  "@types/estree": "^1.0.6",
39
40
  "@types/fs-extra": "^11.0.4",
40
- "@types/jest": "^29.5.13",
41
+ "@types/jest": "^29.5.14",
41
42
  "@types/node": "^18",
42
- "@typescript-eslint/eslint-plugin": "^7",
43
- "@typescript-eslint/parser": "^7",
44
- "cdklabs-projen-project-types": "^0.1.205",
43
+ "@typescript-eslint/eslint-plugin": "^8",
44
+ "@typescript-eslint/parser": "^8",
45
+ "cdklabs-projen-project-types": "^0.1.211",
45
46
  "commit-and-tag-version": "^12",
46
47
  "constructs": "^10.0.0",
47
48
  "eslint": "^8",
48
- "eslint-import-resolver-typescript": "^3.6.3",
49
+ "eslint-import-resolver-typescript": "^3.7.0",
49
50
  "eslint-plugin-import": "^2.31.0",
50
51
  "jest": "^29.7.0",
51
52
  "jest-junit": "^15",
52
- "projen": "^0.88.0",
53
+ "projen": "^0.90.5",
53
54
  "ts-jest": "^29.2.5",
54
55
  "ts-node": "^10.9.2",
55
- "typescript": "^5.6.2"
56
+ "typescript": "^5.7.2"
56
57
  },
57
58
  "peerDependencies": {
58
59
  "@typescript-eslint/parser": "^7.18.0",
@@ -69,7 +70,7 @@
69
70
  "publishConfig": {
70
71
  "access": "public"
71
72
  },
72
- "version": "1.0.0",
73
+ "version": "1.2.0",
73
74
  "jest": {
74
75
  "coverageProvider": "v8",
75
76
  "testMatch": [