@orpc/openapi 2.0.0-beta.34 → 2.0.0-beta.35

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 CHANGED
@@ -55,20 +55,20 @@ You can read the documentation [here](https://orpc.dev).
55
55
 
56
56
  **Framework & ecosystem integrations**
57
57
 
58
- | Package | Purpose | Docs |
59
- | ------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
60
- | [@orpc/next](https://www.npmjs.com/package/@orpc/next) | Integrate with [Next.js Server Functions](https://nextjs.org/docs/app/getting-started/mutating-data). | [Next.js](https://orpc.dev/docs/integrations/next) |
61
- | [@orpc/ai-sdk](https://www.npmjs.com/package/@orpc/ai-sdk) | Turn contracts and procedures into [AI SDK](https://ai-sdk.dev/) tools. | [AI SDK](https://orpc.dev/docs/integrations/ai-sdk) |
62
- | [@orpc/tanstack-query](https://www.npmjs.com/package/@orpc/tanstack-query) | Integrate with [TanStack Query](https://tanstack.com/query/latest). | [TanStack Query](https://orpc.dev/docs/integrations/tanstack-query) |
63
- | [@orpc/pinia-colada](https://www.npmjs.com/package/@orpc/pinia-colada) | Integrate with [Pinia Colada](https://pinia-colada.esm.dev/). | [Pinia Colada](https://orpc.dev/docs/integrations/pinia-colada) |
64
- | [@orpc/swr](https://www.npmjs.com/package/@orpc/swr) | Integrate with [SWR](https://swr.vercel.app/). | [SWR](https://orpc.dev/docs/integrations/swr) |
65
- | [@orpc/experimental-msw](https://www.npmjs.com/package/@orpc/experimental-msw) | Mock procedures with [Mock Service Worker](https://mswjs.io/). | [MSW](https://orpc.dev/docs/integrations/msw) |
66
- | [@orpc/experimental-effect](https://www.npmjs.com/package/@orpc/experimental-effect) | Integrate with [Effect](https://effect.website/). | [Effect](https://orpc.dev/docs/integrations/effect) |
67
- | [@orpc/nest](https://www.npmjs.com/package/@orpc/nest) | Implement your contract with [NestJS](https://nestjs.com/). | [NestJS](https://orpc.dev/docs/integrations/nest) |
68
- | [@orpc/node](https://www.npmjs.com/package/@orpc/node) | [Node.js](https://nodejs.org/) plugins for static file serving and large uploads. | [Static File](https://orpc.dev/docs/plugins/static-file), [Tmp File Upload](https://orpc.dev/docs/plugins/tmp-file-upload), [Batch Response Compression](https://orpc.dev/docs/plugins/batch-response-compression) |
69
- | [@orpc/bun](https://www.npmjs.com/package/@orpc/bun) | Adapters for [Bun's Redis](https://bun.sh/). | [Publisher](https://orpc.dev/docs/helpers/publisher), [Rate Limit](https://orpc.dev/docs/helpers/ratelimit) |
70
- | [@orpc/cloudflare](https://www.npmjs.com/package/@orpc/cloudflare) | Adapters for [Cloudflare's RateLimit and Durable Objects](https://developers.cloudflare.com/workers/). | [Publisher](https://orpc.dev/docs/helpers/publisher), [Rate Limit](https://orpc.dev/docs/helpers/ratelimit) |
71
- | [@orpc/trpc](https://www.npmjs.com/package/@orpc/trpc) | Reuse existing [tRPC](https://trpc.io/) routers within oRPC. | [tRPC](https://orpc.dev/docs/integrations/trpc) |
58
+ | Package | Purpose | Docs |
59
+ | ------------------------------------------------------------------------------------ | ----------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
60
+ | [@orpc/next](https://www.npmjs.com/package/@orpc/next) | Integrate with [Next.js Server Functions](https://nextjs.org/docs/app/getting-started/mutating-data). | [Next.js](https://orpc.dev/docs/integrations/next) |
61
+ | [@orpc/ai-sdk](https://www.npmjs.com/package/@orpc/ai-sdk) | Turn contracts and procedures into [AI SDK](https://ai-sdk.dev/) tools. | [AI SDK](https://orpc.dev/docs/integrations/ai-sdk) |
62
+ | [@orpc/tanstack-query](https://www.npmjs.com/package/@orpc/tanstack-query) | Integrate with [TanStack Query](https://tanstack.com/query/latest). | [TanStack Query](https://orpc.dev/docs/integrations/tanstack-query) |
63
+ | [@orpc/pinia-colada](https://www.npmjs.com/package/@orpc/pinia-colada) | Integrate with [Pinia Colada](https://pinia-colada.esm.dev/). | [Pinia Colada](https://orpc.dev/docs/integrations/pinia-colada) |
64
+ | [@orpc/swr](https://www.npmjs.com/package/@orpc/swr) | Integrate with [SWR](https://swr.vercel.app/). | [SWR](https://orpc.dev/docs/integrations/swr) |
65
+ | [@orpc/experimental-msw](https://www.npmjs.com/package/@orpc/experimental-msw) | Mock procedures with [Mock Service Worker](https://mswjs.io/). | [MSW](https://orpc.dev/docs/integrations/msw) |
66
+ | [@orpc/experimental-effect](https://www.npmjs.com/package/@orpc/experimental-effect) | Integrate with [Effect](https://effect.website/). | [Effect](https://orpc.dev/docs/integrations/effect) |
67
+ | [@orpc/nest](https://www.npmjs.com/package/@orpc/nest) | Implement your contract with [NestJS](https://nestjs.com/). | [NestJS](https://orpc.dev/docs/integrations/nest) |
68
+ | [@orpc/node](https://www.npmjs.com/package/@orpc/node) | [Node.js](https://nodejs.org/) plugins for static file serving and large uploads. | [Static File](https://orpc.dev/docs/plugins/static-file), [Tmp File Upload](https://orpc.dev/docs/plugins/tmp-file-upload), [Batch Response Compression](https://orpc.dev/docs/plugins/batch-response-compression) |
69
+ | [@orpc/bun](https://www.npmjs.com/package/@orpc/bun) | Adapters for [Bun's Redis](https://bun.sh/). | [Publisher](https://orpc.dev/docs/helpers/publisher), [Rate Limit](https://orpc.dev/docs/helpers/ratelimit) |
70
+ | [@orpc/cloudflare](https://www.npmjs.com/package/@orpc/cloudflare) | Adapters for [Cloudflare Workers](https://developers.cloudflare.com/workers/). | [Publisher](https://orpc.dev/docs/helpers/publisher), [Rate Limit](https://orpc.dev/docs/helpers/ratelimit), [Traces](https://orpc.dev/docs/integrations/cloudflare-traces) |
71
+ | [@orpc/trpc](https://www.npmjs.com/package/@orpc/trpc) | Reuse existing [tRPC](https://trpc.io/) routers within oRPC. | [tRPC](https://orpc.dev/docs/integrations/trpc) |
72
72
 
73
73
  **Observability**
74
74
 
@@ -127,6 +127,7 @@ Like what we build over at [middleapi](https://github.com/middleapi)? You can he
127
127
  <td align="center"><a href="https://github.com/ellis-driscoll?ref=middleapi&amp;utm_source=middleapi&amp;utm_medium=sponsor" target="_blank" rel="noopener sponsored" title="Ellis Driscoll"><img src="https://avatars.githubusercontent.com/u/70685966?u=c5f95bc33b5991d9744abe00052542e4a2ed3cb9&amp;v=4" width="139" alt="Ellis Driscoll"/><br />Ellis Driscoll</a></td>
128
128
  <td align="center"><a href="https://github.com/hoangbn?ref=middleapi&amp;utm_source=middleapi&amp;utm_medium=sponsor" target="_blank" rel="noopener sponsored" title="Hoang Nguyen"><img src="https://avatars.githubusercontent.com/u/38968280?u=c90084c6de65c56facabab7ba13a72a49ddbc3e4&amp;v=4" width="139" alt="Hoang Nguyen"/><br />Hoang Nguyen</a></td>
129
129
  <td align="center"><a href="https://opencollective.com/guest-ac41de3b?ref=middleapi&amp;utm_source=middleapi&amp;utm_medium=sponsor" target="_blank" rel="noopener sponsored" title="Orestis Ioannou"><img src="https://images.opencollective.com/guest-ac41de3b/avatar/460.png" width="139" alt="Orestis Ioannou"/><br />Orestis Ioannou</a></td>
130
+ <td align="center"><a href="https://automatio.ai/?ref=middleapi&amp;utm_source=middleapi&amp;utm_medium=sponsor" target="_blank" rel="noopener sponsored" title="Stefan Smiljkovic"><img src="https://avatars.githubusercontent.com/u/1984909?u=b7bf5bc40ed49df3c22f69d2da7b8d78709c49ed&amp;v=4" width="139" alt="Stefan Smiljkovic"/><br />Stefan Smiljkovic</a></td>
130
131
  </tr>
131
132
  </table>
132
133
 
@@ -1,5 +1,5 @@
1
- export { a as OpenAPIHandlerCodec, b as OpenAPIHandlerCodecCore, c as OpenAPIHandlerCodecCoreOptions, O as OpenAPIHandlerCodecOptions, d as OpenAPIMatcher, e as OpenAPIMatcherOptions } from '../../shared/openapi.C1cJ95us.mjs';
2
- export { a as OpenAPILinkCodec, O as OpenAPILinkCodecOptions } from '../../shared/openapi.BV8YPh6e.mjs';
1
+ export { a as OpenAPIHandlerCodec, b as OpenAPIHandlerCodecCore, c as OpenAPIHandlerCodecCoreOptions, O as OpenAPIHandlerCodecOptions, d as OpenAPIMatcher, e as OpenAPIMatcherOptions } from '../../shared/openapi.BO2OB-Y9.mjs';
2
+ export { a as OpenAPILinkCodec, O as OpenAPILinkCodecOptions } from '../../shared/openapi.D3yXvICd.mjs';
3
3
  import { StandardHeaders } from '@standard-server/core';
4
4
  import { OpenAPISerializer } from '../../index.mjs';
5
5
  import '@orpc/client';
@@ -1,5 +1,5 @@
1
- export { a as OpenAPIHandlerCodec, b as OpenAPIHandlerCodecCore, c as OpenAPIHandlerCodecCoreOptions, O as OpenAPIHandlerCodecOptions, d as OpenAPIMatcher, e as OpenAPIMatcherOptions } from '../../shared/openapi.1dpot5Co.js';
2
- export { a as OpenAPILinkCodec, O as OpenAPILinkCodecOptions } from '../../shared/openapi.BbwbMAMG.js';
1
+ export { a as OpenAPIHandlerCodec, b as OpenAPIHandlerCodecCore, c as OpenAPIHandlerCodecCoreOptions, O as OpenAPIHandlerCodecOptions, d as OpenAPIMatcher, e as OpenAPIMatcherOptions } from '../../shared/openapi.DsnjJWwQ.js';
2
+ export { a as OpenAPILinkCodec, O as OpenAPILinkCodecOptions } from '../../shared/openapi.DOy27J9v.js';
3
3
  import { StandardHeaders } from '@standard-server/core';
4
4
  import { OpenAPISerializer } from '../../index.js';
5
5
  import '@orpc/client';
package/dist/index.d.mts CHANGED
@@ -8,7 +8,7 @@ export { b as JsonifiedArray, c as JsonifiedClientError, d as JsonifiedValue } f
8
8
  export { a as OpenAPIFunction, O as OpenAPIMeta, b as OpenAPIMetaPlugin, c as OpenAPIMethodMetaPlugin, d as OpenAPIPathMetaPlugin, e as OpenAPIPrefixMetaPlugin, f as OpenAPISpecMetaPlugin, g as getOpenAPIMeta, o as openapi } from './shared/openapi.Cem81Zhm.mjs';
9
9
  import { JsonSchema, JsonSchemaConverter } from '@orpc/json-schema';
10
10
  import { AnyRouter, AnyProcedure } from '@orpc/server';
11
- import { Value } from '@orpc/shared';
11
+ import { Public, Value } from '@orpc/shared';
12
12
  import { OpenAPIV3_2 } from '@openapi-spec/types';
13
13
  export { OpenAPIV3_0, OpenAPIV3_1, OpenAPIV3_2 } from '@openapi-spec/types';
14
14
  export { StandardBodyHint } from '@standard-server/core';
@@ -60,7 +60,7 @@ interface OpenAPIGeneratorOptions {
60
60
  /**
61
61
  * The serializer used to serialize the generated OpenAPI documentation
62
62
  */
63
- serializer?: Pick<OpenAPISerializer, keyof OpenAPISerializer> | undefined;
63
+ serializer?: Public<OpenAPISerializer> | undefined;
64
64
  }
65
65
  interface OpenAPIGeneratorGenerateOptions<TVersion extends OpenAPIVersion> {
66
66
  /**
package/dist/index.d.ts CHANGED
@@ -8,7 +8,7 @@ export { b as JsonifiedArray, c as JsonifiedClientError, d as JsonifiedValue } f
8
8
  export { a as OpenAPIFunction, O as OpenAPIMeta, b as OpenAPIMetaPlugin, c as OpenAPIMethodMetaPlugin, d as OpenAPIPathMetaPlugin, e as OpenAPIPrefixMetaPlugin, f as OpenAPISpecMetaPlugin, g as getOpenAPIMeta, o as openapi } from './shared/openapi.Cem81Zhm.js';
9
9
  import { JsonSchema, JsonSchemaConverter } from '@orpc/json-schema';
10
10
  import { AnyRouter, AnyProcedure } from '@orpc/server';
11
- import { Value } from '@orpc/shared';
11
+ import { Public, Value } from '@orpc/shared';
12
12
  import { OpenAPIV3_2 } from '@openapi-spec/types';
13
13
  export { OpenAPIV3_0, OpenAPIV3_1, OpenAPIV3_2 } from '@openapi-spec/types';
14
14
  export { StandardBodyHint } from '@standard-server/core';
@@ -60,7 +60,7 @@ interface OpenAPIGeneratorOptions {
60
60
  /**
61
61
  * The serializer used to serialize the generated OpenAPI documentation
62
62
  */
63
- serializer?: Pick<OpenAPISerializer, keyof OpenAPISerializer> | undefined;
63
+ serializer?: Public<OpenAPISerializer> | undefined;
64
64
  }
65
65
  interface OpenAPIGeneratorGenerateOptions<TVersion extends OpenAPIVersion> {
66
66
  /**
package/dist/index.mjs CHANGED
@@ -599,6 +599,7 @@ function buildErrorResponse(ctx, operation, def) {
599
599
  return;
600
600
  }
601
601
  const undefinedErrorSchema = ctx.registry.register("UndefinedError", {
602
+ title: "UndefinedError",
602
603
  type: "object",
603
604
  properties: {
604
605
  defined: { const: false },
@@ -618,14 +619,17 @@ function buildErrorResponse(ctx, operation, def) {
618
619
  );
619
620
  const responseSchema = customBodySchema ?? combineJsonSchemasWithComposition("oneOf", [
620
621
  ...definitions.map(({ code, dataJsonSchema, dataOptional }) => {
621
- return ctx.registry.register(toErrorComponentName(code), combineJsonObjectSchemaEntries([
622
- ["defined", { const: true }, false],
623
- ["code", { const: code }, false],
624
- ["status", { const: status }, false],
625
- // avoid using the defaultMessage here to improve component reusability
626
- ["message", { type: "string" }, false],
627
- ["data", ctx.registry.hoistDefs(dataJsonSchema, "output"), dataOptional]
628
- ]));
622
+ return ctx.registry.register(toErrorComponentName(code), {
623
+ title: code,
624
+ ...combineJsonObjectSchemaEntries([
625
+ ["defined", { const: true }, false],
626
+ ["code", { const: code }, false],
627
+ ["status", { const: status }, false],
628
+ // avoid using the defaultMessage here to improve component reusability
629
+ ["message", { type: "string" }, false],
630
+ ["data", ctx.registry.hoistDefs(dataJsonSchema, "output"), dataOptional]
631
+ ])
632
+ });
629
633
  }),
630
634
  undefinedErrorSchema
631
635
  ]);
@@ -1,4 +1,4 @@
1
- import { toArray, matchesHttpPath, mergeHttpPath, value, getOpenTelemetryConfig, stringifyJSON } from '@orpc/shared';
1
+ import { toArray, matchesHttpPath, mergeHttpPath, value, getTracer, stringifyJSON } from '@orpc/shared';
2
2
 
3
3
  class OpenAPIReferenceHandlerPlugin {
4
4
  name = "~openapi-reference";
@@ -49,7 +49,7 @@ class OpenAPIReferenceHandlerPlugin {
49
49
  if (await value(this.allow, routingInterceptorOptions) === false) {
50
50
  return result;
51
51
  }
52
- const span = getOpenTelemetryConfig()?.trace.getActiveSpan();
52
+ const span = getTracer()?.getActiveSpan();
53
53
  const spec = await value(this.spec, routingInterceptorOptions);
54
54
  if (isSpecPath) {
55
55
  span?.updateName(`${routingInterceptorOptions.request.method} ${routingInterceptorOptions.request.url} (openapi spec)`);
@@ -1,7 +1,7 @@
1
1
  import { AnyORPCError } from '@orpc/client';
2
2
  import { AnyProcedure, AnyRouter, Context } from '@orpc/server';
3
3
  import { StandardHandlerCodec, StandardHandlerHandleOptions, StandardHandlerCodecResolvedProcedure } from '@orpc/server/standard';
4
- import { Value, Promisable } from '@orpc/shared';
4
+ import { Value, Public, Promisable } from '@orpc/shared';
5
5
  import { StandardLazyRequest, StandardResponse } from '@standard-server/core';
6
6
  import { AnyProcedureContract } from '@orpc/contract';
7
7
  import { O as OpenAPISerializer } from './openapi.DXWj9fY8.mjs';
@@ -37,7 +37,7 @@ interface OpenAPIHandlerCodecCoreOptions<_T extends Context> {
37
37
  /**
38
38
  * Override the default OpenAPI serializer.
39
39
  */
40
- serializer?: Pick<OpenAPISerializer, keyof OpenAPISerializer>;
40
+ serializer?: Public<OpenAPISerializer>;
41
41
  /**
42
42
  * Mapping ORPCError Code -> HTTP Status Code
43
43
  * The status code should be in the `4xx` or `5xx` range (must be greater than or equal to `400`).
@@ -1,7 +1,7 @@
1
1
  import { ClientContext, ClientOptions, AnyORPCError } from '@orpc/client';
2
2
  import { StandardLinkCodec, StandardLinkCodecDecodedResponse } from '@orpc/client/standard';
3
3
  import { RouterContract } from '@orpc/contract';
4
- import { Value, Promisable } from '@orpc/shared';
4
+ import { Value, Promisable, Public } from '@orpc/shared';
5
5
  import { StandardUrl, StandardHeaders, StandardLazyResponse, StandardRequest } from '@standard-server/core';
6
6
  import { O as OpenAPISerializer } from './openapi.DXWj9fY8.mjs';
7
7
 
@@ -20,7 +20,7 @@ interface OpenAPILinkCodecOptions<T extends ClientContext> {
20
20
  /**
21
21
  * Override the default OpenAPI serializer.
22
22
  */
23
- serializer?: Pick<OpenAPISerializer, keyof OpenAPISerializer>;
23
+ serializer?: Public<OpenAPISerializer>;
24
24
  /**
25
25
  * Customize how an error response body is converted into an ORPC error.
26
26
  * Return `null` or `undefined` to fall back to the default decoding behavior.
@@ -1,7 +1,7 @@
1
1
  import { ClientContext, ClientOptions, AnyORPCError } from '@orpc/client';
2
2
  import { StandardLinkCodec, StandardLinkCodecDecodedResponse } from '@orpc/client/standard';
3
3
  import { RouterContract } from '@orpc/contract';
4
- import { Value, Promisable } from '@orpc/shared';
4
+ import { Value, Promisable, Public } from '@orpc/shared';
5
5
  import { StandardUrl, StandardHeaders, StandardLazyResponse, StandardRequest } from '@standard-server/core';
6
6
  import { O as OpenAPISerializer } from './openapi.DXWj9fY8.js';
7
7
 
@@ -20,7 +20,7 @@ interface OpenAPILinkCodecOptions<T extends ClientContext> {
20
20
  /**
21
21
  * Override the default OpenAPI serializer.
22
22
  */
23
- serializer?: Pick<OpenAPISerializer, keyof OpenAPISerializer>;
23
+ serializer?: Public<OpenAPISerializer>;
24
24
  /**
25
25
  * Customize how an error response body is converted into an ORPC error.
26
26
  * Return `null` or `undefined` to fall back to the default decoding behavior.
@@ -1,7 +1,7 @@
1
1
  import { AnyORPCError } from '@orpc/client';
2
2
  import { AnyProcedure, AnyRouter, Context } from '@orpc/server';
3
3
  import { StandardHandlerCodec, StandardHandlerHandleOptions, StandardHandlerCodecResolvedProcedure } from '@orpc/server/standard';
4
- import { Value, Promisable } from '@orpc/shared';
4
+ import { Value, Public, Promisable } from '@orpc/shared';
5
5
  import { StandardLazyRequest, StandardResponse } from '@standard-server/core';
6
6
  import { AnyProcedureContract } from '@orpc/contract';
7
7
  import { O as OpenAPISerializer } from './openapi.DXWj9fY8.js';
@@ -37,7 +37,7 @@ interface OpenAPIHandlerCodecCoreOptions<_T extends Context> {
37
37
  /**
38
38
  * Override the default OpenAPI serializer.
39
39
  */
40
- serializer?: Pick<OpenAPISerializer, keyof OpenAPISerializer>;
40
+ serializer?: Public<OpenAPISerializer>;
41
41
  /**
42
42
  * Mapping ORPCError Code -> HTTP Status Code
43
43
  * The status code should be in the `4xx` or `5xx` range (must be greater than or equal to `400`).
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@orpc/openapi",
3
3
  "type": "module",
4
- "version": "2.0.0-beta.34",
4
+ "version": "2.0.0-beta.35",
5
5
  "description": "Generate OpenAPI specs from oRPC routers and serve OpenAPI-compliant APIs with end-to-end type safety",
6
6
  "license": "MIT",
7
7
  "funding": [
@@ -99,11 +99,11 @@
99
99
  "dependencies": {
100
100
  "@openapi-spec/downgrader": "~0.1.0",
101
101
  "@openapi-spec/types": "~0.1.0",
102
- "@orpc/client": "2.0.0-beta.34",
103
- "@orpc/contract": "2.0.0-beta.34",
104
- "@orpc/json-schema": "2.0.0-beta.34",
105
- "@orpc/server": "2.0.0-beta.34",
106
- "@orpc/shared": "2.0.0-beta.34",
102
+ "@orpc/client": "2.0.0-beta.35",
103
+ "@orpc/contract": "2.0.0-beta.35",
104
+ "@orpc/json-schema": "2.0.0-beta.35",
105
+ "@orpc/server": "2.0.0-beta.35",
106
+ "@orpc/shared": "2.0.0-beta.35",
107
107
  "@standard-server/core": "~0.9.0",
108
108
  "@standard-server/fetch": "~0.9.0",
109
109
  "rou3": "^0.9.1"