@orpc/openapi 1.3.0 → 1.4.1
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/adapters/aws-lambda/index.d.mts +17 -0
- package/dist/adapters/aws-lambda/index.d.ts +17 -0
- package/dist/adapters/aws-lambda/index.mjs +18 -0
- package/dist/index.d.mts +16 -12
- package/dist/index.d.ts +16 -12
- package/dist/index.mjs +3 -3
- package/dist/plugins/index.d.mts +3 -4
- package/dist/plugins/index.d.ts +3 -4
- package/dist/plugins/index.mjs +1 -1
- package/dist/shared/{openapi.PDTdnRIU.mjs → openapi.DaYgbD_w.mjs} +73 -16
- package/dist/shared/{openapi.CwdCLgSU.d.mts → openapi.qZLdpE0a.d.mts} +3 -4
- package/dist/shared/{openapi.CwdCLgSU.d.ts → openapi.qZLdpE0a.d.ts} +3 -4
- package/package.json +13 -9
@@ -0,0 +1,17 @@
|
|
1
|
+
import { Context, Router } from '@orpc/server';
|
2
|
+
import { AwsLambdaHandler, AwsLambdaHandlerOptions } from '@orpc/server/aws-lambda';
|
3
|
+
import { S as StandardOpenAPIHandlerOptions } from '../../shared/openapi.D3j94c9n.mjs';
|
4
|
+
import '@orpc/openapi-client/standard';
|
5
|
+
import '@orpc/server/standard';
|
6
|
+
|
7
|
+
/**
|
8
|
+
* OpenAPI Handler for AWS Lambda.
|
9
|
+
*
|
10
|
+
* @see {@link https://orpc.unnoq.com/docs/openapi/openapi-handler OpenAPI Handler Docs}
|
11
|
+
* @see {@link https://orpc.unnoq.com/docs/adapters/http HTTP Adapter Docs}
|
12
|
+
*/
|
13
|
+
declare class experimental_OpenAPIHandler<T extends Context> extends AwsLambdaHandler<T> {
|
14
|
+
constructor(router: Router<any, T>, options?: NoInfer<StandardOpenAPIHandlerOptions<T> & AwsLambdaHandlerOptions>);
|
15
|
+
}
|
16
|
+
|
17
|
+
export { experimental_OpenAPIHandler };
|
@@ -0,0 +1,17 @@
|
|
1
|
+
import { Context, Router } from '@orpc/server';
|
2
|
+
import { AwsLambdaHandler, AwsLambdaHandlerOptions } from '@orpc/server/aws-lambda';
|
3
|
+
import { S as StandardOpenAPIHandlerOptions } from '../../shared/openapi.D3j94c9n.js';
|
4
|
+
import '@orpc/openapi-client/standard';
|
5
|
+
import '@orpc/server/standard';
|
6
|
+
|
7
|
+
/**
|
8
|
+
* OpenAPI Handler for AWS Lambda.
|
9
|
+
*
|
10
|
+
* @see {@link https://orpc.unnoq.com/docs/openapi/openapi-handler OpenAPI Handler Docs}
|
11
|
+
* @see {@link https://orpc.unnoq.com/docs/adapters/http HTTP Adapter Docs}
|
12
|
+
*/
|
13
|
+
declare class experimental_OpenAPIHandler<T extends Context> extends AwsLambdaHandler<T> {
|
14
|
+
constructor(router: Router<any, T>, options?: NoInfer<StandardOpenAPIHandlerOptions<T> & AwsLambdaHandlerOptions>);
|
15
|
+
}
|
16
|
+
|
17
|
+
export { experimental_OpenAPIHandler };
|
@@ -0,0 +1,18 @@
|
|
1
|
+
import { AwsLambdaHandler } from '@orpc/server/aws-lambda';
|
2
|
+
import '@orpc/client';
|
3
|
+
import '@orpc/contract';
|
4
|
+
import '@orpc/shared';
|
5
|
+
import { a as StandardOpenAPIHandler } from '../../shared/openapi.C_UtQ8Us.mjs';
|
6
|
+
import '@orpc/client/standard';
|
7
|
+
import '@orpc/server';
|
8
|
+
import 'rou3';
|
9
|
+
import '@orpc/openapi-client/standard';
|
10
|
+
import '@orpc/server/standard';
|
11
|
+
|
12
|
+
class experimental_OpenAPIHandler extends AwsLambdaHandler {
|
13
|
+
constructor(router, options = {}) {
|
14
|
+
super(new StandardOpenAPIHandler(router, options), options);
|
15
|
+
}
|
16
|
+
}
|
17
|
+
|
18
|
+
export { experimental_OpenAPIHandler };
|
package/dist/index.d.mts
CHANGED
@@ -1,16 +1,15 @@
|
|
1
|
-
import { AnyContractProcedure } from '@orpc/contract';
|
2
|
-
|
3
|
-
export {
|
4
|
-
export { d as CompositeSchemaConverter, C as ConditionalSchemaConverter, b as OpenAPIGenerator, a as OpenAPIGeneratorGenerateOptions, O as OpenAPIGeneratorOptions, S as SchemaConvertOptions, c as SchemaConverter } from './shared/openapi.CwdCLgSU.mjs';
|
1
|
+
import { OpenAPI, AnyContractProcedure } from '@orpc/contract';
|
2
|
+
export { OpenAPI } from '@orpc/contract';
|
3
|
+
export { d as CompositeSchemaConverter, C as ConditionalSchemaConverter, b as OpenAPIGenerator, a as OpenAPIGeneratorGenerateOptions, O as OpenAPIGeneratorOptions, S as SchemaConvertOptions, c as SchemaConverter } from './shared/openapi.qZLdpE0a.mjs';
|
5
4
|
import { HTTPPath, HTTPMethod } from '@orpc/client';
|
6
5
|
import { JSONSchema } from 'json-schema-typed/draft-2020-12';
|
7
|
-
export { JSONSchema, ContentEncoding as JSONSchemaContentEncoding, Format as JSONSchemaFormat } from 'json-schema-typed/draft-2020-12';
|
6
|
+
export { JSONSchema, ContentEncoding as JSONSchemaContentEncoding, Format as JSONSchemaFormat, TypeName as JSONSchemaTypeName } from 'json-schema-typed/draft-2020-12';
|
8
7
|
import { JsonifiedClient } from '@orpc/openapi-client';
|
9
8
|
import { AnyRouter, ClientContext, Lazyable, CreateProcedureClientOptions, InferRouterInitialContext, Schema, ErrorMap, Meta, RouterClient } from '@orpc/server';
|
10
9
|
import { MaybeOptionalOptions } from '@orpc/shared';
|
11
10
|
import '@orpc/openapi-client/standard';
|
12
11
|
|
13
|
-
type OverrideOperationValue = Partial<
|
12
|
+
type OverrideOperationValue = Partial<OpenAPI.OperationObject> | ((current: OpenAPI.OperationObject, procedure: AnyContractProcedure) => OpenAPI.OperationObject);
|
14
13
|
/**
|
15
14
|
* Customize The Operation Object by proxy an error map item or a middleware.
|
16
15
|
*
|
@@ -18,7 +17,7 @@ type OverrideOperationValue = Partial<OpenAPIV3_1.OperationObject> | ((current:
|
|
18
17
|
*/
|
19
18
|
declare function customOpenAPIOperation<T extends object>(o: T, extend: OverrideOperationValue): T;
|
20
19
|
declare function getCustomOpenAPIOperation(o: object): OverrideOperationValue | undefined;
|
21
|
-
declare function applyCustomOpenAPIOperation(operation:
|
20
|
+
declare function applyCustomOpenAPIOperation(operation: OpenAPI.OperationObject, contract: AnyContractProcedure): OpenAPI.OperationObject;
|
22
21
|
|
23
22
|
/**
|
24
23
|
* @internal
|
@@ -49,15 +48,15 @@ declare function toOpenAPIMethod(method: HTTPMethod): Lowercase<HTTPMethod>;
|
|
49
48
|
/**
|
50
49
|
* @internal
|
51
50
|
*/
|
52
|
-
declare function toOpenAPIContent(schema: JSONSchema): Record<string,
|
51
|
+
declare function toOpenAPIContent(schema: JSONSchema): Record<string, OpenAPI.MediaTypeObject>;
|
53
52
|
/**
|
54
53
|
* @internal
|
55
54
|
*/
|
56
|
-
declare function toOpenAPIEventIteratorContent([yieldsRequired, yieldsSchema]: [boolean, JSONSchema], [returnsRequired, returnsSchema]: [boolean, JSONSchema]): Record<string,
|
55
|
+
declare function toOpenAPIEventIteratorContent([yieldsRequired, yieldsSchema]: [boolean, JSONSchema], [returnsRequired, returnsSchema]: [boolean, JSONSchema]): Record<string, OpenAPI.MediaTypeObject>;
|
57
56
|
/**
|
58
57
|
* @internal
|
59
58
|
*/
|
60
|
-
declare function toOpenAPIParameters(schema: ObjectSchema, parameterIn: 'path' | 'query' | 'header' | 'cookie'):
|
59
|
+
declare function toOpenAPIParameters(schema: ObjectSchema, parameterIn: 'path' | 'query' | 'header' | 'cookie'): OpenAPI.ParameterObject[];
|
61
60
|
/**
|
62
61
|
* @internal
|
63
62
|
*/
|
@@ -65,7 +64,7 @@ declare function checkParamsSchema(schema: ObjectSchema, params: string[]): bool
|
|
65
64
|
/**
|
66
65
|
* @internal
|
67
66
|
*/
|
68
|
-
declare function toOpenAPISchema(schema: JSONSchema):
|
67
|
+
declare function toOpenAPISchema(schema: JSONSchema): OpenAPI.SchemaObject & object;
|
69
68
|
|
70
69
|
declare function createJsonifiedRouterClient<T extends AnyRouter, TClientContext extends ClientContext>(router: Lazyable<T | undefined>, ...rest: MaybeOptionalOptions<CreateProcedureClientOptions<InferRouterInitialContext<T>, Schema<unknown, unknown>, ErrorMap, Meta, TClientContext>>): JsonifiedClient<RouterClient<T, TClientContext>>;
|
71
70
|
|
@@ -96,10 +95,15 @@ declare function applySchemaOptionality(required: boolean, schema: JSONSchema):
|
|
96
95
|
* If the schema is not a simple union or is a base type, it's returned as a single-element array.
|
97
96
|
*/
|
98
97
|
declare function expandUnionSchema(schema: JSONSchema): JSONSchema[];
|
98
|
+
declare function expandArrayableSchema(schema: JSONSchema): undefined | [items: JSONSchema, array: JSONSchema & {
|
99
|
+
type: 'array';
|
100
|
+
items?: JSONSchema;
|
101
|
+
}];
|
102
|
+
declare function isPrimitiveSchema(schema: JSONSchema): boolean;
|
99
103
|
|
100
104
|
declare const oo: {
|
101
105
|
spec: typeof customOpenAPIOperation;
|
102
106
|
};
|
103
107
|
|
104
|
-
export { LOGIC_KEYWORDS, applyCustomOpenAPIOperation, applySchemaOptionality, checkParamsSchema, createJsonifiedRouterClient, customOpenAPIOperation, expandUnionSchema, filterSchemaBranches, getCustomOpenAPIOperation, isAnySchema, isFileSchema, isObjectSchema, oo, separateObjectSchema, toOpenAPIContent, toOpenAPIEventIteratorContent, toOpenAPIMethod, toOpenAPIParameters, toOpenAPIPath, toOpenAPISchema };
|
108
|
+
export { LOGIC_KEYWORDS, applyCustomOpenAPIOperation, applySchemaOptionality, checkParamsSchema, createJsonifiedRouterClient, customOpenAPIOperation, expandArrayableSchema, expandUnionSchema, filterSchemaBranches, getCustomOpenAPIOperation, isAnySchema, isFileSchema, isObjectSchema, isPrimitiveSchema, oo, separateObjectSchema, toOpenAPIContent, toOpenAPIEventIteratorContent, toOpenAPIMethod, toOpenAPIParameters, toOpenAPIPath, toOpenAPISchema };
|
105
109
|
export type { FileSchema, ObjectSchema, OverrideOperationValue };
|
package/dist/index.d.ts
CHANGED
@@ -1,16 +1,15 @@
|
|
1
|
-
import { AnyContractProcedure } from '@orpc/contract';
|
2
|
-
|
3
|
-
export {
|
4
|
-
export { d as CompositeSchemaConverter, C as ConditionalSchemaConverter, b as OpenAPIGenerator, a as OpenAPIGeneratorGenerateOptions, O as OpenAPIGeneratorOptions, S as SchemaConvertOptions, c as SchemaConverter } from './shared/openapi.CwdCLgSU.js';
|
1
|
+
import { OpenAPI, AnyContractProcedure } from '@orpc/contract';
|
2
|
+
export { OpenAPI } from '@orpc/contract';
|
3
|
+
export { d as CompositeSchemaConverter, C as ConditionalSchemaConverter, b as OpenAPIGenerator, a as OpenAPIGeneratorGenerateOptions, O as OpenAPIGeneratorOptions, S as SchemaConvertOptions, c as SchemaConverter } from './shared/openapi.qZLdpE0a.js';
|
5
4
|
import { HTTPPath, HTTPMethod } from '@orpc/client';
|
6
5
|
import { JSONSchema } from 'json-schema-typed/draft-2020-12';
|
7
|
-
export { JSONSchema, ContentEncoding as JSONSchemaContentEncoding, Format as JSONSchemaFormat } from 'json-schema-typed/draft-2020-12';
|
6
|
+
export { JSONSchema, ContentEncoding as JSONSchemaContentEncoding, Format as JSONSchemaFormat, TypeName as JSONSchemaTypeName } from 'json-schema-typed/draft-2020-12';
|
8
7
|
import { JsonifiedClient } from '@orpc/openapi-client';
|
9
8
|
import { AnyRouter, ClientContext, Lazyable, CreateProcedureClientOptions, InferRouterInitialContext, Schema, ErrorMap, Meta, RouterClient } from '@orpc/server';
|
10
9
|
import { MaybeOptionalOptions } from '@orpc/shared';
|
11
10
|
import '@orpc/openapi-client/standard';
|
12
11
|
|
13
|
-
type OverrideOperationValue = Partial<
|
12
|
+
type OverrideOperationValue = Partial<OpenAPI.OperationObject> | ((current: OpenAPI.OperationObject, procedure: AnyContractProcedure) => OpenAPI.OperationObject);
|
14
13
|
/**
|
15
14
|
* Customize The Operation Object by proxy an error map item or a middleware.
|
16
15
|
*
|
@@ -18,7 +17,7 @@ type OverrideOperationValue = Partial<OpenAPIV3_1.OperationObject> | ((current:
|
|
18
17
|
*/
|
19
18
|
declare function customOpenAPIOperation<T extends object>(o: T, extend: OverrideOperationValue): T;
|
20
19
|
declare function getCustomOpenAPIOperation(o: object): OverrideOperationValue | undefined;
|
21
|
-
declare function applyCustomOpenAPIOperation(operation:
|
20
|
+
declare function applyCustomOpenAPIOperation(operation: OpenAPI.OperationObject, contract: AnyContractProcedure): OpenAPI.OperationObject;
|
22
21
|
|
23
22
|
/**
|
24
23
|
* @internal
|
@@ -49,15 +48,15 @@ declare function toOpenAPIMethod(method: HTTPMethod): Lowercase<HTTPMethod>;
|
|
49
48
|
/**
|
50
49
|
* @internal
|
51
50
|
*/
|
52
|
-
declare function toOpenAPIContent(schema: JSONSchema): Record<string,
|
51
|
+
declare function toOpenAPIContent(schema: JSONSchema): Record<string, OpenAPI.MediaTypeObject>;
|
53
52
|
/**
|
54
53
|
* @internal
|
55
54
|
*/
|
56
|
-
declare function toOpenAPIEventIteratorContent([yieldsRequired, yieldsSchema]: [boolean, JSONSchema], [returnsRequired, returnsSchema]: [boolean, JSONSchema]): Record<string,
|
55
|
+
declare function toOpenAPIEventIteratorContent([yieldsRequired, yieldsSchema]: [boolean, JSONSchema], [returnsRequired, returnsSchema]: [boolean, JSONSchema]): Record<string, OpenAPI.MediaTypeObject>;
|
57
56
|
/**
|
58
57
|
* @internal
|
59
58
|
*/
|
60
|
-
declare function toOpenAPIParameters(schema: ObjectSchema, parameterIn: 'path' | 'query' | 'header' | 'cookie'):
|
59
|
+
declare function toOpenAPIParameters(schema: ObjectSchema, parameterIn: 'path' | 'query' | 'header' | 'cookie'): OpenAPI.ParameterObject[];
|
61
60
|
/**
|
62
61
|
* @internal
|
63
62
|
*/
|
@@ -65,7 +64,7 @@ declare function checkParamsSchema(schema: ObjectSchema, params: string[]): bool
|
|
65
64
|
/**
|
66
65
|
* @internal
|
67
66
|
*/
|
68
|
-
declare function toOpenAPISchema(schema: JSONSchema):
|
67
|
+
declare function toOpenAPISchema(schema: JSONSchema): OpenAPI.SchemaObject & object;
|
69
68
|
|
70
69
|
declare function createJsonifiedRouterClient<T extends AnyRouter, TClientContext extends ClientContext>(router: Lazyable<T | undefined>, ...rest: MaybeOptionalOptions<CreateProcedureClientOptions<InferRouterInitialContext<T>, Schema<unknown, unknown>, ErrorMap, Meta, TClientContext>>): JsonifiedClient<RouterClient<T, TClientContext>>;
|
71
70
|
|
@@ -96,10 +95,15 @@ declare function applySchemaOptionality(required: boolean, schema: JSONSchema):
|
|
96
95
|
* If the schema is not a simple union or is a base type, it's returned as a single-element array.
|
97
96
|
*/
|
98
97
|
declare function expandUnionSchema(schema: JSONSchema): JSONSchema[];
|
98
|
+
declare function expandArrayableSchema(schema: JSONSchema): undefined | [items: JSONSchema, array: JSONSchema & {
|
99
|
+
type: 'array';
|
100
|
+
items?: JSONSchema;
|
101
|
+
}];
|
102
|
+
declare function isPrimitiveSchema(schema: JSONSchema): boolean;
|
99
103
|
|
100
104
|
declare const oo: {
|
101
105
|
spec: typeof customOpenAPIOperation;
|
102
106
|
};
|
103
107
|
|
104
|
-
export { LOGIC_KEYWORDS, applyCustomOpenAPIOperation, applySchemaOptionality, checkParamsSchema, createJsonifiedRouterClient, customOpenAPIOperation, expandUnionSchema, filterSchemaBranches, getCustomOpenAPIOperation, isAnySchema, isFileSchema, isObjectSchema, oo, separateObjectSchema, toOpenAPIContent, toOpenAPIEventIteratorContent, toOpenAPIMethod, toOpenAPIParameters, toOpenAPIPath, toOpenAPISchema };
|
108
|
+
export { LOGIC_KEYWORDS, applyCustomOpenAPIOperation, applySchemaOptionality, checkParamsSchema, createJsonifiedRouterClient, customOpenAPIOperation, expandArrayableSchema, expandUnionSchema, filterSchemaBranches, getCustomOpenAPIOperation, isAnySchema, isFileSchema, isObjectSchema, isPrimitiveSchema, oo, separateObjectSchema, toOpenAPIContent, toOpenAPIEventIteratorContent, toOpenAPIMethod, toOpenAPIParameters, toOpenAPIPath, toOpenAPISchema };
|
105
109
|
export type { FileSchema, ObjectSchema, OverrideOperationValue };
|
package/dist/index.mjs
CHANGED
@@ -1,10 +1,10 @@
|
|
1
|
-
import { c as customOpenAPIOperation } from './shared/openapi.
|
2
|
-
export { C as CompositeSchemaConverter, L as LOGIC_KEYWORDS, O as OpenAPIGenerator, a as applyCustomOpenAPIOperation, n as applySchemaOptionality, h as checkParamsSchema, o as expandUnionSchema, m as filterSchemaBranches, g as getCustomOpenAPIOperation, l as isAnySchema, j as isFileSchema, k as isObjectSchema, s as separateObjectSchema, d as toOpenAPIContent, e as toOpenAPIEventIteratorContent, b as toOpenAPIMethod, f as toOpenAPIParameters, t as toOpenAPIPath, i as toOpenAPISchema } from './shared/openapi.
|
1
|
+
import { c as customOpenAPIOperation } from './shared/openapi.DaYgbD_w.mjs';
|
2
|
+
export { C as CompositeSchemaConverter, L as LOGIC_KEYWORDS, O as OpenAPIGenerator, a as applyCustomOpenAPIOperation, n as applySchemaOptionality, h as checkParamsSchema, p as expandArrayableSchema, o as expandUnionSchema, m as filterSchemaBranches, g as getCustomOpenAPIOperation, l as isAnySchema, j as isFileSchema, k as isObjectSchema, q as isPrimitiveSchema, s as separateObjectSchema, d as toOpenAPIContent, e as toOpenAPIEventIteratorContent, b as toOpenAPIMethod, f as toOpenAPIParameters, t as toOpenAPIPath, i as toOpenAPISchema } from './shared/openapi.DaYgbD_w.mjs';
|
3
3
|
import { createORPCErrorFromJson } from '@orpc/client';
|
4
4
|
import { StandardOpenAPISerializer, StandardOpenAPIJsonSerializer, StandardBracketNotationSerializer } from '@orpc/openapi-client/standard';
|
5
5
|
import { ORPCError, createRouterClient } from '@orpc/server';
|
6
6
|
import { resolveMaybeOptionalOptions } from '@orpc/shared';
|
7
|
-
export { ContentEncoding as JSONSchemaContentEncoding, Format as JSONSchemaFormat } from 'json-schema-typed/draft-2020-12';
|
7
|
+
export { ContentEncoding as JSONSchemaContentEncoding, Format as JSONSchemaFormat, TypeName as JSONSchemaTypeName } from 'json-schema-typed/draft-2020-12';
|
8
8
|
import '@orpc/client/standard';
|
9
9
|
import '@orpc/contract';
|
10
10
|
|
package/dist/plugins/index.d.mts
CHANGED
@@ -1,9 +1,8 @@
|
|
1
|
+
import { OpenAPI } from '@orpc/contract';
|
1
2
|
import { Context, HTTPPath, Router } from '@orpc/server';
|
2
3
|
import { StandardHandlerInterceptorOptions, StandardHandlerPlugin, StandardHandlerOptions } from '@orpc/server/standard';
|
3
4
|
import { Value, Promisable } from '@orpc/shared';
|
4
|
-
import {
|
5
|
-
import { O as OpenAPIGeneratorOptions, a as OpenAPIGeneratorGenerateOptions } from '../shared/openapi.CwdCLgSU.mjs';
|
6
|
-
import '@orpc/contract';
|
5
|
+
import { O as OpenAPIGeneratorOptions, a as OpenAPIGeneratorGenerateOptions } from '../shared/openapi.qZLdpE0a.mjs';
|
7
6
|
import '@orpc/openapi-client/standard';
|
8
7
|
import 'json-schema-typed/draft-2020-12';
|
9
8
|
|
@@ -50,7 +49,7 @@ interface OpenAPIReferencePluginOptions<T extends Context> extends OpenAPIGenera
|
|
50
49
|
/**
|
51
50
|
* Override function to generate the full HTML for the docs page.
|
52
51
|
*/
|
53
|
-
renderDocsHtml?: (specUrl: string, title: string, head: string, scriptUrl: string, config: Record<string, unknown> | undefined, spec:
|
52
|
+
renderDocsHtml?: (specUrl: string, title: string, head: string, scriptUrl: string, config: Record<string, unknown> | undefined, spec: OpenAPI.Document) => string;
|
54
53
|
}
|
55
54
|
declare class OpenAPIReferencePlugin<T extends Context> implements StandardHandlerPlugin<T> {
|
56
55
|
private readonly generator;
|
package/dist/plugins/index.d.ts
CHANGED
@@ -1,9 +1,8 @@
|
|
1
|
+
import { OpenAPI } from '@orpc/contract';
|
1
2
|
import { Context, HTTPPath, Router } from '@orpc/server';
|
2
3
|
import { StandardHandlerInterceptorOptions, StandardHandlerPlugin, StandardHandlerOptions } from '@orpc/server/standard';
|
3
4
|
import { Value, Promisable } from '@orpc/shared';
|
4
|
-
import {
|
5
|
-
import { O as OpenAPIGeneratorOptions, a as OpenAPIGeneratorGenerateOptions } from '../shared/openapi.CwdCLgSU.js';
|
6
|
-
import '@orpc/contract';
|
5
|
+
import { O as OpenAPIGeneratorOptions, a as OpenAPIGeneratorGenerateOptions } from '../shared/openapi.qZLdpE0a.js';
|
7
6
|
import '@orpc/openapi-client/standard';
|
8
7
|
import 'json-schema-typed/draft-2020-12';
|
9
8
|
|
@@ -50,7 +49,7 @@ interface OpenAPIReferencePluginOptions<T extends Context> extends OpenAPIGenera
|
|
50
49
|
/**
|
51
50
|
* Override function to generate the full HTML for the docs page.
|
52
51
|
*/
|
53
|
-
renderDocsHtml?: (specUrl: string, title: string, head: string, scriptUrl: string, config: Record<string, unknown> | undefined, spec:
|
52
|
+
renderDocsHtml?: (specUrl: string, title: string, head: string, scriptUrl: string, config: Record<string, unknown> | undefined, spec: OpenAPI.Document) => string;
|
54
53
|
}
|
55
54
|
declare class OpenAPIReferencePlugin<T extends Context> implements StandardHandlerPlugin<T> {
|
56
55
|
private readonly generator;
|
package/dist/plugins/index.mjs
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
import { stringifyJSON, once, value } from '@orpc/shared';
|
2
|
-
import { O as OpenAPIGenerator } from '../shared/openapi.
|
2
|
+
import { O as OpenAPIGenerator } from '../shared/openapi.DaYgbD_w.mjs';
|
3
3
|
import '@orpc/client';
|
4
4
|
import '@orpc/client/standard';
|
5
5
|
import '@orpc/contract';
|
@@ -3,8 +3,8 @@ import { toHttpPath } from '@orpc/client/standard';
|
|
3
3
|
import { fallbackContractConfig, getEventIteratorSchemaDetails } from '@orpc/contract';
|
4
4
|
import { standardizeHTTPPath, StandardOpenAPIJsonSerializer, getDynamicParams } from '@orpc/openapi-client/standard';
|
5
5
|
import { isProcedure, resolveContractProcedures } from '@orpc/server';
|
6
|
-
import { isObject, findDeepMatches, toArray, clone
|
7
|
-
import 'json-schema-typed/draft-2020-12';
|
6
|
+
import { isObject, stringifyJSON, findDeepMatches, toArray, clone } from '@orpc/shared';
|
7
|
+
import { TypeName } from 'json-schema-typed/draft-2020-12';
|
8
8
|
|
9
9
|
const OPERATION_EXTENDER_SYMBOL = Symbol("ORPC_OPERATION_EXTENDER");
|
10
10
|
function customOpenAPIOperation(o, extend) {
|
@@ -196,6 +196,45 @@ function expandUnionSchema(schema) {
|
|
196
196
|
}
|
197
197
|
return [schema];
|
198
198
|
}
|
199
|
+
function expandArrayableSchema(schema) {
|
200
|
+
const schemas = expandUnionSchema(schema);
|
201
|
+
if (schemas.length !== 2) {
|
202
|
+
return void 0;
|
203
|
+
}
|
204
|
+
const arraySchema = schemas.find(
|
205
|
+
(s) => typeof s === "object" && s.type === "array" && Object.keys(s).filter((k) => LOGIC_KEYWORDS.includes(k)).every((k) => k === "type" || k === "items")
|
206
|
+
);
|
207
|
+
if (arraySchema === void 0) {
|
208
|
+
return void 0;
|
209
|
+
}
|
210
|
+
const items1 = arraySchema.items;
|
211
|
+
const items2 = schemas.find((s) => s !== arraySchema);
|
212
|
+
if (stringifyJSON(items1) !== stringifyJSON(items2)) {
|
213
|
+
return void 0;
|
214
|
+
}
|
215
|
+
return [items2, arraySchema];
|
216
|
+
}
|
217
|
+
const PRIMITIVE_SCHEMA_TYPES = /* @__PURE__ */ new Set([
|
218
|
+
TypeName.String,
|
219
|
+
TypeName.Number,
|
220
|
+
TypeName.Integer,
|
221
|
+
TypeName.Boolean,
|
222
|
+
TypeName.Null
|
223
|
+
]);
|
224
|
+
function isPrimitiveSchema(schema) {
|
225
|
+
return expandUnionSchema(schema).every((s) => {
|
226
|
+
if (typeof s === "boolean") {
|
227
|
+
return false;
|
228
|
+
}
|
229
|
+
if (typeof s.type === "string" && PRIMITIVE_SCHEMA_TYPES.has(s.type)) {
|
230
|
+
return true;
|
231
|
+
}
|
232
|
+
if (s.const !== void 0) {
|
233
|
+
return true;
|
234
|
+
}
|
235
|
+
return false;
|
236
|
+
});
|
237
|
+
}
|
199
238
|
|
200
239
|
function toOpenAPIPath(path) {
|
201
240
|
return standardizeHTTPPath(path).replace(/\/\{\+([^}]+)\}/g, "/{$1}");
|
@@ -268,13 +307,26 @@ function toOpenAPIParameters(schema, parameterIn) {
|
|
268
307
|
const parameters = [];
|
269
308
|
for (const key in schema.properties) {
|
270
309
|
const keySchema = schema.properties[key];
|
310
|
+
let isDeepObjectStyle = true;
|
311
|
+
if (parameterIn !== "query") {
|
312
|
+
isDeepObjectStyle = false;
|
313
|
+
} else if (isPrimitiveSchema(keySchema)) {
|
314
|
+
isDeepObjectStyle = false;
|
315
|
+
} else {
|
316
|
+
const [item] = expandArrayableSchema(keySchema) ?? [];
|
317
|
+
if (item !== void 0 && isPrimitiveSchema(item)) {
|
318
|
+
isDeepObjectStyle = false;
|
319
|
+
}
|
320
|
+
}
|
271
321
|
parameters.push({
|
272
322
|
name: key,
|
273
323
|
in: parameterIn,
|
274
324
|
required: schema.required?.includes(key),
|
275
|
-
|
276
|
-
|
277
|
-
|
325
|
+
schema: toOpenAPISchema(keySchema),
|
326
|
+
style: isDeepObjectStyle ? "deepObject" : void 0,
|
327
|
+
explode: isDeepObjectStyle ? true : void 0,
|
328
|
+
allowEmptyValue: parameterIn === "query" ? true : void 0,
|
329
|
+
allowReserved: parameterIn === "query" ? true : void 0
|
278
330
|
});
|
279
331
|
}
|
280
332
|
return parameters;
|
@@ -344,16 +396,21 @@ class OpenAPIGenerator {
|
|
344
396
|
const def = contract["~orpc"];
|
345
397
|
const method = toOpenAPIMethod(fallbackContractConfig("defaultMethod", def.route.method));
|
346
398
|
const httpPath = toOpenAPIPath(def.route.path ?? toHttpPath(path));
|
347
|
-
|
348
|
-
|
349
|
-
|
350
|
-
|
351
|
-
|
352
|
-
|
353
|
-
|
354
|
-
|
355
|
-
|
356
|
-
|
399
|
+
let operationObjectRef;
|
400
|
+
if (def.route.spec !== void 0) {
|
401
|
+
operationObjectRef = def.route.spec;
|
402
|
+
} else {
|
403
|
+
operationObjectRef = {
|
404
|
+
operationId,
|
405
|
+
summary: def.route.summary,
|
406
|
+
description: def.route.description,
|
407
|
+
deprecated: def.route.deprecated,
|
408
|
+
tags: def.route.tags?.map((tag) => tag)
|
409
|
+
};
|
410
|
+
await this.#request(operationObjectRef, def);
|
411
|
+
await this.#successResponse(operationObjectRef, def);
|
412
|
+
await this.#errorResponse(operationObjectRef, def);
|
413
|
+
}
|
357
414
|
doc.paths ??= {};
|
358
415
|
doc.paths[httpPath] ??= {};
|
359
416
|
doc.paths[httpPath][method] = applyCustomOpenAPIOperation(operationObjectRef, contract);
|
@@ -592,4 +649,4 @@ ${errors.join("\n\n")}`
|
|
592
649
|
}
|
593
650
|
}
|
594
651
|
|
595
|
-
export { CompositeSchemaConverter as C, LOGIC_KEYWORDS as L, OpenAPIGenerator as O, applyCustomOpenAPIOperation as a, toOpenAPIMethod as b, customOpenAPIOperation as c, toOpenAPIContent as d, toOpenAPIEventIteratorContent as e, toOpenAPIParameters as f, getCustomOpenAPIOperation as g, checkParamsSchema as h, toOpenAPISchema as i, isFileSchema as j, isObjectSchema as k, isAnySchema as l, filterSchemaBranches as m, applySchemaOptionality as n, expandUnionSchema as o, separateObjectSchema as s, toOpenAPIPath as t };
|
652
|
+
export { CompositeSchemaConverter as C, LOGIC_KEYWORDS as L, OpenAPIGenerator as O, applyCustomOpenAPIOperation as a, toOpenAPIMethod as b, customOpenAPIOperation as c, toOpenAPIContent as d, toOpenAPIEventIteratorContent as e, toOpenAPIParameters as f, getCustomOpenAPIOperation as g, checkParamsSchema as h, toOpenAPISchema as i, isFileSchema as j, isObjectSchema as k, isAnySchema as l, filterSchemaBranches as m, applySchemaOptionality as n, expandUnionSchema as o, expandArrayableSchema as p, isPrimitiveSchema as q, separateObjectSchema as s, toOpenAPIPath as t };
|
@@ -1,7 +1,6 @@
|
|
1
|
-
import { AnySchema, AnyContractProcedure, AnyContractRouter } from '@orpc/contract';
|
1
|
+
import { AnySchema, OpenAPI, AnyContractProcedure, AnyContractRouter } from '@orpc/contract';
|
2
2
|
import { StandardOpenAPIJsonSerializerOptions } from '@orpc/openapi-client/standard';
|
3
3
|
import { AnyProcedure, AnyRouter } from '@orpc/server';
|
4
|
-
import { OpenAPIV3_1 } from 'openapi-types';
|
5
4
|
import { Promisable } from '@orpc/shared';
|
6
5
|
import { JSONSchema } from 'json-schema-typed/draft-2020-12';
|
7
6
|
|
@@ -23,7 +22,7 @@ declare class CompositeSchemaConverter implements SchemaConverter {
|
|
23
22
|
interface OpenAPIGeneratorOptions extends StandardOpenAPIJsonSerializerOptions {
|
24
23
|
schemaConverters?: ConditionalSchemaConverter[];
|
25
24
|
}
|
26
|
-
interface OpenAPIGeneratorGenerateOptions extends Partial<Omit<
|
25
|
+
interface OpenAPIGeneratorGenerateOptions extends Partial<Omit<OpenAPI.Document, 'openapi'>> {
|
27
26
|
/**
|
28
27
|
* Exclude procedures from the OpenAPI specification.
|
29
28
|
*
|
@@ -46,7 +45,7 @@ declare class OpenAPIGenerator {
|
|
46
45
|
*
|
47
46
|
* @see {@link https://orpc.unnoq.com/docs/openapi/openapi-specification OpenAPI Specification Docs}
|
48
47
|
*/
|
49
|
-
generate(router: AnyContractRouter | AnyRouter, options?: OpenAPIGeneratorGenerateOptions): Promise<
|
48
|
+
generate(router: AnyContractRouter | AnyRouter, options?: OpenAPIGeneratorGenerateOptions): Promise<OpenAPI.Document>;
|
50
49
|
}
|
51
50
|
|
52
51
|
export { OpenAPIGenerator as b, CompositeSchemaConverter as d };
|
@@ -1,7 +1,6 @@
|
|
1
|
-
import { AnySchema, AnyContractProcedure, AnyContractRouter } from '@orpc/contract';
|
1
|
+
import { AnySchema, OpenAPI, AnyContractProcedure, AnyContractRouter } from '@orpc/contract';
|
2
2
|
import { StandardOpenAPIJsonSerializerOptions } from '@orpc/openapi-client/standard';
|
3
3
|
import { AnyProcedure, AnyRouter } from '@orpc/server';
|
4
|
-
import { OpenAPIV3_1 } from 'openapi-types';
|
5
4
|
import { Promisable } from '@orpc/shared';
|
6
5
|
import { JSONSchema } from 'json-schema-typed/draft-2020-12';
|
7
6
|
|
@@ -23,7 +22,7 @@ declare class CompositeSchemaConverter implements SchemaConverter {
|
|
23
22
|
interface OpenAPIGeneratorOptions extends StandardOpenAPIJsonSerializerOptions {
|
24
23
|
schemaConverters?: ConditionalSchemaConverter[];
|
25
24
|
}
|
26
|
-
interface OpenAPIGeneratorGenerateOptions extends Partial<Omit<
|
25
|
+
interface OpenAPIGeneratorGenerateOptions extends Partial<Omit<OpenAPI.Document, 'openapi'>> {
|
27
26
|
/**
|
28
27
|
* Exclude procedures from the OpenAPI specification.
|
29
28
|
*
|
@@ -46,7 +45,7 @@ declare class OpenAPIGenerator {
|
|
46
45
|
*
|
47
46
|
* @see {@link https://orpc.unnoq.com/docs/openapi/openapi-specification OpenAPI Specification Docs}
|
48
47
|
*/
|
49
|
-
generate(router: AnyContractRouter | AnyRouter, options?: OpenAPIGeneratorGenerateOptions): Promise<
|
48
|
+
generate(router: AnyContractRouter | AnyRouter, options?: OpenAPIGeneratorGenerateOptions): Promise<OpenAPI.Document>;
|
50
49
|
}
|
51
50
|
|
52
51
|
export { OpenAPIGenerator as b, CompositeSchemaConverter as d };
|
package/package.json
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
{
|
2
2
|
"name": "@orpc/openapi",
|
3
3
|
"type": "module",
|
4
|
-
"version": "1.
|
4
|
+
"version": "1.4.1",
|
5
5
|
"license": "MIT",
|
6
6
|
"homepage": "https://orpc.unnoq.com",
|
7
7
|
"repository": {
|
@@ -38,6 +38,11 @@
|
|
38
38
|
"types": "./dist/adapters/node/index.d.mts",
|
39
39
|
"import": "./dist/adapters/node/index.mjs",
|
40
40
|
"default": "./dist/adapters/node/index.mjs"
|
41
|
+
},
|
42
|
+
"./aws-lambda": {
|
43
|
+
"types": "./dist/adapters/aws-lambda/index.d.mts",
|
44
|
+
"import": "./dist/adapters/aws-lambda/index.mjs",
|
45
|
+
"default": "./dist/adapters/aws-lambda/index.mjs"
|
41
46
|
}
|
42
47
|
},
|
43
48
|
"files": [
|
@@ -45,17 +50,16 @@
|
|
45
50
|
],
|
46
51
|
"dependencies": {
|
47
52
|
"json-schema-typed": "^8.0.1",
|
48
|
-
"openapi-types": "^12.1.3",
|
49
53
|
"rou3": "^0.6.0",
|
50
|
-
"@orpc/
|
51
|
-
"@orpc/
|
52
|
-
"@orpc/
|
53
|
-
"@orpc/
|
54
|
-
"@orpc/
|
55
|
-
"@orpc/
|
54
|
+
"@orpc/contract": "1.4.1",
|
55
|
+
"@orpc/openapi-client": "1.4.1",
|
56
|
+
"@orpc/client": "1.4.1",
|
57
|
+
"@orpc/server": "1.4.1",
|
58
|
+
"@orpc/shared": "1.4.1",
|
59
|
+
"@orpc/standard-server": "1.4.1"
|
56
60
|
},
|
57
61
|
"devDependencies": {
|
58
|
-
"zod": "^3.25.
|
62
|
+
"zod": "^3.25.49"
|
59
63
|
},
|
60
64
|
"scripts": {
|
61
65
|
"build": "unbuild",
|