diff --git a/.speakeasy/gen.lock b/.speakeasy/gen.lock index b46c2a8..5f27b81 100644 --- a/.speakeasy/gen.lock +++ b/.speakeasy/gen.lock @@ -3,10 +3,10 @@ id: 8b6cd71c-ea04-44da-af45-e43968b5928d management: docChecksum: bcccd1abd05f6654a822386f2eefbd8a docVersion: 1.0.0 - speakeasyVersion: 1.659.0 - generationVersion: 2.755.9 - releaseVersion: 0.1.23 - configChecksum: 991bb8e65e382038e344c12cdd982649 + speakeasyVersion: 1.660.0 + generationVersion: 2.760.2 + releaseVersion: 0.1.24 + configChecksum: 475b25558977e68908a4d0653d872817 repoURL: https://github.com/OpenRouterTeam/typescript-sdk.git installationURL: https://github.com/OpenRouterTeam/typescript-sdk published: true @@ -15,7 +15,7 @@ features: acceptHeaders: 2.81.2 additionalDependencies: 0.1.0 constsAndDefaults: 0.1.12 - core: 3.26.7 + core: 3.26.9 customCodeRegions: 0.1.0 defaultEnabledRetries: 0.1.0 deprecations: 2.81.1 @@ -797,6 +797,7 @@ generatedFiles: - src/types/operations.ts - src/types/rfcdate.ts - src/types/streams.ts + - src/types/unrecognized.ts - tsconfig.json examples: createChatCompletion: diff --git a/.speakeasy/gen.yaml b/.speakeasy/gen.yaml index eae2008..1c0234d 100644 --- a/.speakeasy/gen.yaml +++ b/.speakeasy/gen.yaml @@ -30,7 +30,7 @@ generation: generateNewTests: true skipResponseBodyAssertions: false typescript: - version: 0.1.23 + version: 0.1.24 acceptHeaderEnum: false additionalDependencies: dependencies: {} @@ -71,6 +71,7 @@ typescript: exportZodModelNamespace: false flattenGlobalSecurity: true flatteningOrder: parameters-first + forwardCompatibleEnumsByDefault: false generateExamples: true imports: option: openapi @@ -83,6 +84,7 @@ typescript: inferSSEOverload: true inputModelSuffix: input jsonpath: rfc9535 + laxMode: strict maxMethodParams: 0 methodArguments: infer-optional-args modelPropertyCasing: camel diff --git a/.speakeasy/workflow.lock b/.speakeasy/workflow.lock index 14a9367..12f59e2 100644 --- a/.speakeasy/workflow.lock +++ b/.speakeasy/workflow.lock @@ -1,4 +1,4 @@ -speakeasyVersion: 1.659.0 +speakeasyVersion: 1.660.0 sources: OpenRouter API: sourceNamespace: open-router-chat-completions-api @@ -14,7 +14,7 @@ targets: sourceRevisionDigest: sha256:ffe0e925561a55a1b403667fe33bb3158e05892ef1e66f56211544c9a890b301 sourceBlobDigest: sha256:18aa7b22686c2f559af1062fea408a9f80146231027ed1fd62b68df38c71f65d codeSamplesNamespace: open-router-chat-completions-api-typescript-code-samples - codeSamplesRevisionDigest: sha256:7ef1c761fb99fe75b91e84384cfbf9703c9d160d8e9be9a1d72dd49e7df32af3 + codeSamplesRevisionDigest: sha256:f856e6a616f0d8edab5b1a77e49bfd32584caeb323d4ee7b740c6a7791c222fb workflow: workflowVersion: 1.0.0 speakeasyVersion: latest diff --git a/jsr.json b/jsr.json index a2fd93c..8178e4c 100644 --- a/jsr.json +++ b/jsr.json @@ -2,7 +2,7 @@ { "name": "@openrouter/sdk", - "version": "0.1.23", + "version": "0.1.24", "exports": { ".": "./src/index.ts", "./models/errors": "./src/models/errors/index.ts", diff --git a/package-lock.json b/package-lock.json index 88733a9..9361585 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@openrouter/sdk", - "version": "0.1.23", + "version": "0.1.24", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@openrouter/sdk", - "version": "0.1.23", + "version": "0.1.24", "license": "Apache-2.0", "dependencies": { "zod": "^3.25.0 || ^4.0.0" diff --git a/package.json b/package.json index 03ff826..45b2b9d 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@openrouter/sdk", - "version": "0.1.23", + "version": "0.1.24", "author": "OpenRouter", "description": "The OpenRouter TypeScript SDK is a type-safe toolkit for building AI applications with access to 300+ language models through a unified API.", "keywords": [ diff --git a/src/lib/config.ts b/src/lib/config.ts index 2958948..ad573f5 100644 --- a/src/lib/config.ts +++ b/src/lib/config.ts @@ -69,7 +69,7 @@ export function serverURLFromOptions(options: SDKOptions): URL | null { export const SDK_METADATA = { language: "typescript", openapiDocVersion: "1.0.0", - sdkVersion: "0.1.23", - genVersion: "2.755.9", - userAgent: "speakeasy-sdk/typescript 0.1.23 2.755.9 1.0.0 @openrouter/sdk", + sdkVersion: "0.1.24", + genVersion: "2.760.2", + userAgent: "speakeasy-sdk/typescript 0.1.24 2.760.2 1.0.0 @openrouter/sdk", } as const; diff --git a/src/models/chatstreamingresponsechunk.ts b/src/models/chatstreamingresponsechunk.ts index b989244..8e01c99 100644 --- a/src/models/chatstreamingresponsechunk.ts +++ b/src/models/chatstreamingresponsechunk.ts @@ -94,7 +94,8 @@ export const ChatStreamingResponseChunk$inboundSchema: z.ZodType< return JSON.parse(v); } catch (err) { ctx.addIssue({ - code: z.ZodIssueCode.custom, + input: v, + code: "custom", message: `malformed json: ${err}`, }); return z.NEVER; diff --git a/src/models/operations/createresponses.ts b/src/models/operations/createresponses.ts index 44c4e3e..19fa18f 100644 --- a/src/models/operations/createresponses.ts +++ b/src/models/operations/createresponses.ts @@ -33,7 +33,8 @@ export const CreateResponsesResponseBody$inboundSchema: z.ZodType< return JSON.parse(v); } catch (err) { ctx.addIssue({ - code: z.ZodIssueCode.custom, + input: v, + code: "custom", message: `malformed json: ${err}`, }); return z.NEVER; diff --git a/src/types/enums.ts b/src/types/enums.ts index 7e4fa30..12f862a 100644 --- a/src/types/enums.ts +++ b/src/types/enums.ts @@ -3,34 +3,14 @@ */ import * as z from "zod/v4"; +import { Unrecognized, unrecognized } from "./unrecognized.js"; -declare const __brand: unique symbol; -export type Unrecognized = T & { [__brand]: "unrecognized" }; export type ClosedEnum>> = T[keyof T]; export type OpenEnum>> = | T[keyof T] | Unrecognized; -function unrecognized(value: T): Unrecognized { - unrecognizedCount++; - return value as Unrecognized; -} - -let unrecognizedCount = 0; -let refCount = 0; -export function unrecognizedCounter() { - refCount++; - const start = unrecognizedCount; - return { - count: () => { - const count = unrecognizedCount - start; - if (--refCount === 0) unrecognizedCount = 0; - return count; - }, - }; -} - export function inboundSchema>( enumObj: T, ): z.ZodType, unknown> { diff --git a/src/types/index.ts b/src/types/index.ts index 92d9f73..abf0b7a 100644 --- a/src/types/index.ts +++ b/src/types/index.ts @@ -3,8 +3,9 @@ */ export { blobLikeSchema, isBlobLike } from "./blobs.js"; -export type { ClosedEnum, OpenEnum, Unrecognized } from "./enums.js"; +export type { ClosedEnum, OpenEnum } from "./enums.js"; export type { Result } from "./fp.js"; export type { PageIterator, Paginator } from "./operations.js"; export { createPageIterator } from "./operations.js"; export { RFCDate } from "./rfcdate.js"; +export * from "./unrecognized.js"; diff --git a/src/types/unrecognized.ts b/src/types/unrecognized.ts new file mode 100644 index 0000000..08227f2 --- /dev/null +++ b/src/types/unrecognized.ts @@ -0,0 +1,27 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +declare const __brand: unique symbol; +export type Unrecognized = T & { [__brand]: "unrecognized" }; + +function unrecognized(value: T): Unrecognized { + globalCount++; + return value as Unrecognized; +} + +let globalCount = 0; +let refCount = 0; +export function startCountingUnrecognized() { + refCount++; + const start = globalCount; + return { + end: () => { + const count = globalCount - start; + if (--refCount === 0) globalCount = 0; + return count; + }, + }; +} + +export { unrecognized };