@darraghor/eslint-plugin-nestjs-typed 3.21.2 → 3.22.1

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
@@ -20,34 +20,30 @@ This plugin only supports typescript up to the version typescript eslint parser
20
20
 
21
21
  Please check the recommended list (https://github.com/darraghoriordan/eslint-plugin-nestjs-typed/blob/main/src/configs/recommended.ts) to check which rules are turned on when using that config.
22
22
 
23
- Some rules are opinionated and have to be turned on explicitly.
24
-
25
- Nest Modules and Dependency Injection
26
-
27
- - provided-injected-should-match-factory-parameters
28
- - injectable-should-be-provided
29
-
30
- Nest Swagger
31
-
32
- - api-property-matches-property-optionality
33
- - controllers-should-supply-api-tags
34
- - api-method-should-specify-api-response
35
- - api-method-should-specify-api-operation
36
- - api-enum-property-best-practices
37
- - api-property-returning-array-should-set-array
38
-
39
- Preventing bugs
40
-
41
- - param-decorator-name-matches-route-param
42
- - validate-nested-of-array-should-set-each
43
- - validated-non-primitive-property-needs-type-decorator
44
- - all-properties-are-whitelisted
45
- - all-properties-have-explicit-defined
46
-
47
- Security
48
-
49
- - should-specify-forbid-unknown-values
50
- - api-methods-should-be-guarded
23
+ Some rules are opinionated and have to be turned on explicitly (if they're not in the recommended config pack).
24
+
25
+ | Category | Rule | is in recommended config |
26
+ | ------------------------------------- | ----------------------------------------------------- | ------------------------ |
27
+ | Nest Modules and Dependency Injection | provided-injected-should-match-factory-parameters | Y |
28
+ | | injectable-should-be-provided | Y |
29
+ | | | |
30
+ | Nest Swagger | api-property-matches-property-optionality | Y |
31
+ | | controllers-should-supply-api-tags | Y |
32
+ | | api-method-should-specify-api-response | N |
33
+ | | api-method-should-specify-api-operation | Y |
34
+ | | api-enum-property-best-practices | Y |
35
+ | | api-property-returning-array-should-set-array | Y |
36
+ | | | |
37
+ | Preventing bugs | param-decorator-name-matches-route-param | Y |
38
+ | | validate-nested-of-array-should-set-each | Y |
39
+ | | validated-non-primitive-property-needs-type-decorator | Y |
40
+ | | all-properties-are-whitelisted | Y |
41
+ | | all-properties-have-explicit-defined | Y |
42
+ | | | |
43
+ | Security | should-specify-forbid-unknown-values | Y |
44
+ | | api-methods-should-be-guarded | N |
45
+ | | | |
46
+ | Code Consistency | sort-module-metadata-arrays | N |
51
47
 
52
48
  Detailed docs are available here: https://github.com/darraghoriordan/eslint-plugin-nestjs-typed/tree/main/src/docs/rules
53
49
 
@@ -23,6 +23,7 @@ declare const allConfigs: {
23
23
  "@darraghor/nestjs-typed/all-properties-have-explicit-defined": string;
24
24
  "@darraghor/nestjs-typed/api-methods-should-be-guarded": string;
25
25
  "@darraghor/nestjs-typed/api-method-should-specify-api-operation": string;
26
+ "@darraghor/nestjs-typed/sort-module-metadata-arrays": string;
26
27
  };
27
28
  };
28
29
  "no-swagger": {
@@ -22,6 +22,7 @@ declare const _default: {
22
22
  "@darraghor/nestjs-typed/all-properties-have-explicit-defined": string;
23
23
  "@darraghor/nestjs-typed/api-methods-should-be-guarded": string;
24
24
  "@darraghor/nestjs-typed/api-method-should-specify-api-operation": string;
25
+ "@darraghor/nestjs-typed/sort-module-metadata-arrays": string;
25
26
  };
26
27
  };
27
28
  export = _default;
@@ -24,6 +24,7 @@ module.exports = {
24
24
  "@darraghor/nestjs-typed/all-properties-have-explicit-defined": "error",
25
25
  "@darraghor/nestjs-typed/api-methods-should-be-guarded": "off",
26
26
  "@darraghor/nestjs-typed/api-method-should-specify-api-operation": "off",
27
+ "@darraghor/nestjs-typed/sort-module-metadata-arrays": "off",
27
28
  },
28
29
  };
29
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVjb21tZW5kZWQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29uZmlncy9yZWNvbW1lbmRlZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsaUJBQVM7SUFDTCxNQUFNLEVBQUUsMkJBQTJCO0lBQ25DLGFBQWEsRUFBRSxFQUFDLFVBQVUsRUFBRSxRQUFRLEVBQUM7SUFDckMsS0FBSyxFQUFFO1FBQ0gsMkVBQTJFLEVBQ3ZFLE9BQU87UUFDWCx1REFBdUQsRUFBRTtZQUNyRCxPQUFPO1lBQ1A7Z0JBQ0ksR0FBRyxFQUFFLENBQUMsYUFBYSxDQUFDO2dCQUNwQixlQUFlLEVBQUUsQ0FBQyxjQUFjLEVBQUUsUUFBUSxFQUFFLFFBQVEsQ0FBQzthQUN4RDtTQUNKO1FBQ0QsbUVBQW1FLEVBQy9ELE9BQU87UUFDWCxnRUFBZ0UsRUFDNUQsT0FBTztRQUNYLDREQUE0RCxFQUFFLE9BQU87UUFDckUsMERBQTBELEVBQUUsT0FBTztRQUNuRSx1RUFBdUUsRUFDbkUsT0FBTztRQUNYLDhEQUE4RCxFQUFFLE9BQU87UUFDdkUsa0VBQWtFLEVBQzlELE9BQU87UUFDWCwrRUFBK0UsRUFDM0UsT0FBTztRQUNYLGtFQUFrRSxFQUM5RCxPQUFPO1FBQ1gsd0RBQXdELEVBQUUsT0FBTztRQUNqRSw4REFBOEQsRUFBRSxPQUFPO1FBQ3ZFLHVEQUF1RCxFQUFFLEtBQUs7UUFDOUQsaUVBQWlFLEVBQzdELEtBQUs7S0FDWjtDQUNKLENBQUMifQ==
30
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVjb21tZW5kZWQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29uZmlncy9yZWNvbW1lbmRlZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsaUJBQVM7SUFDTCxNQUFNLEVBQUUsMkJBQTJCO0lBQ25DLGFBQWEsRUFBRSxFQUFDLFVBQVUsRUFBRSxRQUFRLEVBQUM7SUFDckMsS0FBSyxFQUFFO1FBQ0gsMkVBQTJFLEVBQ3ZFLE9BQU87UUFDWCx1REFBdUQsRUFBRTtZQUNyRCxPQUFPO1lBQ1A7Z0JBQ0ksR0FBRyxFQUFFLENBQUMsYUFBYSxDQUFDO2dCQUNwQixlQUFlLEVBQUUsQ0FBQyxjQUFjLEVBQUUsUUFBUSxFQUFFLFFBQVEsQ0FBQzthQUN4RDtTQUNKO1FBQ0QsbUVBQW1FLEVBQy9ELE9BQU87UUFDWCxnRUFBZ0UsRUFDNUQsT0FBTztRQUNYLDREQUE0RCxFQUFFLE9BQU87UUFDckUsMERBQTBELEVBQUUsT0FBTztRQUNuRSx1RUFBdUUsRUFDbkUsT0FBTztRQUNYLDhEQUE4RCxFQUFFLE9BQU87UUFDdkUsa0VBQWtFLEVBQzlELE9BQU87UUFDWCwrRUFBK0UsRUFDM0UsT0FBTztRQUNYLGtFQUFrRSxFQUM5RCxPQUFPO1FBQ1gsd0RBQXdELEVBQUUsT0FBTztRQUNqRSw4REFBOEQsRUFBRSxPQUFPO1FBQ3ZFLHVEQUF1RCxFQUFFLEtBQUs7UUFDOUQsaUVBQWlFLEVBQzdELEtBQUs7UUFDVCxxREFBcUQsRUFBRSxLQUFLO0tBQy9EO0NBQ0osQ0FBQyJ9
package/dist/index.d.ts CHANGED
@@ -50,6 +50,11 @@ declare const configuration: {
50
50
  "api-methods-should-be-guarded": import("@typescript-eslint/utils/dist/ts-eslint/Rule").RuleModule<"apiMethodsShouldBeGuarded", never[], {
51
51
  MethodDefinition(node: import("@typescript-eslint/types/dist/generated/ast-spec").MethodDefinition): void;
52
52
  }>;
53
+ "sort-module-metadata-arrays": import("@typescript-eslint/utils/dist/ts-eslint/Rule").RuleModule<"moduleMetadataArraysAreSorted", {
54
+ locale: string;
55
+ }[], {
56
+ [x: string]: ({ elements, }: import("@typescript-eslint/types/dist/generated/ast-spec").ArrayExpression) => void;
57
+ }>;
53
58
  };
