nest-scramble 2.1.3 → 3.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -6,15 +6,19 @@
6
6
  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
7
7
  [![GitHub stars](https://img.shields.io/github/stars/Eng-MMustafa/nest-scramble.svg)](https://github.com/Eng-MMustafa/nest-scramble)
8
8
  [![Author](https://img.shields.io/badge/Author-Mohamed%20Mustafa-blue.svg)](https://github.com/Eng-MMustafa)
9
- [![NestJS Compatibility](https://img.shields.io/badge/NestJS-%3E%3D9.0.0-blue.svg)](https://docs.nestjs.com)
9
+ [![NestJS Compatibility](https://img.shields.io/badge/NestJS-10%20%7C%2011-blue.svg)](https://docs.nestjs.com)
10
+ [![Node Version](https://img.shields.io/badge/node-%3E%3D18.10.0-brightgreen.svg)](https://nodejs.org)
11
+ [![TypeScript](https://img.shields.io/badge/typescript-%3E%3D5.0.0-blue.svg)](https://www.typescriptlang.org)
10
12
 
11
- ## 📋 What's New in v2.1.3
13
+ ## 📋 What's New in v3.0.0
12
14
 
13
- ### Recent Fixes & Improvements
14
- - **🔧 Fixed**: baseUrl configuration now properly displays in dashboard URLs
15
- - **🔧 Updated**: Enhanced NestJS compatibility (>=9.0.0)
16
- - **🔧 Improved**: Simplified reflect-metadata dependency
17
- - **🎯 Feature**: Full baseUrl customization support
15
+ ### 🚀 Major Version Update - NestJS 10 & 11 Focus
16
+ - **⚡ Breaking**: Dropped NestJS 9 support - now requires NestJS 10.x or 11.x
17
+ - **⚡ Breaking**: Minimum Node.js version is now 18.10.0
18
+ - **⚡ Breaking**: Minimum TypeScript version is now 5.0.0
19
+ - **🔧 Enhanced**: Optimized for modern NestJS metadata patterns
20
+ - **🔧 Improved**: Better TypeScript 5.x type inference and AST analysis
21
+ - **🎯 Feature**: Full compatibility with NestJS 11's latest features
18
22
 
19
23
  **Dashboard URLs now respect your configuration:**
20
24
  ```typescript
@@ -184,11 +188,18 @@ Then open your browser:
184
188
  ## 🔧 Compatibility & Requirements
185
189
 
186
190
  ### Supported Versions
187
- - **NestJS**: `>=9.0.0` (v9.x, v10.x, and future versions)
188
- - **Node.js**: `>=16.0.0`
189
- - **TypeScript**: `>=4.5.0`
191
+ - **NestJS**: `^10.0.0 || ^11.0.0` (v10.x and v11.x only)
192
+ - **Node.js**: `>=18.10.0` (required for NestJS 11)
193
+ - **TypeScript**: `>=5.0.0` (modern features and better type inference)
190
194
  - **reflect-metadata**: `>=0.1.13` (optional)
191
195
 
196
+ ### Migration from v2.x
197
+ If you're upgrading from nest-scramble v2.x with NestJS 9:
198
+ 1. Upgrade NestJS to v10 or v11: `npm install @nestjs/common@^10.0.0 @nestjs/core@^10.0.0`
199
+ 2. Upgrade Node.js to v18.10.0 or higher
200
+ 3. Upgrade TypeScript to v5.0.0 or higher
201
+ 4. Then upgrade nest-scramble: `npm install nest-scramble@^3.0.0`
202
+
192
203
  ### Package Managers
193
204
  ```bash
194
205
  # npm
@@ -909,7 +920,10 @@ NestScrambleModule.forRoot({
909
920
  - Clear your browser cache and hard refresh (Ctrl+Shift+R / Cmd+Shift+R)
910
921
  - Check browser console for errors
911
922
  - Verify the `/docs-json` endpoint returns valid JSON
912
- - Ensure you're using version 2.1.3 or higher: `npm list nest-scramble`
923
+ - Ensure you're using version 3.0.0 or higher: `npm list nest-scramble`
924
+ - Verify NestJS version compatibility (v10.x or v11.x required)
925
+ - Check Node.js version: `node --version` (must be >=18.10.0)
926
+ - Check TypeScript version: `npx tsc --version` (must be >=5.0.0)
913
927
 
914
928
  #### 3. **TypeScript Compilation Errors**
915
929
 
@@ -1051,12 +1065,17 @@ getUser(@Param('id') id: string) {
1051
1065
  If you're still experiencing issues:
1052
1066
 
1053
1067
  1. **Check the logs** - Nest-Scramble provides detailed diagnostic output on startup
1054
- 2. **Verify your version** - Run `npm list nest-scramble` (should be 2.1.3+)
1055
- 3. **Open an issue** - [GitHub Issues](https://github.com/Eng-MMustafa/nest-scramble/issues)
1068
+ 2. **Verify your version** - Run `npm list nest-scramble` (should be 3.0.0+)
1069
+ 3. **Check NestJS compatibility** - Verify you're using NestJS v10.x or v11.x (v9 is no longer supported)
1070
+ 4. **Check Node.js version** - Run `node --version` (must be >=18.10.0)
1071
+ 5. **Check TypeScript version** - Run `npx tsc --version` (must be >=5.0.0)
1072
+ 6. **Open an issue** - [GitHub Issues](https://github.com/Eng-MMustafa/nest-scramble/issues)
1056
1073
 
1057
1074
  When reporting issues, please include:
1058
- - Nest-Scramble version
1059
- - NestJS version
1075
+ - Nest-Scramble version (3.0.0+)
1076
+ - NestJS version (v10.x or v11.x)
1077
+ - Node.js version (>=18.10.0)
1078
+ - TypeScript version (>=5.0.0)
1060
1079
  - Package manager (npm/yarn/pnpm)
1061
1080
  - Startup logs
1062
1081
  - Sample controller code
@@ -1,5 +1,6 @@
1
1
  /** Nest-Scramble | Developed by Mohamed Mustafa | MIT License **/
2
2
  import { DynamicModule, MiddlewareConsumer, OnModuleInit } from '@nestjs/common';
3
+ import { ConfigurableModuleClass } from './nest-scramble.module-definition';
3
4
  export interface NestScrambleOptions {
4
5
  path?: string;
5
6
  enableMock?: boolean;
@@ -20,13 +21,16 @@ export interface NestScrambleOptions {
20
21
  watchDebounce?: number;
21
22
  skipDependencyTracking?: boolean;
22
23
  enableHashCollisionDetection?: boolean;
24
+ defaultAuthType?: 'bearer' | 'apiKey' | 'none';
25
+ enableApiVersioning?: boolean;
23
26
  }
24
- export declare class NestScrambleModule implements OnModuleInit {
27
+ export declare class NestScrambleModule extends ConfigurableModuleClass implements OnModuleInit {
28
+ private readonly options;
25
29
  private static moduleOptions;
30
+ constructor(options: NestScrambleOptions);
26
31
  onModuleInit(): void;
27
32
  private displayDashboard;
28
33
  static forRoot(options?: NestScrambleOptions): DynamicModule;
29
- static forRootAsync(options?: NestScrambleOptions): DynamicModule;
30
34
  configure(consumer: MiddlewareConsumer): void;
31
35
  }
32
36
  //# sourceMappingURL=NestScrambleModule.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"NestScrambleModule.d.ts","sourceRoot":"","sources":["../src/NestScrambleModule.ts"],"names":[],"mappings":"AAAA,kEAAkE;AAClE,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAU,YAAY,EAAiB,MAAM,gBAAgB,CAAC;AAUxG,MAAM,WAAW,mBAAmB;IAClC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,KAAK,CAAC,EAAE,SAAS,GAAG,YAAY,CAAC;IAEjC,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,aAAa,CAAC,EAAE,KAAK,GAAG,QAAQ,CAAC;IACjC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC,4BAA4B,CAAC,EAAE,OAAO,CAAC;CACxC;AAED,qBACa,kBAAmB,YAAW,YAAY;IACrD,OAAO,CAAC,MAAM,CAAC,aAAa,CAA2B;IAEvD,YAAY;IAIZ,OAAO,CAAC,gBAAgB;IAsCxB,MAAM,CAAC,OAAO,CAAC,OAAO,GAAE,mBAAwB,GAAG,aAAa;IAkHhE,MAAM,CAAC,YAAY,CAAC,OAAO,GAAE,mBAAwB,GAAG,aAAa;IAKrE,SAAS,CAAC,QAAQ,EAAE,kBAAkB;CAMvC"}
1
+ {"version":3,"file":"NestScrambleModule.d.ts","sourceRoot":"","sources":["../src/NestScrambleModule.ts"],"names":[],"mappings":"AAAA,kEAAkE;AAClE,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAU,YAAY,EAAyB,MAAM,gBAAgB,CAAC;AAChH,OAAO,EAAE,uBAAuB,EAAwB,MAAM,mCAAmC,CAAC;AAUlG,MAAM,WAAW,mBAAmB;IAClC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,KAAK,CAAC,EAAE,SAAS,GAAG,YAAY,CAAC;IACjC,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,aAAa,CAAC,EAAE,KAAK,GAAG,QAAQ,CAAC;IACjC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC,4BAA4B,CAAC,EAAE,OAAO,CAAC;IACvC,eAAe,CAAC,EAAE,QAAQ,GAAG,QAAQ,GAAG,MAAM,CAAC;IAC/C,mBAAmB,CAAC,EAAE,OAAO,CAAC;CAC/B;AAED,qBACa,kBAAmB,SAAQ,uBAAwB,YAAW,YAAY;IAKnF,OAAO,CAAC,QAAQ,CAAC,OAAO;IAJ1B,OAAO,CAAC,MAAM,CAAC,aAAa,CAA2B;gBAIpC,OAAO,EAAE,mBAAmB;IAM/C,YAAY;IAIZ,OAAO,CAAC,gBAAgB;IAsCxB,MAAM,CAAC,OAAO,CAAC,OAAO,GAAE,mBAAwB,GAAG,aAAa;IAqHhE,SAAS,CAAC,QAAQ,EAAE,kBAAkB;CAKvC"}
@@ -5,11 +5,18 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
5
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
6
  return c > 3 && r && Object.defineProperty(target, key, r), r;
7
7
  };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
12
+ return function (target, key) { decorator(target, key, paramIndex); }
13
+ };
8
14
  var NestScrambleModule_1;
9
15
  Object.defineProperty(exports, "__esModule", { value: true });
10
16
  exports.NestScrambleModule = void 0;
11
17
  /** Nest-Scramble | Developed by Mohamed Mustafa | MIT License **/
12
18
  const common_1 = require("@nestjs/common");
19
+ const nest_scramble_module_definition_1 = require("./nest-scramble.module-definition");
13
20
  const PostmanCollectionGenerator_1 = require("./generators/PostmanCollectionGenerator");
14
21
  const MockMiddleware_1 = require("./middleware/MockMiddleware");
15
22
  const ScannerService_1 = require("./scanner/ScannerService");
@@ -18,7 +25,12 @@ const MockGenerator_1 = require("./utils/MockGenerator");
18
25
  const OpenApiTransformer_1 = require("./utils/OpenApiTransformer");
19
26
  const DocsController_1 = require("./controllers/DocsController");
20
27
  const AutoDetector_1 = require("./utils/AutoDetector");
21
- let NestScrambleModule = NestScrambleModule_1 = class NestScrambleModule {
28
+ let NestScrambleModule = NestScrambleModule_1 = class NestScrambleModule extends nest_scramble_module_definition_1.ConfigurableModuleClass {
29
+ constructor(options) {
30
+ super();
31
+ this.options = options;
32
+ NestScrambleModule_1.moduleOptions = options;
33
+ }
22
34
  onModuleInit() {
23
35
  this.displayDashboard();
24
36
  }
@@ -60,7 +72,6 @@ let NestScrambleModule = NestScrambleModule_1 = class NestScrambleModule {
60
72
  static forRoot(options = {}) {
61
73
  // Auto-detect project structure
62
74
  const projectStructure = AutoDetector_1.AutoDetector.detectProjectStructure();
63
- // Smart defaults with auto-detection
64
75
  const config = {
65
76
  path: options.path || '/docs',
66
77
  enableMock: options.enableMock !== undefined ? options.enableMock : true,
@@ -73,29 +84,25 @@ let NestScrambleModule = NestScrambleModule_1 = class NestScrambleModule {
73
84
  customDomainIcon: options.customDomainIcon || '',
74
85
  primaryColor: options.primaryColor || '#00f2ff',
75
86
  theme: options.theme || 'futuristic',
76
- // 🆕 Incremental Scanning Options
77
87
  useIncrementalScanning: options.useIncrementalScanning || false,
78
88
  cacheFilePath: options.cacheFilePath || 'scramble-cache.json',
79
89
  hashAlgorithm: options.hashAlgorithm || 'md5',
80
- cacheTtl: options.cacheTtl || 24 * 60 * 60 * 1000, // 24 hours
81
- // 🆕 Watch Mode Options
90
+ cacheTtl: options.cacheTtl || 24 * 60 * 60 * 1000,
82
91
  enableWatchMode: options.enableWatchMode || false,
83
92
  watchDebounce: options.watchDebounce || 300,
84
- // 🆕 Advanced Options
85
93
  skipDependencyTracking: options.skipDependencyTracking || false,
86
94
  enableHashCollisionDetection: options.enableHashCollisionDetection !== false,
87
95
  };
88
- // Store for dashboard display
89
96
  NestScrambleModule_1.moduleOptions = config;
90
97
  console.log(`\n${'='.repeat(60)}`);
91
98
  console.log(`🚀 [Nest-Scramble] Zero-Config Auto-Detection Engine`);
92
99
  console.log(` Developed by Mohamed Mustafa | MIT License`);
100
+ console.log(` NestJS 10 & 11 | Node.js 18.10+ | TypeScript 5+`);
93
101
  console.log(`${'='.repeat(60)}`);
94
102
  console.log(`\n[Nest-Scramble] 🔍 Auto-detected project structure:`);
95
103
  console.log(` Root: ${projectStructure.rootPath}`);
96
104
  console.log(` Source: ${config.sourcePath}`);
97
105
  console.log(` Config: ${projectStructure.tsConfigPath}`);
98
- // Use IncrementalScannerService if enabled
99
106
  let scanner;
100
107
  let controllers;
101
108
  if (config.useIncrementalScanning) {
@@ -107,10 +114,8 @@ let NestScrambleModule = NestScrambleModule_1 = class NestScrambleModule {
107
114
  cacheTtl: config.cacheTtl,
108
115
  skipDependencyTracking: config.skipDependencyTracking,
109
116
  });
110
- // Initialize and scan
111
117
  scanner.initialize(config.sourcePath);
112
118
  controllers = scanner.scanControllers(config.sourcePath);
113
- // Show cache stats
114
119
  const cacheStats = scanner.getCacheManager().getStats();
115
120
  console.log(`[Nest-Scramble] 📊 Cache: ${cacheStats.controllerCount} controllers, ${cacheStats.hashAlgorithm} algorithm`);
116
121
  }
@@ -130,9 +135,13 @@ let NestScrambleModule = NestScrambleModule_1 = class NestScrambleModule {
130
135
  require('fs').writeFileSync(config.postmanOutputPath, JSON.stringify(collection, null, 2));
131
136
  console.log(`[Nest-Scramble] ✓ Postman collection exported to ${config.postmanOutputPath}`);
132
137
  }
138
+ // Get the base module from ConfigurableModuleBuilder
139
+ const baseModule = super.forRoot(config);
140
+ // Merge with our custom providers and controllers
133
141
  return {
134
- module: NestScrambleModule_1,
142
+ ...baseModule,
135
143
  providers: [
144
+ ...(baseModule.providers || []),
136
145
  ScannerService_1.ScannerService,
137
146
  IncrementalScannerService_1.IncrementalScannerService,
138
147
  PostmanCollectionGenerator_1.PostmanCollectionGenerator,
@@ -151,17 +160,17 @@ let NestScrambleModule = NestScrambleModule_1 = class NestScrambleModule {
151
160
  useValue: config,
152
161
  },
153
162
  ],
154
- exports: [ScannerService_1.ScannerService, IncrementalScannerService_1.IncrementalScannerService, PostmanCollectionGenerator_1.PostmanCollectionGenerator, OpenApiTransformer_1.OpenApiTransformer],
163
+ exports: [
164
+ ...(baseModule.exports || []),
165
+ ScannerService_1.ScannerService,
166
+ IncrementalScannerService_1.IncrementalScannerService,
167
+ PostmanCollectionGenerator_1.PostmanCollectionGenerator,
168
+ OpenApiTransformer_1.OpenApiTransformer,
169
+ ],
155
170
  controllers: [DocsController_1.DocsController],
156
- imports: [],
157
171
  };
158
172
  }
159
- static forRootAsync(options = {}) {
160
- // Similar to forRoot but with async providers if needed
161
- return this.forRoot(options);
162
- }
163
173
  configure(consumer) {
164
- // Apply mock middleware if enabled
165
174
  consumer
166
175
  .apply(MockMiddleware_1.MockMiddleware)
167
176
  .forRoutes({ path: 'scramble-mock/*', method: common_1.RequestMethod.ALL });
@@ -170,6 +179,8 @@ let NestScrambleModule = NestScrambleModule_1 = class NestScrambleModule {
170
179
  exports.NestScrambleModule = NestScrambleModule;
171
180
  NestScrambleModule.moduleOptions = {};
172
181
  exports.NestScrambleModule = NestScrambleModule = NestScrambleModule_1 = __decorate([
173
- (0, common_1.Module)({})
182
+ (0, common_1.Module)({}),
183
+ __param(0, (0, common_1.Inject)(nest_scramble_module_definition_1.MODULE_OPTIONS_TOKEN)),
184
+ __metadata("design:paramtypes", [Object])
174
185
  ], NestScrambleModule);
175
186
  //# sourceMappingURL=NestScrambleModule.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"NestScrambleModule.js","sourceRoot":"","sources":["../src/NestScrambleModule.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"NestScrambleModule.js","sourceRoot":"","sources":["../src/NestScrambleModule.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"DocsController.d.ts","sourceRoot":"","sources":["../../src/controllers/DocsController.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,aAAa,aAAa,CAAC;AACxC,eAAO,MAAM,MAAM,wDAAyC,CAAC;AAE7D,qBAEa,cAAc;IAEU,OAAO,CAAC,WAAW;IACnB,OAAO,CAAC,OAAO;gBADP,WAAW,EAAE,GAAG,EAChB,OAAO,EAAE,GAAG;IAIvD,OAAO,CAAQ,GAAG,EAAE,GAAG;IA2EvB,cAAc,CAAQ,GAAG,EAAE,GAAG;IAa9B,oBAAoB,CAAQ,GAAG,EAAE,GAAG;IAKpC,cAAc;CAGf"}
1
+ {"version":3,"file":"DocsController.d.ts","sourceRoot":"","sources":["../../src/controllers/DocsController.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,aAAa,aAAa,CAAC;AACxC,eAAO,MAAM,MAAM,wDAAyC,CAAC;AAE7D,qBAEa,cAAc;IAEU,OAAO,CAAC,WAAW;IACnB,OAAO,CAAC,OAAO;gBADP,WAAW,EAAE,GAAG,EAChB,OAAO,EAAE,GAAG;IAIvD,OAAO,CAAQ,GAAG,EAAE,GAAG;IAwFvB,cAAc,CAAQ,GAAG,EAAE,GAAG;IAa9B,oBAAoB,CAAQ,GAAG,EAAE,GAAG;IAKpC,cAAc;CAGf"}
@@ -88,8 +88,21 @@ let DocsController = class DocsController {
88
88
  </style>
89
89
  </head>
90
90
  <body>
91
- <script id="api-reference" data-url="/docs-json"></script>
91
+ <div id="api-reference"></div>
92
92
  <script src="https://cdn.jsdelivr.net/npm/@scalar/api-reference"></script>
93
+ <script>
94
+ Scalar.createApiReference('#api-reference', {
95
+ url: '/docs-json',
96
+ defaultOpenFirstTag: false,
97
+ defaultOpenAllTags: false,
98
+ hideModels: true,
99
+ operationTitleSource: 'path',
100
+ tagsSorter: 'alpha',
101
+ operationsSorter: 'method',
102
+ theme: 'default',
103
+ withDefaultFonts: false,
104
+ });
105
+ </script>
93
106
  </body>
94
107
  </html>`;
95
108
  res.setHeader('Content-Type', 'text/html; charset=utf-8');
@@ -1 +1 @@
1
- {"version":3,"file":"DocsController.js","sourceRoot":"","sources":["../../src/controllers/DocsController.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,kEAAkE;AAClE,2CAA2E;AAE9D,QAAA,aAAa,GAAG,UAAU,CAAC;AACjC,MAAM,MAAM,GAAG,GAAG,EAAE,CAAC,IAAA,oBAAW,EAAC,qBAAa,EAAE,IAAI,CAAC,CAAC;AAAhD,QAAA,MAAM,UAA0C;AAItD,IAAM,cAAc,GAApB,MAAM,cAAc;IACzB,YAC2C,WAAgB,EAChB,OAAY;QADZ,gBAAW,GAAX,WAAW,CAAK;QAChB,YAAO,GAAP,OAAO,CAAK;IACpD,CAAC;IAGJ,OAAO,CAAQ,GAAQ;QACrB,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,EAAE,YAAY,IAAI,SAAS,CAAC;QAC7D,MAAM,IAAI,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;+BA4Bc,YAAY;;;;oCAIP,YAAY;;;;;;;+BAOjB,YAAY;;;;oCAIP,YAAY;;;;;;;;;;;;;;;;;;;;;;;QAuBxC,CAAC;QAEL,GAAG,CAAC,SAAS,CAAC,cAAc,EAAE,0BAA0B,CAAC,CAAC;QAC1D,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACjB,CAAC;IAGD,cAAc,CAAQ,GAAQ;QAC5B,IAAI,CAAC;YACH,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;YAC7D,GAAG,CAAC,SAAS,CAAC,cAAc,EAAE,iCAAiC,CAAC,CAAC;YACjE,GAAG,CAAC,SAAS,CAAC,6BAA6B,EAAE,GAAG,CAAC,CAAC;YAClD,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACvB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,iDAAiD,EAAE,KAAK,CAAC,CAAC;YACxE,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,0CAA0C,EAAE,CAAC,CAAC;QAC9E,CAAC;IACH,CAAC;IAGD,oBAAoB,CAAQ,GAAQ;QAClC,OAAO,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;IAClC,CAAC;IAGD,cAAc;QACZ,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;CACF,CAAA;AAvGY,wCAAc;AAOzB;IADC,IAAA,YAAG,EAAC,MAAM,CAAC;IACH,WAAA,IAAA,YAAG,GAAE,CAAA;;;;6CAwEb;AAGD;IADC,IAAA,YAAG,EAAC,WAAW,CAAC;IACD,WAAA,IAAA,YAAG,GAAE,CAAA;;;;oDAUpB;AAGD;IADC,IAAA,YAAG,EAAC,WAAW,CAAC;IACK,WAAA,IAAA,YAAG,GAAE,CAAA;;;;0DAE1B;AAGD;IADC,IAAA,YAAG,EAAC,WAAW,CAAC;;;;oDAGhB;yBAtGU,cAAc;IAF1B,IAAA,mBAAU,GAAE;IACZ,IAAA,cAAM,GAAE;IAGJ,WAAA,IAAA,eAAM,EAAC,uBAAuB,CAAC,CAAA;IAC/B,WAAA,IAAA,eAAM,EAAC,uBAAuB,CAAC,CAAA;;GAHvB,cAAc,CAuG1B"}
1
+ {"version":3,"file":"DocsController.js","sourceRoot":"","sources":["../../src/controllers/DocsController.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,kEAAkE;AAClE,2CAA2E;AAE9D,QAAA,aAAa,GAAG,UAAU,CAAC;AACjC,MAAM,MAAM,GAAG,GAAG,EAAE,CAAC,IAAA,oBAAW,EAAC,qBAAa,EAAE,IAAI,CAAC,CAAC;AAAhD,QAAA,MAAM,UAA0C;AAItD,IAAM,cAAc,GAApB,MAAM,cAAc;IACzB,YAC2C,WAAgB,EAChB,OAAY;QADZ,gBAAW,GAAX,WAAW,CAAK;QAChB,YAAO,GAAP,OAAO,CAAK;IACpD,CAAC;IAGJ,OAAO,CAAQ,GAAQ;QACrB,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,EAAE,YAAY,IAAI,SAAS,CAAC;QAC7D,MAAM,IAAI,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;+BA4Bc,YAAY;;;;oCAIP,YAAY;;;;;;;+BAOjB,YAAY;;;;oCAIP,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAoCxC,CAAC;QAEL,GAAG,CAAC,SAAS,CAAC,cAAc,EAAE,0BAA0B,CAAC,CAAC;QAC1D,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACjB,CAAC;IAGD,cAAc,CAAQ,GAAQ;QAC5B,IAAI,CAAC;YACH,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;YAC7D,GAAG,CAAC,SAAS,CAAC,cAAc,EAAE,iCAAiC,CAAC,CAAC;YACjE,GAAG,CAAC,SAAS,CAAC,6BAA6B,EAAE,GAAG,CAAC,CAAC;YAClD,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACvB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,iDAAiD,EAAE,KAAK,CAAC,CAAC;YACxE,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,0CAA0C,EAAE,CAAC,CAAC;QAC9E,CAAC;IACH,CAAC;IAGD,oBAAoB,CAAQ,GAAQ;QAClC,OAAO,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;IAClC,CAAC;IAGD,cAAc;QACZ,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;CACF,CAAA;AApHY,wCAAc;AAOzB;IADC,IAAA,YAAG,EAAC,MAAM,CAAC;IACH,WAAA,IAAA,YAAG,GAAE,CAAA;;;;6CAqFb;AAGD;IADC,IAAA,YAAG,EAAC,WAAW,CAAC;IACD,WAAA,IAAA,YAAG,GAAE,CAAA;;;;oDAUpB;AAGD;IADC,IAAA,YAAG,EAAC,WAAW,CAAC;IACK,WAAA,IAAA,YAAG,GAAE,CAAA;;;;0DAE1B;AAGD;IADC,IAAA,YAAG,EAAC,WAAW,CAAC;;;;oDAGhB;yBAnHU,cAAc;IAF1B,IAAA,mBAAU,GAAE;IACZ,IAAA,cAAM,GAAE;IAGJ,WAAA,IAAA,eAAM,EAAC,uBAAuB,CAAC,CAAA;IAC/B,WAAA,IAAA,eAAM,EAAC,uBAAuB,CAAC,CAAA;;GAHvB,cAAc,CAoH1B"}
package/dist/index.d.ts CHANGED
@@ -1,6 +1,7 @@
1
1
  /** Nest-Scramble | Developed by Mohamed Mustafa | MIT License **/
2
2
  export * from './generators/PostmanCollectionGenerator';
3
3
  export * from './NestScrambleModule';
4
+ export * from './nest-scramble.module-definition';
4
5
  export * from './scanner/ScannerService';
5
6
  export { IncrementalScannerService, ScanOptions } from './scanner/IncrementalScannerService';
6
7
  export * from './cache/CacheManager';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,kEAAkE;AAClE,cAAc,yCAAyC,CAAC;AACxD,cAAc,sBAAsB,CAAC;AACrC,cAAc,0BAA0B,CAAC;AACzC,OAAO,EAAE,yBAAyB,EAAE,WAAW,EAAE,MAAM,qCAAqC,CAAC;AAC7F,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC;AACtC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,sBAAsB,CAAC;AACrC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,8BAA8B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,kEAAkE;AAClE,cAAc,yCAAyC,CAAC;AACxD,cAAc,sBAAsB,CAAC;AACrC,cAAc,mCAAmC,CAAC;AAClD,cAAc,0BAA0B,CAAC;AACzC,OAAO,EAAE,yBAAyB,EAAE,WAAW,EAAE,MAAM,qCAAqC,CAAC;AAC7F,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC;AACtC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,sBAAsB,CAAC;AACrC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,8BAA8B,CAAC"}
package/dist/index.js CHANGED
@@ -18,6 +18,7 @@ exports.IncrementalScannerService = void 0;
18
18
  /** Nest-Scramble | Developed by Mohamed Mustafa | MIT License **/
19
19
  __exportStar(require("./generators/PostmanCollectionGenerator"), exports);
20
20
  __exportStar(require("./NestScrambleModule"), exports);
21
+ __exportStar(require("./nest-scramble.module-definition"), exports);
21
22
  __exportStar(require("./scanner/ScannerService"), exports);
22
23
  var IncrementalScannerService_1 = require("./scanner/IncrementalScannerService");
23
24
  Object.defineProperty(exports, "IncrementalScannerService", { enumerable: true, get: function () { return IncrementalScannerService_1.IncrementalScannerService; } });
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,kEAAkE;AAClE,0EAAwD;AACxD,uDAAqC;AACrC,2DAAyC;AACzC,iFAA6F;AAApF,sIAAA,yBAAyB,OAAA;AAClC,uDAAqC;AACrC,wDAAsC;AACtC,6DAA2C;AAC3C,8DAA4C;AAC5C,sDAAoC;AACpC,wDAAsC;AACtC,6DAA2C;AAC3C,uDAAqC;AACrC,8DAA4C;AAC5C,+DAA6C"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,kEAAkE;AAClE,0EAAwD;AACxD,uDAAqC;AACrC,oEAAkD;AAClD,2DAAyC;AACzC,iFAA6F;AAApF,sIAAA,yBAAyB,OAAA;AAClC,uDAAqC;AACrC,wDAAsC;AACtC,6DAA2C;AAC3C,8DAA4C;AAC5C,sDAAoC;AACpC,wDAAsC;AACtC,6DAA2C;AAC3C,uDAAqC;AACrC,8DAA4C;AAC5C,+DAA6C"}
@@ -0,0 +1,9 @@
1
+ import { NestScrambleOptions } from './NestScrambleModule';
2
+ /**
3
+ * Modern NestJS 10+ ConfigurableModuleBuilder approach
4
+ * This provides type-safe module configuration with better DX
5
+ */
6
+ export declare const ConfigurableModuleClass: import("@nestjs/common").ConfigurableModuleCls<NestScrambleOptions, "forRoot", "createNestScrambleOptions", {}>, MODULE_OPTIONS_TOKEN: string | symbol, OPTIONS_TYPE: NestScrambleOptions & Partial<{}>, ASYNC_OPTIONS_TYPE: import("@nestjs/common").ConfigurableModuleAsyncOptions<NestScrambleOptions, "createNestScrambleOptions"> & Partial<{}>;
7
+ export type NestScrambleModuleOptions = typeof OPTIONS_TYPE;
8
+ export type NestScrambleModuleAsyncOptions = typeof ASYNC_OPTIONS_TYPE;
9
+ //# sourceMappingURL=nest-scramble.module-definition.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nest-scramble.module-definition.d.ts","sourceRoot":"","sources":["../src/nest-scramble.module-definition.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAE3D;;;GAGG;AACH,eAAO,MAAQ,uBAAuB,mHAAE,oBAAoB,mBAAE,YAAY,qCAAE,kBAAkB,yHAMlF,CAAC;AAEb,MAAM,MAAM,yBAAyB,GAAG,OAAO,YAAY,CAAC;AAC5D,MAAM,MAAM,8BAA8B,GAAG,OAAO,kBAAkB,CAAC"}
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ var _a;
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.ASYNC_OPTIONS_TYPE = exports.OPTIONS_TYPE = exports.MODULE_OPTIONS_TOKEN = exports.ConfigurableModuleClass = void 0;
5
+ /** Nest-Scramble | Developed by Mohamed Mustafa | MIT License **/
6
+ const common_1 = require("@nestjs/common");
7
+ /**
8
+ * Modern NestJS 10+ ConfigurableModuleBuilder approach
9
+ * This provides type-safe module configuration with better DX
10
+ */
11
+ _a = new common_1.ConfigurableModuleBuilder({
12
+ moduleName: 'NestScramble',
13
+ })
14
+ .setClassMethodName('forRoot')
15
+ .setFactoryMethodName('createNestScrambleOptions')
16
+ .build(), exports.ConfigurableModuleClass = _a.ConfigurableModuleClass, exports.MODULE_OPTIONS_TOKEN = _a.MODULE_OPTIONS_TOKEN, exports.OPTIONS_TYPE = _a.OPTIONS_TYPE, exports.ASYNC_OPTIONS_TYPE = _a.ASYNC_OPTIONS_TYPE;
17
+ //# sourceMappingURL=nest-scramble.module-definition.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nest-scramble.module-definition.js","sourceRoot":"","sources":["../src/nest-scramble.module-definition.ts"],"names":[],"mappings":";;;;AAAA,kEAAkE;AAClE,2CAA2D;AAG3D;;;GAGG;AACU,KACX,IAAI,kCAAyB,CAAsB;IACjD,UAAU,EAAE,cAAc;CAC3B,CAAC;KACC,kBAAkB,CAAC,SAAS,CAAC;KAC7B,oBAAoB,CAAC,2BAA2B,CAAC;KACjD,KAAK,EAAE,EANG,+BAAuB,+BAAE,4BAAoB,4BAAE,oBAAY,oBAAE,0BAAkB,yBAMjF"}
@@ -9,6 +9,9 @@ export interface ControllerInfo {
9
9
  path: string;
10
10
  methods: MethodInfo[];
11
11
  hasGuards?: boolean;
12
+ version?: string | string[];
13
+ guardTypes?: string[];
14
+ isPublic?: boolean;
12
15
  filePath?: string;
13
16
  }
14
17
  export interface MethodInfo {
@@ -18,6 +21,9 @@ export interface MethodInfo {
18
21
  parameters: ParameterInfo[];
19
22
  returnType: AnalyzedType;
20
23
  hasGuards?: boolean;
24
+ version?: string | string[];
25
+ guardTypes?: string[];
26
+ isPublic?: boolean;
21
27
  }
22
28
  export interface ParameterInfo {
23
29
  name: string;
@@ -93,5 +99,8 @@ export declare class IncrementalScannerService {
93
99
  private extractControllerInfo;
94
100
  private extractDecoratorArgument;
95
101
  private extractMethodInfo;
102
+ private extractVersionDecorator;
103
+ private extractGuardTypes;
104
+ private isPublicDecorator;
96
105
  }
97
106
  //# sourceMappingURL=IncrementalScannerService.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"IncrementalScannerService.d.ts","sourceRoot":"","sources":["../../src/scanner/IncrementalScannerService.ts"],"names":[],"mappings":"AAAA,kEAAkE;AAClE,OAAO,EAAwD,OAAO,EAAc,MAAM,UAAU,CAAC;AACrG,OAAO,EAAE,YAAY,EAAe,MAAM,sBAAsB,CAAC;AACjE,OAAO,EAAE,YAAY,EAAoB,MAAM,uBAAuB,CAAC;AACvE,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAIzD,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,UAAU,EAAE,CAAC;IACtB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,aAAa,EAAE,CAAC;IAC5B,UAAU,EAAE,YAAY,CAAC;IACzB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,YAAY,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iBAAiB,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,QAAQ,GAAG,MAAM,CAAC;CAC1D;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC,aAAa,CAAC,EAAE,KAAK,GAAG,QAAQ,CAAC;IACjC,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,qBAAa,yBAAyB;IACpC,OAAO,CAAC,OAAO,CAAwB;IACvC,OAAO,CAAC,WAAW,CAAqB;IACxC,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,iBAAiB,CAAkC;IAC3D,OAAO,CAAC,UAAU,CAAc;IAChC,OAAO,CAAC,YAAY,CAAc;IAClC,OAAO,CAAC,aAAa,CAAS;gBAElB,OAAO,GAAE,WAAgB;IASrC;;OAEG;IACH,UAAU,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IAmBpC;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAwBzB;;OAEG;IACH,OAAO,CAAC,SAAS;IAoBjB;;OAEG;IACH,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,cAAc,EAAE;IAmDrD;;OAEG;IACH,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,cAAc,GAAG,IAAI;IAgEjD;;OAEG;IACH,kBAAkB,CAAC,MAAM,EAAE,eAAe,EAAE,GAAG,GAAG,CAAC,MAAM,EAAE,cAAc,GAAG,IAAI,CAAC;IA6CjF;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAkBxB;;OAEG;IACH,iBAAiB,IAAI,cAAc,EAAE;IAUrC;;OAEG;IACH,eAAe,IAAI,YAAY;IAI/B;;OAEG;IACH,oBAAoB,IAAI,iBAAiB,GAAG,IAAI;IAIhD;;OAEG;IACH,UAAU,IAAI,OAAO,GAAG,IAAI;IAI5B;;OAEG;IACH,OAAO,IAAI,IAAI;IAef,OAAO,CAAC,sBAAsB;IAS9B,OAAO,CAAC,qBAAqB;IAoC7B,OAAO,CAAC,wBAAwB;IAYhC,OAAO,CAAC,iBAAiB;CAyD1B"}
1
+ {"version":3,"file":"IncrementalScannerService.d.ts","sourceRoot":"","sources":["../../src/scanner/IncrementalScannerService.ts"],"names":[],"mappings":"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"}
@@ -332,13 +332,10 @@ class IncrementalScannerService {
332
332
  if (!controllerDecorator)
333
333
  return null;
334
334
  const controllerPath = this.extractDecoratorArgument(controllerDecorator) || '';
335
- const hasGuards = cls.getDecorators().some(decorator => {
336
- const callExpression = decorator.getCallExpression();
337
- if (!callExpression)
338
- return false;
339
- const expression = callExpression.getExpression();
340
- return ts_morph_1.Node.isIdentifier(expression) && expression.getText() === 'UseGuards';
341
- });
335
+ const version = this.extractVersionDecorator(cls);
336
+ const guardTypes = this.extractGuardTypes(cls);
337
+ const hasGuards = guardTypes.length > 0;
338
+ const isPublic = this.isPublicDecorator(cls);
342
339
  const methods = [];
343
340
  for (const method of cls.getMethods()) {
344
341
  const methodInfo = this.extractMethodInfo(method);
@@ -351,6 +348,9 @@ class IncrementalScannerService {
351
348
  path: controllerPath,
352
349
  methods,
353
350
  hasGuards,
351
+ version,
352
+ guardTypes,
353
+ isPublic,
354
354
  };
355
355
  }
356
356
  extractDecoratorArgument(decorator) {
@@ -383,13 +383,10 @@ class IncrementalScannerService {
383
383
  const expression = callExpression.getExpression();
384
384
  const httpMethod = expression.getText().toUpperCase();
385
385
  const route = this.extractDecoratorArgument(httpDecorator) || '';
386
- const hasGuards = method.getDecorators().some(decorator => {
387
- const callExpression = decorator.getCallExpression();
388
- if (!callExpression)
389
- return false;
390
- const expression = callExpression.getExpression();
391
- return ts_morph_1.Node.isIdentifier(expression) && expression.getText() === 'UseGuards';
392
- });
386
+ const version = this.extractVersionDecorator(method);
387
+ const guardTypes = this.extractGuardTypes(method);
388
+ const hasGuards = guardTypes.length > 0;
389
+ const isPublic = this.isPublicDecorator(method);
393
390
  const parameters = method.getParameters().map(param => {
394
391
  const decoratorText = param.getDecorators().map(d => d.getText()).join(' ');
395
392
  let parameterLocation;
@@ -420,8 +417,101 @@ class IncrementalScannerService {
420
417
  parameters,
421
418
  returnType,
422
419
  hasGuards,
420
+ version,
421
+ guardTypes,
422
+ isPublic,
423
423
  };
424
424
  }
425
+ extractVersionDecorator(node) {
426
+ const versionDecorator = node.getDecorators().find(decorator => {
427
+ const callExpression = decorator.getCallExpression();
428
+ if (!callExpression)
429
+ return false;
430
+ const expression = callExpression.getExpression();
431
+ return ts_morph_1.Node.isIdentifier(expression) && expression.getText() === 'Version';
432
+ });
433
+ if (!versionDecorator)
434
+ return undefined;
435
+ const callExpression = versionDecorator.getCallExpression();
436
+ if (!callExpression)
437
+ return undefined;
438
+ const args = callExpression.getArguments();
439
+ if (args.length === 0)
440
+ return undefined;
441
+ const firstArg = args[0];
442
+ if (ts_morph_1.Node.isStringLiteral(firstArg)) {
443
+ return firstArg.getLiteralValue();
444
+ }
445
+ if (ts_morph_1.Node.isArrayLiteralExpression(firstArg)) {
446
+ const versions = [];
447
+ for (const element of firstArg.getElements()) {
448
+ if (ts_morph_1.Node.isStringLiteral(element)) {
449
+ versions.push(element.getLiteralValue());
450
+ }
451
+ }
452
+ return versions.length > 0 ? versions : undefined;
453
+ }
454
+ return undefined;
455
+ }
456
+ extractGuardTypes(node) {
457
+ const guardTypes = [];
458
+ const useGuardsDecorators = node.getDecorators().filter(decorator => {
459
+ const callExpression = decorator.getCallExpression();
460
+ if (!callExpression)
461
+ return false;
462
+ const expression = callExpression.getExpression();
463
+ return ts_morph_1.Node.isIdentifier(expression) && expression.getText() === 'UseGuards';
464
+ });
465
+ for (const decorator of useGuardsDecorators) {
466
+ const callExpression = decorator.getCallExpression();
467
+ if (!callExpression)
468
+ continue;
469
+ const args = callExpression.getArguments();
470
+ for (const arg of args) {
471
+ if (ts_morph_1.Node.isIdentifier(arg)) {
472
+ guardTypes.push(arg.getText());
473
+ }
474
+ else if (ts_morph_1.Node.isCallExpression(arg)) {
475
+ const expr = arg.getExpression();
476
+ if (ts_morph_1.Node.isIdentifier(expr) && expr.getText() === 'AuthGuard') {
477
+ const guardArgs = arg.getArguments();
478
+ if (guardArgs.length > 0 && ts_morph_1.Node.isStringLiteral(guardArgs[0])) {
479
+ const strategy = guardArgs[0].getLiteralValue();
480
+ guardTypes.push(`AuthGuard(${strategy})`);
481
+ }
482
+ else {
483
+ guardTypes.push('AuthGuard');
484
+ }
485
+ }
486
+ }
487
+ }
488
+ }
489
+ return guardTypes;
490
+ }
491
+ isPublicDecorator(node) {
492
+ return node.getDecorators().some(decorator => {
493
+ const callExpression = decorator.getCallExpression();
494
+ if (!callExpression)
495
+ return false;
496
+ const expression = callExpression.getExpression();
497
+ if (ts_morph_1.Node.isIdentifier(expression) && expression.getText() === 'Public') {
498
+ return true;
499
+ }
500
+ if (ts_morph_1.Node.isIdentifier(expression) && expression.getText() === 'SetMetadata') {
501
+ const args = callExpression.getArguments();
502
+ if (args.length >= 2) {
503
+ const firstArg = args[0];
504
+ const secondArg = args[1];
505
+ if (ts_morph_1.Node.isStringLiteral(firstArg) && firstArg.getLiteralValue() === 'isPublic') {
506
+ if (secondArg.getText() === 'true') {
507
+ return true;
508
+ }
509
+ }
510
+ }
511
+ }
512
+ return false;
513
+ });
514
+ }
425
515
  }
426
516
  exports.IncrementalScannerService = IncrementalScannerService;
427
517
  //# sourceMappingURL=IncrementalScannerService.js.map