@bepalo/spine 1.4.13 → 1.5.14
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/dist/cjs/generator.d.ts.map +1 -1
- package/dist/cjs/generator.js +39 -3
- package/dist/cjs/generator.js.map +1 -1
- package/dist/cjs/router.d.ts +91 -32
- package/dist/cjs/router.d.ts.map +1 -1
- package/dist/cjs/router.js +396 -92
- package/dist/cjs/router.js.map +1 -1
- package/dist/cjs/types.d.ts +4 -99
- package/dist/cjs/types.d.ts.map +1 -1
- package/dist/cjs/types.js +15 -0
- package/dist/cjs/types.js.map +1 -1
- package/dist/cjs/types.openapi.d.ts +238 -0
- package/dist/cjs/types.openapi.d.ts.map +1 -0
- package/dist/cjs/types.openapi.js +15 -0
- package/dist/cjs/types.openapi.js.map +1 -0
- package/dist/generator.d.ts.map +1 -1
- package/dist/generator.js +39 -3
- package/dist/generator.js.map +1 -1
- package/dist/router.d.ts +91 -32
- package/dist/router.d.ts.map +1 -1
- package/dist/router.js +396 -92
- package/dist/router.js.map +1 -1
- package/dist/types.d.ts +4 -99
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +15 -0
- package/dist/types.js.map +1 -1
- package/dist/types.openapi.d.ts +238 -0
- package/dist/types.openapi.d.ts.map +1 -0
- package/dist/types.openapi.js +15 -0
- package/dist/types.openapi.js.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1,238 @@
|
|
|
1
|
+
import { HandlerRouteEntry, HttpMethodLower, HttpMethodUpper } from "./types";
|
|
2
|
+
export type OpenApiDesc = {
|
|
3
|
+
summary?: string;
|
|
4
|
+
description?: string;
|
|
5
|
+
tags?: string[];
|
|
6
|
+
operationId?: string;
|
|
7
|
+
parameters?: OpenApiParameter[];
|
|
8
|
+
requestBody?: {
|
|
9
|
+
required?: boolean;
|
|
10
|
+
content: Record<string, {
|
|
11
|
+
schema: OpenApiSchema;
|
|
12
|
+
}>;
|
|
13
|
+
};
|
|
14
|
+
responses?: Record<string, {
|
|
15
|
+
description: string;
|
|
16
|
+
content?: Record<string, {
|
|
17
|
+
schema: OpenApiSchema;
|
|
18
|
+
example?: any;
|
|
19
|
+
}>;
|
|
20
|
+
}>;
|
|
21
|
+
security?: Array<Record<string, string[]>>;
|
|
22
|
+
};
|
|
23
|
+
export type OpenApiPathItem = {
|
|
24
|
+
summary?: string;
|
|
25
|
+
description?: string;
|
|
26
|
+
tags?: string[];
|
|
27
|
+
parameters?: OpenApiParameter[];
|
|
28
|
+
requestBody?: OpenApiRequestBody;
|
|
29
|
+
responses: Record<string, OpenApiResponse>;
|
|
30
|
+
security?: Array<Record<string, string[]>>;
|
|
31
|
+
operationId?: string;
|
|
32
|
+
};
|
|
33
|
+
export type OpenApiRequestBody = {
|
|
34
|
+
required?: boolean;
|
|
35
|
+
content: Record<string, {
|
|
36
|
+
schema: OpenApiSchema;
|
|
37
|
+
examples?: Record<string, {
|
|
38
|
+
value: any;
|
|
39
|
+
summary?: string;
|
|
40
|
+
}>;
|
|
41
|
+
}>;
|
|
42
|
+
};
|
|
43
|
+
export type OpenApiResponse = {
|
|
44
|
+
description: string;
|
|
45
|
+
content?: Record<string, {
|
|
46
|
+
schema: OpenApiSchema;
|
|
47
|
+
examples?: Record<string, {
|
|
48
|
+
value: any;
|
|
49
|
+
summary?: string;
|
|
50
|
+
}>;
|
|
51
|
+
}>;
|
|
52
|
+
headers?: Record<string, {
|
|
53
|
+
description?: string;
|
|
54
|
+
schema: OpenApiSchema;
|
|
55
|
+
}>;
|
|
56
|
+
};
|
|
57
|
+
export type OpenApiSecurityScheme = {
|
|
58
|
+
type: "apiKey" | "http" | "oauth2" | "openIdConnect";
|
|
59
|
+
description?: string;
|
|
60
|
+
name?: string;
|
|
61
|
+
in?: "query" | "header" | "cookie";
|
|
62
|
+
scheme?: string;
|
|
63
|
+
bearerFormat?: string;
|
|
64
|
+
flows?: {
|
|
65
|
+
implicit?: {
|
|
66
|
+
authorizationUrl: string;
|
|
67
|
+
scopes: Record<string, string>;
|
|
68
|
+
};
|
|
69
|
+
password?: {
|
|
70
|
+
tokenUrl: string;
|
|
71
|
+
scopes: Record<string, string>;
|
|
72
|
+
};
|
|
73
|
+
clientCredentials?: {
|
|
74
|
+
tokenUrl: string;
|
|
75
|
+
scopes: Record<string, string>;
|
|
76
|
+
};
|
|
77
|
+
authorizationCode?: {
|
|
78
|
+
authorizationUrl: string;
|
|
79
|
+
tokenUrl: string;
|
|
80
|
+
scopes: Record<string, string>;
|
|
81
|
+
};
|
|
82
|
+
};
|
|
83
|
+
openIdConnectUrl?: string;
|
|
84
|
+
};
|
|
85
|
+
export type OpenApiParameter = {
|
|
86
|
+
name: string;
|
|
87
|
+
description?: string;
|
|
88
|
+
in: "query" | "header" | "path" | "cookie";
|
|
89
|
+
required?: boolean;
|
|
90
|
+
schema: OpenApiSchema;
|
|
91
|
+
};
|
|
92
|
+
export type OpenApiSchema = {
|
|
93
|
+
type?: "string" | "number" | "integer" | "boolean" | "array" | "object";
|
|
94
|
+
title?: string;
|
|
95
|
+
description?: string;
|
|
96
|
+
minLength?: number;
|
|
97
|
+
maxLength?: number;
|
|
98
|
+
pattern?: string;
|
|
99
|
+
format?: "date" | "date-time" | "email" | "uuid" | "uri" | "hostname" | "ipv4" | "ipv6" | "binary" | "base64" | "byte";
|
|
100
|
+
enum?: string[];
|
|
101
|
+
minimum?: number;
|
|
102
|
+
maximum?: number;
|
|
103
|
+
exclusiveMinimum?: number;
|
|
104
|
+
exclusiveMaximum?: number;
|
|
105
|
+
multipleOf?: number;
|
|
106
|
+
items?: OpenApiSchema;
|
|
107
|
+
minItems?: number;
|
|
108
|
+
maxItems?: number;
|
|
109
|
+
uniqueItems?: boolean;
|
|
110
|
+
properties?: Record<string, OpenApiSchema>;
|
|
111
|
+
required?: string[];
|
|
112
|
+
additionalProperties?: boolean | OpenApiSchema;
|
|
113
|
+
minProperties?: number;
|
|
114
|
+
maxProperties?: number;
|
|
115
|
+
allOf?: OpenApiSchema[];
|
|
116
|
+
anyOf?: OpenApiSchema[];
|
|
117
|
+
oneOf?: OpenApiSchema[];
|
|
118
|
+
not?: OpenApiSchema;
|
|
119
|
+
nullable?: boolean;
|
|
120
|
+
example?: any;
|
|
121
|
+
default?: any;
|
|
122
|
+
readOnly?: boolean;
|
|
123
|
+
writeOnly?: boolean;
|
|
124
|
+
deprecated?: boolean;
|
|
125
|
+
externalDocs?: {
|
|
126
|
+
description?: string;
|
|
127
|
+
url: string;
|
|
128
|
+
};
|
|
129
|
+
};
|
|
130
|
+
export interface GenerateOpenApiInfo {
|
|
131
|
+
title?: string;
|
|
132
|
+
version?: string;
|
|
133
|
+
description?: string;
|
|
134
|
+
servers?: Array<{
|
|
135
|
+
url: string;
|
|
136
|
+
description?: string;
|
|
137
|
+
}>;
|
|
138
|
+
security?: Array<Record<string, string[]>>;
|
|
139
|
+
components?: {
|
|
140
|
+
schemas?: Record<string, OpenApiSchema>;
|
|
141
|
+
securitySchemes?: Record<string, OpenApiSecurityScheme>;
|
|
142
|
+
parameters?: Record<string, OpenApiParameter>;
|
|
143
|
+
responses?: Record<string, OpenApiResponse>;
|
|
144
|
+
examples?: Record<string, {
|
|
145
|
+
value: any;
|
|
146
|
+
summary?: string;
|
|
147
|
+
}>;
|
|
148
|
+
};
|
|
149
|
+
termsOfService?: string;
|
|
150
|
+
contact?: {
|
|
151
|
+
name?: string;
|
|
152
|
+
url?: string;
|
|
153
|
+
email?: string;
|
|
154
|
+
};
|
|
155
|
+
license?: {
|
|
156
|
+
name: string;
|
|
157
|
+
url?: string;
|
|
158
|
+
};
|
|
159
|
+
tags?: Array<{
|
|
160
|
+
name: string;
|
|
161
|
+
description?: string;
|
|
162
|
+
externalDocs?: {
|
|
163
|
+
description?: string;
|
|
164
|
+
url: string;
|
|
165
|
+
};
|
|
166
|
+
}>;
|
|
167
|
+
externalDocs?: {
|
|
168
|
+
description?: string;
|
|
169
|
+
url: string;
|
|
170
|
+
};
|
|
171
|
+
}
|
|
172
|
+
export declare const SORT_METHOD_PRIORITY_INDEX: Readonly<Map<HttpMethodUpper, number>>;
|
|
173
|
+
export interface GenerateOpenAPISortParam {
|
|
174
|
+
method: HttpMethodUpper;
|
|
175
|
+
path: string;
|
|
176
|
+
parts: readonly string[];
|
|
177
|
+
tags: readonly string[];
|
|
178
|
+
}
|
|
179
|
+
export interface GenerateOpenAPIOptions<ExtendContext extends Record<string, unknown> = Record<string, unknown>> {
|
|
180
|
+
pick?: (entry: GenerateOpenAPISortParam) => boolean;
|
|
181
|
+
includeOperationId?: boolean;
|
|
182
|
+
autoTag?: boolean | ((entry: HandlerRouteEntry<ExtendContext>) => string[]);
|
|
183
|
+
commonParameters?: OpenApiParameter[];
|
|
184
|
+
autoSummary?: boolean;
|
|
185
|
+
cleanOperationId?: boolean;
|
|
186
|
+
sortTagsOrder?: 1 | -1;
|
|
187
|
+
sortMethodOrder?: 1 | -1;
|
|
188
|
+
sortPathnameOrder?: 1 | -1;
|
|
189
|
+
sortMethodPriorityMap?: Map<HttpMethodUpper, number>;
|
|
190
|
+
routeSorter?: (a: GenerateOpenAPISortParam, b: GenerateOpenAPISortParam) => number;
|
|
191
|
+
}
|
|
192
|
+
export interface GeneratedOpenApi {
|
|
193
|
+
openapi: "3.0.0";
|
|
194
|
+
info: {
|
|
195
|
+
title: string;
|
|
196
|
+
version: string;
|
|
197
|
+
description?: string;
|
|
198
|
+
termsOfService?: string;
|
|
199
|
+
contact?: {
|
|
200
|
+
name?: string;
|
|
201
|
+
url?: string;
|
|
202
|
+
email?: string;
|
|
203
|
+
};
|
|
204
|
+
license?: {
|
|
205
|
+
name: string;
|
|
206
|
+
url?: string;
|
|
207
|
+
};
|
|
208
|
+
};
|
|
209
|
+
servers?: Array<{
|
|
210
|
+
url: string;
|
|
211
|
+
description?: string;
|
|
212
|
+
}>;
|
|
213
|
+
tags?: Array<{
|
|
214
|
+
name: string;
|
|
215
|
+
description?: string;
|
|
216
|
+
externalDocs?: {
|
|
217
|
+
description?: string;
|
|
218
|
+
url: string;
|
|
219
|
+
};
|
|
220
|
+
}>;
|
|
221
|
+
externalDocs?: {
|
|
222
|
+
description?: string;
|
|
223
|
+
url: string;
|
|
224
|
+
};
|
|
225
|
+
paths: Record<string, Record<HttpMethodLower, OpenApiPathItem>>;
|
|
226
|
+
components?: {
|
|
227
|
+
schemas?: Record<string, OpenApiSchema>;
|
|
228
|
+
securitySchemes?: Record<string, OpenApiSecurityScheme>;
|
|
229
|
+
parameters?: Record<string, OpenApiParameter>;
|
|
230
|
+
responses?: Record<string, OpenApiResponse>;
|
|
231
|
+
examples?: Record<string, {
|
|
232
|
+
value: any;
|
|
233
|
+
summary?: string;
|
|
234
|
+
}>;
|
|
235
|
+
};
|
|
236
|
+
security?: Array<Record<string, string[]>>;
|
|
237
|
+
}
|
|
238
|
+
//# sourceMappingURL=types.openapi.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.openapi.d.ts","sourceRoot":"","sources":["../../src/types.openapi.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// src/types.openapi.ts
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.SORT_METHOD_PRIORITY_INDEX = void 0;
|
|
5
|
+
exports.SORT_METHOD_PRIORITY_INDEX = Object.freeze(new Map([
|
|
6
|
+
["HEAD", 0],
|
|
7
|
+
["GET", 1],
|
|
8
|
+
["POST", 2],
|
|
9
|
+
["PUT", 3],
|
|
10
|
+
["PATCH", 4],
|
|
11
|
+
["DELETE", 5],
|
|
12
|
+
["OPTIONS", 6],
|
|
13
|
+
["TRACE", 7],
|
|
14
|
+
]));
|
|
15
|
+
//# sourceMappingURL=types.openapi.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.openapi.js","sourceRoot":"","sources":["../../src/types.openapi.ts"],"names":[],"mappings":";AAAA,uBAAuB;;;AAkNV,QAAA,0BAA0B,GAAG,MAAM,CAAC,MAAM,CACrD,IAAI,GAAG,CAA0B;IAC/B,CAAC,MAAM,EAAE,CAAC,CAAC;IACX,CAAC,KAAK,EAAE,CAAC,CAAC;IACV,CAAC,MAAM,EAAE,CAAC,CAAC;IACX,CAAC,KAAK,EAAE,CAAC,CAAC;IACV,CAAC,OAAO,EAAE,CAAC,CAAC;IACZ,CAAC,QAAQ,EAAE,CAAC,CAAC;IACb,CAAC,SAAS,EAAE,CAAC,CAAC;IACd,CAAC,OAAO,EAAE,CAAC,CAAC;CACb,CAAC,CACH,CAAC"}
|
package/dist/generator.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generator.d.ts","sourceRoot":"","sources":["../src/generator.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"generator.d.ts","sourceRoot":"","sources":["../src/generator.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAwFzC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmDG;AACH,eAAO,MAAM,4BAA4B,GAAU,kHAShD;IACD,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC,gBAAgB,CAAC,EAAE,OAAO,GAAG;QAAE,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,CAAC;IACxD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;IACvC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,EAAE,IAAI,EAAE,WAAW,KAAK,OAAO,GAAG,IAAI,CAAC;CACzE,KAAG,OAAO,CAAC,MAAM,CA2GjB,CAAC;AAEF,eAAe,4BAA4B,CAAC"}
|
package/dist/generator.js
CHANGED
|
@@ -1,4 +1,37 @@
|
|
|
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 () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
2
35
|
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
36
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
37
|
return new (P || (P = Promise))(function (resolve, reject) {
|
|
@@ -29,10 +62,10 @@ var __asyncValues = (this && this.__asyncValues) || function (o) {
|
|
|
29
62
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
30
63
|
exports.generateStaticRoutesImporter = void 0;
|
|
31
64
|
const types_ts_1 = require("./types.js");
|
|
32
|
-
const router_ts_1 = require("./router.js");
|
|
65
|
+
const router_ts_1 = __importStar(require("./router.js"));
|
|
33
66
|
const utils_node_ts_1 = require("./utils.node.js");
|
|
34
67
|
const node_crypto_1 = require("node:crypto");
|
|
35
|
-
function getRouteLoaders(routerId, moduleId, pathname, module, importPath) {
|
|
68
|
+
function getRouteLoaders(routerId, moduleId, pathname, module, importPath, testRouter) {
|
|
36
69
|
let setters = "";
|
|
37
70
|
for (const [methodHandler, def] of Object.entries(module)) {
|
|
38
71
|
// get method and handler type
|
|
@@ -70,6 +103,7 @@ function getRouteLoaders(routerId, moduleId, pathname, module, importPath) {
|
|
|
70
103
|
const entryId = `${moduleId}.${methodHandler}`;
|
|
71
104
|
const optionsStr = Object.entries(options).length > 0 ? `, $O(${entryId})` : "";
|
|
72
105
|
const pipeStr = defIsObject ? `${entryId}.pipe` : entryId;
|
|
106
|
+
testRouter.register(handlerType, `${method} ${pathname}`, pipe, options);
|
|
73
107
|
switch (handlerType) {
|
|
74
108
|
case "filter":
|
|
75
109
|
setters += `\n ${routerId}.filter${method}("${pathname}", ${pipeStr}${optionsStr});`;
|
|
@@ -144,6 +178,7 @@ function getRouteLoaders(routerId, moduleId, pathname, module, importPath) {
|
|
|
144
178
|
*/
|
|
145
179
|
const generateStaticRoutesImporter = (_a) => __awaiter(void 0, [_a], void 0, function* ({ routesPath, importRoot = "./", usePathForIdGeneration = false, importExtensions = false, pattern = /\.(js|ts|mjs|cjs)$/, dirPattern = /.*/, processName = (name) => name.substring(0, name.lastIndexOf(".")), onError, }) {
|
|
146
180
|
var _b, e_1, _c, _d;
|
|
181
|
+
const testRouter = new router_ts_1.default();
|
|
147
182
|
let imports = "";
|
|
148
183
|
let loads = "";
|
|
149
184
|
const prefix = "route";
|
|
@@ -187,7 +222,8 @@ const generateStaticRoutesImporter = (_a) => __awaiter(void 0, [_a], void 0, fun
|
|
|
187
222
|
: (0, node_crypto_1.hash)("sha1", pureRelativePath, "base64url").replace(/[^a-zA-Z0-9_]/g, "_"));
|
|
188
223
|
const importPath = importRoot + pureRelativePath + extension;
|
|
189
224
|
const module = (yield (0, utils_node_ts_1.dynamicImport)(fullPath));
|
|
190
|
-
const routeDef = " " +
|
|
225
|
+
const routeDef = " " +
|
|
226
|
+
getRouteLoaders("router", importName, pathname, module, _path, testRouter);
|
|
191
227
|
const importStr = `import * as ${importName} from "${importPath}";\n`;
|
|
192
228
|
const loadStr = routeDef;
|
|
193
229
|
let entry = map.get("/" + parent);
|
package/dist/generator.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generator.js","sourceRoot":"","sources":["../src/generator.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"generator.js","sourceRoot":"","sources":["../src/generator.ts"],"names":[],"mappings":"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"}
|
package/dist/router.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ExtractParams, HttpError, type
|
|
1
|
+
import { ExtractParams, HttpError, type CTError, type CTResponse, type EmptyRecord, type Handler, type HandlerRegisterPiplineOptions, type HandlerType, type HttpMethod, type HttpMethodUpper, type MethodPath, type Path, type Pipe, type RegisterPiplineOptions, type RespondContext, type RouterConfig, GenerateOpenApiInfo, GenerateOpenAPIOptions, GeneratedOpenApi } from "./types.ts";
|
|
2
2
|
import { CTParams } from "./parsers.ts";
|
|
3
3
|
export declare const PATH_PART_REGEX: RegExp;
|
|
4
4
|
export declare const REGISTER_PATH_REGEX: RegExp;
|
|
@@ -33,37 +33,96 @@ export declare class Router<_ExtendContext extends Record<string, unknown> = Emp
|
|
|
33
33
|
dirPattern?: RegExp;
|
|
34
34
|
processName?: (name: string) => string;
|
|
35
35
|
}): Promise<void>;
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
36
|
+
/**
|
|
37
|
+
* Generates an OpenAPI 3.0.0 specification document from the registered routes.
|
|
38
|
+
*
|
|
39
|
+
* This method scans all registered routes and builds a comprehensive OpenAPI specification
|
|
40
|
+
* that can be used with Swagger UI, Redoc, or any OpenAPI-compatible tooling.
|
|
41
|
+
*
|
|
42
|
+
* @param info - Configuration for the OpenAPI document
|
|
43
|
+
* @param info.title - API title (defaults to "API")
|
|
44
|
+
* @param info.version - API version (defaults to "1.0.0")
|
|
45
|
+
* @param info.description - API description
|
|
46
|
+
* @param info.servers - Array of server URLs and descriptions
|
|
47
|
+
* @param info.security - Global security requirements
|
|
48
|
+
* @param info.components - Reusable components (schemas, securitySchemes, parameters, responses, examples)
|
|
49
|
+
* @param info.termsOfService - URL to terms of service
|
|
50
|
+
* @param info.contact - Contact information for the API
|
|
51
|
+
* @param info.license - License information
|
|
52
|
+
* @param info.tags - Global tags for grouping operations
|
|
53
|
+
* @param info.externalDocs - External documentation reference
|
|
54
|
+
*
|
|
55
|
+
* @param options - Generation options
|
|
56
|
+
* @param {Map<HttpMethodUpper,number>} options.sortMethodPriorityMap - Map method to priority for the default sorter.
|
|
57
|
+
* @param {1|-1|undefined} options.sortPathnameOrder - Enable and define the pathname sort order for the default sorter.
|
|
58
|
+
* @param {1|-1|undefined} options.sortMethodOrder - Enable and define the method sort order for the default sorter.
|
|
59
|
+
* @param {1|-1|undefined} options.sortTagsOrder - Enable and define the tags sort order for the default sorter.
|
|
60
|
+
* @param options.pick - Filter function to selectively include routes
|
|
61
|
+
* - Receives one `GenerateOpenAPISortParam` parameter: `{ method, path, parts, tags }`
|
|
62
|
+
* - Return true to include, false to exclude
|
|
63
|
+
* @param options.routeSorter - Custom route sorter.
|
|
64
|
+
* - Recieves two `GenerateOpenAPISortParam` parameters: `{ method, path, parts, tags }`
|
|
65
|
+
* - Return -1, 0, 1
|
|
66
|
+
* @param options.includeOperationId - Whether to generate operationId for each operation (default: true)
|
|
67
|
+
* @param options.autoTag - Automatically tag operations based on path (default: true)
|
|
68
|
+
* - When `true`, uses the first path segment as the tag
|
|
69
|
+
* - When a function, allows custom tag generation
|
|
70
|
+
* @param options.commonParameters - Parameters to apply to all operations
|
|
71
|
+
* @param options.autoSummary - Generate summary from path when not provided (default: true)
|
|
72
|
+
* @param options.cleanOperationId - Remove special characters from operation IDs (default: true)
|
|
73
|
+
|
|
74
|
+
* @returns {Promise<GeneratedOpenApi>} A promise that resolves to the complete OpenAPI 3.0.0 specification
|
|
75
|
+
*
|
|
76
|
+
* @example
|
|
77
|
+
* ```typescript
|
|
78
|
+
* // Basic usage
|
|
79
|
+
* const openapi = await router.generateOpenAPI({
|
|
80
|
+
* title: "My API",
|
|
81
|
+
* version: "2.0.0",
|
|
82
|
+
* description: "My awesome API",
|
|
83
|
+
* });
|
|
84
|
+
*
|
|
85
|
+
* // With custom options
|
|
86
|
+
* const openapi = await router.generateOpenAPI(
|
|
87
|
+
* { title: "My API", version: "1.0.0" },
|
|
88
|
+
* {
|
|
89
|
+
* pick: ({ tags, path, parts, method }) => {
|
|
90
|
+
* return path.startsWith('/api');
|
|
91
|
+
* },
|
|
92
|
+
* autoTag: ({ path }) => {
|
|
93
|
+
* const parts = path.split('/').filter(p => p && p !== "*");
|
|
94
|
+
* return parts.length > 0 ? [parts[0]] : ['default'];
|
|
95
|
+
* },
|
|
96
|
+
* commonParameters: [
|
|
97
|
+
* {
|
|
98
|
+
* name: 'X-Request-ID',
|
|
99
|
+
* in: 'header',
|
|
100
|
+
* schema: { type: 'string' },
|
|
101
|
+
* description: 'Request ID for tracing'
|
|
102
|
+
* }
|
|
103
|
+
* ]
|
|
104
|
+
* }
|
|
105
|
+
* );
|
|
106
|
+
*
|
|
107
|
+
* // Write to file
|
|
108
|
+
* await Deno.writeTextFile('./openapi.json', JSON.stringify(openapi, null, 2));
|
|
109
|
+
* ```
|
|
110
|
+
*
|
|
111
|
+
* @remarks
|
|
112
|
+
* - Routes with `openApi: false` in their definition are excluded from generation
|
|
113
|
+
* - Super glob routes (`/**`) are automatically excluded
|
|
114
|
+
* - Unnamed glob routes (`/*`) are named by their index like so 'glob1'
|
|
115
|
+
* - Connect HTTP method is not supported
|
|
116
|
+
* - Tags are only included if they are actually used by at least one operation
|
|
117
|
+
* - Response schemas are only included when explicitly provided
|
|
118
|
+
* - Path parameters are automatically extracted from route definitions and forced to `required: true`
|
|
119
|
+
* - Operation IDs are guaranteed to be unique with collision detection
|
|
120
|
+
*
|
|
121
|
+
* @see {@link GenerateOpenApiInfo} for complete info options
|
|
122
|
+
* @see {@link GenerateOpenAPIOptions} for complete generation options
|
|
123
|
+
* @see {@link GeneratedOpenApi} for the return type structure
|
|
124
|
+
*/
|
|
125
|
+
generateOpenAPI(info?: GenerateOpenApiInfo, options?: GenerateOpenAPIOptions<ExtendContext>): Promise<GeneratedOpenApi>;
|
|
67
126
|
all<ExtendContextMore extends Record<string, unknown> = EmptyRecord, P extends Path = Path>(paths: P | Array<P>, pipe: Handler<CTParams<ExtractParams<P>> & ExtendContext & ExtendContextMore> | Pipe<CTParams<ExtractParams<P>> & ExtendContext & ExtendContextMore>, options?: RegisterPiplineOptions): Router<ExtendContext>;
|
|
68
127
|
crud<ExtendContextMore extends Record<string, unknown> = EmptyRecord, P extends Path = Path>(paths: Path | Array<Path>, pipe: Handler<CTParams<ExtractParams<P>> & ExtendContext & ExtendContextMore> | Pipe<CTParams<ExtractParams<P>> & ExtendContext & ExtendContextMore>, options?: RegisterPiplineOptions): Router<ExtendContext>;
|
|
69
128
|
head<ExtendContextMore extends Record<string, unknown> = EmptyRecord, P extends Path = Path>(paths: Path | Array<Path>, pipe: Handler<CTParams<ExtractParams<P>> & ExtendContext & ExtendContextMore> | Pipe<CTParams<ExtractParams<P>> & ExtendContext & ExtendContextMore>, options?: RegisterPiplineOptions): Router<ExtendContext>;
|