@darraghor/eslint-plugin-nestjs-typed 3.11.0 → 3.12.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.
Files changed (24) hide show
  1. package/README.md +26 -0
  2. package/dist/fixtures/Controller.stub.d.ts +1 -0
  3. package/dist/fixtures/Controller.stub.js +10 -0
  4. package/dist/fixtures/example.controller.d.ts +2 -0
  5. package/dist/fixtures/example.controller.js +17 -0
  6. package/dist/fixtures/example.customprovider.d.ts +5 -0
  7. package/dist/fixtures/example.customprovider.js +14 -0
  8. package/dist/fixtures/example.module.js +5 -2
  9. package/dist/fixtures/example.providedClass.provider.d.ts +3 -0
  10. package/dist/fixtures/example.providedClass.provider.js +16 -0
  11. package/dist/index.d.ts +1 -1
  12. package/dist/rules/allPropertiesAreWhitelisted/allPropertiesAreWhitelisted.js +3 -26
  13. package/dist/rules/apiMethodsShouldSpecifyApiResponse/apiMethodsShouldSpecifyApiResponse.js +2 -2
  14. package/dist/rules/controllerDecoratedHasApiTags/controllerDecoratedHasApiTags.js +2 -2
  15. package/dist/rules/index.d.ts +1 -1
  16. package/dist/rules/injectablesShouldBeProvided/injectableShouldBeProvided.js +6 -6
  17. package/dist/rules/providerInjectedShouldMatchFactory/ProviderInjectedShouldMatchFactory.js +3 -3
  18. package/dist/rules/validate-non-primitves-needs-type-decorator/validateNonPrimitiveNeedsDecorators.d.ts +6 -1
  19. package/dist/rules/validate-non-primitves-needs-type-decorator/validateNonPrimitiveNeedsDecorators.js +27 -5
  20. package/dist/utils/nestModules/nestProvidedInjectableMapper.d.ts +1 -1
  21. package/dist/utils/nestModules/nestProvidedInjectableMapper.js +23 -10
  22. package/dist/utils/nestModules/nestProviderAstParser.d.ts +2 -2
  23. package/dist/utils/nestModules/nestProviderAstParser.js +21 -9
  24. package/package.json +17 -17
package/README.md CHANGED
@@ -6,6 +6,10 @@ Version 3.x supports Eslint version >=8.x and typescript eslint parser 5+
6
6
 
7
7
  There were many breaking changes between these versions.
8
8
 
9
+ typescript eslint parser supports a range of typescript versions but there can be a delay in supporting the latest versions.
10
+
11
+ 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
+
9
13
  ## Index of available rules
10
14
 
11
15
  (more details for each specific rule are available in sections below)
@@ -72,6 +76,19 @@ https://github.com/typestack/class-validator/issues/438
72
76
 
73
77
  ```
74
78
  npm install --save-dev @darraghor/eslint-plugin-nestjs-typed
79
+
80
+ // or
81
+
82
+ yarn add -D @darraghor/eslint-plugin-nestjs-typed
83
+ ```
84
+
85
+ If you don't already have `class-validator` you should install that
86
+
87
+ ```
88
+ npm install class-validator
89
+
90
+ // or
91
+ yarn add class-validator
75
92
  ```
76
93
 
77
94
  Then update your eslint with the plugin import and add the recommended rule set