54
59
  configs: {
55
60
  recommended: {
@@ -76,6 +81,7 @@ declare const configuration: {
76
81
  "@darraghor/nestjs-typed/all-properties-have-explicit-defined": string;
77
82
  "@darraghor/nestjs-typed/api-methods-should-be-guarded": string;
78
83
  "@darraghor/nestjs-typed/api-method-should-specify-api-operation": string;
84
+ "@darraghor/nestjs-typed/sort-module-metadata-arrays": string;
79
85
  };
80
86
  };
81
87
  "no-swagger": {
@@ -49,5 +49,10 @@ declare const allRules: {
49
49
  "api-methods-should-be-guarded": import("@typescript-eslint/utils/dist/ts-eslint/Rule").RuleModule<"apiMethodsShouldBeGuarded", never[], {
50
50
  MethodDefinition(node: import("@typescript-eslint/types/dist/generated/ast-spec").MethodDefinition): void;
51
51
  }>;
52
+ "sort-module-metadata-arrays": import("@typescript-eslint/utils/dist/ts-eslint/Rule").RuleModule<"moduleMetadataArraysAreSorted", {
53
+ locale: string;
54
+ }[], {
55
+ [x: string]: ({ elements, }: import("@typescript-eslint/types/dist/generated/ast-spec").ArrayExpression) => void;
56
+ }>;
52
57
  };
53
58
  export default allRules;
@@ -18,6 +18,7 @@ const allPropertiesAreWhitelisted_1 = __importDefault(require("./allPropertiesAr
18
18
  const allPropertiesHaveExplicitDefined_1 = __importDefault(require("./allPropertiesHaveExplicitDefined/allPropertiesHaveExplicitDefined"));
19
19
  const apiMethodsShouldBeGuarded_1 = __importDefault(require("./apiMethodsShouldBeGuarded/apiMethodsShouldBeGuarded"));
20
20
  const apiMethodsShouldSpecifyApiOperation_1 = __importDefault(require("./apiMethodsShouldSpecifyApiOperation/apiMethodsShouldSpecifyApiOperation"));
21
+ const sortModuleMetadataArrays_1 = __importDefault(require("./sortModuleMetadataArrays/sortModuleMetadataArrays"));
21
22
  const allRules = {
22
23
  "all-properties-have-explicit-defined": allPropertiesHaveExplicitDefined_1.default,
23
24
  "api-property-matches-property-optionality": apiPropertyMatchesPropertyOptionality_1.default,
@@ -34,6 +35,7 @@ const allRules = {
34
35
  "validate-nested-of-array-should-set-each": validateNestedOfArrayShouldSetEach_1.default,
35
36
  "all-properties-are-whitelisted": allPropertiesAreWhitelisted_1.default,
36
37
  "api-methods-should-be-guarded": apiMethodsShouldBeGuarded_1.default,
38
+ "sort-module-metadata-arrays": sortModuleMetadataArrays_1.default,
37
39
  };
38
40
  exports.default = allRules;
39
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcnVsZXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSwwSEFBa0c7QUFDbEcsaUpBQW1JO0FBQ25JLDBKQUFrSTtBQUNsSSxrSUFBMEc7QUFDMUcsaUpBQXlIO0FBQ3pILCtIQUF1RztBQUN2RyxnS0FBd0k7QUFDeEksbUpBQXVIO0FBQ3ZILG9KQUFnSTtBQUNoSSx1SkFBK0g7QUFDL0gsaUpBQXlIO0FBQ3pILDRIQUFvRztBQUNwRywySUFBbUg7QUFDbkgsc0hBQThGO0FBQzlGLG9KQUE0SDtBQUU1SCxNQUFNLFFBQVEsR0FBRztJQUNiLHNDQUFzQyxFQUFFLDBDQUFnQztJQUN4RSwyQ0FBMkMsRUFDdkMsK0NBQXFDO0lBQ3pDLCtCQUErQixFQUFFLG9DQUEwQjtJQUMzRCxtREFBbUQsRUFDL0MsNENBQTRDO0lBQ2hELG9DQUFvQyxFQUFFLHVDQUE2QjtJQUNuRSx3Q0FBd0MsRUFDcEMsNENBQWtDO0lBQ3RDLHlDQUF5QyxFQUNyQyw2Q0FBbUM7SUFDdkMsa0NBQWtDLEVBQUUsc0NBQTRCO0lBQ2hFLCtDQUErQyxFQUMzQyxpREFBdUM7SUFDM0Msc0NBQXNDLEVBQUUsOENBQWdDO0lBQ3hFLDBDQUEwQyxFQUN0Qyw2Q0FBdUM7SUFDM0MsdURBQXVELEVBQ25ELDZDQUFtQztJQUN2QywwQ0FBMEMsRUFDdEMsNENBQWtDO0lBQ3RDLGdDQUFnQyxFQUFFLHFDQUEyQjtJQUM3RCwrQkFBK0IsRUFBRSxtQ0FBeUI7Q0FDN0QsQ0FBQztBQUVGLGtCQUFlLFFBQVEsQ0FBQyJ9
41
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcnVsZXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSwwSEFBa0c7QUFDbEcsaUpBQW1JO0FBQ25JLDBKQUFrSTtBQUNsSSxrSUFBMEc7QUFDMUcsaUpBQXlIO0FBQ3pILCtIQUF1RztBQUN2RyxnS0FBd0k7QUFDeEksbUpBQXVIO0FBQ3ZILG9KQUFnSTtBQUNoSSx1SkFBK0g7QUFDL0gsaUpBQXlIO0FBQ3pILDRIQUFvRztBQUNwRywySUFBbUg7QUFDbkgsc0hBQThGO0FBQzlGLG9KQUE0SDtBQUM1SCxtSEFBMkY7QUFFM0YsTUFBTSxRQUFRLEdBQUc7SUFDYixzQ0FBc0MsRUFBRSwwQ0FBZ0M7SUFDeEUsMkNBQTJDLEVBQ3ZDLCtDQUFxQztJQUN6QywrQkFBK0IsRUFBRSxvQ0FBMEI7SUFDM0QsbURBQW1ELEVBQy9DLDRDQUE0QztJQUNoRCxvQ0FBb0MsRUFBRSx1Q0FBNkI7SUFDbkUsd0NBQXdDLEVBQ3BDLDRDQUFrQztJQUN0Qyx5Q0FBeUMsRUFDckMsNkNBQW1DO0lBQ3ZDLGtDQUFrQyxFQUFFLHNDQUE0QjtJQUNoRSwrQ0FBK0MsRUFDM0MsaURBQXVDO0lBQzNDLHNDQUFzQyxFQUFFLDhDQUFnQztJQUN4RSwwQ0FBMEMsRUFDdEMsNkNBQXVDO0lBQzNDLHVEQUF1RCxFQUNuRCw2Q0FBbUM7SUFDdkMsMENBQTBDLEVBQ3RDLDRDQUFrQztJQUN0QyxnQ0FBZ0MsRUFBRSxxQ0FBMkI7SUFDN0QsK0JBQStCLEVBQUUsbUNBQXlCO0lBQzFELDZCQUE2QixFQUFFLGtDQUF3QjtDQUMxRCxDQUFDO0FBRUYsa0JBQWUsUUFBUSxDQUFDIn0=
@@ -1,7 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.shouldTriggerForVariableDecleratorExpression = exports.shouldTriggerNewExpressionHasProperty = exports.checkObjectExpression = exports.isValidationPipeNewExpression = void 0;
4
+ const utils_1 = require("@typescript-eslint/utils");
4
5
  const createRule_1 = require("../../utils/createRule");
6
+ const ast_utils_1 = require("@typescript-eslint/utils/dist/ast-utils");
5
7
  const isValidationPipeNewExpression = (node) => {
6
8
  const newExpression = node;
7
9
  const callee = newExpression === null || newExpression === void 0 ? void 0 : newExpression.callee;
@@ -16,8 +18,7 @@ const checkObjectExpression = (os) => {
16
18
  if (!os) {
17
19
  return false;
18
20
  }
19
- const forbidUnknownValuesProperty = (_a = os === null || os === void 0 ? void 0 : os.properties) === null || _a === void 0 ? void 0 : _a.find((p) => p.key.name ===
20
- "forbidUnknownValues");
21
+ const forbidUnknownValuesProperty = (_a = os === null || os === void 0 ? void 0 : os.properties) === null || _a === void 0 ? void 0 : _a.filter((0, ast_utils_1.isNodeOfType)(utils_1.TSESTree.AST_NODE_TYPES.Property)).find((p) => p.key.name === "forbidUnknownValues");
21
22
  // property is not present. this is wrong.
22
23
  if (os && !forbidUnknownValuesProperty) {
23
24
  return true;
@@ -41,8 +42,10 @@ const shouldTriggerNewExpressionHasProperty = (node) => {
41
42
  const newExpression = node;
42
43
  // the default new ValidationPipe() seems to prevent the attack so we ignore calls with no parameters
43
44
  // we also ignore parameters that are not explicit object expressions
45
+ // or if the properties are spread
44
46
  if (((_a = newExpression.arguments) === null || _a === void 0 ? void 0 : _a.length) === 0 ||
45
- newExpression.arguments[0].type !== "ObjectExpression") {
47
+ newExpression.arguments[0].type !== "ObjectExpression" ||
48
+ newExpression.arguments[0].properties.some((0, ast_utils_1.isNodeOfType)(utils_1.TSESTree.AST_NODE_TYPES.SpreadElement))) {
46
49
  return false;
47
50
  }
48
51
  const argument = newExpression === null || newExpression === void 0 ? void 0 : newExpression.arguments[0];
@@ -106,4 +109,4 @@ const rule = (0, createRule_1.createRule)({
106
109
  },
107
110
  });
108
111
  exports.default = rule;
109
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hvdWxkU3BlY2lmeUZvcmJpZFVua25vd25WYWx1ZXNSdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3J1bGVzL3Nob3VsZFNwZWNpZnlGb3JiaWRVbmtub3duVmFsdWVzL3Nob3VsZFNwZWNpZnlGb3JiaWRVbmtub3duVmFsdWVzUnVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFFQSx1REFBa0Q7QUFFM0MsTUFBTSw2QkFBNkIsR0FBRyxDQUFDLElBQW1CLEVBQVcsRUFBRTtJQUMxRSxNQUFNLGFBQWEsR0FBRyxJQUE4QixDQUFDO0lBQ3JELE1BQU0sTUFBTSxHQUFHLGFBQWEsYUFBYixhQUFhLHVCQUFiLGFBQWEsQ0FBRSxNQUE2QixDQUFDO0lBQzVELElBQUksTUFBTSxJQUFJLE1BQU0sQ0FBQyxJQUFJLEtBQUssZ0JBQWdCLEVBQUU7UUFDNUMsT0FBTyxJQUFJLENBQUM7S0FDZjtJQUNELE9BQU8sS0FBSyxDQUFDO0FBQ2pCLENBQUMsQ0FBQztBQVBXLFFBQUEsNkJBQTZCLGlDQU94QztBQUNLLE1BQU0scUJBQXFCLEdBQUcsQ0FDakMsRUFBNkIsRUFDdEIsRUFBRTs7SUFDVCxJQUFJLENBQUMsRUFBRSxFQUFFO1FBQ0wsT0FBTyxLQUFLLENBQUM7S0FDaEI7SUFDRCxNQUFNLDJCQUEyQixHQUFHLE1BQUEsRUFBRSxhQUFGLEVBQUUsdUJBQUYsRUFBRSxDQUFFLFVBQVUsMENBQUUsSUFBSSxDQUNwRCxDQUFDLENBQUMsRUFBRSxFQUFFLENBQ0EsQ0FBdUIsQ0FBQyxHQUEyQixDQUFDLElBQUk7UUFDMUQscUJBQXFCLENBQ1AsQ0FBQztJQUN2QiwwQ0FBMEM7SUFDMUMsSUFBSSxFQUFFLElBQUksQ0FBQywyQkFBMkIsRUFBRTtRQUNwQyxPQUFPLElBQUksQ0FBQztLQUNmO0lBQ0QsK0NBQStDO0lBQy9DLE1BQU0sOEJBQThCLEdBQ2hDLENBQUMsMkJBQTJCLGFBQTNCLDJCQUEyQix1QkFBM0IsMkJBQTJCLENBQUUsS0FBMEIsQ0FBQSxDQUFDLEdBQUc7UUFDNUQsT0FBTyxDQUFDO0lBQ1osSUFBSSw4QkFBOEIsRUFBRTtRQUNoQyxPQUFPLElBQUksQ0FBQztLQUNmO0lBQ0Qsa0RBQWtEO0lBQ2xELE9BQU8sS0FBSyxDQUFDO0FBQ2pCLENBQUMsQ0FBQztBQXhCVyxRQUFBLHFCQUFxQix5QkF3QmhDO0FBRUssTUFBTSxxQ0FBcUMsR0FBRyxDQUNqRCxJQUFtQixFQUNaLEVBQUU7O0lBQ1QsMENBQTBDO0lBQzFDLElBQUksQ0FBQyxJQUFBLHFDQUE2QixFQUFDLElBQUksQ0FBQyxFQUFFO1FBQ3RDLE9BQU8sS0FBSyxDQUFDO0tBQ2hCO0lBQ0QsTUFBTSxhQUFhLEdBQUcsSUFBOEIsQ0FBQztJQUNyRCxxR0FBcUc7SUFDckcscUVBQXFFO0lBQ3JFLElBQ0ksQ0FBQSxNQUFBLGFBQWEsQ0FBQyxTQUFTLDBDQUFFLE1BQU0sTUFBSyxDQUFDO1FBQ3JDLGFBQWEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLGtCQUFrQixFQUN4RDtRQUNFLE9BQU8sS0FBSyxDQUFDO0tBQ2hCO0lBQ0QsTUFBTSxRQUFRLEdBQUcsYUFBYSxhQUFiLGFBQWEsdUJBQWIsYUFBYSxDQUFFLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUU3QyxPQUFPLElBQUEsNkJBQXFCLEVBQUMsUUFBUSxDQUFDLENBQUM7QUFDM0MsQ0FBQyxDQUFDO0FBbkJXLFFBQUEscUNBQXFDLHlDQW1CaEQ7QUFFSyxNQUFNLDRDQUE0QyxHQUFHLENBQ3hELElBQW1CLEVBQ1osRUFBRTtJQUNULDRKQUE0SjtJQUM1SixNQUFNLGtCQUFrQixHQUFHLElBQTBCLENBQUM7SUFDdEQsTUFBTSxZQUFZLEdBQUcsa0JBQWtCLGFBQWxCLGtCQUFrQix1QkFBbEIsa0JBQWtCLENBQUUsSUFBK0IsQ0FBQztJQUN6RSxNQUFNLGNBQWMsR0FDaEIsWUFBWSxhQUFaLFlBQVksdUJBQVosWUFBWSxDQUFFLGNBQTBDLENBQUM7SUFDN0QsTUFBTSxRQUFRLEdBQUcsY0FBYyxhQUFkLGNBQWMsdUJBQWQsY0FBYyxDQUFFLFFBQStCLENBQUM7SUFDakUsSUFBSSxRQUFRLEtBQUssU0FBUyxJQUFJLFFBQVEsQ0FBQyxJQUFJLEtBQUssdUJBQXVCLEVBQUU7UUFDckUsT0FBTyxLQUFLLENBQUM7S0FDaEI7SUFDRCx3REFBd0Q7SUFDeEQsT0FBTyxJQUFBLDZCQUFxQixFQUN4QixZQUFZLENBQUMsVUFBdUMsQ0FDdkQsQ0FBQztBQUNOLENBQUMsQ0FBQztBQWhCVyxRQUFBLDRDQUE0QyxnREFnQnZEO0FBRUYsTUFBTSxJQUFJLEdBQUcsSUFBQSx1QkFBVSxFQUFDO0lBQ3BCLElBQUksRUFBRSwyQ0FBMkM7SUFDakQsSUFBSSxFQUFFO1FBQ0YsSUFBSSxFQUFFO1lBQ0YsV0FBVyxFQUNQLDJJQUEySTtZQUMvSSxXQUFXLEVBQUUsS0FBSztZQUNsQixvQkFBb0IsRUFBRSxLQUFLO1NBQzlCO1FBQ0QsUUFBUSxFQUFFO1lBQ04sZ0NBQWdDLEVBQUUsaUxBQWlMO1NBQ3ROO1FBQ0QsTUFBTSxFQUFFLEVBQUU7UUFDVixjQUFjLEVBQUUsS0FBSztRQUNyQixJQUFJLEVBQUUsWUFBWTtLQUNyQjtJQUNELGNBQWMsRUFBRSxFQUFFO0lBRWxCLE1BQU0sQ0FDRixPQUVDO1FBRUQsT0FBTztZQUNILGdFQUFnRTtZQUNoRSxhQUFhLENBQUMsSUFBbUI7Z0JBQzdCLGdFQUFnRTtnQkFDaEUsTUFBTSxNQUFNLEdBQUcsSUFBQSw2Q0FBcUMsRUFBQyxJQUFJLENBQUMsQ0FBQztnQkFFM0QsSUFBSSxNQUFNLEVBQUU7b0JBQ1IsT0FBTyxDQUFDLE1BQU0sQ0FBQzt3QkFDWCxJQUFJLEVBQUUsSUFBSTt3QkFDVixTQUFTLEVBQUUsa0NBQWtDO3FCQUNoRCxDQUFDLENBQUM7aUJBQ047WUFDTCxDQUFDO1lBQ0QsZ0VBQWdFO1lBQ2hFLGtCQUFrQixDQUFDLElBQW1CO2dCQUNsQyxnRUFBZ0U7Z0JBQ2hFLE1BQU0sTUFBTSxHQUNSLElBQUEsb0RBQTRDLEVBQUMsSUFBSSxDQUFDLENBQUM7Z0JBRXZELElBQUksTUFBTSxFQUFFO29CQUNSLE9BQU8sQ0FBQyxNQUFNLENBQUM7d0JBQ1gsSUFBSSxFQUFFLElBQUk7d0JBQ1YsU0FBUyxFQUFFLGtDQUFrQztxQkFDaEQsQ0FBQyxDQUFDO2lCQUNOO1lBQ0wsQ0FBQztTQUNKLENBQUM7SUFDTixDQUFDO0NBQ0osQ0FBQyxDQUFDO0FBRUgsa0JBQWUsSUFBSSxDQUFDIn0=
112
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hvdWxkU3BlY2lmeUZvcmJpZFVua25vd25WYWx1ZXNSdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3J1bGVzL3Nob3VsZFNwZWNpZnlGb3JiaWRVbmtub3duVmFsdWVzL3Nob3VsZFNwZWNpZnlGb3JiaWRVbmtub3duVmFsdWVzUnVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSxvREFBNEQ7QUFDNUQsdURBQWtEO0FBQ2xELHVFQUFxRTtBQUU5RCxNQUFNLDZCQUE2QixHQUFHLENBQUMsSUFBbUIsRUFBVyxFQUFFO0lBQzFFLE1BQU0sYUFBYSxHQUFHLElBQThCLENBQUM7SUFDckQsTUFBTSxNQUFNLEdBQUcsYUFBYSxhQUFiLGFBQWEsdUJBQWIsYUFBYSxDQUFFLE1BQTZCLENBQUM7SUFDNUQsSUFBSSxNQUFNLElBQUksTUFBTSxDQUFDLElBQUksS0FBSyxnQkFBZ0IsRUFBRTtRQUM1QyxPQUFPLElBQUksQ0FBQztLQUNmO0lBQ0QsT0FBTyxLQUFLLENBQUM7QUFDakIsQ0FBQyxDQUFDO0FBUFcsUUFBQSw2QkFBNkIsaUNBT3hDO0FBQ0ssTUFBTSxxQkFBcUIsR0FBRyxDQUNqQyxFQUE2QixFQUN0QixFQUFFOztJQUNULElBQUksQ0FBQyxFQUFFLEVBQUU7UUFDTCxPQUFPLEtBQUssQ0FBQztLQUNoQjtJQUNELE1BQU0sMkJBQTJCLEdBQUcsTUFBQSxFQUFFLGFBQUYsRUFBRSx1QkFBRixFQUFFLENBQUUsVUFBVSwwQ0FDNUMsTUFBTSxDQUFDLElBQUEsd0JBQVksRUFBQyxnQkFBUSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsRUFDdEQsSUFBSSxDQUNELENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBRSxDQUFDLENBQUMsR0FBMkIsQ0FBQyxJQUFJLEtBQUsscUJBQXFCLENBQ2xELENBQUM7SUFDM0IsMENBQTBDO0lBQzFDLElBQUksRUFBRSxJQUFJLENBQUMsMkJBQTJCLEVBQUU7UUFDcEMsT0FB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
@@ -0,0 +1,10 @@
1
+ import { TSESTree } from "@typescript-eslint/utils";
2
+ export declare type ValidModuleNodeTypes = TSESTree.Identifier | TSESTree.CallExpression;
3
+ export declare const isValidModuleMetaPropertyType: (node: TSESTree.Expression | TSESTree.SpreadElement | null) => node is ValidModuleNodeTypes;
4
+ export declare const getRelevantNodeName: (node: TSESTree.Node) => string;
5
+ declare const _default: import("@typescript-eslint/utils/dist/ts-eslint/Rule").RuleModule<"moduleMetadataArraysAreSorted", {
6
+ locale: string;
7
+ }[], {
8
+ [x: string]: ({ elements, }: TSESTree.ArrayExpression) => void;
9
+ }>;
10
+ export default _default;
@@ -0,0 +1,93 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getRelevantNodeName = exports.isValidModuleMetaPropertyType = void 0;
4
+ const utils_1 = require("@typescript-eslint/utils");
5
+ const createRule_1 = require("../../utils/createRule");
6
+ const wellKnownSelectors_1 = require("../../utils/wellKnownSelectors");
7
+ const ast_utils_1 = require("@typescript-eslint/utils/dist/ast-utils");
8
+ // Inspired by https://github.com/angular-eslint/angular-eslint/blob/main/packages/eslint-plugin/src/rules/sort-ngmodule-metadata-arrays.ts
9
+ const DEFAULT_LOCALE = "en-US";
10
+ const isValidModuleMetaPropertyType = (node) => {
11
+ return (!!node &&
12
+ (0, ast_utils_1.isNodeOfTypes)([
13
+ utils_1.TSESTree.AST_NODE_TYPES.Identifier,
14
+ utils_1.TSESTree.AST_NODE_TYPES.CallExpression,
15
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
16
+ ]) // unsure about this type
17
+ );
18
+ };
19
+ exports.isValidModuleMetaPropertyType = isValidModuleMetaPropertyType;
20
+ const getRelevantNodeName = (node) => {
21
+ let currentName = "";
22
+ if (node.type === utils_1.TSESTree.AST_NODE_TYPES.Identifier) {
23
+ currentName = node.name;
24
+ }
25
+ if (node.type === utils_1.TSESTree.AST_NODE_TYPES.CallExpression &&
26
+ node.callee.type === utils_1.TSESTree.AST_NODE_TYPES.MemberExpression &&
27
+ node.callee.object.type === utils_1.TSESTree.AST_NODE_TYPES.Identifier) {
28
+ currentName = node.callee.object.name;
29
+ }
30
+ return currentName;
31
+ };
32
+ exports.getRelevantNodeName = getRelevantNodeName;
33
+ exports.default = (0, createRule_1.createRule)({
34
+ name: "sort-module-metadata-arrays",
35
+ meta: {
36
+ type: "suggestion",
37
+ docs: {
38
+ description: "Ensures ASC alphabetical order for `Module` metadata arrays for easy visual scanning",
39
+ recommended: false,
40
+ },
41
+ fixable: "code",
42
+ schema: [
43
+ {
44
+ type: "object",
45
+ properties: {
46
+ locale: {
47
+ type: "string",
48
+ description: "A string with a BCP 47 language tag.",
49
+ default: DEFAULT_LOCALE,
50
+ },
51
+ },
52
+ additionalProperties: false,
53
+ },
54
+ ],
55
+ messages: {
56
+ moduleMetadataArraysAreSorted: "`Module` metadata arrays should be sorted in ASC alphabetical order",
57
+ },
58
+ },
59
+ defaultOptions: [
60
+ {
61
+ locale: DEFAULT_LOCALE,
62
+ },
63
+ ],
64
+ create(context, [{ locale }]) {
65
+ const sourceCode = context.getSourceCode();
66
+ return {
67
+ [`${wellKnownSelectors_1.MODULE_CLASS_DECORATOR} Property > ArrayExpression`]({ elements, }) {
68
+ const unorderedNodes = elements
69
+ // nestjs modules use identifiers and call expressions
70
+ // can modify this later
71
+ .filter(exports.isValidModuleMetaPropertyType)
72
+ .map((current, index, list) => [current, list[index + 1]])
73
+ .find(([current, next]) => {
74
+ return (current &&
75
+ next &&
76
+ (0, exports.getRelevantNodeName)(current).localeCompare((0, exports.getRelevantNodeName)(next), locale) === 1);
77
+ });
78
+ if (!unorderedNodes)
79
+ return;
80
+ const [unorderedNode, nextNode] = unorderedNodes;
81
+ context.report({
82
+ node: nextNode,
83
+ messageId: "moduleMetadataArraysAreSorted",
84
+ fix: (fixer) => [
85
+ fixer.replaceText(unorderedNode, sourceCode.getText(nextNode)),
86
+ fixer.replaceText(nextNode, sourceCode.getText(unorderedNode)),
87
+ ],
88
+ });
89
+ },
90
+ };
91
+ },
92
+ });
93
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic29ydE1vZHVsZU1ldGFkYXRhQXJyYXlzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3J1bGVzL3NvcnRNb2R1bGVNZXRhZGF0YUFycmF5cy9zb3J0TW9kdWxlTWV0YWRhdGFBcnJheXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsb0RBQWtEO0FBQ2xELHVEQUFrRDtBQUNsRCx1RUFBc0U7QUFDdEUsdUVBQXNFO0FBRXRFLDJJQUEySTtBQUUzSSxNQUFNLGNBQWMsR0FBRyxPQUFPLENBQUM7QUFNeEIsTUFBTSw2QkFBNkIsR0FBRyxDQUN6QyxJQUF5RCxFQUM3QixFQUFFO0lBQzlCLE9BQU8sQ0FDSCxDQUFDLENBQUMsSUFBSTtRQUNMLElBQUEseUJBQWEsRUFBQztZQUNYLGdCQUFRLENBQUMsY0FBYyxDQUFDLFVBQVU7WUFDbEMsZ0JBQVEsQ0FBQyxjQUFjLENBQUMsY0FBYztZQUN0Qyw4REFBOEQ7U0FDakUsQ0FBUyxDQUFDLHlCQUF5QjtLQUN2QyxDQUFDO0FBQ04sQ0FBQyxDQUFDO0FBWFcsUUFBQSw2QkFBNkIsaUNBV3hDO0FBQ0ssTUFBTSxtQkFBbUIsR0FBRyxDQUFDLElBQW1CLEVBQUUsRUFBRTtJQUN2RCxJQUFJLFdBQVcsR0FBRyxFQUFFLENBQUM7SUFFckIsSUFBSSxJQUFJLENBQUMsSUFBSSxLQUFLLGdCQUFRLENBQUMsY0FBYyxDQUFDLFVBQVUsRUFBRTtRQUNsRCxXQUFXLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQztLQUMzQjtJQUNELElBQ0ksSUFBSSxDQUFDLElBQUksS0FBSyxnQkFBUSxDQUFDLGNBQWMsQ0FBQyxjQUFjO1FBQ3BELElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxLQUFLLGdCQUFRLENBQUMsY0FBYyxDQUFDLGdCQUFnQjtRQUM3RCxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEtBQUssZ0JBQVEsQ0FBQyxjQUFjLENBQUMsVUFBVSxFQUNoRTtRQUNF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
@@ -76,6 +76,7 @@ const rule = (0, createRule_1.createRule)({
76
76
  // this is getting very messy
77
77
  if (isAnArray) {
78
78
  const mainTypeInShortArray = (_c = (_b = (_a = node.typeAnnotation) === null || _a === void 0 ? void 0 : _a.typeAnnotation) === null || _b === void 0 ? void 0 : _b.elementType) === null || _c === void 0 ? void 0 : _c.type;
79
+ // eslint-disable-next-line unicorn/no-negated-condition
79
80
  if (!mainTypeInShortArray) {
80
81
  // try to get the type of Array<type> syntax
81
82
  const foundParams = (_f = (_e = (_d = node.typeAnnotation) === null || _d === void 0 ? void 0 : _d.typeAnnotation) === null || _e === void 0 ? void 0 : _e.typeParameters) === null || _f === void 0 ? void 0 : _f.params;
@@ -195,4 +196,4 @@ const rule = (0, createRule_1.createRule)({
195
196
  },
196
197
  });
197
198
  exports.default = rule;
198
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGVOb25QcmltaXRpdmVOZWVkc0RlY29yYXRvcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcnVsZXMvdmFsaWRhdGVOb25QcmltaXR2ZXNOZWVkc1R5cGVEZWNvcmF0b3IvdmFsaWRhdGVOb25QcmltaXRpdmVOZWVkc0RlY29yYXRvcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsa0RBQWtEO0FBQ2xELG9EQUtrQztBQUNsQyx1REFBa0Q7QUFDbEQscUVBQWdFO0FBRWhFLE1BQU0sY0FBYyxHQUFHLElBQUksR0FBRyxDQUFDO0lBQzNCLHNCQUFjLENBQUMsZUFBZTtJQUM5QixzQkFBYyxDQUFDLGdCQUFnQjtJQUMvQixzQkFBYyxDQUFDLGVBQWU7SUFDOUIsc0JBQWMsQ0FBQyxhQUFhO0NBQy9CLENBQUMsQ0FBQztBQU9JLE1BQU0sYUFBYSxHQUFHLEdBQVksRUFBRTtJQUN2QyxPQUFPLElBQUksQ0FBQztBQUNoQixDQUFDLENBQUM7QUFGVyxRQUFBLGFBQWEsaUJBRXhCO0FBRUYsTUFBTSxJQUFJLEdBQUcsSUFBQSx1QkFBVSxFQUFDO0lBQ3BCLElBQUksRUFBRSx1REFBdUQ7SUFDN0QsSUFBSSxFQUFFO1FBQ0YsSUFBSSxFQUFFO1lBQ0YsV0FBVyxFQUNQLGdGQUFnRjtZQUNwRixXQUFXLEVBQUUsS0FBSztZQUNsQixvQkFBb0IsRUFBRSxLQUFLO1NBQzlCO1FBQ0QsUUFBUSxFQUFFO1lBQ04sd0JBQXdCLEVBQ3BCLHdFQUF3RTtZQUM1RSxzQkFBc0IsRUFDbEIsOEpBQThKO1NBQ3JLO1FBQ0QsTUFBTSxFQUFFO1lBQ0o7Z0JBQ0ksVUFBVSxFQUFFO29CQUNSLHdCQUF3QixFQUFFO3dCQUN0QixXQUFXLEVBQ1Asc0VBQXNFO3dCQUMxRSxJQUFJLEVBQUUsT0FBTzt3QkFDYixRQUFRLEVBQUUsQ0FBQzt3QkFDWCxLQUFLLEVBQUU7NEJBQ0gsSUFBSSxFQUFFLFFBQVE7NEJBQ2QsU0FBUyxFQUFFLENBQUM7eUJBQ2Y7cUJBQ0o7b0JBQ0QsbUNBQW1DLEVBQUU7d0JBQ2pDLFdBQVcsRUFDUCwyRUFBMkU7d0JBQy9FLElBQUksRUFBRSxPQUFPO3dCQUNiLFFBQVEsRUFBRSxDQUFDO3dCQUNYLEtBQUssRUFBRTs0QkFDSCxJQUFJLEVBQUUsUUFBUTs0QkFDZCxTQUFTLEVBQUUsQ0FBQzt5QkFDZjtxQkFDSjtpQkFDSjthQUNKO1NBQ0o7UUFDRCxjQUFjLEVBQUUsSUFBSTtRQUNwQixJQUFJLEVBQUUsWUFBWTtLQUNyQjtJQUNELGNBQWMsRUFBRTtRQUNaO1lBQ0ksd0JBQXdCLEVBQUUsSUFBSSxLQUFLLEVBQVU7WUFDN0MsbUNBQW1DLEVBQUUsSUFBSSxLQUFLLEVBQVU7U0FDM0Q7S0FDSjtJQUVELE1BQU0sQ0FDRixPQUtDO1FBRUQsTUFBTSxFQUFDLHdCQUF3QixFQUFFLG1DQUFtQyxFQUFDLEdBQ2pFLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUk7WUFDbEIsd0JBQXdCLEVBQUUsRUFBRTtTQUMvQixDQUFDO1FBRU4sTUFBTSxjQUFjLEdBQUcsbUJBQVcsQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUM5RCxNQUFNLFdBQVcsR0FBRyxjQUFjLENBQUMsT0FBTyxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQzVELE9BQU87WUFDSCxnRUFBZ0U7WUFDaEUsa0JBQWtCLENBQUMsSUFBaUM7O2dCQUNoRCx3Q0FBd0M7Z0JBQ3hDLElBQUksUUFBb0MsQ0FBQztnQkFDekMsTUFBTSxTQUFTLEdBQ1gscUNBQWlCLENBQUMsa0NBQWtDLENBQ2hELElBQUksRUFDSixjQUFjLEVBQ2QsV0FBVyxDQUNkLENBQUM7Z0JBQ04sNkJBQTZCO2dCQUM3QixJQUFJLFNBQVMsRUFBRTtvQkFDWCxNQUFNLG9CQUFvQixHQUFHLE1BQUEsTUFDekIsTUFBQSxJQUFJLENBQUMsY0FBYywwQ0FDYixjQUNULDBDQUFFLFdBQVcsMENBQUUsSUFBSSxDQUFDO29CQUNyQixJQUFJLENBQUMsb0JBQW9CLEVBQUU7d0JBQ3ZCLDRDQUE0Qzt3QkFDNUMsTUFBTSxXQUFXLEdBQUcsTUFBQSxNQUNoQixNQUFBLElBQUksQ0FBQyxjQUFjLDBDQUNiLGNBQ1QsMENBQUUsY0FBYywwQ0FBRSxNQUFNLENBQUM7d0JBQzFCLElBQUksV0FBVyxJQUFJLFdBQVcsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFOzRCQUN6QyxRQUFRLEdBQUcsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQzt5QkFDbEM7cUJBQ0o7eUJBQU07d0JBQ0gsUUFBUSxHQUFHLG9CQUFvQixDQUFDO3FCQUNuQztpQkFDSjtxQkFBTTtvQkFDSCxRQUFRLEdBQUcsTUFBQSxNQUFBLElBQUksQ0FBQyxjQUFjLDBDQUFFLGNBQWMsMENBQUUsSUFBSSxDQUFDO2lCQUN4RDtnQkFFRCxJQUFJLENBQUMsUUFBUSxFQUFFO29CQUNYLE9BQU87aUJBQ1Y7Z0JBRUQscURBQXFEO2dCQUNyRCxNQUFNLG1CQUFtQixHQUFHLGNBQWMsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUM7Z0JBQ3pELElBQUksbUJBQW1CLEVBQUU7b0JBQ3JCLE9BQU87aUJBQ1Y7Z0JBRUQsZ0VBQWdFO2dCQUNoRSxNQUFNLDBCQUEwQixHQUM1QixRQUFRLEtBQUssc0JBQWMsQ0FBQyxXQUFXO3FCQUN2QyxNQUFBLENBQ0ksTUFBQSxJQUFJLENBQUMsY0FBYywwQ0FDYixjQUNULENBQUEsQ0FBQyxLQUFLLDBDQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQSxDQUFDO2dCQUNyRCxJQUFJLDBCQUEwQixFQUFFO29CQUM1QixPQUFPO2lCQUNWO2dCQUVELG9EQUFvRDtnQkFDcEQsTUFBTSxVQUFVLEdBQ1osY0FBYyxDQUFDLHFCQUFxQixDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDbkQsTUFBTSxVQUFVLEdBQUcsV0FBVyxDQUFDLGlCQUFpQixDQUFDLFVBQVUsQ0FBQyxDQUFDO2dCQUU3RCxJQUFJLHFDQUFpQixDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsRUFBRTtvQkFDMUMsT0FBTztpQkFDVjtnQkFFRCxxREFBcUQ7Z0JBQ3JELDRFQUE0RTtnQkFDNUUsZ0RBQWdEO2dCQUNoRCxxREFBcUQ7Z0JBQ3JELDRFQUE0RTtnQkFDNUUsTUFBTSw2QkFBNkIsR0FDL0IscUNBQWlCLENBQUMsdUJBQXVCLENBQ3JDLElBQUksRUFDSixtQ0FBbUMsQ0FDdEMsQ0FBQztnQkFFTixNQUFNLE9BQU8sR0FBRyw2QkFBNkIsQ0FBQyxJQUFJLENBQzlDLENBQUMsNEJBQTRCLEVBQUUsRUFBRSxDQUM3QixxQ0FBaUIsQ0FBQyxpQkFBaUIsQ0FDL0IsNEJBQTRCLENBQy9CLENBQ1IsQ0FBQztnQkFFRixJQUFJLE9BQU8sRUFBRTtvQkFDVCxPQUFPO2lCQUNWO2dCQUVELE1BQU0sU0FBUyxHQUFHLDZCQUE2QixDQUFDLElBQUksQ0FDaEQsQ0FBQyw0QkFBNEIsRUFBRSxFQUFFLENBQzdCLHFDQUFpQixDQUFDLG1CQUFtQixDQUNqQyw0QkFBNEIsQ0FDL0IsQ0FDUixDQUFDO2dCQUVGLElBQUksU0FBUyxFQUFFO29CQUNYLE9BQU87aUJBQ1Y7Z0JBRUQsd0NBQXdDO2dCQUN4Qyw0Q0FBNEM7Z0JBQzVDLGdCQUFnQjtnQkFDaEIsaUVBQWlFO2dCQUNqRSxTQUFTO2dCQUNULElBQUksNkJBQTZCLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtvQkFDNUMsT0FBTztpQkFDVjtnQkFFRCw0RUFBNEU7Z0JBQzVFLE1BQU0sY0FBYyxHQUFHLElBQUksS0FBSyxFQUFVLENBQUMsTUFBTSxDQUM3Qyx3QkFBd0IsRUFBRSwyRUFBMkU7Z0JBQ3JHLENBQUMsTUFBTSxDQUFDLENBQUMsb0NBQW9DO2lCQUNoRCxDQUFDO2dCQUVGLDJGQUEyRjtnQkFDM0YsTUFBTSxrQkFBa0IsR0FBRyxxQ0FBaUIsQ0FBQyxrQkFBa0IsQ0FDM0QsSUFBSSxFQUNKLGNBQWMsQ0FDakIsQ0FBQztnQkFFRixJQUFJLGtCQUFrQixDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7b0JBQ2pDLE1BQU0sa0JBQWtCLEdBQ3BCLE1BQUEsSUFBSSxDQUFDLGNBQWMsMENBQUUsY0FBYyxDQUFDO29CQUN4QyxJQUFJLGNBQWtDLENBQUM7b0JBRXZDLElBQUksa0JBQWtCLEVBQUU7d0JBQ3BCLElBQ0ksa0JBQWtCLENBQUMsSUFBSTs0QkFDbkIsc0JBQWMsQ0FBQyxlQUFlOzRCQUNsQyxrQkFBa0IsQ0FBQyxRQUFRLENBQUMsSUFBSSxLQUFLLFlBQVksRUFDbkQ7NEJBQ0UsY0FBYyxHQUFHLGtCQUFrQixDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUM7NEJBRWxELElBQUksa0JBQWtCLENBQUMsUUFBUSxDQUFDLElBQUksS0FBSyxPQUFPLEVBQUU7Z0NBQzlDLE1BQU0sV0FBVyxHQUFHLE1BQUEsTUFDaEIsTUFBQSxJQUFJLENBQUMsY0FBYywwQ0FDYixjQUNULDBDQUFFLGNBQWMsMENBQUUsTUFBTSxDQUFDO2dDQUUxQixJQUFJLFdBQVcsSUFBSSxXQUFXLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtvQ0FDekMsTUFBTSxRQUFRLEdBQ1YsV0FBVyxDQUFDLENBQUMsQ0FDaEIsQ0FBQyxRQUFRLENBQUM7b0NBRVgsSUFDSSxRQUFRLENBQUMsSUFBSTt3Q0FDYixzQkFBYyxDQUFDLFVBQVUsRUFDM0I7d0NBQ0UsY0FBYyxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUM7cUNBQ2xDO2lDQUNKOzZCQUNKO3lCQUNKOzZCQUFNLElBQ0gsa0JBQWtCLENBQUMsSUFBSTs0QkFDdkIsc0JBQWMsQ0FBQyxXQUFXLEVBQzVCOzRCQUNFLE1BQU0sZUFBZSxHQUNqQixrQkFBa0IsQ0FBQyxXQUFXLENBQUM7NEJBRW5DLElBQ0ksZUFBZSxDQUFDLElBQUk7Z0NBQ2hCLHNCQUFjLENBQUMsZUFBZTtnQ0FDbEMsZUFBZSxDQUFDLFFBQVEsQ0FBQyxJQUFJO29DQUN6QixzQkFBYyxDQUFDLFVBQVUsRUFDL0I7Z0NBQ0UsY0FBYyxHQUFHLGVBQWUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDOzZCQUNsRDt5QkFDSjtxQkFDSjtvQkFFRCxJQUFJLGNBQWMsRUFBRTt3QkFDaEIsT0FBTyxDQUFDLE1BQU0sQ0FBQzs0QkFDWCxJQUFJLEVBQUUsSUFBSTs0QkFDVixTQUFTLEVBQUUsd0JBQXdCOzRCQUNuQyxPQUFPLEVBQUU7Z0NBQ0w7b0NBQ0ksSUFBSSxFQUFFLEVBQUMsY0FBYyxFQUFDO29DQUN0QixTQUFTLEVBQUUsMEJBQTBCO29DQUNyQyxHQUFHLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRTt3Q0FDWCxPQUFPLEtBQUssQ0FBQyxnQkFBZ0IsQ0FDekIsSUFBSSxFQUNKLGVBQWUsY0FBYyxHQUFHLENBQ25DLENBQUM7b0NBQ04sQ0FBQztpQ0FDSjs2QkFDSjt5QkFDSixDQUFDLENBQUM7cUJBQ047eUJBQU07d0JBQ0gsT0FBTyxDQUFDLE1BQU0sQ0FBQzs0QkFDWCxJQUFJLEVBQUUsSUFBSTs0QkFDVixTQUFTLEVBQUUsd0JBQXdCO3lCQUN0QyxDQUFDLENBQUM7cUJBQ047aUJBQ0o7WUFDTCxDQUFDO1NBQ0osQ0FBQztJQUNOLENBQUM7Q0FDSixDQUFDLENBQUM7QUFFSCxrQkFBZSxJQUFJLENBQUMifQ==
199
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGVOb25QcmltaXRpdmVOZWVkc0RlY29yYXRvcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcnVsZXMvdmFsaWRhdGVOb25QcmltaXR2ZXNOZWVkc1R5cGVEZWNvcmF0b3IvdmFsaWRhdGVOb25QcmltaXRpdmVOZWVkc0RlY29yYXRvcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsa0RBQWtEO0FBQ2xELG9EQUtrQztBQUNsQyx1REFBa0Q7QUFDbEQscUVBQWdFO0FBRWhFLE1BQU0sY0FBYyxHQUFHLElBQUksR0FBRyxDQUFDO0lBQzNCLHNCQUFjLENBQUMsZUFBZTtJQUM5QixzQkFBYyxDQUFDLGdCQUFnQjtJQUMvQixzQkFBYyxDQUFDLGVBQWU7SUFDOUIsc0JBQWMsQ0FBQyxhQUFhO0NBQy9CLENBQUMsQ0FBQztBQU9JLE1BQU0sYUFBYSxHQUFHLEdBQVksRUFBRTtJQUN2QyxPQUFPLElBQUksQ0FBQztBQUNoQixDQUFDLENBQUM7QUFGVyxRQUFBLGFBQWEsaUJBRXhCO0FBRUYsTUFBTSxJQUFJLEdBQUcsSUFBQSx1QkFBVSxFQUFDO0lBQ3BCLElBQUksRUFBRSx1REFBdUQ7SUFDN0QsSUFBSSxFQUFFO1FBQ0YsSUFBSSxFQUFFO1lBQ0YsV0FBVyxFQUNQLGdGQUFnRjtZQUNwRixXQUFXLEVBQUUsS0FBSztZQUNsQixvQkFBb0IsRUFBRSxLQUFLO1NBQzlCO1FBQ0QsUUFBUSxFQUFFO1lBQ04sd0JBQXdCLEVBQ3BCLHdFQUF3RTtZQUM1RSxzQkFBc0IsRUFDbEIsOEpBQThKO1NBQ3JLO1FBQ0QsTUFBTSxFQUFFO1lBQ0o7Z0JBQ0ksVUFBVSxFQUFFO29CQUNSLHdCQUF3QixFQUFFO3dCQUN0QixXQUFXLEVBQ1Asc0VBQXNFO3dCQUMxRSxJQUFJLEVBQUUsT0FBTzt3QkFDYixRQUFRLEVBQUUsQ0FBQzt3QkFDWCxLQUFLLEVBQUU7NEJBQ0gsSUFBSSxFQUFFLFFBQVE7NEJBQ2QsU0FBUyxF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
@@ -0,0 +1 @@
1
+ export declare const MODULE_CLASS_DECORATOR = "ClassDeclaration > Decorator[expression.callee.name=\"Module\"]";
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MODULE_CLASS_DECORATOR = void 0;
4
+ exports.MODULE_CLASS_DECORATOR = 'ClassDeclaration > Decorator[expression.callee.name="Module"]';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2VsbEtub3duU2VsZWN0b3JzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWxzL3dlbGxLbm93blNlbGVjdG9ycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBYSxRQUFBLHNCQUFzQixHQUMvQiwrREFBK0QsQ0FBQyJ9
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@darraghor/eslint-plugin-nestjs-typed",
3
- "version": "3.21.2",
3
+ "version": "3.22.1",
4
4
  "description": "Eslint rules for nestjs projects",
5
5
  "scripts": {
6
6
  "clean": "rm -Rf ./dist/",
@@ -43,26 +43,26 @@
43
43
  "main": "dist/index.js",
44
44
  "types": "index.d.ts",
45
45
  "dependencies": {
46
- "@typescript-eslint/scope-manager": "^5.59.5",
47
- "@typescript-eslint/utils": "^5.59.5",
46
+ "@typescript-eslint/scope-manager": "^5.59.8",
47
+ "@typescript-eslint/utils": "^5.59.8",
48
48
  "eslint-module-utils": "2.8.0",
49
49
  "reflect-metadata": "0.1.13"
50
50
  },
51
51
  "devDependencies": {
52
- "@commitlint/cli": "17.6.3",
53
- "@commitlint/config-conventional": "17.6.3",
52
+ "@commitlint/cli": "17.6.5",
53
+ "@commitlint/config-conventional": "17.6.5",
54
54
  "@semantic-release/changelog": "6.0.3",
55
55
  "@semantic-release/exec": "6.0.3",
56
- "@types/eslint": "8.37.0",
57
- "@types/jest": "29.5.1",
56
+ "@types/eslint": "8.40.0",
57
+ "@types/jest": "29.5.2",
58
58
  "@types/node": "18.16.0",
59
- "@typescript-eslint/eslint-plugin": "5.59.5",
60
- "@typescript-eslint/parser": "5.59.5",
59
+ "@typescript-eslint/eslint-plugin": "5.59.8",
60
+ "@typescript-eslint/parser": "5.59.8",
61
61
  "class-validator": "^0.14",
62
- "eslint": "8.40.0",
62
+ "eslint": "8.42.0",
63
63
  "eslint-config-prettier": "8.8.0",
64
64
  "eslint-plugin-import": "2.27.5",
65
- "eslint-plugin-jsdoc": "44.2.3",
65
+ "eslint-plugin-jsdoc": "46.2.0",
66
66
  "eslint-plugin-prefer-arrow": "1.2.3",
67
67
  "eslint-plugin-unicorn": "47.0.0",
68
68
  "husky": "8.0.3",
@@ -71,7 +71,7 @@
71
71
  "jest-junit": "16.0.0",
72
72
  "lint-staged": "13.2.2",
73
73
  "prettier": "2.8.8",
74
- "semantic-release": "21.0.2",
74
+ "semantic-release": "21.0.3",
75
75
  "ts-jest": "29.1.0",
76
76
  "ts-node": "10.9.1",
77
77
  "typescript": "4.8.4"