@sdk-it/rpc 0.29.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +756 -0
- package/dist/index.js.map +7 -0
- package/dist/lib/http/dispatcher.d.ts +27 -0
- package/dist/lib/http/dispatcher.d.ts.map +1 -0
- package/dist/lib/http/interceptors.d.ts +22 -0
- package/dist/lib/http/interceptors.d.ts.map +1 -0
- package/dist/lib/http/parse-response.d.ts +3 -0
- package/dist/lib/http/parse-response.d.ts.map +1 -0
- package/dist/lib/http/parser.d.ts +7 -0
- package/dist/lib/http/parser.d.ts.map +1 -0
- package/dist/lib/http/request.d.ts +33 -0
- package/dist/lib/http/request.d.ts.map +1 -0
- package/dist/lib/http/response.d.ts +263 -0
- package/dist/lib/http/response.d.ts.map +1 -0
- package/dist/lib/rpc.d.ts +33 -0
- package/dist/lib/rpc.d.ts.map +1 -0
- package/package.json +29 -0
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../src/lib/rpc.ts", "../src/lib/http/dispatcher.ts", "../src/lib/http/interceptors.ts", "../src/lib/http/request.ts", "../src/lib/http/parse-response.ts", "../src/lib/http/response.ts"],
|
|
4
|
+
"sourcesContent": ["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { z } from 'zod';\n\nimport { augmentSpec, forEachOperation, loadSpec } from '@sdk-it/spec';\nimport { buildInput, inputToPath, toHttpOutput } from '@sdk-it/typescript';\n\nimport { Dispatcher, fetchType } from './http/dispatcher.ts';\nimport {\n type Interceptor,\n createBaseUrlInterceptor,\n createHeadersInterceptor,\n} from './http/interceptors.ts';\nimport {\n type Endpoint,\n type HeadersInit,\n type Method,\n empty,\n formdata,\n json,\n toRequest,\n urlencoded,\n} from './http/request.ts';\nimport * as http from './http/response.ts';\n\nconst optionsSchema = z.object({\n token: z\n .string()\n .optional()\n .transform((val) => (val ? `Bearer ${val}` : undefined)),\n fetch: fetchType,\n baseUrl: z.string(),\n});\ntype ClientOptions = z.infer<typeof optionsSchema>;\n\nexport class Client {\n public options: ClientOptions;\n public schemas: Record<string, any>;\n constructor(options: ClientOptions, schemas: Record<string, any>) {\n this.options = optionsSchema.parse(options);\n this.schemas = schemas;\n }\n\n async request(\n endpoint: string,\n input: any,\n options?: { signal?: AbortSignal; headers?: HeadersInit },\n ) {\n const route = this.schemas[endpoint];\n console.log(route);\n const withDefaultInputs = Object.assign({}, this.#defaultInputs, input);\n // const [parsedInput, parseError] = parseInput(\n // route.schema,\n // withDefaultInputs,\n // );\n // if (parseError) {\n // throw parseError;\n // }\n const parsedInput = input;\n const result = await route.dispatch(parsedInput as never, {\n fetch: this.options.fetch,\n interceptors: [\n createHeadersInterceptor(\n () => this.defaultHeaders,\n options?.headers ?? {},\n ),\n createBaseUrlInterceptor(() => this.options.baseUrl),\n ],\n signal: options?.signal,\n });\n return result;\n }\n\n get defaultHeaders() {\n return { authorization: this.options['token'] };\n }\n\n get #defaultInputs() {\n return {};\n }\n\n setOptions(options: Partial<ClientOptions>) {\n const validated = optionsSchema.partial().parse(options);\n\n for (const key of Object.keys(validated) as (keyof ClientOptions)[]) {\n if (validated[key] !== undefined) {\n (this.options[key] as (typeof validated)[typeof key]) = validated[key]!;\n }\n }\n }\n}\n\nexport async function rpc(openapi: string, options?: Partial<ClientOptions>) {\n const spec = await loadSpec(openapi);\n const ir = augmentSpec({ spec, responses: { flattenErrorResponses: true } });\n const schemas: Record<string, any> = {};\n\n forEachOperation(ir, (entry, operation) => {\n const endpoint: Endpoint = `${entry.method.toUpperCase() as Method} ${entry.path}`;\n const details = buildInput(ir, operation);\n const contentTypeMap = {\n json: json,\n urlencoded: urlencoded,\n formdata: formdata,\n empty: empty,\n } as const;\n console.log(operation.responses);\n const outputs = Object.keys(operation.responses).flatMap((status) =>\n toHttpOutput(\n spec,\n operation.operationId,\n status,\n operation.responses[status],\n false,\n ),\n );\n schemas[endpoint] = {\n output: outputs.map((it) => http[it.replace('http.', '') as never]),\n toRequest(input: any) {\n const serializer =\n contentTypeMap[\n details.outgoingContentType as keyof typeof contentTypeMap\n ] || defaultSerializer(details.outgoingContentType);\n return toRequest(\n endpoint,\n serializer(input, inputToPath(operation, details.inputs)),\n );\n },\n async dispatch(\n input: any,\n options: {\n signal?: AbortSignal;\n interceptors: Interceptor[];\n fetch: z.infer<typeof fetchType>;\n },\n ) {\n const dispatcher = new Dispatcher(options.interceptors, options.fetch);\n const result = await dispatcher.send(\n this.toRequest(input),\n this.output,\n );\n return result;\n },\n };\n });\n\n console.log(schemas);\n\n return new Client(\n {\n ...options,\n baseUrl: options?.baseUrl ?? ir.servers[0].url,\n },\n schemas,\n );\n}\n\nfunction defaultSerializer(ct: string) {\n throw new Error(`Unsupported content type: ${ct}`);\n}\n", "import z from 'zod';\n\nimport { type Interceptor } from '../http/interceptors.ts';\nimport { type RequestConfig } from '../http/request.ts';\nimport { buffered } from './parse-response.ts';\nimport { APIError, APIResponse, type SuccessfulResponse } from './response.ts';\n\nexport type Unionize<T> = T extends [infer Single extends OutputType]\n ? InstanceType<Single>\n : T extends readonly [...infer Tuple extends OutputType[]]\n ? { [I in keyof Tuple]: InstanceType<Tuple[I]> }[number]\n : never;\n\nexport type InstanceType<T> =\n T extends Type<infer U>\n ? U\n : T extends { type: Type<infer U> }\n ? U\n : T extends Array<unknown>\n ? Unionize<T>\n : never;\n\nexport interface Type<T> {\n new (...args: any[]): T;\n}\nexport type Parser = (\n response: Response,\n) => Promise<unknown> | ReadableStream<any>;\nexport type OutputType =\n | Type<APIResponse>\n | { parser: Parser; type: Type<APIResponse> };\n\nexport const fetchType = z\n .function()\n .args(z.instanceof(Request))\n .returns(z.promise(z.instanceof(Response)))\n .optional();\n\nexport async function parse<T extends OutputType[]>(\n outputs: T,\n response: Response,\n) {\n let output: typeof APIResponse | null = null;\n let parser: Parser = buffered;\n for (const outputType of outputs) {\n if ('parser' in outputType) {\n parser = outputType.parser;\n if (isTypeOf(outputType.type, APIResponse)) {\n if (response.status === outputType.type.status) {\n output = outputType.type;\n break;\n }\n }\n } else if (isTypeOf(outputType, APIResponse)) {\n if (response.status === outputType.status) {\n output = outputType;\n break;\n }\n }\n }\n\n if (response.ok) {\n const apiresponse = (output || APIResponse).create(\n response.status,\n await parser(response),\n );\n\n return apiresponse as Extract<InstanceType<T>, SuccessfulResponse>;\n }\n\n throw (output || APIError).create(response.status, await parser(response));\n}\n\nexport function isTypeOf<T extends Type<APIResponse>>(\n instance: any,\n baseType: T,\n): instance is T {\n if (instance === baseType) {\n return true;\n }\n const prototype = Object.getPrototypeOf(instance);\n if (prototype === null) {\n return false;\n }\n return isTypeOf(prototype, baseType);\n}\n\nexport class Dispatcher {\n #interceptors: Interceptor[] = [];\n #fetch: z.infer<typeof fetchType>;\n constructor(interceptors: Interceptor[], fetch?: z.infer<typeof fetchType>) {\n this.#interceptors = interceptors;\n this.#fetch = fetch;\n }\n\n async send<T extends OutputType[]>(\n config: RequestConfig,\n outputs: T,\n signal?: AbortSignal,\n ) {\n for (const interceptor of this.#interceptors) {\n if (interceptor.before) {\n config = await interceptor.before(config);\n }\n }\n\n let response = await (this.#fetch ?? fetch)(\n new Request(config.url, config.init),\n {\n ...config.init,\n signal: signal,\n },\n );\n\n for (let i = this.#interceptors.length - 1; i >= 0; i--) {\n const interceptor = this.#interceptors[i];\n if (interceptor.after) {\n response = await interceptor.after(response.clone());\n }\n }\n\n return await parse(outputs, response);\n }\n}\n", "import type { HeadersInit, RequestConfig } from './request.ts';\n\nexport interface Interceptor {\n before?: (config: RequestConfig) => Promise<RequestConfig> | RequestConfig;\n after?: (response: Response) => Promise<Response> | Response;\n}\n\nexport const createHeadersInterceptor = (\n defaultHeaders: () => Record<string, string | undefined>,\n requestHeaders: HeadersInit,\n): Interceptor => {\n return {\n before({ init, url }) {\n // Priority Levels\n // 1. Headers Input\n // 2. Request Headers\n // 3. Default Headers\n const headers = defaultHeaders();\n\n for (const [key, value] of new Headers(requestHeaders)) {\n // Only set the header if it doesn't already exist and has a value\n // even though these headers are passed at operation level\n // still they are lower priority compared to the headers input\n if (value !== undefined && !init.headers.has(key)) {\n init.headers.set(key, value);\n }\n }\n\n for (const [key, value] of Object.entries(headers)) {\n // Only set the header if it doesn't already exist and has a value\n if (value !== undefined && !init.headers.has(key)) {\n init.headers.set(key, value);\n }\n }\n\n return { init, url };\n },\n };\n};\n\nexport const createBaseUrlInterceptor = (\n getBaseUrl: () => string,\n): Interceptor => {\n return {\n before({ init, url }) {\n const baseUrl = getBaseUrl();\n if (url.protocol === 'local:') {\n return {\n init,\n url: new URL(url.href.replace('local://', baseUrl)),\n };\n }\n return { init, url };\n },\n };\n};\n\nexport const logInterceptor: Interceptor = {\n before({ url, init }) {\n console.log('Request:', { url, init });\n return { url, init };\n },\n after(response) {\n console.log('Response:', response);\n return response;\n },\n};\n\n/**\n * Creates an interceptor that logs detailed information about requests and responses.\n * @param options Configuration options for the logger\n * @returns An interceptor object with before and after handlers\n */\nexport const createDetailedLogInterceptor = (options?: {\n logLevel?: 'debug' | 'info' | 'warn' | 'error';\n includeRequestBody?: boolean;\n includeResponseBody?: boolean;\n}) => {\n const logLevel = options?.logLevel || 'info';\n const includeRequestBody = options?.includeRequestBody || false;\n const includeResponseBody = options?.includeResponseBody || false;\n\n return {\n async before(request: Request) {\n const logData = {\n url: request.url,\n method: request.method,\n contentType: request.headers.get('Content-Type'),\n headers: Object.fromEntries([...request.headers.entries()]),\n };\n\n console[logLevel]('\uD83D\uDE80 Outgoing Request:', logData);\n\n if (includeRequestBody) {\n try {\n // Clone the request to avoid consuming the body stream\n const clonedRequest = request.clone();\n if (\n clonedRequest.headers\n .get('Content-Type')\n ?.includes('application/json')\n ) {\n const body = await clonedRequest.json().catch(() => null);\n console[logLevel]('Request Body:', body);\n } else {\n const body = await clonedRequest.text().catch(() => null);\n console[logLevel]('Request Body:', body);\n }\n } catch (error) {\n console.error('Could not log request body:', error);\n }\n }\n\n return request;\n },\n\n async after(response: Response) {\n const logData = {\n status: response.status,\n statusText: response.statusText,\n url: response.url,\n headers: Object.fromEntries([...response.headers.entries()]),\n };\n\n console[logLevel]('\uD83D\uDCE5 Incoming Response:', logData);\n\n if (includeResponseBody && response.body) {\n try {\n // Clone the response to avoid consuming the body stream\n const clonedResponse = response.clone();\n if (\n clonedResponse.headers\n .get('Content-Type')\n ?.includes('application/json')\n ) {\n const body = await clonedResponse.json().catch(() => null);\n console[logLevel]('Response Body:', body);\n } else {\n const body = await clonedResponse.text().catch(() => null);\n if (body) {\n console[logLevel](\n 'Response Body:',\n body.substring(0, 500) + (body.length > 500 ? '...' : ''),\n );\n } else {\n console[logLevel]('No response body');\n }\n }\n } catch (error) {\n console.error('Could not log response body:', error);\n }\n }\n\n return response;\n },\n };\n};\n", "type Init = Omit<RequestInit, 'headers'> & { headers: Headers; };\nexport type RequestConfig = { init: Init; url: URL };\nexport type Method = 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE' | 'HEAD' | 'OPTIONS';\nexport type ContentType = 'xml' | 'json' | 'urlencoded' | 'multipart' | 'formdata';\nexport type HeadersInit = [string, string][] | Record<string, string>;\nexport type Endpoint =\n | `${ContentType} ${Method} ${string}`\n | `${Method} ${string}`;\n\nexport type BodyInit =\n | ArrayBuffer\n | Blob\n | FormData\n | URLSearchParams\n | null\n | string;\n\nexport function createUrl(path: string, query: URLSearchParams) {\n const url = new URL(path, `local://`);\n url.search = query.toString();\n return url;\n}\n\nfunction template(\n templateString: string,\n templateVariables: Record<string, any>,\n): string {\n const nargs = /{([0-9a-zA-Z_]+)}/g;\n return templateString.replace(nargs, (match, key: string, index: number) => {\n // Handle escaped double braces\n if (\n templateString[index - 1] === '{' &&\n templateString[index + match.length] === '}'\n ) {\n return key;\n }\n\n const result = key in templateVariables ? templateVariables[key] : null;\n return result === null || result === undefined ? '' : String(result);\n });\n}\n\ntype Input = Record<string, any>;\ntype Props = {\n inputHeaders: string[];\n inputQuery: string[];\n inputBody: string[];\n inputParams: string[];\n};\n\nabstract class Serializer {\n protected input: Input;\n protected props: Props;\n\n constructor(\n input: Input,\n props: Props,\n ) {\n this.input = input;\n this.props = props;\n }\n\n abstract getBody(): BodyInit | null;\n abstract getHeaders(): Record<string, string>;\n serialize(): Serialized {\n const headers = new Headers({});\n for (const header of this.props.inputHeaders) {\n headers.set(header, this.input[header]);\n }\n\n const query = new URLSearchParams();\n for (const key of this.props.inputQuery) {\n const value = this.input[key];\n if (value !== undefined) {\n query.set(key, String(value));\n }\n }\n\n const params = this.props.inputParams.reduce<Record<string, any>>(\n (acc, key) => {\n acc[key] = this.input[key];\n return acc;\n },\n {},\n );\n\n return {\n body: this.getBody(),\n query,\n params,\n headers: this.getHeaders(),\n };\n }\n}\n\ninterface Serialized {\n body: BodyInit | null;\n query: URLSearchParams;\n params: Record<string, any>;\n headers: Record<string, string>;\n}\n\nclass JsonSerializer extends Serializer {\n getBody(): BodyInit | null {\n const body: Record<string, any> = {};\n if (\n this.props.inputBody.length === 1 &&\n this.props.inputBody[0] === '$body'\n ) {\n return JSON.stringify(this.input.$body);\n }\n\n for (const prop of this.props.inputBody) {\n body[prop] = this.input[prop];\n }\n return JSON.stringify(body);\n }\n getHeaders(): Record<string, string> {\n return {\n 'Content-Type': 'application/json',\n Accept: 'application/json',\n };\n }\n}\n\nclass UrlencodedSerializer extends Serializer {\n getBody(): BodyInit | null {\n const body = new URLSearchParams();\n for (const prop of this.props.inputBody) {\n body.set(prop, this.input[prop]);\n }\n return body;\n }\n getHeaders(): Record<string, string> {\n return {\n 'Content-Type': 'application/x-www-form-urlencoded',\n Accept: 'application/json',\n };\n }\n}\n\nclass EmptySerializer extends Serializer {\n getBody(): BodyInit | null {\n return null;\n }\n getHeaders(): Record<string, string> {\n return {};\n }\n}\n\nclass FormDataSerializer extends Serializer {\n getBody(): BodyInit | null {\n const body = new FormData();\n for (const prop of this.props.inputBody) {\n body.append(prop, this.input[prop]);\n }\n return body;\n }\n getHeaders(): Record<string, string> {\n return {\n Accept: 'application/json',\n };\n }\n}\n\nexport function json(input: Input, props: Props) {\n return new JsonSerializer(input, props).serialize();\n}\nexport function urlencoded(input: Input, props: Props) {\n return new UrlencodedSerializer(input, props).serialize();\n}\nexport function empty(input: Input, props: Props) {\n return new EmptySerializer(input, props).serialize();\n}\nexport function formdata(input: Input, props: Props) {\n return new FormDataSerializer(input, props).serialize();\n}\n\nexport function toRequest<T extends Endpoint>(\n endpoint: T,\n input: Serialized,\n): RequestConfig {\n const [method, path] = endpoint.split(' ');\n const pathVariable = template(path, input.params);\n\n return {\n url: createUrl(pathVariable, input.query),\n init: {\n method: method,\n headers: new Headers(input.headers),\n body: method === 'GET' ? undefined : input.body,\n },\n }\n}\n", "import { parse } from \"fast-content-type-parse\";\n\nasync function handleChunkedResponse(response: Response, contentType: string) {\n\tconst { type } = parse(contentType);\n\n\tswitch (type) {\n\t\tcase \"application/json\": {\n\t\t\tlet buffer = \"\";\n\t\t\tconst reader = response.body!.getReader();\n\t\t\tconst decoder = new TextDecoder();\n\t\t\twhile (true) {\n\t\t\t\tconst { value, done } = await reader.read();\n\t\t\t\tif (done) break;\n\t\t\t\tbuffer += decoder.decode(value);\n\t\t\t}\n\t\t\treturn JSON.parse(buffer);\n\t\t}\n\t\tcase \"text/html\":\n\t\tcase \"text/plain\": {\n\t\t\tlet buffer = \"\";\n\t\t\tconst reader = response.body!.getReader();\n\t\t\tconst decoder = new TextDecoder();\n\t\t\twhile (true) {\n\t\t\t\tconst { value, done } = await reader.read();\n\t\t\t\tif (done) break;\n\t\t\t\tbuffer += decoder.decode(value);\n\t\t\t}\n\t\t\treturn buffer;\n\t\t}\n\t\tdefault:\n\t\t\treturn response.body;\n\t}\n}\n\nexport function chunked(response: Response) {\n\treturn response.body!;\n}\n\nexport async function buffered(response: Response) {\n\tconst contentType = response.headers.get(\"Content-Type\");\n\tif (!contentType) {\n\t\tthrow new Error(\"Content-Type header is missing\");\n\t}\n\n\tif (response.status === 204) {\n\t\treturn null;\n\t}\n\n\tconst { type } = parse(contentType);\n\tswitch (type) {\n\t\tcase \"application/json\":\n\t\t\treturn response.json();\n\t\tcase \"text/plain\":\n\t\t\treturn response.text();\n\t\tcase \"text/html\":\n\t\t\treturn response.text();\n\t\tcase \"text/xml\":\n\t\tcase \"application/xml\":\n\t\t\treturn response.text();\n\t\tcase \"application/x-www-form-urlencoded\": {\n\t\t\tconst text = await response.text();\n\t\t\treturn Object.fromEntries(new URLSearchParams(text));\n\t\t}\n\t\tcase \"multipart/form-data\":\n\t\t\treturn response.formData();\n\t\tdefault:\n\t\t\tthrow new Error(`Unsupported content type: ${contentType}`);\n\t}\n}\n", "export const KIND = Symbol('APIDATA');\n\nexport class APIResponse<Body = unknown, Status extends number = number> {\n static readonly status: number;\n static readonly kind: symbol = Symbol.for(\"APIResponse\");\n status: Status;\n data: Body;\n\n constructor(status: Status, data: Body) {\n this.status = status;\n this.data = data;\n }\n\n static create<Body = unknown>(status: number, data: Body) {\n return new this(status, data);\n }\n\n}\n\nexport class APIError<Body, Status extends number = number> extends APIResponse<\n Body,\n Status\n> {\n static override create<T>(status: number, data: T) {\n return new this(status, data);\n }\n}\n\n\n// 2xx Success\nexport class Ok<T> extends APIResponse<T, 200> {\n static override readonly kind = Symbol.for(\"Ok\");\n static override readonly status = 200 as const;\n constructor(data: T) {\n super(Ok.status, data);\n }\n static override create<T>(status: number, data: T) {\n Object.defineProperty(data, KIND, { value: this.kind });\n return new this(data);\n }\n\n static is<T extends {[KIND]:typeof Ok['kind']}>(value: unknown): value is T {\n return typeof value === 'object' && value !== null && KIND in value && value[KIND] === this.kind;\n }\n}\n\n\nexport class Created<T> extends APIResponse<T, 201> {\n static override readonly kind = Symbol.for(\"Created\");\n static override status = 201 as const;\n constructor(data: T) {\n super(Created.status, data);\n }\n static override create<T>(status: number, data: T) {\n Object.defineProperty(data, KIND, { value: this.kind });\n return new this(data);\n }\n\n static is<T extends {[KIND]: typeof Created['kind']}>(value: unknown): value is T {\n return typeof value === 'object' && value !== null && KIND in value && value[KIND] === this.kind;\n }\n}\nexport class Accepted<T> extends APIResponse<T, 202> {\n static override readonly kind = Symbol.for(\"Accepted\");\n static override status = 202 as const;\n constructor(data: T) {\n super(Accepted.status, data);\n }\n static override create<T>(status: number, data: T) {\n Object.defineProperty(data, KIND, { value: this.kind });\n return new this(data);\n }\n\n static is<T extends {[KIND]: typeof Accepted['kind']}>(value: unknown): value is T {\n return typeof value === 'object' && value !== null && KIND in value && value[KIND] === this.kind;\n }\n}\nexport class NoContent extends APIResponse<never, 204> {\n static override readonly kind = Symbol.for(\"NoContent\");\n static override status = 204 as const;\n constructor() {\n super(NoContent.status, null as never);\n }\n static override create(status: number, data: never): NoContent {\n return new this();\n }\n\n static is<T extends {[KIND]: typeof NoContent['kind']}>(value: unknown): value is T {\n return typeof value === 'object' && value !== null && KIND in value && value[KIND] === this.kind;\n }\n}\n\n// 4xx Client Errors\nexport class BadRequest<T> extends APIError<T, 400> {\n static override readonly kind = Symbol.for(\"BadRequest\");\n static override status = 400 as const;\n constructor(data: T) {\n super(BadRequest.status, data);\n }\n static override create<T>(status: number, data: T) {\n Object.defineProperty(data, KIND, { value: this.kind });\n return new this(data);\n }\n\n static is<T extends {[KIND]: typeof BadRequest['kind']}>(value: unknown): value is T {\n return typeof value === 'object' && value !== null && KIND in value && value[KIND] === this.kind;\n }\n}\nexport class Unauthorized<T = { message: string }> extends APIError<T, 401> {\n static override readonly kind = Symbol.for(\"Unauthorized\");\n static override status = 401 as const;\n constructor(data: T) {\n super(Unauthorized.status, data);\n }\n static override create<T>(status: number, data: T) {\n Object.defineProperty(data, KIND, { value: this.kind });\n return new this(data);\n }\n\n static is<T extends {[KIND]: typeof Unauthorized['kind']}>(value: unknown): value is T {\n return typeof value === 'object' && value !== null && KIND in value && value[KIND] === this.kind;\n }\n}\nexport class PaymentRequired<T = { message: string }> extends APIError<T, 402> {\n static override readonly kind = Symbol.for(\"PaymentRequired\");\n static override status = 402 as const;\n constructor(data: T) {\n super(PaymentRequired.status, data);\n }\n static override create<T>(status: number, data: T) {\n Object.defineProperty(data, KIND, { value: this.kind });\n return new this(data);\n }\n\n static is<T extends {[KIND]: typeof PaymentRequired['kind']}>(value: unknown): value is T {\n return typeof value === 'object' && value !== null && KIND in value && value[KIND] === this.kind;\n }\n}\nexport class Forbidden<T = { message: string }> extends APIError<T, 403> {\n static override readonly kind = Symbol.for(\"Forbidden\");\n static override status = 403 as const;\n constructor(data: T) {\n super(Forbidden.status, data);\n }\n static override create<T>(status: number, data: T) {\n Object.defineProperty(data, KIND, { value: this.kind });\n return new this(data);\n }\n\n static is<T extends {[KIND]: typeof Forbidden['kind']}>(value: unknown): value is T {\n return typeof value === 'object' && value !== null && KIND in value && value[KIND] === this.kind;\n }\n}\nexport class NotFound<T = { message: string }> extends APIError<T, 404> {\n static override readonly kind = Symbol.for(\"NotFound\");\n static override status = 404 as const;\n constructor(data: T) {\n super(NotFound.status, data);\n }\n static override create<T>(status: number, data: T) {\n Object.defineProperty(data, KIND, { value: this.kind });\n return new this(data);\n }\n\n static is<T extends {[KIND]: typeof NotFound['kind']}>(value: unknown): value is T {\n return typeof value === 'object' && value !== null && KIND in value && value[KIND] === this.kind;\n }\n}\nexport class MethodNotAllowed<T = { message: string }> extends APIError<\n T,\n 405\n> {\n static override readonly kind = Symbol.for(\"MethodNotAllowed\");\n static override status = 405 as const;\n constructor(data: T) {\n super(MethodNotAllowed.status, data);\n }\n static override create<T>(status: number, data: T) {\n Object.defineProperty(data, KIND, { value: this.kind });\n return new this(data);\n }\n\n static is<T extends {[KIND]: typeof MethodNotAllowed['kind']}>(value: unknown): value is T {\n return typeof value === 'object' && value !== null && KIND in value && value[KIND] === this.kind;\n }\n}\nexport class NotAcceptable<T = { message: string }> extends APIError<T, 406> {\n static override readonly kind = Symbol.for(\"NotAcceptable\");\n static override status = 406 as const;\n constructor(data: T) {\n super(NotAcceptable.status, data);\n }\n static override create<T>(status: number, data: T) {\n Object.defineProperty(data, KIND, { value: this.kind });\n return new this(data);\n }\n\n static is<T extends {[KIND]: typeof NotAcceptable['kind']}>(value: unknown): value is T {\n return typeof value === 'object' && value !== null && KIND in value && value[KIND] === this.kind;\n }\n}\nexport class Conflict<T = { message: string }> extends APIError<T, 409> {\n static override readonly kind = Symbol.for(\"Conflict\");\n static override status = 409 as const;\n constructor(data: T) {\n super(Conflict.status, data);\n }\n static override create<T>(status: number, data: T) {\n Object.defineProperty(data, KIND, { value: this.kind });\n return new this(data);\n }\n\n static is<T extends {[KIND]: typeof Conflict['kind']}>(value: unknown): value is T {\n return typeof value === 'object' && value !== null && KIND in value && value[KIND] === this.kind;\n }\n}\nexport class Gone<T = { message: string }> extends APIError<T, 410> {\n static override readonly kind = Symbol.for(\"Gone\");\n static override status = 410 as const;\n constructor(data: T) {\n super(Gone.status, data);\n }\n static override create<T>(status: number, data: T) {\n Object.defineProperty(data, KIND, { value: this.kind });\n return new this(data);\n }\n\n static is<T extends {[KIND]: typeof Gone['kind']}>(value: unknown): value is T {\n return typeof value === 'object' && value !== null && KIND in value && value[KIND] === this.kind;\n }\n}\nexport class PreconditionFailed<T = { message: string }> extends APIError<T, 412> {\n static override readonly kind = Symbol.for('PreconditionFailed');\n static override status = 412 as const;\n constructor(data: T) {\n super(PreconditionFailed.status, data);\n }\n static override create<T>(status: number, data: T) {\n Object.defineProperty(data, KIND, { value: this.kind });\n return new this(data);\n }\n\n static is<T extends { [KIND]: (typeof PreconditionFailed)['kind'] }>(\n value: unknown,\n ): value is T {\n return (\n typeof value === 'object' &&\n value !== null &&\n KIND in value &&\n value[KIND] === this.kind\n );\n }\n}\nexport class UnprocessableEntity<\n T = { message: string; errors?: Record<string, string[]> },\n> extends APIError<T, 422> {\n static override readonly kind = Symbol.for(\"UnprocessableEntity\");\n static override status = 422 as const;\n constructor(data: T) {\n super(UnprocessableEntity.status, data);\n }\n static override create<T>(status: number, data: T) {\n Object.defineProperty(data, KIND, { value: this.kind });\n return new this(data);\n }\n\n static is<T extends {[KIND]: typeof UnprocessableEntity['kind']}>(value: unknown): value is T {\n return typeof value === 'object' && value !== null && KIND in value && value[KIND] === this.kind;\n }\n}\nexport class TooManyRequests<\n T = { message: string; retryAfter?: string },\n> extends APIError<T, 429> {\n static override readonly kind = Symbol.for(\"TooManyRequests\");\n static override status = 429 as const;\n constructor(data: T) {\n super(TooManyRequests.status, data);\n }\n static override create<T>(status: number, data: T) {\n Object.defineProperty(data, KIND, { value: this.kind });\n return new this(data);\n }\n\n static is<T extends {[KIND]: typeof TooManyRequests['kind']}>(value: unknown): value is T {\n return typeof value === 'object' && value !== null && KIND in value && value[KIND] === this.kind;\n }\n}\nexport class PayloadTooLarge<T = { message: string }> extends APIError<T, 413> {\n static override readonly kind = Symbol.for(\"PayloadTooLarge\");\n static override status = 413 as const;\n constructor(data: T) {\n super(PayloadTooLarge.status, data);\n }\n static override create<T>(status: number, data: T) {\n Object.defineProperty(data, KIND, { value: this.kind });\n return new this(data);\n }\n\n static is<T extends {[KIND]: typeof PayloadTooLarge['kind']}>(value: unknown): value is T {\n return typeof value === 'object' && value !== null && KIND in value && value[KIND] === this.kind;\n }\n}\nexport class UnsupportedMediaType<T = { message: string }> extends APIError<\n T,\n 415\n> {\n static override readonly kind = Symbol.for(\"UnsupportedMediaType\");\n static override status = 415 as const;\n constructor(data: T) {\n super(UnsupportedMediaType.status, data);\n }\n static override create<T>(status: number, data: T) {\n Object.defineProperty(data, KIND, { value: this.kind });\n return new this(data);\n }\n\n static is<T extends {[KIND]: typeof UnsupportedMediaType['kind']}>(value: unknown): value is T {\n return typeof value === 'object' && value !== null && KIND in value && value[KIND] === this.kind;\n }\n}\n\n// 5xx Server Errors\nexport class InternalServerError<T = { message: string }> extends APIError<\n T,\n 500\n> {\n static override readonly kind = Symbol.for(\"InternalServerError\");\n static override status = 500 as const;\n constructor(data: T) {\n super(InternalServerError.status, data);\n }\n static override create<T>(status: number, data: T) {\n Object.defineProperty(data, KIND, { value: this.kind });\n return new this(data);\n }\n\n static is<T extends {[KIND]: typeof InternalServerError['kind']}>(value: unknown): value is T {\n return typeof value === 'object' && value !== null && KIND in value && value[KIND] === this.kind;\n }\n}\nexport class NotImplemented<T = { message: string }> extends APIError<T, 501> {\n static override readonly kind = Symbol.for(\"NotImplemented\");\n static override status = 501 as const;\n constructor(data: T) {\n super(NotImplemented.status, data);\n }\n static override create<T>(status: number, data: T) {\n Object.defineProperty(data, KIND, { value: this.kind });\n return new this(data);\n }\n\n static is<T extends {[KIND]: typeof NotImplemented['kind']}>(value: unknown): value is T {\n return typeof value === 'object' && value !== null && KIND in value && value[KIND] === this.kind;\n }\n}\nexport class BadGateway<T = { message: string }> extends APIError<T, 502> {\n static override readonly kind = Symbol.for(\"BadGateway\");\n static override status = 502 as const;\n constructor(data: T) {\n super(BadGateway.status, data);\n }\n static override create<T>(status: number, data: T) {\n Object.defineProperty(data, KIND, { value: this.kind });\n return new this(data);\n }\n\n static is<T extends {[KIND]: typeof BadGateway['kind']}>(value: unknown): value is T {\n return typeof value === 'object' && value !== null && KIND in value && value[KIND] === this.kind;\n }\n}\nexport class ServiceUnavailable<\n T = { message: string; retryAfter?: string },\n> extends APIError<T, 503> {\n static override readonly kind = Symbol.for(\"ServiceUnavailable\");\n static override status = 503 as const;\n constructor(data: T) {\n super(ServiceUnavailable.status, data);\n }\n static override create<T>(status: number, data: T) {\n Object.defineProperty(data, KIND, { value: this.kind });\n return new this(data);\n }\n\n static is<T extends {[KIND]: typeof ServiceUnavailable['kind']}>(value: unknown): value is T {\n return typeof value === 'object' && value !== null && KIND in value && value[KIND] === this.kind;\n }\n}\nexport class GatewayTimeout<T = { message: string }> extends APIError<T, 504> {\n static override readonly kind = Symbol.for(\"GatewayTimeout\");\n static override status = 504 as const;\n constructor(data: T) {\n super(GatewayTimeout.status, data);\n }\n static override create<T>(status: number, data: T) {\n Object.defineProperty(data, KIND, { value: this.kind });\n return new this(data);\n }\n\n static is<T extends {[KIND]: typeof GatewayTimeout['kind']}>(value: unknown): value is T {\n return typeof value === 'object' && value !== null && KIND in value && value[KIND] === this.kind;\n }\n}\n\nexport type ClientError =\n | BadRequest<unknown>\n | Unauthorized<unknown>\n | PaymentRequired<unknown>\n | Forbidden<unknown>\n | NotFound<unknown>\n | MethodNotAllowed<unknown>\n | NotAcceptable<unknown>\n | Conflict<unknown>\n | Gone<unknown>\n | PreconditionFailed<unknown>\n | PayloadTooLarge<unknown>\n | UnsupportedMediaType<unknown>\n | UnprocessableEntity<unknown>\n | TooManyRequests<unknown>;\n\nexport type ServerError =\n | InternalServerError<unknown>\n | NotImplemented<unknown>\n | BadGateway<unknown>\n | ServiceUnavailable<unknown>\n | GatewayTimeout<unknown>;\n\nexport type ProblematicResponse = ClientError | ServerError;\n\nexport type SuccessfulResponse =\n | Ok<unknown>\n | Created<unknown>\n | Accepted<unknown>\n | NoContent;"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["z", "parse", "fetch", "z", "options"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import z from 'zod';
|
|
2
|
+
import { type Interceptor } from '../http/interceptors.ts';
|
|
3
|
+
import { type RequestConfig } from '../http/request.ts';
|
|
4
|
+
import { APIResponse, type SuccessfulResponse } from './response.ts';
|
|
5
|
+
export type Unionize<T> = T extends [infer Single extends OutputType] ? InstanceType<Single> : T extends readonly [...infer Tuple extends OutputType[]] ? {
|
|
6
|
+
[I in keyof Tuple]: InstanceType<Tuple[I]>;
|
|
7
|
+
}[number] : never;
|
|
8
|
+
export type InstanceType<T> = T extends Type<infer U> ? U : T extends {
|
|
9
|
+
type: Type<infer U>;
|
|
10
|
+
} ? U : T extends Array<unknown> ? Unionize<T> : never;
|
|
11
|
+
export interface Type<T> {
|
|
12
|
+
new (...args: any[]): T;
|
|
13
|
+
}
|
|
14
|
+
export type Parser = (response: Response) => Promise<unknown> | ReadableStream<any>;
|
|
15
|
+
export type OutputType = Type<APIResponse> | {
|
|
16
|
+
parser: Parser;
|
|
17
|
+
type: Type<APIResponse>;
|
|
18
|
+
};
|
|
19
|
+
export declare const fetchType: z.ZodOptional<z.ZodFunction<z.ZodTuple<[z.ZodType<import("undici-types").Request, z.ZodTypeDef, import("undici-types").Request>], z.ZodUnknown>, z.ZodPromise<z.ZodType<import("undici-types").Response, z.ZodTypeDef, import("undici-types").Response>>>>;
|
|
20
|
+
export declare function parse<T extends OutputType[]>(outputs: T, response: Response): Promise<Extract<InstanceType<T>, SuccessfulResponse>>;
|
|
21
|
+
export declare function isTypeOf<T extends Type<APIResponse>>(instance: any, baseType: T): instance is T;
|
|
22
|
+
export declare class Dispatcher {
|
|
23
|
+
#private;
|
|
24
|
+
constructor(interceptors: Interceptor[], fetch?: z.infer<typeof fetchType>);
|
|
25
|
+
send<T extends OutputType[]>(config: RequestConfig, outputs: T, signal?: AbortSignal): Promise<Extract<InstanceType<T>, SuccessfulResponse>>;
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=dispatcher.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dispatcher.d.ts","sourceRoot":"","sources":["../../../src/lib/http/dispatcher.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,KAAK,CAAC;AAEpB,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAExD,OAAO,EAAY,WAAW,EAAE,KAAK,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAE/E,MAAM,MAAM,QAAQ,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,MAAM,SAAS,UAAU,CAAC,GACjE,YAAY,CAAC,MAAM,CAAC,GACpB,CAAC,SAAS,SAAS,CAAC,GAAG,MAAM,KAAK,SAAS,UAAU,EAAE,CAAC,GACtD;KAAG,CAAC,IAAI,MAAM,KAAK,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;CAAE,CAAC,MAAM,CAAC,GACtD,KAAK,CAAC;AAEZ,MAAM,MAAM,YAAY,CAAC,CAAC,IACxB,CAAC,SAAS,IAAI,CAAC,MAAM,CAAC,CAAC,GACnB,CAAC,GACD,CAAC,SAAS;IAAE,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAA;CAAE,GAC/B,CAAC,GACD,CAAC,SAAS,KAAK,CAAC,OAAO,CAAC,GACtB,QAAQ,CAAC,CAAC,CAAC,GACX,KAAK,CAAC;AAEhB,MAAM,WAAW,IAAI,CAAC,CAAC;IACrB,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;CACzB;AACD,MAAM,MAAM,MAAM,GAAG,CACnB,QAAQ,EAAE,QAAQ,KACf,OAAO,CAAC,OAAO,CAAC,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC;AAC5C,MAAM,MAAM,UAAU,GAClB,IAAI,CAAC,WAAW,CAAC,GACjB;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC,CAAA;CAAE,CAAC;AAEhD,eAAO,MAAM,SAAS,4PAIT,CAAC;AAEd,wBAAsB,KAAK,CAAC,CAAC,SAAS,UAAU,EAAE,EAChD,OAAO,EAAE,CAAC,EACV,QAAQ,EAAE,QAAQ,yDA+BnB;AAED,wBAAgB,QAAQ,CAAC,CAAC,SAAS,IAAI,CAAC,WAAW,CAAC,EAClD,QAAQ,EAAE,GAAG,EACb,QAAQ,EAAE,CAAC,GACV,QAAQ,IAAI,CAAC,CASf;AAED,qBAAa,UAAU;;gBAGT,YAAY,EAAE,WAAW,EAAE,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,SAAS,CAAC;IAKpE,IAAI,CAAC,CAAC,SAAS,UAAU,EAAE,EAC/B,MAAM,EAAE,aAAa,EACrB,OAAO,EAAE,CAAC,EACV,MAAM,CAAC,EAAE,WAAW;CAyBvB"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { HeadersInit, RequestConfig } from './request.ts';
|
|
2
|
+
export interface Interceptor {
|
|
3
|
+
before?: (config: RequestConfig) => Promise<RequestConfig> | RequestConfig;
|
|
4
|
+
after?: (response: Response) => Promise<Response> | Response;
|
|
5
|
+
}
|
|
6
|
+
export declare const createHeadersInterceptor: (defaultHeaders: () => Record<string, string | undefined>, requestHeaders: HeadersInit) => Interceptor;
|
|
7
|
+
export declare const createBaseUrlInterceptor: (getBaseUrl: () => string) => Interceptor;
|
|
8
|
+
export declare const logInterceptor: Interceptor;
|
|
9
|
+
/**
|
|
10
|
+
* Creates an interceptor that logs detailed information about requests and responses.
|
|
11
|
+
* @param options Configuration options for the logger
|
|
12
|
+
* @returns An interceptor object with before and after handlers
|
|
13
|
+
*/
|
|
14
|
+
export declare const createDetailedLogInterceptor: (options?: {
|
|
15
|
+
logLevel?: "debug" | "info" | "warn" | "error";
|
|
16
|
+
includeRequestBody?: boolean;
|
|
17
|
+
includeResponseBody?: boolean;
|
|
18
|
+
}) => {
|
|
19
|
+
before(request: Request): Promise<Request>;
|
|
20
|
+
after(response: Response): Promise<Response>;
|
|
21
|
+
};
|
|
22
|
+
//# sourceMappingURL=interceptors.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"interceptors.d.ts","sourceRoot":"","sources":["../../../src/lib/http/interceptors.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAE/D,MAAM,WAAW,WAAW;IAC1B,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,aAAa,KAAK,OAAO,CAAC,aAAa,CAAC,GAAG,aAAa,CAAC;IAC3E,KAAK,CAAC,EAAE,CAAC,QAAQ,EAAE,QAAQ,KAAK,OAAO,CAAC,QAAQ,CAAC,GAAG,QAAQ,CAAC;CAC9D;AAED,eAAO,MAAM,wBAAwB,GACnC,gBAAgB,MAAM,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,EACxD,gBAAgB,WAAW,KAC1B,WA4BF,CAAC;AAEF,eAAO,MAAM,wBAAwB,GACnC,YAAY,MAAM,MAAM,KACvB,WAaF,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,WAS5B,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,4BAA4B,GAAI,UAAU;IACrD,QAAQ,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;IAC/C,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,mBAAmB,CAAC,EAAE,OAAO,CAAC;CAC/B;oBAMyB,OAAO;oBAiCP,QAAQ;CAwCjC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parse-response.d.ts","sourceRoot":"","sources":["../../../src/lib/http/parse-response.ts"],"names":[],"mappings":"AAkCA,wBAAgB,OAAO,CAAC,QAAQ,EAAE,QAAQ,4CAEzC;AAED,wBAAsB,QAAQ,CAAC,QAAQ,EAAE,QAAQ,oBA8BhD"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
export declare class ParseError<T extends z.ZodType<any, any, any>> {
|
|
3
|
+
data: z.typeToFlattenedError<T, z.ZodIssue>;
|
|
4
|
+
constructor(data: z.typeToFlattenedError<T, z.ZodIssue>);
|
|
5
|
+
}
|
|
6
|
+
export declare function parseInput<T extends z.ZodType<any, any, any>>(schema: T, input: unknown): (ParseError<any> | null)[] | (z.TypeOf<T> | null)[];
|
|
7
|
+
//# sourceMappingURL=parser.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../../../src/lib/http/parser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,qBAAa,UAAU,CAAC,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;IACjD,IAAI,EAAE,CAAC,CAAC,oBAAoB,CAAC,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC;gBACvC,IAAI,EAAE,CAAC,CAAC,oBAAoB,CAAC,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC;CAGxD;AAED,wBAAgB,UAAU,CAAC,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAC3D,MAAM,EAAE,CAAC,EACT,KAAK,EAAE,OAAO,uDAQf"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
type Init = Omit<RequestInit, 'headers'> & {
|
|
2
|
+
headers: Headers;
|
|
3
|
+
};
|
|
4
|
+
export type RequestConfig = {
|
|
5
|
+
init: Init;
|
|
6
|
+
url: URL;
|
|
7
|
+
};
|
|
8
|
+
export type Method = 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE' | 'HEAD' | 'OPTIONS';
|
|
9
|
+
export type ContentType = 'xml' | 'json' | 'urlencoded' | 'multipart' | 'formdata';
|
|
10
|
+
export type HeadersInit = [string, string][] | Record<string, string>;
|
|
11
|
+
export type Endpoint = `${ContentType} ${Method} ${string}` | `${Method} ${string}`;
|
|
12
|
+
export type BodyInit = ArrayBuffer | Blob | FormData | URLSearchParams | null | string;
|
|
13
|
+
export declare function createUrl(path: string, query: URLSearchParams): import("url").URL;
|
|
14
|
+
type Input = Record<string, any>;
|
|
15
|
+
type Props = {
|
|
16
|
+
inputHeaders: string[];
|
|
17
|
+
inputQuery: string[];
|
|
18
|
+
inputBody: string[];
|
|
19
|
+
inputParams: string[];
|
|
20
|
+
};
|
|
21
|
+
interface Serialized {
|
|
22
|
+
body: BodyInit | null;
|
|
23
|
+
query: URLSearchParams;
|
|
24
|
+
params: Record<string, any>;
|
|
25
|
+
headers: Record<string, string>;
|
|
26
|
+
}
|
|
27
|
+
export declare function json(input: Input, props: Props): Serialized;
|
|
28
|
+
export declare function urlencoded(input: Input, props: Props): Serialized;
|
|
29
|
+
export declare function empty(input: Input, props: Props): Serialized;
|
|
30
|
+
export declare function formdata(input: Input, props: Props): Serialized;
|
|
31
|
+
export declare function toRequest<T extends Endpoint>(endpoint: T, input: Serialized): RequestConfig;
|
|
32
|
+
export {};
|
|
33
|
+
//# sourceMappingURL=request.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"request.d.ts","sourceRoot":"","sources":["../../../src/lib/http/request.ts"],"names":[],"mappings":"AAAA,KAAK,IAAI,GAAG,IAAI,CAAC,WAAW,EAAE,SAAS,CAAC,GAAG;IAAE,OAAO,EAAE,OAAO,CAAC;CAAE,CAAC;AACjE,MAAM,MAAM,aAAa,GAAG;IAAE,IAAI,EAAE,IAAI,CAAC;IAAC,GAAG,EAAE,GAAG,CAAA;CAAE,CAAC;AACrD,MAAM,MAAM,MAAM,GAAG,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,OAAO,GAAG,QAAQ,GAAG,MAAM,GAAG,SAAS,CAAC;AACtF,MAAM,MAAM,WAAW,GAAG,KAAK,GAAG,MAAM,GAAG,YAAY,GAAG,WAAW,GAAG,UAAU,CAAC;AACnF,MAAM,MAAM,WAAW,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AACtE,MAAM,MAAM,QAAQ,GAChB,GAAG,WAAW,IAAI,MAAM,IAAI,MAAM,EAAE,GACpC,GAAG,MAAM,IAAI,MAAM,EAAE,CAAC;AAE1B,MAAM,MAAM,QAAQ,GAChB,WAAW,GACX,IAAI,GACJ,QAAQ,GACR,eAAe,GACf,IAAI,GACJ,MAAM,CAAC;AAEX,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,eAAe,qBAI7D;AAqBD,KAAK,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AACjC,KAAK,KAAK,GAAG;IACX,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,WAAW,EAAE,MAAM,EAAE,CAAC;CACvB,CAAC;AA+CF,UAAU,UAAU;IAClB,IAAI,EAAE,QAAQ,GAAG,IAAI,CAAC;IACtB,KAAK,EAAE,eAAe,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC5B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACjC;AAiED,wBAAgB,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,cAE9C;AACD,wBAAgB,UAAU,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,cAEpD;AACD,wBAAgB,KAAK,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,cAE/C;AACD,wBAAgB,QAAQ,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,cAElD;AAED,wBAAgB,SAAS,CAAC,CAAC,SAAS,QAAQ,EAC1C,QAAQ,EAAE,CAAC,EACX,KAAK,EAAE,UAAU,GAChB,aAAa,CAYf"}
|
|
@@ -0,0 +1,263 @@
|
|
|
1
|
+
export declare const KIND: unique symbol;
|
|
2
|
+
export declare class APIResponse<Body = unknown, Status extends number = number> {
|
|
3
|
+
static readonly status: number;
|
|
4
|
+
static readonly kind: symbol;
|
|
5
|
+
status: Status;
|
|
6
|
+
data: Body;
|
|
7
|
+
constructor(status: Status, data: Body);
|
|
8
|
+
static create<Body = unknown>(status: number, data: Body): APIResponse<Body, number>;
|
|
9
|
+
}
|
|
10
|
+
export declare class APIError<Body, Status extends number = number> extends APIResponse<Body, Status> {
|
|
11
|
+
static create<T>(status: number, data: T): APIError<T, number>;
|
|
12
|
+
}
|
|
13
|
+
export declare class Ok<T> extends APIResponse<T, 200> {
|
|
14
|
+
static readonly kind: unique symbol;
|
|
15
|
+
static readonly status: 200;
|
|
16
|
+
constructor(data: T);
|
|
17
|
+
static create<T>(status: number, data: T): Ok<T>;
|
|
18
|
+
static is<T extends {
|
|
19
|
+
[KIND]: typeof Ok['kind'];
|
|
20
|
+
}>(value: unknown): value is T;
|
|
21
|
+
}
|
|
22
|
+
export declare class Created<T> extends APIResponse<T, 201> {
|
|
23
|
+
static readonly kind: unique symbol;
|
|
24
|
+
static status: 201;
|
|
25
|
+
constructor(data: T);
|
|
26
|
+
static create<T>(status: number, data: T): Created<T>;
|
|
27
|
+
static is<T extends {
|
|
28
|
+
[KIND]: typeof Created['kind'];
|
|
29
|
+
}>(value: unknown): value is T;
|
|
30
|
+
}
|
|
31
|
+
export declare class Accepted<T> extends APIResponse<T, 202> {
|
|
32
|
+
static readonly kind: unique symbol;
|
|
33
|
+
static status: 202;
|
|
34
|
+
constructor(data: T);
|
|
35
|
+
static create<T>(status: number, data: T): Accepted<T>;
|
|
36
|
+
static is<T extends {
|
|
37
|
+
[KIND]: typeof Accepted['kind'];
|
|
38
|
+
}>(value: unknown): value is T;
|
|
39
|
+
}
|
|
40
|
+
export declare class NoContent extends APIResponse<never, 204> {
|
|
41
|
+
static readonly kind: unique symbol;
|
|
42
|
+
static status: 204;
|
|
43
|
+
constructor();
|
|
44
|
+
static create(status: number, data: never): NoContent;
|
|
45
|
+
static is<T extends {
|
|
46
|
+
[KIND]: typeof NoContent['kind'];
|
|
47
|
+
}>(value: unknown): value is T;
|
|
48
|
+
}
|
|
49
|
+
export declare class BadRequest<T> extends APIError<T, 400> {
|
|
50
|
+
static readonly kind: unique symbol;
|
|
51
|
+
static status: 400;
|
|
52
|
+
constructor(data: T);
|
|
53
|
+
static create<T>(status: number, data: T): BadRequest<T>;
|
|
54
|
+
static is<T extends {
|
|
55
|
+
[KIND]: typeof BadRequest['kind'];
|
|
56
|
+
}>(value: unknown): value is T;
|
|
57
|
+
}
|
|
58
|
+
export declare class Unauthorized<T = {
|
|
59
|
+
message: string;
|
|
60
|
+
}> extends APIError<T, 401> {
|
|
61
|
+
static readonly kind: unique symbol;
|
|
62
|
+
static status: 401;
|
|
63
|
+
constructor(data: T);
|
|
64
|
+
static create<T>(status: number, data: T): Unauthorized<T>;
|
|
65
|
+
static is<T extends {
|
|
66
|
+
[KIND]: typeof Unauthorized['kind'];
|
|
67
|
+
}>(value: unknown): value is T;
|
|
68
|
+
}
|
|
69
|
+
export declare class PaymentRequired<T = {
|
|
70
|
+
message: string;
|
|
71
|
+
}> extends APIError<T, 402> {
|
|
72
|
+
static readonly kind: unique symbol;
|
|
73
|
+
static status: 402;
|
|
74
|
+
constructor(data: T);
|
|
75
|
+
static create<T>(status: number, data: T): PaymentRequired<T>;
|
|
76
|
+
static is<T extends {
|
|
77
|
+
[KIND]: typeof PaymentRequired['kind'];
|
|
78
|
+
}>(value: unknown): value is T;
|
|
79
|
+
}
|
|
80
|
+
export declare class Forbidden<T = {
|
|
81
|
+
message: string;
|
|
82
|
+
}> extends APIError<T, 403> {
|
|
83
|
+
static readonly kind: unique symbol;
|
|
84
|
+
static status: 403;
|
|
85
|
+
constructor(data: T);
|
|
86
|
+
static create<T>(status: number, data: T): Forbidden<T>;
|
|
87
|
+
static is<T extends {
|
|
88
|
+
[KIND]: typeof Forbidden['kind'];
|
|
89
|
+
}>(value: unknown): value is T;
|
|
90
|
+
}
|
|
91
|
+
export declare class NotFound<T = {
|
|
92
|
+
message: string;
|
|
93
|
+
}> extends APIError<T, 404> {
|
|
94
|
+
static readonly kind: unique symbol;
|
|
95
|
+
static status: 404;
|
|
96
|
+
constructor(data: T);
|
|
97
|
+
static create<T>(status: number, data: T): NotFound<T>;
|
|
98
|
+
static is<T extends {
|
|
99
|
+
[KIND]: typeof NotFound['kind'];
|
|
100
|
+
}>(value: unknown): value is T;
|
|
101
|
+
}
|
|
102
|
+
export declare class MethodNotAllowed<T = {
|
|
103
|
+
message: string;
|
|
104
|
+
}> extends APIError<T, 405> {
|
|
105
|
+
static readonly kind: unique symbol;
|
|
106
|
+
static status: 405;
|
|
107
|
+
constructor(data: T);
|
|
108
|
+
static create<T>(status: number, data: T): MethodNotAllowed<T>;
|
|
109
|
+
static is<T extends {
|
|
110
|
+
[KIND]: typeof MethodNotAllowed['kind'];
|
|
111
|
+
}>(value: unknown): value is T;
|
|
112
|
+
}
|
|
113
|
+
export declare class NotAcceptable<T = {
|
|
114
|
+
message: string;
|
|
115
|
+
}> extends APIError<T, 406> {
|
|
116
|
+
static readonly kind: unique symbol;
|
|
117
|
+
static status: 406;
|
|
118
|
+
constructor(data: T);
|
|
119
|
+
static create<T>(status: number, data: T): NotAcceptable<T>;
|
|
120
|
+
static is<T extends {
|
|
121
|
+
[KIND]: typeof NotAcceptable['kind'];
|
|
122
|
+
}>(value: unknown): value is T;
|
|
123
|
+
}
|
|
124
|
+
export declare class Conflict<T = {
|
|
125
|
+
message: string;
|
|
126
|
+
}> extends APIError<T, 409> {
|
|
127
|
+
static readonly kind: unique symbol;
|
|
128
|
+
static status: 409;
|
|
129
|
+
constructor(data: T);
|
|
130
|
+
static create<T>(status: number, data: T): Conflict<T>;
|
|
131
|
+
static is<T extends {
|
|
132
|
+
[KIND]: typeof Conflict['kind'];
|
|
133
|
+
}>(value: unknown): value is T;
|
|
134
|
+
}
|
|
135
|
+
export declare class Gone<T = {
|
|
136
|
+
message: string;
|
|
137
|
+
}> extends APIError<T, 410> {
|
|
138
|
+
static readonly kind: unique symbol;
|
|
139
|
+
static status: 410;
|
|
140
|
+
constructor(data: T);
|
|
141
|
+
static create<T>(status: number, data: T): Gone<T>;
|
|
142
|
+
static is<T extends {
|
|
143
|
+
[KIND]: typeof Gone['kind'];
|
|
144
|
+
}>(value: unknown): value is T;
|
|
145
|
+
}
|
|
146
|
+
export declare class PreconditionFailed<T = {
|
|
147
|
+
message: string;
|
|
148
|
+
}> extends APIError<T, 412> {
|
|
149
|
+
static readonly kind: unique symbol;
|
|
150
|
+
static status: 412;
|
|
151
|
+
constructor(data: T);
|
|
152
|
+
static create<T>(status: number, data: T): PreconditionFailed<T>;
|
|
153
|
+
static is<T extends {
|
|
154
|
+
[KIND]: (typeof PreconditionFailed)['kind'];
|
|
155
|
+
}>(value: unknown): value is T;
|
|
156
|
+
}
|
|
157
|
+
export declare class UnprocessableEntity<T = {
|
|
158
|
+
message: string;
|
|
159
|
+
errors?: Record<string, string[]>;
|
|
160
|
+
}> extends APIError<T, 422> {
|
|
161
|
+
static readonly kind: unique symbol;
|
|
162
|
+
static status: 422;
|
|
163
|
+
constructor(data: T);
|
|
164
|
+
static create<T>(status: number, data: T): UnprocessableEntity<T>;
|
|
165
|
+
static is<T extends {
|
|
166
|
+
[KIND]: typeof UnprocessableEntity['kind'];
|
|
167
|
+
}>(value: unknown): value is T;
|
|
168
|
+
}
|
|
169
|
+
export declare class TooManyRequests<T = {
|
|
170
|
+
message: string;
|
|
171
|
+
retryAfter?: string;
|
|
172
|
+
}> extends APIError<T, 429> {
|
|
173
|
+
static readonly kind: unique symbol;
|
|
174
|
+
static status: 429;
|
|
175
|
+
constructor(data: T);
|
|
176
|
+
static create<T>(status: number, data: T): TooManyRequests<T>;
|
|
177
|
+
static is<T extends {
|
|
178
|
+
[KIND]: typeof TooManyRequests['kind'];
|
|
179
|
+
}>(value: unknown): value is T;
|
|
180
|
+
}
|
|
181
|
+
export declare class PayloadTooLarge<T = {
|
|
182
|
+
message: string;
|
|
183
|
+
}> extends APIError<T, 413> {
|
|
184
|
+
static readonly kind: unique symbol;
|
|
185
|
+
static status: 413;
|
|
186
|
+
constructor(data: T);
|
|
187
|
+
static create<T>(status: number, data: T): PayloadTooLarge<T>;
|
|
188
|
+
static is<T extends {
|
|
189
|
+
[KIND]: typeof PayloadTooLarge['kind'];
|
|
190
|
+
}>(value: unknown): value is T;
|
|
191
|
+
}
|
|
192
|
+
export declare class UnsupportedMediaType<T = {
|
|
193
|
+
message: string;
|
|
194
|
+
}> extends APIError<T, 415> {
|
|
195
|
+
static readonly kind: unique symbol;
|
|
196
|
+
static status: 415;
|
|
197
|
+
constructor(data: T);
|
|
198
|
+
static create<T>(status: number, data: T): UnsupportedMediaType<T>;
|
|
199
|
+
static is<T extends {
|
|
200
|
+
[KIND]: typeof UnsupportedMediaType['kind'];
|
|
201
|
+
}>(value: unknown): value is T;
|
|
202
|
+
}
|
|
203
|
+
export declare class InternalServerError<T = {
|
|
204
|
+
message: string;
|
|
205
|
+
}> extends APIError<T, 500> {
|
|
206
|
+
static readonly kind: unique symbol;
|
|
207
|
+
static status: 500;
|
|
208
|
+
constructor(data: T);
|
|
209
|
+
static create<T>(status: number, data: T): InternalServerError<T>;
|
|
210
|
+
static is<T extends {
|
|
211
|
+
[KIND]: typeof InternalServerError['kind'];
|
|
212
|
+
}>(value: unknown): value is T;
|
|
213
|
+
}
|
|
214
|
+
export declare class NotImplemented<T = {
|
|
215
|
+
message: string;
|
|
216
|
+
}> extends APIError<T, 501> {
|
|
217
|
+
static readonly kind: unique symbol;
|
|
218
|
+
static status: 501;
|
|
219
|
+
constructor(data: T);
|
|
220
|
+
static create<T>(status: number, data: T): NotImplemented<T>;
|
|
221
|
+
static is<T extends {
|
|
222
|
+
[KIND]: typeof NotImplemented['kind'];
|
|
223
|
+
}>(value: unknown): value is T;
|
|
224
|
+
}
|
|
225
|
+
export declare class BadGateway<T = {
|
|
226
|
+
message: string;
|
|
227
|
+
}> extends APIError<T, 502> {
|
|
228
|
+
static readonly kind: unique symbol;
|
|
229
|
+
static status: 502;
|
|
230
|
+
constructor(data: T);
|
|
231
|
+
static create<T>(status: number, data: T): BadGateway<T>;
|
|
232
|
+
static is<T extends {
|
|
233
|
+
[KIND]: typeof BadGateway['kind'];
|
|
234
|
+
}>(value: unknown): value is T;
|
|
235
|
+
}
|
|
236
|
+
export declare class ServiceUnavailable<T = {
|
|
237
|
+
message: string;
|
|
238
|
+
retryAfter?: string;
|
|
239
|
+
}> extends APIError<T, 503> {
|
|
240
|
+
static readonly kind: unique symbol;
|
|
241
|
+
static status: 503;
|
|
242
|
+
constructor(data: T);
|
|
243
|
+
static create<T>(status: number, data: T): ServiceUnavailable<T>;
|
|
244
|
+
static is<T extends {
|
|
245
|
+
[KIND]: typeof ServiceUnavailable['kind'];
|
|
246
|
+
}>(value: unknown): value is T;
|
|
247
|
+
}
|
|
248
|
+
export declare class GatewayTimeout<T = {
|
|
249
|
+
message: string;
|
|
250
|
+
}> extends APIError<T, 504> {
|
|
251
|
+
static readonly kind: unique symbol;
|
|
252
|
+
static status: 504;
|
|
253
|
+
constructor(data: T);
|
|
254
|
+
static create<T>(status: number, data: T): GatewayTimeout<T>;
|
|
255
|
+
static is<T extends {
|
|
256
|
+
[KIND]: typeof GatewayTimeout['kind'];
|
|
257
|
+
}>(value: unknown): value is T;
|
|
258
|
+
}
|
|
259
|
+
export type ClientError = BadRequest<unknown> | Unauthorized<unknown> | PaymentRequired<unknown> | Forbidden<unknown> | NotFound<unknown> | MethodNotAllowed<unknown> | NotAcceptable<unknown> | Conflict<unknown> | Gone<unknown> | PreconditionFailed<unknown> | PayloadTooLarge<unknown> | UnsupportedMediaType<unknown> | UnprocessableEntity<unknown> | TooManyRequests<unknown>;
|
|
260
|
+
export type ServerError = InternalServerError<unknown> | NotImplemented<unknown> | BadGateway<unknown> | ServiceUnavailable<unknown> | GatewayTimeout<unknown>;
|
|
261
|
+
export type ProblematicResponse = ClientError | ServerError;
|
|
262
|
+
export type SuccessfulResponse = Ok<unknown> | Created<unknown> | Accepted<unknown> | NoContent;
|
|
263
|
+
//# sourceMappingURL=response.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"response.d.ts","sourceRoot":"","sources":["../../../src/lib/http/response.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { type HeadersInit } from './http/request.ts';
|
|
3
|
+
declare const optionsSchema: z.ZodObject<{
|
|
4
|
+
token: z.ZodEffects<z.ZodOptional<z.ZodString>, string | undefined, string | undefined>;
|
|
5
|
+
fetch: z.ZodOptional<z.ZodFunction<z.ZodTuple<[z.ZodType<import("undici-types").Request, z.ZodTypeDef, import("undici-types").Request>], z.ZodUnknown>, z.ZodPromise<z.ZodType<import("undici-types").Response, z.ZodTypeDef, import("undici-types").Response>>>>;
|
|
6
|
+
baseUrl: z.ZodString;
|
|
7
|
+
}, "strip", z.ZodTypeAny, {
|
|
8
|
+
baseUrl: string;
|
|
9
|
+
token?: string | undefined;
|
|
10
|
+
fetch?: ((args_0: import("undici-types").Request, ...args: unknown[]) => Promise<import("undici-types").Response>) | undefined;
|
|
11
|
+
}, {
|
|
12
|
+
baseUrl: string;
|
|
13
|
+
token?: string | undefined;
|
|
14
|
+
fetch?: ((args_0: import("undici-types").Request, ...args: unknown[]) => Promise<import("undici-types").Response>) | undefined;
|
|
15
|
+
}>;
|
|
16
|
+
type ClientOptions = z.infer<typeof optionsSchema>;
|
|
17
|
+
export declare class Client {
|
|
18
|
+
#private;
|
|
19
|
+
options: ClientOptions;
|
|
20
|
+
schemas: Record<string, any>;
|
|
21
|
+
constructor(options: ClientOptions, schemas: Record<string, any>);
|
|
22
|
+
request(endpoint: string, input: any, options?: {
|
|
23
|
+
signal?: AbortSignal;
|
|
24
|
+
headers?: HeadersInit;
|
|
25
|
+
}): Promise<any>;
|
|
26
|
+
get defaultHeaders(): {
|
|
27
|
+
authorization: string | undefined;
|
|
28
|
+
};
|
|
29
|
+
setOptions(options: Partial<ClientOptions>): void;
|
|
30
|
+
}
|
|
31
|
+
export declare function rpc(openapi: string, options?: Partial<ClientOptions>): Promise<Client>;
|
|
32
|
+
export {};
|
|
33
|
+
//# sourceMappingURL=rpc.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rpc.d.ts","sourceRoot":"","sources":["../../src/lib/rpc.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAWxB,OAAO,EAEL,KAAK,WAAW,EAOjB,MAAM,mBAAmB,CAAC;AAG3B,QAAA,MAAM,aAAa;;;;;;;;;;;;EAOjB,CAAC;AACH,KAAK,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,CAAC;AAEnD,qBAAa,MAAM;;IACV,OAAO,EAAE,aAAa,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;gBACxB,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IAK1D,OAAO,CACX,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,GAAG,EACV,OAAO,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,WAAW,CAAC;QAAC,OAAO,CAAC,EAAE,WAAW,CAAA;KAAE;IA2B3D,IAAI,cAAc;;MAEjB;IAMD,UAAU,CAAC,OAAO,EAAE,OAAO,CAAC,aAAa,CAAC;CAS3C;AAED,wBAAsB,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC,mBA+D1E"}
|
package/package.json
ADDED
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@sdk-it/rpc",
|
|
3
|
+
"version": "0.29.0",
|
|
4
|
+
"type": "module",
|
|
5
|
+
"main": "./dist/index.js",
|
|
6
|
+
"module": "./dist/index.js",
|
|
7
|
+
"types": "./dist/index.d.ts",
|
|
8
|
+
"publishConfig": {
|
|
9
|
+
"access": "public"
|
|
10
|
+
},
|
|
11
|
+
"exports": {
|
|
12
|
+
"./package.json": "./package.json",
|
|
13
|
+
".": {
|
|
14
|
+
"types": "./dist/index.d.ts",
|
|
15
|
+
"import": "./dist/index.js",
|
|
16
|
+
"default": "./dist/index.js"
|
|
17
|
+
}
|
|
18
|
+
},
|
|
19
|
+
"files": [
|
|
20
|
+
"dist",
|
|
21
|
+
"!**/*.tsbuildinfo"
|
|
22
|
+
],
|
|
23
|
+
"dependencies": {
|
|
24
|
+
"@sdk-it/spec": "0.29.0",
|
|
25
|
+
"zod": "3.24.3",
|
|
26
|
+
"fast-content-type-parse": "^3.0.0",
|
|
27
|
+
"@sdk-it/typescript": "0.29.0"
|
|
28
|
+
}
|
|
29
|
+
}
|