@darraghor/eslint-plugin-nestjs-typed 3.12.1 → 3.14.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.
package/README.md CHANGED
@@ -1,3 +1,9 @@
1
+ ![commit](https://badgen.net/github/last-commit/darraghoriordan/eslint-plugin-nestjs-typed/main)
2
+ ![npm](https://img.shields.io/npm/v/@darraghor/eslint-plugin-nestjs-typed.svg?color=red)
3
+ ![npm-tag](https://badgen.net/github/tag/darraghoriordan/eslint-plugin-nestjs-typed)
4
+ ![size](https://badgen.net/bundlephobia/minzip/@darraghor/eslint-plugin-nestjs-typed?color=cyan)
5
+ ![types](https://badgen.net/npm/types/@darraghor/eslint-plugin-nestjs-typed?color=blue)
6
+
1
7
  ## A note on versions
2
8
 
3
9
  Version 2.x supports Eslint version <=7.x and typescript eslint parser 4
@@ -6,7 +12,7 @@ Version 3.x supports Eslint version >=8.x and typescript eslint parser 5+
6
12
 
7
13
  There were many breaking changes between these versions.
8
14
 
9
- typescript eslint parser supports a range of typescript versions but there can be a delay in supporting the latest versions.
15
+ typescript eslint parser supports a range of typescript versions but there can be a delay in supporting the latest versions.
10
16
 
11
17
  This plugin only supports typescript up to the version typescript eslint parser supports. See https://github.com/typescript-eslint/typescript-eslint#supported-typescript-version for the versions.
12
18
 
@@ -14,4 +14,4 @@ ExampleController = __decorate([
14
14
  (0, Controller_stub_1.Controller)()
15
15
  ], ExampleController);
16
16
  exports.ExampleController = ExampleController;
17
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhhbXBsZS5jb250cm9sbGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2ZpeHR1cmVzL2V4YW1wbGUuY29udHJvbGxlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBQSx1REFBNkM7QUFHN0MsSUFBYSxpQkFBaUIsR0FBOUIsTUFBYSxpQkFBaUI7Q0FBRyxDQUFBO0FBQXBCLGlCQUFpQjtJQUQ3QixJQUFBLDRCQUFVLEdBQUU7R0FDQSxpQkFBaUIsQ0FBRztBQUFwQiw4Q0FBaUIifQ==
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhhbXBsZS5jb250cm9sbGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2ZpeHR1cmVzL2V4YW1wbGUuY29udHJvbGxlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBQSx1REFBNkM7QUFHdEMsSUFBTSxpQkFBaUIsR0FBdkIsTUFBTSxpQkFBaUI7Q0FBRyxDQUFBO0FBQXBCLGlCQUFpQjtJQUQ3QixJQUFBLDRCQUFVLEdBQUU7R0FDQSxpQkFBaUIsQ0FBRztBQUFwQiw4Q0FBaUIifQ==
@@ -24,4 +24,4 @@ ExampleModule = __decorate([
24
24
  })
25
25
  ], ExampleModule);
26
26
  exports.ExampleModule = ExampleModule;
27
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhhbXBsZS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZml4dHVyZXMvZXhhbXBsZS5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBQUEsK0NBQXFDO0FBQ3JDLDBFQUFpRTtBQUNqRSw2REFBdUQ7QUFDdkQscUVBQXlEO0FBT3pELElBQWEsYUFBYSxHQUExQixNQUFhLGFBQWE7Q0FBRyxDQUFBO0FBQWhCLGFBQWE7SUFMekIsSUFBQSxvQkFBTSxFQUFDO1FBQ0osT0FBTyxFQUFFLEVBQUU7UUFDWCxXQUFXLEVBQUUsQ0FBQyxzQ0FBaUIsQ0FBQztRQUNoQyxTQUFTLEVBQUUsQ0FBQywwQkFBK0IsRUFBRSx3Q0FBZSxDQUFDO0tBQ2hFLENBQUM7R0FDVyxhQUFhLENBQUc7QUFBaEIsc0NBQWEifQ==
27
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhhbXBsZS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZml4dHVyZXMvZXhhbXBsZS5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBQUEsK0NBQXFDO0FBQ3JDLDBFQUFpRTtBQUNqRSw2REFBdUQ7QUFDdkQscUVBQXlEO0FBT2xELElBQU0sYUFBYSxHQUFuQixNQUFNLGFBQWE7Q0FBRyxDQUFBO0FBQWhCLGFBQWE7SUFMekIsSUFBQSxvQkFBTSxFQUFDO1FBQ0osT0FBTyxFQUFFLEVBQUU7UUFDWCxXQUFXLEVBQUUsQ0FBQyxzQ0FBaUIsQ0FBQztRQUNoQyxTQUFTLEVBQUUsQ0FBQywwQkFBK0IsRUFBRSx3Q0FBZSxDQUFDO0tBQ2hFLENBQUM7R0FDVyxhQUFhLENBQUc7QUFBaEIsc0NBQWEifQ==
@@ -22,4 +22,4 @@ ProviderArrayModule = __decorate([
22
22
  })
23
23
  ], ProviderArrayModule);
24
24
  exports.ProviderArrayModule = ProviderArrayModule;
25
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmlkZXJBcnJheS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZml4dHVyZXMvcHJvdmlkZXJBcnJheS5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBQUEsK0NBQXFDO0FBQ3JDLDBFQUFpRTtBQUVqRSxNQUFNLFNBQVMsR0FBRyxDQUFDLDBCQUErQixDQUFDLENBQUM7QUFNcEQsSUFBYSxtQkFBbUIsR0FBaEMsTUFBYSxtQkFBbUI7Q0FBRyxDQUFBO0FBQXRCLG1CQUFtQjtJQUovQixJQUFBLG9CQUFNLEVBQUM7UUFDSixPQUFPLEVBQUUsRUFBRTtRQUNYLFNBQVMsRUFBRSxTQUFTO0tBQ3ZCLENBQUM7R0FDVyxtQkFBbUIsQ0FBRztBQUF0QixrREFBbUIifQ==
25
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmlkZXJBcnJheS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZml4dHVyZXMvcHJvdmlkZXJBcnJheS5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBQUEsK0NBQXFDO0FBQ3JDLDBFQUFpRTtBQUVqRSxNQUFNLFNBQVMsR0FBRyxDQUFDLDBCQUErQixDQUFDLENBQUM7QUFNN0MsSUFBTSxtQkFBbUIsR0FBekIsTUFBTSxtQkFBbUI7Q0FBRyxDQUFBO0FBQXRCLG1CQUFtQjtJQUovQixJQUFBLG9CQUFNLEVBQUM7UUFDSixPQUFPLEVBQUUsRUFBRTtRQUNYLFNBQVMsRUFBRSxTQUFTO0tBQ3ZCLENBQUM7R0FDVyxtQkFBbUIsQ0FBRztBQUF0QixrREFBbUIifQ==
@@ -1,4 +1,4 @@
1
- import { TSESTree, TSESLint } from "@typescript-eslint/utils";
1
+ import { TSESLint, TSESTree } from "@typescript-eslint/utils";
2
2
  declare const rule: TSESLint.RuleModule<"missing-property-decorator", never[], {
3
3
  ClassDeclaration(node: TSESTree.ClassDeclaration): void;
4
4
  }>;
@@ -2,8 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const utils_1 = require("@typescript-eslint/utils");
4
4
  const createRule_1 = require("../../utils/createRule");
5
- const classValidatorDecorators_1 = require("../../utils/classValidatorDecorators");
6
- const CLASS_VALIDATOR_DECORATOR_NAMES = new Set(classValidatorDecorators_1.classValidatorDecorators);
5
+ const typedTokenHelpers_1 = require("../../utils/typedTokenHelpers");
7
6
  const rule = (0, createRule_1.createRule)({
8
7
  name: "all-properties-are-whitelisted",
9
8
  meta: {
@@ -25,6 +24,7 @@ const rule = (0, createRule_1.createRule)({
25
24
  // eslint-disable-next-line @typescript-eslint/naming-convention
26
25
  ClassDeclaration(node) {
27
26
  var _a;
27
+ const program = typedTokenHelpers_1.typedTokenHelpers.getRootProgram(node);
28
28
  const withDecorator = [];
29
29
  const withoutDecorator = [];
30
30
  for (const element of node.body.body) {
@@ -35,7 +35,7 @@ const rule = (0, createRule_1.createRule)({
35
35
  utils_1.AST_NODE_TYPES.CallExpression &&
36
36
  decorator.expression.callee.type ===
37
37
  utils_1.AST_NODE_TYPES.Identifier &&
38
- CLASS_VALIDATOR_DECORATOR_NAMES.has(decorator.expression.callee.name));
38
+ typedTokenHelpers_1.typedTokenHelpers.decoratorIsClassValidatorDecorator(program, decorator));
39
39
  if (hasDecorator) {
40
40
  withDecorator.push(element);
41
41
  }
@@ -56,4 +56,4 @@ const rule = (0, createRule_1.createRule)({
56
56
  },
57
57
  });
58
58
  exports.default = rule;
59
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWxsUHJvcGVydGllc0FyZVdoaXRlbGlzdGVkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3J1bGVzL2FsbFByb3BlcnRpZXNBcmVXaGl0ZWxpc3RlZC9hbGxQcm9wZXJ0aWVzQXJlV2hpdGVsaXN0ZWQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxvREFBNEU7QUFDNUUsdURBQWtEO0FBQ2xELG1GQUE4RTtBQUU5RSxNQUFNLCtCQUErQixHQUFHLElBQUksR0FBRyxDQUFDLG1EQUF3QixDQUFDLENBQUM7QUFFMUUsTUFBTSxJQUFJLEdBQUcsSUFBQSx1QkFBVSxFQUFDO0lBQ3BCLElBQUksRUFBRSxnQ0FBZ0M7SUFDdEMsSUFBSSxFQUFFO1FBQ0YsSUFBSSxFQUFFO1lBQ0YsV0FBVyxFQUFFLHdDQUF3QztZQUNyRCxXQUFXLEVBQUUsT0FBTztZQUNwQixvQkFBb0IsRUFBRSxLQUFLO1NBQzlCO1FBQ0QsUUFBUSxFQUFFO1lBQ04sZ0VBQWdFO1lBQ2hFLDRCQUE0QixFQUN4Qix5RkFBeUY7U0FDaEc7UUFDRCxJQUFJLEVBQUUsU0FBUztRQUNmLE1BQU0sRUFBRSxFQUFFO0tBQ2I7SUFDRCxjQUFjLEVBQUUsRUFBRTtJQUNsQixNQUFNLEVBQUUsVUFDSixPQUVDO1FBRUQsT0FBTztZQUNILGdFQUFnRTtZQUNoRSxnQkFBZ0IsQ0FBQyxJQUFJOztnQkFDakIsTUFBTSxhQUFhLEdBQWtDLEVBQUUsQ0FBQztnQkFDeEQsTUFBTSxnQkFBZ0IsR0FBa0MsRUFBRSxDQUFDO2dCQUMzRCxLQUFLLE1BQU0sT0FBTyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFO29CQUNsQyxJQUFJLE9BQU8sQ0FBQyxJQUFJLEtBQUssc0JBQWMsQ0FBQyxrQkFBa0IsRUFBRTt3QkFDcEQsU0FBUztxQkFDWjtvQkFDRCxNQUFNLFlBQVksR0FBRyxNQUFBLE9BQU8sQ0FBQyxVQUFVLDBDQUFFLElBQUksQ0FDekMsQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUNWLFNBQVMsQ0FBQyxVQUFVLENBQUMsSUFBSTt3QkFDckIsc0JBQWMsQ0FBQyxjQUFjO3dCQUNqQyxTQUFTLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxJQUFJOzRCQUM1QixzQkFBYyxDQUFDLFVBQVU7d0JBQzdCLCtCQUErQixDQUFDLEdBQUcsQ0FDL0IsU0FBUyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUNuQyxDQUNSLENBQUM7b0JBQ0YsSUFBSSxZQUFZLEVBQUU7d0JBQ2QsYUFBYSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztxQkFDL0I7eUJBQU07d0JBQ0gsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO3FCQUNsQztpQkFDSjtnQkFDRCxJQUFJLGFBQWEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxJQUFJLGdCQUFnQixDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7b0JBQ3pELEtBQUssTUFBTSxPQUFPLElBQUksZ0JBQWdCLEVBQUU7d0JBQ3BDLE9BQU8sQ0FBQyxNQUFNLENBQUM7NEJBQ1gsSUFBSSxFQUFFLE9BQU87NEJBQ2IsU0FBUyxFQUFFLDRCQUE0Qjt5QkFDMUMsQ0FBQyxDQUFDO3FCQUNOO2lCQUNKO1lBQ0wsQ0FBQztTQUNKLENBQUM7SUFDTixDQUFDO0NBQ0osQ0FBQyxDQUFDO0FBRUgsa0JBQWUsSUFBSSxDQUFDIn0=
59
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWxsUHJvcGVydGllc0FyZVdoaXRlbGlzdGVkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3J1bGVzL2FsbFByb3BlcnRpZXNBcmVXaGl0ZWxpc3RlZC9hbGxQcm9wZXJ0aWVzQXJlV2hpdGVsaXN0ZWQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxvREFBNEU7QUFDNUUsdURBQWtEO0FBQ2xELHFFQUFnRTtBQUVoRSxNQUFNLElBQUksR0FBRyxJQUFBLHVCQUFVLEVBQUM7SUFDcEIsSUFBSSxFQUFFLGdDQUFnQztJQUN0QyxJQUFJLEVBQUU7UUFDRixJQUFJLEVBQUU7WUFDRixXQUFXLEVBQUUsd0NBQXdDO1lBQ3JELFdBQVcsRUFBRSxPQUFPO1lBQ3BCLG9CQUFvQixFQUFFLEtBQUs7U0FDOUI7UUFDRCxRQUFRLEVBQUU7WUFDTixnRUFBZ0U7WUFDaEUsNEJBQTRCLEVBQ3hCLHlGQUF5RjtTQUNoRztRQUNELElBQUksRUFBRSxTQUFTO1FBQ2YsTUFBTSxFQUFFLEVBQUU7S0FDYjtJQUNELGNBQWMsRUFBRSxFQUFFO0lBQ2xCLE1BQU0sRUFBRSxVQUNKLE9BRUM7UUFFRCxPQUFPO1lBQ0gsZ0VBQWdFO1lBQ2hFLGdCQUFnQixDQUFDLElBQUk7O2dCQUNqQixNQUFNLE9BQU8sR0FBRyxxQ0FBaUIsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQ3ZELE1BQU0sYUFBYSxHQUFrQyxFQUFFLENBQUM7Z0JBQ3hELE1BQU0sZ0JBQWdCLEdBQWtDLEVBQUUsQ0FBQztnQkFDM0QsS0FBSyxNQUFNLE9BQU8sSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRTtvQkFDbEMsSUFBSSxPQUFPLENBQUMsSUFBSSxLQUFLLHNCQUFjLENBQUMsa0JBQWtCLEVBQUU7d0JBQ3BELFNBQVM7cUJBQ1o7b0JBQ0QsTUFBTSxZQUFZLEdBQUcsTUFBQSxPQUFPLENBQUMsVUFBVSwwQ0FBRSxJQUFJLENBQ3pDLENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FDVixTQUFTLENBQUMsVUFBVSxDQUFDLElBQUk7d0JBQ3JCLHNCQUFjLENBQUMsY0FBYzt3QkFDakMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsSUFBSTs0QkFDNUIsc0JBQWMsQ0FBQyxVQUFVO3dCQUM3QixxQ0FBaUIsQ0FBQyxrQ0FBa0MsQ0FDaEQsT0FBTyxFQUNQLFNBQVMsQ0FDWixDQUNSLENBQUM7b0JBQ0YsSUFBSSxZQUFZLEVBQUU7d0JBQ2QsYUFBYSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztxQkFDL0I7eUJBQU07d0JBQ0gsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO3FCQUNsQztpQkFDSjtnQkFDRCxJQUFJLGFBQWEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxJQUFJLGdCQUFnQixDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7b0JBQ3pELEtBQUssTUFBTSxPQUFPLElBQUksZ0JBQWdCLEVBQUU7d0JBQ3BDLE9BQU8sQ0FBQyxNQUFNLENBQUM7NEJBQ1gsSUFBSSxFQUFFLE9BQU87NEJBQ2IsU0FBUyxFQUFFLDRCQUE0Qjt5QkFDMUMsQ0FBQyxDQUFDO3FCQUNOO2lCQUNKO1lBQ0wsQ0FBQztTQUNKLENBQUM7SUFDTixDQUFDO0NBQ0osQ0FBQyxDQUFDO0FBRUgsa0JBQWUsSUFBSSxDQUFDIn0=
@@ -5,7 +5,6 @@ exports.shouldTrigger = void 0;
5
5
  const utils_1 = require("@typescript-eslint/utils");
6
6
  const createRule_1 = require("../../utils/createRule");
7
7
  const typedTokenHelpers_1 = require("../../utils/typedTokenHelpers");
8
- const classValidatorDecorators_1 = require("../../utils/classValidatorDecorators");
9
8
  const primitiveTypes = new Set([
10
9
  utils_1.AST_NODE_TYPES.TSStringKeyword,
11
10
  utils_1.AST_NODE_TYPES.TSBooleanKeyword,
@@ -101,7 +100,16 @@ const rule = (0, createRule_1.createRule)({
101
100
  // And for input DTOs they should specify types.
102
101
  // property has a validation decorator but not IsEnum
103
102
  // (we don't care about un-validated properties and enums don't need Type())
104
- const foundClassValidatorDecorators = typedTokenHelpers_1.typedTokenHelpers.getDecoratorsNamed(node, classValidatorDecorators_1.classValidatorDecorators.filter((x) => x !== "IsEnum"));
103
+ const foundClassValidatorDecorators = typedTokenHelpers_1.typedTokenHelpers.getImportedClassValidatorDecorators(node);
104
+ const hasEnum = foundClassValidatorDecorators.some((foundClassValidatorDecorator) => typedTokenHelpers_1.typedTokenHelpers.decoratorIsIsEnum(foundClassValidatorDecorator));
105
+ if (hasEnum) {
106
+ return;
107
+ }
108
+ // const foundClassValidatorDecorators =
109
+ // typedTokenHelpers.getDecoratorsNamed(
110
+ // node,
111
+ // classValidatorDecorators.filter((x) => x !== "IsEnum")
112
+ // );
105
113
  if (foundClassValidatorDecorators.length === 0) {
106
114
  return;
107
115
  }
@@ -122,4 +130,4 @@ const rule = (0, createRule_1.createRule)({
122
130
  },
123
131
  });
124
132
  exports.default = rule;
125
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGVOb25QcmltaXRpdmVOZWVkc0RlY29yYXRvcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcnVsZXMvdmFsaWRhdGUtbm9uLXByaW1pdHZlcy1uZWVkcy10eXBlLWRlY29yYXRvci92YWxpZGF0ZU5vblByaW1pdGl2ZU5lZWRzRGVjb3JhdG9ycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxrREFBa0Q7QUFDbEQsb0RBS2tDO0FBQ2xDLHVEQUFrRDtBQUNsRCxxRUFBZ0U7QUFDaEUsbUZBQThFO0FBRTlFLE1BQU0sY0FBYyxHQUFHLElBQUksR0FBRyxDQUFDO0lBQzNCLHNCQUFjLENBQUMsZUFBZTtJQUM5QixzQkFBYyxDQUFDLGdCQUFnQjtJQUMvQixzQkFBYyxDQUFDLGVBQWU7Q0FDakMsQ0FBQyxDQUFDO0FBTUksTUFBTSxhQUFhLEdBQUcsR0FBWSxFQUFFO0lBQ3ZDLE9BQU8sSUFBSSxDQUFDO0FBQ2hCLENBQUMsQ0FBQztBQUZXLFFBQUEsYUFBYSxpQkFFeEI7QUFFRixNQUFNLElBQUksR0FBRyxJQUFBLHVCQUFVLEVBQUM7SUFDcEIsSUFBSSxFQUFFLHVEQUF1RDtJQUM3RCxJQUFJLEVBQUU7UUFDRixJQUFJLEVBQUU7WUFDRixXQUFXLEVBQ1AsK0VBQStFO1lBQ25GLFdBQVcsRUFBRSxLQUFLO1lBQ2xCLG9CQUFvQixFQUFFLEtBQUs7U0FDOUI7UUFDRCxRQUFRLEVBQUU7WUFDTixzQkFBc0IsRUFDbEIsK0VBQStFO1NBQ3RGO1FBQ0QsTUFBTSxFQUFFO1lBQ0o7Z0JBQ0ksVUFBVSxFQUFFO29CQUNSLHdCQUF3QixFQUFFO3dCQUN0QixXQUFXLEVBQ1Asc0VBQXNFO3dCQUMxRSxJQUFJLEVBQUUsT0FBTzt3QkFDYixRQUFRLEVBQUUsQ0FBQzt3QkFDWCxLQUFLLEVBQUU7NEJBQ0gsSUFBSSxFQUFFLFFBQVE7NEJBQ2QsU0FBUyxFQUFFLENBQUM7eUJBQ2Y7cUJBQ0o7aUJBQ0o7YUFD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
133
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGVOb25QcmltaXRpdmVOZWVkc0RlY29yYXRvcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcnVsZXMvdmFsaWRhdGUtbm9uLXByaW1pdHZlcy1uZWVkcy10eXBlLWRlY29yYXRvci92YWxpZGF0ZU5vblByaW1pdGl2ZU5lZWRzRGVjb3JhdG9ycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxrREFBa0Q7QUFDbEQsb0RBS2tDO0FBQ2xDLHVEQUFrRDtBQUNsRCxxRUFBZ0U7QUFFaEUsTUFBTSxjQUFjLEdBQUcsSUFBSSxHQUFHLENBQUM7SUFDM0Isc0JBQWMsQ0FBQyxlQUFlO0lBQzlCLHNCQUFjLENBQUMsZ0JBQWdCO0lBQy9CLHNCQUFjLENBQUMsZUFBZTtDQUNqQyxDQUFDLENBQUM7QUFNSSxNQUFNLGFBQWEsR0FBRyxHQUFZLEVBQUU7SUFDdkMsT0FBTyxJQUFJLENBQUM7QUFDaEIsQ0FBQyxDQUFDO0FBRlcsUUFBQSxhQUFhLGlCQUV4QjtBQUVGLE1BQU0sSUFBSSxHQUFHLElBQUEsdUJBQVUsRUFBQztJQUNwQixJQUFJLEVBQUUsdURBQXVEO0lBQzdELElBQUksRUFBRTtRQUNGLElBQUksRUFBRTtZQUNGLFdBQVcsRUFDUCwrRUFBK0U7WUFDbkYsV0FBVyxFQUFFLEtBQUs7WUFDbEIsb0JBQW9CLEVBQUUsS0FBSztTQUM5QjtRQUNELFFBQVEsRUFBRTtZQUNOLHNCQUFzQixFQUNsQiwrRUFBK0U7U0FDdEY7UUFDRCxNQUFNLEVBQUU7WUFDSjtnQkFDSSxVQUFVLEVBQUU7b0JBQ1Isd0JBQXdCLEVBQUU7d0JBQ3RCLFdBQVcsRUFDUCxzRUFBc0U7d0JBQzFFLElBQUksRUFBRSxPQUFPO3dCQUNiLFFBQVEsRUFBRSxDQUFDO3dCQUNYLEtBQUssRUFBRTs0QkFDSCxJQUFJLEVBQUUsUUFBUTs0QkFDZCxTQUFTLEVBQUUsQ0FBQzt5QkFDZjtxQkFDSjtpQkFDSjthQUNKO1NBQ0o7UUFDRCxj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
@@ -1,4 +1,4 @@
1
- import { TSESTree, TSESLint } from "@typescript-eslint/utils";
1
+ import { TSESLint, TSESTree } from "@typescript-eslint/utils";
2
2
  import { ParserServices } from "@typescript-eslint/parser";
3
3
  import ts from "typescript";
4
4
  export declare const typedTokenHelpers: {
@@ -13,4 +13,43 @@ export declare const typedTokenHelpers: {
13
13
  parseStringToAst(code: string, path: string, context: Readonly<TSESLint.RuleContext<never, never[]>>): TSESTree.Program;
14
14
  isEnumType(type: ts.Type): boolean;
15
15
  isOptionalPropertyValue(node: TSESTree.PropertyDefinition): boolean;
16
+ /**
17
+ * Checks if an import is an import of the given decorator name
18
+ * @param imp
19
+ * @param decoratorName
20
+ */
21
+ importIsDecorator(imp: TSESTree.ImportDeclaration, decoratorName: string): boolean;
22
+ /**
23
+ * Checks if decorator is in imports of a node
24
+ * @param imports
25
+ * @param decorator
26
+ */
27
+ decoratorIsImportedFromClassValidator(imports: TSESTree.ImportDeclaration[], decorator: TSESTree.Decorator): boolean;
28
+ /**
29
+ * Checks whether a decorator is a class validator decorator
30
+ * @param program The root program node
31
+ * @param decorator The decorator node
32
+ */
33
+ decoratorIsClassValidatorDecorator(program: TSESTree.Program | null, decorator: TSESTree.Decorator): boolean;
34
+ /**
35
+ * Gets the root program of a node
36
+ * @param node
37
+ */
38
+ getRootProgram(node: TSESTree.BaseNode): TSESTree.Program | null;
39
+ /**
40
+ * Gets all the decorators actually imported from class-validator lib
41
+ * @param node PropertyDefinition node
42
+ */
43
+ getImportedClassValidatorDecorators(node: TSESTree.PropertyDefinition): TSESTree.Decorator[];
44
+ /**
45
+ * Checks if the decorator is the IsEnum decorator
46
+ * @param decorator
47
+ */
48
+ decoratorIsIsEnum(decorator: TSESTree.Decorator): boolean;
49
+ /**
50
+ * Gets the name of a decorator
51
+ * Returns null if no name is found
52
+ * @param decorator
53
+ */
54
+ getDecoratorName(decorator: TSESTree.Decorator): string | null;
16
55
  };
@@ -30,8 +30,8 @@ exports.typedTokenHelpers = void 0;
30
30
  const utils_1 = require("@typescript-eslint/utils");
31
31
  const parser_1 = require("@typescript-eslint/parser");
32
32
  const typescript_1 = __importDefault(require("typescript"));
33
- const tsutils_1 = require("tsutils");
34
33
  const tsutils = __importStar(require("tsutils"));
34
+ const tsutils_1 = require("tsutils");
35
35
  exports.typedTokenHelpers = {
36
36
  decoratorsThatCouldMeanTheDevIsValidatingAnArray: [
37
37
  "IsArray",
@@ -131,5 +131,88 @@ exports.typedTokenHelpers = {
131
131
  const isOptionalPropertyValue = node.optional || isUndefinedType || false;
132
132
  return isOptionalPropertyValue;
133
133
  },
134
+ /**
135
+ * Checks if an import is an import of the given decorator name
136
+ * @param imp
137
+ * @param decoratorName
138
+ */
139
+ importIsDecorator(imp, decoratorName) {
140
+ const isFromClassValidator = imp.source.value.startsWith("class-validator");
141
+ const isDecoratorImport = imp.specifiers.some((specifier) => specifier.local.name === decoratorName);
142
+ return isFromClassValidator && isDecoratorImport;
143
+ },
144
+ /**
145
+ * Checks if decorator is in imports of a node
146
+ * @param imports
147
+ * @param decorator
148
+ */
149
+ decoratorIsImportedFromClassValidator(imports, decorator) {
150
+ const decoratorName = this.getDecoratorName(decorator);
151
+ if (!decoratorName) {
152
+ return false;
153
+ }
154
+ return imports.some((imp) => exports.typedTokenHelpers.importIsDecorator(imp, decoratorName));
155
+ },
156
+ /**
157
+ * Checks whether a decorator is a class validator decorator
158
+ * @param program The root program node
159
+ * @param decorator The decorator node
160
+ */
161
+ decoratorIsClassValidatorDecorator(program, decorator) {
162
+ if (!program) {
163
+ return false;
164
+ }
165
+ const imports = program.body.filter((node) => node.type === utils_1.TSESTree.AST_NODE_TYPES.ImportDeclaration);
166
+ return exports.typedTokenHelpers.decoratorIsImportedFromClassValidator(imports, decorator);
167
+ },
168
+ /**
169
+ * Gets the root program of a node
170
+ * @param node
171
+ */
172
+ getRootProgram(node) {
173
+ let root = node;
174
+ while (root.parent) {
175
+ if (root.parent.type === utils_1.TSESTree.AST_NODE_TYPES.Program) {
176
+ return root.parent;
177
+ }
178
+ root = root.parent;
179
+ }
180
+ return null;
181
+ },
182
+ /**
183
+ * Gets all the decorators actually imported from class-validator lib
184
+ * @param node PropertyDefinition node
185
+ */
186
+ getImportedClassValidatorDecorators(node) {
187
+ var _a;
188
+ const program = exports.typedTokenHelpers.getRootProgram(node);
189
+ const { decorators } = node;
190
+ return ((_a = decorators === null || decorators === void 0 ? void 0 : decorators.filter((decorator) => {
191
+ return exports.typedTokenHelpers.decoratorIsClassValidatorDecorator(program, decorator);
192
+ })) !== null && _a !== void 0 ? _a : []);
193
+ },
194
+ /**
195
+ * Checks if the decorator is the IsEnum decorator
196
+ * @param decorator
197
+ */
198
+ decoratorIsIsEnum(decorator) {
199
+ const decoratorName = this.getDecoratorName(decorator);
200
+ return decoratorName === "IsEnum";
201
+ },
202
+ /**
203
+ * Gets the name of a decorator
204
+ * Returns null if no name is found
205
+ * @param decorator
206
+ */
207
+ getDecoratorName(decorator) {
208
+ if (decorator.expression.type !== utils_1.TSESTree.AST_NODE_TYPES.CallExpression) {
209
+ return null;
210
+ }
211
+ if (decorator.expression.callee.type !==
212
+ utils_1.TSESTree.AST_NODE_TYPES.Identifier) {
213
+ return null;
214
+ }
215
+ return decorator.expression.callee.name;
216
+ },
134
217
  };
135
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZWRUb2tlbkhlbHBlcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbHMvdHlwZWRUb2tlbkhlbHBlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxvREFBNEU7QUFDNUUsc0RBQWdFO0FBQ2hFLDREQUE0QjtBQUM1QixxQ0FBdUM7QUFDdkMsaURBQW1DO0FBQ3RCLFFBQUEsaUJBQWlCLEdBQUc7SUFDN0IsZ0RBQWdELEVBQUU7UUFDOUMsU0FBUztRQUNULGNBQWM7UUFDZCxjQUFjO1FBQ2QsZUFBZTtRQUNmLGtCQUFrQjtRQUNsQixlQUFlO1FBQ2YsYUFBYTtLQUNoQjtJQUNELGtDQUFrQyxDQUM5QixJQUFtQixFQUNuQixhQUE2QixFQUM3QixPQUF1Qjs7UUFFdkIsSUFDSSxDQUFBLE1BQUEsTUFBQyxJQUFvQyxhQUFwQyxJQUFJLHVCQUFKLElBQUksQ0FBa0MsY0FBYywwQ0FDL0MsY0FBYywwQ0FBRSxJQUFJLE1BQUssZ0JBQVEsQ0FBQyxjQUFjLENBQUMsV0FBVyxFQUNwRTtZQUNFLE9BQU8sSUFBSSxDQUFDO1NBQ2Y7UUFFRCxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxhQUFhLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDaEUsSUFBSSxPQUFPLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxFQUFFO1lBQy9CLE9BQU8sSUFBSSxDQUFDO1NBQ2Y7UUFDRCxLQUFLLE1BQU0sQ0FBQyxJQUFJLElBQUEsd0JBQWMsRUFBQyxRQUFRLENBQUMsRUFBRTtZQUN0QyxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsRUFBRTtnQkFDekIsT0FBTyxLQUFLLENBQUM7YUFDaEI7U0FDSjtRQUVELE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFDRCxXQUFXLENBQ1AsSUFBbUIsRUFDbkIsYUFBNkIsRUFD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
218
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZWRUb2tlbkhlbHBlcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbHMvdHlwZWRUb2tlbkhlbHBlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxvREFBNEU7QUFDNUUsc0RBQWdFO0FBQ2hFLDREQUE0QjtBQUM1QixpREFBbUM7QUFDbkMscUNBQXVDO0FBRTFCLFFBQUEsaUJBQWlCLEdBQUc7SUFDN0IsZ0RBQWdELEVBQUU7UUFDOUMsU0FBUztRQUNULGNBQWM7UUFDZCxjQUFjO1FBQ2QsZUFBZTtRQUNmLGtCQUFrQjtRQUNsQixlQUFlO1FBQ2YsYUFBYTtLQUNoQjtJQUNELGtDQUFrQyxDQUM5QixJQUFtQixFQUNuQixhQUE2QixFQUM3QixPQUF1Qjs7UUFFdkIsSUFDSSxDQUFBLE1BQUEsTUFBQyxJQUFvQyxhQUFwQyxJQUFJLHVCQUFKLElBQUksQ0FBa0MsY0FBYywwQ0FDL0MsY0FBYywwQ0FBRSxJQUFJLE1BQUssZ0JBQVEsQ0FBQyxjQUFjLENBQUMsV0FBVyxFQUNwRTtZQUNFLE9BQU8sSUFBSSxDQUFDO1NBQ2Y7UUFFRCxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxhQUFhLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDaEUsSUFBSSxPQUFPLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxFQUFFO1lBQy9CLE9BQU8sSUFBSSxDQUFDO1NBQ2Y7UUFDRCxLQUFLLE1BQU0sQ0FBQyxJQUFJLElBQUEsd0JBQWMsRUFBQyxRQUFRLENBQUMsRUFBRTtZQUN0QyxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsRUFBRTtnQkFDekIsT0FBTyxLQUFLLENBQUM7YUFDaEI7U0FDSjtRQUVELE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFDRCxXQUFXLENBQ1AsSUFBbUIsRUFDbkIsYUFBNkIsRUFD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
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@darraghor/eslint-plugin-nestjs-typed",
3
- "version": "3.12.1",
3
+ "version": "3.14.0",
4
4
  "description": "Eslint rules for nestjs projects",
5
5
  "scripts": {
6
6
  "clean": "rm -Rf ./dist/",
@@ -40,38 +40,38 @@
40
40
  "main": "dist/index.js",
41
41
  "types": "index.d.ts",
42
42
  "dependencies": {
43
- "@typescript-eslint/scope-manager": "5.35.1",
44
- "@typescript-eslint/utils": "5.35.1",
43
+ "@typescript-eslint/scope-manager": "^5.0.0",
44
+ "@typescript-eslint/utils": "^5.0.0",
45
45
  "eslint-module-utils": "2.7.4",
46
46
  "reflect-metadata": "0.1.13"
47
47
  },
48
48
  "devDependencies": {
49
- "@commitlint/cli": "17.1.1",
50
- "@commitlint/config-conventional": "17.1.0",
49
+ "@commitlint/cli": "17.2.0",
50
+ "@commitlint/config-conventional": "17.2.0",
51
51
  "@semantic-release/changelog": "6.0.1",
52
52
  "@semantic-release/exec": "6.0.3",
53
- "@types/eslint": "8.4.6",
54
- "@types/jest": "28.1.8",
55
- "@types/node": "18.7.13",
56
- "@typescript-eslint/eslint-plugin": "5.35.1",
57
- "@typescript-eslint/parser": "5.35.1",
53
+ "@types/eslint": "8.4.9",
54
+ "@types/jest": "29.2.1",
55
+ "@types/node": "18.11.9",
56
+ "@typescript-eslint/eslint-plugin": "5.42.0",
57
+ "@typescript-eslint/parser": "5.42.0",
58
58
  "class-validator": "^0.13.2",
59
- "eslint": "8.23.0",
59
+ "eslint": "8.26.0",
60
60
  "eslint-config-prettier": "8.5.0",
61
61
  "eslint-plugin-import": "2.26.0",
62
- "eslint-plugin-jsdoc": "39.3.6",
62
+ "eslint-plugin-jsdoc": "39.6.2",
63
63
  "eslint-plugin-prefer-arrow": "1.2.3",
64
- "eslint-plugin-unicorn": "43.0.2",
64
+ "eslint-plugin-unicorn": "44.0.2",
65
65
  "husky": "8.0.1",
66
- "jest": "29.0.1",
66
+ "jest": "29.2.2",
67
67
  "jest-create-mock-instance": "2.0.0",
68
68
  "jest-junit": "14.0.1",
69
69
  "lint-staged": "13.0.3",
70
70
  "prettier": "2.7.1",
71
71
  "semantic-release": "19.0.5",
72
- "ts-jest": "28.0.8",
72
+ "ts-jest": "29.0.3",
73
73
  "ts-node": "10.9.1",
74
- "typescript": "4.7.4"
74
+ "typescript": "4.8.4"
75
75
  },
76
76
  "peerDependencies": {
77
77
  "@typescript-eslint/parser": "^5.0.0",
@@ -1 +0,0 @@
1
- export declare const classValidatorDecorators: string[];
@@ -1,104 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.classValidatorDecorators = void 0;
4
- exports.classValidatorDecorators = [
5
- "IsBooleanString",
6
- "IsPositive",
7
- "IsLatLong",
8
- "IsLongitude",
9
- "IsLatitude",
10
- "IsNegative",
11
- "Contains",
12
- "Equals",
13
- "MinDate",
14
- "MaxDate",
15
- "IsAlpha",
16
- "IsAlphanumeric",
17
- "IsAscii",
18
- "IsDecimal",
19
- "IsBase64",
20
- "IsBoolean",
21
- "IsByteLength",
22
- "IsCreditCard",
23
- "IsCurrency",
24
- "IsDate",
25
- "IsDivisibleBy",
26
- "IsEmail",
27
- "IsEnum",
28
- "IsFQDN",
29
- "IsFullWidth",
30
- "IsHalfWidth",
31
- "IsVariableWidth",
32
- "IsHexColor",
33
- "IsHexadecimal",
34
- "IsIP",
35
- "IsISBN",
36
- "IsISO8601",
37
- "IsIn",
38
- "IsInt",
39
- "IsJSON",
40
- "IsJWT",
41
- "IsObject",
42
- "IsNotEmptyObject",
43
- "Length",
44
- "IsLowercase",
45
- "IsMongoId",
46
- "IsMultibyte",
47
- "IsNumberString",
48
- "IsSurrogatePair",
49
- "IsUrl",
50
- "IsUUID",
51
- "IsUppercase",
52
- "Matches",
53
- "MinLength",
54
- "MaxLength",
55
- "Min",
56
- "Max",
57
- "IsNotEmpty",
58
- "IsMilitaryTime",
59
- "ArrayNotEmpty",
60
- "ArrayMinSize",
61
- "ArrayMaxSize",
62
- "NotEquals",
63
- "IsEmpty",
64
- "IsDefined",
65
- "IsNotIn",
66
- "IsNumber",
67
- "IsString",
68
- "NotContains",
69
- "ArrayContains",
70
- "ArrayNotContains",
71
- "ArrayUnique",
72
- "IsArray",
73
- "IsDateString",
74
- "IsInstance",
75
- "IsPhoneNumber",
76
- "IsISO31661Alpha2",
77
- "IsISO31661Alpha3",
78
- "IsHash",
79
- "IsMACAddress",
80
- "IsISSN",
81
- "IsFirebasePushId",
82
- "Allow",
83
- "IsEAN",
84
- "IsEthereumAddress",
85
- "IsBtcAddress",
86
- "IsDataURI",
87
- "IsHSL",
88
- "IsRgbColor",
89
- "IsIdentityCard",
90
- "IsBase32",
91
- "IsIBAN",
92
- "IsBIC",
93
- "IsISRC",
94
- "IsRFC3339",
95
- "IsLocale",
96
- "IsMagnetURI",
97
- "IsMimeType",
98
- "IsOctal",
99
- "IsPassportNumber",
100
- "IsPostalCode",
101
- "IsSemVer",
102
- "ValidateNested",
103
- ];
104
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xhc3NWYWxpZGF0b3JEZWNvcmF0b3JzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWxzL2NsYXNzVmFsaWRhdG9yRGVjb3JhdG9ycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBYSxRQUFBLHdCQUF3QixHQUFHO0lBQ3BDLGlCQUFpQjtJQUNqQixZQUFZO0lBQ1osV0FBVztJQUNYLGFBQWE7SUFDYixZQUFZO0lBQ1osWUFBWTtJQUNaLFVBQVU7SUFDVixRQUFRO0lBQ1IsU0FBUztJQUNULFNBQVM7SUFDVCxTQUFTO0lBQ1QsZ0JBQWdCO0lBQ2hCLFNBQVM7SUFDVCxXQUFXO0lBQ1gsVUFBVTtJQUNWLFdBQVc7SUFDWCxjQUFjO0lBQ2QsY0FBYztJQUNkLFlBQVk7SUFDWixRQUFRO0lBQ1IsZUFBZTtJQUNmLFNBQVM7SUFDVCxRQUFRO0lBQ1IsUUFBUTtJQUNSLGFBQWE7SUFDYixhQUFhO0lBQ2IsaUJBQWlCO0lBQ2pCLFlBQVk7SUFDWixlQUFlO0lBQ2YsTUFBTTtJQUNOLFFBQVE7SUFDUixXQUFXO0lBQ1gsTUFBTTtJQUNOLE9BQU87SUFDUCxRQUFRO0lBQ1IsT0FBTztJQUNQLFVBQVU7SUFDVixrQkFBa0I7SUFDbEIsUUFBUTtJQUNSLGFBQWE7SUFDYixXQUFXO0lBQ1gsYUFBYTtJQUNiLGdCQUFnQjtJQUNoQixpQkFBaUI7SUFDakIsT0FBTztJQUNQLFFBQVE7SUFDUixhQUFhO0lBQ2IsU0FBUztJQUNULFdBQVc7SUFDWCxXQUFXO0lBQ1gsS0FBSztJQUNMLEtBQUs7SUFDTCxZQUFZO0lBQ1osZ0JBQWdCO0lBQ2hCLGVBQWU7SUFDZixjQUFjO0lBQ2QsY0FBYztJQUNkLFdBQVc7SUFDWCxTQUFTO0lBQ1QsV0FBVztJQUNYLFNBQVM7SUFDVCxVQUFVO0lBQ1YsVUFBVTtJQUNWLGFBQWE7SUFDYixlQUFlO0lBQ2Ysa0JBQWtCO0lBQ2xCLGFBQWE7SUFDYixTQUFTO0lBQ1QsY0FBYztJQUNkLFlBQVk7SUFDWixlQUFlO0lBQ2Ysa0JBQWtCO0lBQ2xCLGtCQUFrQjtJQUNsQixRQUFRO0lBQ1IsY0FBYztJQUNkLFFBQVE7SUFDUixrQkFBa0I7SUFDbEIsT0FBTztJQUNQLE9BQU87SUFDUCxtQkFBbUI7SUFDbkIsY0FBYztJQUNkLFdBQVc7SUFDWCxPQUFPO0lBQ1AsWUFBWTtJQUNaLGdCQUFnQjtJQUNoQixVQUFVO0lBQ1YsUUFBUTtJQUNSLE9BQU87SUFDUCxRQUFRO0lBQ1IsV0FBVztJQUNYLFVBQVU7SUFDVixhQUFhO0lBQ2IsWUFBWTtJQUNaLFNBQVM7SUFDVCxrQkFBa0I7SUFDbEIsY0FBYztJQUNkLFVBQVU7SUFDVixnQkFBZ0I7Q0FDbkIsQ0FBQyJ9