inviton-backduck 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +302 -0
- package/dist/apidoc/api-doc-generator.d.ts +58 -0
- package/dist/apidoc/api-doc-generator.d.ts.map +1 -0
- package/dist/apidoc/api-doc-generator.js +201 -0
- package/dist/apidoc/api-doc-generator.js.map +1 -0
- package/dist/apidoc/config.d.ts +153 -0
- package/dist/apidoc/config.d.ts.map +1 -0
- package/dist/apidoc/config.js +254 -0
- package/dist/apidoc/config.js.map +1 -0
- package/dist/apidoc/controller-parser.d.ts +208 -0
- package/dist/apidoc/controller-parser.d.ts.map +1 -0
- package/dist/apidoc/controller-parser.js +686 -0
- package/dist/apidoc/controller-parser.js.map +1 -0
- package/dist/apidoc/html-generator.d.ts +290 -0
- package/dist/apidoc/html-generator.d.ts.map +1 -0
- package/dist/apidoc/html-generator.js +2295 -0
- package/dist/apidoc/html-generator.js.map +1 -0
- package/dist/apidoc/index.d.ts +20 -0
- package/dist/apidoc/index.d.ts.map +1 -0
- package/dist/apidoc/index.js +16 -0
- package/dist/apidoc/index.js.map +1 -0
- package/dist/apidoc/openapi-builder.d.ts +169 -0
- package/dist/apidoc/openapi-builder.d.ts.map +1 -0
- package/dist/apidoc/openapi-builder.js +634 -0
- package/dist/apidoc/openapi-builder.js.map +1 -0
- package/dist/apidoc/parameterGeneratorRegistry.d.ts +20 -0
- package/dist/apidoc/parameterGeneratorRegistry.d.ts.map +1 -0
- package/dist/apidoc/parameterGeneratorRegistry.js +6 -0
- package/dist/apidoc/parameterGeneratorRegistry.js.map +1 -0
- package/dist/apidoc/test-type-resolver.d.ts +2 -0
- package/dist/apidoc/test-type-resolver.d.ts.map +1 -0
- package/dist/apidoc/test-type-resolver.js +6 -0
- package/dist/apidoc/test-type-resolver.js.map +1 -0
- package/dist/apidoc/type-resolver.d.ts +266 -0
- package/dist/apidoc/type-resolver.d.ts.map +1 -0
- package/dist/apidoc/type-resolver.js +1226 -0
- package/dist/apidoc/type-resolver.js.map +1 -0
- package/dist/apidoc/verify-type-resolution.d.ts +3 -0
- package/dist/apidoc/verify-type-resolution.d.ts.map +1 -0
- package/dist/apidoc/verify-type-resolution.js +29 -0
- package/dist/apidoc/verify-type-resolution.js.map +1 -0
- package/dist/bun/bunRouter.d.ts +70 -0
- package/dist/bun/bunRouter.d.ts.map +1 -0
- package/dist/bun/bunRouter.js +324 -0
- package/dist/bun/bunRouter.js.map +1 -0
- package/dist/bun/bunServer.d.ts +72 -0
- package/dist/bun/bunServer.d.ts.map +1 -0
- package/dist/bun/bunServer.js +218 -0
- package/dist/bun/bunServer.js.map +1 -0
- package/dist/bun/bunStaticFiles.d.ts +76 -0
- package/dist/bun/bunStaticFiles.d.ts.map +1 -0
- package/dist/bun/bunStaticFiles.js +251 -0
- package/dist/bun/bunStaticFiles.js.map +1 -0
- package/dist/bun/index.d.ts +7 -0
- package/dist/bun/index.d.ts.map +1 -0
- package/dist/bun/index.js +7 -0
- package/dist/bun/index.js.map +1 -0
- package/dist/data-contracts.d.ts +132 -0
- package/dist/data-contracts.d.ts.map +1 -0
- package/dist/data-contracts.js +2 -0
- package/dist/data-contracts.js.map +1 -0
- package/dist/decorators.d.ts +75 -0
- package/dist/decorators.d.ts.map +1 -0
- package/dist/decorators.js +101 -0
- package/dist/decorators.js.map +1 -0
- package/dist/express/expressFrontendRouter.d.ts +17 -0
- package/dist/express/expressFrontendRouter.d.ts.map +1 -0
- package/dist/express/expressFrontendRouter.js +33 -0
- package/dist/express/expressFrontendRouter.js.map +1 -0
- package/dist/express/expressRouter.d.ts +25 -0
- package/dist/express/expressRouter.d.ts.map +1 -0
- package/dist/express/expressRouter.js +150 -0
- package/dist/express/expressRouter.js.map +1 -0
- package/dist/express/index.d.ts +6 -0
- package/dist/express/index.d.ts.map +1 -0
- package/dist/express/index.js +6 -0
- package/dist/express/index.js.map +1 -0
- package/dist/index.d.ts +47 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +52 -0
- package/dist/index.js.map +1 -0
- package/dist/router.d.ts +162 -0
- package/dist/router.d.ts.map +1 -0
- package/dist/router.js +350 -0
- package/dist/router.js.map +1 -0
- package/dist/runtime-detect.d.ts +20 -0
- package/dist/runtime-detect.d.ts.map +1 -0
- package/dist/runtime-detect.js +20 -0
- package/dist/runtime-detect.js.map +1 -0
- package/dist/server.d.ts +126 -0
- package/dist/server.d.ts.map +1 -0
- package/dist/server.js +181 -0
- package/dist/server.js.map +1 -0
- package/dist/utils.d.ts +83 -0
- package/dist/utils.d.ts.map +1 -0
- package/dist/utils.js +157 -0
- package/dist/utils.js.map +1 -0
- package/package.json +65 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parameterGeneratorRegistry.js","sourceRoot":"","sources":["../../src/apidoc/parameterGeneratorRegistry.ts"],"names":[],"mappings":"AAeA;;;GAGG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAyE,EAE/G,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"test-type-resolver.d.ts","sourceRoot":"","sources":["../../src/apidoc/test-type-resolver.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import path from 'node:path';
|
|
2
|
+
import { TypeResolver } from './type-resolver';
|
|
3
|
+
const serverDir = path.join(__dirname, '..', '..', '..');
|
|
4
|
+
const r = new TypeResolver(serverDir);
|
|
5
|
+
console.log(typeof r.resolveType === 'function' ? 'OK' : 'FAIL');
|
|
6
|
+
//# sourceMappingURL=test-type-resolver.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"test-type-resolver.js","sourceRoot":"","sources":["../../src/apidoc/test-type-resolver.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAC1B,SAAS,EACT,IAAI,EACJ,IAAI,EACJ,IAAI,CACJ,CAAC;AACF,MAAM,CAAC,GAAG,IAAI,YAAY,CAAC,SAAS,CAAC,CAAC;AACtC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,WAAW,KAAK,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC"}
|
|
@@ -0,0 +1,266 @@
|
|
|
1
|
+
import type { PropertySignature, SourceFile, Type } from 'ts-morph';
|
|
2
|
+
/**
|
|
3
|
+
* Represents a resolved property from a TypeScript interface
|
|
4
|
+
*/
|
|
5
|
+
export interface ResolvedProperty {
|
|
6
|
+
/** Property name */
|
|
7
|
+
name: string;
|
|
8
|
+
/** OpenAPI-compatible type descriptor */
|
|
9
|
+
type: OpenApiType;
|
|
10
|
+
/** Whether the property is optional */
|
|
11
|
+
optional: boolean;
|
|
12
|
+
/** JSDoc description */
|
|
13
|
+
description: string | null;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* OpenAPI type descriptor
|
|
17
|
+
*/
|
|
18
|
+
export interface OpenApiType {
|
|
19
|
+
/** OpenAPI type (string, number, integer, boolean, array, object) - optional when using $ref or oneOf */
|
|
20
|
+
'type'?: string;
|
|
21
|
+
/** Format for string types (date, date-time, etc.) */
|
|
22
|
+
'format'?: string;
|
|
23
|
+
/** Description from JSDoc or type definition */
|
|
24
|
+
'description'?: string;
|
|
25
|
+
/** For array types, describes the item type */
|
|
26
|
+
'items'?: OpenApiType;
|
|
27
|
+
/** For object types, describes the properties */
|
|
28
|
+
'properties'?: Record<string, OpenApiType>;
|
|
29
|
+
/** Required property names for object types */
|
|
30
|
+
'required'?: string[];
|
|
31
|
+
/** Reference to another schema (for $ref) */
|
|
32
|
+
'$ref'?: string;
|
|
33
|
+
/** Enum values */
|
|
34
|
+
'enum'?: (string | number)[];
|
|
35
|
+
/** Enum members with names and descriptions (OpenAPI extension) */
|
|
36
|
+
'x-enum-members'?: EnumMember[];
|
|
37
|
+
/** For union types (oneOf) */
|
|
38
|
+
'oneOf'?: OpenApiType[];
|
|
39
|
+
/** For nullable types */
|
|
40
|
+
'nullable'?: boolean;
|
|
41
|
+
/** Additional properties for object types */
|
|
42
|
+
'additionalProperties'?: boolean | OpenApiType;
|
|
43
|
+
/** Example value for the type */
|
|
44
|
+
'example'?: unknown;
|
|
45
|
+
/** Marks this field as only available in enterprise mode (OpenAPI extension) */
|
|
46
|
+
'x-enterprise-only'?: boolean;
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Resolved type information including all properties
|
|
50
|
+
*/
|
|
51
|
+
/**
|
|
52
|
+
* Enum member with name, value, and description
|
|
53
|
+
*/
|
|
54
|
+
export interface EnumMember {
|
|
55
|
+
/** Member name (e.g., "SHOP") */
|
|
56
|
+
name: string;
|
|
57
|
+
/** Member value (e.g., 0 or "active") */
|
|
58
|
+
value: string | number;
|
|
59
|
+
/** JSDoc description if available */
|
|
60
|
+
description: string | null;
|
|
61
|
+
}
|
|
62
|
+
export interface ResolvedType {
|
|
63
|
+
/** Type name */
|
|
64
|
+
name: string;
|
|
65
|
+
/** Full type description */
|
|
66
|
+
description: string | null;
|
|
67
|
+
/** Resolved properties (flattened from inheritance) */
|
|
68
|
+
properties: ResolvedProperty[];
|
|
69
|
+
/** Whether this is an enum type */
|
|
70
|
+
isEnum: boolean;
|
|
71
|
+
/** Enum values if applicable (deprecated, use enumMembers instead) */
|
|
72
|
+
enumValues?: (string | number)[];
|
|
73
|
+
/** Enum members with full info (name, value, description) */
|
|
74
|
+
enumMembers?: EnumMember[];
|
|
75
|
+
/** Original file path where type is defined */
|
|
76
|
+
sourcePath: string | null;
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* TypeScript type resolver for OpenAPI schema generation
|
|
80
|
+
* Handles inheritance, utility types (Pick, Omit), Temporal types, and JSDoc extraction
|
|
81
|
+
*/
|
|
82
|
+
export declare class TypeResolver {
|
|
83
|
+
private project;
|
|
84
|
+
private serverDir;
|
|
85
|
+
private resolvedTypes;
|
|
86
|
+
private resolvingStack;
|
|
87
|
+
private serviceInterfaceCache;
|
|
88
|
+
private conversionDepth;
|
|
89
|
+
private readonly MAX_CONVERSION_DEPTH;
|
|
90
|
+
/** Cache for OpenAPI type conversions keyed by type text */
|
|
91
|
+
private openApiTypeCache;
|
|
92
|
+
/** Cache for loaded source files */
|
|
93
|
+
private sourceFileCache;
|
|
94
|
+
/** Cache for directory file listings */
|
|
95
|
+
private directoryFilesCache;
|
|
96
|
+
constructor(serverDir: string);
|
|
97
|
+
/**
|
|
98
|
+
* Resolve a type by name and return its OpenAPI schema
|
|
99
|
+
*/
|
|
100
|
+
resolveType(typeName: string, sourceFile?: SourceFile): ResolvedType | null;
|
|
101
|
+
/**
|
|
102
|
+
* Convert a resolved type to OpenAPI schema
|
|
103
|
+
*/
|
|
104
|
+
typeToOpenApiSchema(resolvedType: ResolvedType): OpenApiType;
|
|
105
|
+
/**
|
|
106
|
+
* Convert a TypeScript type directly to OpenAPI type
|
|
107
|
+
*/
|
|
108
|
+
tsTypeToOpenApi(type: Type, propertyName?: string): OpenApiType;
|
|
109
|
+
/**
|
|
110
|
+
* Internal implementation of tsTypeToOpenApi
|
|
111
|
+
*/
|
|
112
|
+
private tsTypeToOpenApiInternal;
|
|
113
|
+
/**
|
|
114
|
+
* Extract JSDoc description from a property
|
|
115
|
+
*/
|
|
116
|
+
extractPropertyJsDoc(property: PropertySignature): string | null;
|
|
117
|
+
/**
|
|
118
|
+
* Check if JSDoc contains @privateField tag (case insensitive)
|
|
119
|
+
* Fields with this tag should be omitted from API documentation
|
|
120
|
+
*/
|
|
121
|
+
private hasPrivateFieldTag;
|
|
122
|
+
/**
|
|
123
|
+
* Check if JSDoc contains @enterpriseOnly tag (case insensitive)
|
|
124
|
+
* Fields with this tag are only available in enterprise mode
|
|
125
|
+
*/
|
|
126
|
+
private hasEnterpriseOnlyTag;
|
|
127
|
+
/**
|
|
128
|
+
* Clean JSDoc description by removing other JSDoc tags but preserving {@link} tags
|
|
129
|
+
* The {@link} tags will be converted to HTML links later by the HTML generator
|
|
130
|
+
* @param description The raw JSDoc description
|
|
131
|
+
* @param preserveNewlines Whether to preserve newlines (default: false for backward compatibility)
|
|
132
|
+
*/
|
|
133
|
+
private cleanJsDocDescription;
|
|
134
|
+
/**
|
|
135
|
+
* Get all resolved types (for component schemas)
|
|
136
|
+
*/
|
|
137
|
+
getAllResolvedTypes(): Map<string, ResolvedType>;
|
|
138
|
+
/**
|
|
139
|
+
* Clear the resolved types cache
|
|
140
|
+
*/
|
|
141
|
+
clearCache(): void;
|
|
142
|
+
/**
|
|
143
|
+
* Add a source file to the project for type resolution (with caching)
|
|
144
|
+
*/
|
|
145
|
+
addSourceFile(filePath: string): SourceFile | undefined;
|
|
146
|
+
/**
|
|
147
|
+
* Extract extra parameters generator info from @extraParameters JSDoc tag in service interface method.
|
|
148
|
+
* @param interfaceName The name of the service interface (e.g., "IOfferService")
|
|
149
|
+
* @param methodName The name of the method to extract extra parameters from
|
|
150
|
+
* @returns Extra parameter generator info or null if not found
|
|
151
|
+
*/
|
|
152
|
+
extractServiceMethodExtraParameters(interfaceName: string, methodName: string): {
|
|
153
|
+
name: string;
|
|
154
|
+
args: (string | number)[];
|
|
155
|
+
} | null;
|
|
156
|
+
/**
|
|
157
|
+
* Extract extra parameters generator info from JSDoc
|
|
158
|
+
*/
|
|
159
|
+
private extractExtraParametersFromJsDoc;
|
|
160
|
+
/**
|
|
161
|
+
* Extract extra parameters generator info from property JSDoc
|
|
162
|
+
*/
|
|
163
|
+
private extractExtraParametersFromPropertyJsDoc;
|
|
164
|
+
/**
|
|
165
|
+
* Extract JSDoc description from a service interface method
|
|
166
|
+
* @param interfaceName The name of the service interface (e.g., "ICartService")
|
|
167
|
+
* @param methodName The name of the method to extract JSDoc from (e.g., "validateCart")
|
|
168
|
+
* @returns The JSDoc description or null if not found
|
|
169
|
+
*/
|
|
170
|
+
extractServiceMethodJsDoc(interfaceName: string, methodName: string): string | null;
|
|
171
|
+
/**
|
|
172
|
+
* Internal type resolution logic
|
|
173
|
+
*/
|
|
174
|
+
private resolveTypeInternal;
|
|
175
|
+
/**
|
|
176
|
+
* Resolve an interface declaration including inherited properties
|
|
177
|
+
*/
|
|
178
|
+
private resolveInterface;
|
|
179
|
+
/**
|
|
180
|
+
* Resolve a class declaration including inherited properties
|
|
181
|
+
*/
|
|
182
|
+
private resolveClass;
|
|
183
|
+
/**
|
|
184
|
+
* Resolve a class property declaration to ResolvedProperty
|
|
185
|
+
* Returns null if the property has @privateField tag
|
|
186
|
+
*/
|
|
187
|
+
private resolveClassProperty;
|
|
188
|
+
/**
|
|
189
|
+
* Extract JSDoc description from a class property
|
|
190
|
+
*/
|
|
191
|
+
private extractClassPropertyJsDoc;
|
|
192
|
+
/**
|
|
193
|
+
* Resolve a type alias declaration (handles Pick, Omit, etc.)
|
|
194
|
+
*/
|
|
195
|
+
private resolveTypeAlias;
|
|
196
|
+
/**
|
|
197
|
+
* Resolve Pick<T, K> utility type
|
|
198
|
+
*/
|
|
199
|
+
private resolvePickType;
|
|
200
|
+
/**
|
|
201
|
+
* Resolve Omit<T, K> utility type
|
|
202
|
+
*/
|
|
203
|
+
private resolveOmitType;
|
|
204
|
+
/**
|
|
205
|
+
* Resolve Partial<T> utility type
|
|
206
|
+
*/
|
|
207
|
+
private resolvePartialType;
|
|
208
|
+
/**
|
|
209
|
+
* Resolve Required<T> utility type
|
|
210
|
+
*/
|
|
211
|
+
private resolveRequiredType;
|
|
212
|
+
/**
|
|
213
|
+
* Resolve intersection type alias (Type1 & Type2 & { extra })
|
|
214
|
+
*/
|
|
215
|
+
private resolveIntersectionTypeAlias;
|
|
216
|
+
/**
|
|
217
|
+
* Resolve properties from a Type object
|
|
218
|
+
*/
|
|
219
|
+
private resolveTypeProperties;
|
|
220
|
+
/**
|
|
221
|
+
* Resolve a property signature to ResolvedProperty
|
|
222
|
+
* Returns null if the property has @privateField tag
|
|
223
|
+
*/
|
|
224
|
+
private resolveProperty;
|
|
225
|
+
/**
|
|
226
|
+
* Resolve type from a Symbol
|
|
227
|
+
*/
|
|
228
|
+
private resolveTypeFromSymbol;
|
|
229
|
+
/**
|
|
230
|
+
* Find type declaration by name
|
|
231
|
+
*/
|
|
232
|
+
private findTypeDeclaration;
|
|
233
|
+
/**
|
|
234
|
+
* Find type in a specific source file
|
|
235
|
+
*/
|
|
236
|
+
private findTypeInSourceFile;
|
|
237
|
+
/**
|
|
238
|
+
* Extract JSDoc description from a node
|
|
239
|
+
*/
|
|
240
|
+
private extractNodeJsDoc;
|
|
241
|
+
/**
|
|
242
|
+
* Parse union keys from a string like "'id' | 'name' | 'email'"
|
|
243
|
+
*/
|
|
244
|
+
private parseUnionKeys;
|
|
245
|
+
/**
|
|
246
|
+
* Clean type name by removing import() paths and namespaces
|
|
247
|
+
*/
|
|
248
|
+
private cleanTypeName;
|
|
249
|
+
/**
|
|
250
|
+
* Create an empty resolved type for error cases
|
|
251
|
+
*/
|
|
252
|
+
private createEmptyResolvedType;
|
|
253
|
+
/**
|
|
254
|
+
* Find files recursively matching a pattern
|
|
255
|
+
*/
|
|
256
|
+
private findFilesRecursive;
|
|
257
|
+
/**
|
|
258
|
+
* Walk directory recursively
|
|
259
|
+
*/
|
|
260
|
+
private walkDirectory;
|
|
261
|
+
/**
|
|
262
|
+
* Convert glob pattern to regex
|
|
263
|
+
*/
|
|
264
|
+
private globToRegex;
|
|
265
|
+
}
|
|
266
|
+
//# sourceMappingURL=type-resolver.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"type-resolver.d.ts","sourceRoot":"","sources":["../../src/apidoc/type-resolver.ts"],"names":[],"mappings":"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"}
|