@@ -202,6 +219,15 @@ export class CreateOrganisationDto {
202
219
 
203
220
  If you use any of the class validator decorators on a property that is not a primitive, you should tell class-transformer how to transform it into a class first.
204
221
 
222
+ This rule accepts an optional list of custom type decorators that will be counted as valid for the rule test. e.g.
223
+
224
+ ```ts
225
+ "@darraghor/nestjs-typed/validated-non-primitive-property-needs-type-decorator": [
226
+ "error",
227
+ {additionalTypeDecorators: ["TransformDate"]},
228
+ ],
229
+ ```
230
+
205
231
  This PASSES because we're validating a Person class and we have added the @Type decorator.
206
232
 
207
233
  ```ts
@@ -0,0 +1 @@
1
+ export declare function Controller(): any;
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Controller = void 0;
4
+ /* eslint-disable @typescript-eslint/no-explicit-any */
5
+ /* eslint-disable @typescript-eslint/no-unused-vars */
6
+ function Controller() {
7
+ return;
8
+ }
9
+ exports.Controller = Controller;
10
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29udHJvbGxlci5zdHViLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2ZpeHR1cmVzL0NvbnRyb2xsZXIuc3R1Yi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSx1REFBdUQ7QUFDdkQsc0RBQXNEO0FBQ3RELFNBQWdCLFVBQVU7SUFDdEIsT0FBTztBQUNYLENBQUM7QUFGRCxnQ0FFQyJ9
@@ -0,0 +1,2 @@
1
+ export declare class ExampleController {
2
+ }
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.ExampleController = void 0;
10
+ const Controller_stub_1 = require("./Controller.stub");
11
+ let ExampleController = class ExampleController {
12
+ };
13
+ ExampleController = __decorate([
14
+ (0, Controller_stub_1.Controller)()
15
+ ], ExampleController);
16
+ exports.ExampleController = ExampleController;
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhhbXBsZS5jb250cm9sbGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2ZpeHR1cmVzL2V4YW1wbGUuY29udHJvbGxlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBQSx1REFBNkM7QUFHN0MsSUFBYSxpQkFBaUIsR0FBOUIsTUFBYSxpQkFBaUI7Q0FBRyxDQUFBO0FBQXBCLGlCQUFpQjtJQUQ3QixJQUFBLDRCQUFVLEdBQUU7R0FDQSxpQkFBaUIsQ0FBRztBQUFwQiw4Q0FBaUIifQ==
@@ -0,0 +1,5 @@
1
+ import ShouldBeProvided from "./example.providedClass.provider";
2
+ export declare const ExampleProvider: {
3
+ provide: typeof ShouldBeProvided;
4
+ useFactory: () => ShouldBeProvided;
5
+ };
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.ExampleProvider = void 0;
7
+ const example_providedClass_provider_1 = __importDefault(require("./example.providedClass.provider"));
8
+ exports.ExampleProvider = {
9
+ provide: example_providedClass_provider_1.default,
10
+ useFactory: () => {
11
+ return new example_providedClass_provider_1.default();
12
+ },
13
+ };
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhhbXBsZS5jdXN0b21wcm92aWRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9maXh0dXJlcy9leGFtcGxlLmN1c3RvbXByb3ZpZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLHNHQUFnRTtBQUVuRCxRQUFBLGVBQWUsR0FBRztJQUMzQixPQUFPLEVBQUUsd0NBQWdCO0lBQ3pCLFVBQVUsRUFBRSxHQUFHLEVBQUU7UUFDYixPQUFPLElBQUksd0NBQWdCLEVBQUUsQ0FBQztJQUNsQyxDQUFDO0NBQ0osQ0FBQyJ9
@@ -12,13 +12,16 @@ Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.ExampleModule = void 0;
13
13
  const Module_stub_1 = require("./Module.stub");
14
14
  const example_provider_1 = __importDefault(require("./example.provider"));
15
+ const example_controller_1 = require("./example.controller");
16
+ const example_customprovider_1 = require("./example.customprovider");
15
17
  let ExampleModule = class ExampleModule {
16
18
  };
17
19
  ExampleModule = __decorate([
18
20
  (0, Module_stub_1.Module)({
19
21
  imports: [],
20
- providers: [example_provider_1.default],
22
+ controllers: [example_controller_1.ExampleController],
23
+ providers: [example_provider_1.default, example_customprovider_1.ExampleProvider],
21
24
  })
22
25
  ], ExampleModule);
23
26
  exports.ExampleModule = ExampleModule;
24
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhhbXBsZS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZml4dHVyZXMvZXhhbXBsZS5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBQUEsK0NBQXFDO0FBQ3JDLDBFQUFpRTtBQU1qRSxJQUFhLGFBQWEsR0FBMUIsTUFBYSxhQUFhO0NBQUcsQ0FBQTtBQUFoQixhQUFhO0lBSnpCLElBQUEsb0JBQU0sRUFBQztRQUNKLE9BQU8sRUFBRSxFQUFFO1FBQ1gsU0FBUyxFQUFFLENBQUMsMEJBQStCLENBQUM7S0FDL0MsQ0FBQztHQUNXLGFBQWEsQ0FBRztBQUFoQixzQ0FBYSJ9
27
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhhbXBsZS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZml4dHVyZXMvZXhhbXBsZS5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBQUEsK0NBQXFDO0FBQ3JDLDBFQUFpRTtBQUNqRSw2REFBdUQ7QUFDdkQscUVBQXlEO0FBT3pELElBQWEsYUFBYSxHQUExQixNQUFhLGFBQWE7Q0FBRyxDQUFBO0FBQWhCLGFBQWE7SUFMekIsSUFBQSxvQkFBTSxFQUFDO1FBQ0osT0FBTyxFQUFFLEVBQUU7UUFDWCxXQUFXLEVBQUUsQ0FBQyxzQ0FBaUIsQ0FBQztRQUNoQyxTQUFTLEVBQUUsQ0FBQywwQkFBK0IsRUFBRSx3Q0FBZSxDQUFDO0tBQ2hFLENBQUM7R0FDVyxhQUFhLENBQUc7QUFBaEIsc0NBQWEifQ==
@@ -0,0 +1,3 @@
1
+ declare class ShouldBeProvided {
2
+ }
3
+ export default ShouldBeProvided;
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ const Injectable_stub_1 = require("./Injectable.stub");
10
+ let ShouldBeProvided = class ShouldBeProvided {
11
+ };
12
+ ShouldBeProvided = __decorate([
13
+ (0, Injectable_stub_1.Injectable)()
14
+ ], ShouldBeProvided);
15
+ exports.default = ShouldBeProvided;
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhhbXBsZS5wcm92aWRlZENsYXNzLnByb3ZpZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2ZpeHR1cmVzL2V4YW1wbGUucHJvdmlkZWRDbGFzcy5wcm92aWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUFBLHVEQUE2QztBQUc3QyxJQUFNLGdCQUFnQixHQUF0QixNQUFNLGdCQUFnQjtDQUFHLENBQUE7QUFBbkIsZ0JBQWdCO0lBRHJCLElBQUEsNEJBQVUsR0FBRTtHQUNQLGdCQUFnQixDQUFHO0FBRXpCLGtCQUFlLGdCQUFnQixDQUFDIn0=
package/dist/index.d.ts CHANGED
@@ -32,7 +32,7 @@ declare const configuration: {
32
32
  "param-decorator-name-matches-route-param": import("@typescript-eslint/utils/dist/ts-eslint/Rule").RuleModule<"paramIdentifierDoesntNeedColon" | "paramIdentifierShouldMatch", never[], {
33
33
  Decorator(node: import("@typescript-eslint/types/dist/generated/ast-spec").Decorator): void;
34
34
  }>;
35
- "validated-non-primitive-property-needs-type-decorator": import("@typescript-eslint/utils/dist/ts-eslint/Rule").RuleModule<"shouldUseTypeDecorator", never[], {
35
+ "validated-non-primitive-property-needs-type-decorator": import("@typescript-eslint/utils/dist/ts-eslint/Rule").RuleModule<"shouldUseTypeDecorator", import("./rules/validate-non-primitves-needs-type-decorator/validateNonPrimitiveNeedsDecorators").ValidateNonPrimitivePropertyTypeDecoratorOptions, {
36
36
  PropertyDefinition(node: import("@typescript-eslint/types/dist/generated/ast-spec").PropertyDefinition): void;
37
37
  }>;
38
38
  "validate-nested-of-array-should-set-each": import("@typescript-eslint/utils/dist/ts-eslint/Rule").RuleModule<"shouldSetEachPropertyTrue" | "shouldSetEachPropertyFalse", never[], {
@@ -1,32 +1,9 @@
1
1
  "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
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
- };
25
2
  Object.defineProperty(exports, "__esModule", { value: true });
26
3
  const utils_1 = require("@typescript-eslint/utils");
27
- const classValidator = __importStar(require("class-validator"));
28
4
  const createRule_1 = require("../../utils/createRule");
29
- const CLASS_VALIDATOR_DECORATOR_NAMES = new Set(Object.keys(classValidator));
5
+ const classValidatorDecorators_1 = require("../../utils/classValidatorDecorators");
6
+ const CLASS_VALIDATOR_DECORATOR_NAMES = new Set(classValidatorDecorators_1.classValidatorDecorators);
30
7
  const rule = (0, createRule_1.createRule)({
31
8
  name: "all-properties-are-whitelisted",
32
9
  meta: {
@@ -79,4 +56,4 @@ const rule = (0, createRule_1.createRule)({
79
56
  },
80
57
  });
81
58
  exports.default = rule;
82
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWxsUHJvcGVydGllc0FyZVdoaXRlbGlzdGVkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3J1bGVzL2FsbFByb3BlcnRpZXNBcmVXaGl0ZWxpc3RlZC9hbGxQcm9wZXJ0aWVzQXJlV2hpdGVsaXN0ZWQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLG9EQUE0RTtBQUM1RSxnRUFBa0Q7QUFDbEQsdURBQWtEO0FBRWxELE1BQU0sK0JBQStCLEdBQUcsSUFBSSxHQUFHLENBQzNDLE1BQU0sQ0FBQyxJQUFJLENBQUMsY0FBd0IsQ0FBQyxDQUN4QyxDQUFDO0FBRUYsTUFBTSxJQUFJLEdBQUcsSUFBQSx1QkFBVSxFQUFDO0lBQ3BCLElBQUksRUFBRSxnQ0FBZ0M7SUFDdEMsSUFBSSxFQUFFO1FBQ0YsSUFBSSxFQUFFO1lBQ0YsV0FBVyxFQUFFLHdDQUF3QztZQUNyRCxXQUFXLEVBQUUsT0FBTztZQUNwQixvQkFBb0IsRUFBRSxLQUFLO1NBQzlCO1FBQ0QsUUFBUSxFQUFFO1lBQ04sZ0VBQWdFO1lBQ2hFLDRCQUE0QixFQUN4Qix5RkFBeUY7U0FDaEc7UUFDRCxJQUFJLEVBQUUsU0FBUztRQUNmLE1BQU0sRUFBRSxFQUFFO0tBQ2I7SUFDRCxjQUFjLEVBQUUsRUFBRTtJQUNsQixNQUFNLEVBQUUsVUFDSixPQUVDO1FBRUQsT0FBTztZQUNILGdFQUFnRTtZQUNoRSxnQkFBZ0IsQ0FBQyxJQUFJOztnQkFDakIsTUFBTSxhQUFhLEdBQWtDLEVBQUUsQ0FBQztnQkFDeEQsTUFBTSxnQkFBZ0IsR0FBa0MsRUFBRSxDQUFDO2dCQUMzRCxLQUFLLE1BQU0sT0FBTyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFO29CQUNsQyxJQUFJLE9BQU8sQ0FBQyxJQUFJLEtBQUssc0JBQWMsQ0FBQyxrQkFBa0IsRUFBRTt3QkFDcEQsU0FBUztxQkFDWjtvQkFDRCxNQUFNLFlBQVksR0FBRyxNQUFBLE9BQU8sQ0FBQyxVQUFVLDBDQUFFLElBQUksQ0FDekMsQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUNWLFNBQVMsQ0FBQyxVQUFVLENBQUMsSUFBSTt3QkFDckIsc0JBQWMsQ0FBQyxjQUFjO3dCQUNqQyxTQUFTLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxJQUFJOzRCQUM1QixzQkFBYyxDQUFDLFVBQVU7d0JBQzdCLCtCQUErQixDQUFDLEdBQUcsQ0FDL0IsU0FBUyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUNuQyxDQUNSLENBQUM7b0JBQ0YsSUFBSSxZQUFZLEVBQUU7d0JBQ2QsYUFBYSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztxQkFDL0I7eUJBQU07d0JBQ0gsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO3FCQUNsQztpQkFDSjtnQkFDRCxJQUFJLGFBQWEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxJQUFJLGdCQUFnQixDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7b0JBQ3pELEtBQUssTUFBTSxPQUFPLElBQUksZ0JBQWdCLEVBQUU7d0JBQ3BDLE9BQU8sQ0FBQyxNQUFNLENBQUM7NEJBQ1gsSUFBSSxFQUFFLE9BQU87NEJBQ2IsU0FBUyxFQUFFLDRCQUE0Qjt5QkFDMUMsQ0FBQyxDQUFDO3FCQUNOO2lCQUNKO1lBQ0wsQ0FBQztTQUNKLENBQUM7SUFDTixDQUFDO0NBQ0osQ0FBQyxDQUFDO0FBRUgsa0JBQWUsSUFBSSxDQUFDIn0=
59
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWxsUHJvcGVydGllc0FyZVdoaXRlbGlzdGVkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3J1bGVzL2FsbFByb3BlcnRpZXNBcmVXaGl0ZWxpc3RlZC9hbGxQcm9wZXJ0aWVzQXJlV2hpdGVsaXN0ZWQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxvREFBNEU7QUFDNUUsdURBQWtEO0FBQ2xELG1GQUE4RTtBQUU5RSxNQUFNLCtCQUErQixHQUFHLElBQUksR0FBRyxDQUFDLG1EQUF3QixDQUFDLENBQUM7QUFFMUUsTUFBTSxJQUFJLEdBQUcsSUFBQSx1QkFBVSxFQUFDO0lBQ3BCLElBQUksRUFBRSxnQ0FBZ0M7SUFDdEMsSUFBSSxFQUFFO1FBQ0YsSUFBSSxFQUFFO1lBQ0YsV0FBVyxFQUFFLHdDQUF3QztZQUNyRCxXQUFXLEVBQUUsT0FBTztZQUNwQixvQkFBb0IsRUFBRSxLQUFLO1NBQzlCO1FBQ0QsUUFBUSxFQUFFO1lBQ04sZ0VBQWdFO1lBQ2hFLDRCQUE0QixFQUN4Qix5RkFBeUY7U0FDaEc7UUFDRCxJQUFJLEVBQUUsU0FBUztRQUNmLE1BQU0sRUFBRSxFQUFFO0tBQ2I7SUFDRCxjQUFjLEVBQUUsRUFBRTtJQUNsQixNQUFNLEVBQUUsVUFDSixPQUVDO1FBRUQsT0FBTztZQUNILGdFQUFnRTtZQUNoRSxnQkFBZ0IsQ0FBQyxJQUFJOztnQkFDakIsTUFBTSxhQUFhLEdBQWtDLEVBQUUsQ0FBQztnQkFDeEQsTUFBTSxnQkFBZ0IsR0FBa0MsRUFBRSxDQUFDO2dCQUMzRCxLQUFLLE1BQU0sT0FBTyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFO29CQUNsQyxJQUFJLE9BQU8sQ0FBQyxJQUFJLEtBQUssc0JBQWMsQ0FBQyxrQkFBa0IsRUFBRTt3QkFDcEQsU0FBUztxQkFDWjtvQkFDRCxNQUFNLFlBQVksR0FBRyxNQUFBLE9BQU8sQ0FBQyxVQUFVLDBDQUFFLElBQUksQ0FDekMsQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUNWLFNBQVMsQ0FBQyxVQUFVLENBQUMsSUFBSTt3QkFDckIsc0JBQWMsQ0FBQyxjQUFjO3dCQUNqQyxTQUFTLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxJQUFJOzRCQUM1QixzQkFBYyxDQUFDLFVBQVU7d0JBQzdCLCtCQUErQixDQUFDLEdBQUcsQ0FDL0IsU0FBUyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUNuQyxDQUNSLENBQUM7b0JBQ0YsSUFBSSxZQUFZLEVBQUU7d0JBQ2QsYUFBYSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztxQkFDL0I7eUJBQU07d0JBQ0gsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO3FCQUNsQztpQkFDSjtnQkFDRCxJQUFJLGFBQWEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxJQUFJLGdCQUFnQixDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7b0JBQ3pELEtBQUssTUFBTSxPQUFPLElBQUksZ0JBQWdCLEVBQUU7d0JBQ3BDLE9BQU8sQ0FBQyxNQUFNLENBQUM7NEJBQ1gsSUFBSSxFQUFFLE9BQU87NEJBQ2IsU0FBUyxFQUFFLDRCQUE0Qjt5QkFDMUMsQ0FBQyxDQUFDO3FCQUNOO2lCQUNKO1lBQ0wsQ0FBQztTQUNKLENBQUM7SUFDTixDQUFDO0NBQ0osQ0FBQyxDQUFDO0FBRUgsa0JBQWUsSUFBSSxDQUFDIn0=
@@ -46,7 +46,7 @@ const rule = (0, createRule_1.createRule)({
46
46
  requiresTypeChecking: false,
47
47
  },
48
48
  messages: {
49
- shouldSpecifyApiResponse: `A method decorated with @Get, @Post etc. should specify the expected ApiResponse e.g. @ApiOkResponse(type: MyType)`,
49
+ shouldSpecifyApiResponse: `A method decorated with @Get, @Post etc. should specify the expected ApiResponse e.g. @ApiOkResponse(type: MyType). These decorators are in the @nestjs/swagger npm package.`,
50
50
  },
51
51
  schema: [],
52
52
  hasSuggestions: false,
@@ -68,4 +68,4 @@ const rule = (0, createRule_1.createRule)({
68
68
  },
69
69
  });
70
70
  exports.default = rule;
71
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpTWV0aG9kc1Nob3VsZFNwZWNpZnlBcGlSZXNwb25zZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9ydWxlcy9hcGlNZXRob2RzU2hvdWxkU3BlY2lmeUFwaVJlc3BvbnNlL2FwaU1ldGhvZHNTaG91bGRTcGVjaWZ5QXBpUmVzcG9uc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBSUEsdURBQWtEO0FBQ2xELHFFQUFnRTtBQUV6RCxNQUFNLDZCQUE2QixHQUFHLENBQ3pDLElBQStCLEVBQ3hCLEVBQUU7SUFDVCxNQUFNLHFCQUFxQixHQUFHLHFDQUFpQixDQUFDLHNCQUFzQixDQUNsRSxJQUFJLEVBQ0osQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsS0FBSyxDQUFDLENBQ3RFLENBQUM7SUFFRixNQUFNLHVCQUF1QixHQUFHLHFDQUFpQixDQUFDLHNCQUFzQixDQUNwRSxJQUFJLEVBQ0o7UUFDSSxhQUFhO1FBQ2IsZUFBZTtRQUNmLG9CQUFvQjtRQUNwQixxQkFBcUI7UUFDckIsc0JBQXNCO1FBQ3RCLDZCQUE2QjtRQUM3QixrQkFBa0I7UUFDbEIsdUJBQXVCO1FBQ3ZCLHlCQUF5QjtRQUN6Qiw0QkFBNEI7UUFDNUIscUJBQXFCO1FBQ3JCLGdDQUFnQztRQUNoQyx1QkFBdUI7UUFDdkIscUJBQXFCO1FBQ3JCLHNCQUFzQjtRQUN0QiwyQkFBMkI7UUFDM0IsaUJBQWlCO1FBQ2pCLDZCQUE2QjtRQUM3QiwwQkFBMEI7UUFDMUIsMkJBQTJCO1FBQzNCLCtCQUErQjtRQUMvQiw0QkFBNEI7UUFDNUIsMkJBQTJCO1FBQzNCLCtCQUErQjtRQUMvQixnQ0FBZ0M7UUFDaEMsaUNBQWlDO1FBQ2pDLG9CQUFvQjtLQUN2QixDQUNKLENBQUM7SUFFRixPQUFPLHFCQUFxQixJQUFJLENBQUMsdUJBQXVCLENBQUM7QUFDN0QsQ0FBQyxDQUFDO0FBMUNXLFFBQUEsNkJBQTZCLGlDQTBDeEM7QUFFRixNQUFNLElBQUksR0FBRyxJQUFBLHVCQUFVLEVBQUM7SUFDcEIsSUFBSSxFQUFFLHdDQUF3QztJQUM5QyxJQUFJLEVBQUU7UUFDRixJQUFJLEVBQUU7WUFDRixXQUFXLEVBQ1AsMEpBQTBKO1lBQzlKLFdBQVcsRUFBRSxLQUFLO1lBQ2xCLG9CQUFvQixFQUFFLEtBQUs7U0FDOUI7UUFDRCxRQUFRLEVBQUU7WUFDTix3QkFBd0IsRUFBRSxvSEFBb0g7U0FDako7UUFDRCxNQUFNLEVBQUUsRUFBRTtRQUNWLGNBQWMsRUFBRSxLQUFLO1FBQ3JCLElBQUksRUFBRSxZQUFZO0tBQ3JCO0lBQ0QsY0FBYyxFQUFFLEVBQUU7SUFFbEIsTUFBTSxDQUNGLE9BRUM7UUFFRCxPQUFPO1lBQ0gsZ0VBQWdFO1lBQ2hFLGdCQUFnQixDQUFDLElBQStCO2dCQUM1QyxJQUFJLElBQUEscUNBQTZCLEVBQUMsSUFBSSxDQUFDLEVBQUU7b0JBQ3JDLE9BQU8sQ0FBQyxNQUFNLENBQUM7d0JBQ1gsSUFBSSxFQUFFLElBQUk7d0JBQ1YsU0FBUyxFQUFFLDBCQUEwQjtxQkFDeEMsQ0FBQyxDQUFDO2lCQUNOO1lBQ0wsQ0FBQztTQUNKLENBQUM7SUFDTixDQUFDO0NBQ0osQ0FBQyxDQUFDO0FBRUgsa0JBQWUsSUFBSSxDQUFDIn0=
71
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpTWV0aG9kc1Nob3VsZFNwZWNpZnlBcGlSZXNwb25zZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9ydWxlcy9hcGlNZXRob2RzU2hvdWxkU3BlY2lmeUFwaVJlc3BvbnNlL2FwaU1ldGhvZHNTaG91bGRTcGVjaWZ5QXBpUmVzcG9uc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBSUEsdURBQWtEO0FBQ2xELHFFQUFnRTtBQUV6RCxNQUFNLDZCQUE2QixHQUFHLENBQ3pDLElBQStCLEVBQ3hCLEVBQUU7SUFDVCxNQUFNLHFCQUFxQixHQUFHLHFDQUFpQixDQUFDLHNCQUFzQixDQUNsRSxJQUFJLEVBQ0osQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsS0FBSyxDQUFDLENBQ3RFLENBQUM7SUFFRixNQUFNLHVCQUF1QixHQUFHLHFDQUFpQixDQUFDLHNCQUFzQixDQUNwRSxJQUFJLEVBQ0o7UUFDSSxhQUFhO1FBQ2IsZUFBZTtRQUNmLG9CQUFvQjtRQUNwQixxQkFBcUI7UUFDckIsc0JBQXNCO1FBQ3RCLDZCQUE2QjtRQUM3QixrQkFBa0I7UUFDbEIsdUJBQXVCO1FBQ3ZCLHlCQUF5QjtRQUN6Qiw0QkFBNEI7UUFDNUIscUJBQXFCO1FBQ3JCLGdDQUFnQztRQUNoQyx1QkFBdUI7UUFDdkIscUJBQXFCO1FBQ3JCLHNCQUFzQjtRQUN0QiwyQkFBMkI7UUFDM0IsaUJBQWlCO1FBQ2pCLDZCQUE2QjtRQUM3QiwwQkFBMEI7UUFDMUIsMkJBQTJCO1FBQzNCLCtCQUErQjtRQUMvQiw0QkFBNEI7UUFDNUIsMkJBQTJCO1FBQzNCLCtCQUErQjtRQUMvQixnQ0FBZ0M7UUFDaEMsaUNBQWlDO1FBQ2pDLG9CQUFvQjtLQUN2QixDQUNKLENBQUM7SUFFRixPQUFPLHFCQUFxQixJQUFJLENBQUMsdUJBQXVCLENBQUM7QUFDN0QsQ0FBQyxDQUFDO0FBMUNXLFFBQUEsNkJBQTZCLGlDQTBDeEM7QUFFRixNQUFNLElBQUksR0FBRyxJQUFBLHVCQUFVLEVBQUM7SUFDcEIsSUFBSSxFQUFFLHdDQUF3QztJQUM5QyxJQUFJLEVBQUU7UUFDRixJQUFJLEVBQUU7WUFDRixXQUFXLEVBQ1AsMEpBQTBKO1lBQzlKLFdBQVcsRUFBRSxLQUFLO1lBQ2xCLG9CQUFvQixFQUFFLEtBQUs7U0FDOUI7UUFDRCxRQUFRLEVBQUU7WUFDTix3QkFBd0IsRUFBRSw4S0FBOEs7U0FDM007UUFDRCxNQUFNLEVBQUUsRUFBRTtRQUNWLGNBQWMsRUFBRSxLQUFLO1FBQ3JCLElBQUksRUFBRSxZQUFZO0tBQ3JCO0lBQ0QsY0FBYyxFQUFFLEVBQUU7SUFFbEIsTUFBTSxDQUNGLE9BRUM7UUFFRCxPQUFPO1lBQ0gsZ0VBQWdFO1lBQ2hFLGdCQUFnQixDQUFDLElBQStCO2dCQUM1QyxJQUFJLElBQUEscUNBQTZCLEVBQUMsSUFBSSxDQUFDLEVBQUU7b0JBQ3JDLE9BQU8sQ0FBQyxNQUFNLENBQUM7d0JBQ1gsSUFBSSxFQUFFLElBQUk7d0JBQ1YsU0FBUyxFQUFFLDBCQUEwQjtxQkFDeEMsQ0FBQyxDQUFDO2lCQUNOO1lBQ0wsQ0FBQztTQUNKLENBQUM7SUFDTixDQUFDO0NBQ0osQ0FBQyxDQUFDO0FBRUgsa0JBQWUsSUFBSSxDQUFDIn0=
@@ -20,7 +20,7 @@ const rule = (0, createRule_1.createRule)({
20
20
  requiresTypeChecking: false,
21
21
  },
22
22
  messages: {
23
- shouldUseApiTagDecorator: `Controllers should use @ApiTags decorator. This makes it much easier to navigate swagger UI.`,
23
+ shouldUseApiTagDecorator: `Controllers should use @ApiTags decorator. This makes it much easier to navigate swagger UI. This ApiTags decorator is in the @nestjs/swagger package on npm.`,
24
24
  },
25
25
  schema: [],
26
26
  hasSuggestions: false,
@@ -42,4 +42,4 @@ const rule = (0, createRule_1.createRule)({
42
42
  },
43
43
  });
44
44
  exports.default = rule;
45
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udHJvbGxlckRlY29yYXRlZEhhc0FwaVRhZ3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcnVsZXMvY29udHJvbGxlckRlY29yYXRlZEhhc0FwaVRhZ3MvY29udHJvbGxlckRlY29yYXRlZEhhc0FwaVRhZ3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBSUEsdURBQWtEO0FBQ2xELHFFQUFnRTtBQUV6RCxNQUFNLHdCQUF3QixHQUFHLENBQ3BDLElBQStCLEVBQ3hCLEVBQUU7SUFDVCxNQUFNLHNCQUFzQixHQUFHLHFDQUFpQixDQUFDLHNCQUFzQixDQUNuRSxJQUFJLEVBQ0osQ0FBQyxZQUFZLENBQUMsQ0FDakIsQ0FBQztJQUVGLE1BQU0sa0JBQWtCLEdBQUcscUNBQWlCLENBQUMsc0JBQXNCLENBQUMsSUFBSSxFQUFFO1FBQ3RFLFNBQVM7S0FDWixDQUFDLENBQUM7SUFFSCxPQUFPLHNCQUFzQixJQUFJLENBQUMsa0JBQWtCLENBQUM7QUFDekQsQ0FBQyxDQUFDO0FBYlcsUUFBQSx3QkFBd0IsNEJBYW5DO0FBRUYsTUFBTSxJQUFJLEdBQUcsSUFBQSx1QkFBVSxFQUFDO0lBQ3BCLElBQUksRUFBRSxvQ0FBb0M7SUFDMUMsSUFBSSxFQUFFO1FBQ0YsSUFBSSxFQUFFO1lBQ0YsV0FBVyxFQUNQLDJFQUEyRTtZQUMvRSxXQUFXLEVBQUUsS0FBSztZQUNsQixvQkFBb0IsRUFBRSxLQUFLO1NBQzlCO1FBQ0QsUUFBUSxFQUFFO1lBQ04sd0JBQXdCLEVBQUUsOEZBQThGO1NBQzNIO1FBQ0QsTUFBTSxFQUFFLEVBQUU7UUFDVixjQUFjLEVBQUUsS0FBSztRQUNyQixJQUFJLEVBQUUsWUFBWTtLQUNyQjtJQUNELGNBQWMsRUFBRSxFQUFFO0lBRWxCLE1BQU0sQ0FDRixPQUVDO1FBRUQsT0FBTztZQUNILGdFQUFnRTtZQUNoRSxnQkFBZ0IsQ0FBQyxJQUErQjtnQkFDNUMsSUFBSSxJQUFBLGdDQUF3QixFQUFDLElBQUksQ0FBQyxFQUFFO29CQUNoQyxPQUFPLENBQUMsTUFBTSxDQUFDO3dCQUNYLElBQUksRUFBRSxJQUFJO3dCQUNWLFNBQVMsRUFBRSwwQkFBMEI7cUJBQ3hDLENBQUMsQ0FBQztpQkFDTjtZQUNMLENBQUM7U0FDSixDQUFDO0lBQ04sQ0FBQztDQUNKLENBQUMsQ0FBQztBQUVILGtCQUFlLElBQUksQ0FBQyJ9
45
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udHJvbGxlckRlY29yYXRlZEhhc0FwaVRhZ3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcnVsZXMvY29udHJvbGxlckRlY29yYXRlZEhhc0FwaVRhZ3MvY29udHJvbGxlckRlY29yYXRlZEhhc0FwaVRhZ3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBSUEsdURBQWtEO0FBQ2xELHFFQUFnRTtBQUV6RCxNQUFNLHdCQUF3QixHQUFHLENBQ3BDLElBQStCLEVBQ3hCLEVBQUU7SUFDVCxNQUFNLHNCQUFzQixHQUFHLHFDQUFpQixDQUFDLHNCQUFzQixDQUNuRSxJQUFJLEVBQ0osQ0FBQyxZQUFZLENBQUMsQ0FDakIsQ0FBQztJQUVGLE1BQU0sa0JBQWtCLEdBQUcscUNBQWlCLENBQUMsc0JBQXNCLENBQUMsSUFBSSxFQUFFO1FBQ3RFLFNBQVM7S0FDWixDQUFDLENBQUM7SUFFSCxPQUFPLHNCQUFzQixJQUFJLENBQUMsa0JBQWtCLENBQUM7QUFDekQsQ0FBQyxDQUFDO0FBYlcsUUFBQSx3QkFBd0IsNEJBYW5DO0FBRUYsTUFBTSxJQUFJLEdBQUcsSUFBQSx1QkFBVSxFQUFDO0lBQ3BCLElBQUksRUFBRSxvQ0FBb0M7SUFDMUMsSUFBSSxFQUFFO1FBQ0YsSUFBSSxFQUFFO1lBQ0YsV0FBVyxFQUNQLDJFQUEyRTtZQUMvRSxXQUFXLEVBQUUsS0FBSztZQUNsQixvQkFBb0IsRUFBRSxLQUFLO1NBQzlCO1FBQ0QsUUFBUSxFQUFFO1lBQ04sd0JBQXdCLEVBQUUsK0pBQStKO1NBQzVMO1FBQ0QsTUFBTSxFQUFFLEVBQUU7UUFDVixjQUFjLEVBQUUsS0FBSztRQUNyQixJQUFJLEVBQUUsWUFBWTtLQUNyQjtJQUNELGNBQWMsRUFBRSxFQUFFO0lBRWxCLE1BQU0sQ0FDRixPQUVDO1FBRUQsT0FBTztZQUNILGdFQUFnRTtZQUNoRSxnQkFBZ0IsQ0FBQyxJQUErQjtnQkFDNUMsSUFBSSxJQUFBLGdDQUF3QixFQUFDLElBQUksQ0FBQyxFQUFFO29CQUNoQyxPQUFPLENBQUMsTUFBTSxDQUFDO3dCQUNYLElBQUksRUFBRSxJQUFJO3dCQUNWLFNBQVMsRUFBRSwwQkFBMEI7cUJBQ3hDLENBQUMsQ0FBQztpQkFDTjtZQUNMLENBQUM7U0FDSixDQUFDO0lBQ04sQ0FBQztDQUNKLENBQUMsQ0FBQztBQUVILGtCQUFlLElBQUksQ0FBQyJ9
@@ -31,7 +31,7 @@ declare const allRules: {
31
31
  "param-decorator-name-matches-route-param": import("@typescript-eslint/utils/dist/ts-eslint/Rule").RuleModule<"paramIdentifierDoesntNeedColon" | "paramIdentifierShouldMatch", never[], {
32
32
  Decorator(node: import("@typescript-eslint/types/dist/generated/ast-spec").Decorator): void;
33
33
  }>;
34
- "validated-non-primitive-property-needs-type-decorator": import("@typescript-eslint/utils/dist/ts-eslint/Rule").RuleModule<"shouldUseTypeDecorator", never[], {
34
+ "validated-non-primitive-property-needs-type-decorator": import("@typescript-eslint/utils/dist/ts-eslint/Rule").RuleModule<"shouldUseTypeDecorator", import("./validate-non-primitves-needs-type-decorator/validateNonPrimitiveNeedsDecorators").ValidateNonPrimitivePropertyTypeDecoratorOptions, {
35
35
  PropertyDefinition(node: import("@typescript-eslint/types/dist/generated/ast-spec").PropertyDefinition): void;
36
36
  }>;
37
37
  "validate-nested-of-array-should-set-each": import("@typescript-eslint/utils/dist/ts-eslint/Rule").RuleModule<"shouldSetEachPropertyTrue" | "shouldSetEachPropertyFalse", never[], {
@@ -7,7 +7,8 @@ const createRule_1 = require("../../utils/createRule");
7
7
  const fileEnumerationWrapper_1 = __importDefault(require("../../utils/files/fileEnumerationWrapper"));
8
8
  const nestProvidedInjectableMapper_1 = __importDefault(require("../../utils/nestModules/nestProvidedInjectableMapper"));
9
9
  const typedTokenHelpers_1 = require("../../utils/typedTokenHelpers");
10
- let listFilesToProcess;
10
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
11
+ let listOfPotentialNestModuleFiles;
11
12
  let nestModuleMap;
12
13
  const findModuleMapping = (classNAme, propertyName, nestModuleMap) => {
13
14
  for (const entry of nestModuleMap.values()) {
@@ -40,10 +41,9 @@ const checkNode = (node, decoratorName, propertyName, messageId, context) => {
40
41
  }
41
42
  };
42
43
  function initialiseModuleMappings(sourcePath, filterFromPaths, context) {
43
- const mappedSource = nestProvidedInjectableMapper_1.default.mapDefaultSource(sourcePath, process.cwd());
44
- listFilesToProcess = fileEnumerationWrapper_1.default.enumerateFiles(mappedSource, [".ts"], filterFromPaths);
45
- console.debug("Parsing module files", listFilesToProcess);
46
- nestModuleMap = nestProvidedInjectableMapper_1.default.parseFileList(listFilesToProcess, context);
44
+ const mappedSourceDirectory = nestProvidedInjectableMapper_1.default.detectDirectoryToScanForFiles(sourcePath, process.cwd());
45
+ listOfPotentialNestModuleFiles = fileEnumerationWrapper_1.default.enumerateFiles(mappedSourceDirectory, [".ts"], filterFromPaths);
46
+ nestModuleMap = nestProvidedInjectableMapper_1.default.parseFileList(listOfPotentialNestModuleFiles, context);
47
47
  }
48
48
  const rule = (0, createRule_1.createRule)({
49
49
  name: "injectable-should-be-provided",
@@ -117,4 +117,4 @@ const rule = (0, createRule_1.createRule)({
117
117
  },
118
118
  });
119
119
  exports.default = rule;
120
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5qZWN0YWJsZVNob3VsZEJlUHJvdmlkZWQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcnVsZXMvaW5qZWN0YWJsZXNTaG91bGRCZVByb3ZpZGVkL2luamVjdGFibGVTaG91bGRCZVByb3ZpZGVkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQ0EsdURBQWtEO0FBQ2xELHNHQUE2RTtBQUM3RSx3SEFBZ0c7QUFFaEcscUVBQWdFO0FBRWhFLElBQUksa0JBQWtCLENBQUM7QUFDdkIsSUFBSSxhQUFzRCxDQUFDO0FBUzNELE1BQU0saUJBQWlCLEdBQUcsQ0FDdEIsU0FBaUIsRUFDakIsWUFBeUMsRUFDekMsYUFBc0QsRUFDaEIsRUFBRTtJQUN4QyxLQUFLLE1BQU0sS0FBSyxJQUFJLGFBQWEsQ0FBQyxNQUFNLEVBQUUsRUFBRTtRQUN4QyxJQUFJLEtBQUssQ0FBQyxZQUFZLENBQUMsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLEVBQUU7WUFDcEMsT0FBTyxLQUFLLENBQUM7U0FDaEI7S0FDSjtJQUNELE9BQU8sU0FBUyxDQUFDO0FBQ3JCLENBQUMsQ0FBQztBQUVGLGtDQUFrQztBQUNsQyxNQUFNLFNBQVMsR0FBRyxDQUNkLElBQStCLEVBQy9CLGFBQTBDLEVBQzFDLFlBQXlDLEVBQ3pDLFNBQXVELEVBQ3ZELE9BS0MsRUFDSCxFQUFFOztJQUNBLElBQ0ksc0NBQTRCLENBQUMsbUNBQW1DLENBQUMsSUFBSSxDQUFDLEVBQ3hFO1FBQ0UsT0FBTztLQUNWO0lBQ0QsSUFBSSxxQ0FBaUIsQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxhQUFhLENBQUMsQ0FBQyxFQUFFO1FBQ2pFLE1BQU0sSUFBSSxHQUFHLE1BQUEsSUFBSSxDQUFDLEVBQUUsMENBQUUsSUFBSSxDQUFDO1FBQzNCLElBQUksQ0FBQyxJQUFJLEVBQUU7WUFDUCxPQUFPO1NBQ1Y7UUFDRCxNQUFNLFFBQVEsR0FBRyxpQkFBaUIsQ0FBQyxJ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
120
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5qZWN0YWJsZVNob3VsZEJlUHJvdmlkZWQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcnVsZXMvaW5qZWN0YWJsZXNTaG91bGRCZVByb3ZpZGVkL2luamVjdGFibGVTaG91bGRCZVByb3ZpZGVkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQ0EsdURBQWtEO0FBQ2xELHNHQUE2RTtBQUM3RSx3SEFBZ0c7QUFFaEcscUVBQWdFO0FBR2hFLDhEQUE4RDtBQUM5RCxJQUFJLDhCQUEwQyxDQUFDO0FBQy9DLElBQUksYUFBc0QsQ0FBQztBQVMzRCxNQUFNLGlCQUFpQixHQUFHLENBQ3RCLFNBQWlCLEVBQ2pCLFlBQXlDLEVBQ3pDLGFBQXNELEVBQ2hCLEVBQUU7SUFDeEMsS0FBSyxNQUFNLEtBQUssSUFBSSxhQUFhLENBQUMsTUFBTSxFQUFFLEVBQUU7UUFDeEMsSUFBSSxLQUFLLENBQUMsWUFBWSxDQUFDLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxFQUFFO1lBQ3BDLE9BQU8sS0FBSyxDQUFDO1NBQ2hCO0tBQ0o7SUFDRCxPQUFPLFNBQVMsQ0FBQztBQUNyQixDQUFDLENBQUM7QUFFRixrQ0FBa0M7QUFDbEMsTUFBTSxTQUFTLEdBQUcsQ0FDZCxJQUErQixFQUMvQixhQUEwQyxFQUMxQyxZQUF5QyxFQUN6QyxTQUF1RCxFQUN2RCxPQUtDLEVBQ0gsRUFBRTs7SUFDQSxJQUNJLHNDQUE0QixDQUFDLG1DQUFtQyxDQUFDLElBQUksQ0FBQyxFQUN4RTtRQUNFLE9BQU87S0FDVjtJQUNELElBQUkscUNBQWlCLENBQUMsc0JBQXNCLENBQUMsSUFBSSxFQUFFLENBQUMsYUFBYSxDQUFDLENBQUMsRUFBRTtRQUNqRSxNQUFNLElBQUksR0FBRyxNQUFBLElBQUksQ0FBQyxFQUFFLDBDQUFFLElBQUksQ0FBQztRQUMzQixJQUFJLENBQUMsSUFBSSxFQUFFO1lBQ1AsT0FBTztTQUNWO1FBQ0QsTUFBTSxRQUFRLEdBQUcs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
@@ -16,9 +16,9 @@ const hasMismatchedInjected = (node) => {
16
16
  return false;
17
17
  }
18
18
  // count number of factory params
19
- const factoryParameterCount = (_e = ((_d = nestProviderAstParser_1.nestProviderAstParser.findNestProviderObjectsProperty(node, "useFactory")) === null || _d === void 0 ? void 0 : _d.value).params) === null || _e === void 0 ? void 0 : _e.length;
19
+ const factoryParameterCount = (_e = ((_d = nestProviderAstParser_1.nestProviderAstParser.findProvideProperty(node, "useFactory")) === null || _d === void 0 ? void 0 : _d.value).params) === null || _e === void 0 ? void 0 : _e.length;
20
20
  // Count number of injected params
21
- const injectedParameter = (_f = nestProviderAstParser_1.nestProviderAstParser.findNestProviderObjectsProperty(node, "inject")) === null || _f === void 0 ? void 0 : _f.value;
21
+ const injectedParameter = (_f = nestProviderAstParser_1.nestProviderAstParser.findProvideProperty(node, "inject")) === null || _f === void 0 ? void 0 : _f.value;
22
22
  const injectedParameterCount = injectedParameter
23
23
  ? injectedParameter.elements.length
24
24
  : 0;
@@ -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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUHJvdmlkZXJJbmplY3RlZFNob3VsZE1hdGNoRmFjdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9ydWxlcy9wcm92aWRlckluamVjdGVkU2hvdWxkTWF0Y2hGYWN0b3J5L1Byb3ZpZGVySW5qZWN0ZWRTaG91bGRNYXRjaEZhY3RvcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EsdURBQWtEO0FBQ2xELGdEQUFnRDtBQUNoRCwwQkFBMEI7QUFDMUIseUZBQW9GO0FBRTdFLE1BQU0scUJBQXFCLEdBQUcsQ0FDakMsSUFBaUMsRUFDMUIsRUFBRTs7SUFDVCxrS0FBa0s7SUFDbEssTUFBTSxjQUFjLEdBQ2hCLENBQUEsTUFDSSxNQUNBLE1BQUEsSUFBSSxDQUFDLEVBQUUsQ0FBQyxjQUFjLDBDQUNoQixjQUEwQztJQUN0RCxrQkFBa0I7SUFDbEIsOERBQThEO0lBQzNELDBDQUFFLFFBQ0YsMENBQUUsSUFBSSxNQUFLLFVBQVUsQ0FBQztJQUUzQixJQUFJLENBQUMsY0FBYyxFQUFFO1FBQ2pCLE9BQU8sS0FBSyxDQUFDO0tBQ2hCO0lBRUQsaUNBQWlDO0lBQ2pDLE1BQU0scUJBQXFCLEdBQUcsTUFBQSxDQUMxQixNQUFBLDZDQUFxQixDQUFDLCtCQUErQixDQUNqRCxJQUFJLEVBQ0osWUFBWSxDQUNmLDBDQUFFLEtBQ04sQ0FBQSxDQUFDLE1BQU0sMENBQUUsTUFBTSxDQUFDO0lBRWpCLGtDQUFrQztJQUNsQyxNQUFNLGlCQUFpQixHQUNuQixNQUFBLDZDQUFxQixDQUFDLCtCQUErQixDQUFDLElBQUksRUFBRSxRQUFRLENBQUMsMENBQy9ELEtBQTRDLENBQUM7SUFFdkQsTUFBTSxzQkFBc0IsR0FBRyxpQkFBaUI7UUFDNUMsQ0FBQyxDQUFDLGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxNQUFNO1FBQ25DLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFFUix1QkFBdUI7SUFDdkIsT0FBTyxzQkFBc0IsS0FBSyxxQkFBcUIsQ0FBQztBQUM1RCxDQUFDLENBQUM7QUFyQ1csUUFBQSxxQkFBcUIseUJBcUNoQztBQUVGLE1BQU0sSUFBSSxHQUFHLElBQUEsdUJBQVUsRUFBQztJQUNwQixJQUFJLEVBQUUsbURBQW1EO0lBQ3pELElBQUksRUFBRTtRQUNGLElBQUksRUFBRTtZQUNGLFdBQVcsRUFDUCxtR0FBbUc7WUFDdkcsV0FBVyxFQUFFLEtBQUs7WUFDbEIsb0JBQW9CLEVBQUUsS0FBSztTQUM5QjtRQUNELFFBQVEsRUFBRTtZQUNOLFdBQVcsRUFBRSwwRkFBMEY7U0FDMUc7UUFDRCxNQUFNLEVBQUUsRUFBRTtRQUNWLElBQUksRUFBRSxTQUFTO0tBQ2xCO0lBQ0QsY0FBYyxFQUFFLEVBQUU7SUFFbEIsTUFBTSxDQUFDLE9BQStEO1FBQ2xFLE9BQU87WUFDSCxnRUFBZ0U7WUFDaEUsa0JBQWtCLENBQUMsSUFBaUM7Z0JBQ2hELElBQUksSUFBQSw2QkFBcUIsRUFBQyxJQUFJLENBQUMsRUFBRTtvQkFDN0IsT0FBTyxDQUFDLE1BQU0sQ0FBQzt3QkFDWCxJQUFJLEVBQUUsSUFBSTt3QkFDVixTQUFTLEVBQUUsYUFBYTtxQkFDM0IsQ0FBQyxDQUFDO2lCQUNOO1lBQ0wsQ0FBQztTQUNKLENBQUM7SUFDTixDQUFDO0NBQ0osQ0FBQyxDQUFDO0FBRUgsa0JBQWUsSUFBSSxDQUFDIn0=
59
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUHJvdmlkZXJJbmplY3RlZFNob3VsZE1hdGNoRmFjdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9ydWxlcy9wcm92aWRlckluamVjdGVkU2hvdWxkTWF0Y2hGYWN0b3J5L1Byb3ZpZGVySW5qZWN0ZWRTaG91bGRNYXRjaEZhY3RvcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EsdURBQWtEO0FBQ2xELGdEQUFnRDtBQUNoRCwwQkFBMEI7QUFDMUIseUZBQW9GO0FBRTdFLE1BQU0scUJBQXFCLEdBQUcsQ0FDakMsSUFBaUMsRUFDMUIsRUFBRTs7SUFDVCxrS0FBa0s7SUFDbEssTUFBTSxjQUFjLEdBQ2hCLENBQUEsTUFDSSxNQUNBLE1BQUEsSUFBSSxDQUFDLEVBQUUsQ0FBQyxjQUFjLDBDQUNoQixjQUEwQztJQUN0RCxrQkFBa0I7SUFDbEIsOERBQThEO0lBQzNELDBDQUFFLFFBQ0YsMENBQUUsSUFBSSxNQUFLLFVBQVUsQ0FBQztJQUUzQixJQUFJLENBQUMsY0FBYyxFQUFFO1FBQ2pCLE9BQU8sS0FBSyxDQUFDO0tBQ2hCO0lBRUQsaUNBQWlDO0lBQ2pDLE1BQU0scUJBQXFCLEdBQUcsTUFBQSxDQUMxQixNQUFBLDZDQUFxQixDQUFDLG1CQUFtQixDQUFDLElBQUksRUFBRSxZQUFZLENBQUMsMENBQ3ZELEtBQ1QsQ0FBQSxDQUFDLE1BQU0sMENBQUUsTUFBTSxDQUFDO0lBRWpCLGtDQUFrQztJQUNsQyxNQUFNLGlCQUFpQixHQUFHLE1BQUEsNkNBQXFCLENBQUMsbUJBQW1CLENBQy9ELElBQUksRUFDSixRQUFRLENBQ1gsMENBQUUsS0FBNEMsQ0FBQztJQUVoRCxNQUFNLHNCQUFzQixHQUFHLGlCQUFpQjtRQUM1QyxDQUFDLENBQUMsaUJBQWlCLENBQUMsUUFBUSxDQUFDLE1BQU07UUFDbkMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUVSLHVCQUF1QjtJQUN2QixPQUFPLHNCQUFzQixLQUFLLHFCQUFxQixDQUFDO0FBQzVELENBQUMsQ0FBQztBQXBDVyxRQUFBLHFCQUFxQix5QkFvQ2hDO0FBRUYsTUFBTSxJQUFJLEdBQUcsSUFBQSx1QkFBVSxFQUFDO0lBQ3BCLElBQUksRUFBRSxtREFBbUQ7SUFDekQsSUFBSSxFQUFFO1FBQ0YsSUFBSSxFQUFFO1lBQ0YsV0FBVyxFQUNQLG1HQUFtRztZQUN2RyxXQUFXLEVBQUUsS0FBSztZQUNsQixvQkFBb0IsRUFBRSxLQUFLO1NBQzlCO1FBQ0QsUUFBUSxFQUFFO1lBQ04sV0FBVyxFQUFFLDBGQUEwRjtTQUMxRztRQUNELE1BQU0sRUFBRSxFQUFFO1FBQ1YsSUFBSSxFQUFFLFNBQVM7S0FDbEI7SUFDRCxjQUFjLEVBQUUsRUFBRTtJQUVsQixNQUFNLENBQUMsT0FBK0Q7UUFDbEUsT0FBTztZQUNILGdFQUFnRTtZQUNoRSxrQkFBa0IsQ0FBQyxJQUFpQztnQkFDaEQsSUFBSSxJQUFBLDZCQUFxQixFQUFDLElBQUksQ0FBQyxFQUFFO29CQUM3QixPQUFPLENBQUMsTUFBTSxDQUFDO3dCQUNYLElBQUksRUFBRSxJQUFJO3dCQUNWLFNBQVMsRUFBRSxhQUFhO3FCQUMzQixDQUFDLENBQUM7aUJBQ047WUFDTCxDQUFDO1NBQ0osQ0FBQztJQUNOLENBQUM7Q0FDSixDQUFDLENBQUM7QUFFSCxrQkFBZSxJQUFJLENBQUMifQ==
@@ -1,6 +1,11 @@
1
1
  import { TSESTree, TSESLint } from "@typescript-eslint/utils";
2
+ export declare type ValidateNonPrimitivePropertyTypeDecoratorOptions = [
3
+ {
4
+ additionalTypeDecorators: string[];
5
+ }
6
+ ];
2
7
  export declare const shouldTrigger: () => boolean;
3
- declare const rule: TSESLint.RuleModule<"shouldUseTypeDecorator", never[], {
8
+ declare const rule: TSESLint.RuleModule<"shouldUseTypeDecorator", ValidateNonPrimitivePropertyTypeDecoratorOptions, {
4
9
  PropertyDefinition(node: TSESTree.PropertyDefinition): void;
5
10
  }>;
6
11
  export default rule;
@@ -26,12 +26,29 @@ const rule = (0, createRule_1.createRule)({
26
26
  messages: {
27
27
  shouldUseTypeDecorator: "A non-primitve property with validation should probably use a @Type decorator",
28
28
  },
29
- schema: [],
29
+ schema: [
30
+ {
31
+ properties: {
32
+ additionalTypeDecorators: {
33
+ description: "A list of custom type decorators that this rule will use to validate",
34
+ type: "array",
35
+ minItems: 0,
36
+ items: {
37
+ type: "string",
38
+ minLength: 1,
39
+ },
40
+ },
41
+ },
42
+ },
43
+ ],
30
44
  hasSuggestions: false,
31
45
  type: "suggestion",
32
46
  },
33
- defaultOptions: [],
47
+ defaultOptions: [{ additionalTypeDecorators: new Array() }],
34
48
  create(context) {
49
+ const { additionalTypeDecorators } = context.options[0] || {
50
+ additionalTypeDecorators: [],
51
+ };
35
52
  const parserServices = utils_1.ESLintUtils.getParserServices(context);
36
53
  const typeChecker = parserServices.program.getTypeChecker();
37
54
  return {
@@ -88,8 +105,13 @@ const rule = (0, createRule_1.createRule)({
88
105
  if (foundClassValidatorDecorators.length === 0) {
89
106
  return;
90
107
  }
91
- // ok so does the property have Type decorator? it probably should
92
- const foundTypeDecorator = typedTokenHelpers_1.typedTokenHelpers.getDecoratorsNamed(node, ["Type"]);
108
+ // we add the supplied extra decorators from settings to the type decorators
109
+ console.log(`deccc ${additionalTypeDecorators.flat(1)}`);
110
+ const typeDecorators = new Array().concat(additionalTypeDecorators, // these are user-specified extra type decorators, unique to user's project
111
+ ["Type"] //this is the default type decorator
112
+ );
113
+ // ok so does the property have Type decorator or custom type decorator? it probably should
114
+ const foundTypeDecorator = typedTokenHelpers_1.typedTokenHelpers.getDecoratorsNamed(node, typeDecorators);
93
115
  if (foundTypeDecorator.length === 0) {
94
116
  context.report({
95
117
  node: node,
@@ -101,4 +123,4 @@ const rule = (0, createRule_1.createRule)({
101
123
  },
102
124
  });
103
125
  exports.default = rule;
104
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGVOb25QcmltaXRpdmVOZWVkc0RlY29yYXRvcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcnVsZXMvdmFsaWRhdGUtbm9uLXByaW1pdHZlcy1uZWVkcy10eXBlLWRlY29yYXRvci92YWxpZGF0ZU5vblByaW1pdGl2ZU5lZWRzRGVjb3JhdG9ycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxrREFBa0Q7QUFDbEQsb0RBS2tDO0FBQ2xDLHVEQUFrRDtBQUNsRCxxRUFBZ0U7QUFDaEUsbUZBQThFO0FBRTlFLE1BQU0sY0FBYyxHQUFHLElBQUksR0FBRyxDQUFDO0lBQzNCLHNCQUFjLENBQUMsZUFBZTtJQUM5QixzQkFBYyxDQUFDLGdCQUFnQjtJQUMvQixzQkFBYyxDQUFDLGVBQWU7Q0FDakMsQ0FBQyxDQUFDO0FBQ0ksTUFBTSxhQUFhLEdBQUcsR0FBWSxFQUFFO0lBQ3ZDLE9BQU8sSUFBSSxDQUFDO0FBQ2hCLENBQUMsQ0FBQztBQUZXLFFBQUEsYUFBYSxpQkFFeEI7QUFFRixNQUFNLElBQUksR0FBRyxJQUFBLHVCQUFVLEVBQUM7SUFDcEIsSUFBSSxFQUFFLHVEQUF1RDtJQUM3RCxJQUFJLEVBQUU7UUFDRixJQUFJLEVBQUU7WUFDRixXQUFXLEVBQ1AsK0VBQStFO1lBQ25GLFdBQVcsRUFBRSxLQUFLO1lBQ2xCLG9CQUFvQixFQUFFLEtBQUs7U0FDOUI7UUFDRCxRQUFRLEVBQUU7WUFDTixzQkFBc0IsRUFDbEIsK0VBQStFO1NBQ3RGO1FBQ0QsTUFBTSxFQUFFLEVBQUU7UUFDVixjQUFjLEVBQUUsS0FBSztRQUNyQixJQUFJLEVBQUUsWUFBWTtLQUNyQjtJQUNELGNBQWMsRUFBRSxFQUFFO0lBRWxCLE1BQU0sQ0FDRixPQUVDO1FBRUQsTUFBTSxjQUFjLEdBQUcsbUJBQVcsQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUM5RCxNQUFNLFdBQVcsR0FBRyxjQUFjLENBQUMsT0FB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
126
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGVOb25QcmltaXRpdmVOZWVkc0RlY29yYXRvcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcnVsZXMvdmFsaWRhdGUtbm9uLXByaW1pdHZlcy1uZWVkcy10eXBlLWRlY29yYXRvci92YWxpZGF0ZU5vblByaW1pdGl2ZU5lZWRzRGVjb3JhdG9ycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxrREFBa0Q7QUFDbEQsb0RBS2tDO0FBQ2xDLHVEQUFrRDtBQUNsRCxxRUFBZ0U7QUFDaEUsbUZBQThFO0FBRTlFLE1BQU0sY0FBYyxHQUFHLElBQUksR0FBRyxDQUFDO0lBQzNCLHNCQUFjLENBQUMsZUFBZTtJQUM5QixzQkFBYyxDQUFDLGdCQUFnQjtJQUMvQixzQkFBYyxDQUFDLGVBQWU7Q0FDakMsQ0FBQyxDQUFDO0FBTUksTUFBTSxhQUFhLEdBQUcsR0FBWSxFQUFFO0lBQ3ZDLE9BQU8sSUFBSSxDQUFDO0FBQ2hCLENBQUMsQ0FBQztBQUZXLFFBQUEsYUFBYSxpQkFFeEI7QUFFRixNQUFNLElBQUksR0FBRyxJQUFBLHVCQUFVLEVBQUM7SUFDcEIsSUFBSSxFQUFFLHVEQUF1RDtJQUM3RCxJQUFJLEVBQUU7UUFDRixJQUFJLEVBQUU7WUFDRixXQUFXLEVBQ1AsK0VBQStFO1lBQ25GLFdBQVcsRUFBRSxLQUFLO1lBQ2xCLG9CQUFvQixFQUFFLEtBQUs7U0FDOUI7UUFDRCxRQUFRLEVBQUU7WUFDTixzQkFBc0IsRUFDbEIsK0VBQStFO1NBQ3RGO1FBQ0QsTUFBTSxFQUFFO1lBQ0o7Z0JBQ0ksVUFBVSxFQUFFO29CQUNSLHdCQUF3QixFQUFFO3dCQUN0QixXQUFXLEVBQ1Asc0VBQXNFO3dCQUMxRSxJQUFJLEVBQUUsT0FBTzt3QkFDYixRQUFRLEVBQUUsQ0FBQzt3QkFDWCxLQUFLLEVBQUU7NEJBQ0gsSUFBSSxFQUFFLFFBQVE7NEJBQ2QsU0FBUyxFQUFFLENBQUM7eUJBQ2Y7cUJBQ0o7aUJBQ0o7YUFD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
@@ -2,7 +2,7 @@ import { TSESLint, TSESTree } from "@typescript-eslint/utils";
2
2
  import { FilePath } from "eslint/use-at-your-own-risk";
3
3
  import { NestProvidedInjectablesMap } from "./models/NestProvidedInjectablesMap";
4
4
  declare const NestProvidedInjectableMapper: {
5
- mapDefaultSource(sourceGlob: string | string[] | undefined, currentWorkingDirectory: string): string[];
5
+ detectDirectoryToScanForFiles(sourceGlob: string | string[] | undefined, currentWorkingDirectory: string): string[];
6
6
  parseFileList(files: Array<FilePath>, context: Readonly<TSESLint.RuleContext<never, any>>): Map<string, NestProvidedInjectablesMap>;
7
7
  notEmpty<TValue>(value: TValue | null): value is TValue;
8
8
  readFileContents(path: string): string;
@@ -38,23 +38,26 @@ const implementsForInjectablesThatAreNotProvided = new Set([
38
38
  "NestMiddleware", //(isMiddleware)
39
39
  ]);
40
40
  const NestProvidedInjectableMapper = {
41
- mapDefaultSource(sourceGlob, currentWorkingDirectory) {
41
+ detectDirectoryToScanForFiles(sourceGlob, currentWorkingDirectory) {
42
42
  if (sourceGlob && typeof sourceGlob === "string") {
43
43
  return [sourceGlob];
44
44
  }
45
45
  if (sourceGlob && Array.isArray(sourceGlob)) {
46
46
  return sourceGlob;
47
47
  }
48
+ console.debug("Injectables should be provided is using cwd for scanning. Consider configuring it in eslintrc.", { currentWorkingDirectory });
48
49
  return [currentWorkingDirectory];
49
50
  },
50
- parseFileList(
51
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
52
- files,
53
- // eslint-disable-next-line @typescript-eslint/no-unused-vars, @typescript-eslint/no-explicit-any
51
+ parseFileList(files,
52
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
54
53
  context) {
55
54
  const moduleMaps = new Map();
56
55
  files
57
- .map((f) => NestProvidedInjectableMapper.mapAllProvidedInjectables(typedTokenHelpers_1.typedTokenHelpers.parseStringToAst(NestProvidedInjectableMapper.readFileContents(f.filename), f.filename, context), f.filename))
56
+ .map((f) => {
57
+ const fileContents = NestProvidedInjectableMapper.readFileContents(f.filename);
58
+ const fileAstString = typedTokenHelpers_1.typedTokenHelpers.parseStringToAst(fileContents, f.filename, context);
59
+ return NestProvidedInjectableMapper.mapAllProvidedInjectables(fileAstString, f.filename);
60
+ })
58
61
  // eslint-disable-next-line @typescript-eslint/unbound-method
59
62
  .filter(NestProvidedInjectableMapper.notEmpty)
60
63
  .forEach((m) => moduleMaps.set(m[0], m[1]));
@@ -84,14 +87,24 @@ const NestProvidedInjectableMapper = {
84
87
  !unambiguous.isModule(ast)) {
85
88
  return null;
86
89
  }
90
+ // This does too much and should probably be split up
91
+ // i also assume you would never have multiple of providers, controllers or modules in a file
92
+ // dangerous assumption i guess. i have never seen this done before though.
93
+ // set up the response model
87
94
  let nestModuleMap = null;
95
+ // Is this a module?
88
96
  const foundNestModuleClass = nestModuleAstParser_1.nestModuleAstParser.findNestModuleClass(ast);
89
97
  if (foundNestModuleClass) {
90
98
  nestModuleMap = nestModuleAstParser_1.nestModuleAstParser.mapNestModuleDecorator(foundNestModuleClass, path);
99
+ return nestModuleMap;
91
100
  }
92
- const foundProviderObject = nestProviderAstParser_1.nestProviderAstParser.findNestProviderObjectsProperty(nestProviderAstParser_1.nestProviderAstParser.findNestProviderObject(ast), "provide");
93
- if (foundProviderObject) {
94
- nestModuleMap = nestProviderAstParser_1.nestProviderAstParser.mapNestProviderObject(foundProviderObject, path);
101
+ // or is this a custom provider that would provide an instance of the class?
102
+ // if it is we map the itentifier it "provide"s. This will only work if it's an identifier
103
+ // it can't be provider for a string literal "provide".
104
+ const foundProviderDeclaration = nestProviderAstParser_1.nestProviderAstParser.findNestProviderVariableDeclaration(ast);
105
+ const provideProperty = nestProviderAstParser_1.nestProviderAstParser.findProvideProperty(foundProviderDeclaration, "provide");
106
+ if (provideProperty) {
107
+ nestModuleMap = nestProviderAstParser_1.nestProviderAstParser.mapNestProviderObject(provideProperty, path);
95
108
  }
96
109
  return nestModuleMap;
97
110
  }
@@ -104,4 +117,4 @@ const NestProvidedInjectableMapper = {
104
117
  },
105
118
  };
106
119
  exports.default = NestProvidedInjectableMapper;
107
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmVzdFByb3ZpZGVkSW5qZWN0YWJsZU1hcHBlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy91dGlscy9uZXN0TW9kdWxlcy9uZXN0UHJvdmlkZWRJbmplY3RhYmxlTWFwcGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFQSw2RUFBK0Q7QUFHL0QsNENBQW9CO0FBQ3BCLDREQUF1RDtBQUd2RCwrREFBMEQ7QUFDMUQsbUVBQThEO0FBRTlELE1BQU0sMENBQTBDLEdBQUcsSUFBSSxHQUFHLENBQUM7SUFDdkQsYUFBYTtJQUNiLGlCQUFpQjtJQUNqQixlQUFlO0lBQ2YsZ0JBQWdCLEVBQUUsZ0JBQWdCO0NBQ3JDLENBQUMsQ0FBQztBQUNILE1BQU0sNEJBQTRCLEdBQUc7SUFDakMsZ0JBQWdCLENBQ1osVUFBeUMsRUFDekMsdUJBQStCO1FBRS9CLElBQUksVUFBVSxJQUFJLE9BQU8sVUFBVSxLQUFLLFFBQVEsRUFBRTtZQUM5QyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUM7U0FDdkI7UUFFRCxJQUFJLFVBQVUsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxFQUFFO1lBQ3pDLE9BQU8sVUFBVSxDQUFDO1NBQ3JCO1FBRUQsT0FBTyxDQUFDLHVCQUF1QixDQUFDLENBQUM7SUFDckMsQ0FBQztJQUNELGFBQWE7SUFDVCw2REFBNkQ7SUFDN0QsS0FBc0I7SUFDdEIsaUdBQWlHO0lBQ2pHLE9BQW1EO1FBRW5ELE1BQU0sVUFBVSxHQUFHLElBQUksR0FBRyxFQUFzQyxDQUFDO1FBQ2pFLEtBQUs7YUFDQSxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUNQLDRCQUE0QixDQUFDLHlCQUF5QixDQUNsRCxxQ0FBaUIsQ0FBQyxnQkFBZ0IsQ0FDOUIsNEJBQTRCLENBQUMsZ0JBQWdCLENBQ3pDLENBQUMsQ0FBQyxRQUFRLENBQ2IsRUFDRCxDQUFDLENBQUMsUUFBUSxFQUNWLE9BQU8sQ0FDVixFQUNELENBQUMsQ0FBQyxRQUFRLENBQ2IsQ0FDSjtZQUNELDZEQUE2RDthQUM1RCxNQUFNLENBQUMsNEJBQTRCLENBQUMsUUFBUSxDQUFDO2FBQzdDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQ1gsVUFBVSxDQUFDLEdBQUcsQ0FDVixDQUFDLENBQUMsQ0FBQyxDQUFXLEVBQ2QsQ0FBQyxDQUFDLENBQUMsQ0FBK0IsQ0FDckMsQ0FDSixDQUFDO1FBRU4sT0FBTyxVQUFVLENBQUM7SUFDdEIsQ0FBQztJQUNELFFBQVEsQ0FBUyxLQUFvQjtRQUNqQyxJQUFJLEtBQUssS0FBSyxJQUFJLElBQUksS0FBSyxLQUFLLFNBQVM7WUFBRSxPQUFPLEtBQUssQ0FBQztRQUN4RCxPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBRUQsZ0JBQWdCLENBQUMsSUFBWTtRQUN6QixPQUFPLFlBQUUsQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLEVBQUMsUUFBUSxFQUFFLE1BQU0sRUFBQyxDQUFDLENBQUM7SUFDckQsQ0FBQztJQUVELG1DQUFtQyxDQUMvQixJQUErQjtRQUUvQixLQUFLLE1BQU0sZUFBZSxJQUFJLElBQUksQ0FBQyxVQUFVLElBQUksRUFBRSxFQUFFO1lBQ2pELElBQ0ksMENBQTBDLENBQUMsR0FBRyxDQUN6QyxlQUFlLENBQUMsVUFBa0MsQ0FBQyxJQUFJLENBQzNELEVBQ0g7Z0JBQ0UsT0FBTyxJQUFJLENBQUM7YUFDZjtTQUNKO1FBRUQsT0FBTyxLQUFLLENBQUM7SUFDakIsQ0FBQztJQUNELHlCQUF5QixDQUNyQixHQUFxQixFQUNyQixJQUFZO1FBRVosSUFBSTtZQUNBLDhEQUE4RDtZQUU5RDtZQUNJLGlEQUFpRDtZQUNqRCxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEVBQzVCO2dCQUNFLE9BQU8sSUFBSSxDQUFDO2FBQ2Y7WUFDRCxJQUFJLGFBQWEsR0FBRyxJQUFJLENBQUM7WUFFekIsTUFBTSxvQkFBb0IsR0FDdEIseUNBQW1CLENBQUMsbUJBQW1CLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDakQsSUFBSSxvQkFBb0IsRUFBRTtnQkFDdEIsYUFBYSxHQUFHLHlDQUFtQixDQUFDLHNCQUFzQixDQUN0RCxvQkFBb0IsRUFDcEIsSUFBSSxDQUNQLENBQUM7YUFDTDtZQUNELE1BQU0sbUJBQW1CLEdBQ3JCLDZDQUFxQixDQUFDLCtCQUErQixDQUNqRCw2Q0FBcUIsQ0FBQyxzQkFBc0IsQ0FBQyxHQUFHLENBQUMsRUFDakQsU0FBUyxDQUNaLENBQUM7WUFDTixJQUFJLG1CQUFtQixFQUFFO2dCQUNyQixhQUFhLEdBQUcsNkNBQXFCLENBQUMscUJBQXFCLENBQ3ZELG1CQUFtQixFQUNuQixJQUFJLENBQ1AsQ0FBQzthQUNMO1lBRUQsT0FBTyxhQUFhLENBQUM7U0FDeEI7UUFBQyxPQUFPLEtBQUssRUFBRTtZQUNaLE9BQU8sQ0FBQyxLQUFLLENBQUMsY0FBYyxFQUFFLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQztZQUMzQyx3QkFBd0I7WUFDeEIsOEJBQThCO1lBQzlCLE9BQU8sSUFBSSxDQUFDO1NBQ2Y7SUFDTCxDQUFDO0NBQ0osQ0FBQztBQUVGLGtCQUFlLDRCQUE0QixDQUFDIn0=
120
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmVzdFByb3ZpZGVkSW5qZWN0YWJsZU1hcHBlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy91dGlscy9uZXN0TW9kdWxlcy9uZXN0UHJvdmlkZWRJbmplY3RhYmxlTWFwcGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFQSw2RUFBK0Q7QUFHL0QsNENBQW9CO0FBQ3BCLDREQUF1RDtBQUd2RCwrREFBMEQ7QUFDMUQsbUVBQThEO0FBRTlELE1BQU0sMENBQTBDLEdBQUcsSUFBSSxHQUFHLENBQUM7SUFDdkQsYUFBYTtJQUNiLGlCQUFpQjtJQUNqQixlQUFlO0lBQ2YsZ0JBQWdCLEVBQUUsZ0JBQWdCO0NBQ3JDLENBQUMsQ0FBQztBQUNILE1BQU0sNEJBQTRCLEdBQUc7SUFDakMsNkJBQTZCLENBQ3pCLFVBQXlDLEVBQ3pDLHVCQUErQjtRQUUvQixJQUFJLFVBQVUsSUFBSSxPQUFPLFVBQVUsS0FBSyxRQUFRLEVBQUU7WUFDOUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1NBQ3ZCO1FBRUQsSUFBSSxVQUFVLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsRUFBRTtZQUN6QyxPQUFPLFVBQVUsQ0FBQztTQUNyQjtRQUNELE9BQU8sQ0FBQyxLQUFLLENBQ1QsZ0dBQWdHLEVBQ2hHLEVBQUMsdUJBQXVCLEVBQUMsQ0FDNUIsQ0FBQztRQUNGLE9BQU8sQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO0lBQ3JDLENBQUM7SUFDRCxhQUFhLENBQ1QsS0FBc0I7SUFDdEIsOERBQThEO0lBQzlELE9BQW1EO1FBRW5ELE1BQU0sVUFBVSxHQUFHLElBQUksR0FBRyxFQUFzQyxDQUFDO1FBQ2pFLEtBQUs7YUFDQSxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUNQLE1BQU0sWUFBWSxHQUNkLDRCQUE0QixDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxRQUFR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
@@ -2,6 +2,6 @@ import { TSESTree } from "@typescript-eslint/utils";
2
2
  import { NestProvidedInjectablesMap } from "./models/NestProvidedInjectablesMap";
3
3
  export declare const nestProviderAstParser: {
4
4
  mapNestProviderObject(n: TSESTree.Property, path: string): Array<string | NestProvidedInjectablesMap> | null;
5
- findNestProviderObjectsProperty(providerDeclaration: TSESTree.VariableDeclarator | undefined, propertyName: string): TSESTree.Property | null;
6
- findNestProviderObject(ast: TSESTree.Program): TSESTree.VariableDeclarator | undefined;
5
+ findProvideProperty(providerDeclaration: TSESTree.VariableDeclarator | undefined, propertyName: string): TSESTree.Property | null;
6
+ findNestProviderVariableDeclaration(ast: TSESTree.Program): TSESTree.VariableDeclarator | undefined;
7
7
  };
@@ -15,7 +15,7 @@ exports.nestProviderAstParser = {
15
15
  }
16
16
  return null;
17
17
  },
18
- findNestProviderObjectsProperty(providerDeclaration, propertyName) {
18
+ findProvideProperty(providerDeclaration, propertyName) {
19
19
  if (providerDeclaration) {
20
20
  const foundProviderProperty = providerDeclaration.init.properties.find((p) =>
21
21
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
@@ -25,19 +25,31 @@ exports.nestProviderAstParser = {
25
25
  }
26
26
  return null;
27
27
  },
28
- findNestProviderObject(ast) {
28
+ findNestProviderVariableDeclaration(ast) {
29
29
  var _a;
30
30
  for (const n of ast.body) {
31
31
  if ((n.type === utils_1.AST_NODE_TYPES.ExportNamedDeclaration ||
32
32
  n.type === utils_1.AST_NODE_TYPES.ExportDefaultDeclaration) &&
33
33
  ((_a = n.declaration) === null || _a === void 0 ? void 0 : _a.type) === utils_1.AST_NODE_TYPES.VariableDeclaration) {
34
34
  const providerDeclaration = n.declaration.declarations.find((d) => {
35
- var _a, _b, _c;
36
- return d.type === utils_1.AST_NODE_TYPES.VariableDeclarator &&
37
- ((_c = (_b = (_a = d.id.typeAnnotation) === null || _a === void 0 ? void 0 : _a.typeAnnotation
38
- // prettier-ignore
39
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
40
- ) === null || _b === void 0 ? void 0 : _b.typeName) === null || _c === void 0 ? void 0 : _c.name) === "Provider";
35
+ var _a;
36
+ const isObjectExpression = (d.type === utils_1.AST_NODE_TYPES.VariableDeclarator &&
37
+ // has property "provide" and that property is an identifier
38
+ ((_a = d.init) === null || _a === void 0 ? void 0 : _a.type) ===
39
+ utils_1.AST_NODE_TYPES.ObjectExpression) ||
40
+ false;
41
+ const hasProvideProperty = isObjectExpression &&
42
+ d.init.properties.some((property) => {
43
+ return ((property.type ===
44
+ utils_1.AST_NODE_TYPES.Property &&
45
+ property.key.type ===
46
+ utils_1.AST_NODE_TYPES.Identifier &&
47
+ property.key.name === "provide" &&
48
+ property.value.type ===
49
+ utils_1.AST_NODE_TYPES.Identifier) ||
50
+ false);
51
+ });
52
+ return hasProvideProperty;
41
53
  });
42
54
  return providerDeclaration;
43
55
  }
@@ -45,4 +57,4 @@ exports.nestProviderAstParser = {
45
57
  return undefined;
46
58
  },
47
59
  };
48
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmVzdFByb3ZpZGVyQXN0UGFyc2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3V0aWxzL25lc3RNb2R1bGVzL25lc3RQcm92aWRlckFzdFBhcnNlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxvREFBa0U7QUFDbEUsb0ZBQStFO0FBRWxFLFFBQUEscUJBQXFCLEdBQUc7SUFDakMscUJBQXFCLENBQ2pCLENBQW9CLEVBQ3BCLElBQVk7UUFFWiw4REFBOEQ7UUFDOUQsTUFBTSxZQUFZLEdBQUksQ0FBQyxDQUFDLEtBQTZCLENBQUMsSUFBSSxDQUFDO1FBQzNELElBQUksWUFBWSxFQUFFO1lBQ2QsT0FBTztnQkFDSCxJQUFJO2dCQUNKLElBQUksdURBQTBCLENBQzFCLElBQUksR0FBRyxFQUFFLEVBQ1QsSUFBSSxHQUFHLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUMxQjthQUNKLENBQUM7U0FDTDtRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFDRCwrQkFBK0IsQ0FDM0IsbUJBQTRELEVBQzVELFlBQW9CO1FBRXBCLElBQUksbUJBQW1CLEVBQUU7WUFDckIsTUFBTSxxQkFBcUIsR0FDdkIsbUJBQW1CLENBQUMsSUFDdkIsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUNiLENBQUMsQ0FBQyxFQUFFLEVBQUU7WUFDRiw4REFBOEQ7WUFDNUQsQ0FBdUIsQ0FBQyxHQUEyQjtpQkFDaEQsSUFBSSxLQUFLLFlBQVksQ0FDWixDQUFDO1lBQ3ZCLE9BQU8scUJBQXFCLENBQUM7U0FDaEM7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBQ0Qsc0JBQXNCLENBQ2xCLEdBQXFCOztRQUVyQixLQUFLLE1BQU0sQ0FBQyxJQUFJLEdBQUcsQ0FBQyxJQUFJLEVBQUU7WUFDdEIsSUFDSSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssc0JBQWMsQ0FBQyxzQkFBc0I7Z0JBQzdDLENBQUMsQ0FBQyxJQUFJLEtBQUssc0JBQWMsQ0FBQyx3QkFBd0IsQ0FBQztnQkFDdkQsQ0FBQSxNQUFBLENBQUMsQ0FBQyxXQUFXLDBDQUFFLElBQUksTUFBSyxzQkFBYyxDQUFDLG1CQUFtQixFQUM1RDtnQkFDRSxNQUFNLG1CQUFtQixHQUFHLENBQUMsQ0FBQyxXQUFXLENBQUMsWUFBWSxDQUFDLElBQUksQ0FDdkQsQ0FBQyxDQUFDLEVBQUUsRUFBRTs7b0JBQ0YsT0FBQSxDQUFDLENBQUMsSUFBSSxLQUFLLHNCQUFjLENBQUMsa0JBQWtCO3dCQUM1QyxDQUFBLE1BQ0ksTUFDSSxNQUFBLENBQUMsQ0FBQyxFQUFFLENBQUMsY0FBYywwQ0FDYixjQUEwQzt3QkFDeEQsa0JBQWtCO3dCQUNoQiw4REFBOEQ7d0JBQzNELDBDQUFFLFFBQ04sMENBQUUsSUFBSSxNQUFLLFVBQVUsQ0FBQTtpQkFBQSxDQUM3QixDQUFDO2dCQUNGLE9BQU8sbUJBQW1CLENBQUM7YUFDOUI7U0FDSjtRQUNELE9BQU8sU0FBUyxDQUFDO0lBQ3JCLENBQUM7Q0FDSixDQUFDIn0=
60
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmVzdFByb3ZpZGVyQXN0UGFyc2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3V0aWxzL25lc3RNb2R1bGVzL25lc3RQcm92aWRlckFzdFBhcnNlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxvREFBa0U7QUFDbEUsb0ZBQStFO0FBRWxFLFFBQUEscUJBQXFCLEdBQUc7SUFDakMscUJBQXFCLENBQ2pCLENBQW9CLEVBQ3BCLElBQVk7UUFFWiw4REFBOEQ7UUFDOUQsTUFBTSxZQUFZLEdBQUksQ0FBQyxDQUFDLEtBQTZCLENBQUMsSUFBSSxDQUFDO1FBQzNELElBQUksWUFBWSxFQUFFO1lBQ2QsT0FBTztnQkFDSCxJQUFJO2dCQUNKLElBQUksdURBQTBCLENBQzFCLElBQUksR0FBRyxFQUFFLEVBQ1QsSUFBSSxHQUFHLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUMxQjthQUNKLENBQUM7U0FDTDtRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFDRCxtQkFBbUIsQ0FDZixtQkFBNEQsRUFDNUQsWUFBb0I7UUFFcEIsSUFBSSxtQkFBbUIsRUFBRTtZQUNyQixNQUFNLHFCQUFxQixHQUN2QixtQkFBbUIsQ0FBQyxJQUN2QixDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQ2IsQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUNGLDhEQUE4RDtZQUM1RCxDQUF1QixDQUFDLEdBQTJCO2lCQUNoRCxJQUFJLEtBQUssWUFBWSxDQUNaLENBQUM7WUFDdkIsT0FBTyxxQkFBcUIsQ0FBQztTQUNoQztRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFDRCxtQ0FBbUMsQ0FDL0IsR0FBcUI7O1FBRXJCLEtBQUssTUFBTSxDQUFDLElBQUksR0FBRyxDQUFDLElBQUksRUFBRTtZQUN0QixJQUNJLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxzQkFBYyxDQUFDLHNCQUFzQjtnQkFDN0MsQ0FBQyxDQUFDLElBQUksS0FBSyxzQkFBYyxDQUFDLHdCQUF3QixDQUFDO2dCQUN2RCxDQUFBLE1BQUEsQ0FBQyxDQUFDLFdBQVcsMENBQUUsSUFBSSxNQUFLLHNCQUFjLENBQUMsbUJBQW1CLEVBQzVEO2dCQUNFLE1BQU0sbUJBQW1CLEdBQUcsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUN2RCxDQUFDLENBQUMsRUFBRSxFQUFFOztvQkFDRixNQUFNLGtCQUFrQixHQUNwQixDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssc0JBQWMsQ0FBQyxrQkFBa0I7d0JBQ3pDLDREQUE0RDt3QkFDNUQsQ0FBQSxNQUFBLENBQUMsQ0FBQyxJQUFJLDBDQUFFLElBQUk7NEJBQ1Isc0JBQWMsQ0FBQyxnQkFBZ0IsQ0FBQzt3QkFDeEMsS0FBSyxDQUFDO29CQUVWLE1BQU0sa0JBQWtCLEdBQ3BCLGtCQUFrQjt3QkFFZCxDQUFDLENBQUMsSUFDTCxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRTs0QkFDM0IsT0FBTyxDQUNILENBQUMsUUFBUSxDQUFDLElBQUk7Z0NBQ1Ysc0JBQWMsQ0FBQyxRQUFRO2dDQUN2QixRQUFRLENBQUMsR0FBRyxDQUFDLElBQUk7b0NBQ2Isc0JBQWMsQ0FBQyxVQUFVO2dDQUM3QixRQUFRLENBQUMsR0FBRyxDQUFDLElBQUksS0FBSyxTQUFTO2dDQUMvQixRQUFRLENBQUMsS0FBSyxDQUFDLElBQUk7b0NBQ2Ysc0JBQWMsQ0FBQyxVQUFVLENBQUM7Z0NBQ2xDLEtBQUssQ0FDUixDQUFDO3dCQUNOLENBQUMsQ0FBQyxDQUFDO29CQUNQLE9BQU8sa0JBQWtCLENBQUM7Z0JBQzlCLENBQUMsQ0FDSixDQUFDO2dCQUVGLE9BQU8sbUJBQW1CLENBQUM7YUFDOUI7U0FDSjtRQUNELE9BQU8sU0FBUyxDQUFDO0lBQ3JCLENBQUM7Q0FDSixDQUFDIn0=
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@darraghor/eslint-plugin-nestjs-typed",
3
- "version": "3.11.0",
3
+ "version": "3.12.0",
4
4
  "description": "Eslint rules for nestjs projects",
5
5
  "scripts": {
6
6
  "clean": "rm -Rf ./dist/",
@@ -40,36 +40,36 @@
40
40
  "main": "dist/index.js",
41
41
  "types": "index.d.ts",
42
42
  "dependencies": {
43
- "@typescript-eslint/scope-manager": "5.30.7",
44
- "@typescript-eslint/utils": "5.30.7",
45
- "eslint-module-utils": "2.7.3",
43
+ "@typescript-eslint/scope-manager": "5.35.1",
44
+ "@typescript-eslint/utils": "5.35.1",
45
+ "eslint-module-utils": "2.7.4",
46
46
  "reflect-metadata": "0.1.13"
47
47
  },
48
48
  "devDependencies": {
49
- "@commitlint/cli": "17.0.3",
50
- "@commitlint/config-conventional": "17.0.3",
49
+ "@commitlint/cli": "17.1.1",
50
+ "@commitlint/config-conventional": "17.1.0",
51
51
  "@semantic-release/changelog": "6.0.1",
52
52
  "@semantic-release/exec": "6.0.3",
53
- "@types/eslint": "8.4.5",
54
- "@types/jest": "28.1.6",
55
- "@types/node": "17.0.34",
56
- "@typescript-eslint/eslint-plugin": "5.30.7",
57
- "@typescript-eslint/parser": "5.30.7",
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",
58
58
  "class-validator": "^0.13.2",
59
- "eslint": "8.20.0",
59
+ "eslint": "8.23.0",
60
60
  "eslint-config-prettier": "8.5.0",
61
61
  "eslint-plugin-import": "2.26.0",
62
- "eslint-plugin-jsdoc": "39.3.3",
62
+ "eslint-plugin-jsdoc": "39.3.6",
63
63
  "eslint-plugin-prefer-arrow": "1.2.3",
64
64
  "eslint-plugin-unicorn": "43.0.2",
65
65
  "husky": "8.0.1",
66
- "jest": "28.1.3",
66
+ "jest": "29.0.1",
67
67
  "jest-create-mock-instance": "2.0.0",
68
- "jest-junit": "14.0.0",
68
+ "jest-junit": "14.0.1",
69
69
  "lint-staged": "13.0.3",
70
70
  "prettier": "2.7.1",
71
- "semantic-release": "19.0.3",
72
- "ts-jest": "28.0.7",
71
+ "semantic-release": "19.0.5",
72
+ "ts-jest": "28.0.8",
73
73
  "ts-node": "10.9.1",
74
74
  "typescript": "4.7.4"
75
75
  },