@orpc/openapi 0.0.0-next.31590a1 → 0.0.0-next.32cb70c
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/chunk-Q2LSK6YZ.js +102 -0
- package/dist/chunk-SOVQ5ARD.js +650 -0
- package/dist/chunk-VFGNQS5W.js +25 -0
- package/dist/fetch.js +30 -5
- package/dist/hono.js +30 -5
- package/dist/index.js +6 -6
- package/dist/next.js +30 -5
- package/dist/node.js +34 -18
- package/dist/src/adapters/fetch/index.d.ts +8 -0
- package/dist/src/adapters/fetch/input-structure-compact.d.ts +6 -0
- package/dist/src/adapters/fetch/input-structure-detailed.d.ts +11 -0
- package/dist/src/adapters/fetch/openapi-handler-server.d.ts +7 -0
- package/dist/src/adapters/fetch/openapi-handler-serverless.d.ts +7 -0
- package/dist/src/adapters/fetch/openapi-handler.d.ts +28 -6
- package/dist/src/adapters/fetch/openapi-payload-codec.d.ts +15 -0
- package/dist/src/adapters/fetch/openapi-procedure-matcher.d.ts +19 -0
- package/dist/src/adapters/node/index.d.ts +3 -0
- package/dist/src/adapters/node/openapi-handler-server.d.ts +7 -0
- package/dist/src/adapters/node/openapi-handler-serverless.d.ts +7 -0
- package/dist/src/adapters/node/openapi-handler.d.ts +8 -7
- package/dist/src/adapters/node/types.d.ts +2 -0
- package/dist/src/openapi-generator.d.ts +1 -1
- package/dist/src/utils.d.ts +16 -1
- package/package.json +5 -10
- package/dist/chunk-BHJYKXQL.js +0 -52
- package/dist/chunk-HQ34JZI7.js +0 -32
- package/dist/chunk-M5HOHBLW.js +0 -432
- package/dist/src/adapters/standard/index.d.ts +0 -7
- package/dist/src/adapters/standard/openapi-codec.d.ts +0 -18
- package/dist/src/adapters/standard/openapi-handler.d.ts +0 -7
- package/dist/src/adapters/standard/openapi-matcher.d.ts +0 -20
- package/dist/src/adapters/standard/openapi-serializer.d.ts +0 -11
- package/dist/standard.js +0 -16
- /package/dist/src/adapters/{standard → fetch}/bracket-notation.d.ts +0 -0
- /package/dist/src/adapters/{standard → fetch}/schema-coercer.d.ts +0 -0
package/dist/hono.js
CHANGED
|
@@ -1,9 +1,34 @@
|
|
|
1
1
|
import {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
import
|
|
2
|
+
OpenAPIServerHandler,
|
|
3
|
+
OpenAPIServerlessHandler
|
|
4
|
+
} from "./chunk-VFGNQS5W.js";
|
|
5
|
+
import {
|
|
6
|
+
CompositeSchemaCoercer,
|
|
7
|
+
InputStructureCompact,
|
|
8
|
+
InputStructureDetailed,
|
|
9
|
+
OpenAPIHandler,
|
|
10
|
+
OpenAPIPayloadCodec,
|
|
11
|
+
OpenAPIProcedureMatcher,
|
|
12
|
+
deserialize,
|
|
13
|
+
escapeSegment,
|
|
14
|
+
parsePath,
|
|
15
|
+
serialize,
|
|
16
|
+
stringifyPath
|
|
17
|
+
} from "./chunk-SOVQ5ARD.js";
|
|
18
|
+
import "./chunk-Q2LSK6YZ.js";
|
|
6
19
|
export {
|
|
7
|
-
|
|
20
|
+
CompositeSchemaCoercer,
|
|
21
|
+
InputStructureCompact,
|
|
22
|
+
InputStructureDetailed,
|
|
23
|
+
OpenAPIHandler,
|
|
24
|
+
OpenAPIPayloadCodec,
|
|
25
|
+
OpenAPIProcedureMatcher,
|
|
26
|
+
OpenAPIServerHandler,
|
|
27
|
+
OpenAPIServerlessHandler,
|
|
28
|
+
deserialize,
|
|
29
|
+
escapeSegment,
|
|
30
|
+
parsePath,
|
|
31
|
+
serialize,
|
|
32
|
+
stringifyPath
|
|
8
33
|
};
|
|
9
34
|
//# sourceMappingURL=hono.js.map
|
package/dist/index.js
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import {
|
|
2
2
|
JSONSerializer,
|
|
3
|
+
forEachAllContractProcedure,
|
|
4
|
+
forEachContractProcedure,
|
|
3
5
|
standardizeHTTPPath
|
|
4
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-Q2LSK6YZ.js";
|
|
5
7
|
|
|
6
8
|
// src/openapi.ts
|
|
7
9
|
import { OpenApiBuilder } from "openapi3-ts/oas31";
|
|
@@ -35,7 +37,6 @@ var OpenAPIContentBuilder = class {
|
|
|
35
37
|
|
|
36
38
|
// src/openapi-generator.ts
|
|
37
39
|
import { fallbackContractConfig as fallbackContractConfig2, fallbackORPCErrorStatus } from "@orpc/contract";
|
|
38
|
-
import { eachAllContractProcedure } from "@orpc/server";
|
|
39
40
|
import { group } from "@orpc/shared";
|
|
40
41
|
|
|
41
42
|
// src/openapi-error.ts
|
|
@@ -405,10 +406,7 @@ var OpenAPIGenerator = class {
|
|
|
405
406
|
openapi: "3.1.1"
|
|
406
407
|
});
|
|
407
408
|
const rootTags = doc.tags?.map((tag) => tag.name) ?? [];
|
|
408
|
-
await
|
|
409
|
-
path: [],
|
|
410
|
-
router
|
|
411
|
-
}, ({ contract, path }) => {
|
|
409
|
+
await forEachAllContractProcedure(router, ({ contract, path }) => {
|
|
412
410
|
try {
|
|
413
411
|
const def = contract["~orpc"];
|
|
414
412
|
if (this.ignoreUndefinedPathProcedures && def.route?.path === void 0) {
|
|
@@ -541,6 +539,8 @@ export {
|
|
|
541
539
|
OpenAPIPathParser,
|
|
542
540
|
OpenApiBuilder,
|
|
543
541
|
SchemaUtils,
|
|
542
|
+
forEachAllContractProcedure,
|
|
543
|
+
forEachContractProcedure,
|
|
544
544
|
standardizeHTTPPath
|
|
545
545
|
};
|
|
546
546
|
//# sourceMappingURL=index.js.map
|
package/dist/next.js
CHANGED
|
@@ -1,9 +1,34 @@
|
|
|
1
1
|
import {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
import
|
|
2
|
+
OpenAPIServerHandler,
|
|
3
|
+
OpenAPIServerlessHandler
|
|
4
|
+
} from "./chunk-VFGNQS5W.js";
|
|
5
|
+
import {
|
|
6
|
+
CompositeSchemaCoercer,
|
|
7
|
+
InputStructureCompact,
|
|
8
|
+
InputStructureDetailed,
|
|
9
|
+
OpenAPIHandler,
|
|
10
|
+
OpenAPIPayloadCodec,
|
|
11
|
+
OpenAPIProcedureMatcher,
|
|
12
|
+
deserialize,
|
|
13
|
+
escapeSegment,
|
|
14
|
+
parsePath,
|
|
15
|
+
serialize,
|
|
16
|
+
stringifyPath
|
|
17
|
+
} from "./chunk-SOVQ5ARD.js";
|
|
18
|
+
import "./chunk-Q2LSK6YZ.js";
|
|
6
19
|
export {
|
|
7
|
-
|
|
20
|
+
CompositeSchemaCoercer,
|
|
21
|
+
InputStructureCompact,
|
|
22
|
+
InputStructureDetailed,
|
|
23
|
+
OpenAPIHandler,
|
|
24
|
+
OpenAPIPayloadCodec,
|
|
25
|
+
OpenAPIProcedureMatcher,
|
|
26
|
+
OpenAPIServerHandler,
|
|
27
|
+
OpenAPIServerlessHandler,
|
|
28
|
+
deserialize,
|
|
29
|
+
escapeSegment,
|
|
30
|
+
parsePath,
|
|
31
|
+
serialize,
|
|
32
|
+
stringifyPath
|
|
8
33
|
};
|
|
9
34
|
//# sourceMappingURL=next.js.map
|
package/dist/node.js
CHANGED
|
@@ -1,30 +1,46 @@
|
|
|
1
1
|
import {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
import "./chunk-BHJYKXQL.js";
|
|
2
|
+
OpenAPIHandler
|
|
3
|
+
} from "./chunk-SOVQ5ARD.js";
|
|
4
|
+
import "./chunk-Q2LSK6YZ.js";
|
|
6
5
|
|
|
7
6
|
// src/adapters/node/openapi-handler.ts
|
|
8
|
-
import {
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
const matcher = options?.matcher ?? new OpenAPIMatcher(options);
|
|
14
|
-
const codec = options?.codec ?? new OpenAPICodec(options);
|
|
15
|
-
this.standardHandler = new StandardHandler(router, matcher, codec, { ...options });
|
|
7
|
+
import { createRequest, sendResponse } from "@orpc/server/node";
|
|
8
|
+
var OpenAPIHandler2 = class {
|
|
9
|
+
openapiFetchHandler;
|
|
10
|
+
constructor(hono, router, options) {
|
|
11
|
+
this.openapiFetchHandler = new OpenAPIHandler(hono, router, options);
|
|
16
12
|
}
|
|
17
|
-
async handle(req, res, ...
|
|
18
|
-
const
|
|
19
|
-
const
|
|
20
|
-
|
|
13
|
+
async handle(req, res, ...[options]) {
|
|
14
|
+
const request = createRequest(req, res);
|
|
15
|
+
const castedOptions = options ?? {};
|
|
16
|
+
const result = await this.openapiFetchHandler.handle(request, castedOptions);
|
|
17
|
+
if (result.matched === false) {
|
|
21
18
|
return { matched: false };
|
|
22
19
|
}
|
|
23
|
-
await
|
|
20
|
+
await options?.beforeSend?.(result.response, castedOptions.context);
|
|
21
|
+
await sendResponse(res, result.response);
|
|
24
22
|
return { matched: true };
|
|
25
23
|
}
|
|
26
24
|
};
|
|
25
|
+
|
|
26
|
+
// src/adapters/node/openapi-handler-server.ts
|
|
27
|
+
import { TrieRouter } from "hono/router/trie-router";
|
|
28
|
+
var OpenAPIServerHandler = class extends OpenAPIHandler2 {
|
|
29
|
+
constructor(router, options) {
|
|
30
|
+
super(new TrieRouter(), router, options);
|
|
31
|
+
}
|
|
32
|
+
};
|
|
33
|
+
|
|
34
|
+
// src/adapters/node/openapi-handler-serverless.ts
|
|
35
|
+
import { LinearRouter } from "hono/router/linear-router";
|
|
36
|
+
var OpenAPIServerlessHandler = class extends OpenAPIHandler2 {
|
|
37
|
+
constructor(router, options) {
|
|
38
|
+
super(new LinearRouter(), router, options);
|
|
39
|
+
}
|
|
40
|
+
};
|
|
27
41
|
export {
|
|
28
|
-
OpenAPIHandler
|
|
42
|
+
OpenAPIHandler2 as OpenAPIHandler,
|
|
43
|
+
OpenAPIServerHandler,
|
|
44
|
+
OpenAPIServerlessHandler
|
|
29
45
|
};
|
|
30
46
|
//# sourceMappingURL=node.js.map
|
|
@@ -1,2 +1,10 @@
|
|
|
1
|
+
export * from './bracket-notation';
|
|
2
|
+
export * from './input-structure-compact';
|
|
3
|
+
export * from './input-structure-detailed';
|
|
1
4
|
export * from './openapi-handler';
|
|
5
|
+
export * from './openapi-handler-server';
|
|
6
|
+
export * from './openapi-handler-serverless';
|
|
7
|
+
export * from './openapi-payload-codec';
|
|
8
|
+
export * from './openapi-procedure-matcher';
|
|
9
|
+
export * from './schema-coercer';
|
|
2
10
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { Params } from 'hono/router';
|
|
2
|
+
export declare class InputStructureCompact {
|
|
3
|
+
build(params: Params, payload: unknown): unknown;
|
|
4
|
+
}
|
|
5
|
+
export type PublicInputStructureCompact = Pick<InputStructureCompact, keyof InputStructureCompact>;
|
|
6
|
+
//# sourceMappingURL=input-structure-compact.d.ts.map
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { Params } from 'hono/router';
|
|
2
|
+
export declare class InputStructureDetailed {
|
|
3
|
+
build(params: Params, query: unknown, headers: unknown, body: unknown): {
|
|
4
|
+
params: Params;
|
|
5
|
+
query: unknown;
|
|
6
|
+
headers: unknown;
|
|
7
|
+
body: unknown;
|
|
8
|
+
};
|
|
9
|
+
}
|
|
10
|
+
export type PublicInputStructureDetailed = Pick<InputStructureDetailed, keyof InputStructureDetailed>;
|
|
11
|
+
//# sourceMappingURL=input-structure-detailed.d.ts.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { Context, Router } from '@orpc/server';
|
|
2
|
+
import type { OpenAPIHandlerOptions } from './openapi-handler';
|
|
3
|
+
import { OpenAPIHandler } from './openapi-handler';
|
|
4
|
+
export declare class OpenAPIServerHandler<T extends Context> extends OpenAPIHandler<T> {
|
|
5
|
+
constructor(router: Router<T, any>, options?: NoInfer<OpenAPIHandlerOptions<T>>);
|
|
6
|
+
}
|
|
7
|
+
//# sourceMappingURL=openapi-handler-server.d.ts.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { Context, Router } from '@orpc/server';
|
|
2
|
+
import type { OpenAPIHandlerOptions } from './openapi-handler';
|
|
3
|
+
import { OpenAPIHandler } from './openapi-handler';
|
|
4
|
+
export declare class OpenAPIServerlessHandler<T extends Context> extends OpenAPIHandler<T> {
|
|
5
|
+
constructor(router: Router<T, any>, options?: NoInfer<OpenAPIHandlerOptions<T>>);
|
|
6
|
+
}
|
|
7
|
+
//# sourceMappingURL=openapi-handler-serverless.d.ts.map
|
|
@@ -1,10 +1,32 @@
|
|
|
1
1
|
import type { Context, Router } from '@orpc/server';
|
|
2
|
-
import type { FetchHandler, FetchHandleResult } from '@orpc/server/fetch';
|
|
3
|
-
import type {
|
|
4
|
-
import type
|
|
2
|
+
import type { FetchHandler, FetchHandleRest, FetchHandleResult } from '@orpc/server/fetch';
|
|
3
|
+
import type { PublicInputStructureCompact } from './input-structure-compact';
|
|
4
|
+
import { type Hooks } from '@orpc/shared';
|
|
5
|
+
import { type PublicJSONSerializer } from '../../json-serializer';
|
|
6
|
+
import { type PublicInputStructureDetailed } from './input-structure-detailed';
|
|
7
|
+
import { type PublicOpenAPIPayloadCodec } from './openapi-payload-codec';
|
|
8
|
+
import { type Hono, type PublicOpenAPIProcedureMatcher } from './openapi-procedure-matcher';
|
|
9
|
+
import { type SchemaCoercer } from './schema-coercer';
|
|
10
|
+
export type OpenAPIHandlerOptions<T extends Context> = Hooks<Request, FetchHandleResult, T, any> & {
|
|
11
|
+
jsonSerializer?: PublicJSONSerializer;
|
|
12
|
+
procedureMatcher?: PublicOpenAPIProcedureMatcher;
|
|
13
|
+
payloadCodec?: PublicOpenAPIPayloadCodec;
|
|
14
|
+
inputBuilderSimple?: PublicInputStructureCompact;
|
|
15
|
+
inputBuilderFull?: PublicInputStructureDetailed;
|
|
16
|
+
schemaCoercers?: SchemaCoercer[];
|
|
17
|
+
};
|
|
5
18
|
export declare class OpenAPIHandler<T extends Context> implements FetchHandler<T> {
|
|
6
|
-
private readonly
|
|
7
|
-
|
|
8
|
-
|
|
19
|
+
private readonly options?;
|
|
20
|
+
private readonly procedureMatcher;
|
|
21
|
+
private readonly payloadCodec;
|
|
22
|
+
private readonly inputStructureCompact;
|
|
23
|
+
private readonly inputStructureDetailed;
|
|
24
|
+
private readonly compositeSchemaCoercer;
|
|
25
|
+
constructor(hono: Hono, router: Router<T, any>, options?: NoInfer<OpenAPIHandlerOptions<T>> | undefined);
|
|
26
|
+
handle(request: Request, ...[options]: FetchHandleRest<T>): Promise<FetchHandleResult>;
|
|
27
|
+
private decodeInput;
|
|
28
|
+
private encodeOutput;
|
|
29
|
+
private assertDetailedOutput;
|
|
30
|
+
private convertToORPCError;
|
|
9
31
|
}
|
|
10
32
|
//# sourceMappingURL=openapi-handler.d.ts.map
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { PublicJSONSerializer } from '../../json-serializer';
|
|
2
|
+
export declare class OpenAPIPayloadCodec {
|
|
3
|
+
private readonly jsonSerializer;
|
|
4
|
+
constructor(jsonSerializer: PublicJSONSerializer);
|
|
5
|
+
encode(payload: unknown, accept: string | undefined): {
|
|
6
|
+
body: FormData | Blob | string | undefined;
|
|
7
|
+
headers?: Headers;
|
|
8
|
+
};
|
|
9
|
+
private encodeAsJSON;
|
|
10
|
+
private encodeAsFormData;
|
|
11
|
+
private encodeAsURLSearchParams;
|
|
12
|
+
decode(re: Request | Response | Headers | URLSearchParams | FormData): Promise<unknown>;
|
|
13
|
+
}
|
|
14
|
+
export type PublicOpenAPIPayloadCodec = Pick<OpenAPIPayloadCodec, keyof OpenAPIPayloadCodec>;
|
|
15
|
+
//# sourceMappingURL=openapi-payload-codec.d.ts.map
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { AnyProcedure, AnyRouter } from '@orpc/server';
|
|
2
|
+
import type { Router as BaseHono, Params } from 'hono/router';
|
|
3
|
+
export type Hono = BaseHono<[string, string[]]>;
|
|
4
|
+
export declare class OpenAPIProcedureMatcher {
|
|
5
|
+
private readonly hono;
|
|
6
|
+
private readonly router;
|
|
7
|
+
private pendingRouters;
|
|
8
|
+
constructor(hono: Hono, router: AnyRouter);
|
|
9
|
+
match(method: string, pathname: string): Promise<{
|
|
10
|
+
path: string[];
|
|
11
|
+
procedure: AnyProcedure;
|
|
12
|
+
params: Params;
|
|
13
|
+
} | undefined>;
|
|
14
|
+
private add;
|
|
15
|
+
private handlePendingRouters;
|
|
16
|
+
private convertOpenAPIPathToRouterPath;
|
|
17
|
+
}
|
|
18
|
+
export type PublicOpenAPIProcedureMatcher = Pick<OpenAPIProcedureMatcher, keyof OpenAPIProcedureMatcher>;
|
|
19
|
+
//# sourceMappingURL=openapi-procedure-matcher.d.ts.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { Context, Router } from '@orpc/server';
|
|
2
|
+
import type { OpenAPIHandlerOptions } from '../fetch/openapi-handler';
|
|
3
|
+
import { OpenAPIHandler } from './openapi-handler';
|
|
4
|
+
export declare class OpenAPIServerHandler<T extends Context> extends OpenAPIHandler<T> {
|
|
5
|
+
constructor(router: Router<T, any>, options?: NoInfer<OpenAPIHandlerOptions<T>>);
|
|
6
|
+
}
|
|
7
|
+
//# sourceMappingURL=openapi-handler-server.d.ts.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { Context, Router } from '@orpc/server';
|
|
2
|
+
import type { OpenAPIHandlerOptions } from '../fetch/openapi-handler';
|
|
3
|
+
import { OpenAPIHandler } from './openapi-handler';
|
|
4
|
+
export declare class OpenAPIServerlessHandler<T extends Context> extends OpenAPIHandler<T> {
|
|
5
|
+
constructor(router: Router<T, any>, options?: NoInfer<OpenAPIHandlerOptions<T>>);
|
|
6
|
+
}
|
|
7
|
+
//# sourceMappingURL=openapi-handler-serverless.d.ts.map
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import type { Context, Router } from '@orpc/server';
|
|
2
|
-
import type {
|
|
3
|
-
import type {
|
|
4
|
-
import type {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
2
|
+
import type { IncomingMessage, ServerResponse } from 'node:http';
|
|
3
|
+
import type { OpenAPIHandlerOptions } from '../fetch/openapi-handler';
|
|
4
|
+
import type { Hono } from '../fetch/openapi-procedure-matcher';
|
|
5
|
+
import { type RequestHandler, type RequestHandleRest, type RequestHandleResult } from '@orpc/server/node';
|
|
6
|
+
export declare class OpenAPIHandler<T extends Context> implements RequestHandler<T> {
|
|
7
|
+
private readonly openapiFetchHandler;
|
|
8
|
+
constructor(hono: Hono, router: Router<T, any>, options?: NoInfer<OpenAPIHandlerOptions<T>>);
|
|
9
|
+
handle(req: IncomingMessage, res: ServerResponse, ...[options]: RequestHandleRest<T>): Promise<RequestHandleResult>;
|
|
9
10
|
}
|
|
10
11
|
//# sourceMappingURL=openapi-handler.d.ts.map
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
+
import type { AnyRouter } from '@orpc/server';
|
|
1
2
|
import type { PublicOpenAPIInputStructureParser } from './openapi-input-structure-parser';
|
|
2
3
|
import type { PublicOpenAPIOutputStructureParser } from './openapi-output-structure-parser';
|
|
3
4
|
import type { PublicOpenAPIPathParser } from './openapi-path-parser';
|
|
4
5
|
import type { SchemaConverter } from './schema-converter';
|
|
5
6
|
import { type ContractRouter } from '@orpc/contract';
|
|
6
|
-
import { type AnyRouter } from '@orpc/server';
|
|
7
7
|
import { type PublicJSONSerializer } from './json-serializer';
|
|
8
8
|
import { type OpenAPI } from './openapi';
|
|
9
9
|
import { type PublicOpenAPIContentBuilder } from './openapi-content-builder';
|
package/dist/src/utils.d.ts
CHANGED
|
@@ -1,3 +1,18 @@
|
|
|
1
|
-
import type { HTTPPath } from '@orpc/contract';
|
|
1
|
+
import type { AnyContractProcedure, AnyContractRouter, HTTPPath } from '@orpc/contract';
|
|
2
|
+
import type { AnyProcedure, AnyRouter, Lazy } from '@orpc/server';
|
|
3
|
+
export interface EachLeafOptions {
|
|
4
|
+
router: AnyContractRouter | AnyRouter;
|
|
5
|
+
path: string[];
|
|
6
|
+
}
|
|
7
|
+
export interface EachLeafCallbackOptions {
|
|
8
|
+
contract: AnyContractProcedure;
|
|
9
|
+
path: string[];
|
|
10
|
+
}
|
|
11
|
+
export interface EachContractLeafResultItem {
|
|
12
|
+
router: Lazy<AnyProcedure> | Lazy<Record<string, AnyRouter> | AnyProcedure>;
|
|
13
|
+
path: string[];
|
|
14
|
+
}
|
|
15
|
+
export declare function forEachContractProcedure(options: EachLeafOptions, callback: (options: EachLeafCallbackOptions) => void, result?: EachContractLeafResultItem[], isCurrentRouterContract?: boolean): EachContractLeafResultItem[];
|
|
16
|
+
export declare function forEachAllContractProcedure(router: AnyContractRouter | AnyRouter, callback: (options: EachLeafCallbackOptions) => void): Promise<void>;
|
|
2
17
|
export declare function standardizeHTTPPath(path: HTTPPath): HTTPPath;
|
|
3
18
|
//# sourceMappingURL=utils.d.ts.map
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@orpc/openapi",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "0.0.0-next.
|
|
4
|
+
"version": "0.0.0-next.32cb70c",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"homepage": "https://orpc.unnoq.com",
|
|
7
7
|
"repository": {
|
|
@@ -19,11 +19,6 @@
|
|
|
19
19
|
"import": "./dist/index.js",
|
|
20
20
|
"default": "./dist/index.js"
|
|
21
21
|
},
|
|
22
|
-
"./standard": {
|
|
23
|
-
"types": "./dist/src/adapters/standard/index.d.ts",
|
|
24
|
-
"import": "./dist/standard.js",
|
|
25
|
-
"default": "./dist/standard.js"
|
|
26
|
-
},
|
|
27
22
|
"./fetch": {
|
|
28
23
|
"types": "./dist/src/adapters/fetch/index.d.ts",
|
|
29
24
|
"import": "./dist/fetch.js",
|
|
@@ -59,13 +54,13 @@
|
|
|
59
54
|
"content-disposition": "^0.5.4",
|
|
60
55
|
"escape-string-regexp": "^5.0.0",
|
|
61
56
|
"fast-content-type-parse": "^2.0.0",
|
|
57
|
+
"hono": "^4.6.12",
|
|
62
58
|
"json-schema-typed": "^8.0.1",
|
|
63
59
|
"openapi3-ts": "^4.4.0",
|
|
64
|
-
"rou3": "^0.5.1",
|
|
65
60
|
"wildcard-match": "^5.1.3",
|
|
66
|
-
"@orpc/contract": "0.0.0-next.
|
|
67
|
-
"@orpc/
|
|
68
|
-
"@orpc/
|
|
61
|
+
"@orpc/contract": "0.0.0-next.32cb70c",
|
|
62
|
+
"@orpc/server": "0.0.0-next.32cb70c",
|
|
63
|
+
"@orpc/shared": "0.0.0-next.32cb70c"
|
|
69
64
|
},
|
|
70
65
|
"devDependencies": {
|
|
71
66
|
"@readme/openapi-parser": "^2.6.0",
|
package/dist/chunk-BHJYKXQL.js
DELETED
|
@@ -1,52 +0,0 @@
|
|
|
1
|
-
var __defProp = Object.defineProperty;
|
|
2
|
-
var __export = (target, all) => {
|
|
3
|
-
for (var name in all)
|
|
4
|
-
__defProp(target, name, { get: all[name], enumerable: true });
|
|
5
|
-
};
|
|
6
|
-
|
|
7
|
-
// src/json-serializer.ts
|
|
8
|
-
import { isPlainObject } from "@orpc/shared";
|
|
9
|
-
var JSONSerializer = class {
|
|
10
|
-
serialize(payload) {
|
|
11
|
-
if (payload instanceof Set)
|
|
12
|
-
return this.serialize([...payload]);
|
|
13
|
-
if (payload instanceof Map)
|
|
14
|
-
return this.serialize([...payload.entries()]);
|
|
15
|
-
if (Array.isArray(payload)) {
|
|
16
|
-
return payload.map((v) => v === void 0 ? "undefined" : this.serialize(v));
|
|
17
|
-
}
|
|
18
|
-
if (Number.isNaN(payload))
|
|
19
|
-
return "NaN";
|
|
20
|
-
if (typeof payload === "bigint")
|
|
21
|
-
return payload.toString();
|
|
22
|
-
if (payload instanceof Date && Number.isNaN(payload.getTime())) {
|
|
23
|
-
return "Invalid Date";
|
|
24
|
-
}
|
|
25
|
-
if (payload instanceof RegExp)
|
|
26
|
-
return payload.toString();
|
|
27
|
-
if (payload instanceof URL)
|
|
28
|
-
return payload.toString();
|
|
29
|
-
if (!isPlainObject(payload))
|
|
30
|
-
return payload;
|
|
31
|
-
return Object.keys(payload).reduce(
|
|
32
|
-
(carry, key) => {
|
|
33
|
-
const val = payload[key];
|
|
34
|
-
carry[key] = this.serialize(val);
|
|
35
|
-
return carry;
|
|
36
|
-
},
|
|
37
|
-
{}
|
|
38
|
-
);
|
|
39
|
-
}
|
|
40
|
-
};
|
|
41
|
-
|
|
42
|
-
// src/utils.ts
|
|
43
|
-
function standardizeHTTPPath(path) {
|
|
44
|
-
return `/${path.replace(/\/{2,}/g, "/").replace(/^\/|\/$/g, "")}`;
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
export {
|
|
48
|
-
__export,
|
|
49
|
-
JSONSerializer,
|
|
50
|
-
standardizeHTTPPath
|
|
51
|
-
};
|
|
52
|
-
//# sourceMappingURL=chunk-BHJYKXQL.js.map
|
package/dist/chunk-HQ34JZI7.js
DELETED
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
OpenAPICodec,
|
|
3
|
-
OpenAPIMatcher
|
|
4
|
-
} from "./chunk-M5HOHBLW.js";
|
|
5
|
-
|
|
6
|
-
// src/adapters/fetch/openapi-handler.ts
|
|
7
|
-
import { fetchRequestToStandardRequest, standardResponseToFetchResponse } from "@orpc/server/fetch";
|
|
8
|
-
import { StandardHandler } from "@orpc/server/standard";
|
|
9
|
-
var OpenAPIHandler = class {
|
|
10
|
-
standardHandler;
|
|
11
|
-
constructor(router, options) {
|
|
12
|
-
const matcher = options?.matcher ?? new OpenAPIMatcher(options);
|
|
13
|
-
const codec = options?.codec ?? new OpenAPICodec(options);
|
|
14
|
-
this.standardHandler = new StandardHandler(router, matcher, codec, options);
|
|
15
|
-
}
|
|
16
|
-
async handle(request, ...rest) {
|
|
17
|
-
const standardRequest = fetchRequestToStandardRequest(request);
|
|
18
|
-
const result = await this.standardHandler.handle(standardRequest, ...rest);
|
|
19
|
-
if (!result.matched) {
|
|
20
|
-
return result;
|
|
21
|
-
}
|
|
22
|
-
return {
|
|
23
|
-
matched: true,
|
|
24
|
-
response: standardResponseToFetchResponse(result.response)
|
|
25
|
-
};
|
|
26
|
-
}
|
|
27
|
-
};
|
|
28
|
-
|
|
29
|
-
export {
|
|
30
|
-
OpenAPIHandler
|
|
31
|
-
};
|
|
32
|
-
//# sourceMappingURL=chunk-HQ34JZI7.js.map
|