@orpc/openapi 0.0.0-next.73eb96a → 0.0.0-next.7b09958
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-HC5PVG4R.js +52 -0
- package/dist/chunk-ICLAXOVR.js +32 -0
- package/dist/chunk-PWOV66X6.js +421 -0
- package/dist/fetch.js +5 -657
- package/dist/hono.js +9 -0
- package/dist/index.js +86 -30
- package/dist/next.js +9 -0
- package/dist/node.js +30 -0
- package/dist/src/adapters/fetch/index.d.ts +2 -0
- package/dist/src/adapters/fetch/openapi-handler.d.ts +10 -0
- package/dist/src/adapters/hono/index.d.ts +2 -0
- package/dist/src/adapters/next/index.d.ts +2 -0
- package/dist/src/adapters/node/index.d.ts +2 -0
- package/dist/src/adapters/node/openapi-handler.d.ts +10 -0
- package/dist/src/adapters/standard/index.d.ts +6 -0
- package/dist/src/adapters/standard/openapi-codec.d.ts +15 -0
- package/dist/src/adapters/standard/openapi-handler.d.ts +7 -0
- package/dist/src/adapters/standard/openapi-matcher.d.ts +20 -0
- package/dist/src/adapters/standard/openapi-serializer.d.ts +11 -0
- package/dist/src/openapi-generator.d.ts +10 -3
- package/dist/src/openapi-input-structure-parser.d.ts +2 -2
- package/dist/src/openapi-output-structure-parser.d.ts +2 -2
- package/dist/src/schema-converter.d.ts +2 -2
- package/dist/src/schema.d.ts +1 -1
- package/dist/src/utils.d.ts +1 -16
- package/dist/standard.js +14 -0
- package/package.json +27 -10
- package/dist/chunk-KNYXLM77.js +0 -107
- package/dist/src/fetch/index.d.ts +0 -10
- package/dist/src/fetch/input-structure-compact.d.ts +0 -6
- package/dist/src/fetch/input-structure-detailed.d.ts +0 -11
- package/dist/src/fetch/openapi-handler-server.d.ts +0 -7
- package/dist/src/fetch/openapi-handler-serverless.d.ts +0 -7
- package/dist/src/fetch/openapi-handler.d.ts +0 -33
- package/dist/src/fetch/openapi-payload-codec.d.ts +0 -15
- package/dist/src/fetch/openapi-procedure-matcher.d.ts +0 -19
- package/dist/src/fetch/schema-coercer.d.ts +0 -10
- /package/dist/src/{fetch → adapters/standard}/bracket-notation.d.ts +0 -0
package/dist/chunk-KNYXLM77.js
DELETED
|
@@ -1,107 +0,0 @@
|
|
|
1
|
-
// src/json-serializer.ts
|
|
2
|
-
import { isPlainObject } from "@orpc/shared";
|
|
3
|
-
var JSONSerializer = class {
|
|
4
|
-
serialize(payload) {
|
|
5
|
-
if (payload instanceof Set)
|
|
6
|
-
return this.serialize([...payload]);
|
|
7
|
-
if (payload instanceof Map)
|
|
8
|
-
return this.serialize([...payload.entries()]);
|
|
9
|
-
if (Array.isArray(payload)) {
|
|
10
|
-
return payload.map((v) => v === void 0 ? "undefined" : this.serialize(v));
|
|
11
|
-
}
|
|
12
|
-
if (Number.isNaN(payload))
|
|
13
|
-
return "NaN";
|
|
14
|
-
if (typeof payload === "bigint")
|
|
15
|
-
return payload.toString();
|
|
16
|
-
if (payload instanceof Date && Number.isNaN(payload.getTime())) {
|
|
17
|
-
return "Invalid Date";
|
|
18
|
-
}
|
|
19
|
-
if (payload instanceof RegExp)
|
|
20
|
-
return payload.toString();
|
|
21
|
-
if (payload instanceof URL)
|
|
22
|
-
return payload.toString();
|
|
23
|
-
if (!isPlainObject(payload))
|
|
24
|
-
return payload;
|
|
25
|
-
return Object.keys(payload).reduce(
|
|
26
|
-
(carry, key) => {
|
|
27
|
-
const val = payload[key];
|
|
28
|
-
carry[key] = this.serialize(val);
|
|
29
|
-
return carry;
|
|
30
|
-
},
|
|
31
|
-
{}
|
|
32
|
-
);
|
|
33
|
-
}
|
|
34
|
-
};
|
|
35
|
-
|
|
36
|
-
// src/utils.ts
|
|
37
|
-
import { isContractProcedure } from "@orpc/contract";
|
|
38
|
-
import { getRouterContract, isLazy, isProcedure, unlazy } from "@orpc/server";
|
|
39
|
-
function forEachContractProcedure(options, callback, result = [], isCurrentRouterContract = false) {
|
|
40
|
-
const hiddenContract = getRouterContract(options.router);
|
|
41
|
-
if (!isCurrentRouterContract && hiddenContract) {
|
|
42
|
-
return forEachContractProcedure(
|
|
43
|
-
{
|
|
44
|
-
path: options.path,
|
|
45
|
-
router: hiddenContract
|
|
46
|
-
},
|
|
47
|
-
callback,
|
|
48
|
-
result,
|
|
49
|
-
true
|
|
50
|
-
);
|
|
51
|
-
}
|
|
52
|
-
if (isLazy(options.router)) {
|
|
53
|
-
result.push({
|
|
54
|
-
router: options.router,
|
|
55
|
-
path: options.path
|
|
56
|
-
});
|
|
57
|
-
} else if (isProcedure(options.router)) {
|
|
58
|
-
callback({
|
|
59
|
-
contract: options.router["~orpc"].contract,
|
|
60
|
-
path: options.path
|
|
61
|
-
});
|
|
62
|
-
} else if (isContractProcedure(options.router)) {
|
|
63
|
-
callback({
|
|
64
|
-
contract: options.router,
|
|
65
|
-
path: options.path
|
|
66
|
-
});
|
|
67
|
-
} else {
|
|
68
|
-
for (const key in options.router) {
|
|
69
|
-
forEachContractProcedure(
|
|
70
|
-
{
|
|
71
|
-
router: options.router[key],
|
|
72
|
-
path: [...options.path, key]
|
|
73
|
-
},
|
|
74
|
-
callback,
|
|
75
|
-
result
|
|
76
|
-
);
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
|
-
return result;
|
|
80
|
-
}
|
|
81
|
-
async function forEachAllContractProcedure(router, callback) {
|
|
82
|
-
const pending = [{
|
|
83
|
-
path: [],
|
|
84
|
-
router
|
|
85
|
-
}];
|
|
86
|
-
for (const item of pending) {
|
|
87
|
-
const lazies = forEachContractProcedure(item, callback);
|
|
88
|
-
for (const lazy of lazies) {
|
|
89
|
-
const { default: router2 } = await unlazy(lazy.router);
|
|
90
|
-
pending.push({
|
|
91
|
-
path: lazy.path,
|
|
92
|
-
router: router2
|
|
93
|
-
});
|
|
94
|
-
}
|
|
95
|
-
}
|
|
96
|
-
}
|
|
97
|
-
function standardizeHTTPPath(path) {
|
|
98
|
-
return `/${path.replace(/\/{2,}/g, "/").replace(/^\/|\/$/g, "")}`;
|
|
99
|
-
}
|
|
100
|
-
|
|
101
|
-
export {
|
|
102
|
-
JSONSerializer,
|
|
103
|
-
forEachContractProcedure,
|
|
104
|
-
forEachAllContractProcedure,
|
|
105
|
-
standardizeHTTPPath
|
|
106
|
-
};
|
|
107
|
-
//# sourceMappingURL=chunk-KNYXLM77.js.map
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
export * from './bracket-notation';
|
|
2
|
-
export * from './input-structure-compact';
|
|
3
|
-
export * from './input-structure-detailed';
|
|
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';
|
|
10
|
-
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1,6 +0,0 @@
|
|
|
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
|
|
@@ -1,11 +0,0 @@
|
|
|
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
|
|
@@ -1,7 +0,0 @@
|
|
|
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
|
|
@@ -1,7 +0,0 @@
|
|
|
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,33 +0,0 @@
|
|
|
1
|
-
import type { Context, Router, WithSignal } from '@orpc/server';
|
|
2
|
-
import type { ConditionalFetchHandler, FetchOptions } 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, Response, T, WithSignal> & {
|
|
11
|
-
jsonSerializer?: PublicJSONSerializer;
|
|
12
|
-
procedureMatcher?: PublicOpenAPIProcedureMatcher;
|
|
13
|
-
payloadCodec?: PublicOpenAPIPayloadCodec;
|
|
14
|
-
inputBuilderSimple?: PublicInputStructureCompact;
|
|
15
|
-
inputBuilderFull?: PublicInputStructureDetailed;
|
|
16
|
-
schemaCoercers?: SchemaCoercer[];
|
|
17
|
-
};
|
|
18
|
-
export declare class OpenAPIHandler<T extends Context> implements ConditionalFetchHandler<T> {
|
|
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
|
-
condition(request: Request): boolean;
|
|
27
|
-
fetch(request: Request, ...[options]: [options: FetchOptions<T>] | (undefined extends T ? [] : never)): Promise<Response>;
|
|
28
|
-
private decodeInput;
|
|
29
|
-
private encodeOutput;
|
|
30
|
-
private assertDetailedOutput;
|
|
31
|
-
private convertToORPCError;
|
|
32
|
-
}
|
|
33
|
-
//# sourceMappingURL=openapi-handler.d.ts.map
|
|
@@ -1,15 +0,0 @@
|
|
|
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
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import type { Router as BaseHono, Params } from 'hono/router';
|
|
2
|
-
import { type ANY_PROCEDURE, type ANY_ROUTER } from '@orpc/server';
|
|
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: ANY_ROUTER);
|
|
9
|
-
match(method: string, pathname: string): Promise<{
|
|
10
|
-
path: string[];
|
|
11
|
-
procedure: ANY_PROCEDURE;
|
|
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
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import type { Schema } from '@orpc/contract';
|
|
2
|
-
export interface SchemaCoercer {
|
|
3
|
-
coerce: (schema: Schema, value: unknown) => unknown;
|
|
4
|
-
}
|
|
5
|
-
export declare class CompositeSchemaCoercer implements SchemaCoercer {
|
|
6
|
-
private readonly coercers;
|
|
7
|
-
constructor(coercers: SchemaCoercer[]);
|
|
8
|
-
coerce(schema: Schema, value: unknown): unknown;
|
|
9
|
-
}
|
|
10
|
-
//# sourceMappingURL=schema-coercer.d.ts.map
|
|
File without changes
|