@orpc/client 0.0.0-next.b15d206 → 0.0.0-next.c12be86

Sign up to get free protection for your applications and to get access to all the features.
package/dist/fetch.js ADDED
@@ -0,0 +1,87 @@
1
+ // src/adapters/fetch/orpc-link.ts
2
+ import { ORPCPayloadCodec } from "@orpc/server/fetch";
3
+ import { ORPC_HANDLER_HEADER, ORPC_HANDLER_VALUE, trim } from "@orpc/shared";
4
+ import { ORPCError } from "@orpc/shared/error";
5
+ var ORPCLink = class {
6
+ fetch;
7
+ payloadCodec;
8
+ maxURLLength;
9
+ fallbackMethod;
10
+ getMethod;
11
+ getHeaders;
12
+ url;
13
+ constructor(options) {
14
+ this.fetch = options.fetch ?? globalThis.fetch.bind(globalThis);
15
+ this.payloadCodec = options.payloadCodec ?? new ORPCPayloadCodec();
16
+ this.maxURLLength = options.maxURLLength ?? 2083;
17
+ this.fallbackMethod = options.fallbackMethod ?? "POST";
18
+ this.url = options.url;
19
+ this.getMethod = async (path, input, context) => {
20
+ return await options.method?.(path, input, context) ?? this.fallbackMethod;
21
+ };
22
+ this.getHeaders = async (path, input, context) => {
23
+ return new Headers(await options.headers?.(path, input, context));
24
+ };
25
+ }
26
+ async call(path, input, options) {
27
+ const clientContext = options.context;
28
+ const encoded = await this.encode(path, input, options);
29
+ const response = await this.fetch(encoded.url, {
30
+ method: encoded.method,
31
+ headers: encoded.headers,
32
+ body: encoded.body,
33
+ signal: options.signal
34
+ }, clientContext);
35
+ const decoded = await this.payloadCodec.decode(response);
36
+ if (!response.ok) {
37
+ const error = ORPCError.fromJSON(decoded) ?? new ORPCError({
38
+ status: response.status,
39
+ code: "INTERNAL_SERVER_ERROR",
40
+ message: "Internal server error",
41
+ cause: decoded
42
+ });
43
+ throw error;
44
+ }
45
+ return decoded;
46
+ }
47
+ async encode(path, input, options) {
48
+ const clientContext = options.context;
49
+ const expectMethod = await this.getMethod(path, input, clientContext);
50
+ const methods = /* @__PURE__ */ new Set([expectMethod, this.fallbackMethod]);
51
+ const baseHeaders = await this.getHeaders(path, input, clientContext);
52
+ const baseUrl = new URL(`${trim(this.url, "/")}/${path.map(encodeURIComponent).join("/")}`);
53
+ baseHeaders.append(ORPC_HANDLER_HEADER, ORPC_HANDLER_VALUE);
54
+ for (const method of methods) {
55
+ const url = new URL(baseUrl);
56
+ const headers = new Headers(baseHeaders);
57
+ const encoded = this.payloadCodec.encode(input, method, this.fallbackMethod);
58
+ if (encoded.query) {
59
+ for (const [key, value] of encoded.query.entries()) {
60
+ url.searchParams.append(key, value);
61
+ }
62
+ }
63
+ if (url.toString().length > this.maxURLLength) {
64
+ continue;
65
+ }
66
+ if (encoded.headers) {
67
+ for (const [key, value] of encoded.headers.entries()) {
68
+ headers.append(key, value);
69
+ }
70
+ }
71
+ return {
72
+ url,
73
+ headers,
74
+ method: encoded.method,
75
+ body: encoded.body
76
+ };
77
+ }
78
+ throw new ORPCError({
79
+ code: "BAD_REQUEST",
80
+ message: "Cannot encode the request, please check the url length or payload."
81
+ });
82
+ }
83
+ };
84
+ export {
85
+ ORPCLink
86
+ };
87
+ //# sourceMappingURL=fetch.js.map
package/dist/index.js CHANGED
@@ -1,83 +1,39 @@
1
- // src/procedure.ts
2
- import {
3
- ORPC_HEADER,
4
- ORPC_HEADER_VALUE
5
- } from "@orpc/contract";
6
- import { trim } from "@orpc/shared";
7
- import { ORPCError } from "@orpc/shared/error";
8
- import { ORPCDeserializer, ORPCSerializer } from "@orpc/transformer";
9
- function createProcedureClient(options) {
10
- const serializer = new ORPCSerializer();
11
- const deserializer = new ORPCDeserializer();
12
- const client = async (input) => {
13
- const fetch_ = options.fetch ?? fetch;
14
- const url = `${trim(options.baseURL, "/")}/${options.path.map(encodeURIComponent).join("/")}`;
15
- let headers = await options.headers?.(input);
16
- headers = headers instanceof Headers ? headers : new Headers(headers);
17
- const { body, headers: headers_ } = serializer.serialize(input);
18
- for (const [key, value] of headers_.entries()) {
19
- headers.set(key, value);
20
- }
21
- headers.set(ORPC_HEADER, ORPC_HEADER_VALUE);
22
- const response = await fetch_(url, {
23
- method: "POST",
24
- headers,
25
- body
26
- });
27
- const json = await (async () => {
28
- try {
29
- return await deserializer.deserialize(response);
30
- } catch (e) {
31
- throw new ORPCError({
32
- code: "INTERNAL_SERVER_ERROR",
33
- message: "Cannot parse response.",
34
- cause: e
35
- });
1
+ // src/client.ts
2
+ function createORPCClient(link, options) {
3
+ const path = options?.path ?? [];
4
+ const procedureClient = async (...[input, options2]) => {
5
+ return await link.call(path, input, options2 ?? {});
6
+ };
7
+ const recursive = new Proxy(procedureClient, {
8
+ get(target, key) {
9
+ if (typeof key !== "string") {
10
+ return Reflect.get(target, key);
36
11
  }
37
- })();
38
- if (!response.ok) {
39
- throw ORPCError.fromJSON(json) ?? new ORPCError({
40
- status: response.status,
41
- code: "INTERNAL_SERVER_ERROR",
42
- message: "Internal server error"
12
+ return createORPCClient(link, {
13
+ ...options,
14
+ path: [...path, key]
43
15
  });
44
16
  }
45
- return json;
46
- };
47
- return client;
17
+ });
18
+ return recursive;
48
19
  }
49
20
 
50
- // src/router.ts
51
- function createRouterClient(options) {
52
- const path = options?.path ?? [];
53
- const client = new Proxy(
54
- createProcedureClient({
55
- baseURL: options.baseURL,
56
- fetch: options.fetch,
57
- headers: options.headers,
58
- path
59
- }),
60
- {
61
- get(target, key) {
62
- if (typeof key !== "string") {
63
- return Reflect.get(target, key);
64
- }
65
- return createRouterClient({
66
- ...options,
67
- path: [...path, key]
68
- });
69
- }
70
- }
71
- );
72
- return client;
73
- }
21
+ // src/dynamic-link.ts
22
+ var DynamicLink = class {
23
+ constructor(linkResolver) {
24
+ this.linkResolver = linkResolver;
25
+ }
26
+ async call(path, input, options) {
27
+ const resolvedLink = await this.linkResolver(path, input, options.context);
28
+ const output = await resolvedLink.call(path, input, options);
29
+ return output;
30
+ }
31
+ };
74
32
 
75
33
  // src/index.ts
76
34
  export * from "@orpc/shared/error";
77
- var createORPCClient = createRouterClient;
78
35
  export {
79
- createORPCClient,
80
- createProcedureClient,
81
- createRouterClient
36
+ DynamicLink,
37
+ createORPCClient
82
38
  };
83
39
  //# sourceMappingURL=index.js.map
@@ -0,0 +1,3 @@
1
+ export * from './orpc-link';
2
+ export * from './types';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1,47 @@
1
+ import type { HTTPMethod } from '@orpc/contract';
2
+ import type { ProcedureClientOptions } from '@orpc/server';
3
+ import type { Promisable } from '@orpc/shared';
4
+ import type { ClientLink } from '../../types';
5
+ import type { FetchWithContext } from './types';
6
+ import { type PublicORPCPayloadCodec } from '@orpc/server/fetch';
7
+ export interface ORPCLinkOptions<TClientContext> {
8
+ /**
9
+ * Base url for all requests.
10
+ */
11
+ url: string;
12
+ /**
13
+ * The maximum length of the URL.
14
+ *
15
+ * @default 2083
16
+ */
17
+ maxURLLength?: number;
18
+ /**
19
+ * The method used to make the request.
20
+ *
21
+ * @default 'POST'
22
+ */
23
+ method?: (path: readonly string[], input: unknown, context: TClientContext) => Promisable<HTTPMethod | undefined>;
24
+ /**
25
+ * The method to use when the payload cannot safely pass to the server with method return from method function.
26
+ * Do not use GET as fallback method, it's very dangerous.
27
+ *
28
+ * @default 'POST'
29
+ */
30
+ fallbackMethod?: HTTPMethod;
31
+ headers?: (path: readonly string[], input: unknown, context: TClientContext) => Promisable<Headers | Record<string, string>>;
32
+ fetch?: FetchWithContext<TClientContext>;
33
+ payloadCodec?: PublicORPCPayloadCodec;
34
+ }
35
+ export declare class ORPCLink<TClientContext> implements ClientLink<TClientContext> {
36
+ private readonly fetch;
37
+ private readonly payloadCodec;
38
+ private readonly maxURLLength;
39
+ private readonly fallbackMethod;
40
+ private readonly getMethod;
41
+ private readonly getHeaders;
42
+ private readonly url;
43
+ constructor(options: ORPCLinkOptions<TClientContext>);
44
+ call(path: readonly string[], input: unknown, options: ProcedureClientOptions<TClientContext>): Promise<unknown>;
45
+ private encode;
46
+ }
47
+ //# sourceMappingURL=orpc-link.d.ts.map
@@ -0,0 +1,4 @@
1
+ export interface FetchWithContext<TClientContext> {
2
+ (input: RequestInfo | URL, init: RequestInit | undefined, context: TClientContext): Promise<Response>;
3
+ }
4
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1,11 @@
1
+ import type { ContractRouter } from '@orpc/contract';
2
+ import type { ANY_ROUTER, RouterClient } from '@orpc/server';
3
+ import type { ClientLink } from './types';
4
+ export interface createORPCClientOptions {
5
+ /**
6
+ * Use as base path for all procedure, useful when you only want to call a subset of the procedure.
7
+ */
8
+ path?: string[];
9
+ }
10
+ export declare function createORPCClient<TRouter extends ANY_ROUTER | ContractRouter, TClientContext = unknown>(link: ClientLink<TClientContext>, options?: createORPCClientOptions): RouterClient<TRouter, TClientContext>;
11
+ //# sourceMappingURL=client.d.ts.map
@@ -0,0 +1,13 @@
1
+ import type { ProcedureClientOptions } from '@orpc/server';
2
+ import type { Promisable } from '@orpc/shared';
3
+ import type { ClientLink } from './types';
4
+ /**
5
+ * DynamicLink provides a way to dynamically resolve and delegate calls to other ClientLinks
6
+ * based on the request path, input, and context.
7
+ */
8
+ export declare class DynamicLink<TClientContext> implements ClientLink<TClientContext> {
9
+ private readonly linkResolver;
10
+ constructor(linkResolver: (path: readonly string[], input: unknown, context: TClientContext) => Promisable<ClientLink<TClientContext>>);
11
+ call(path: readonly string[], input: unknown, options: ProcedureClientOptions<TClientContext>): Promise<unknown>;
12
+ }
13
+ //# sourceMappingURL=dynamic-link.d.ts.map
@@ -1,7 +1,6 @@
1
1
  /** unnoq */
2
- import { createRouterClient } from './router';
3
- export * from './procedure';
4
- export * from './router';
2
+ export * from './client';
3
+ export * from './dynamic-link';
4
+ export * from './types';
5
5
  export * from '@orpc/shared/error';
6
- export declare const createORPCClient: typeof createRouterClient;
7
6
  //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1,5 @@
1
+ import type { ProcedureClientOptions } from '@orpc/server';
2
+ export interface ClientLink<TClientContext> {
3
+ call: (path: readonly string[], input: unknown, options: ProcedureClientOptions<TClientContext>) => Promise<unknown>;
4
+ }
5
+ //# sourceMappingURL=types.d.ts.map
package/package.json CHANGED
@@ -1,21 +1,17 @@
1
1
  {
2
2
  "name": "@orpc/client",
3
3
  "type": "module",
4
- "version": "0.0.0-next.b15d206",
5
- "author": {
6
- "name": "unnoq",
7
- "email": "contact@unnoq.com",
8
- "url": "https://unnoq.com"
9
- },
4
+ "version": "0.0.0-next.c12be86",
10
5
  "license": "MIT",
11
- "homepage": "https://github.com/unnoq/orpc",
6
+ "homepage": "https://orpc.unnoq.com",
12
7
  "repository": {
13
8
  "type": "git",
14
- "url": "https://github.com/unnoq/orpc.git",
9
+ "url": "git+https://github.com/unnoq/orpc.git",
15
10
  "directory": "packages/client"
16
11
  },
17
12
  "keywords": [
18
- "unnoq"
13
+ "unnoq",
14
+ "orpc"
19
15
  ],
20
16
  "exports": {
21
17
  ".": {
@@ -23,27 +19,33 @@
23
19
  "import": "./dist/index.js",
24
20
  "default": "./dist/index.js"
25
21
  },
22
+ "./fetch": {
23
+ "types": "./dist/src/adapters/fetch/index.d.ts",
24
+ "import": "./dist/fetch.js",
25
+ "default": "./dist/fetch.js"
26
+ },
26
27
  "./🔒/*": {
27
28
  "types": "./dist/src/*.d.ts"
28
29
  }
29
30
  },
30
31
  "files": [
31
- "dist",
32
- "src"
32
+ "!**/*.map",
33
+ "!**/*.tsbuildinfo",
34
+ "dist"
33
35
  ],
34
36
  "peerDependencies": {
35
- "@orpc/contract": "0.0.0-next.b15d206",
36
- "@orpc/server": "0.0.0-next.b15d206"
37
+ "@orpc/contract": "0.0.0-next.c12be86"
37
38
  },
38
39
  "dependencies": {
39
- "@orpc/transformer": "0.0.0-next.b15d206",
40
- "@orpc/shared": "0.0.0-next.b15d206"
40
+ "@orpc/server": "0.0.0-next.c12be86",
41
+ "@orpc/shared": "0.0.0-next.c12be86"
41
42
  },
42
43
  "devDependencies": {
43
- "zod": "^3.23.8"
44
+ "zod": "^3.24.1",
45
+ "@orpc/openapi": "0.0.0-next.c12be86"
44
46
  },
45
47
  "scripts": {
46
- "build": "tsup --clean --sourcemap --entry.index=src/index.ts --format=esm --onSuccess='tsc -b --noCheck'",
48
+ "build": "tsup --clean --sourcemap --entry.index=src/index.ts --entry.fetch=src/adapters/fetch/index.ts --format=esm --onSuccess='tsc -b --noCheck'",
47
49
  "build:watch": "pnpm run build --watch",
48
50
  "type:check": "tsc -b"
49
51
  }
package/dist/index.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/procedure.ts","../src/router.ts","../src/index.ts"],"sourcesContent":["/// <reference lib=\"dom\" />\n/// <reference lib=\"dom.iterable\" />\n\nimport type { Promisable } from '@orpc/shared'\nimport {\n ORPC_HEADER,\n ORPC_HEADER_VALUE,\n type Schema,\n type SchemaInput,\n type SchemaOutput,\n} from '@orpc/contract'\nimport { trim } from '@orpc/shared'\nimport { ORPCError } from '@orpc/shared/error'\nimport { ORPCDeserializer, ORPCSerializer } from '@orpc/transformer'\n\nexport interface ProcedureClient<\n TInputSchema extends Schema,\n TOutputSchema extends Schema,\n TFuncOutput extends SchemaOutput<TOutputSchema>,\n> {\n (\n input: SchemaInput<TInputSchema>,\n ): Promise<SchemaOutput<TOutputSchema, TFuncOutput>>\n}\n\nexport interface CreateProcedureClientOptions {\n /**\n * The base url of the server.\n */\n baseURL: string\n\n /**\n * The fetch function used to make the request.\n * @default global fetch\n */\n fetch?: typeof fetch\n\n /**\n * The headers used to make the request.\n * Invoked before the request is made.\n */\n headers?: (input: unknown) => Promisable<Headers | Record<string, string>>\n\n /**\n * The path of the procedure on server.\n */\n path: string[]\n}\n\nexport function createProcedureClient<\n TInputSchema extends Schema,\n TOutputSchema extends Schema,\n TFuncOutput extends SchemaOutput<TOutputSchema>,\n>(\n options: CreateProcedureClientOptions,\n): ProcedureClient<TInputSchema, TOutputSchema, TFuncOutput> {\n const serializer = new ORPCSerializer()\n const deserializer = new ORPCDeserializer()\n\n const client = async (input: unknown): Promise<unknown> => {\n const fetch_ = options.fetch ?? fetch\n const url = `${trim(options.baseURL, '/')}/${options.path.map(encodeURIComponent).join('/')}`\n let headers = await options.headers?.(input)\n headers = headers instanceof Headers ? headers : new Headers(headers)\n\n const { body, headers: headers_ } = serializer.serialize(input)\n\n for (const [key, value] of headers_.entries()) {\n headers.set(key, value)\n }\n\n headers.set(ORPC_HEADER, ORPC_HEADER_VALUE)\n\n const response = await fetch_(url, {\n method: 'POST',\n headers,\n body,\n })\n\n const json = await (async () => {\n try {\n return await deserializer.deserialize(response)\n }\n catch (e) {\n throw new ORPCError({\n code: 'INTERNAL_SERVER_ERROR',\n message: 'Cannot parse response.',\n cause: e,\n })\n }\n })()\n\n if (!response.ok) {\n throw (\n ORPCError.fromJSON(json)\n ?? new ORPCError({\n status: response.status,\n code: 'INTERNAL_SERVER_ERROR',\n message: 'Internal server error',\n })\n )\n }\n\n return json\n }\n\n return client as any\n}\n","/// <reference lib=\"dom\" />\n\nimport type {\n ContractProcedure,\n ContractRouter,\n SchemaOutput,\n} from '@orpc/contract'\nimport type { Procedure, Router } from '@orpc/server'\nimport type { Promisable } from '@orpc/shared'\nimport { createProcedureClient, type ProcedureClient } from './procedure'\n\nexport type RouterClientWithContractRouter<TRouter extends ContractRouter> = {\n [K in keyof TRouter]: TRouter[K] extends ContractProcedure<\n infer UInputSchema,\n infer UOutputSchema\n >\n ? ProcedureClient<UInputSchema, UOutputSchema, SchemaOutput<UOutputSchema>>\n : TRouter[K] extends ContractRouter\n ? RouterClientWithContractRouter<TRouter[K]>\n : never\n}\n\nexport type RouterClientWithRouter<TRouter extends Router<any>> = {\n [K in keyof TRouter]: TRouter[K] extends Procedure<\n any,\n any,\n infer UInputSchema,\n infer UOutputSchema,\n infer UFuncOutput\n >\n ? ProcedureClient<UInputSchema, UOutputSchema, UFuncOutput>\n : TRouter[K] extends Router<any>\n ? RouterClientWithRouter<TRouter[K]>\n : never\n}\n\nexport interface CreateRouterClientOptions {\n /**\n * The base url of the server.\n */\n baseURL: string\n\n /**\n * The fetch function used to make the request.\n * @default global fetch\n */\n fetch?: typeof fetch\n\n /**\n * The headers used to make the request.\n * Invoked before the request is made.\n */\n headers?: (input: unknown) => Promisable<Headers | Record<string, string>>\n\n /**\n * This used for internal purpose only.\n *\n * @internal\n */\n path?: string[]\n}\n\nexport function createRouterClient<\n TRouter extends Router<any> | ContractRouter,\n>(\n options: CreateRouterClientOptions,\n): TRouter extends Router<any>\n ? RouterClientWithRouter<TRouter>\n : TRouter extends ContractRouter\n ? RouterClientWithContractRouter<TRouter>\n : never {\n const path = options?.path ?? []\n\n const client = new Proxy(\n createProcedureClient({\n baseURL: options.baseURL,\n fetch: options.fetch,\n headers: options.headers,\n path,\n }),\n {\n get(target, key) {\n if (typeof key !== 'string') {\n return Reflect.get(target, key)\n }\n\n return createRouterClient({\n ...options,\n path: [...path, key],\n })\n },\n },\n )\n\n return client as any\n}\n","/** unnoq */\n\nimport { createRouterClient } from './router'\n\nexport * from './procedure'\nexport * from './router'\nexport * from '@orpc/shared/error'\n\nexport const createORPCClient = createRouterClient\n"],"mappings":";AAIA;AAAA,EACE;AAAA,EACA;AAAA,OAIK;AACP,SAAS,YAAY;AACrB,SAAS,iBAAiB;AAC1B,SAAS,kBAAkB,sBAAsB;AAoC1C,SAAS,sBAKd,SAC2D;AAC3D,QAAM,aAAa,IAAI,eAAe;AACtC,QAAM,eAAe,IAAI,iBAAiB;AAE1C,QAAM,SAAS,OAAO,UAAqC;AACzD,UAAM,SAAS,QAAQ,SAAS;AAChC,UAAM,MAAM,GAAG,KAAK,QAAQ,SAAS,GAAG,CAAC,IAAI,QAAQ,KAAK,IAAI,kBAAkB,EAAE,KAAK,GAAG,CAAC;AAC3F,QAAI,UAAU,MAAM,QAAQ,UAAU,KAAK;AAC3C,cAAU,mBAAmB,UAAU,UAAU,IAAI,QAAQ,OAAO;AAEpE,UAAM,EAAE,MAAM,SAAS,SAAS,IAAI,WAAW,UAAU,KAAK;AAE9D,eAAW,CAAC,KAAK,KAAK,KAAK,SAAS,QAAQ,GAAG;AAC7C,cAAQ,IAAI,KAAK,KAAK;AAAA,IACxB;AAEA,YAAQ,IAAI,aAAa,iBAAiB;AAE1C,UAAM,WAAW,MAAM,OAAO,KAAK;AAAA,MACjC,QAAQ;AAAA,MACR;AAAA,MACA;AAAA,IACF,CAAC;AAED,UAAM,OAAO,OAAO,YAAY;AAC9B,UAAI;AACF,eAAO,MAAM,aAAa,YAAY,QAAQ;AAAA,MAChD,SACO,GAAG;AACR,cAAM,IAAI,UAAU;AAAA,UAClB,MAAM;AAAA,UACN,SAAS;AAAA,UACT,OAAO;AAAA,QACT,CAAC;AAAA,MACH;AAAA,IACF,GAAG;AAEH,QAAI,CAAC,SAAS,IAAI;AAChB,YACE,UAAU,SAAS,IAAI,KACpB,IAAI,UAAU;AAAA,QACf,QAAQ,SAAS;AAAA,QACjB,MAAM;AAAA,QACN,SAAS;AAAA,MACX,CAAC;AAAA,IAEL;AAEA,WAAO;AAAA,EACT;AAEA,SAAO;AACT;;;AC7CO,SAAS,mBAGd,SAKY;AACZ,QAAM,OAAO,SAAS,QAAQ,CAAC;AAE/B,QAAM,SAAS,IAAI;AAAA,IACjB,sBAAsB;AAAA,MACpB,SAAS,QAAQ;AAAA,MACjB,OAAO,QAAQ;AAAA,MACf,SAAS,QAAQ;AAAA,MACjB;AAAA,IACF,CAAC;AAAA,IACD;AAAA,MACE,IAAI,QAAQ,KAAK;AACf,YAAI,OAAO,QAAQ,UAAU;AAC3B,iBAAO,QAAQ,IAAI,QAAQ,GAAG;AAAA,QAChC;AAEA,eAAO,mBAAmB;AAAA,UACxB,GAAG;AAAA,UACH,MAAM,CAAC,GAAG,MAAM,GAAG;AAAA,QACrB,CAAC;AAAA,MACH;AAAA,IACF;AAAA,EACF;AAEA,SAAO;AACT;;;ACzFA,cAAc;AAEP,IAAM,mBAAmB;","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,YAAY;AAEZ,OAAO,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAA;AAE7C,cAAc,aAAa,CAAA;AAC3B,cAAc,UAAU,CAAA;AACxB,cAAc,oBAAoB,CAAA;AAElC,eAAO,MAAM,gBAAgB,2BAAqB,CAAA"}
@@ -1,27 +0,0 @@
1
- import type { Promisable } from '@orpc/shared';
2
- import { type Schema, type SchemaInput, type SchemaOutput } from '@orpc/contract';
3
- export interface ProcedureClient<TInputSchema extends Schema, TOutputSchema extends Schema, TFuncOutput extends SchemaOutput<TOutputSchema>> {
4
- (input: SchemaInput<TInputSchema>): Promise<SchemaOutput<TOutputSchema, TFuncOutput>>;
5
- }
6
- export interface CreateProcedureClientOptions {
7
- /**
8
- * The base url of the server.
9
- */
10
- baseURL: string;
11
- /**
12
- * The fetch function used to make the request.
13
- * @default global fetch
14
- */
15
- fetch?: typeof fetch;
16
- /**
17
- * The headers used to make the request.
18
- * Invoked before the request is made.
19
- */
20
- headers?: (input: unknown) => Promisable<Headers | Record<string, string>>;
21
- /**
22
- * The path of the procedure on server.
23
- */
24
- path: string[];
25
- }
26
- export declare function createProcedureClient<TInputSchema extends Schema, TOutputSchema extends Schema, TFuncOutput extends SchemaOutput<TOutputSchema>>(options: CreateProcedureClientOptions): ProcedureClient<TInputSchema, TOutputSchema, TFuncOutput>;
27
- //# sourceMappingURL=procedure.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"procedure.d.ts","sourceRoot":"","sources":["../../src/procedure.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAC9C,OAAO,EAGL,KAAK,MAAM,EACX,KAAK,WAAW,EAChB,KAAK,YAAY,EAClB,MAAM,gBAAgB,CAAA;AAKvB,MAAM,WAAW,eAAe,CAC9B,YAAY,SAAS,MAAM,EAC3B,aAAa,SAAS,MAAM,EAC5B,WAAW,SAAS,YAAY,CAAC,aAAa,CAAC;IAE/C,CACE,KAAK,EAAE,WAAW,CAAC,YAAY,CAAC,GAC/B,OAAO,CAAC,YAAY,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC,CAAA;CACrD;AAED,MAAM,WAAW,4BAA4B;IAC3C;;OAEG;IACH,OAAO,EAAE,MAAM,CAAA;IAEf;;;OAGG;IACH,KAAK,CAAC,EAAE,OAAO,KAAK,CAAA;IAEpB;;;OAGG;IACH,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,UAAU,CAAC,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;IAE1E;;OAEG;IACH,IAAI,EAAE,MAAM,EAAE,CAAA;CACf;AAED,wBAAgB,qBAAqB,CACnC,YAAY,SAAS,MAAM,EAC3B,aAAa,SAAS,MAAM,EAC5B,WAAW,SAAS,YAAY,CAAC,aAAa,CAAC,EAE/C,OAAO,EAAE,4BAA4B,GACpC,eAAe,CAAC,YAAY,EAAE,aAAa,EAAE,WAAW,CAAC,CAoD3D"}
@@ -1,34 +0,0 @@
1
- import type { ContractProcedure, ContractRouter, SchemaOutput } from '@orpc/contract';
2
- import type { Procedure, Router } from '@orpc/server';
3
- import type { Promisable } from '@orpc/shared';
4
- import { type ProcedureClient } from './procedure';
5
- export type RouterClientWithContractRouter<TRouter extends ContractRouter> = {
6
- [K in keyof TRouter]: TRouter[K] extends ContractProcedure<infer UInputSchema, infer UOutputSchema> ? ProcedureClient<UInputSchema, UOutputSchema, SchemaOutput<UOutputSchema>> : TRouter[K] extends ContractRouter ? RouterClientWithContractRouter<TRouter[K]> : never;
7
- };
8
- export type RouterClientWithRouter<TRouter extends Router<any>> = {
9
- [K in keyof TRouter]: TRouter[K] extends Procedure<any, any, infer UInputSchema, infer UOutputSchema, infer UFuncOutput> ? ProcedureClient<UInputSchema, UOutputSchema, UFuncOutput> : TRouter[K] extends Router<any> ? RouterClientWithRouter<TRouter[K]> : never;
10
- };
11
- export interface CreateRouterClientOptions {
12
- /**
13
- * The base url of the server.
14
- */
15
- baseURL: string;
16
- /**
17
- * The fetch function used to make the request.
18
- * @default global fetch
19
- */
20
- fetch?: typeof fetch;
21
- /**
22
- * The headers used to make the request.
23
- * Invoked before the request is made.
24
- */
25
- headers?: (input: unknown) => Promisable<Headers | Record<string, string>>;
26
- /**
27
- * This used for internal purpose only.
28
- *
29
- * @internal
30
- */
31
- path?: string[];
32
- }
33
- export declare function createRouterClient<TRouter extends Router<any> | ContractRouter>(options: CreateRouterClientOptions): TRouter extends Router<any> ? RouterClientWithRouter<TRouter> : TRouter extends ContractRouter ? RouterClientWithContractRouter<TRouter> : never;
34
- //# sourceMappingURL=router.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"router.d.ts","sourceRoot":"","sources":["../../src/router.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,iBAAiB,EACjB,cAAc,EACd,YAAY,EACb,MAAM,gBAAgB,CAAA;AACvB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AACrD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAC9C,OAAO,EAAyB,KAAK,eAAe,EAAE,MAAM,aAAa,CAAA;AAEzE,MAAM,MAAM,8BAA8B,CAAC,OAAO,SAAS,cAAc,IAAI;KAC1E,CAAC,IAAI,MAAM,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,SAAS,iBAAiB,CACxD,MAAM,YAAY,EAClB,MAAM,aAAa,CACpB,GACG,eAAe,CAAC,YAAY,EAAE,aAAa,EAAE,YAAY,CAAC,aAAa,CAAC,CAAC,GACzE,OAAO,CAAC,CAAC,CAAC,SAAS,cAAc,GAC/B,8BAA8B,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAC1C,KAAK;CACZ,CAAA;AAED,MAAM,MAAM,sBAAsB,CAAC,OAAO,SAAS,MAAM,CAAC,GAAG,CAAC,IAAI;KAC/D,CAAC,IAAI,MAAM,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,SAAS,SAAS,CAChD,GAAG,EACH,GAAG,EACH,MAAM,YAAY,EAClB,MAAM,aAAa,EACnB,MAAM,WAAW,CAClB,GACG,eAAe,CAAC,YAAY,EAAE,aAAa,EAAE,WAAW,CAAC,GACzD,OAAO,CAAC,CAAC,CAAC,SAAS,MAAM,CAAC,GAAG,CAAC,GAC5B,sBAAsB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAClC,KAAK;CACZ,CAAA;AAED,MAAM,WAAW,yBAAyB;IACxC;;OAEG;IACH,OAAO,EAAE,MAAM,CAAA;IAEf;;;OAGG;IACH,KAAK,CAAC,EAAE,OAAO,KAAK,CAAA;IAEpB;;;OAGG;IACH,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,UAAU,CAAC,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;IAE1E;;;;OAIG;IACH,IAAI,CAAC,EAAE,MAAM,EAAE,CAAA;CAChB;AAED,wBAAgB,kBAAkB,CAChC,OAAO,SAAS,MAAM,CAAC,GAAG,CAAC,GAAG,cAAc,EAE5C,OAAO,EAAE,yBAAyB,GACjC,OAAO,SAAS,MAAM,CAAC,GAAG,CAAC,GACxB,sBAAsB,CAAC,OAAO,CAAC,GAC/B,OAAO,SAAS,cAAc,GAC5B,8BAA8B,CAAC,OAAO,CAAC,GACvC,KAAK,CAyBZ"}
@@ -1 +0,0 @@
1
- {"fileNames":["../../../node_modules/.pnpm/typescript@5.7.2/node_modules/typescript/lib/lib.es5.d.ts","../../../node_modules/.pnpm/typescript@5.7.2/node_modules/typescript/lib/lib.es2015.d.ts","../../../node_modules/.pnpm/typescript@5.7.2/node_modules/typescript/lib/lib.es2016.d.ts","../../../node_modules/.pnpm/typescript@5.7.2/node_modules/typescript/lib/lib.es2017.d.ts","../../../node_modules/.pnpm/typescript@5.7.2/node_modules/typescript/lib/lib.es2018.d.ts","../../../node_modules/.pnpm/typescript@5.7.2/node_modules/typescript/lib/lib.es2019.d.ts","../../../node_modules/.pnpm/typescript@5.7.2/node_modules/typescript/lib/lib.es2020.d.ts","../../../node_modules/.pnpm/typescript@5.7.2/node_modules/typescript/lib/lib.es2021.d.ts","../../../node_modules/.pnpm/typescript@5.7.2/node_modules/typescript/lib/lib.es2022.d.ts","../../../node_modules/.pnpm/typescript@5.7.2/node_modules/typescript/lib/lib.dom.d.ts","../../../node_modules/.pnpm/typescript@5.7.2/node_modules/typescript/lib/lib.dom.iterable.d.ts","../../../node_modules/.pnpm/typescript@5.7.2/node_modules/typescript/lib/lib.es2015.core.d.ts","../../../node_modules/.pnpm/typescript@5.7.2/node_modules/typescript/lib/lib.es2015.collection.d.ts","../../../node_modules/.pnpm/typescript@5.7.2/node_modules/typescript/lib/lib.es2015.generator.d.ts","../../../node_modules/.pnpm/typescript@5.7.2/node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../../node_modules/.pnpm/typescript@5.7.2/node_modules/typescript/lib/lib.es2015.promise.d.ts","../../../node_modules/.pnpm/typescript@5.7.2/node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../../node_modules/.pnpm/typescript@5.7.2/node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../../node_modules/.pnpm/typescript@5.7.2/node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../../node_modules/.pnpm/typescript@5.7.2/node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../../node_modules/.pnpm/typescript@5.7.2/node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../../node_modules/.pnpm/typescript@5.7.2/node_modules/typescript/lib/lib.es2016.intl.d.ts","../../../node_modules/.pnpm/typescript@5.7.2/node_modules/typescript/lib/lib.es2017.arraybuffer.d.ts","../../../node_modules/.pnpm/typescript@5.7.2/node_modules/typescript/lib/lib.es2017.date.d.ts","../../../node_modules/.pnpm/typescript@5.7.2/node_modules/typescript/lib/lib.es2017.object.d.ts","../../../node_modules/.pnpm/typescript@5.7.2/node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../../node_modules/.pnpm/typescript@5.7.2/node_modules/typescript/lib/lib.es2017.string.d.ts","../../../node_modules/.pnpm/typescript@5.7.2/node_modules/typescript/lib/lib.es2017.intl.d.ts","../../../node_modules/.pnpm/typescript@5.7.2/node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../../node_modules/.pnpm/typescript@5.7.2/node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../../node_modules/.pnpm/typescript@5.7.2/node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../../node_modules/.pnpm/typescript@5.7.2/node_modules/typescript/lib/lib.es2018.intl.d.ts","../../../node_modules/.pnpm/typescript@5.7.2/node_modules/typescript/lib/lib.es2018.promise.d.ts","../../../node_modules/.pnpm/typescript@5.7.2/node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../../node_modules/.pnpm/typescript@5.7.2/node_modules/typescript/lib/lib.es2019.array.d.ts","../../../node_modules/.pnpm/typescript@5.7.2/node_modules/typescript/lib/lib.es2019.object.d.ts","../../../node_modules/.pnpm/typescript@5.7.2/node_modules/typescript/lib/lib.es2019.string.d.ts","../../../node_modules/.pnpm/typescript@5.7.2/node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../../node_modules/.pnpm/typescript@5.7.2/node_modules/typescript/lib/lib.es2019.intl.d.ts","../../../node_modules/.pnpm/typescript@5.7.2/node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../../node_modules/.pnpm/typescript@5.7.2/node_modules/typescript/lib/lib.es2020.date.d.ts","../../../node_modules/.pnpm/typescript@5.7.2/node_modules/typescript/lib/lib.es2020.promise.d.ts","../../../node_modules/.pnpm/typescript@5.7.2/node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../../node_modules/.pnpm/typescript@5.7.2/node_modules/typescript/lib/lib.es2020.string.d.ts","../../../node_modules/.pnpm/typescript@5.7.2/node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../../node_modules/.pnpm/typescript@5.7.2/node_modules/typescript/lib/lib.es2020.intl.d.ts","../../../node_modules/.pnpm/typescript@5.7.2/node_modules/typescript/lib/lib.es2020.number.d.ts","../../../node_modules/.pnpm/typescript@5.7.2/node_modules/typescript/lib/lib.es2021.promise.d.ts","../../../node_modules/.pnpm/typescript@5.7.2/node_modules/typescript/lib/lib.es2021.string.d.ts","../../../node_modules/.pnpm/typescript@5.7.2/node_modules/typescript/lib/lib.es2021.weakref.d.ts","../../../node_modules/.pnpm/typescript@5.7.2/node_modules/typescript/lib/lib.es2021.intl.d.ts","../../../node_modules/.pnpm/typescript@5.7.2/node_modules/typescript/lib/lib.es2022.array.d.ts","../../../node_modules/.pnpm/typescript@5.7.2/node_modules/typescript/lib/lib.es2022.error.d.ts","../../../node_modules/.pnpm/typescript@5.7.2/node_modules/typescript/lib/lib.es2022.intl.d.ts","../../../node_modules/.pnpm/typescript@5.7.2/node_modules/typescript/lib/lib.es2022.object.d.ts","../../../node_modules/.pnpm/typescript@5.7.2/node_modules/typescript/lib/lib.es2022.string.d.ts","../../../node_modules/.pnpm/typescript@5.7.2/node_modules/typescript/lib/lib.es2022.regexp.d.ts","../../../node_modules/.pnpm/typescript@5.7.2/node_modules/typescript/lib/lib.decorators.d.ts","../../../node_modules/.pnpm/typescript@5.7.2/node_modules/typescript/lib/lib.decorators.legacy.d.ts","../../../node_modules/.pnpm/@types+react@18.3.12/node_modules/@types/react/global.d.ts","../../../node_modules/.pnpm/csstype@3.1.3/node_modules/csstype/index.d.ts","../../../node_modules/.pnpm/@types+prop-types@15.7.13/node_modules/@types/prop-types/index.d.ts","../../../node_modules/.pnpm/@types+react@18.3.12/node_modules/@types/react/index.d.ts","../../../node_modules/.pnpm/@types+react@18.3.12/node_modules/@types/react/jsx-runtime.d.ts","../../../node_modules/.pnpm/zod@3.23.8/node_modules/zod/lib/helpers/typeAliases.d.ts","../../../node_modules/.pnpm/zod@3.23.8/node_modules/zod/lib/helpers/util.d.ts","../../../node_modules/.pnpm/zod@3.23.8/node_modules/zod/lib/ZodError.d.ts","../../../node_modules/.pnpm/zod@3.23.8/node_modules/zod/lib/locales/en.d.ts","../../../node_modules/.pnpm/zod@3.23.8/node_modules/zod/lib/errors.d.ts","../../../node_modules/.pnpm/zod@3.23.8/node_modules/zod/lib/helpers/parseUtil.d.ts","../../../node_modules/.pnpm/zod@3.23.8/node_modules/zod/lib/helpers/enumUtil.d.ts","../../../node_modules/.pnpm/zod@3.23.8/node_modules/zod/lib/helpers/errorUtil.d.ts","../../../node_modules/.pnpm/zod@3.23.8/node_modules/zod/lib/helpers/partialUtil.d.ts","../../../node_modules/.pnpm/zod@3.23.8/node_modules/zod/lib/types.d.ts","../../../node_modules/.pnpm/zod@3.23.8/node_modules/zod/lib/external.d.ts","../../../node_modules/.pnpm/zod@3.23.8/node_modules/zod/lib/index.d.ts","../../../node_modules/.pnpm/zod@3.23.8/node_modules/zod/index.d.ts","../../contract/dist/src/types.d.ts","../../contract/dist/src/procedure.d.ts","../../contract/dist/src/router.d.ts","../../contract/dist/src/router-builder.d.ts","../../contract/dist/src/builder.d.ts","../../contract/dist/src/constants.d.ts","../../contract/dist/src/utils.d.ts","../../contract/dist/src/index.d.ts","../../shared/dist/src/json.d.ts","../../shared/dist/src/object.d.ts","../../../node_modules/.pnpm/type-fest@4.26.1/node_modules/type-fest/source/primitive.d.ts","../../../node_modules/.pnpm/type-fest@4.26.1/node_modules/type-fest/source/typed-array.d.ts","../../../node_modules/.pnpm/type-fest@4.26.1/node_modules/type-fest/source/basic.d.ts","../../../node_modules/.pnpm/type-fest@4.26.1/node_modules/type-fest/source/observable-like.d.ts","../../../node_modules/.pnpm/type-fest@4.26.1/node_modules/type-fest/source/keys-of-union.d.ts","../../../node_modules/.pnpm/type-fest@4.26.1/node_modules/type-fest/source/distributed-omit.d.ts","../../../node_modules/.pnpm/type-fest@4.26.1/node_modules/type-fest/source/distributed-pick.d.ts","../../../node_modules/.pnpm/type-fest@4.26.1/node_modules/type-fest/source/empty-object.d.ts","../../../node_modules/.pnpm/type-fest@4.26.1/node_modules/type-fest/source/if-empty-object.d.ts","../../../node_modules/.pnpm/type-fest@4.26.1/node_modules/type-fest/source/required-keys-of.d.ts","../../../node_modules/.pnpm/type-fest@4.26.1/node_modules/type-fest/source/has-required-keys.d.ts","../../../node_modules/.pnpm/type-fest@4.26.1/node_modules/type-fest/source/is-equal.d.ts","../../../node_modules/.pnpm/type-fest@4.26.1/node_modules/type-fest/source/except.d.ts","../../../node_modules/.pnpm/type-fest@4.26.1/node_modules/type-fest/source/require-at-least-one.d.ts","../../../node_modules/.pnpm/type-fest@4.26.1/node_modules/type-fest/source/non-empty-object.d.ts","../../../node_modules/.pnpm/type-fest@4.26.1/node_modules/type-fest/source/unknown-record.d.ts","../../../node_modules/.pnpm/type-fest@4.26.1/node_modules/type-fest/source/unknown-array.d.ts","../../../node_modules/.pnpm/type-fest@4.26.1/node_modules/type-fest/source/tagged-union.d.ts","../../../node_modules/.pnpm/type-fest@4.26.1/node_modules/type-fest/source/simplify.d.ts","../../../node_modules/.pnpm/type-fest@4.26.1/node_modules/type-fest/source/writable.d.ts","../../../node_modules/.pnpm/type-fest@4.26.1/node_modules/type-fest/source/internal/array.d.ts","../../../node_modules/.pnpm/type-fest@4.26.1/node_modules/type-fest/source/internal/characters.d.ts","../../../node_modules/.pnpm/type-fest@4.26.1/node_modules/type-fest/source/is-any.d.ts","../../../node_modules/.pnpm/type-fest@4.26.1/node_modules/type-fest/source/is-float.d.ts","../../../node_modules/.pnpm/type-fest@4.26.1/node_modules/type-fest/source/is-integer.d.ts","../../../node_modules/.pnpm/type-fest@4.26.1/node_modules/type-fest/source/numeric.d.ts","../../../node_modules/.pnpm/type-fest@4.26.1/node_modules/type-fest/source/is-never.d.ts","../../../node_modules/.pnpm/type-fest@4.26.1/node_modules/type-fest/source/is-literal.d.ts","../../../node_modules/.pnpm/type-fest@4.26.1/node_modules/type-fest/source/trim.d.ts","../../../node_modules/.pnpm/type-fest@4.26.1/node_modules/type-fest/source/and.d.ts","../../../node_modules/.pnpm/type-fest@4.26.1/node_modules/type-fest/source/or.d.ts","../../../node_modules/.pnpm/type-fest@4.26.1/node_modules/type-fest/source/greater-than.d.ts","../../../node_modules/.pnpm/type-fest@4.26.1/node_modules/type-fest/source/greater-than-or-equal.d.ts","../../../node_modules/.pnpm/type-fest@4.26.1/node_modules/type-fest/source/less-than.d.ts","../../../node_modules/.pnpm/type-fest@4.26.1/node_modules/type-fest/source/internal/tuple.d.ts","../../../node_modules/.pnpm/type-fest@4.26.1/node_modules/type-fest/source/internal/string.d.ts","../../../node_modules/.pnpm/type-fest@4.26.1/node_modules/type-fest/source/internal/keys.d.ts","../../../node_modules/.pnpm/type-fest@4.26.1/node_modules/type-fest/source/internal/numeric.d.ts","../../../node_modules/.pnpm/type-fest@4.26.1/node_modules/type-fest/source/internal/type.d.ts","../../../node_modules/.pnpm/type-fest@4.26.1/node_modules/type-fest/source/internal/object.d.ts","../../../node_modules/.pnpm/type-fest@4.26.1/node_modules/type-fest/source/internal/index.d.ts","../../../node_modules/.pnpm/type-fest@4.26.1/node_modules/type-fest/source/writable-deep.d.ts","../../../node_modules/.pnpm/type-fest@4.26.1/node_modules/type-fest/source/omit-index-signature.d.ts","../../../node_modules/.pnpm/type-fest@4.26.1/node_modules/type-fest/source/pick-index-signature.d.ts","../../../node_modules/.pnpm/type-fest@4.26.1/node_modules/type-fest/source/merge.d.ts","../../../node_modules/.pnpm/type-fest@4.26.1/node_modules/type-fest/source/conditional-simplify.d.ts","../../../node_modules/.pnpm/type-fest@4.26.1/node_modules/type-fest/source/non-empty-tuple.d.ts","../../../node_modules/.pnpm/type-fest@4.26.1/node_modules/type-fest/source/array-tail.d.ts","../../../node_modules/.pnpm/type-fest@4.26.1/node_modules/type-fest/source/enforce-optional.d.ts","../../../node_modules/.pnpm/type-fest@4.26.1/node_modules/type-fest/source/simplify-deep.d.ts","../../../node_modules/.pnpm/type-fest@4.26.1/node_modules/type-fest/source/merge-deep.d.ts","../../../node_modules/.pnpm/type-fest@4.26.1/node_modules/type-fest/source/merge-exclusive.d.ts","../../../node_modules/.pnpm/type-fest@4.26.1/node_modules/type-fest/source/require-exactly-one.d.ts","../../../node_modules/.pnpm/type-fest@4.26.1/node_modules/type-fest/source/require-all-or-none.d.ts","../../../node_modules/.pnpm/type-fest@4.26.1/node_modules/type-fest/source/require-one-or-none.d.ts","../../../node_modules/.pnpm/type-fest@4.26.1/node_modules/type-fest/source/single-key-object.d.ts","../../../node_modules/.pnpm/type-fest@4.26.1/node_modules/type-fest/source/partial-deep.d.ts","../../../node_modules/.pnpm/type-fest@4.26.1/node_modules/type-fest/source/required-deep.d.ts","../../../node_modules/.pnpm/type-fest@4.26.1/node_modules/type-fest/source/sum.d.ts","../../../node_modules/.pnpm/type-fest@4.26.1/node_modules/type-fest/source/subtract.d.ts","../../../node_modules/.pnpm/type-fest@4.26.1/node_modules/type-fest/source/paths.d.ts","../../../node_modules/.pnpm/type-fest@4.26.1/node_modules/type-fest/source/union-to-intersection.d.ts","../../../node_modules/.pnpm/type-fest@4.26.1/node_modules/type-fest/source/pick-deep.d.ts","../../../node_modules/.pnpm/type-fest@4.26.1/node_modules/type-fest/source/array-splice.d.ts","../../../node_modules/.pnpm/type-fest@4.26.1/node_modules/type-fest/source/literal-union.d.ts","../../../node_modules/.pnpm/type-fest@4.26.1/node_modules/type-fest/source/shared-union-fields-deep.d.ts","../../../node_modules/.pnpm/type-fest@4.26.1/node_modules/type-fest/source/omit-deep.d.ts","../../../node_modules/.pnpm/type-fest@4.26.1/node_modules/type-fest/source/is-null.d.ts","../../../node_modules/.pnpm/type-fest@4.26.1/node_modules/type-fest/source/is-unknown.d.ts","../../../node_modules/.pnpm/type-fest@4.26.1/node_modules/type-fest/source/if-unknown.d.ts","../../../node_modules/.pnpm/type-fest@4.26.1/node_modules/type-fest/source/partial-on-undefined-deep.d.ts","../../../node_modules/.pnpm/type-fest@4.26.1/node_modules/type-fest/source/undefined-on-partial-deep.d.ts","../../../node_modules/.pnpm/type-fest@4.26.1/node_modules/type-fest/source/readonly-deep.d.ts","../../../node_modules/.pnpm/type-fest@4.26.1/node_modules/type-fest/source/promisable.d.ts","../../../node_modules/.pnpm/type-fest@4.26.1/node_modules/type-fest/source/arrayable.d.ts","../../../node_modules/.pnpm/type-fest@4.26.1/node_modules/type-fest/source/tagged.d.ts","../../../node_modules/.pnpm/type-fest@4.26.1/node_modules/type-fest/source/invariant-of.d.ts","../../../node_modules/.pnpm/type-fest@4.26.1/node_modules/type-fest/source/set-optional.d.ts","../../../node_modules/.pnpm/type-fest@4.26.1/node_modules/type-fest/source/set-readonly.d.ts","../../../node_modules/.pnpm/type-fest@4.26.1/node_modules/type-fest/source/set-required.d.ts","../../../node_modules/.pnpm/type-fest@4.26.1/node_modules/type-fest/source/set-non-nullable.d.ts","../../../node_modules/.pnpm/type-fest@4.26.1/node_modules/type-fest/source/value-of.d.ts","../../../node_modules/.pnpm/type-fest@4.26.1/node_modules/type-fest/source/async-return-type.d.ts","../../../node_modules/.pnpm/type-fest@4.26.1/node_modules/type-fest/source/if-never.d.ts","../../../node_modules/.pnpm/type-fest@4.26.1/node_modules/type-fest/source/conditional-keys.d.ts","../../../node_modules/.pnpm/type-fest@4.26.1/node_modules/type-fest/source/conditional-except.d.ts","../../../node_modules/.pnpm/type-fest@4.26.1/node_modules/type-fest/source/conditional-pick.d.ts","../../../node_modules/.pnpm/type-fest@4.26.1/node_modules/type-fest/source/conditional-pick-deep.d.ts","../../../node_modules/.pnpm/type-fest@4.26.1/node_modules/type-fest/source/stringified.d.ts","../../../node_modules/.pnpm/type-fest@4.26.1/node_modules/type-fest/source/join.d.ts","../../../node_modules/.pnpm/type-fest@4.26.1/node_modules/type-fest/source/less-than-or-equal.d.ts","../../../node_modules/.pnpm/type-fest@4.26.1/node_modules/type-fest/source/array-slice.d.ts","../../../node_modules/.pnpm/type-fest@4.26.1/node_modules/type-fest/source/string-slice.d.ts","../../../node_modules/.pnpm/type-fest@4.26.1/node_modules/type-fest/source/fixed-length-array.d.ts","../../../node_modules/.pnpm/type-fest@4.26.1/node_modules/type-fest/source/multidimensional-array.d.ts","../../../node_modules/.pnpm/type-fest@4.26.1/node_modules/type-fest/source/multidimensional-readonly-array.d.ts","../../../node_modules/.pnpm/type-fest@4.26.1/node_modules/type-fest/source/iterable-element.d.ts","../../../node_modules/.pnpm/type-fest@4.26.1/node_modules/type-fest/source/entry.d.ts","../../../node_modules/.pnpm/type-fest@4.26.1/node_modules/type-fest/source/entries.d.ts","../../../node_modules/.pnpm/type-fest@4.26.1/node_modules/type-fest/source/set-return-type.d.ts","../../../node_modules/.pnpm/type-fest@4.26.1/node_modules/type-fest/source/set-parameter-type.d.ts","../../../node_modules/.pnpm/type-fest@4.26.1/node_modules/type-fest/source/asyncify.d.ts","../../../node_modules/.pnpm/type-fest@4.26.1/node_modules/type-fest/source/jsonify.d.ts","../../../node_modules/.pnpm/type-fest@4.26.1/node_modules/type-fest/source/jsonifiable.d.ts","../../../node_modules/.pnpm/type-fest@4.26.1/node_modules/type-fest/source/find-global-type.d.ts","../../../node_modules/.pnpm/type-fest@4.26.1/node_modules/type-fest/source/structured-cloneable.d.ts","../../../node_modules/.pnpm/type-fest@4.26.1/node_modules/type-fest/source/schema.d.ts","../../../node_modules/.pnpm/type-fest@4.26.1/node_modules/type-fest/source/literal-to-primitive.d.ts","../../../node_modules/.pnpm/type-fest@4.26.1/node_modules/type-fest/source/literal-to-primitive-deep.d.ts","../../../node_modules/.pnpm/type-fest@4.26.1/node_modules/type-fest/source/string-key-of.d.ts","../../../node_modules/.pnpm/type-fest@4.26.1/node_modules/type-fest/source/exact.d.ts","../../../node_modules/.pnpm/type-fest@4.26.1/node_modules/type-fest/source/readonly-tuple.d.ts","../../../node_modules/.pnpm/type-fest@4.26.1/node_modules/type-fest/source/optional-keys-of.d.ts","../../../node_modules/.pnpm/type-fest@4.26.1/node_modules/type-fest/source/override-properties.d.ts","../../../node_modules/.pnpm/type-fest@4.26.1/node_modules/type-fest/source/has-optional-keys.d.ts","../../../node_modules/.pnpm/type-fest@4.26.1/node_modules/type-fest/source/readonly-keys-of.d.ts","../../../node_modules/.pnpm/type-fest@4.26.1/node_modules/type-fest/source/has-readonly-keys.d.ts","../../../node_modules/.pnpm/type-fest@4.26.1/node_modules/type-fest/source/writable-keys-of.d.ts","../../../node_modules/.pnpm/type-fest@4.26.1/node_modules/type-fest/source/has-writable-keys.d.ts","../../../node_modules/.pnpm/type-fest@4.26.1/node_modules/type-fest/source/spread.d.ts","../../../node_modules/.pnpm/type-fest@4.26.1/node_modules/type-fest/source/tuple-to-union.d.ts","../../../node_modules/.pnpm/type-fest@4.26.1/node_modules/type-fest/source/union-to-tuple.d.ts","../../../node_modules/.pnpm/type-fest@4.26.1/node_modules/type-fest/source/int-range.d.ts","../../../node_modules/.pnpm/type-fest@4.26.1/node_modules/type-fest/source/if-any.d.ts","../../../node_modules/.pnpm/type-fest@4.26.1/node_modules/type-fest/source/array-indices.d.ts","../../../node_modules/.pnpm/type-fest@4.26.1/node_modules/type-fest/source/array-values.d.ts","../../../node_modules/.pnpm/type-fest@4.26.1/node_modules/type-fest/source/set-field-type.d.ts","../../../node_modules/.pnpm/type-fest@4.26.1/node_modules/type-fest/source/if-null.d.ts","../../../node_modules/.pnpm/type-fest@4.26.1/node_modules/type-fest/source/split-words.d.ts","../../../node_modules/.pnpm/type-fest@4.26.1/node_modules/type-fest/source/camel-case.d.ts","../../../node_modules/.pnpm/type-fest@4.26.1/node_modules/type-fest/source/camel-cased-properties.d.ts","../../../node_modules/.pnpm/type-fest@4.26.1/node_modules/type-fest/source/camel-cased-properties-deep.d.ts","../../../node_modules/.pnpm/type-fest@4.26.1/node_modules/type-fest/source/delimiter-case.d.ts","../../../node_modules/.pnpm/type-fest@4.26.1/node_modules/type-fest/source/kebab-case.d.ts","../../../node_modules/.pnpm/type-fest@4.26.1/node_modules/type-fest/source/delimiter-cased-properties.d.ts","../../../node_modules/.pnpm/type-fest@4.26.1/node_modules/type-fest/source/kebab-cased-properties.d.ts","../../../node_modules/.pnpm/type-fest@4.26.1/node_modules/type-fest/source/delimiter-cased-properties-deep.d.ts","../../../node_modules/.pnpm/type-fest@4.26.1/node_modules/type-fest/source/kebab-cased-properties-deep.d.ts","../../../node_modules/.pnpm/type-fest@4.26.1/node_modules/type-fest/source/pascal-case.d.ts","../../../node_modules/.pnpm/type-fest@4.26.1/node_modules/type-fest/source/pascal-cased-properties.d.ts","../../../node_modules/.pnpm/type-fest@4.26.1/node_modules/type-fest/source/pascal-cased-properties-deep.d.ts","../../../node_modules/.pnpm/type-fest@4.26.1/node_modules/type-fest/source/snake-case.d.ts","../../../node_modules/.pnpm/type-fest@4.26.1/node_modules/type-fest/source/snake-cased-properties.d.ts","../../../node_modules/.pnpm/type-fest@4.26.1/node_modules/type-fest/source/snake-cased-properties-deep.d.ts","../../../node_modules/.pnpm/type-fest@4.26.1/node_modules/type-fest/source/includes.d.ts","../../../node_modules/.pnpm/type-fest@4.26.1/node_modules/type-fest/source/screaming-snake-case.d.ts","../../../node_modules/.pnpm/type-fest@4.26.1/node_modules/type-fest/source/split.d.ts","../../../node_modules/.pnpm/type-fest@4.26.1/node_modules/type-fest/source/replace.d.ts","../../../node_modules/.pnpm/type-fest@4.26.1/node_modules/type-fest/source/string-repeat.d.ts","../../../node_modules/.pnpm/type-fest@4.26.1/node_modules/type-fest/source/get.d.ts","../../../node_modules/.pnpm/type-fest@4.26.1/node_modules/type-fest/source/last-array-element.d.ts","../../../node_modules/.pnpm/type-fest@4.26.1/node_modules/type-fest/source/global-this.d.ts","../../../node_modules/.pnpm/type-fest@4.26.1/node_modules/type-fest/source/package-json.d.ts","../../../node_modules/.pnpm/type-fest@4.26.1/node_modules/type-fest/source/tsconfig-json.d.ts","../../../node_modules/.pnpm/type-fest@4.26.1/node_modules/type-fest/index.d.ts","../../shared/dist/src/value.d.ts","../../../node_modules/.pnpm/is-what@5.0.2/node_modules/is-what/dist/getType.d.ts","../../../node_modules/.pnpm/is-what@5.0.2/node_modules/is-what/dist/isPlainObject.d.ts","../../../node_modules/.pnpm/is-what@5.0.2/node_modules/is-what/dist/isAnyObject.d.ts","../../../node_modules/.pnpm/is-what@5.0.2/node_modules/is-what/dist/isArray.d.ts","../../../node_modules/.pnpm/is-what@5.0.2/node_modules/is-what/dist/isBlob.d.ts","../../../node_modules/.pnpm/is-what@5.0.2/node_modules/is-what/dist/isBoolean.d.ts","../../../node_modules/.pnpm/is-what@5.0.2/node_modules/is-what/dist/isDate.d.ts","../../../node_modules/.pnpm/is-what@5.0.2/node_modules/is-what/dist/isEmptyArray.d.ts","../../../node_modules/.pnpm/is-what@5.0.2/node_modules/is-what/dist/isEmptyObject.d.ts","../../../node_modules/.pnpm/is-what@5.0.2/node_modules/is-what/dist/isEmptyString.d.ts","../../../node_modules/.pnpm/is-what@5.0.2/node_modules/is-what/dist/isError.d.ts","../../../node_modules/.pnpm/is-what@5.0.2/node_modules/is-what/dist/isFile.d.ts","../../../node_modules/.pnpm/is-what@5.0.2/node_modules/is-what/dist/isFullArray.d.ts","../../../node_modules/.pnpm/is-what@5.0.2/node_modules/is-what/dist/isFullObject.d.ts","../../../node_modules/.pnpm/is-what@5.0.2/node_modules/is-what/dist/isFullString.d.ts","../../../node_modules/.pnpm/is-what@5.0.2/node_modules/is-what/dist/isFunction.d.ts","../../../node_modules/.pnpm/is-what@5.0.2/node_modules/is-what/dist/isType.d.ts","../../../node_modules/.pnpm/is-what@5.0.2/node_modules/is-what/dist/isInstanceOf.d.ts","../../../node_modules/.pnpm/is-what@5.0.2/node_modules/is-what/dist/isMap.d.ts","../../../node_modules/.pnpm/is-what@5.0.2/node_modules/is-what/dist/isNaNValue.d.ts","../../../node_modules/.pnpm/is-what@5.0.2/node_modules/is-what/dist/isNegativeNumber.d.ts","../../../node_modules/.pnpm/is-what@5.0.2/node_modules/is-what/dist/isNull.d.ts","../../../node_modules/.pnpm/is-what@5.0.2/node_modules/is-what/dist/isNullOrUndefined.d.ts","../../../node_modules/.pnpm/is-what@5.0.2/node_modules/is-what/dist/isNumber.d.ts","../../../node_modules/.pnpm/is-what@5.0.2/node_modules/is-what/dist/isObject.d.ts","../../../node_modules/.pnpm/is-what@5.0.2/node_modules/is-what/dist/isObjectLike.d.ts","../../../node_modules/.pnpm/is-what@5.0.2/node_modules/is-what/dist/isOneOf.d.ts","../../../node_modules/.pnpm/is-what@5.0.2/node_modules/is-what/dist/isPositiveNumber.d.ts","../../../node_modules/.pnpm/is-what@5.0.2/node_modules/is-what/dist/isPrimitive.d.ts","../../../node_modules/.pnpm/is-what@5.0.2/node_modules/is-what/dist/isPromise.d.ts","../../../node_modules/.pnpm/is-what@5.0.2/node_modules/is-what/dist/isRegExp.d.ts","../../../node_modules/.pnpm/is-what@5.0.2/node_modules/is-what/dist/isSet.d.ts","../../../node_modules/.pnpm/is-what@5.0.2/node_modules/is-what/dist/isString.d.ts","../../../node_modules/.pnpm/is-what@5.0.2/node_modules/is-what/dist/isSymbol.d.ts","../../../node_modules/.pnpm/is-what@5.0.2/node_modules/is-what/dist/isUndefined.d.ts","../../../node_modules/.pnpm/is-what@5.0.2/node_modules/is-what/dist/isWeakMap.d.ts","../../../node_modules/.pnpm/is-what@5.0.2/node_modules/is-what/dist/isWeakSet.d.ts","../../../node_modules/.pnpm/is-what@5.0.2/node_modules/is-what/dist/index.d.ts","../../../node_modules/.pnpm/radash@12.1.0/node_modules/radash/dist/index.d.ts","../../shared/dist/src/index.d.ts","../../server/dist/src/procedure-caller.d.ts","../../server/dist/src/middleware.d.ts","../../server/dist/src/procedure.d.ts","../../server/dist/src/types.d.ts","../../server/dist/src/router.d.ts","../../server/dist/src/procedure-implementer.d.ts","../../server/dist/src/procedure-builder.d.ts","../../server/dist/src/router-builder.d.ts","../../server/dist/src/router-implementer.d.ts","../../server/dist/src/builder.d.ts","../../server/dist/src/router-caller.d.ts","../../server/dist/src/utils.d.ts","../../shared/dist/src/error.d.ts","../../server/dist/src/index.d.ts","../../transformer/dist/src/types.d.ts","../../transformer/dist/src/openapi/deserializer.d.ts","../../transformer/dist/src/openapi/serializer.d.ts","../../transformer/dist/src/openapi/zod-coerce.d.ts","../../transformer/dist/src/orpc/deserializer.d.ts","../../transformer/dist/src/orpc/serializer.d.ts","../../transformer/dist/src/index.d.ts","../src/procedure.ts","../src/router.ts","../src/index.ts"],"fileIdsList":[[60,61,62],[63],[244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280],[245],[260],[259],[88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,110,111,112,113,114,115,116,117,118,119,120,121,129,130,131,132,134,135,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241],[99],[99,113,117,119,120,128,146,151,178],[104,120,128,147],[128],[187],[216],[104,128,217],[217],[100,172],[171],[95,99,103,128,133,173],[172],[104,128,220],[220],[92],[106],[185],[88,92,99,128,156],[128,148,152,197,234],[119],[99,113,117,118,128],[200],[203],[97],[205],[110],[95],[114],[155],[156],[128,147],[104],[108,109,122,123,124,125,126,127],[110,115,123],[104,114,123],[104,106,123,124,126],[109,113,116,122],[104,113,119,121],[88,114],[113],[111,113,128],[88,113,114,128],[90],[89,90,95,104,110,113,114,128,156],[224],[222],[120],[130,195],[88],[103,104,128,130,131,132,133,134,135,136,137],[106,130,131],[99,147],[98,101],[111,112],[99,104,114,128,137,148,151,152,153],[132],[90,152],[128,132,157],[217,226],[95,104,110,119,128,147],[104,106,114,128,148,149],[100],[128,140],[220,229,232],[100,106],[104,128,156],[104,114,128],[128,133],[96,128],[97,106],[113,147],[128,177,179],[89,192],[99,113,117,118,121,128,146],[99,113,117,118,128,147],[114,149],[76],[65,66,76],[67,68],[65,66,67,69,70,74],[66,67],[75],[67],[65,66,67,70,71,72,73],[64,296,305,306],[64,85,283,296,304],[64,85,283,297,305],[78,79,80,81],[78,79,80,82,83,84],[78],[78,80],[78,79],[77],[85,283,285,286,287,288,289,290,291,292],[284,285,286,287,288,289,290,292,293,294,295,296],[283,287],[85,285,286,287,289],[85,283,286],[85,285,286,287],[85,283,284,285,287],[85,285,287,288],[283,284,286,288],[85,285,287,288,289],[85,286,287],[286],[287],[86,87,242,243,281,282],[242],[298,299,300,301,302,303],[77,298],[298]],"fileInfos":[{"version":"e41c290ef7dd7dab3493e6cbe5909e0148edf4a8dad0271be08edec368a0f7b9","affectsGlobalScope":true,"impliedFormat":1},{"version":"45b7ab580deca34ae9729e97c13cfd999df04416a79116c3bfb483804f85ded4","impliedFormat":1},{"version":"3facaf05f0c5fc569c5649dd359892c98a85557e3e0c847964caeb67076f4d75","impliedFormat":1},{"version":"e44bb8bbac7f10ecc786703fe0a6a4b952189f908707980ba8f3c8975a760962","impliedFormat":1},{"version":"5e1c4c362065a6b95ff952c0eab010f04dcd2c3494e813b493ecfd4fcb9fc0d8","impliedFormat":1},{"version":"68d73b4a11549f9c0b7d352d10e91e5dca8faa3322bfb77b661839c42b1ddec7","impliedFormat":1},{"version":"5efce4fc3c29ea84e8928f97adec086e3dc876365e0982cc8479a07954a3efd4","impliedFormat":1},{"version":"feecb1be483ed332fad555aff858affd90a48ab19ba7272ee084704eb7167569","impliedFormat":1},{"version":"ee7bad0c15b58988daa84371e0b89d313b762ab83cb5b31b8a2d1162e8eb41c2","impliedFormat":1},{"version":"4fd3f3422b2d2a3dfd5cdd0f387b3a8ec45f006c6ea896a4cb41264c2100bb2c","affectsGlobalScope":true,"impliedFormat":1},{"version":"69e65d976bf166ce4a9e6f6c18f94d2424bf116e90837ace179610dbccad9b42","affectsGlobalScope":true,"impliedFormat":1},{"version":"c57796738e7f83dbc4b8e65132f11a377649c00dd3eee333f672b8f0a6bea671","affectsGlobalScope":true,"impliedFormat":1},{"version":"dc2df20b1bcdc8c2d34af4926e2c3ab15ffe1160a63e58b7e09833f616efff44","affectsGlobalScope":true,"impliedFormat":1},{"version":"515d0b7b9bea2e31ea4ec968e9edd2c39d3eebf4a2d5cbd04e88639819ae3b71","affectsGlobalScope":true,"impliedFormat":1},{"version":"62bb211266ee48b2d0edf0d8d1b191f0c24fc379a82bd4c1692a082c540bc6b1","affectsGlobalScope":true,"impliedFormat":1},{"version":"0dc1e7ceda9b8b9b455c3a2d67b0412feab00bd2f66656cd8850e8831b08b537","affectsGlobalScope":true,"impliedFormat":1},{"version":"ce691fb9e5c64efb9547083e4a34091bcbe5bdb41027e310ebba8f7d96a98671","affectsGlobalScope":true,"impliedFormat":1},{"version":"8d697a2a929a5fcb38b7a65594020fcef05ec1630804a33748829c5ff53640d0","affectsGlobalScope":true,"impliedFormat":1},{"version":"4ff2a353abf8a80ee399af572debb8faab2d33ad38c4b4474cff7f26e7653b8d","affectsGlobalScope":true,"impliedFormat":1},{"version":"936e80ad36a2ee83fc3caf008e7c4c5afe45b3cf3d5c24408f039c1d47bdc1df","affectsGlobalScope":true,"impliedFormat":1},{"version":"d15bea3d62cbbdb9797079416b8ac375ae99162a7fba5de2c6c505446486ac0a","affectsGlobalScope":true,"impliedFormat":1},{"version":"68d18b664c9d32a7336a70235958b8997ebc1c3b8505f4f1ae2b7e7753b87618","affectsGlobalScope":true,"impliedFormat":1},{"version":"eb3d66c8327153d8fa7dd03f9c58d351107fe824c79e9b56b462935176cdf12a","affectsGlobalScope":true,"impliedFormat":1},{"version":"38f0219c9e23c915ef9790ab1d680440d95419ad264816fa15009a8851e79119","affectsGlobalScope":true,"impliedFormat":1},{"version":"69ab18c3b76cd9b1be3d188eaf8bba06112ebbe2f47f6c322b5105a6fbc45a2e","affectsGlobalScope":true,"impliedFormat":1},{"version":"fef8cfad2e2dc5f5b3d97a6f4f2e92848eb1b88e897bb7318cef0e2820bceaab","affectsGlobalScope":true,"impliedFormat":1},{"version":"2f11ff796926e0832f9ae148008138ad583bd181899ab7dd768a2666700b1893","affectsGlobalScope":true,"impliedFormat":1},{"version":"4de680d5bb41c17f7f68e0419412ca23c98d5749dcaaea1896172f06435891fc","affectsGlobalScope":true,"impliedFormat":1},{"version":"954296b30da6d508a104a3a0b5d96b76495c709785c1d11610908e63481ee667","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac9538681b19688c8eae65811b329d3744af679e0bdfa5d842d0e32524c73e1c","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a969edff4bd52585473d24995c5ef223f6652d6ef46193309b3921d65dd4376","affectsGlobalScope":true,"impliedFormat":1},{"version":"9e9fbd7030c440b33d021da145d3232984c8bb7916f277e8ffd3dc2e3eae2bdb","affectsGlobalScope":true,"impliedFormat":1},{"version":"811ec78f7fefcabbda4bfa93b3eb67d9ae166ef95f9bff989d964061cbf81a0c","affectsGlobalScope":true,"impliedFormat":1},{"version":"717937616a17072082152a2ef351cb51f98802fb4b2fdabd32399843875974ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"d7e7d9b7b50e5f22c915b525acc5a49a7a6584cf8f62d0569e557c5cfc4b2ac2","affectsGlobalScope":true,"impliedFormat":1},{"version":"71c37f4c9543f31dfced6c7840e068c5a5aacb7b89111a4364b1d5276b852557","affectsGlobalScope":true,"impliedFormat":1},{"version":"576711e016cf4f1804676043e6a0a5414252560eb57de9faceee34d79798c850","affectsGlobalScope":true,"impliedFormat":1},{"version":"89c1b1281ba7b8a96efc676b11b264de7a8374c5ea1e6617f11880a13fc56dc6","affectsGlobalScope":true,"impliedFormat":1},{"version":"74f7fa2d027d5b33eb0471c8e82a6c87216223181ec31247c357a3e8e2fddc5b","affectsGlobalScope":true,"impliedFormat":1},{"version":"f1e2a172204962276504466a6393426d2ca9c54894b1ad0a6c9dad867a65f876","affectsGlobalScope":true,"impliedFormat":1},{"version":"063600664504610fe3e99b717a1223f8b1900087fab0b4cad1496a114744f8df","affectsGlobalScope":true,"impliedFormat":1},{"version":"934019d7e3c81950f9a8426d093458b65d5aff2c7c1511233c0fd5b941e608ab","affectsGlobalScope":true,"impliedFormat":1},{"version":"52ada8e0b6e0482b728070b7639ee42e83a9b1c22d205992756fe020fd9f4a47","affectsGlobalScope":true,"impliedFormat":1},{"version":"3bdefe1bfd4d6dee0e26f928f93ccc128f1b64d5d501ff4a8cf3c6371200e5e6","affectsGlobalScope":true,"impliedFormat":1},{"version":"59fb2c069260b4ba00b5643b907ef5d5341b167e7d1dbf58dfd895658bda2867","affectsGlobalScope":true,"impliedFormat":1},{"version":"639e512c0dfc3fad96a84caad71b8834d66329a1f28dc95e3946c9b58176c73a","affectsGlobalScope":true,"impliedFormat":1},{"version":"368af93f74c9c932edd84c58883e736c9e3d53cec1fe24c0b0ff451f529ceab1","affectsGlobalScope":true,"impliedFormat":1},{"version":"af3dd424cf267428f30ccfc376f47a2c0114546b55c44d8c0f1d57d841e28d74","affectsGlobalScope":true,"impliedFormat":1},{"version":"995c005ab91a498455ea8dfb63aa9f83fa2ea793c3d8aa344be4a1678d06d399","affectsGlobalScope":true,"impliedFormat":1},{"version":"959d36cddf5e7d572a65045b876f2956c973a586da58e5d26cde519184fd9b8a","affectsGlobalScope":true,"impliedFormat":1},{"version":"965f36eae237dd74e6cca203a43e9ca801ce38824ead814728a2807b1910117d","affectsGlobalScope":true,"impliedFormat":1},{"version":"3925a6c820dcb1a06506c90b1577db1fdbf7705d65b62b99dce4be75c637e26b","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a3d63ef2b853447ec4f749d3f368ce642264246e02911fcb1590d8c161b8005","affectsGlobalScope":true,"impliedFormat":1},{"version":"b5ce7a470bc3628408429040c4e3a53a27755022a32fd05e2cb694e7015386c7","affectsGlobalScope":true,"impliedFormat":1},{"version":"8444af78980e3b20b49324f4a16ba35024fef3ee069a0eb67616ea6ca821c47a","affectsGlobalScope":true,"impliedFormat":1},{"version":"3287d9d085fbd618c3971944b65b4be57859f5415f495b33a6adc994edd2f004","affectsGlobalScope":true,"impliedFormat":1},{"version":"b4b67b1a91182421f5df999988c690f14d813b9850b40acd06ed44691f6727ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"8e7f8264d0fb4c5339605a15daadb037bf238c10b654bb3eee14208f860a32ea","affectsGlobalScope":true,"impliedFormat":1},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true,"impliedFormat":1},{"version":"36a2e4c9a67439aca5f91bb304611d5ae6e20d420503e96c230cf8fcdc948d94","affectsGlobalScope":true,"impliedFormat":1},{"version":"8a8eb4ebffd85e589a1cc7c178e291626c359543403d58c9cd22b81fab5b1fb9","impliedFormat":1},{"version":"ed6b820c54de95b2510bb673490d61c7f2187f532a339d8d04981645a918961f","impliedFormat":1},{"version":"aa17748c522bd586f8712b1a308ea23af59c309b2fd278f6d4f406647c72e659","affectsGlobalScope":true,"impliedFormat":1},{"version":"42c169fb8c2d42f4f668c624a9a11e719d5d07dacbebb63cbcf7ef365b0a75b3","impliedFormat":1},{"version":"5487b97cfa28b26b4a9ef0770f872bdbebd4c46124858de00f242c3eed7519f4","impliedFormat":1},{"version":"c2869c4f2f79fd2d03278a68ce7c061a5a8f4aed59efb655e25fe502e3e471d5","impliedFormat":1},{"version":"b8fe42dbf4b0efba2eb4dbfb2b95a3712676717ff8469767dc439e75d0c1a3b6","impliedFormat":1},{"version":"8485b6da53ec35637d072e516631d25dae53984500de70a6989058f24354666f","impliedFormat":1},{"version":"ebe80346928736532e4a822154eb77f57ef3389dbe2b3ba4e571366a15448ef2","impliedFormat":1},{"version":"83306c97a4643d78420f082547ea0d488a0d134c922c8e65fc0b4f08ef66d92b","impliedFormat":1},{"version":"f672c876c1a04a223cf2023b3d91e8a52bb1544c576b81bf64a8fec82be9969c","impliedFormat":1},{"version":"98a9cc18f661d28e6bd31c436e1984f3980f35e0f0aa9cf795c54f8ccb667ffe","impliedFormat":1},{"version":"c76b0c5727302341d0bdfa2cc2cee4b19ff185b554edb6e8543f0661d8487116","impliedFormat":1},{"version":"dccd26a5c85325a011aff40f401e0892bd0688d44132ba79e803c67e68fffea5","impliedFormat":1},{"version":"f5ef066942e4f0bd98200aa6a6694b831e73200c9b3ade77ad0aa2409e8fe1b1","impliedFormat":1},{"version":"b9e99cd94f4166a245f5158f7286c05406e2a4c694619bceb7a4f3519d1d768e","impliedFormat":1},{"version":"5568d7c32e5cf5f35e092649f4e5e168c3114c800b1d7545b7ae5e0415704802","impliedFormat":1},"0f2dbe9fce173b2c5c10df4a97157d7cb6b082af310abe70759572eef943d3df","92523237895f96fdb73233b41807f16c9586032cc58e10777c9b44466b232121","649ef9f17aada1037b29b13da8d7be3fca68661add5f0c423408ab402e3e4c95","40e6a5252b059c72bdf941ef3e3554b2d594b3afb2b3d960fc99e45dc111db6b","c525b73cc35a91182a74352d183af74c84c7dab2b0bcb7af7f28913ee5f834da","5cc386bba6024e9e937e97db6bc9b02aafc9450109fa0dee4ad64c34f2d99779","6c418dc23ed07c2d22255b3fe284dc06aa33bda643457144a8d07e48669135e6","332bba04d0943565dc5346621a3a399e18885bc2ca809072f63c0806bfcdfcd3","e213269ee33762ad5c4f92d54a432d2dfbbdec244467780f94db347ebdb4a586","d37e62c0ec38796922a2158756e127fe8fddd618d07af4f9cc8397fa25ccb773",{"version":"cd51ceafea7762ad639afb3ca5b68e1e4ffeaacaa402d7ef2cae17016e29e098","impliedFormat":1},{"version":"1b8357b3fef5be61b5de6d6a4805a534d68fe3e040c11f1944e27d4aec85936a","impliedFormat":1},{"version":"130ec22c8432ade59047e0225e552c62a47683d870d44785bee95594c8d65408","impliedFormat":1},{"version":"4f24c2781b21b6cd65eede543669327d68a8cf0c6d9cf106a1146b164a7c8ef9","affectsGlobalScope":true,"impliedFormat":1},{"version":"8c44636cd32c9f5279e967d56e67d7623341d90382871adf63eb9ba427a3f820","impliedFormat":1},{"version":"d9720d542df1d7feba0aa80ed11b4584854951f9064232e8d7a76e65dc676136","impliedFormat":1},{"version":"d0fb3d0c64beba3b9ab25916cc018150d78ccb4952fac755c53721d9d624ba0d","impliedFormat":1},{"version":"86b484bcf6344a27a9ee19dd5cef1a5afbbd96aeb07708cc6d8b43d7dfa8466c","impliedFormat":1},{"version":"ba93f0192c9c30d895bee1141dd0c307b75df16245deef7134ac0152294788cc","impliedFormat":1},{"version":"75a7db3b7ddf0ca49651629bb665e0294fda8d19ba04fddc8a14d32bb35eb248","impliedFormat":1},{"version":"eb31477c87de3309cbe4e9984fa74a052f31581edb89103f8590f01874b4e271","impliedFormat":1},{"version":"15ab3db8aa099e50e8e6edd5719b05dd8abf2c75f56dc3895432d92ec3f6cd6b","impliedFormat":1},{"version":"6ff14b0a89cb61cef9424434ee740f91b239c09272c02031db85d388b84b7442","impliedFormat":1},{"version":"865f3db83300a1303349cc49ed80943775a858e0596e7e5a052cc65ac03b10bb","impliedFormat":1},{"version":"28fa41063a242eafcf51e1a62013fccdd9fd5d6760ded6e3ff5ce10a13c2ab31","impliedFormat":1},{"version":"ada60ff3698e7fd0c7ed0e4d93286ee28aed87f648f6748e668a57308fde5a67","impliedFormat":1},{"version":"1a67ba5891772a62706335b59a50720d89905196c90719dad7cec9c81c2990e6","impliedFormat":1},{"version":"5d6f919e1966d45ea297c2478c1985d213e41e2f9a6789964cdb53669e3f7a6f","impliedFormat":1},{"version":"a8289d1d525cf4a3a2d5a8db6b8e14e19f43d122cc47f8fb6b894b0aa2e2bde6","impliedFormat":1},{"version":"d7735a9ccd17767352ab6e799d76735016209aadd5c038a2fc07a29e7b235f02","impliedFormat":1},{"version":"aa1e3e6955faa399dc86747f8a904185a80cefdc1df5c9b952be4a657b3c98e9","impliedFormat":1},{"version":"742be2239f1a967692c4562a16973a08a1177663f972cbb4e1ef2b21bc97c9cf","impliedFormat":1},{"version":"1cf99fe49768500d01d873870085c68caa2b311fd40c1b05e831de0306f5f257","impliedFormat":1},{"version":"bcf177e80d5a2c3499f587886b4a190391fc9ad4388f74ae6aa935a1c22cd623","impliedFormat":1},{"version":"521f9f4dd927972ed9867e3eb2f0dd6990151f9edbb608ce59911864a9a2712d","impliedFormat":1},{"version":"b2a793bde18962a2e1e0f9fa5dce43dd3e801331d36d3e96a7451727185fb16f","impliedFormat":1},{"version":"4e251317bb109337e4918e5d7bcda7ef2d88f106cac531dcea03f7eee1dd2240","impliedFormat":1},{"version":"c71b7d61c20bce394784daa24afcff1a0be74bac91195a61ee47b851851d18fe","impliedFormat":1},{"version":"8504003e88870caa5474ab8bd270f318d0985ba7ede4ee30fe37646768b5362a","impliedFormat":1},{"version":"65465a64d5ee2f989ad4cf8db05f875204a9178f36b07a1e4d3a09a39f762e2e","impliedFormat":1},{"version":"2878f694f7d3a13a88a5e511da7ac084491ca0ddde9539e5dad76737ead9a5a9","impliedFormat":1},{"version":"1c0c6bd0d9b697040f43723d5b1dd6bb9feb743459ff9f95fda9adb6c97c9b37","impliedFormat":1},{"version":"0915ce92bb54e905387b7907e98982620cb7143f7b44291974fb2e592602fe00","impliedFormat":1},{"version":"3cd6df04a43858a6d18402c87a22a68534425e1c8c2fc5bb53fead29af027fcc","impliedFormat":1},{"version":"3aeae89ee20d53e08727a4eb5b5055211a6389a54a9a0a10f800a97616b5cd1b","impliedFormat":1},{"version":"4733c832fb758f546a4246bc62f2e9d68880eb8abf0f08c6bec484decb774dc9","impliedFormat":1},{"version":"58d91c410f31f4dd6fa8d50ad10b4ae9a8d1789306e73a5fbe8abea6a593099b","impliedFormat":1},{"version":"7ca6bb19f016eadcff4eb8993a37ba89be7b42bdf0dbc630d0b0db34e5fc7df0","impliedFormat":1},{"version":"d8d5061cb4521772457a2a3f0fcec028669990daceea78068bc968620641cd25","impliedFormat":1},{"version":"1f0fa44d2aa1edf989a50670c4c92206ac32f1a5acf26a030466cff77583d1cf","impliedFormat":1},{"version":"1f129869a0ee2dcb7ea9a92d6bc8ddf2c2cdaf2d244eec18c3a78efeb5e05c83","impliedFormat":1},{"version":"843e98d09268e2b5b9e6ff60487cf68f4643a72c2e55f7c29b35d1091a4ee4e9","impliedFormat":1},{"version":"4502caaa3fff6c9766bfc145b1b586ef26d53e5f104271db046122b8eef57fd1","impliedFormat":1},{"version":"382f061a24f63ef8bfb1f7a748e1a2568ea62fb91ed1328901a6cf5ad129d61c","impliedFormat":1},{"version":"6927ceeb41bb451f47593de0180c8ff1be7403965d10dc9147ee8d5c91372fff","impliedFormat":1},{"version":"ef4c9ef3ec432ccbf6508f8aa12fbb8b7f4d535c8b484258a3888476de2c6c36","impliedFormat":1},{"version":"77ff2aeb024d9e1679c00705067159c1b98ccac8310987a0bdaf0e38a6ca7333","impliedFormat":1},{"version":"2f28371c56e5d70b77de202e27995373bc46dc07336abbed23c7d74d89910677","impliedFormat":1},{"version":"952c4a8d2338e19ef26c1c0758815b1de6c082a485f88368f5bece1e555f39d4","impliedFormat":1},{"version":"1d953cb875c69aeb1ec8c58298a5226241c6139123b1ff885cedf48ac57b435c","impliedFormat":1},{"version":"1a80e164acd9ee4f3e2a919f9a92bfcdb3412d1fe680b15d60e85eadbaa460f8","impliedFormat":1},{"version":"f981ffdbd651f67db134479a5352dac96648ca195f981284e79dc0a1dbc53fd5","impliedFormat":1},{"version":"a1c85a61ff2b66291676ab84ae03c1b1ff7139ffde1942173f6aee8dc4ee357b","impliedFormat":1},{"version":"ee1969bda02bd6c3172c259d33e9ea5456f1662a74e0acf9fa422bb38263f535","impliedFormat":1},{"version":"f1a5a12e04ad1471647484e7ff11e36eef7960f54740f2e60e17799d99d6f5ab","impliedFormat":1},{"version":"672c1ebc4fa15a1c9b4911f1c68de2bc889f4d166a68c5be8f1e61f94014e9d8","impliedFormat":1},{"version":"ed1b2a459aa469d032f0bd482f4550d0bcd38e9e013532907eb30157054a52d7","impliedFormat":1},{"version":"5a0d920468aa4e792285943cadad77bcb312ba2acf1c665e364ada1b1ee56264","impliedFormat":1},{"version":"de54198142e582c1e26baa21c72321bcdde2a7c38b34cf18e246c7ff95bafd18","impliedFormat":1},{"version":"eccffdb59d6d42e3e773756e8bbe1fa8c23f261ef0cef052f3a8c0194dc6a0e0","impliedFormat":1},{"version":"2d98be5066df3ec9f217b93ef40abab987ec3b55b8f8756a43a081362a356e61","impliedFormat":1},{"version":"928f96b9948742cbaec33e1c34c406c127c2dad5906edb7df08e92b963500a41","impliedFormat":1},{"version":"a2e4333bf0c330ae26b90c68e395ad0a8af06121f1c977979c75c4a5f9f6bc29","impliedFormat":1},{"version":"f29768cdfdf7120ace7341b42cdcf1a215933b65da9b64784e9d5b8c7b0e1d3d","impliedFormat":1},{"version":"2cbf557a03f80df74106cb7cfb38386db82725b720b859e511bdead881171c32","impliedFormat":1},{"version":"e68a372f031a576af235bb036e9fa655c731039145e21f2e53cf9ec05987720a","impliedFormat":1},{"version":"5718274a266c16d3fbe9cd44c0e591ca981c374904137807e0ee7d601524deda","impliedFormat":1},{"version":"dd9694eecd70a405490ad23940ccd8979a628f1d26928090a4b05a943ac61714","impliedFormat":1},{"version":"42ca885a3c8ffdffcd9df252582aef9433438cf545a148e3a5e7568ca8575a56","impliedFormat":1},{"version":"309586820e31406ed70bb03ea8bca88b7ec15215e82d0aa85392da25d0b68630","impliedFormat":1},{"version":"98245fec2e886e8eb5398ce8f734bd0d0b05558c6633aefc09b48c4169596e4e","impliedFormat":1},{"version":"1410d60fe495685e97ed7ca6ff8ac6552b8c609ebe63bd97e51b7afe3c75b563","impliedFormat":1},{"version":"c6843fd4514c67ab4caf76efab7772ceb990fbb1a09085fbcf72b4437a307cf7","impliedFormat":1},{"version":"03ed68319c97cd4ce8f1c4ded110d9b40b8a283c3242b9fe934ccfa834e45572","impliedFormat":1},{"version":"3238e3ed704fe1ba3d523a8a5c8ffd8ca3250a8898cf75ac5e6b13d132a8d226","impliedFormat":1},{"version":"7d8f40a7c4cc81db66ac8eaf88f192996c8a5542c192fdebb7a7f2498c18427d","impliedFormat":1},{"version":"c69ecf92a8a9fb3e4019e6c520260e4074dc6cb0044a71909807b8e7cc05bb65","impliedFormat":1},{"version":"b0cefbc19466a38f5883079f0845babcb856637f7d4f3f594b746d39b74390f7","impliedFormat":1},{"version":"16219e7997bfc39ed9e0bb5f068646c0cdc15de5658d1263e2b44adf0a94ebef","impliedFormat":1},{"version":"4ccedab1527b8bf338730810280cce9f7caf450f1e9e2a6cbabaa880d80d4cf9","impliedFormat":1},{"version":"1f0ee5ddb64540632c6f9a5b63e242b06e49dd6472f3f5bd7dfeb96d12543e15","impliedFormat":1},{"version":"18b86125c67d99150f54225df07349ddd07acde086b55f3eeac1c34c81e424d8","impliedFormat":1},{"version":"2d3f23c577a913d0f396184f31998507e18c8712bc74303a433cf47f94fd7e07","impliedFormat":1},{"version":"0f2c77683296ca2d0e0bee84f8aa944a05df23bc4c5b5fef31dda757e75f660f","impliedFormat":1},{"version":"b848b40bfeb73dfe2e782c5b7588ef521010a3d595297e69386670cbde6b4d82","impliedFormat":1},{"version":"aa79b64f5b3690c66892f292e63dfe3e84eb678a886df86521f67c109d57a0c5","impliedFormat":1},{"version":"a692e092c3b9860c9554698d84baf308ba51fc8f32ddd6646e01a287810b16c6","impliedFormat":1},{"version":"64df9b13259fe3e3fea8ed9cdce950b7a0d40859d706c010eeea8c8d353d53fd","impliedFormat":1},{"version":"1848ebe5252ccb5ca1ca4ff52114516bdbbc7512589d6d0839beeea768bfb400","impliedFormat":1},{"version":"d2e3a1de4fde9291f9fb3b43672a8975a83e79896466f1af0f50066f78dbf39e","impliedFormat":1},{"version":"e37650b39727a6cf036c45a2b6df055e9c69a0afdd6dbab833ab957eb7f1a389","impliedFormat":1},{"version":"84f47c1a2ccfe41176fb5eb37e29fe7f44dbf7b9234d84811b637853b8da705f","impliedFormat":1},{"version":"dd8ded51112dedf953e09e211e423bcc9c8a3943b4b42d0c66c89466e55635a6","impliedFormat":1},{"version":"31073e7d0e51f33b1456ff2ab7f06546c95e24e11c29d5b39a634bc51f86d914","impliedFormat":1},{"version":"9ce0473b0fbaf7287afb01b6a91bd38f73a31093e59ee86de1fd3f352f3fc817","impliedFormat":1},{"version":"6f0d708924c3c4ee64b0fef8f10ad2b4cb87aa70b015eb758848c1ea02db0ed7","impliedFormat":1},{"version":"6addbb18f70100a2de900bace1c800b8d760421cdd33c1d69ee290b71e28003d","impliedFormat":1},{"version":"37569cc8f21262ca62ec9d3aa8eb5740f96e1f325fad3d6aa00a19403bd27b96","impliedFormat":1},{"version":"fa18c6fe108031717db1ada404c14dc75b8b38c54daa3bb3af4c4999861ca653","impliedFormat":1},{"version":"14be139e0f6d380a3d24aaf9b67972add107bea35cf7f2b1b1febac6553c3ede","impliedFormat":1},{"version":"23195b09849686462875673042a12b7f4cd34b4e27d38e40ca9c408dae8e6656","impliedFormat":1},{"version":"ff1731974600a4dad7ec87770e95fc86ca3d329b1ce200032766340f83585e47","impliedFormat":1},{"version":"91bc53a57079cf32e1a10ccf1a1e4a068e9820aa2fc6abc9af6bd6a52f590ffb","impliedFormat":1},{"version":"8dd284442b56814717e70f11ca22f4ea5b35feeca680f475bfcf8f65ba4ba296","impliedFormat":1},{"version":"a304e0af52f81bd7e6491e890fd480f3dc2cb0541dec3c7bd440dba9fea5c34e","impliedFormat":1},{"version":"c60fd0d7a1ba07631dfae8b757be0bffd5ef329e563f9a213e4a5402351c679f","impliedFormat":1},{"version":"a5ca6512e1e0f4aafbbdbc829a3bb5654529aaf299ab760c351e6e6b406548fb","impliedFormat":1},{"version":"e79e530a8216ee171b4aca8fc7b99bd37f5e84555cba57dc3de4cd57580ff21a","impliedFormat":1},{"version":"ceb2c0bc630cca2d0fdd48b0f48915d1e768785efaabf50e31c8399926fee5b1","impliedFormat":1},{"version":"f351eaa598ba2046e3078e5480a7533be7051e4db9212bb40f4eeb84279aa24d","impliedFormat":1},{"version":"12aeda564ee3f1d96ac759553d6749534fafeb2e5142ea2867f22ed39f9d3260","impliedFormat":1},{"version":"4ce53edb8fb1d2f8b2f6814084b773cdf5846f49bf5a426fbe4029327bda95bf","impliedFormat":1},{"version":"1edc9192dfc277c60b92525cdfa1980e1bfd161ae77286c96777d10db36be73c","impliedFormat":1},{"version":"85d63aaff358e8390b666a6bc68d3f56985f18764ab05f750cb67910f7bccb1a","impliedFormat":1},{"version":"0a0bf0cb43af5e0ac1703b48325ebc18ad86f6bf796bdbe96a429c0e95ca4486","impliedFormat":1},{"version":"22fcfd509683e3edfaf0150c255f6afdf437fec04f033f56b43d66fe392e2ad3","impliedFormat":1},{"version":"f08d2151bd91cdaa152532d51af04e29201cfc5d1ea40f8f7cfca0eb4f0b7cf3","impliedFormat":1},{"version":"3d5d9aa6266ea07199ce0a1e1f9268a56579526fad4b511949ddb9f974644202","impliedFormat":1},{"version":"b9c889d8a4595d02ebb3d3a72a335900b2fe9e5b5c54965da404379002b4ac44","impliedFormat":1},{"version":"a3cd30ebae3d0217b6b3204245719fc2c2f29d03b626905cac7127e1fb70e79c","impliedFormat":1},{"version":"1502a23e43fd7e9976a83195dc4eaf54acaff044687e0988a3bd4f19fc26b02b","impliedFormat":1},{"version":"c6e23745504b016ed3ffbe637d69bcc2145d598ecd8bafa4892cafbac09d5fcf","impliedFormat":1},{"version":"2132bf9bdbf54ebcae1ec755ec780a6db1825c306bd6f3e0339d5c1da490f070","impliedFormat":1},{"version":"d9c6f10eebf03d123396d4fee1efbe88bc967a47655ec040ffe7e94271a34fc7","impliedFormat":1},{"version":"380b4fe5dac74984ac6a58a116f7726bede1bdca7cec5362034c0b12971ac9c1","impliedFormat":1},{"version":"00de72aa7abede86b016f0b3bfbf767a08b5cff060991b0722d78b594a4c2105","impliedFormat":1},{"version":"710e09a2711b011cc9681d237da0c1c450d12551b0d21c764826822e548b5464","impliedFormat":1},{"version":"4f5bbef956920cfd90f2cbffccb3c34f8dfc64faaba368d9d41a46925511b6b0","impliedFormat":1},{"version":"11e4e2be18385fa1b4ffa0244c6c626f767058f445bbc66f1c7155cc8e1ec5b4","impliedFormat":1},{"version":"f47280c45ddbc8aa4909396e1d8b526f64dfad4a845aec2356a6c1dc7b6fe722","impliedFormat":1},{"version":"7b7f39411329342a28ea19a4ca3aa4c7f7d888c9f01a411b05e4126280026ea6","impliedFormat":1},{"version":"ba3ef8ea20ac0186dc0d58c1e96ffaf84327d09c377fd82f0ae99236e3430c3a","impliedFormat":1},{"version":"d66e97aa992c0fe797878bcad6257562829582f5f3a2842df71e613e60f7b778","impliedFormat":1},{"version":"a86492d82baf906c071536e8de073e601eaa5deed138c2d9c42d471d72395d7e","impliedFormat":1},{"version":"789110b95e963c99ace4e9ad8b60901201ddc4cab59f32bde5458c1359a4d887","impliedFormat":1},{"version":"92eb8a98444729aa61be5e6e489602363d763da27d1bcfdf89356c1d360484da","impliedFormat":1},{"version":"72bbfa838556113625a605be08f9fed6a4aed73ba03ab787badb317ab6f3bcd7","impliedFormat":1},{"version":"d729b8b400507b9b51ff40d11e012379dbf0acd6e2f66bf596a3bc59444d9bf1","impliedFormat":1},{"version":"32ac4394bb4b0348d46211f2575f22ab762babb399aca1e34cf77998cdef73b2","impliedFormat":1},{"version":"665c7850d78c30326b541d50c4dfad08cea616a7f58df6bb9c4872dd36778ad0","impliedFormat":1},{"version":"1567c6dcf728b0c1044606f830aafd404c00590af56d375399edef82e9ddce92","impliedFormat":1},{"version":"c00b402135ef36fb09d59519e34d03445fd6541c09e68b189abb64151f211b12","impliedFormat":1},{"version":"e08e58ac493a27b29ceee80da90bb31ec64341b520907d480df6244cdbec01f8","impliedFormat":1},{"version":"c0fe2b1135ca803efa203408c953e1e12645b8065e1a4c1336ad8bb11ea1101b","impliedFormat":1},{"version":"d82c245bfb76da44dd573948eca299ff75759b9714f8410468d2d055145a4b64","impliedFormat":1},{"version":"25b1108faedaf2043a97a76218240b1b537459bbca5ae9e2207c236c40dcfdef","impliedFormat":1},{"version":"5a4d0b09de173c391d5d50064fc20166becc194248b1ce738e8a56af5196d28c","impliedFormat":1},{"version":"0e0b8353d6d7f7cc3344adbabf3866e64f2f2813b23477254ba51f69e8fdf0eb","impliedFormat":1},{"version":"fc9ed6f3665b53b9b258ae7eda6394d8387e17fab6d85f48f4603d19633b006b","impliedFormat":1},{"version":"40fbe20b66b8bb3589bf9851283daa52d7aecc3bcae762b2859c1a7093895d61","impliedFormat":1},{"version":"db08c1807e3ae065930d88a3449d926273816d019e6c2a534e82da14e796686d","impliedFormat":1},{"version":"9e5c7463fc0259a38938c9afbdeda92e802cff87560277fd3e385ad24663f214","impliedFormat":1},{"version":"ef83477cca76be1c2d0539408c32b0a2118abcd25c9004f197421155a4649c37","impliedFormat":1},{"version":"b6bf369deed4ac7d681a20efee316018fbfdd044e9d3cd4ec79fdf5821688035","impliedFormat":1},{"version":"d38d37382c93f620216ed2e44e6757d395c141251f244d22aa0983542ec699af","impliedFormat":1},"4a25cc74ceeb7e4859fcd9932feebde34e754c39feabcd50fc1d01eb0dc8aeb0",{"version":"326759f43d598534059e33143843fd283ea0a51fc6cb9f38a576ce49553da354","impliedFormat":99},{"version":"7746188a1c4f43056697c5d595e973194a8be1f00f4d995380030016fee36506","impliedFormat":99},{"version":"a5861f39257a80b10f51f4d8ead817fbd5833a34c512f67281ceac909c10b3e2","impliedFormat":99},{"version":"dd02334867777bd630729fa27e5809ce54a21b82a5861b8ea3a260d40074fa2b","impliedFormat":99},{"version":"02d7939ef02782a45b9aeee121730423e7f44febe444d3e300633f8e9311e205","impliedFormat":99},{"version":"4bb27a5391b68e96c06e8ef5d195aa5fb40a3bf2e3f9e91f754fe0a51027d911","impliedFormat":99},{"version":"d8eb3f146c46e44a581fffba04f6f11068fab9f2f46e610a873e8dc23989ad54","impliedFormat":99},{"version":"0ebf5c9504413f74e59f2df1113d6d4f825718da6f99a52bb84b17f8f1c61f6a","impliedFormat":99},{"version":"b88deb871154baba626b38f2748e9af6991d8dd593a812b9cc3667bbfb64257f","impliedFormat":99},{"version":"7246c9724cf82b0e10ae60fbfd22a21c4730f23da27bdd81b69d75f36edff61a","impliedFormat":99},{"version":"702285aae357b822697a9535bf53aa3b0861acf208c6724e05526965fb371a62","impliedFormat":99},{"version":"4d4aa283941fe2228d4a8a1abe1afd4b59266a90b43e64e6fbb7ce0a4aed66dc","impliedFormat":99},{"version":"1426d7d581b5325ca4c19dbf89b1d65a4cd1810bc45cc53e2bcd3deadca40fc1","impliedFormat":99},{"version":"7b887d8539d6c33c14089110b6756a4ea608e5ea5291b939bbda277be9b729cf","impliedFormat":99},{"version":"edf1438892c4812108868d916a16957ad4ea091f8a4001f7b44c7f4c764dc34e","impliedFormat":99},{"version":"db4922e7f9574af4c2875504da886905a46bbc3e95469209213c254a922ce3fa","impliedFormat":99},{"version":"8358544ecefdda8e12c2f5e822cb920bdd6b6914f9cf073cdb5f6e8d20a217fd","impliedFormat":99},{"version":"64c930312b8dc6e89f81f8508a39ed098438f3fc89d5fd6d388bb635c3af7c4a","impliedFormat":99},{"version":"04b2bf3e07d44b2ad08c641bffdcee23b4865a1b84011e7febdcd4669ddc2910","impliedFormat":99},{"version":"c5fd8ff68f0d6056a4b349724c3bd4e734495e23f981ecf657fc29e37e0733c2","impliedFormat":99},{"version":"3f6caddc36d360a7b51ab22209242449f56f18651aa25109f77cd038c355fad6","impliedFormat":99},{"version":"f40319db1be77b53942cfa1444c11705b5a99379137f564cb7cfe7ad4f20d454","impliedFormat":99},{"version":"9a619a01ad912542884775be55d5c215e52feafc1e3dcb677e5e6fe5ee383287","impliedFormat":99},{"version":"2fa734ac430fc8a87f4a7c1d2cfbf1e665de87c0280293fe1dfa1f0c2e2a2283","impliedFormat":99},{"version":"90681949fee71c852704b230feeb2348a4e98b9e77766ccb3cf0ef5085bdb14e","impliedFormat":99},{"version":"60a8d51fba41d2ed942c3ad9a009b5b88cb9825af332ac9f9ea0d65425b59648","impliedFormat":99},{"version":"8a514bd9f56b476c686bddddcf0ef7b96289cdd11ae7f2f110565fac31eacd35","impliedFormat":99},{"version":"1315261a5f18b5dac3e7f4c4f80be42145e6c7095e54fdeed7deecda33a0191b","impliedFormat":99},{"version":"09eefc2ac900a52f702288843df64a417f22e40157d85e4b4644774a104d5c9f","impliedFormat":99},{"version":"65c2f848f352ca86cb5e2d9304414dd6c12b530465321d85b9ef3b1f26b6ddad","impliedFormat":99},{"version":"35cf770ee6533a062b4abe3b5e17c1ebecc27e76dbe55362f96bdc817d837106","impliedFormat":99},{"version":"f2a1e48e4b248f505735903a5539d978313b0a2fefeb4076e679954f872a817c","impliedFormat":99},{"version":"7a0c98331e493fe568607e2d2c46fb771098041df4f3bf7e79b2c7eaed7f57e5","impliedFormat":99},{"version":"b120f11164b9755802b3be0e6b6dc1eef8f1d3826bb111bfcefa7e16f32c8a1a","impliedFormat":99},{"version":"5079e87f97deefb9e88a9d48cf354bd3549719247357b53ada2edd77e283d5d5","impliedFormat":99},{"version":"92070a19cc7884c0c177f35f6ee4732172e4f98682ce234f192c2bdf11b0cbb0","impliedFormat":99},{"version":"1725a89e1384a677449e70f0ad7a1f71e17a1dfa2dc13a21cc1eeb75dad9f649","impliedFormat":99},{"version":"44ff65a3d557226c5ebc0bd4d0d76419017e02f91c2e1099b8f179783bd7daaa","impliedFormat":99},{"version":"f8a5c1977aeae947b54ddbba133a4f330bdac31b893fb64543117db9e8a92f39","impliedFormat":1},"2a0394e7174ae2bb21fdaacc4b5c9d2ec482cecc32754277db4f59012afcc05d","f108bccd9e272f0b806db147218ee9acd03e3377bd954d1c110cef9e15df078a","1e5da4a9e4e5a93c4341fab2042099d131af0a4bd68baf41ce4bbd811d4241be","8894c211c062b148ba3dd878f7f373a3795061dd5928166cb64590ae0cc08a0f","1df73985832c39284d27e811102e1eb6959c827246f1992ceeca9c45d8b55422","90c35fa93d62652556869fba8ac2509e097d8a96feca4a40e59d0dddba8e5aee","45e3c053214d9a6599b1d4f5f33b8895e37911f931fbc2b1f24d08131e0f5edf","7b5653563926112f81d65971472c785ec92f696bdfc337c48dcaacbfe842cb0c","39caab7e3b31f8b6953666bdccf360de3eff1de55016f5673877e5b51145abd1","229c0d3c98c52b770cbcd536caf3fc043955ac3e1aa2cde63e2452756f7fbafd","cbdbad21693afff2097b0f6706a039cd7f647cb9d136637602bd24cf9ab3f408","b8717c607f322bbc28dd4194d664c961afe7871d59b60a571cd6cdb6d9dbb911","5d9589853f34c85d28cae15ca388b5ddb499525e584b33d245559cdb2d937208","439c4c4937799c722de3202d121c21f3f3c9f1b20607e42cfced7febb37ec747","4710b82a3c30dbc3657fe8ddf73dd24c31af38cab4d3333d8c16e12966a86270","defc1607c7b3a1a5f3903a02ab3b9154c9675f4c02c70bb0379ef9cc9b1e0370","58713ea0f49abf73f7d06e023510e2c30604b271905ea973b48be8cea3cd616c","05527706d34cf9b66d05bd2b0be29ae3dc1b28e691d7b28b4773e21ee38f05c3","9d02908e515c9b52f7b639d1c50bda250684be01b15b078fadb969b41f5a4665","21d936ee231fc52e31822eeee23a92584c16931a0f9f68d45ab4dbbc6596e712","b003f29547bff629ec91f5a5c6ecb08b17fee14bf97b17c15af1ddf70b8f952e","decd87134d0828b745161a0b0084db051904cb1e0366294009583bea99fc9b62",{"version":"78b1d7884fbec17864adb2aa5da0bdde23493dff6fb0162a5ccfa1522f4581d3","signature":"d74ec9bb3fd04f87f921beda48d2be0819831b497da32e444d4a890acfe8541b"},{"version":"a137ea90f01b10f5362fac1e35265909daea89167cc2a85dea42353980c4f8f5","signature":"f8b75df42a0c54a2741bea06d7a377469cb8e6d895d0f07b8bb2196fd9a5d008"},{"version":"2e368dcb9d3343427335be2e9d1c0e3fc0126e4db0d2bc557352e11d65a96b29","signature":"f93eb25cfec7f86b6a36957003f516aee06488409dfaecbfd9ea9a51dbe0ab6a"}],"root":[[305,307]],"options":{"composite":true,"declaration":true,"declarationMap":true,"emitDeclarationOnly":true,"esModuleInterop":true,"jsx":4,"module":7,"noImplicitOverride":true,"noUncheckedIndexedAccess":true,"noUncheckedSideEffectImports":true,"outDir":"./","skipLibCheck":true,"strict":true,"target":9,"useDefineForClassFields":true},"referencedMap":[[63,1],[64,2],[281,3],[246,4],[257,4],[261,5],[268,4],[269,4],[260,6],[242,7],[117,8],[179,9],[151,10],[135,11],[189,12],[217,13],[219,14],[218,15],[173,16],[172,17],[175,18],[174,19],[220,11],[224,20],[222,21],[93,22],[94,22],[136,23],[186,24],[198,25],[100,8],[237,26],[120,27],[119,28],[202,29],[204,30],[98,31],[206,32],[211,33],[96,34],[171,35],[215,36],[157,37],[232,8],[210,38],[108,39],[128,40],[124,41],[125,42],[127,43],[123,44],[122,45],[126,46],[111,47],[112,48],[115,49],[156,36],[191,50],[190,51],[221,21],[225,52],[223,53],[178,27],[121,54],[196,55],[152,56],[138,57],[132,58],[182,59],[183,59],[102,60],[113,61],[154,62],[118,8],[201,63],[240,64],[144,11],[158,65],[226,15],[228,66],[227,66],[148,67],[150,68],[160,11],[203,8],[141,11],[101,69],[142,70],[145,11],[233,71],[214,72],[165,72],[188,73],[166,72],[167,72],[187,37],[153,74],[137,75],[143,76],[229,21],[231,52],[230,53],[216,11],[207,77],[236,78],[180,79],[193,80],[147,81],[146,82],[116,11],[159,11],[209,83],[129,11],[205,8],[107,72],[77,84],[67,85],[69,86],[75,87],[70,88],[73,84],[76,89],[68,90],[74,91],[307,92],[305,93],[306,94],[82,95],[85,96],[79,97],[81,98],[80,99],[78,100],[84,97],[293,101],[297,102],[285,103],[290,104],[284,105],[289,106],[286,107],[291,108],[294,109],[292,110],[288,111],[287,112],[295,113],[296,100],[283,114],[243,115],[304,116],[299,117],[300,118],[301,100],[302,118],[303,118]],"semanticDiagnosticsPerFile":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307],"latestChangedDtsFile":"./src/index.d.ts","checkPending":true,"version":"5.7.2"}
package/src/index.ts DELETED
@@ -1,9 +0,0 @@
1
- /** unnoq */
2
-
3
- import { createRouterClient } from './router'
4
-
5
- export * from './procedure'
6
- export * from './router'
7
- export * from '@orpc/shared/error'
8
-
9
- export const createORPCClient = createRouterClient
@@ -1,245 +0,0 @@
1
- import { ORPCError, os } from '@orpc/server'
2
- import { createFetchHandler } from '@orpc/server/fetch'
3
- import { z } from 'zod'
4
- import { createProcedureClient } from './procedure'
5
-
6
- describe('createProcedureClient', () => {
7
- const schema = z.object({
8
- value: z.string(),
9
- })
10
- const ping = os.input(schema).func((_, __, { path }) => path)
11
- const router = os.router({
12
- ping,
13
- nested: {
14
- ping,
15
- },
16
- })
17
- const handler = createFetchHandler({
18
- router,
19
- })
20
- const orpcFetch: typeof fetch = async (...args) => {
21
- const request = new Request(...args)
22
- const response = await handler({
23
- prefix: '/orpc',
24
- request,
25
- context: {},
26
- })
27
- return response
28
- }
29
-
30
- it('types', () => {
31
- const schema = z.object({
32
- value: z.string(),
33
- })
34
- const client = createProcedureClient<
35
- typeof schema,
36
- undefined,
37
- { age: number }
38
- >({} as any)
39
-
40
- expectTypeOf(client).toEqualTypeOf<
41
- (input: { value: string }) => Promise<{ age: number }>
42
- >()
43
-
44
- const client2 = createProcedureClient<
45
- undefined,
46
- typeof schema,
47
- { value: string }
48
- >({} as any)
49
-
50
- expectTypeOf(client2).toEqualTypeOf<
51
- (input: unknown) => Promise<{ value: string }>
52
- >()
53
- })
54
-
55
- it('simple', async () => {
56
- const client = createProcedureClient({
57
- baseURL: 'http://localhost:3000/orpc',
58
- fetch: orpcFetch,
59
- path: ['ping'],
60
- })
61
-
62
- const result = await client({ value: 'hello' })
63
-
64
- expect(result).toEqual(['ping'])
65
-
66
- const client2 = createProcedureClient({
67
- baseURL: 'http://localhost:3000/orpc',
68
- fetch: orpcFetch,
69
- path: ['nested', 'ping'],
70
- })
71
-
72
- const result2 = await client2({ value: 'hello' })
73
-
74
- expect(result2).toEqual(['nested', 'ping'])
75
- })
76
-
77
- it('on known error', () => {
78
- const client = createProcedureClient({
79
- baseURL: 'http://localhost:3000/orpc',
80
- fetch: orpcFetch,
81
- path: ['ping'],
82
- })
83
-
84
- expect(client({ value: {} })).rejects.toThrowError(
85
- 'Validation input failed',
86
- )
87
- })
88
-
89
- it('on unknown error', () => {
90
- const orpcFetch: typeof fetch = async () => {
91
- return new Response(JSON.stringify({}), {
92
- status: 400,
93
- headers: {
94
- 'Content-Type': 'application/json',
95
- },
96
- })
97
- }
98
-
99
- const client = createProcedureClient({
100
- baseURL: 'http://localhost:3000/orpc',
101
- fetch: orpcFetch,
102
- path: ['ping'],
103
- })
104
-
105
- expect(client({ value: 'hello' })).rejects.toThrowError(
106
- 'Cannot parse response.',
107
- )
108
- })
109
-
110
- it('transformer', async () => {
111
- const router = os.router({
112
- ping: os
113
- .input(z.object({ value: z.date() }))
114
- .func(input => input.value),
115
- })
116
-
117
- const handler = createFetchHandler({
118
- router,
119
- })
120
-
121
- const client = createProcedureClient({
122
- path: ['ping'],
123
- baseURL: 'http://localhost:3000/orpc',
124
- fetch: (...args) => {
125
- const request = new Request(...args)
126
- return handler({
127
- prefix: '/orpc',
128
- request,
129
- context: {},
130
- })
131
- },
132
- })
133
-
134
- const now = new Date()
135
- expect(await client({ value: now })).toEqual(now)
136
- })
137
-
138
- it('error include data', async () => {
139
- const router = os.router({
140
- ping: os.func((input) => {
141
- throw new ORPCError({
142
- code: 'BAD_GATEWAY',
143
- data: {
144
- value: 'from error',
145
- },
146
- })
147
- }),
148
- })
149
-
150
- const handler = createFetchHandler({
151
- router,
152
- })
153
-
154
- const client = createProcedureClient({
155
- path: ['ping'],
156
- baseURL: 'http://localhost:3000/orpc',
157
- fetch: (...args) => {
158
- const request = new Request(...args)
159
- return handler({
160
- prefix: '/orpc',
161
- request,
162
- context: {},
163
- })
164
- },
165
- })
166
-
167
- let error: any
168
- try {
169
- await client(undefined)
170
- }
171
- catch (e) {
172
- error = e
173
- }
174
-
175
- expect(error).toBeInstanceOf(ORPCError)
176
- expect(error.code).toEqual('BAD_GATEWAY')
177
- expect(error.data).toEqual({ value: 'from error' })
178
- })
179
- })
180
-
181
- describe('upload file', () => {
182
- const router = os.router({
183
- signal: os.input(z.instanceof(Blob)).func((input) => {
184
- return input
185
- }),
186
- multiple: os
187
- .input(
188
- z.object({ first: z.instanceof(Blob), second: z.instanceof(Blob) }),
189
- )
190
- .func((input) => {
191
- return input
192
- }),
193
- })
194
-
195
- const handler = createFetchHandler({ router })
196
-
197
- const orpcFetch: typeof fetch = async (...args) => {
198
- const request = new Request(...args)
199
- const response = await handler({
200
- prefix: '/orpc',
201
- request,
202
- context: {},
203
- })
204
- return response
205
- }
206
-
207
- const blob1 = new Blob(['hello'], { type: 'text/plain;charset=utf-8' })
208
- const blob2 = new Blob(['"world"'], { type: 'image/png' })
209
- const blob3 = new Blob(['unnoq'], { type: 'application/octet-stream' })
210
-
211
- it('single file', async () => {
212
- const client = createProcedureClient({
213
- baseURL: 'http://localhost:3000/orpc',
214
- fetch: orpcFetch,
215
- path: ['signal'],
216
- })
217
-
218
- const output = await client(blob1)
219
-
220
- expect(output).toBeInstanceOf(Blob)
221
- expect(output.type).toBe('text/plain;charset=utf-8')
222
- expect(await output.text()).toBe('hello')
223
- })
224
-
225
- it('multiple file', async () => {
226
- const client = createProcedureClient({
227
- baseURL: 'http://localhost:3000/orpc',
228
- fetch: orpcFetch,
229
- path: ['multiple'],
230
- })
231
-
232
- const output = await client({ first: blob3, second: blob2 })
233
-
234
- const file0 = output.first
235
- const file1 = output.second
236
-
237
- expect(file0).toBeInstanceOf(Blob)
238
- expect(file0.type).toBe('application/octet-stream')
239
- expect(await file0.text()).toBe('unnoq')
240
-
241
- expect(file1).toBeInstanceOf(Blob)
242
- expect(file1.type).toBe('image/png')
243
- expect(await file1.text()).toBe('"world"')
244
- })
245
- })
package/src/procedure.ts DELETED
@@ -1,108 +0,0 @@
1
- /// <reference lib="dom" />
2
- /// <reference lib="dom.iterable" />
3
-
4
- import type { Promisable } from '@orpc/shared'
5
- import {
6
- ORPC_HEADER,
7
- ORPC_HEADER_VALUE,
8
- type Schema,
9
- type SchemaInput,
10
- type SchemaOutput,
11
- } from '@orpc/contract'
12
- import { trim } from '@orpc/shared'
13
- import { ORPCError } from '@orpc/shared/error'
14
- import { ORPCDeserializer, ORPCSerializer } from '@orpc/transformer'
15
-
16
- export interface ProcedureClient<
17
- TInputSchema extends Schema,
18
- TOutputSchema extends Schema,
19
- TFuncOutput extends SchemaOutput<TOutputSchema>,
20
- > {
21
- (
22
- input: SchemaInput<TInputSchema>,
23
- ): Promise<SchemaOutput<TOutputSchema, TFuncOutput>>
24
- }
25
-
26
- export interface CreateProcedureClientOptions {
27
- /**
28
- * The base url of the server.
29
- */
30
- baseURL: string
31
-
32
- /**
33
- * The fetch function used to make the request.
34
- * @default global fetch
35
- */
36
- fetch?: typeof fetch
37
-
38
- /**
39
- * The headers used to make the request.
40
- * Invoked before the request is made.
41
- */
42
- headers?: (input: unknown) => Promisable<Headers | Record<string, string>>
43
-
44
- /**
45
- * The path of the procedure on server.
46
- */
47
- path: string[]
48
- }
49
-
50
- export function createProcedureClient<
51
- TInputSchema extends Schema,
52
- TOutputSchema extends Schema,
53
- TFuncOutput extends SchemaOutput<TOutputSchema>,
54
- >(
55
- options: CreateProcedureClientOptions,
56
- ): ProcedureClient<TInputSchema, TOutputSchema, TFuncOutput> {
57
- const serializer = new ORPCSerializer()
58
- const deserializer = new ORPCDeserializer()
59
-
60
- const client = async (input: unknown): Promise<unknown> => {
61
- const fetch_ = options.fetch ?? fetch
62
- const url = `${trim(options.baseURL, '/')}/${options.path.map(encodeURIComponent).join('/')}`
63
- let headers = await options.headers?.(input)
64
- headers = headers instanceof Headers ? headers : new Headers(headers)
65
-
66
- const { body, headers: headers_ } = serializer.serialize(input)
67
-
68
- for (const [key, value] of headers_.entries()) {
69
- headers.set(key, value)
70
- }
71
-
72
- headers.set(ORPC_HEADER, ORPC_HEADER_VALUE)
73
-
74
- const response = await fetch_(url, {
75
- method: 'POST',
76
- headers,
77
- body,
78
- })
79
-
80
- const json = await (async () => {
81
- try {
82
- return await deserializer.deserialize(response)
83
- }
84
- catch (e) {
85
- throw new ORPCError({
86
- code: 'INTERNAL_SERVER_ERROR',
87
- message: 'Cannot parse response.',
88
- cause: e,
89
- })
90
- }
91
- })()
92
-
93
- if (!response.ok) {
94
- throw (
95
- ORPCError.fromJSON(json)
96
- ?? new ORPCError({
97
- status: response.status,
98
- code: 'INTERNAL_SERVER_ERROR',
99
- message: 'Internal server error',
100
- })
101
- )
102
- }
103
-
104
- return json
105
- }
106
-
107
- return client as any
108
- }
@@ -1,148 +0,0 @@
1
- import { oc } from '@orpc/contract'
2
- import { os } from '@orpc/server'
3
- import { createFetchHandler } from '@orpc/server/fetch'
4
- import { z } from 'zod'
5
- import { createRouterClient } from './router'
6
-
7
- describe('createRouterClient', () => {
8
- const schema = z.object({
9
- value: z.string(),
10
- })
11
- const ping = os.input(schema).func((_, __, { path }) => path)
12
- const router = os.router({
13
- ping,
14
- nested: {
15
- unique: ping,
16
- },
17
- })
18
- const handler = createFetchHandler({
19
- router,
20
- })
21
- const orpcFetch: typeof fetch = async (...args) => {
22
- const request = new Request(...args)
23
- return await handler({
24
- prefix: '/orpc',
25
- request,
26
- context: {},
27
- })
28
- }
29
-
30
- it('types with contract router', () => {
31
- const schema = z.object({
32
- value: z.string(),
33
- })
34
-
35
- const ping = oc.input(schema)
36
- const pong = oc.output(schema)
37
- const peng = oc.route({})
38
- const router = oc.router({
39
- ping,
40
- pong,
41
- peng,
42
- nested: {
43
- unique: ping,
44
- },
45
- })
46
-
47
- const client = createRouterClient<typeof router>({} as any)
48
-
49
- expectTypeOf(client.ping).toEqualTypeOf<
50
- (input: { value: string }) => Promise<unknown>
51
- >()
52
- expectTypeOf(client.pong).toEqualTypeOf<
53
- (input: unknown) => Promise<{ value: string }>
54
- >()
55
- expectTypeOf(client.peng).toEqualTypeOf<
56
- (input: unknown) => Promise<unknown>
57
- >()
58
-
59
- expectTypeOf(client.nested.unique).toEqualTypeOf<
60
- (input: { value: string }) => Promise<unknown>
61
- >()
62
- })
63
-
64
- it('types with router', () => {
65
- const schema = z.object({
66
- value: z.string(),
67
- })
68
- const ping = os.input(schema).func(() => '')
69
- const pong = os.output(schema).func(() => ({ value: 'string' }))
70
- const peng = os.route({}).func(() => ({ age: 1244 }))
71
-
72
- const router = os.router({
73
- ping,
74
- pong,
75
- peng,
76
- nested: {
77
- unique: ping,
78
- },
79
- })
80
-
81
- const client = createRouterClient<typeof router>({} as any)
82
-
83
- expectTypeOf(client.ping).toEqualTypeOf<
84
- (input: { value: string }) => Promise<string>
85
- >()
86
- expectTypeOf(client.pong).toEqualTypeOf<
87
- (input: unknown) => Promise<{ value: string }>
88
- >()
89
- expectTypeOf(client.peng).toEqualTypeOf<
90
- (input: unknown) => Promise<{ age: number }>
91
- >()
92
- expectTypeOf(client.nested.unique).toEqualTypeOf<
93
- (input: { value: string }) => Promise<string>
94
- >()
95
- })
96
-
97
- it('simple', async () => {
98
- const client = createRouterClient<typeof router>({
99
- baseURL: 'http://localhost:3000/orpc',
100
- fetch: orpcFetch,
101
- })
102
-
103
- const result = await client.ping({ value: 'hello' })
104
- expect(result).toEqual(['ping'])
105
-
106
- const result2 = await client.nested.unique({ value: 'hello' })
107
- expect(result2).toEqual(['nested', 'unique'])
108
- })
109
-
110
- it('on error', () => {
111
- const client = createRouterClient<typeof router>({
112
- baseURL: 'http://localhost:3000/orpc',
113
- fetch: orpcFetch,
114
- })
115
-
116
- // @ts-expect-error - invalid input
117
- expect(client.ping({ value: {} })).rejects.toThrowError(
118
- 'Validation input failed',
119
- )
120
- })
121
-
122
- it('transformer', async () => {
123
- const router = os.router({
124
- ping: os
125
- .input(z.object({ value: z.date() }))
126
- .func(input => input.value),
127
- })
128
-
129
- const handler = createFetchHandler({
130
- router,
131
- })
132
-
133
- const client = createRouterClient<typeof router>({
134
- baseURL: 'http://localhost:3000/orpc',
135
- fetch: (...args) => {
136
- const request = new Request(...args)
137
- return handler({
138
- prefix: '/orpc',
139
- request,
140
- context: {},
141
- })
142
- },
143
- })
144
-
145
- const now = new Date()
146
- expect(await client.ping({ value: now })).toEqual(now)
147
- })
148
- })
package/src/router.ts DELETED
@@ -1,96 +0,0 @@
1
- /// <reference lib="dom" />
2
-
3
- import type {
4
- ContractProcedure,
5
- ContractRouter,
6
- SchemaOutput,
7
- } from '@orpc/contract'
8
- import type { Procedure, Router } from '@orpc/server'
9
- import type { Promisable } from '@orpc/shared'
10
- import { createProcedureClient, type ProcedureClient } from './procedure'
11
-
12
- export type RouterClientWithContractRouter<TRouter extends ContractRouter> = {
13
- [K in keyof TRouter]: TRouter[K] extends ContractProcedure<
14
- infer UInputSchema,
15
- infer UOutputSchema
16
- >
17
- ? ProcedureClient<UInputSchema, UOutputSchema, SchemaOutput<UOutputSchema>>
18
- : TRouter[K] extends ContractRouter
19
- ? RouterClientWithContractRouter<TRouter[K]>
20
- : never
21
- }
22
-
23
- export type RouterClientWithRouter<TRouter extends Router<any>> = {
24
- [K in keyof TRouter]: TRouter[K] extends Procedure<
25
- any,
26
- any,
27
- infer UInputSchema,
28
- infer UOutputSchema,
29
- infer UFuncOutput
30
- >
31
- ? ProcedureClient<UInputSchema, UOutputSchema, UFuncOutput>
32
- : TRouter[K] extends Router<any>
33
- ? RouterClientWithRouter<TRouter[K]>
34
- : never
35
- }
36
-
37
- export interface CreateRouterClientOptions {
38
- /**
39
- * The base url of the server.
40
- */
41
- baseURL: string
42
-
43
- /**
44
- * The fetch function used to make the request.
45
- * @default global fetch
46
- */
47
- fetch?: typeof fetch
48
-
49
- /**
50
- * The headers used to make the request.
51
- * Invoked before the request is made.
52
- */
53
- headers?: (input: unknown) => Promisable<Headers | Record<string, string>>
54
-
55
- /**
56
- * This used for internal purpose only.
57
- *
58
- * @internal
59
- */
60
- path?: string[]
61
- }
62
-
63
- export function createRouterClient<
64
- TRouter extends Router<any> | ContractRouter,
65
- >(
66
- options: CreateRouterClientOptions,
67
- ): TRouter extends Router<any>
68
- ? RouterClientWithRouter<TRouter>
69
- : TRouter extends ContractRouter
70
- ? RouterClientWithContractRouter<TRouter>
71
- : never {
72
- const path = options?.path ?? []
73
-
74
- const client = new Proxy(
75
- createProcedureClient({
76
- baseURL: options.baseURL,
77
- fetch: options.fetch,
78
- headers: options.headers,
79
- path,
80
- }),
81
- {
82
- get(target, key) {
83
- if (typeof key !== 'string') {
84
- return Reflect.get(target, key)
85
- }
86
-
87
- return createRouterClient({
88
- ...options,
89
- path: [...path, key],
90
- })
91
- },
92
- },
93
- )
94
-
95
- return client as any
96
- }