orpc-fn 0.1.0 → 0.2.0
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 +48 -32
- package/dist/assemble-procedure.d.ts +13 -0
- package/dist/assemble-procedure.d.ts.map +1 -0
- package/dist/assemble-procedure.js +29 -0
- package/dist/assemble-procedure.js.map +1 -0
- package/dist/bound-call.d.ts +1 -1
- package/dist/bound-call.d.ts.map +1 -1
- package/dist/bound-call.js.map +1 -1
- package/dist/client.d.ts +4 -2
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +4 -2
- package/dist/client.js.map +1 -1
- package/dist/compatibility.d.ts +16 -0
- package/dist/compatibility.d.ts.map +1 -0
- package/dist/compatibility.js +4 -0
- package/dist/compatibility.js.map +1 -0
- package/dist/create-fn.d.ts +30 -34
- package/dist/create-fn.d.ts.map +1 -1
- package/dist/create-fn.js +177 -121
- package/dist/create-fn.js.map +1 -1
- package/dist/expo.d.ts +11 -25
- package/dist/expo.d.ts.map +1 -1
- package/dist/expo.js +25 -30
- package/dist/expo.js.map +1 -1
- package/dist/hono.d.ts +12 -4
- package/dist/hono.d.ts.map +1 -1
- package/dist/hono.js +29 -12
- package/dist/hono.js.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/dist/json-schema.d.ts +2 -0
- package/dist/json-schema.d.ts.map +1 -1
- package/dist/json-schema.js +11 -0
- package/dist/json-schema.js.map +1 -1
- package/dist/live/codec.d.ts +6 -1
- package/dist/live/codec.d.ts.map +1 -1
- package/dist/live/codec.js +14 -3
- package/dist/live/codec.js.map +1 -1
- package/dist/live/fn-live.d.ts +63 -22
- package/dist/live/fn-live.d.ts.map +1 -1
- package/dist/live/fn-live.js +98 -16
- package/dist/live/fn-live.js.map +1 -1
- package/dist/live/index.d.ts +1 -1
- package/dist/live/index.d.ts.map +1 -1
- package/dist/live/index.js.map +1 -1
- package/dist/live/ioredis.d.ts +4 -1
- package/dist/live/ioredis.d.ts.map +1 -1
- package/dist/live/ioredis.js +21 -2
- package/dist/live/ioredis.js.map +1 -1
- package/dist/live/lifecycle.d.ts +7 -0
- package/dist/live/lifecycle.d.ts.map +1 -0
- package/dist/live/lifecycle.js +36 -0
- package/dist/live/lifecycle.js.map +1 -0
- package/dist/live/memory.d.ts.map +1 -1
- package/dist/live/memory.js +4 -0
- package/dist/live/memory.js.map +1 -1
- package/dist/live/pub-sub.d.ts +76 -12
- package/dist/live/pub-sub.d.ts.map +1 -1
- package/dist/live/pub-sub.js +429 -125
- package/dist/live/pub-sub.js.map +1 -1
- package/dist/live/redis-bun.d.ts +1 -1
- package/dist/live/redis-bun.d.ts.map +1 -1
- package/dist/live/redis-bun.js +3 -5
- package/dist/live/redis-bun.js.map +1 -1
- package/dist/live/redis.d.ts +2 -2
- package/dist/live/redis.d.ts.map +1 -1
- package/dist/live/redis.js +36 -9
- package/dist/live/redis.js.map +1 -1
- package/dist/live/transport.d.ts +5 -1
- package/dist/live/transport.d.ts.map +1 -1
- package/dist/live/transport.js.map +1 -1
- package/dist/logger.d.ts +2 -0
- package/dist/logger.d.ts.map +1 -1
- package/dist/logger.js +21 -0
- package/dist/logger.js.map +1 -1
- package/dist/mastra.d.ts.map +1 -1
- package/dist/mastra.js +16 -7
- package/dist/mastra.js.map +1 -1
- package/dist/mcp/sdk.d.ts +20 -0
- package/dist/mcp/sdk.d.ts.map +1 -0
- package/dist/mcp/sdk.js +82 -0
- package/dist/mcp/sdk.js.map +1 -0
- package/dist/mcp.d.ts +3 -2
- package/dist/mcp.d.ts.map +1 -1
- package/dist/mcp.js +22 -7
- package/dist/mcp.js.map +1 -1
- package/dist/meta.d.ts +15 -7
- package/dist/meta.d.ts.map +1 -1
- package/dist/meta.js +9 -2
- package/dist/meta.js.map +1 -1
- package/dist/otel.d.ts.map +1 -1
- package/dist/otel.js +77 -6
- package/dist/otel.js.map +1 -1
- package/dist/route-options.d.ts +22 -0
- package/dist/route-options.d.ts.map +1 -0
- package/dist/route-options.js +67 -0
- package/dist/route-options.js.map +1 -0
- package/dist/router.d.ts +5 -1
- package/dist/router.d.ts.map +1 -1
- package/dist/router.js +22 -0
- package/dist/router.js.map +1 -1
- package/dist/timing.d.ts +8 -0
- package/dist/timing.d.ts.map +1 -0
- package/dist/timing.js +4 -0
- package/dist/timing.js.map +1 -0
- package/dist/types.d.ts +86 -41
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +6 -2
- package/dist/types.js.map +1 -1
- package/package.json +15 -3
- package/src/assemble-procedure.ts +42 -0
- package/src/bound-call.ts +4 -3
- package/src/client.ts +9 -2
- package/src/compatibility.ts +39 -0
- package/src/create-fn.ts +297 -183
- package/src/expo.ts +49 -44
- package/src/hono.ts +36 -17
- package/src/index.ts +6 -2
- package/src/json-schema.ts +16 -0
- package/src/live/codec.ts +22 -3
- package/src/live/fn-live.ts +244 -69
- package/src/live/index.ts +2 -0
- package/src/live/ioredis.ts +22 -2
- package/src/live/lifecycle.ts +44 -0
- package/src/live/memory.ts +4 -0
- package/src/live/pub-sub.ts +608 -166
- package/src/live/redis-bun.ts +7 -5
- package/src/live/redis.ts +37 -11
- package/src/live/transport.ts +4 -1
- package/src/logger.ts +20 -0
- package/src/mastra.ts +15 -7
- package/src/mcp/sdk.ts +118 -0
- package/src/mcp.ts +48 -20
- package/src/meta.ts +40 -24
- package/src/otel.ts +77 -10
- package/src/route-options.ts +100 -0
- package/src/router.ts +39 -1
- package/src/timing.ts +5 -0
- package/src/types.ts +204 -62
package/dist/otel.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"otel.js","sourceRoot":"","sources":["../src/otel.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n\tisAsyncIteratorObject,\n\tonStreamEnd,\n\ttype StreamScope\n} from './stream.js'\n\n/** Attribute values accepted by OpenTelemetry spans. */\nexport type AttributeValue = string | number | boolean\n\n/** The part of an OpenTelemetry `Span` this package uses. */\nexport interface SpanLike {\n\tsetAttribute(key: string, value: AttributeValue): unknown\n\tsetStatus(status: { code: number; message?: string }): unknown\n\trecordException(exception: Error): unknown\n\tend(): unknown\n}\n\ntype SpanOptionsLike = {\n\tkind?: number\n\tattributes?: Record<string, AttributeValue>\n}\n\ninterface TracerLike<TSpan> {\n\tstartActiveSpan<F extends (span: TSpan) => unknown>(\n\t\tname: string,\n\t\toptions: SpanOptionsLike,\n\t\tfn: F\n\t): ReturnType<F>\n\tstartSpan(name: string, options?: SpanOptionsLike): TSpan\n}\n\n/**\n * The part of `@opentelemetry/api` this package uses. Pass the module itself:\n * `import * as otel from '@opentelemetry/api'` then `createFn({ otel })`.\n * Without it no spans are created and handlers receive `span: undefined`.\n */\nexport interface OtelApiLike<TSpan extends SpanLike = SpanLike> {\n\ttrace: { getTracer(name: string): TracerLike<TSpan> }\n\tSpanStatusCode: { OK: number; ERROR: number }\n\tSpanKind: {\n\t\tINTERNAL: number\n\t\tSERVER: number\n\t\tPRODUCER: number\n\t}\n\t/** Restores a span's context for each step of a stream it returned. */\n\tcontext: {\n\t\tactive(): unknown\n\t\twith<T>(context: never, fn: () => T): T\n\t}\n}\n\n/** The span type of an OpenTelemetry API, or `SpanLike` when absent. */\nexport type SpanOf<TOtel> =\n\tTOtel extends OtelApiLike<infer TSpan> ? TSpan : SpanLike\n\n/** Called once when a span's work is done, before the span ends. */\nexport type OnSettled = (\n\tspan: SpanLike | undefined,\n\t...error: [] | [unknown]\n) => void\n\nexport type Tracing = {\n\t/**\n\t * Run `fn` inside an active span: OK when it resolves, ERROR when it throws,\n\t * ended either way. When `fn` resolves to a stream, the span stays open -\n\t * and active for each step of the stream - until the stream ends.\n\t * `onSettled` runs once at that point, before the span ends. Without\n\t * OpenTelemetry `span` is undefined and `onSettled` still runs.\n\t */\n\tinSpan<T>(\n\t\tname: string,\n\t\tkind: 'INTERNAL' | 'SERVER' | 'PRODUCER',\n\t\tfn: (span: SpanLike | undefined) => Promise<T>,\n\t\tonSettled?: OnSettled\n\t): Promise<T>\n\t/** Start a span that the caller ends with `end` (long-lived streams). */\n\tstartSpan(\n\t\tname: string,\n\t\tkind: 'SERVER',\n\t\tattributes: Record<string, AttributeValue>\n\t): SpanLike | undefined\n\t/** Set OK, or ERROR with `error`, and end the span. */\n\tend(span: SpanLike | undefined, error?: unknown): void\n}\n\nexport function createTracing(otel: OtelApiLike | undefined): Tracing {\n\tconst tracer = otel?.trace.getTracer('orpc-fn')\n\tconst end: Tracing['end'] = (span, ...error) => {\n\t\tif (!span || !otel) return\n\t\tif (error.length === 0) {\n\t\t\tspan.setStatus({ code: otel.SpanStatusCode.OK })\n\t\t} else {\n\t\t\tspan.setStatus({\n\t\t\t\tcode: otel.SpanStatusCode.ERROR,\n\t\t\t\tmessage: errorMessageOf(error[0])\n\t\t\t})\n\t\t\tif (error[0] instanceof Error) span.recordException(error[0])\n\t\t}\n\t\tspan.end()\n\t}\n\treturn {\n\t\tinSpan(name, kind, fn, onSettled) {\n\t\t\tconst settle = (span: SpanLike | undefined, ...error: [] | [unknown]) => {\n\t\t\t\ttry {\n\t\t\t\t\tonSettled?.(span, ...error)\n\t\t\t\t} finally {\n\t\t\t\t\tend(span, ...error)\n\t\t\t\t}\n\t\t\t}\n\t\t\tconst run = async (\n\t\t\t\tspan: SpanLike | undefined,\n\t\t\t\tscope?: StreamScope\n\t\t\t): Promise<Awaited<ReturnType<typeof fn>>> => {\n\t\t\t\tlet result: Awaited<ReturnType<typeof fn>>\n\t\t\t\ttry {\n\t\t\t\t\tresult = await fn(span)\n\t\t\t\t} catch (error) {\n\t\t\t\t\tsettle(span, error)\n\t\t\t\t\tthrow error\n\t\t\t\t}\n\t\t\t\tif (isAsyncIteratorObject(result)) {\n\t\t\t\t\treturn onStreamEnd(\n\t\t\t\t\t\tresult,\n\t\t\t\t\t\t(...error) => settle(span, ...error),\n\t\t\t\t\t\tscope\n\t\t\t\t\t) as typeof result\n\t\t\t\t}\n\t\t\t\tsettle(span)\n\t\t\t\treturn result\n\t\t\t}\n\t\t\tif (!tracer || !otel) return run(undefined)\n\t\t\treturn tracer.startActiveSpan(\n\t\t\t\tname,\n\t\t\t\t{ kind: otel.SpanKind[kind] },\n\t\t\t\t(span) => {\n\t\t\t\t\tconst active = otel.context.active()\n\t\t\t\t\treturn run(span, (step) => otel.context.with(active as never, step))\n\t\t\t\t}\n\t\t\t)\n\t\t},\n\t\tstartSpan(name, kind, attributes) {\n\t\t\tif (!tracer || !otel) return undefined\n\t\t\treturn tracer.startSpan(name, { kind: otel.SpanKind[kind], attributes })\n\t\t},\n\t\tend\n\t}\n}\n\nexport function errorMessageOf(error: unknown): string {\n\treturn error instanceof Error ? error.message : String(error)\n}\n"]}
|
|
1
|
+
{"version":3,"file":"otel.js","sourceRoot":"","sources":["../src/otel.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n\tisAsyncIteratorObject,\n\tonStreamEnd,\n\ttype StreamScope\n} from './stream.js'\n\n/** Attribute values accepted by OpenTelemetry spans. */\nexport type AttributeValue = string | number | boolean\n\n/** The part of an OpenTelemetry `Span` this package uses. */\nexport interface SpanLike {\n\tsetAttribute(key: string, value: AttributeValue): unknown\n\tsetStatus(status: { code: number; message?: string }): unknown\n\trecordException(exception: Error): unknown\n\tend(): unknown\n}\n\ntype SpanOptionsLike = {\n\tkind?: number\n\tattributes?: Record<string, AttributeValue>\n}\n\ninterface TracerLike<TSpan> {\n\tstartActiveSpan<F extends (span: TSpan) => unknown>(\n\t\tname: string,\n\t\toptions: SpanOptionsLike,\n\t\tfn: F\n\t): ReturnType<F>\n\tstartSpan(name: string, options?: SpanOptionsLike): TSpan\n}\n\n/**\n * The part of `@opentelemetry/api` this package uses. Pass the module itself:\n * `import * as otel from '@opentelemetry/api'` then `createFn({ otel })`.\n * Without it no spans are created and handlers receive `span: undefined`.\n */\nexport interface OtelApiLike<TSpan extends SpanLike = SpanLike> {\n\ttrace: { getTracer(name: string): TracerLike<TSpan> }\n\tSpanStatusCode: { OK: number; ERROR: number }\n\tSpanKind: {\n\t\tINTERNAL: number\n\t\tSERVER: number\n\t\tPRODUCER: number\n\t}\n\t/** Restores a span's context for each step of a stream it returned. */\n\tcontext: {\n\t\tactive(): unknown\n\t\twith<T>(context: never, fn: () => T): T\n\t}\n}\n\n/** The span type of an OpenTelemetry API, or `SpanLike` when absent. */\nexport type SpanOf<TOtel> =\n\tTOtel extends OtelApiLike<infer TSpan> ? TSpan : SpanLike\n\n/** Called once when a span's work is done, before the span ends. */\nexport type OnSettled = (\n\tspan: SpanLike | undefined,\n\t...error: [] | [unknown]\n) => void\n\nexport type Tracing = {\n\t/**\n\t * Run `fn` inside an active span: OK when it resolves, ERROR when it throws,\n\t * ended either way. When `fn` resolves to a stream, the span stays open -\n\t * and active for each step of the stream - until the stream ends.\n\t * `onSettled` runs once at that point, before the span ends. Without\n\t * OpenTelemetry `span` is undefined and `onSettled` still runs.\n\t */\n\tinSpan<T>(\n\t\tname: string,\n\t\tkind: 'INTERNAL' | 'SERVER' | 'PRODUCER',\n\t\tfn: (span: SpanLike | undefined) => Promise<T>,\n\t\tonSettled?: OnSettled\n\t): Promise<T>\n\t/** Start a span that the caller ends with `end` (long-lived streams). */\n\tstartSpan(\n\t\tname: string,\n\t\tkind: 'SERVER',\n\t\tattributes: Record<string, AttributeValue>\n\t): SpanLike | undefined\n\t/** Set OK, or ERROR with `error`, and end the span. */\n\tend(span: SpanLike | undefined, error?: unknown): void\n}\n\nexport function createTracing(otel: OtelApiLike | undefined): Tracing {\n\tlet tracer: TracerLike<SpanLike> | undefined\n\ttry {\n\t\ttracer = otel?.trace.getTracer('orpc-fn')\n\t} catch {\n\t\t/* Missing telemetry cannot prevent execution. */\n\t}\n\tconst end: Tracing['end'] = (span, ...error) => {\n\t\tif (!span || !otel) return\n\t\tspan = protectSpan(span)\n\t\tif (error.length === 0) {\n\t\t\tspan.setStatus({ code: otel.SpanStatusCode.OK })\n\t\t} else {\n\t\t\tspan.setStatus({\n\t\t\t\tcode: otel.SpanStatusCode.ERROR,\n\t\t\t\tmessage: errorMessageOf(error[0])\n\t\t\t})\n\t\t\tif (error[0] instanceof Error) span.recordException(error[0])\n\t\t}\n\t\tspan.end()\n\t}\n\treturn {\n\t\tinSpan(name, kind, fn, onSettled) {\n\t\t\tconst settle = (span: SpanLike | undefined, ...error: [] | [unknown]) => {\n\t\t\t\ttry {\n\t\t\t\t\tonSettled?.(span, ...error)\n\t\t\t\t} catch {\n\t\t\t\t\t/* Telemetry callbacks cannot replace the original result. */\n\t\t\t\t} finally {\n\t\t\t\t\tend(span, ...error)\n\t\t\t\t}\n\t\t\t}\n\t\t\tconst run = async (\n\t\t\t\tspan: SpanLike | undefined,\n\t\t\t\tscope?: StreamScope\n\t\t\t): Promise<Awaited<ReturnType<typeof fn>>> => {\n\t\t\t\tspan = span ? protectSpan(span) : undefined\n\t\t\t\tlet result: Awaited<ReturnType<typeof fn>>\n\t\t\t\ttry {\n\t\t\t\t\tresult = await fn(span)\n\t\t\t\t} catch (error) {\n\t\t\t\t\tsettle(span, error)\n\t\t\t\t\tthrow error\n\t\t\t\t}\n\t\t\t\tif (isAsyncIteratorObject(result)) {\n\t\t\t\t\treturn onStreamEnd(\n\t\t\t\t\t\tresult,\n\t\t\t\t\t\t(...error) => settle(span, ...error),\n\t\t\t\t\t\tscope\n\t\t\t\t\t) as typeof result\n\t\t\t\t}\n\t\t\t\tsettle(span)\n\t\t\t\treturn result\n\t\t\t}\n\t\t\tif (!tracer || !otel) return run(undefined)\n\t\t\tlet started: Promise<Awaited<ReturnType<typeof fn>>> | undefined\n\t\t\ttry {\n\t\t\t\treturn tracer.startActiveSpan(\n\t\t\t\t\tname,\n\t\t\t\t\t{ kind: otel.SpanKind[kind] },\n\t\t\t\t\t(span) => {\n\t\t\t\t\t\tlet active: unknown\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tactive = otel.context.active()\n\t\t\t\t\t\t} catch {\n\t\t\t\t\t\t\t/* Fall back to the span without scope restoration. */\n\t\t\t\t\t\t}\n\t\t\t\t\t\tstarted = run(span, (step) => {\n\t\t\t\t\t\t\tlet completed: { value: ReturnType<typeof step> } | undefined\n\t\t\t\t\t\t\tlet failed: { error: unknown } | undefined\n\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\treturn otel.context.with(active as never, () => {\n\t\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\t\tconst value = step()\n\t\t\t\t\t\t\t\t\t\tcompleted = { value }\n\t\t\t\t\t\t\t\t\t\treturn value\n\t\t\t\t\t\t\t\t\t} catch (error) {\n\t\t\t\t\t\t\t\t\t\tfailed = { error }\n\t\t\t\t\t\t\t\t\t\tthrow error\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t} catch {\n\t\t\t\t\t\t\t\tif (completed) return completed.value\n\t\t\t\t\t\t\t\tif (failed) throw failed.error\n\t\t\t\t\t\t\t\treturn step()\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t})\n\t\t\t\t\t\treturn started\n\t\t\t\t\t}\n\t\t\t\t)\n\t\t\t} catch {\n\t\t\t\treturn started ?? run(undefined)\n\t\t\t}\n\t\t},\n\t\tstartSpan(name, kind, attributes) {\n\t\t\tif (!tracer || !otel) return undefined\n\t\t\ttry {\n\t\t\t\treturn protectSpan(\n\t\t\t\t\ttracer.startSpan(name, { kind: otel.SpanKind[kind], attributes })\n\t\t\t\t)\n\t\t\t} catch {\n\t\t\t\treturn undefined\n\t\t\t}\n\t\t},\n\t\tend\n\t}\n}\n\nexport function errorMessageOf(error: unknown): string {\n\treturn error instanceof Error ? error.message : String(error)\n}\n\nfunction protectSpan<T extends SpanLike>(span: T): T {\n\treturn new Proxy(span, {\n\t\tget(target, key) {\n\t\t\tconst value = Reflect.get(target, key, target)\n\t\t\tif (typeof value !== 'function') return value\n\t\t\tif (\n\t\t\t\t['setAttribute', 'setStatus', 'recordException', 'end'].includes(\n\t\t\t\t\tString(key)\n\t\t\t\t)\n\t\t\t)\n\t\t\t\treturn (...args: unknown[]) => {\n\t\t\t\t\ttry {\n\t\t\t\t\t\treturn value.apply(target, args)\n\t\t\t\t\t} catch {\n\t\t\t\t\t\t/* Ignore exporter failures. */\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\treturn value.bind(target)\n\t\t}\n\t})\n}\n"]}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { type AnySchema, type ErrorMap } from '@orpc/contract';
|
|
2
|
+
type Resolver = (params: {
|
|
3
|
+
input: unknown;
|
|
4
|
+
context: unknown;
|
|
5
|
+
signal: AbortSignal | undefined;
|
|
6
|
+
}) => unknown;
|
|
7
|
+
/** Runtime validation for JavaScript callers and spread route options. */
|
|
8
|
+
export declare function normalizeRoute(options: Record<string, unknown>, isGuard: (key: string) => boolean): {
|
|
9
|
+
handler: (params: Record<PropertyKey, unknown>) => unknown;
|
|
10
|
+
input: AnySchema | undefined;
|
|
11
|
+
output: AnySchema | undefined;
|
|
12
|
+
name: string;
|
|
13
|
+
procedure: string | undefined;
|
|
14
|
+
meta: Record<string, unknown>;
|
|
15
|
+
stream: boolean;
|
|
16
|
+
errors: ErrorMap | undefined;
|
|
17
|
+
guardResolvers: Record<string, Resolver>;
|
|
18
|
+
route: Record<string, unknown>;
|
|
19
|
+
guardChecks: [string, unknown][];
|
|
20
|
+
};
|
|
21
|
+
export {};
|
|
22
|
+
//# sourceMappingURL=route-options.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"route-options.d.ts","sourceRoot":"","sources":["../src/route-options.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,KAAK,SAAS,EACd,KAAK,QAAQ,EAEb,MAAM,gBAAgB,CAAA;AAGvB,KAAK,QAAQ,GAAG,CAAC,MAAM,EAAE;IACxB,KAAK,EAAE,OAAO,CAAA;IACd,OAAO,EAAE,OAAO,CAAA;IAChB,MAAM,EAAE,WAAW,GAAG,SAAS,CAAA;CAC/B,KAAK,OAAO,CAAA;AAab,0EAA0E;AAC1E,wBAAgB,cAAc,CAC7B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChC,OAAO,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO;aA4DZ,CAAC,MAAM,EAAE,MAAM,CAAC,WAAW,EAAE,OAAO,CAAC,KAAK,OAAO;;;;;UAKpD,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;;YAEtB,QAAQ,GAAG,SAAS;oBACJ,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC;;;EAI3D"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import { getEventIteratorSchemaDetails } from '@orpc/contract';
|
|
2
|
+
import { ROUTE_OPTION_KEYS } from './types.js';
|
|
3
|
+
function schemaOption(schema, name) {
|
|
4
|
+
if (schema === undefined)
|
|
5
|
+
return undefined;
|
|
6
|
+
if (typeof schema !== 'object' ||
|
|
7
|
+
schema === null ||
|
|
8
|
+
!('~standard' in schema) ||
|
|
9
|
+
typeof schema['~standard']?.validate !== 'function')
|
|
10
|
+
throw new TypeError(`orpc-fn: ${name} must be a Standard Schema`);
|
|
11
|
+
return schema;
|
|
12
|
+
}
|
|
13
|
+
/** Runtime validation for JavaScript callers and spread route options. */
|
|
14
|
+
export function normalizeRoute(options, isGuard) {
|
|
15
|
+
const { handler, input: rawInput, output: rawOutput, name, procedure, meta: appMeta = {}, stream, errors, guardResolvers = {}, ...rest } = options;
|
|
16
|
+
if (typeof name !== 'string' || !name || typeof handler !== 'function')
|
|
17
|
+
throw new TypeError('orpc-fn: routes require a name and handler');
|
|
18
|
+
if (procedure !== undefined && typeof procedure !== 'string')
|
|
19
|
+
throw new TypeError('orpc-fn: procedure must be a configured key');
|
|
20
|
+
if (typeof appMeta !== 'object' || appMeta === null || Array.isArray(appMeta))
|
|
21
|
+
throw new TypeError('orpc-fn: meta must be an object');
|
|
22
|
+
if (stream !== undefined && typeof stream !== 'boolean')
|
|
23
|
+
throw new TypeError('orpc-fn: stream must be boolean');
|
|
24
|
+
if (typeof guardResolvers !== 'object' ||
|
|
25
|
+
guardResolvers === null ||
|
|
26
|
+
Array.isArray(guardResolvers))
|
|
27
|
+
throw new TypeError('orpc-fn: guardResolvers must be an object');
|
|
28
|
+
const input = schemaOption(rawInput, 'input');
|
|
29
|
+
const output = schemaOption(rawOutput, 'output');
|
|
30
|
+
const route = {};
|
|
31
|
+
const guardChecks = [];
|
|
32
|
+
for (const [option, value] of Object.entries(rest)) {
|
|
33
|
+
if (ROUTE_OPTION_KEYS.includes(option))
|
|
34
|
+
route[option] = value;
|
|
35
|
+
else if (isGuard(option)) {
|
|
36
|
+
if (value !== undefined)
|
|
37
|
+
guardChecks.push([option, value]);
|
|
38
|
+
}
|
|
39
|
+
else
|
|
40
|
+
throw new TypeError(`orpc-fn: unknown route option "${option}"; put application metadata in meta`);
|
|
41
|
+
}
|
|
42
|
+
const iterator = getEventIteratorSchemaDetails(output) !== undefined;
|
|
43
|
+
if (stream === false && iterator)
|
|
44
|
+
throw new TypeError('orpc-fn: an event iterator schema cannot declare stream: false');
|
|
45
|
+
for (const [guard, resolver] of Object.entries(guardResolvers)) {
|
|
46
|
+
if (!isGuard(guard))
|
|
47
|
+
throw new TypeError(`orpc-fn: unknown guard resolver "${guard}"`);
|
|
48
|
+
if (typeof resolver !== 'function')
|
|
49
|
+
throw new TypeError(`orpc-fn: guard resolver "${guard}" must be a function`);
|
|
50
|
+
if (guardChecks.some(([key]) => key === guard))
|
|
51
|
+
throw new TypeError(`orpc-fn: guard "${guard}" has both a value and resolver`);
|
|
52
|
+
}
|
|
53
|
+
return {
|
|
54
|
+
handler: handler,
|
|
55
|
+
input,
|
|
56
|
+
output,
|
|
57
|
+
name,
|
|
58
|
+
procedure,
|
|
59
|
+
meta: appMeta,
|
|
60
|
+
stream: stream === true || iterator,
|
|
61
|
+
errors: errors,
|
|
62
|
+
guardResolvers: guardResolvers,
|
|
63
|
+
route,
|
|
64
|
+
guardChecks
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
//# sourceMappingURL=route-options.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"route-options.js","sourceRoot":"","sources":["../src/route-options.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n\ttype AnySchema,\n\ttype ErrorMap,\n\tgetEventIteratorSchemaDetails\n} from '@orpc/contract'\nimport { ROUTE_OPTION_KEYS } from './types.js'\n\ntype Resolver = (params: {\n\tinput: unknown\n\tcontext: unknown\n\tsignal: AbortSignal | undefined\n}) => unknown\nfunction schemaOption(schema: unknown, name: string): AnySchema | undefined {\n\tif (schema === undefined) return undefined\n\tif (\n\t\ttypeof schema !== 'object' ||\n\t\tschema === null ||\n\t\t!('~standard' in schema) ||\n\t\ttypeof (schema as AnySchema)['~standard']?.validate !== 'function'\n\t)\n\t\tthrow new TypeError(`orpc-fn: ${name} must be a Standard Schema`)\n\treturn schema as AnySchema\n}\n\n/** Runtime validation for JavaScript callers and spread route options. */\nexport function normalizeRoute(\n\toptions: Record<string, unknown>,\n\tisGuard: (key: string) => boolean\n) {\n\tconst {\n\t\thandler,\n\t\tinput: rawInput,\n\t\toutput: rawOutput,\n\t\tname,\n\t\tprocedure,\n\t\tmeta: appMeta = {},\n\t\tstream,\n\t\terrors,\n\t\tguardResolvers = {},\n\t\t...rest\n\t} = options\n\tif (typeof name !== 'string' || !name || typeof handler !== 'function')\n\t\tthrow new TypeError('orpc-fn: routes require a name and handler')\n\tif (procedure !== undefined && typeof procedure !== 'string')\n\t\tthrow new TypeError('orpc-fn: procedure must be a configured key')\n\tif (typeof appMeta !== 'object' || appMeta === null || Array.isArray(appMeta))\n\t\tthrow new TypeError('orpc-fn: meta must be an object')\n\tif (stream !== undefined && typeof stream !== 'boolean')\n\t\tthrow new TypeError('orpc-fn: stream must be boolean')\n\tif (\n\t\ttypeof guardResolvers !== 'object' ||\n\t\tguardResolvers === null ||\n\t\tArray.isArray(guardResolvers)\n\t)\n\t\tthrow new TypeError('orpc-fn: guardResolvers must be an object')\n\tconst input = schemaOption(rawInput, 'input')\n\tconst output = schemaOption(rawOutput, 'output')\n\tconst route: Record<string, unknown> = {}\n\tconst guardChecks: Array<[string, unknown]> = []\n\tfor (const [option, value] of Object.entries(rest)) {\n\t\tif ((ROUTE_OPTION_KEYS as readonly string[]).includes(option))\n\t\t\troute[option] = value\n\t\telse if (isGuard(option)) {\n\t\t\tif (value !== undefined) guardChecks.push([option, value])\n\t\t} else\n\t\t\tthrow new TypeError(\n\t\t\t\t`orpc-fn: unknown route option \"${option}\"; put application metadata in meta`\n\t\t\t)\n\t}\n\tconst iterator = getEventIteratorSchemaDetails(output) !== undefined\n\tif (stream === false && iterator)\n\t\tthrow new TypeError(\n\t\t\t'orpc-fn: an event iterator schema cannot declare stream: false'\n\t\t)\n\tfor (const [guard, resolver] of Object.entries(guardResolvers)) {\n\t\tif (!isGuard(guard))\n\t\t\tthrow new TypeError(`orpc-fn: unknown guard resolver \"${guard}\"`)\n\t\tif (typeof resolver !== 'function')\n\t\t\tthrow new TypeError(\n\t\t\t\t`orpc-fn: guard resolver \"${guard}\" must be a function`\n\t\t\t)\n\t\tif (guardChecks.some(([key]) => key === guard))\n\t\t\tthrow new TypeError(\n\t\t\t\t`orpc-fn: guard \"${guard}\" has both a value and resolver`\n\t\t\t)\n\t}\n\treturn {\n\t\thandler: handler as (params: Record<PropertyKey, unknown>) => unknown,\n\t\tinput,\n\t\toutput,\n\t\tname,\n\t\tprocedure,\n\t\tmeta: appMeta as Record<string, unknown>,\n\t\tstream: stream === true || iterator,\n\t\terrors: errors as ErrorMap | undefined,\n\t\tguardResolvers: guardResolvers as Record<string, Resolver>,\n\t\troute,\n\t\tguardChecks\n\t}\n}\n"]}
|
package/dist/router.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type
|
|
1
|
+
import { type AnyRouter } from '@orpc/server';
|
|
2
2
|
/**
|
|
3
3
|
* Creates a router object from routes or nested routers.
|
|
4
4
|
* Simply returns the routes as a const object for type inference.
|
|
@@ -10,4 +10,8 @@ import type { AnyRouter } from '@orpc/server';
|
|
|
10
10
|
* ```
|
|
11
11
|
*/
|
|
12
12
|
export declare function createRouter<T extends AnyRouter>(routes: T): Readonly<T>;
|
|
13
|
+
/** Serialize these paths to a frontend module; this helper belongs on the server. */
|
|
14
|
+
export declare function createStreamManifest(router: AnyRouter): readonly (readonly string[])[];
|
|
15
|
+
/** Resolve lazy routers before generating the same serializable path manifest. */
|
|
16
|
+
export declare function createStreamManifestAsync(router: AnyRouter): Promise<readonly (readonly string[])[]>;
|
|
13
17
|
//# sourceMappingURL=router.d.ts.map
|
package/dist/router.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"router.d.ts","sourceRoot":"","sources":["../src/router.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"router.d.ts","sourceRoot":"","sources":["../src/router.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,KAAK,SAAS,EAId,MAAM,cAAc,CAAA;AAGrB;;;;;;;;;GASG;AACH,wBAAgB,YAAY,CAAC,CAAC,SAAS,SAAS,EAAE,MAAM,EAAE,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAExE;AAED,qFAAqF;AACrF,wBAAgB,oBAAoB,CACnC,MAAM,EAAE,SAAS,GACf,SAAS,CAAC,SAAS,MAAM,EAAE,CAAC,EAAE,CAahC;AAED,kFAAkF;AAClF,wBAAsB,yBAAyB,CAC9C,MAAM,EAAE,SAAS,GACf,OAAO,CAAC,SAAS,CAAC,SAAS,MAAM,EAAE,CAAC,EAAE,CAAC,CASzC"}
|
package/dist/router.js
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import { resolveContractProcedures, traverseContractProcedures } from '@orpc/server';
|
|
2
|
+
import { readFnMeta } from './meta.js';
|
|
1
3
|
/**
|
|
2
4
|
* Creates a router object from routes or nested routers.
|
|
3
5
|
* Simply returns the routes as a const object for type inference.
|
|
@@ -11,4 +13,24 @@
|
|
|
11
13
|
export function createRouter(routes) {
|
|
12
14
|
return routes;
|
|
13
15
|
}
|
|
16
|
+
/** Serialize these paths to a frontend module; this helper belongs on the server. */
|
|
17
|
+
export function createStreamManifest(router) {
|
|
18
|
+
const paths = [];
|
|
19
|
+
const unresolved = traverseContractProcedures({ router, path: [] }, ({ contract, path }) => {
|
|
20
|
+
if (readFnMeta(contract).stream)
|
|
21
|
+
paths.push([...path]);
|
|
22
|
+
});
|
|
23
|
+
if (unresolved.length)
|
|
24
|
+
throw new TypeError('orpc-fn: lazy routers require createStreamManifestAsync');
|
|
25
|
+
return paths;
|
|
26
|
+
}
|
|
27
|
+
/** Resolve lazy routers before generating the same serializable path manifest. */
|
|
28
|
+
export async function createStreamManifestAsync(router) {
|
|
29
|
+
const paths = [];
|
|
30
|
+
await resolveContractProcedures({ router, path: [] }, ({ contract, path }) => {
|
|
31
|
+
if (readFnMeta(contract).stream)
|
|
32
|
+
paths.push([...path]);
|
|
33
|
+
});
|
|
34
|
+
return paths;
|
|
35
|
+
}
|
|
14
36
|
//# sourceMappingURL=router.js.map
|
package/dist/router.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"router.js","sourceRoot":"","sources":["../src/router.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"router.js","sourceRoot":"","sources":["../src/router.ts"],"names":[],"mappings":"AAAA,OAAO,EAGN,yBAAyB,EACzB,0BAA0B,EAC1B,MAAM,cAAc,CAAA;AACrB,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAA;AAEtC;;;;;;;;;GASG;AACH,MAAM,UAAU,YAAY,CAAsB,MAAS;IAC1D,OAAO,MAAM,CAAA;AACd,CAAC;AAED,qFAAqF;AACrF,MAAM,UAAU,oBAAoB,CACnC,MAAiB;IAEjB,MAAM,KAAK,GAAe,EAAE,CAAA;IAC5B,MAAM,UAAU,GAAG,0BAA0B,CAC5C,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,EACpB,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,EAAE;QACtB,IAAI,UAAU,CAAC,QAAwB,CAAC,CAAC,MAAM;YAAE,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAA;IACvE,CAAC,CACD,CAAA;IACD,IAAI,UAAU,CAAC,MAAM;QACpB,MAAM,IAAI,SAAS,CAClB,yDAAyD,CACzD,CAAA;IACF,OAAO,KAAK,CAAA;AACb,CAAC;AAED,kFAAkF;AAClF,MAAM,CAAC,KAAK,UAAU,yBAAyB,CAC9C,MAAiB;IAEjB,MAAM,KAAK,GAAe,EAAE,CAAA;IAC5B,MAAM,yBAAyB,CAC9B,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,EACpB,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,EAAE;QACtB,IAAI,UAAU,CAAC,QAAwB,CAAC,CAAC,MAAM;YAAE,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAA;IACvE,CAAC,CACD,CAAA;IACD,OAAO,KAAK,CAAA;AACb,CAAC","sourcesContent":["import {\n\ttype AnyRouter,\n\ttype AnyProcedure,\n\tresolveContractProcedures,\n\ttraverseContractProcedures\n} from '@orpc/server'\nimport { readFnMeta } from './meta.js'\n\n/**\n * Creates a router object from routes or nested routers.\n * Simply returns the routes as a const object for type inference.\n *\n * @example\n * ```ts\n * const items = createRouter({ getItem, updateItem })\n * export const api = createRouter({ metabase, items })\n * ```\n */\nexport function createRouter<T extends AnyRouter>(routes: T): Readonly<T> {\n\treturn routes\n}\n\n/** Serialize these paths to a frontend module; this helper belongs on the server. */\nexport function createStreamManifest(\n\trouter: AnyRouter\n): readonly (readonly string[])[] {\n\tconst paths: string[][] = []\n\tconst unresolved = traverseContractProcedures(\n\t\t{ router, path: [] },\n\t\t({ contract, path }) => {\n\t\t\tif (readFnMeta(contract as AnyProcedure).stream) paths.push([...path])\n\t\t}\n\t)\n\tif (unresolved.length)\n\t\tthrow new TypeError(\n\t\t\t'orpc-fn: lazy routers require createStreamManifestAsync'\n\t\t)\n\treturn paths\n}\n\n/** Resolve lazy routers before generating the same serializable path manifest. */\nexport async function createStreamManifestAsync(\n\trouter: AnyRouter\n): Promise<readonly (readonly string[])[]> {\n\tconst paths: string[][] = []\n\tawait resolveContractProcedures(\n\t\t{ router, path: [] },\n\t\t({ contract, path }) => {\n\t\t\tif (readFnMeta(contract as AnyProcedure).stream) paths.push([...path])\n\t\t}\n\t)\n\treturn paths\n}\n"]}
|
package/dist/timing.d.ts
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/** Internal bridge shared by the execution middleware and HTTP adapters. */
|
|
2
|
+
export declare const REQUEST_TIMING: unique symbol;
|
|
3
|
+
export type InvocationTiming = {
|
|
4
|
+
procedureMs: number;
|
|
5
|
+
calls: number;
|
|
6
|
+
};
|
|
7
|
+
export declare const RAW_INPUT: unique symbol;
|
|
8
|
+
//# sourceMappingURL=timing.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"timing.d.ts","sourceRoot":"","sources":["../src/timing.ts"],"names":[],"mappings":"AAAA,4EAA4E;AAC5E,eAAO,MAAM,cAAc,eAAkC,CAAA;AAC7D,MAAM,MAAM,gBAAgB,GAAG;IAAE,WAAW,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAA;AAErE,eAAO,MAAM,SAAS,eAA6B,CAAA"}
|
package/dist/timing.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"timing.js","sourceRoot":"","sources":["../src/timing.ts"],"names":[],"mappings":"AAAA,4EAA4E;AAC5E,MAAM,CAAC,MAAM,cAAc,GAAG,MAAM,CAAC,uBAAuB,CAAC,CAAA;AAG7D,MAAM,CAAC,MAAM,SAAS,GAAG,MAAM,CAAC,kBAAkB,CAAC,CAAA","sourcesContent":["/** Internal bridge shared by the execution middleware and HTTP adapters. */\nexport const REQUEST_TIMING = Symbol('orpc-fn.requestTiming')\nexport type InvocationTiming = { procedureMs: number; calls: number }\n\nexport const RAW_INPUT = Symbol('orpc-fn.rawInput')\n"]}
|
package/dist/types.d.ts
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
|
-
import type { AnySchema, ErrorMap, InferSchemaInput, InferSchemaOutput,
|
|
1
|
+
import type { AnySchema, ErrorMap, InferSchemaInput, InferSchemaOutput, MergedErrorMap, Schema } from '@orpc/contract';
|
|
2
2
|
import type { AnyProcedure, DecoratedProcedure, Procedure, Route } from '@orpc/server';
|
|
3
|
-
import type {
|
|
3
|
+
import type { createORPCErrorConstructorMap } from '@orpc/server';
|
|
4
|
+
import type { StoredFnMeta } from './meta.js';
|
|
5
|
+
import type { NativeErrors, NativeMeta } from './compatibility.js';
|
|
4
6
|
import type { BoundCall } from './bound-call.js';
|
|
5
7
|
import type { FnLogger } from './logger.js';
|
|
6
8
|
import type { SpanLike } from './otel.js';
|
|
@@ -28,13 +30,13 @@ export type DistributiveOmit<T, K extends PropertyKey> = T extends unknown ? Omi
|
|
|
28
30
|
/** `fn()` options passed to oRPC's `.route()`; `RouteConfig` is derived from it. */
|
|
29
31
|
export declare const ROUTE_OPTION_KEYS: readonly ["path", "method", "summary", "description", "deprecated", "successStatus", "successDescription", "inputStructure", "outputStructure", "tags"];
|
|
30
32
|
/**
|
|
31
|
-
* `fn()` option names owned by the route itself. Guard
|
|
33
|
+
* `fn()` option names owned by the route itself. Guard keys must not
|
|
32
34
|
* reuse them: such an option would be read as the route option and the guard
|
|
33
35
|
* would never run.
|
|
34
36
|
*/
|
|
35
|
-
export declare const RESERVED_OPTION_KEYS: readonly ["path", "method", "summary", "description", "deprecated", "successStatus", "successDescription", "inputStructure", "outputStructure", "tags", "name", "procedure", "input", "output", "handler", "live", "operationId"];
|
|
37
|
+
export declare const RESERVED_OPTION_KEYS: readonly ["path", "method", "summary", "description", "deprecated", "successStatus", "successDescription", "inputStructure", "outputStructure", "tags", "name", "procedure", "input", "output", "handler", "live", "operationId", "meta", "stream", "errors", "guardResolvers"];
|
|
36
38
|
export type ReservedOptionKey = (typeof RESERVED_OPTION_KEYS)[number];
|
|
37
|
-
/** @internal Builds one route from a
|
|
39
|
+
/** @internal Builds one route from a selected native procedure builder. */
|
|
38
40
|
export type BuildProcedure = (options: {
|
|
39
41
|
name: string;
|
|
40
42
|
procedure: string | undefined;
|
|
@@ -42,10 +44,14 @@ export type BuildProcedure = (options: {
|
|
|
42
44
|
meta: Record<string, unknown>;
|
|
43
45
|
input?: AnySchema | undefined;
|
|
44
46
|
output?: AnySchema | undefined;
|
|
47
|
+
stream?: boolean;
|
|
48
|
+
errors?: ErrorMap;
|
|
45
49
|
handler: (options: {
|
|
46
50
|
input: unknown;
|
|
47
|
-
context: Record<string, unknown>;
|
|
51
|
+
context: Record<string | symbol, unknown>;
|
|
48
52
|
signal?: AbortSignal;
|
|
53
|
+
lastEventId?: string;
|
|
54
|
+
errors: ReturnType<typeof createORPCErrorConstructorMap>;
|
|
49
55
|
}) => unknown;
|
|
50
56
|
}) => AnyProcedure;
|
|
51
57
|
/** Turns every key of `T` found in `K` into a readable type error. */
|
|
@@ -56,11 +62,13 @@ export type RejectKeys<T, K extends PropertyKey, TMessage extends string> = {
|
|
|
56
62
|
* Handler extras must have known keys: an index signature would claim every
|
|
57
63
|
* handler param. Intersected into `createFn`'s options to reject it.
|
|
58
64
|
*/
|
|
59
|
-
export type FiniteExtras<T> = string extends keyof T ? {
|
|
65
|
+
export type FiniteExtras<T> = T extends unknown ? string extends keyof T ? {
|
|
60
66
|
extras: 'orpc-fn: extras need known keys, not an index signature';
|
|
61
67
|
} : number extends keyof T ? {
|
|
62
68
|
extras: 'orpc-fn: extras need known keys, not an index signature';
|
|
63
|
-
} : unknown
|
|
69
|
+
} : Extract<keyof T, 'input' | 'context' | 'call' | 'signal' | 'span' | 'logger' | 'errors' | 'lastEventId'> extends never ? unknown : {
|
|
70
|
+
extras: 'orpc-fn: extras cannot shadow handler parameters';
|
|
71
|
+
} : never;
|
|
64
72
|
type ProcedureOf<TBuilder> = TBuilder extends {
|
|
65
73
|
handler(handler: never): infer TProcedure;
|
|
66
74
|
} ? TProcedure : never;
|
|
@@ -68,16 +76,8 @@ type ProcedureOf<TBuilder> = TBuilder extends {
|
|
|
68
76
|
export type InitialContextOf<TBuilder> = ProcedureContext<ProcedureOf<TBuilder>>;
|
|
69
77
|
/** Context the handler sees, after the builder's middleware. */
|
|
70
78
|
export type CurrentContextOf<TBuilder> = ProcedureOf<TBuilder> extends Procedure<infer _TInitial, infer TContext, infer _TIn, infer _TOut, infer _TErrors, infer _TMeta> ? TContext : never;
|
|
71
|
-
type ErrorMapOf<TBuilder> = ProcedureOf<TBuilder
|
|
72
|
-
|
|
73
|
-
errorMap: infer T extends ErrorMap;
|
|
74
|
-
};
|
|
75
|
-
} ? T : ErrorMap;
|
|
76
|
-
type MetaOf<TBuilder> = ProcedureOf<TBuilder> extends {
|
|
77
|
-
'~orpc': {
|
|
78
|
-
meta: infer T extends Meta;
|
|
79
|
-
};
|
|
80
|
-
} ? T : Meta;
|
|
79
|
+
export type ErrorMapOf<TBuilder> = NativeErrors<ProcedureOf<TBuilder>>;
|
|
80
|
+
type MetaOf<TBuilder> = NativeMeta<ProcedureOf<TBuilder>>;
|
|
81
81
|
/**
|
|
82
82
|
* Everything `createFn` inferred from its options. Route types read from it;
|
|
83
83
|
* apps rarely spell it out.
|
|
@@ -86,6 +86,7 @@ export type FnDefinition = {
|
|
|
86
86
|
procedures: Record<string, BuilderLike>;
|
|
87
87
|
default: string;
|
|
88
88
|
extras: object;
|
|
89
|
+
extrasByProcedure?: Partial<Record<string, object>>;
|
|
89
90
|
guards: object;
|
|
90
91
|
meta: object;
|
|
91
92
|
tag: string;
|
|
@@ -114,11 +115,15 @@ export type GuardParams<TContext, TMeta> = {
|
|
|
114
115
|
* `fn({...})`; the guard runs only on routes that set it. Throw (usually an
|
|
115
116
|
* `ORPCError`) to refuse the call.
|
|
116
117
|
*/
|
|
117
|
-
export type Guard<TValue, TParams> = (value: TValue, params: TParams) =>
|
|
118
|
+
export type Guard<TValue, TParams> = (value: TValue, params: TParams) => MaybePromise<void | boolean>;
|
|
118
119
|
export type GuardOptions<TGuards> = {
|
|
119
120
|
[K in keyof TGuards]?: TGuards[K] extends (value: infer TValue, params: never) => unknown ? TValue : never;
|
|
120
121
|
};
|
|
121
|
-
|
|
122
|
+
/** Match object spread: scoped extras replace shared keys, preserving unions. */
|
|
123
|
+
type MergeExtras<TShared, TScoped> = TShared extends unknown ? TScoped extends unknown ? Omit<TShared, keyof TScoped> & TScoped : never : never;
|
|
124
|
+
export type HandlerParams<TDef extends FnDefinition, TInput, TKey extends ProcedureKey<TDef>, TErrors extends ErrorMap = Record<never, never>> = DistributiveOmit<MergeExtras<TDef['extras'], TDef extends {
|
|
125
|
+
extrasByProcedure: infer E;
|
|
126
|
+
} ? TKey extends keyof E ? E[TKey] : object : object>, 'input' | 'context' | 'call' | 'signal' | 'span' | 'logger' | 'errors' | 'lastEventId'> & {
|
|
122
127
|
input: TInput;
|
|
123
128
|
context: FnContext<TDef, TKey>;
|
|
124
129
|
/** Calls another procedure with this context and signal, in a child span. */
|
|
@@ -128,6 +133,8 @@ export type HandlerParams<TDef extends FnDefinition, TInput, TKey extends Proced
|
|
|
128
133
|
/** Active OpenTelemetry span, undefined when `createFn({ otel })` is not set. */
|
|
129
134
|
span: TDef['span'] | undefined;
|
|
130
135
|
logger: TDef['logger'];
|
|
136
|
+
lastEventId: string | undefined;
|
|
137
|
+
errors: ReturnType<typeof createORPCErrorConstructorMap<MergedErrorMap<ErrorMapOf<TDef['procedures'][TKey]>, TErrors>>>;
|
|
131
138
|
};
|
|
132
139
|
/** Route options shared by every `fn()` overload. */
|
|
133
140
|
export type RouteConfig<TTag extends string = string> = Pick<Route, Exclude<(typeof ROUTE_OPTION_KEYS)[number], 'tags'>> & {
|
|
@@ -135,7 +142,18 @@ export type RouteConfig<TTag extends string = string> = Pick<Route, Exclude<(typ
|
|
|
135
142
|
name: string;
|
|
136
143
|
tags?: TTag[];
|
|
137
144
|
};
|
|
138
|
-
export type FnRouteOptions<TDef extends FnDefinition, TKey extends ProcedureKey<TDef>> = RouteConfig<TDef['tag']> & GuardOptions<TDef['guards']> &
|
|
145
|
+
export type FnRouteOptions<TDef extends FnDefinition, TKey extends ProcedureKey<TDef>, TInput = unknown, TErrors extends ErrorMap = Record<never, never>> = RouteConfig<TDef['tag']> & GuardOptions<TDef['guards']> & {
|
|
146
|
+
meta?: TDef['meta'];
|
|
147
|
+
stream?: boolean;
|
|
148
|
+
errors?: TErrors;
|
|
149
|
+
guardResolvers?: {
|
|
150
|
+
[K in keyof TDef['guards']]?: (params: {
|
|
151
|
+
input: TInput;
|
|
152
|
+
context: FnContext<TDef, TKey>;
|
|
153
|
+
signal: AbortSignal | undefined;
|
|
154
|
+
}) => MaybePromise<GuardOptions<TDef['guards']>[K]>;
|
|
155
|
+
};
|
|
156
|
+
} & ProcedureOption<TDef, TKey>;
|
|
139
157
|
/**
|
|
140
158
|
* Which `createFn({ procedures })` builder a route uses. Optional when
|
|
141
159
|
* `createFn` has a `default`; required on every route when it has none.
|
|
@@ -145,40 +163,42 @@ export type ProcedureOption<TDef extends FnDefinition, TKey extends ProcedureKey
|
|
|
145
163
|
} : {
|
|
146
164
|
procedure?: TKey;
|
|
147
165
|
};
|
|
148
|
-
export type FnProcedure<TDef extends FnDefinition, TKey extends ProcedureKey<TDef>, TInputSchema extends Schema<unknown, unknown>, TOutputSchema extends Schema<unknown, unknown>> = DecoratedProcedure<InitialContextOf<TDef['procedures'][TKey]>, FnContext<TDef, TKey>, TInputSchema, TOutputSchema, ErrorMapOf<TDef['procedures'][TKey]>, MetaOf<TDef['procedures'][TKey]
|
|
149
|
-
|
|
150
|
-
|
|
166
|
+
export type FnProcedure<TDef extends FnDefinition, TKey extends ProcedureKey<TDef>, TInputSchema extends Schema<unknown, unknown>, TOutputSchema extends Schema<unknown, unknown>, TErrors extends ErrorMap = Record<never, never>> = DecoratedProcedure<InitialContextOf<TDef['procedures'][TKey]>, FnContext<TDef, TKey>, TInputSchema, TOutputSchema, MergedErrorMap<ErrorMapOf<TDef['procedures'][TKey]>, TErrors>, MetaOf<TDef['procedures'][TKey]> & {
|
|
167
|
+
'orpc-fn': StoredFnMeta<TDef['meta'], TKey>;
|
|
168
|
+
}>;
|
|
169
|
+
type InputOf<T> = [T] extends [AnySchema] ? InferSchemaOutput<T> : unknown;
|
|
170
|
+
type ReturnOf<TOut, TReturn> = [TOut] extends [AnySchema] ? InferSchemaInput<TOut> : TReturn;
|
|
151
171
|
/** `fn()`: four overloads for input/output schema × inferred. */
|
|
152
172
|
export interface Fn<TDef extends FnDefinition> {
|
|
153
|
-
<TInput extends
|
|
173
|
+
<TInput extends AnySchema, TOut extends AnySchema, TKey extends ProcedureKey<TDef> = TDef['default'], TErrors extends ErrorMap = Record<never, never>>(options: {
|
|
154
174
|
input: TInput;
|
|
155
175
|
output: TOut;
|
|
156
|
-
handler: (params: HandlerParams<TDef,
|
|
157
|
-
} & FnRouteOptions<TDef, TKey>): FnProcedure<TDef, TKey, TInput, TOut>;
|
|
158
|
-
<TInput extends
|
|
176
|
+
handler: (params: HandlerParams<TDef, InferSchemaOutput<TInput>, NoInfer<TKey>, TErrors>) => MaybePromise<InferSchemaInput<TOut>>;
|
|
177
|
+
} & FnRouteOptions<TDef, TKey, InferSchemaOutput<TInput>, TErrors>): FnProcedure<TDef, TKey, TInput, TOut, TErrors>;
|
|
178
|
+
<TInput extends AnySchema, TReturn, TKey extends ProcedureKey<TDef> = TDef['default'], TErrors extends ErrorMap = Record<never, never>>(options: {
|
|
159
179
|
input: TInput;
|
|
160
180
|
output?: undefined;
|
|
161
|
-
handler: (params: HandlerParams<TDef,
|
|
162
|
-
} & FnRouteOptions<TDef, TKey>): FnProcedure<TDef, TKey, TInput, Schema<TReturn, TReturn
|
|
163
|
-
<TOut extends
|
|
181
|
+
handler: (params: HandlerParams<TDef, InferSchemaOutput<TInput>, NoInfer<TKey>, TErrors>) => MaybePromise<TReturn>;
|
|
182
|
+
} & FnRouteOptions<TDef, TKey, InferSchemaOutput<TInput>, TErrors>): FnProcedure<TDef, TKey, TInput, Schema<TReturn, TReturn>, TErrors>;
|
|
183
|
+
<TOut extends AnySchema, TKey extends ProcedureKey<TDef> = TDef['default'], TErrors extends ErrorMap = Record<never, never>>(options: {
|
|
164
184
|
input?: undefined;
|
|
165
185
|
output: TOut;
|
|
166
|
-
handler: (params: HandlerParams<TDef, unknown, NoInfer<TKey
|
|
167
|
-
} & FnRouteOptions<TDef, TKey>): FnProcedure<TDef, TKey, Schema<unknown, unknown>, TOut>;
|
|
168
|
-
<TReturn, TKey extends ProcedureKey<TDef> = TDef['default']
|
|
186
|
+
handler: (params: HandlerParams<TDef, unknown, NoInfer<TKey>, TErrors>) => MaybePromise<InferSchemaInput<TOut>>;
|
|
187
|
+
} & FnRouteOptions<TDef, TKey, unknown, TErrors>): FnProcedure<TDef, TKey, Schema<unknown, unknown>, TOut, TErrors>;
|
|
188
|
+
<TReturn, TKey extends ProcedureKey<TDef> = TDef['default'], TErrors extends ErrorMap = Record<never, never>>(options: {
|
|
169
189
|
input?: undefined;
|
|
170
190
|
output?: undefined;
|
|
171
|
-
handler: (params: HandlerParams<TDef, unknown, NoInfer<TKey
|
|
172
|
-
} & FnRouteOptions<TDef, TKey>): FnProcedure<TDef, TKey, Schema<unknown, unknown>, Schema<TReturn, TReturn
|
|
173
|
-
<TReturn, TInput extends
|
|
191
|
+
handler: (params: HandlerParams<TDef, unknown, NoInfer<TKey>, TErrors>) => MaybePromise<TReturn>;
|
|
192
|
+
} & FnRouteOptions<TDef, TKey, unknown, TErrors>): FnProcedure<TDef, TKey, Schema<unknown, unknown>, Schema<TReturn, TReturn>, TErrors>;
|
|
193
|
+
<TReturn, TInput extends AnySchema | undefined = undefined, TOut extends AnySchema | undefined = undefined, TKey extends ProcedureKey<TDef> = TDef['default'], TErrors extends ErrorMap = Record<never, never>>(options: {
|
|
174
194
|
input?: TInput;
|
|
175
195
|
output?: TOut;
|
|
176
|
-
handler: (params: HandlerParams<TDef, InputOf<TInput>, NoInfer<TKey
|
|
177
|
-
} & FnRouteOptions<TDef, TKey>): FnProcedure<TDef, TKey, [
|
|
196
|
+
handler: (params: HandlerParams<TDef, InputOf<TInput>, NoInfer<TKey>, TErrors>) => MaybePromise<ReturnOf<TOut, TReturn>>;
|
|
197
|
+
} & FnRouteOptions<TDef, TKey, InputOf<TInput>, TErrors>): FnProcedure<TDef, TKey, [
|
|
178
198
|
TInput
|
|
179
|
-
] extends [
|
|
199
|
+
] extends [AnySchema] ? TInput : Schema<unknown, unknown>, [
|
|
180
200
|
TOut
|
|
181
|
-
] extends [
|
|
201
|
+
] extends [AnySchema] ? TOut : Schema<TReturn, TReturn>, TErrors>;
|
|
182
202
|
}
|
|
183
203
|
/** What `fn.completed` reports, and what `onCompleted` receives. */
|
|
184
204
|
export type FnCompletedEvent<TContext = unknown, TSpan = SpanLike> = {
|
|
@@ -186,11 +206,36 @@ export type FnCompletedEvent<TContext = unknown, TSpan = SpanLike> = {
|
|
|
186
206
|
procedure: string;
|
|
187
207
|
durationMs: number;
|
|
188
208
|
success: boolean;
|
|
209
|
+
/** False when authentication or input validation prevented handler execution. */
|
|
210
|
+
handlerStarted: boolean;
|
|
189
211
|
error: unknown;
|
|
190
212
|
input: unknown;
|
|
191
213
|
context: TContext;
|
|
192
214
|
span: TSpan | undefined;
|
|
193
215
|
meta: Record<string, unknown>;
|
|
194
216
|
};
|
|
217
|
+
/** Factory hooks retain the builder key/context relationship. */
|
|
218
|
+
export type ProcedureHookParams<TProcedures extends Record<string, BuilderLike>, TExtra = object> = {
|
|
219
|
+
[K in keyof TProcedures & string]: TExtra & {
|
|
220
|
+
procedure: K;
|
|
221
|
+
context: CurrentContextOf<TProcedures[K]>;
|
|
222
|
+
};
|
|
223
|
+
}[keyof TProcedures & string];
|
|
224
|
+
export type CompletedHookEvent<TProcedures extends Record<string, BuilderLike>, TSpan> = {
|
|
225
|
+
[K in keyof TProcedures & string]: Omit<FnCompletedEvent<unknown, TSpan>, 'context' | 'procedure' | 'handlerStarted'> & {
|
|
226
|
+
procedure: K;
|
|
227
|
+
} & ({
|
|
228
|
+
handlerStarted: true;
|
|
229
|
+
context: CurrentContextOf<TProcedures[K]>;
|
|
230
|
+
} | {
|
|
231
|
+
handlerStarted: false;
|
|
232
|
+
context: InitialContextOf<TProcedures[K]>;
|
|
233
|
+
});
|
|
234
|
+
}[keyof TProcedures & string];
|
|
235
|
+
export type FiniteScopedExtras<T> = {
|
|
236
|
+
[K in keyof T]: string extends keyof T[K] ? K : number extends keyof T[K] ? K : Extract<keyof T[K], 'input' | 'context' | 'call' | 'signal' | 'span' | 'logger' | 'errors' | 'lastEventId'> extends never ? never : K;
|
|
237
|
+
}[keyof T] extends never ? unknown : {
|
|
238
|
+
extrasByProcedure: 'orpc-fn: scoped extras need finite keys and cannot shadow handler parameters';
|
|
239
|
+
};
|
|
195
240
|
export {};
|
|
196
241
|
//# sourceMappingURL=types.d.ts.map
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,SAAS,EACT,QAAQ,EACR,gBAAgB,EAChB,iBAAiB,EACjB,IAAI,EACJ,MAAM,EACN,MAAM,gBAAgB,CAAA;AACvB,OAAO,KAAK,EACX,YAAY,EACZ,kBAAkB,EAClB,SAAS,EACT,KAAK,EACL,MAAM,cAAc,CAAA;AACrB,OAAO,KAAK,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AACrC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAChD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AAC3C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAA;AAEzC,MAAM,MAAM,YAAY,CAAC,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAA;AAE5C;;;;GAIG;AAEH,MAAM,MAAM,WAAW,GAAG;IACzB,KAAK,CAAC,KAAK,EAAE,GAAG,GAAG,OAAO,CAAA;IAC1B,IAAI,CAAC,IAAI,EAAE,GAAG,GAAG,OAAO,CAAA;IACxB,KAAK,CAAC,MAAM,EAAE,GAAG,GAAG,OAAO,CAAA;IAC3B,MAAM,CAAC,MAAM,EAAE,GAAG,GAAG,OAAO,CAAA;IAC5B,OAAO,CAAC,OAAO,EAAE,GAAG,GAAG,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAA;CAC9D,CAAA;AAGD,uEAAuE;AACvE,MAAM,MAAM,cAAc,CAAC,CAAC,IAC3B,CAAC,SAAS,SAAS,CAClB,MAAM,SAAS,EACf,MAAM,SAAS,EACf,MAAM,YAAY,SAAS,SAAS,EACpC,MAAM,KAAK,EACX,MAAM,QAAQ,EACd,MAAM,MAAM,CACZ,GACE,gBAAgB,CAAC,YAAY,CAAC,GAC9B,OAAO,CAAA;AAEX,mEAAmE;AACnE,MAAM,MAAM,eAAe,CAAC,CAAC,IAC5B,CAAC,SAAS,SAAS,CAClB,MAAM,SAAS,EACf,MAAM,SAAS,EACf,MAAM,IAAI,EACV,MAAM,aAAa,SAAS,SAAS,EACrC,MAAM,QAAQ,EACd,MAAM,MAAM,CACZ,GACE,iBAAiB,CAAC,aAAa,CAAC,GAChC,OAAO,CAAA;AAEX,+CAA+C;AAC/C,MAAM,MAAM,gBAAgB,CAAC,CAAC,IAC7B,CAAC,SAAS,SAAS,CAClB,MAAM,QAAQ,EACd,MAAM,SAAS,EACf,MAAM,IAAI,EACV,MAAM,KAAK,EACX,MAAM,QAAQ,EACd,MAAM,MAAM,CACZ,GACE,QAAQ,GACR,KAAK,CAAA;AAET,wFAAwF;AACxF,MAAM,MAAM,gBAAgB,CAAC,CAAC,EAAE,CAAC,SAAS,WAAW,IAAI,CAAC,SAAS,OAAO,GACvE,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,GACV,KAAK,CAAA;AAER,oFAAoF;AACpF,eAAO,MAAM,iBAAiB,yJAWe,CAAA;AAE7C;;;;GAIG;AACH,eAAO,MAAM,oBAAoB,mOASvB,CAAA;AAEV,MAAM,MAAM,iBAAiB,GAAG,CAAC,OAAO,oBAAoB,CAAC,CAAC,MAAM,CAAC,CAAA;AAErE,iGAAiG;AACjG,MAAM,MAAM,cAAc,GAAG,CAAC,OAAO,EAAE;IACtC,IAAI,EAAE,MAAM,CAAA;IACZ,SAAS,EAAE,MAAM,GAAG,SAAS,CAAA;IAC7B,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC9B,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC7B,KAAK,CAAC,EAAE,SAAS,GAAG,SAAS,CAAA;IAC7B,MAAM,CAAC,EAAE,SAAS,GAAG,SAAS,CAAA;IAC9B,OAAO,EAAE,CAAC,OAAO,EAAE;QAClB,KAAK,EAAE,OAAO,CAAA;QACd,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;QAChC,MAAM,CAAC,EAAE,WAAW,CAAA;KACpB,KAAK,OAAO,CAAA;CACb,KAAK,YAAY,CAAA;AAElB,sEAAsE;AACtE,MAAM,MAAM,UAAU,CAAC,CAAC,EAAE,CAAC,SAAS,WAAW,EAAE,QAAQ,SAAS,MAAM,IAAI;KAC1E,CAAC,IAAI,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,GAAG,QAAQ;CACpC,CAAA;AAED;;;GAGG;AACH,MAAM,MAAM,YAAY,CAAC,CAAC,IAAI,MAAM,SAAS,MAAM,CAAC,GACjD;IAAE,MAAM,EAAE,yDAAyD,CAAA;CAAE,GACrE,MAAM,SAAS,MAAM,CAAC,GACrB;IAAE,MAAM,EAAE,yDAAyD,CAAA;CAAE,GACrE,OAAO,CAAA;AAEX,KAAK,WAAW,CAAC,QAAQ,IAAI,QAAQ,SAAS;IAC7C,OAAO,CAAC,OAAO,EAAE,KAAK,GAAG,MAAM,UAAU,CAAA;CACzC,GACE,UAAU,GACV,KAAK,CAAA;AAER,8DAA8D;AAC9D,MAAM,MAAM,gBAAgB,CAAC,QAAQ,IAAI,gBAAgB,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAA;AAEhF,gEAAgE;AAChE,MAAM,MAAM,gBAAgB,CAAC,QAAQ,IACpC,WAAW,CAAC,QAAQ,CAAC,SAAS,SAAS,CACtC,MAAM,SAAS,EACf,MAAM,QAAQ,EACd,MAAM,IAAI,EACV,MAAM,KAAK,EACX,MAAM,QAAQ,EACd,MAAM,MAAM,CACZ,GACE,QAAQ,GACR,KAAK,CAAA;AAET,KAAK,UAAU,CAAC,QAAQ,IACvB,WAAW,CAAC,QAAQ,CAAC,SAAS;IAC7B,OAAO,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC,SAAS,QAAQ,CAAA;KAAE,CAAA;CAC/C,GACE,CAAC,GACD,QAAQ,CAAA;AACZ,KAAK,MAAM,CAAC,QAAQ,IACnB,WAAW,CAAC,QAAQ,CAAC,SAAS;IAAE,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC,SAAS,IAAI,CAAA;KAAE,CAAA;CAAE,GACtE,CAAC,GACD,IAAI,CAAA;AAER;;;GAGG;AACH,MAAM,MAAM,YAAY,GAAG;IAC1B,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAA;IACvC,OAAO,EAAE,MAAM,CAAA;IACf,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,MAAM,CAAA;IACd,IAAI,EAAE,MAAM,CAAA;IACZ,GAAG,EAAE,MAAM,CAAA;IACX,IAAI,EAAE,QAAQ,CAAA;IACd,MAAM,EAAE,QAAQ,CAAA;CAChB,CAAA;AAED,MAAM,MAAM,YAAY,CAAC,IAAI,SAAS,YAAY,IAAI,MAAM,IAAI,CAAC,YAAY,CAAC,GAC7E,MAAM,CAAA;AAEP,iEAAiE;AACjE,MAAM,MAAM,SAAS,CACpB,IAAI,SAAS,YAAY,EACzB,IAAI,SAAS,YAAY,CAAC,IAAI,CAAC,IAC5B,gBAAgB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,CAAC,CAAA;AAE9C,8EAA8E;AAC9E,MAAM,MAAM,YAAY,CAAC,IAAI,SAAS,YAAY,IAAI;KACpD,CAAC,IAAI,YAAY,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC;CAC7C,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAA;AAErB,MAAM,MAAM,WAAW,CAAC,QAAQ,EAAE,KAAK,IAAI;IAC1C,OAAO,EAAE,QAAQ,CAAA;IACjB,KAAK,EAAE,OAAO,CAAA;IACd,gCAAgC;IAChC,IAAI,EAAE,MAAM,CAAA;IACZ,+CAA+C;IAC/C,SAAS,EAAE,MAAM,CAAA;IACjB,IAAI,EAAE,OAAO,CAAC,KAAK,CAAC,CAAA;IACpB,MAAM,EAAE,WAAW,GAAG,SAAS,CAAA;CAC/B,CAAA;AAED;;;;GAIG;AACH,MAAM,MAAM,KAAK,CAAC,MAAM,EAAE,OAAO,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,KAAK,OAAO,CAAA;AAEhF,MAAM,MAAM,YAAY,CAAC,OAAO,IAAI;KAClC,CAAC,IAAI,MAAM,OAAO,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,SAAS,CACzC,KAAK,EAAE,MAAM,MAAM,EACnB,MAAM,EAAE,KAAK,KACT,OAAO,GACT,MAAM,GACN,KAAK;CACR,CAAA;AAED,MAAM,MAAM,aAAa,CACxB,IAAI,SAAS,YAAY,EACzB,MAAM,EACN,IAAI,SAAS,YAAY,CAAC,IAAI,CAAC,IAC5B,gBAAgB,CACnB,IAAI,CAAC,QAAQ,CAAC,EACd,OAAO,GAAG,SAAS,GAAG,MAAM,GAAG,QAAQ,GAAG,MAAM,GAAG,QAAQ,CAC3D,GAAG;IACH,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,EAAE,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;IAC9B,6EAA6E;IAC7E,IAAI,EAAE,SAAS,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAA;IACtC,4EAA4E;IAC5E,MAAM,EAAE,WAAW,GAAG,SAAS,CAAA;IAC/B,iFAAiF;IACjF,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG,SAAS,CAAA;IAC9B,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAA;CACtB,CAAA;AAED,qDAAqD;AACrD,MAAM,MAAM,WAAW,CAAC,IAAI,SAAS,MAAM,GAAG,MAAM,IAAI,IAAI,CAC3D,KAAK,EACL,OAAO,CAAC,CAAC,OAAO,iBAAiB,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,CACnD,GAAG;IACH,wFAAwF;IACxF,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,CAAC,EAAE,IAAI,EAAE,CAAA;CACb,CAAA;AAED,MAAM,MAAM,cAAc,CACzB,IAAI,SAAS,YAAY,EACzB,IAAI,SAAS,YAAY,CAAC,IAAI,CAAC,IAC5B,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAC3B,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,GAC5B,IAAI,CAAC,MAAM,CAAC,GACZ,eAAe,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;AAE5B;;;GAGG;AACH,MAAM,MAAM,eAAe,CAC1B,IAAI,SAAS,YAAY,EACzB,IAAI,SAAS,YAAY,CAAC,IAAI,CAAC,IAC5B,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,GAClC;IAAE,SAAS,EAAE,IAAI,CAAA;CAAE,GACnB;IAAE,SAAS,CAAC,EAAE,IAAI,CAAA;CAAE,CAAA;AAEvB,MAAM,MAAM,WAAW,CACtB,IAAI,SAAS,YAAY,EACzB,IAAI,SAAS,YAAY,CAAC,IAAI,CAAC,EAC/B,YAAY,SAAS,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,EAC7C,aAAa,SAAS,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,IAC3C,kBAAkB,CACrB,gBAAgB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,CAAC,EAC1C,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,EACrB,YAAY,EACZ,aAAa,EACb,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,CAAC,EACpC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,CAAC,CAChC,CAAA;AAED,KAAK,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,OAAO,CAAA;AAC/D,KAAK,QAAQ,CAAC,IAAI,EAAE,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,GACpD,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,GACb,OAAO,CAAA;AAEV,iEAAiE;AACjE,MAAM,WAAW,EAAE,CAAC,IAAI,SAAS,YAAY;IAE5C,CACC,MAAM,SAAS,OAAO,EACtB,IAAI,SAAS,OAAO,EACpB,IAAI,SAAS,YAAY,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,EAEjD,OAAO,EAAE;QACR,KAAK,EAAE,MAAM,CAAA;QACb,MAAM,EAAE,IAAI,CAAA;QAEZ,OAAO,EAAE,CACR,MAAM,EAAE,aAAa,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,KACxD,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAA;KAChC,GAAG,cAAc,CAAC,IAAI,EAAE,IAAI,CAAC,GAC5B,WAAW,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,CAAA;IAGxC,CACC,MAAM,SAAS,OAAO,EACtB,OAAO,EACP,IAAI,SAAS,YAAY,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,EAEjD,OAAO,EAAE;QACR,KAAK,EAAE,MAAM,CAAA;QACb,MAAM,CAAC,EAAE,SAAS,CAAA;QAClB,OAAO,EAAE,CACR,MAAM,EAAE,aAAa,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,KACxD,YAAY,CAAC,OAAO,CAAC,CAAA;KAC1B,GAAG,cAAc,CAAC,IAAI,EAAE,IAAI,CAAC,GAC5B,WAAW,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAA;IAG5D,CAAC,IAAI,SAAS,OAAO,EAAE,IAAI,SAAS,YAAY,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,EACvE,OAAO,EAAE;QACR,KAAK,CAAC,EAAE,SAAS,CAAA;QACjB,MAAM,EAAE,IAAI,CAAA;QACZ,OAAO,EAAE,CACR,MAAM,EAAE,aAAa,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,KAC/C,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAA;KAChC,GAAG,cAAc,CAAC,IAAI,EAAE,IAAI,CAAC,GAC5B,WAAW,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,EAAE,IAAI,CAAC,CAAA;IAG1D,CAAC,OAAO,EAAE,IAAI,SAAS,YAAY,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,EAC1D,OAAO,EAAE;QACR,KAAK,CAAC,EAAE,SAAS,CAAA;QACjB,MAAM,CAAC,EAAE,SAAS,CAAA;QAClB,OAAO,EAAE,CACR,MAAM,EAAE,aAAa,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,KAC/C,YAAY,CAAC,OAAO,CAAC,CAAA;KAC1B,GAAG,cAAc,CAAC,IAAI,EAAE,IAAI,CAAC,GAC5B,WAAW,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAA;IAI9E,CACC,OAAO,EACP,MAAM,SAAS,OAAO,GAAG,SAAS,GAAG,SAAS,EAC9C,IAAI,SAAS,OAAO,GAAG,SAAS,GAAG,SAAS,EAC5C,IAAI,SAAS,YAAY,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,EAEjD,OAAO,EAAE;QACR,KAAK,CAAC,EAAE,MAAM,CAAA;QACd,MAAM,CAAC,EAAE,IAAI,CAAA;QAEb,OAAO,EAAE,CACR,MAAM,EAAE,aAAa,CAAC,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,KACvD,YAAY,CAAC,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAA;KAC1C,GAAG,cAAc,CAAC,IAAI,EAAE,IAAI,CAAC,GAC5B,WAAW,CACb,IAAI,EACJ,IAAI,EACJ;QAAC,MAAM;KAAC,SAAS,CAAC,OAAO,CAAC,GAAG,MAAM,GAAG,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,EAC9D;QAAC,IAAI;KAAC,SAAS,CAAC,OAAO,CAAC,GAAG,IAAI,GAAG,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,CAC1D,CAAA;CACD;AAED,oEAAoE;AACpE,MAAM,MAAM,gBAAgB,CAAC,QAAQ,GAAG,OAAO,EAAE,KAAK,GAAG,QAAQ,IAAI;IACpE,IAAI,EAAE,MAAM,CAAA;IACZ,SAAS,EAAE,MAAM,CAAA;IACjB,UAAU,EAAE,MAAM,CAAA;IAClB,OAAO,EAAE,OAAO,CAAA;IAChB,KAAK,EAAE,OAAO,CAAA;IACd,KAAK,EAAE,OAAO,CAAA;IACd,OAAO,EAAE,QAAQ,CAAA;IACjB,IAAI,EAAE,KAAK,GAAG,SAAS,CAAA;IACvB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAC7B,CAAA"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/dist/types.js
CHANGED
|
@@ -12,7 +12,7 @@ export const ROUTE_OPTION_KEYS = [
|
|
|
12
12
|
'tags'
|
|
13
13
|
];
|
|
14
14
|
/**
|
|
15
|
-
* `fn()` option names owned by the route itself. Guard
|
|
15
|
+
* `fn()` option names owned by the route itself. Guard keys must not
|
|
16
16
|
* reuse them: such an option would be read as the route option and the guard
|
|
17
17
|
* would never run.
|
|
18
18
|
*/
|
|
@@ -24,6 +24,10 @@ export const RESERVED_OPTION_KEYS = [
|
|
|
24
24
|
'output',
|
|
25
25
|
'handler',
|
|
26
26
|
'live',
|
|
27
|
-
'operationId'
|
|
27
|
+
'operationId',
|
|
28
|
+
'meta',
|
|
29
|
+
'stream',
|
|
30
|
+
'errors',
|
|
31
|
+
'guardResolvers'
|
|
28
32
|
];
|
|
29
33
|
//# sourceMappingURL=types.js.map
|