azurajs 3.0.2 → 3.0.4
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 +32 -0
- package/dist/IpResolver-BVgnGnpf.d.mts +5 -0
- package/dist/IpResolver-BVgnGnpf.d.ts +5 -0
- package/dist/SwaggerPlugin-C0UZTjaZ.d.ts +6 -0
- package/dist/SwaggerPlugin-wr9S4SRG.d.mts +6 -0
- package/dist/cookies/index.d.mts +7 -0
- package/dist/cookies/index.d.ts +7 -0
- package/dist/cookies/index.js +38 -0
- package/dist/cookies/index.js.map +1 -0
- package/dist/cookies/index.mjs +35 -0
- package/dist/cookies/index.mjs.map +1 -0
- package/dist/core/index.d.mts +18 -27
- package/dist/core/index.d.ts +18 -27
- package/dist/core/index.js +214 -14
- package/dist/core/index.js.map +1 -1
- package/dist/core/index.mjs +214 -14
- package/dist/core/index.mjs.map +1 -1
- package/dist/cors/index.d.mts +7 -0
- package/dist/cors/index.d.ts +7 -0
- package/dist/cors/index.js +52 -0
- package/dist/cors/index.js.map +1 -0
- package/dist/cors/index.mjs +50 -0
- package/dist/cors/index.mjs.map +1 -0
- package/dist/decorators/index.d.mts +2 -0
- package/dist/decorators/index.d.ts +2 -0
- package/dist/decorators/index.js +25 -0
- package/dist/decorators/index.js.map +1 -1
- package/dist/decorators/index.mjs +24 -1
- package/dist/decorators/index.mjs.map +1 -1
- package/dist/decorators-B6l3CbxC.d.ts +13 -0
- package/dist/decorators-D5nY109r.d.mts +13 -0
- package/dist/http-error/index.d.mts +18 -0
- package/dist/http-error/index.d.ts +18 -0
- package/dist/http-error/index.js +81 -0
- package/dist/http-error/index.js.map +1 -0
- package/dist/http-error/index.mjs +79 -0
- package/dist/http-error/index.mjs.map +1 -0
- package/dist/index-j6QGMhZU.d.mts +30 -0
- package/dist/index-tpPZS_UK.d.ts +30 -0
- package/dist/index.d.mts +16 -5
- package/dist/index.d.ts +16 -5
- package/dist/index.js +1178 -14
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +1176 -15
- package/dist/index.mjs.map +1 -1
- package/dist/infra/index.d.mts +6 -0
- package/dist/infra/index.d.ts +6 -0
- package/dist/infra/index.js +162 -0
- package/dist/infra/index.js.map +1 -0
- package/dist/infra/index.mjs +159 -0
- package/dist/infra/index.mjs.map +1 -0
- package/dist/{Logger-iEQNVVSc.d.mts → logger/index.d.mts} +2 -1
- package/dist/{Logger-iEQNVVSc.d.ts → logger/index.d.ts} +2 -1
- package/dist/logger/index.js +123 -0
- package/dist/logger/index.js.map +1 -0
- package/dist/logger/index.mjs +120 -0
- package/dist/logger/index.mjs.map +1 -0
- package/dist/plugins/index.d.mts +8 -6
- package/dist/plugins/index.d.ts +8 -6
- package/dist/plugins/index.js +1101 -0
- package/dist/plugins/index.js.map +1 -1
- package/dist/plugins/index.mjs +1101 -1
- package/dist/plugins/index.mjs.map +1 -1
- package/dist/rate-limit/index.d.mts +7 -0
- package/dist/rate-limit/index.d.ts +7 -0
- package/dist/rate-limit/index.js +81 -0
- package/dist/rate-limit/index.js.map +1 -0
- package/dist/rate-limit/index.mjs +79 -0
- package/dist/rate-limit/index.mjs.map +1 -0
- package/dist/router/index.d.mts +4 -0
- package/dist/router/index.d.ts +4 -0
- package/dist/router/index.js +218 -0
- package/dist/router/index.js.map +1 -0
- package/dist/router/index.mjs +216 -0
- package/dist/router/index.mjs.map +1 -0
- package/dist/routes.type-DZO5VBW2.d.mts +58 -0
- package/dist/routes.type-DzHNkCag.d.ts +58 -0
- package/dist/swagger/index.d.mts +30 -0
- package/dist/swagger/index.d.ts +30 -0
- package/dist/swagger/index.js +1136 -0
- package/dist/swagger/index.js.map +1 -0
- package/dist/swagger/index.mjs +1126 -0
- package/dist/swagger/index.mjs.map +1 -0
- package/dist/swagger/swagger-ui-modern.html +894 -0
- package/dist/swagger.type-Bfn5nGR8.d.mts +42 -0
- package/dist/swagger.type-CfDbFCZC.d.ts +42 -0
- package/dist/types/index.d.mts +5 -58
- package/dist/types/index.d.ts +5 -58
- package/dist/utils/index.d.mts +7 -72
- package/dist/utils/index.d.ts +7 -72
- package/dist/validators/index.d.mts +48 -0
- package/dist/validators/index.d.ts +48 -0
- package/dist/validators/index.js +144 -0
- package/dist/validators/index.js.map +1 -0
- package/dist/validators/index.mjs +141 -0
- package/dist/validators/index.mjs.map +1 -0
- package/package.json +86 -2
- package/src/cookies/index.ts +1 -0
- package/src/core/index.ts +1 -0
- package/src/core/router.ts +26 -15
- package/src/core/server.ts +64 -14
- package/src/cors/index.ts +2 -0
- package/src/decorators/index.ts +2 -0
- package/src/http-error/index.ts +1 -0
- package/src/infra/index.ts +3 -0
- package/src/logger/index.ts +1 -0
- package/src/plugins/SwaggerPlugin.ts +45 -0
- package/src/plugins/index.ts +1 -0
- package/src/rate-limit/index.ts +2 -0
- package/src/router/index.ts +1 -0
- package/src/swagger/constants.ts +8 -0
- package/src/swagger/decorators.ts +35 -0
- package/src/swagger/index.ts +10 -0
- package/src/swagger/openapi-builder.ts +199 -0
- package/src/swagger/swagger-ui-html.ts +24 -0
- package/src/swagger/swagger-ui-modern.html +894 -0
- package/src/swagger/swagger-ui-template.ts +5 -0
- package/src/types/index.ts +7 -0
- package/src/types/swagger.type.ts +36 -0
- package/src/validators/index.ts +4 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/core/router.ts"],"names":[],"mappings":"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","file":"index.mjs","sourcesContent":["import type { HttpMethod, RouteHandler, MiddlewareHandler, RouteMatch } from \"../types/common.type.js\";\r\nimport type { RouteMeta } from \"../types/routes.type.js\";\r\n\r\n/** Rota registada com metadados opcionais (OpenAPI / documentação). */\r\nexport interface RouteDocument {\r\n method: HttpMethod;\r\n path: string;\r\n meta?: RouteMeta;\r\n}\r\n\r\nconst PARAM_PREFIX = 58; // ':'\r\n\r\ninterface RadixNode {\r\n segment: string;\r\n children: Map<string, RadixNode>;\r\n paramChild: RadixNode | null;\r\n paramName: string;\r\n handlers: Map<HttpMethod, StoredRoute>;\r\n wildcardHandler: Map<HttpMethod, StoredRoute> | null;\r\n}\r\n\r\ninterface StoredRoute {\r\n handler: RouteHandler;\r\n middlewares: MiddlewareHandler[];\r\n meta?: Record<string, any>;\r\n}\r\n\r\nfunction createNode(segment: string = \"\"): RadixNode {\r\n return {\r\n segment,\r\n children: new Map(),\r\n paramChild: null,\r\n paramName: \"\",\r\n handlers: new Map(),\r\n wildcardHandler: null,\r\n };\r\n}\r\n\r\n/**\r\n * LRU Cache with O(1) get/set via doubly linked list + hash map.\r\n * Used for route lookup caching in hot paths.\r\n */\r\nclass LRUCache<K, V> {\r\n private capacity: number;\r\n private map: Map<K, { value: V; key: K; prev: any; next: any }>;\r\n private head: any;\r\n private tail: any;\r\n\r\n constructor(capacity: number) {\r\n this.capacity = capacity;\r\n this.map = new Map();\r\n this.head = { prev: null, next: null };\r\n this.tail = { prev: null, next: null };\r\n this.head.next = this.tail;\r\n this.tail.prev = this.head;\r\n }\r\n\r\n get(key: K): V | undefined {\r\n const node = this.map.get(key);\r\n if (!node) return undefined;\r\n this.moveToHead(node);\r\n return node.value;\r\n }\r\n\r\n set(key: K, value: V): void {\r\n const existing = this.map.get(key);\r\n if (existing) {\r\n existing.value = value;\r\n this.moveToHead(existing);\r\n return;\r\n }\r\n\r\n const node = { value, key, prev: null as any, next: null as any };\r\n this.map.set(key, node);\r\n this.addToHead(node);\r\n\r\n if (this.map.size > this.capacity) {\r\n const removed = this.removeTail();\r\n if (removed) this.map.delete(removed.key);\r\n }\r\n }\r\n\r\n private addToHead(node: any): void {\r\n node.prev = this.head;\r\n node.next = this.head.next;\r\n this.head.next.prev = node;\r\n this.head.next = node;\r\n }\r\n\r\n private removeNode(node: any): void {\r\n node.prev.next = node.next;\r\n node.next.prev = node.prev;\r\n }\r\n\r\n private moveToHead(node: any): void {\r\n this.removeNode(node);\r\n this.addToHead(node);\r\n }\r\n\r\n private removeTail(): any {\r\n const node = this.tail.prev;\r\n if (node === this.head) return null;\r\n this.removeNode(node);\r\n return node;\r\n }\r\n\r\n clear(): void {\r\n this.map.clear();\r\n this.head.next = this.tail;\r\n this.tail.prev = this.head;\r\n }\r\n}\r\n\r\nexport class Router {\r\n private root: RadixNode = createNode();\r\n private cache: LRUCache<string, RouteMatch | null>;\r\n private staticRoutes: Map<string, StoredRoute> = new Map();\r\n\r\n constructor(cacheSize: number = 1024) {\r\n this.cache = new LRUCache(cacheSize);\r\n }\r\n\r\n add(\r\n method: HttpMethod,\r\n path: string,\r\n handler: RouteHandler,\r\n middlewares: MiddlewareHandler[] = [],\r\n meta?: Record<string, any>,\r\n ): void {\r\n this.cache.clear();\r\n const normalizedPath = this.normalizePath(path);\r\n const stored: StoredRoute = { handler, middlewares, meta };\r\n\r\n if (!normalizedPath.includes(\":\") && !normalizedPath.includes(\"*\")) {\r\n const key = `${method}:${normalizedPath}`;\r\n this.staticRoutes.set(key, stored);\r\n return;\r\n }\r\n\r\n const segments = normalizedPath.split(\"/\").filter(Boolean);\r\n let node = this.root;\r\n\r\n for (let i = 0; i < segments.length; i++) {\r\n const seg = segments[i];\r\n\r\n if (seg === \"*\") {\r\n if (!node.wildcardHandler) {\r\n node.wildcardHandler = new Map();\r\n }\r\n node.wildcardHandler.set(method, stored);\r\n return;\r\n }\r\n\r\n if (seg.charCodeAt(0) === PARAM_PREFIX) {\r\n if (!node.paramChild) {\r\n node.paramChild = createNode(seg);\r\n node.paramChild.paramName = seg.slice(1);\r\n }\r\n node = node.paramChild;\r\n continue;\r\n }\r\n\r\n let child = node.children.get(seg);\r\n if (!child) {\r\n child = createNode(seg);\r\n node.children.set(seg, child);\r\n }\r\n node = child;\r\n }\r\n\r\n node.handlers.set(method, stored);\r\n }\r\n\r\n find(method: HttpMethod, path: string): RouteMatch | null {\r\n const normalizedPath = this.normalizePath(path);\r\n\r\n const staticKey = `${method}:${normalizedPath}`;\r\n const staticRoute = this.staticRoutes.get(staticKey);\r\n if (staticRoute) {\r\n return {\r\n handler: staticRoute.handler,\r\n params: {},\r\n middlewares: staticRoute.middlewares,\r\n meta: staticRoute.meta,\r\n };\r\n }\r\n\r\n const cacheKey = staticKey;\r\n const cached = this.cache.get(cacheKey);\r\n if (cached !== undefined) {\r\n return cached ? { ...cached, params: { ...cached.params } } : null;\r\n }\r\n\r\n const segments = normalizedPath.split(\"/\").filter(Boolean);\r\n const params: Record<string, string> = {};\r\n const result = this.matchNode(this.root, segments, 0, params, method);\r\n\r\n if (result) {\r\n const match: RouteMatch = {\r\n handler: result.handler,\r\n params,\r\n middlewares: result.middlewares,\r\n meta: result.meta,\r\n };\r\n this.cache.set(cacheKey, match);\r\n return { ...match, params: { ...params } };\r\n }\r\n\r\n this.cache.set(cacheKey, null);\r\n return null;\r\n }\r\n\r\n private matchNode(\r\n node: RadixNode,\r\n segments: string[],\r\n idx: number,\r\n params: Record<string, string>,\r\n method: HttpMethod,\r\n ): StoredRoute | null {\r\n if (idx === segments.length) {\r\n return node.handlers.get(method) ?? null;\r\n }\r\n\r\n const seg = segments[idx];\r\n\r\n const child = node.children.get(seg);\r\n if (child) {\r\n const result = this.matchNode(child, segments, idx + 1, params, method);\r\n if (result) return result;\r\n }\r\n\r\n if (node.paramChild) {\r\n params[node.paramChild.paramName] = seg;\r\n const result = this.matchNode(node.paramChild, segments, idx + 1, params, method);\r\n if (result) return result;\r\n delete params[node.paramChild.paramName];\r\n }\r\n\r\n if (node.wildcardHandler) {\r\n const route = node.wildcardHandler.get(method);\r\n if (route) return route;\r\n }\r\n\r\n return null;\r\n }\r\n\r\n private normalizePath(path: string): string {\r\n if (path === \"/\") return \"/\";\r\n if (path.endsWith(\"/\") && path.length > 1) return path.slice(0, -1);\r\n return path;\r\n }\r\n\r\n getAllRoutes(): Array<{ method: HttpMethod; path: string }> {\r\n return this.getRouteDocuments().map(({ method, path }) => ({ method, path }));\r\n }\r\n\r\n /**\r\n * Todas as rotas com metadados (ex.: OpenAPI) associados ao handler.\r\n */\r\n getRouteDocuments(): RouteDocument[] {\r\n const routes: RouteDocument[] = [];\r\n\r\n for (const [key, stored] of this.staticRoutes) {\r\n const [method, path] = key.split(\":\", 2) as [HttpMethod, string];\r\n routes.push({ method, path, meta: stored.meta });\r\n }\r\n\r\n this.collectRoutesWithMeta(this.root, \"\", routes);\r\n return routes;\r\n }\r\n\r\n private collectRoutesWithMeta(node: RadixNode, prefix: string, routes: RouteDocument[]): void {\r\n for (const [method, stored] of node.handlers) {\r\n routes.push({ method, path: prefix || \"/\", meta: stored.meta });\r\n }\r\n\r\n for (const [seg, child] of node.children) {\r\n this.collectRoutesWithMeta(child, `${prefix}/${seg}`, routes);\r\n }\r\n\r\n if (node.paramChild) {\r\n this.collectRoutesWithMeta(\r\n node.paramChild,\r\n `${prefix}/:${node.paramChild.paramName}`,\r\n routes,\r\n );\r\n }\r\n\r\n if (node.wildcardHandler) {\r\n for (const [method, stored] of node.wildcardHandler) {\r\n routes.push({ method, path: `${prefix}/*`, meta: stored.meta });\r\n }\r\n }\r\n }\r\n}\r\n"]}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { M as MiddlewareHandler, H as HttpMethod, R as RouteHandler } from './common.type-BhGCNyEm.mjs';
|
|
2
|
+
|
|
3
|
+
interface RouteDefinition {
|
|
4
|
+
method: HttpMethod;
|
|
5
|
+
path: string;
|
|
6
|
+
handler: RouteHandler;
|
|
7
|
+
middlewares?: MiddlewareHandler[];
|
|
8
|
+
meta?: RouteMeta;
|
|
9
|
+
}
|
|
10
|
+
interface RouteMeta {
|
|
11
|
+
summary?: string;
|
|
12
|
+
description?: string;
|
|
13
|
+
tags?: string[];
|
|
14
|
+
deprecated?: boolean;
|
|
15
|
+
produces?: string[];
|
|
16
|
+
consumes?: string[];
|
|
17
|
+
parameters?: ParameterMeta[];
|
|
18
|
+
responses?: Record<number, ResponseMeta>;
|
|
19
|
+
security?: Record<string, string[]>[];
|
|
20
|
+
}
|
|
21
|
+
interface ParameterMeta {
|
|
22
|
+
name: string;
|
|
23
|
+
in: "path" | "query" | "header" | "body";
|
|
24
|
+
required?: boolean;
|
|
25
|
+
type?: string;
|
|
26
|
+
description?: string;
|
|
27
|
+
schema?: any;
|
|
28
|
+
}
|
|
29
|
+
interface ResponseMeta {
|
|
30
|
+
description: string;
|
|
31
|
+
schema?: any;
|
|
32
|
+
headers?: Record<string, {
|
|
33
|
+
type: string;
|
|
34
|
+
description: string;
|
|
35
|
+
}>;
|
|
36
|
+
}
|
|
37
|
+
type ParamType = "body" | "query" | "param" | "header" | "cookie" | "req" | "res" | "next" | "ip" | "session";
|
|
38
|
+
interface ParamMetadata {
|
|
39
|
+
index: number;
|
|
40
|
+
type: ParamType;
|
|
41
|
+
name?: string;
|
|
42
|
+
pipes?: ((value: any) => any)[];
|
|
43
|
+
}
|
|
44
|
+
interface ControllerMetadata {
|
|
45
|
+
prefix: string;
|
|
46
|
+
middlewares: MiddlewareHandler[];
|
|
47
|
+
routes: Map<string, RouteMetadata>;
|
|
48
|
+
}
|
|
49
|
+
interface RouteMetadata {
|
|
50
|
+
method: HttpMethod;
|
|
51
|
+
path: string;
|
|
52
|
+
propertyKey: string;
|
|
53
|
+
middlewares: MiddlewareHandler[];
|
|
54
|
+
params: ParamMetadata[];
|
|
55
|
+
meta?: RouteMeta;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
export type { ControllerMetadata as C, ParamMetadata as P, ResponseMeta as R, ParamType as a, ParameterMeta as b, RouteDefinition as c, RouteMeta as d, RouteMetadata as e };
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { M as MiddlewareHandler, H as HttpMethod, R as RouteHandler } from './common.type-BhGCNyEm.js';
|
|
2
|
+
|
|
3
|
+
interface RouteDefinition {
|
|
4
|
+
method: HttpMethod;
|
|
5
|
+
path: string;
|
|
6
|
+
handler: RouteHandler;
|
|
7
|
+
middlewares?: MiddlewareHandler[];
|
|
8
|
+
meta?: RouteMeta;
|
|
9
|
+
}
|
|
10
|
+
interface RouteMeta {
|
|
11
|
+
summary?: string;
|
|
12
|
+
description?: string;
|
|
13
|
+
tags?: string[];
|
|
14
|
+
deprecated?: boolean;
|
|
15
|
+
produces?: string[];
|
|
16
|
+
consumes?: string[];
|
|
17
|
+
parameters?: ParameterMeta[];
|
|
18
|
+
responses?: Record<number, ResponseMeta>;
|
|
19
|
+
security?: Record<string, string[]>[];
|
|
20
|
+
}
|
|
21
|
+
interface ParameterMeta {
|
|
22
|
+
name: string;
|
|
23
|
+
in: "path" | "query" | "header" | "body";
|
|
24
|
+
required?: boolean;
|
|
25
|
+
type?: string;
|
|
26
|
+
description?: string;
|
|
27
|
+
schema?: any;
|
|
28
|
+
}
|
|
29
|
+
interface ResponseMeta {
|
|
30
|
+
description: string;
|
|
31
|
+
schema?: any;
|
|
32
|
+
headers?: Record<string, {
|
|
33
|
+
type: string;
|
|
34
|
+
description: string;
|
|
35
|
+
}>;
|
|
36
|
+
}
|
|
37
|
+
type ParamType = "body" | "query" | "param" | "header" | "cookie" | "req" | "res" | "next" | "ip" | "session";
|
|
38
|
+
interface ParamMetadata {
|
|
39
|
+
index: number;
|
|
40
|
+
type: ParamType;
|
|
41
|
+
name?: string;
|
|
42
|
+
pipes?: ((value: any) => any)[];
|
|
43
|
+
}
|
|
44
|
+
interface ControllerMetadata {
|
|
45
|
+
prefix: string;
|
|
46
|
+
middlewares: MiddlewareHandler[];
|
|
47
|
+
routes: Map<string, RouteMetadata>;
|
|
48
|
+
}
|
|
49
|
+
interface RouteMetadata {
|
|
50
|
+
method: HttpMethod;
|
|
51
|
+
path: string;
|
|
52
|
+
propertyKey: string;
|
|
53
|
+
middlewares: MiddlewareHandler[];
|
|
54
|
+
params: ParamMetadata[];
|
|
55
|
+
meta?: RouteMeta;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
export type { ControllerMetadata as C, ParamMetadata as P, ResponseMeta as R, ParamType as a, ParameterMeta as b, RouteDefinition as c, RouteMeta as d, RouteMetadata as e };
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { a as RouteDocument } from '../index-j6QGMhZU.mjs';
|
|
2
|
+
import { B as BuildOpenApiOptions } from '../swagger.type-Bfn5nGR8.mjs';
|
|
3
|
+
export { S as SwaggerPlugin } from '../SwaggerPlugin-wr9S4SRG.mjs';
|
|
4
|
+
export { A as ApiOperation, a as ApiTags } from '../decorators-D5nY109r.mjs';
|
|
5
|
+
import '../common.type-BhGCNyEm.mjs';
|
|
6
|
+
import 'node:http';
|
|
7
|
+
import '../routes.type-DZO5VBW2.mjs';
|
|
8
|
+
import '../plugin.type-BNooWhKa.mjs';
|
|
9
|
+
|
|
10
|
+
/** Converte path AzuraJS `/users/:id` → OpenAPI `/users/{id}` */
|
|
11
|
+
declare function toOpenApiPath(path: string): string;
|
|
12
|
+
/**
|
|
13
|
+
* Gera documento OpenAPI 3.0 a partir das rotas registadas.
|
|
14
|
+
*/
|
|
15
|
+
declare function buildOpenApiDocument(routes: RouteDocument[], options: BuildOpenApiOptions): Record<string, unknown>;
|
|
16
|
+
|
|
17
|
+
declare function renderSwaggerUiPage(options: {
|
|
18
|
+
title: string;
|
|
19
|
+
specUrl: string;
|
|
20
|
+
deepLinking?: boolean;
|
|
21
|
+
}): string;
|
|
22
|
+
|
|
23
|
+
/** Tags OpenAPI a nível de controller (todas as rotas do class) */
|
|
24
|
+
declare const API_TAGS_KEY = "azura:api-tags";
|
|
25
|
+
/** Tags por método (independente da ordem em relação a @Get/@Post) */
|
|
26
|
+
declare const METHOD_TAGS_KEY = "azura:swagger-method-tags";
|
|
27
|
+
/** Metadados OpenAPI por método (summary, responses, etc.) */
|
|
28
|
+
declare const API_OPERATION_KEY = "azura:swagger-operation";
|
|
29
|
+
|
|
30
|
+
export { API_OPERATION_KEY, API_TAGS_KEY, METHOD_TAGS_KEY, buildOpenApiDocument, renderSwaggerUiPage, toOpenApiPath };
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { a as RouteDocument } from '../index-tpPZS_UK.js';
|
|
2
|
+
import { B as BuildOpenApiOptions } from '../swagger.type-CfDbFCZC.js';
|
|
3
|
+
export { S as SwaggerPlugin } from '../SwaggerPlugin-C0UZTjaZ.js';
|
|
4
|
+
export { A as ApiOperation, a as ApiTags } from '../decorators-B6l3CbxC.js';
|
|
5
|
+
import '../common.type-BhGCNyEm.js';
|
|
6
|
+
import 'node:http';
|
|
7
|
+
import '../routes.type-DzHNkCag.js';
|
|
8
|
+
import '../plugin.type-D4HHceYz.js';
|
|
9
|
+
|
|
10
|
+
/** Converte path AzuraJS `/users/:id` → OpenAPI `/users/{id}` */
|
|
11
|
+
declare function toOpenApiPath(path: string): string;
|
|
12
|
+
/**
|
|
13
|
+
* Gera documento OpenAPI 3.0 a partir das rotas registadas.
|
|
14
|
+
*/
|
|
15
|
+
declare function buildOpenApiDocument(routes: RouteDocument[], options: BuildOpenApiOptions): Record<string, unknown>;
|
|
16
|
+
|
|
17
|
+
declare function renderSwaggerUiPage(options: {
|
|
18
|
+
title: string;
|
|
19
|
+
specUrl: string;
|
|
20
|
+
deepLinking?: boolean;
|
|
21
|
+
}): string;
|
|
22
|
+
|
|
23
|
+
/** Tags OpenAPI a nível de controller (todas as rotas do class) */
|
|
24
|
+
declare const API_TAGS_KEY = "azura:api-tags";
|
|
25
|
+
/** Tags por método (independente da ordem em relação a @Get/@Post) */
|
|
26
|
+
declare const METHOD_TAGS_KEY = "azura:swagger-method-tags";
|
|
27
|
+
/** Metadados OpenAPI por método (summary, responses, etc.) */
|
|
28
|
+
declare const API_OPERATION_KEY = "azura:swagger-operation";
|
|
29
|
+
|
|
30
|
+
export { API_OPERATION_KEY, API_TAGS_KEY, METHOD_TAGS_KEY, buildOpenApiDocument, renderSwaggerUiPage, toOpenApiPath };
|