openai-codex-oauth 1.0.0 → 1.0.1
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.js +606 -25
- package/dist/index.js.map +1 -1
- package/dist/node/index.js +107 -20
- package/dist/node/index.js.map +1 -1
- package/dist/proxy.js +102 -6
- package/dist/proxy.js.map +1 -1
- package/package.json +1 -2
- package/dist/chunk-GI2K7JPK.js +0 -526
- package/dist/chunk-GI2K7JPK.js.map +0 -1
- package/dist/chunk-SCKIRN2D.js +0 -58
- package/dist/chunk-SCKIRN2D.js.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/jwt.ts"],"sourcesContent":["/**\n * @file jwt.ts\n *\n * JWT (JSON Web Token) parsing utilities for OpenAI OAuth.\n * These functions decode and extract claims from JWTs without\n * verifying signatures (since we trust the OAuth issuer).\n */\n\nimport type { OpenAIOAuthTokens } from './types';\n\n/**\n * Decodes a Base64URL-encoded string to UTF-8 text.\n * Handles both browser (atob) and Node.js (Buffer) environments.\n */\nfunction decodeBase64Url(value: string): string | undefined {\n try {\n const base64 = value.replace(/-/g, '+').replace(/_/g, '/');\n const padded = base64 + '='.repeat((4 - (base64.length % 4)) % 4);\n\n if (typeof globalThis.atob === 'function') {\n const binary = globalThis.atob(padded);\n const bytes = Uint8Array.from(binary, (char) => char.charCodeAt(0));\n return new TextDecoder().decode(bytes);\n }\n\n return Buffer.from(padded, 'base64').toString('utf8');\n } catch {\n return undefined;\n }\n}\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n return typeof value === 'object' && value !== null && !Array.isArray(value);\n}\n\n/** Parse the JSON payload from a JWT without verifying the signature. */\nexport function parseJwtClaims(token: string | undefined): Record<string, unknown> | undefined {\n if (!token?.includes('.')) {\n return undefined;\n }\n\n const parts = token.split('.');\n if (parts.length !== 3 || !parts[1]) {\n return undefined;\n }\n\n const payload = decodeBase64Url(parts[1]);\n if (!payload) {\n return undefined;\n }\n\n try {\n const parsed = JSON.parse(payload) as unknown;\n return isRecord(parsed) ? parsed : undefined;\n } catch {\n return undefined;\n }\n}\n\n/** Derive the ChatGPT account id from OpenAI JWT claims when present. */\nexport function deriveAccountId(...tokens: Array<string | undefined>): string | undefined {\n for (const token of tokens) {\n const claims = parseJwtClaims(token);\n const auth = claims?.['https://api.openai.com/auth'];\n\n if (isRecord(auth) && typeof auth.chatgpt_account_id === 'string' && auth.chatgpt_account_id.length > 0) {\n return auth.chatgpt_account_id;\n }\n }\n\n return undefined;\n}\n\n/** Derive JWT expiry as epoch milliseconds from the `exp` claim. */\nexport function deriveExpiresAt(token: string | undefined): number | undefined {\n const claims = parseJwtClaims(token);\n return typeof claims?.exp === 'number' ? claims.exp * 1000 : undefined;\n}\n"],"mappings":";AAcA,SAAS,gBAAgB,OAAmC;AAC1D,MAAI;AACF,UAAM,SAAS,MAAM,QAAQ,MAAM,GAAG,EAAE,QAAQ,MAAM,GAAG;AACzD,UAAM,SAAS,SAAS,IAAI,QAAQ,IAAK,OAAO,SAAS,KAAM,CAAC;AAEhE,QAAI,OAAO,WAAW,SAAS,YAAY;AACzC,YAAM,SAAS,WAAW,KAAK,MAAM;AACrC,YAAM,QAAQ,WAAW,KAAK,QAAQ,CAAC,SAAS,KAAK,WAAW,CAAC,CAAC;AAClE,aAAO,IAAI,YAAY,EAAE,OAAO,KAAK;AAAA,IACvC;AAEA,WAAO,OAAO,KAAK,QAAQ,QAAQ,EAAE,SAAS,MAAM;AAAA,EACtD,QAAQ;AACN,WAAO;AAAA,EACT;AACF;AAEA,SAAS,SAAS,OAAkD;AAClE,SAAO,OAAO,UAAU,YAAY,UAAU,QAAQ,CAAC,MAAM,QAAQ,KAAK;AAC5E;AAGO,SAAS,eAAe,OAAgE;AAC7F,MAAI,CAAC,OAAO,SAAS,GAAG,GAAG;AACzB,WAAO;AAAA,EACT;AAEA,QAAM,QAAQ,MAAM,MAAM,GAAG;AAC7B,MAAI,MAAM,WAAW,KAAK,CAAC,MAAM,CAAC,GAAG;AACnC,WAAO;AAAA,EACT;AAEA,QAAM,UAAU,gBAAgB,MAAM,CAAC,CAAC;AACxC,MAAI,CAAC,SAAS;AACZ,WAAO;AAAA,EACT;AAEA,MAAI;AACF,UAAM,SAAS,KAAK,MAAM,OAAO;AACjC,WAAO,SAAS,MAAM,IAAI,SAAS;AAAA,EACrC,QAAQ;AACN,WAAO;AAAA,EACT;AACF;AAGO,SAAS,mBAAmB,QAAuD;AACxF,aAAW,SAAS,QAAQ;AAC1B,UAAM,SAAS,eAAe,KAAK;AACnC,UAAM,OAAO,SAAS,6BAA6B;AAEnD,QAAI,SAAS,IAAI,KAAK,OAAO,KAAK,uBAAuB,YAAY,KAAK,mBAAmB,SAAS,GAAG;AACvG,aAAO,KAAK;AAAA,IACd;AAAA,EACF;AAEA,SAAO;AACT;AAGO,SAAS,gBAAgB,OAA+C;AAC7E,QAAM,SAAS,eAAe,KAAK;AACnC,SAAO,OAAO,QAAQ,QAAQ,WAAW,OAAO,MAAM,MAAO;AAC/D;","names":[]}
|