nest-scramble 3.0.4 → 3.0.6

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/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2025 Mohamed Mustafa
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md CHANGED
@@ -12,7 +12,7 @@
12
12
 
13
13
  ---
14
14
 
15
- ## What's New in v3.0.4
15
+ ## What's New in v3.0.6
16
16
 
17
17
  ### Typed HTTP Client SDK Generation ✨
18
18
 
@@ -25,7 +25,7 @@ npx nest-scramble generate src --format client --output ./api-client.ts
25
25
  **Generated output (`api-client.ts`):**
26
26
 
27
27
  ```typescript
28
- // Auto-generated by nest-scramble v3.0.4 — do not edit manually
28
+ // Auto-generated by nest-scramble v3.0.6 — do not edit manually
29
29
  // Re-generate: npx nest-scramble generate src --format client
30
30
 
31
31
  export class UsersApiClient {
@@ -65,7 +65,7 @@ const users = await client.getUsers(1, 10); // fully typed ✅
65
65
 
66
66
  No extra runtime packages. Uses native `fetch`. Stays in sync with your controllers by re-running the command.
67
67
 
68
- ### Other v3.0.4 changes
68
+ ### Other v3.0.6 changes
69
69
 
70
70
  - Controller-based sidebar grouping is now the default (no config needed)
71
71
  - Route param normalisation `:id` → `{id}` for full OpenAPI compliance
@@ -85,7 +85,7 @@ No `@ApiProperty` decorators. No runtime overhead. Nest-Scramble reads your Type
85
85
  | Circular references | Auto-detected | Manual workarounds |
86
86
  | Performance overhead | Zero | Decorator cost on every request |
87
87
  | Postman collection | Built-in | Third-party export |
88
- | Typed client SDK | ✅ v3.0.4 | ✗ |
88
+ | Typed client SDK | ✅ v3.0.6 | ✗ |
89
89
 
90
90
  ---
91
91
 
@@ -191,7 +191,7 @@ npx nest-scramble generate src -o openapi.json
191
191
  # Generate Postman collection
192
192
  npx nest-scramble generate src --format postman -o collection.json
193
193
 
194
- # Generate typed TypeScript client (NEW in v3.0.4)
194
+ # Generate typed TypeScript client (NEW in v3.0.4, updated in v3.0.6)
195
195
  npx nest-scramble generate src --format client -o api-client.ts
196
196
 
197
197
  # Custom options
@@ -456,7 +456,7 @@ npm install nest-scramble@latest
456
456
  - [x] Live mock server
457
457
  - [x] Incremental scanning & watch mode
458
458
  - [x] Transitive dependency tracking
459
- - [x] Typed TypeScript client SDK (v3.0.4)
459
+ - [x] Typed TypeScript client SDK (v3.0.6)
460
460
  - [ ] Insomnia / Bruno collection export
461
461
  - [ ] `@ScrambleDoc()` lightweight metadata decorator
462
462
  - [ ] GraphQL schema support
@@ -1 +1 @@
1
- {"version":3,"file":"TypedClientGenerator.d.ts","sourceRoot":"","sources":["../../src/generators/TypedClientGenerator.ts"],"names":[],"mappings":"AAAA,kEAAkE;AAClE,OAAO,EAAE,cAAc,EAA6B,MAAM,2BAA2B,CAAC;AAGtF;;;;GAIG;AACH,qBAAa,oBAAoB;IACnB,OAAO,CAAC,QAAQ,CAAC,OAAO;gBAAP,OAAO,GAAE,MAAgC;IAEtE,QAAQ,CAAC,WAAW,EAAE,cAAc,EAAE,EAAE,OAAO,SAAU,GAAG,MAAM;IAuClE,OAAO,CAAC,oBAAoB;IAiB5B,OAAO,CAAC,WAAW;IAyDnB,OAAO,CAAC,aAAa;IAsBrB,OAAO,CAAC,YAAY;IAWpB,OAAO,CAAC,oBAAoB;IA4B5B,OAAO,CAAC,eAAe;IAwBvB,OAAO,CAAC,QAAQ;IAgBhB,OAAO,CAAC,WAAW;IAKnB,OAAO,CAAC,WAAW;IAInB,OAAO,CAAC,QAAQ;CAMjB"}
1
+ {"version":3,"file":"TypedClientGenerator.d.ts","sourceRoot":"","sources":["../../src/generators/TypedClientGenerator.ts"],"names":[],"mappings":"AAAA,kEAAkE;AAClE,OAAO,EAAE,cAAc,EAA6B,MAAM,2BAA2B,CAAC;AAGtF;;;;GAIG;AACH,qBAAa,oBAAoB;IACnB,OAAO,CAAC,QAAQ,CAAC,OAAO;gBAAP,OAAO,GAAE,MAAgC;IAEtE,QAAQ,CAAC,WAAW,EAAE,cAAc,EAAE,EAAE,OAAO,SAAU,GAAG,MAAM;IAuClE,OAAO,CAAC,oBAAoB;IAiB5B,OAAO,CAAC,WAAW;IAyDnB,OAAO,CAAC,aAAa;IAsBrB,OAAO,CAAC,YAAY;IAcpB,OAAO,CAAC,oBAAoB;IA4B5B,OAAO,CAAC,eAAe;IAwBvB,OAAO,CAAC,QAAQ;IAgBhB,OAAO,CAAC,WAAW;IAKnB,OAAO,CAAC,WAAW;IAInB,OAAO,CAAC,QAAQ;CAMjB"}
@@ -124,12 +124,15 @@ class TypedClientGenerator {
124
124
  return parts.join(', ');
125
125
  }
126
126
  buildUrlExpr(route, pathParams) {
127
- // Replace :param with ${param} template literal syntax
127
+ // Replace :param or {param} with ${param} template literal syntax.
128
+ // IMPORTANT: use a single combined regex so that the second pattern never
129
+ // re-matches a ${param} fragment produced by the first pattern.
128
130
  let result = '/' + route.replace(/^\/+/, '').replace(/\/*$/, '');
129
131
  for (const p of pathParams) {
130
- result = result.replace(new RegExp(`:${p.name}`, 'g'), `\${${p.name}}`);
131
- // Also handle {param} style (OpenAPI normalised)
132
- result = result.replace(new RegExp(`\\{${p.name}\\}`, 'g'), `\${${p.name}}`);
132
+ const pattern = new RegExp(`:${p.name}|\\{${p.name}\\}`, 'g');
133
+ // Use string concatenation for the replacement to avoid the special
134
+ // meaning that `$` has inside String.prototype.replace replacement strings.
135
+ result = result.replace(pattern, '${' + p.name + '}');
133
136
  }
134
137
  return result;
135
138
  }
@@ -1 +1 @@
1
- {"version":3,"file":"TypedClientGenerator.js","sourceRoot":"","sources":["../../src/generators/TypedClientGenerator.ts"],"names":[],"mappings":";;;AAIA;;;;GAIG;AACH,MAAa,oBAAoB;IAC/B,YAA6B,UAAkB,uBAAuB;QAAzC,YAAO,GAAP,OAAO,CAAkC;IAAG,CAAC;IAE1E,QAAQ,CAAC,WAA6B,EAAE,OAAO,GAAG,OAAO;QACvD,MAAM,KAAK,GAAa,EAAE,CAAC;QAE3B,KAAK,CAAC,IAAI,CAAC,uCAAuC,OAAO,yBAAyB,CAAC,CAAC;QACpF,KAAK,CAAC,IAAI,CAAC,gEAAgE,CAAC,CAAC;QAC7E,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAEf,6EAA6E;QAC7E,gFAAgF;QAChF,6EAA6E;QAC7E,MAAM,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC;QACnD,IAAI,QAAQ,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;YACtB,KAAK,CAAC,IAAI,CAAC,kFAAkF,CAAC,CAAC;YAC/F,KAAK,CAAC,IAAI,CAAC,oDAAoD,CAAC,CAAC;YACjE,KAAK,CAAC,IAAI,CAAC,sDAAsD,CAAC,CAAC;YACnE,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACf,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;gBAC/C,KAAK,CAAC,IAAI,CAAC,oBAAoB,IAAI,8BAA8B,CAAC,CAAC;YACrE,CAAC;YACD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACjB,CAAC;QAED,2BAA2B;QAC3B,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE,CAAC;YACrC,IAAI,UAAU,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC;gBAAE,SAAS;YAC9C,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,oBAAoB,CAAC,UAAU,CAAC,CAAC,CAAC;YACrD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACjB,CAAC;QAED,kDAAkD;QAClD,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,oBAAoB,CAAC,WAAW,CAAC,CAAC,CAAC;QAEtD,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;IAED,8EAA8E;IAC9E,kBAAkB;IAClB,8EAA8E;IAEtE,oBAAoB,CAAC,UAA0B;QACrD,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC;QAC/D,MAAM,KAAK,GAAa,EAAE,CAAC;QAE3B,KAAK,CAAC,IAAI,CAAC,gBAAgB,SAAS,IAAI,CAAC,CAAC;QAC1C,KAAK,CAAC,IAAI,CAAC,oDAAoD,CAAC,CAAC;QACjE,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAEf,KAAK,MAAM,MAAM,IAAI,UAAU,CAAC,OAAO,EAAE,CAAC;YACxC,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;YAC5E,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACjB,CAAC;QAED,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAChB,OAAO,KAAK,CAAC;IACf,CAAC;IAEO,WAAW,CAAC,cAAsB,EAAE,MAAkB;QAC5D,MAAM,KAAK,GAAa,EAAE,CAAC;QAE3B,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,iBAAiB,KAAK,MAAM,IAAI,CAAC,CAAC,SAAS,KAAK,OAAO,CAAC,CAAC;QAC5G,MAAM,WAAW,GAAG,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,iBAAiB,KAAK,OAAO,IAAI,CAAC,CAAC,SAAS,KAAK,OAAO,CAAC,CAAC;QAC9G,MAAM,SAAS,GAAG,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,iBAAiB,KAAK,MAAM,IAAI,CAAC,CAAC,SAAS,KAAK,MAAM,CAAC,CAAC;QAExG,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QAClD,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,UAAU,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC;QACxE,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;QAE9D,KAAK,CAAC,IAAI,CAAC,SAAS,MAAM,CAAC,IAAI,IAAI,QAAQ,cAAc,QAAQ,KAAK,CAAC,CAAC;QAExE,YAAY;QACZ,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;QACzD,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC3B,KAAK,CAAC,IAAI,CAAC,4CAA4C,OAAO,MAAM,CAAC,CAAC;YACtE,KAAK,MAAM,EAAE,IAAI,WAAW,EAAE,CAAC;gBAC7B,MAAM,UAAU,GAAG,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC;gBACtC,IAAI,UAAU,EAAE,CAAC;oBACf,KAAK,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,IAAI,0CAA0C,EAAE,CAAC,IAAI,aAAa,EAAE,CAAC,IAAI,KAAK,CAAC,CAAC;gBACzG,CAAC;qBAAM,CAAC;oBACN,KAAK,CAAC,IAAI,CAAC,4BAA4B,EAAE,CAAC,IAAI,aAAa,EAAE,CAAC,IAAI,KAAK,CAAC,CAAC;gBAC3E,CAAC;YACH,CAAC;QACH,CAAC;QAED,MAAM,MAAM,GAAG,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,qBAAqB,OAAO,IAAI,CAAC;QAE7F,mBAAmB;QACnB,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC;QACnD,IAAI,SAAS,EAAE,CAAC;YACd,KAAK,CAAC,IAAI,CAAC,8BAA8B,MAAM,KAAK,CAAC,CAAC;YACtD,KAAK,CAAC,IAAI,CAAC,gBAAgB,UAAU,IAAI,CAAC,CAAC;YAC3C,KAAK,CAAC,IAAI,CAAC,sDAAsD,CAAC,CAAC;YACnE,KAAK,CAAC,IAAI,CAAC,4BAA4B,SAAS,CAAC,IAAI,IAAI,CAAC,CAAC;YAC3D,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACtB,CAAC;aAAM,CAAC;YACN,IAAI,UAAU,KAAK,KAAK,EAAE,CAAC;gBACzB,KAAK,CAAC,IAAI,CAAC,8BAA8B,MAAM,IAAI,CAAC,CAAC;YACvD,CAAC;iBAAM,CAAC;gBACN,KAAK,CAAC,IAAI,CAAC,8BAA8B,MAAM,gBAAgB,UAAU,OAAO,CAAC,CAAC;YACpF,CAAC;QACH,CAAC;QAED,kBAAkB;QAClB,IAAI,QAAQ,KAAK,MAAM,EAAE,CAAC;YACxB,KAAK,CAAC,IAAI,CAAC,qCAAqC,MAAM,CAAC,IAAI,8BAA8B,CAAC,CAAC;QAC7F,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,IAAI,CAAC,qCAAqC,MAAM,CAAC,IAAI,8BAA8B,CAAC,CAAC;YAC3F,KAAK,CAAC,IAAI,CAAC,mCAAmC,QAAQ,IAAI,CAAC,CAAC;QAC9D,CAAC;QAED,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAChB,OAAO,KAAK,CAAC;IACf,CAAC;IAEO,aAAa,CACnB,UAA2B,EAC3B,WAA4B,EAC5B,SAAoC;QAEpC,MAAM,KAAK,GAAa,EAAE,CAAC;QAE3B,KAAK,MAAM,CAAC,IAAI,UAAU,EAAE,CAAC;YAC3B,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACpD,CAAC;QACD,KAAK,MAAM,CAAC,IAAI,WAAW,EAAE,CAAC;YAC5B,MAAM,GAAG,GAAG,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;YACzC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,GAAG,GAAG,KAAK,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC1D,CAAC;QACD,IAAI,SAAS,EAAE,CAAC;YACd,MAAM,GAAG,GAAG,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;YACjD,KAAK,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,IAAI,GAAG,GAAG,KAAK,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC1E,CAAC;QAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;IAEO,YAAY,CAAC,KAAa,EAAE,UAA2B;QAC7D,uDAAuD;QACvD,IAAI,MAAM,GAAG,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QACjE,KAAK,MAAM,CAAC,IAAI,UAAU,EAAE,CAAC;YAC3B,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,GAAG,CAAC,EAAE,MAAM,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC;YACxE,iDAAiD;YACjD,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,KAAK,EAAE,GAAG,CAAC,EAAE,MAAM,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC;QAC/E,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAEO,oBAAoB,CAAC,WAA6B;QACxD,MAAM,KAAK,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAC5D,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,EAAE,CAAC;QAElC,MAAM,KAAK,GAAa,EAAE,CAAC;QAC3B,KAAK,CAAC,IAAI,CAAC,iFAAiF,CAAC,CAAC;QAC9F,KAAK,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;QACvC,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;YACtB,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC,CAAC;YACtE,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC;YACtD,KAAK,CAAC,IAAI,CAAC,cAAc,QAAQ,KAAK,SAAS,GAAG,CAAC,CAAC;QACtD,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACf,KAAK,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAC;QAC/C,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;YACtB,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC,CAAC;YACtE,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC;YACtD,KAAK,CAAC,IAAI,CAAC,YAAY,QAAQ,UAAU,SAAS,YAAY,CAAC,CAAC;QAClE,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAClB,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAChB,OAAO,KAAK,CAAC;IACf,CAAC;IAED,8EAA8E;IAC9E,eAAe;IACf,8EAA8E;IAEtE,eAAe,CAAC,WAA6B;QACnD,MAAM,KAAK,GAAG,IAAI,GAAG,EAAU,CAAC;QAChC,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,CAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC;QAEzG,MAAM,KAAK,GAAG,CAAC,CAAe,EAAE,EAAE;YAChC,MAAM,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;YACzC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;gBACjD,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAClB,CAAC;YACD,IAAI,CAAC,CAAC,UAAU,EAAE,CAAC;gBACjB,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,UAAU;oBAAE,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YAC9C,CAAC;QACH,CAAC,CAAC;QAEF,KAAK,MAAM,CAAC,IAAI,WAAW,EAAE,CAAC;YAC5B,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC;gBAC1B,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;gBACpB,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,UAAU;oBAAE,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YAC9C,CAAC;QACH,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAEO,QAAQ,CAAC,CAAe;QAC9B,MAAM,YAAY,GAA2B;YAC3C,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS;YACtD,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS;SAClC,CAAC;QAEF,IAAI,IAAI,GAAG,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC;QAC1C,IAAI,CAAC,IAAI,IAAI,IAAI,KAAK,EAAE,IAAI,IAAI,KAAK,WAAW,IAAI,IAAI,KAAK,MAAM;YAAE,IAAI,GAAG,SAAS,CAAC;QAEtF,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;IACxC,CAAC;IAED,8EAA8E;IAC9E,iBAAiB;IACjB,8EAA8E;IAEtE,WAAW,CAAC,IAAY;QAC9B,2CAA2C;QAC3C,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACtD,CAAC;IAEO,WAAW,CAAC,IAAY;QAC9B,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACtD,CAAC;IAEO,QAAQ,CAAC,GAAG,KAAe;QACjC,OAAO,KAAK;aACT,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;aACrC,MAAM,CAAC,OAAO,CAAC;aACf,IAAI,CAAC,GAAG,CAAC,CAAC;IACf,CAAC;CACF;AAxOD,oDAwOC"}
1
+ {"version":3,"file":"TypedClientGenerator.js","sourceRoot":"","sources":["../../src/generators/TypedClientGenerator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,49 @@
1
+ /**
2
+ * UI Configuration Example
3
+ *
4
+ * Demonstrates NestScrambleModule setup options for the built-in
5
+ * documentation interface.
6
+ */
7
+
8
+ import { Module } from '@nestjs/common';
9
+ import { NestScrambleModule } from 'nest-scramble';
10
+
11
+ // ─── Example 1: Minimal setup ────────────────────────────────────────────────
12
+ @Module({
13
+ imports: [
14
+ NestScrambleModule.forRoot({
15
+ path: '/api-docs',
16
+ enableMock: true,
17
+ }),
18
+ ],
19
+ })
20
+ export class AppModule {}
21
+
22
+ // ─── Example 2: Full configuration ───────────────────────────────────────────
23
+ @Module({
24
+ imports: [
25
+ NestScrambleModule.forRoot({
26
+ path: '/api-docs',
27
+ apiTitle: 'My API',
28
+ apiVersion: '1.0.0',
29
+ enableMock: true,
30
+ autoExportPostman: true,
31
+ postmanOutputPath: './postman-collection.json',
32
+ }),
33
+ ],
34
+ })
35
+ export class AppFullModule {}
36
+
37
+ // ─── Example 3: Async configuration (e.g. reading from ConfigService) ────────
38
+ @Module({
39
+ imports: [
40
+ NestScrambleModule.forRootAsync({
41
+ useFactory: () => ({
42
+ path: '/docs',
43
+ apiTitle: 'My API',
44
+ enableMock: process.env.NODE_ENV !== 'production',
45
+ }),
46
+ }),
47
+ ],
48
+ })
49
+ export class AppAsyncModule {}
package/package.json CHANGED
@@ -1,32 +1,60 @@
1
1
  {
2
2
  "name": "nest-scramble",
3
- "version": "3.0.4",
3
+ "version": "3.0.6",
4
4
  "description": "A next-generation, decorator-free API documentation engine with Postman generation, live mocking, and typed client SDK generation for NestJS 10 and 11, engineered by Mohamed Mustafa",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
7
7
  "bin": {
8
8
  "nest-scramble": "dist/cli.js"
9
9
  },
10
+ "files": [
11
+ "dist/",
12
+ "examples/",
13
+ "README.md",
14
+ "LICENSE"
15
+ ],
16
+ "repository": {
17
+ "type": "git",
18
+ "url": "https://github.com/Eng-MMustafa/nest-scramble.git"
19
+ },
20
+ "homepage": "https://github.com/Eng-MMustafa/nest-scramble#readme",
21
+ "bugs": {
22
+ "url": "https://github.com/Eng-MMustafa/nest-scramble/issues"
23
+ },
24
+ "publishConfig": {
25
+ "access": "public"
26
+ },
10
27
  "scripts": {
11
28
  "build": "rimraf dist && tsc",
12
29
  "dev": "tsc --watch",
13
30
  "test": "jest",
31
+ "test:ci": "jest --coverage --coverageReporters=lcov --coverageReporters=text",
14
32
  "lint": "eslint src/**/*.ts",
15
33
  "lint:fix": "eslint src/**/*.ts --fix",
16
34
  "watch-generate": "node scripts/watch-generate.js"
17
35
  },
18
36
  "keywords": [
19
37
  "nestjs",
38
+ "nestjs-10",
39
+ "nestjs-11",
20
40
  "documentation",
41
+ "openapi",
42
+ "swagger",
21
43
  "static-analysis",
22
44
  "ast",
23
45
  "postman",
24
46
  "mocking",
47
+ "typed-client",
48
+ "sdk-generator",
25
49
  "mohamed-mustafa",
26
50
  "typescript",
27
- "zero-config"
51
+ "zero-config",
52
+ "zero-decorator"
28
53
  ],
29
- "author": "Mohamed Mustafa <https://github.com/Eng-MMustafa>",
54
+ "author": {
55
+ "name": "Mohamed Mustafa",
56
+ "url": "https://github.com/Eng-MMustafa"
57
+ },
30
58
  "license": "MIT",
31
59
  "dependencies": {
32
60
  "@faker-js/faker": "^8.4.1",
package/UI_FEATURES.md DELETED
@@ -1,310 +0,0 @@
1
- # 🚀 Nest-Scramble UI - World-Class Design Features
2
-
3
- **Engineered by Mohamed Mustafa (@Eng-MMustafa)**
4
-
5
- ## ✨ Overview
6
-
7
- The Nest-Scramble documentation UI has been elevated to a **bespoke, futuristic dashboard** that rivals high-end SaaS products. This document outlines all the advanced UI features and customization options.
8
-
9
- ## 🆕 Latest Documentation Updates
10
-
11
- - **Controller-grouped sidebar**: Operations are grouped under their controller name automatically
12
- - **Collapsible endpoint tree**: Each controller section can be expanded or collapsed in the sidebar
13
- - **OpenAPI-safe route params**: Routes like `/users/:id` are emitted as `/users/{id}` for compatibility with OpenAPI renderers
14
- - **Drop-in upgrade path**: Existing projects only need to update the package and restart the app
15
-
16
- ---
17
-
18
- ## 🎨 Futuristic Theme Features
19
-
20
- ### **Deep Space Dark Mode**
21
- - **Background**: `#050505` - Ultra-deep space black
22
- - **Animated Grid**: Pulsing background grid with subtle opacity animation
23
- - **Color Palette**:
24
- - **Cyber-Cyan**: `#00f2ff` (Primary accent)
25
- - **Electric Purple**: `#a855f7` (Secondary accent)
26
- - **Gradient Buttons**: Smooth cyan-to-purple gradients
27
-
28
- ### **Glassmorphism Design**
29
- - Backdrop blur effects on all cards and panels
30
- - Semi-transparent borders with subtle glow
31
- - Layered depth with shadow insets
32
- - Modern, frosted-glass aesthetic
33
-
34
- ### **Typography**
35
- - **Fonts**: 'Inter' and 'Plus Jakarta Sans' via Google Fonts
36
- - **Headers**: Gradient text with cyan-to-purple color fill
37
- - **Code Blocks**: 'JetBrains Mono' and 'Fira Code' for optimal readability
38
-
39
- ### **Sidebar Navigation**
40
- - Controller names are used as section titles automatically
41
- - Endpoints render as nested items under each controller
42
- - Sections are collapsible to keep large APIs easier to scan
43
- - Search still works across all operations in the grouped tree
44
-
45
- ### **Interactive Elements**
46
- - **Buttons**:
47
- - Gradient backgrounds with hover animations
48
- - Shimmer effect on hover
49
- - Glow shadows with primary color
50
- - Smooth lift animation (translateY)
51
-
52
- - **Search Bar**:
53
- - Spotlight-style UI (Cmd+K feel)
54
- - Focus state with glowing border
55
- - Dark glassmorphic background
56
-
57
- - **Code Snippets**:
58
- - Night Owl syntax theme
59
- - Rounded corners with subtle borders
60
- - Enhanced readability with proper spacing
61
-
62
- ### **Custom Branding**
63
- - **Powered by Badge**: Fixed position badge with:
64
- - Gradient background
65
- - Pulsing glow animation
66
- - "✨ Powered by Nest-Scramble" text
67
- - Bottom-right placement
68
-
69
- ### **Scrollbar Styling**
70
- - Custom gradient scrollbar thumb
71
- - Smooth hover effects
72
- - Matches the overall theme aesthetic
73
-
74
- ---
75
-
76
- ## 🎯 Configuration Options
77
-
78
- ### **Basic Setup**
79
-
80
- ```typescript
81
- import { NestScrambleModule } from 'nest-scramble';
82
-
83
- @Module({
84
- imports: [
85
- NestScrambleModule.forRoot({
86
- // Theme selection
87
- theme: 'futuristic', // or 'classic'
88
-
89
- // Primary brand color
90
- primaryColor: '#00f2ff',
91
-
92
- // Custom favicon
93
- customDomainIcon: 'https://your-domain.com/favicon.ico',
94
-
95
- // API metadata
96
- apiTitle: 'My Awesome API',
97
- apiVersion: '2.0.0',
98
- }),
99
- ],
100
- })
101
- export class AppModule {}
102
- ```
103
-
104
- ### **Available Options**
105
-
106
- | Option | Type | Default | Description |
107
- |--------|------|---------|-------------|
108
- | `theme` | `'classic' \| 'futuristic'` | `'futuristic'` | UI theme selection |
109
- | `primaryColor` | `string` | `'#00f2ff'` | Primary accent color (hex) |
110
- | `customDomainIcon` | `string` | `''` | Custom favicon URL |
111
- | `apiTitle` | `string` | Auto-detected | API documentation title |
112
- | `apiVersion` | `string` | Auto-detected | API version number |
113
- | `path` | `string` | `'/docs'` | Documentation route path |
114
- | `enableMock` | `boolean` | `true` | Enable mock server |
115
-
116
- ### **Upgrade Note**
117
-
118
- ```bash
119
- npm install nest-scramble@latest
120
- ```
121
-
122
- After updating, restart your NestJS server and open `/docs` again. The grouped sidebar works automatically with existing controllers.
123
-
124
- ---
125
-
126
- ## 🎭 Easter Egg Features
127
-
128
- ### **Console Messages**
129
- When users access the documentation, they'll see beautiful console messages:
130
-
131
- ```
132
- ✨ Engineered with passion by Mohamed Mustafa
133
- Nest-Scramble is active.
134
- 🚀 GitHub: https://github.com/Eng-MMustafa/nest-scramble
135
- ```
136
-
137
- ### **Theme Toggle**
138
- - Live theme switcher button (top-right)
139
- - Persists preference in localStorage
140
- - Smooth transitions between themes
141
-
142
- ---
143
-
144
- ## 🖥️ Terminal UI Enhancement
145
-
146
- ### **Gradient Dashboard**
147
- The startup dashboard now features:
148
- - **Cyan & Purple** gradient borders
149
- - **Bold emojis** for visual hierarchy
150
- - **Color-coded sections**:
151
- - 🟢 Green bullets for endpoints
152
- - 🔵 Cyan arrows for URLs
153
- - 🟡 Yellow icons for metadata
154
- - 🟣 Purple for theme indicator
155
-
156
- ### **Example Output**
157
-
158
- ```
159
- ╔═══════════════════════════════════════════════════════════════╗
160
- ║ ✨ NEST-SCRAMBLE by Mohamed Mustafa ║
161
- ║ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ║
162
- ║ ║
163
- ║ ● Documentation ║
164
- ║ → http://localhost:3000/docs ║
165
- ║ ║
166
- ║ ● OpenAPI Spec ║
167
- ║ → http://localhost:3000/docs-json ║
168
- ║ ║
169
- ║ ● Mock Server ║
170
- ║ → http://localhost:3000/scramble-mock ║
171
- ║ ║
172
- ║ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ║
173
- ║ 📦 Source Path: src ║
174
- ║ 🎯 Controllers: 5 ║
175
- ║ 🎨 Theme: Futuristic ║
176
- ╚═══════════════════════════════════════════════════════════════╝
177
- ```
178
-
179
- ---
180
-
181
- ## 🎨 CSS Architecture
182
-
183
- ### **Futuristic Theme**
184
- - **Root Variables**: CSS custom properties for easy theming
185
- - **Animations**:
186
- - `gridPulse`: Background grid animation (10s)
187
- - `badgePulse`: Branding badge glow (3s)
188
- - **Transitions**: Smooth 0.3s cubic-bezier for all interactions
189
- - **Responsive**: Mobile-optimized with proper viewport settings
190
-
191
- ### **Classic Theme**
192
- - Clean, minimal design
193
- - Light background with dark text
194
- - Simplified color scheme
195
- - Professional appearance for conservative environments
196
-
197
- ---
198
-
199
- ## 🚀 Advanced Features
200
-
201
- ### **1. Dynamic Color Branding**
202
- Set your brand color once, and it propagates throughout:
203
- - Button gradients
204
- - Focus states
205
- - Glow effects
206
- - Scrollbar styling
207
- - Link colors
208
-
209
- ### **2. Glassmorphism Effects**
210
- - `backdrop-filter: blur(20px)` on cards
211
- - Semi-transparent backgrounds
212
- - Layered shadows for depth
213
- - Modern, premium feel
214
-
215
- ### **3. Code Block Theming**
216
- - Night Owl color scheme
217
- - Syntax highlighting support
218
- - Monospace font optimization
219
- - Enhanced readability
220
-
221
- ### **4. Responsive Design**
222
- - Mobile-first approach
223
- - Flexible layouts
224
- - Touch-optimized interactions
225
- - Adaptive spacing
226
-
227
- ---
228
-
229
- ## 📊 Performance Optimizations
230
-
231
- - **Font Preloading**: Google Fonts with `preconnect`
232
- - **CSS-only Animations**: No JavaScript overhead
233
- - **Minimal DOM Manipulation**: Efficient rendering
234
- - **Optimized Selectors**: Fast CSS matching
235
-
236
- ---
237
-
238
- ## 🎯 Use Cases
239
-
240
- ### **Startup/SaaS Products**
241
- ```typescript
242
- NestScrambleModule.forRoot({
243
- theme: 'futuristic',
244
- primaryColor: '#00f2ff',
245
- apiTitle: 'StartupX API',
246
- })
247
- ```
248
-
249
- ### **Enterprise/Corporate**
250
- ```typescript
251
- NestScrambleModule.forRoot({
252
- theme: 'classic',
253
- primaryColor: '#0066cc',
254
- apiTitle: 'Enterprise API Gateway',
255
- })
256
- ```
257
-
258
- ### **Personal Projects**
259
- ```typescript
260
- NestScrambleModule.forRoot({
261
- theme: 'futuristic',
262
- primaryColor: '#a855f7',
263
- customDomainIcon: '/my-logo.png',
264
- })
265
- ```
266
-
267
- ---
268
-
269
- ## 🔥 What Makes This "Dala3" (High-End)?
270
-
271
- 1. **✨ Attention to Detail**: Every pixel is crafted with care
272
- 2. **🎨 Modern Design Language**: Glassmorphism, gradients, animations
273
- 3. **⚡ Smooth Interactions**: Buttery 60fps animations
274
- 4. **🎯 User Experience**: Intuitive, delightful, professional
275
- 5. **🚀 Performance**: Optimized for speed and efficiency
276
- 6. **💎 Premium Feel**: Rivals products like Stripe, Vercel, Linear
277
-
278
- ---
279
-
280
- ## 🛠️ Technical Implementation
281
-
282
- ### **DocsController.ts**
283
- - Dynamic CSS injection based on theme
284
- - Separate methods for futuristic and classic themes
285
- - Easter egg console script injection
286
- - Theme toggle functionality
287
-
288
- ### **NestScrambleModule.ts**
289
- - Enhanced options interface
290
- - Smart defaults with auto-detection
291
- - Gradient terminal dashboard
292
- - Configuration validation
293
-
294
- ---
295
-
296
- ## 📝 License
297
-
298
- MIT License - Developed by **Mohamed Mustafa** (@Eng-MMustafa)
299
-
300
- ---
301
-
302
- ## 🌟 Credits
303
-
304
- **Lead Architect**: Mohamed Mustafa
305
- **GitHub**: [@Eng-MMustafa](https://github.com/Eng-MMustafa)
306
- **Project**: [nest-scramble](https://github.com/Eng-MMustafa/nest-scramble)
307
-
308
- ---
309
-
310
- **Made with ✨ and passion for beautiful developer experiences.**
@@ -1,9 +0,0 @@
1
- #!/bin/bash
2
-
3
- echo "🚀 Building Nest-Scramble v2.1.1..."
4
- npm run build
5
-
6
- echo "📦 Publishing to npm..."
7
- npm publish
8
-
9
- echo "✅ Done!"