@gladiaio/sdk
Version:
Gladia JavaScript/TypeScript SDK
1 lines • 4.97 kB
Source Map (JSON)
{"version":3,"file":"client.cjs","names":["url: URL","SDK_VERSION","defaultOptions: InternalGladiaClientOptions","getEnv","deepMergeObjects","LiveV2Client"],"sources":["../src/client.ts"],"sourcesContent":["import { deepMergeObjects, getEnv } from './helpers.js'\nimport type { InternalGladiaClientOptions } from './internal_types.js'\nimport type { Headers } from './network/types.js'\nimport type { GladiaClientOptions } from './types.js'\nimport { LiveV2Client } from './v2/live/index.js'\nimport { SDK_VERSION } from './version.js'\n\nfunction normalizeGladiaHeaders(headers: Headers | [string, string][]): Headers {\n const entries = Array.isArray(headers) ? headers : Object.entries(headers)\n return Object.fromEntries(\n entries.map(([key, value]) => {\n const lcKey = key.toLowerCase()\n return [lcKey.startsWith('x-gladia-') ? lcKey : key, value]\n })\n )\n}\n\nfunction assertValidOptions(options: InternalGladiaClientOptions) {\n let url: URL\n try {\n url = new URL(options.apiUrl)\n } catch {\n throw new Error(`Invalid url: \"${options.apiUrl}\".`)\n }\n\n if (!options?.apiKey && url.hostname.endsWith('.gladia.io')) {\n throw new Error(`You have to set your \"apiKey\" or define a proxy \"apiUrl\".`)\n }\n\n if (!['https:', 'http:', 'wss:', 'ws:'].includes(url.protocol)) {\n throw new Error(\n `Only HTTP and WebSocket protocols are supported for apiUrl (received: ${url.protocol}).`\n )\n }\n}\n\nconst defaultHttpDelay = (attemptCount: number) =>\n Math.min(0.3 * 2 ** (attemptCount - 1) * 1_000, 10_000)\n\nconst defaultWsDelay = (attemptCount: number) =>\n Math.min(0.3 * 2 ** (attemptCount - 1) * 1_000, 2_000)\n\nconst gladiaVersion = `SdkJavascript/${SDK_VERSION}`\n\nconst defaultOptions: InternalGladiaClientOptions = {\n apiKey: getEnv('GLADIA_API_KEY'),\n apiUrl: getEnv('GLADIA_API_URL', 'https://api.gladia.io'),\n region: getEnv<Required<GladiaClientOptions>['region']>('GLADIA_REGION'),\n httpHeaders: {\n 'x-gladia-version': gladiaVersion,\n },\n httpRetry: {\n maxAttempts: 2,\n statusCodes: [408, 413, 429, [500, 599]],\n delay: defaultHttpDelay,\n },\n httpTimeout: 10_000,\n wsRetry: {\n maxAttemptsPerConnection: 5,\n closeCodes: [\n [1002, 4399],\n [4500, 9999],\n ],\n delay: defaultWsDelay,\n maxConnections: 0,\n },\n wsTimeout: 10_000,\n}\n\n/**\n * Gladia Client\n */\nexport class GladiaClient {\n private options: InternalGladiaClientOptions\n\n constructor(options?: GladiaClientOptions) {\n if (options?.httpHeaders) {\n options.httpHeaders = normalizeGladiaHeaders(options.httpHeaders)\n }\n this.options = deepMergeObjects(defaultOptions, options)\n }\n\n liveV2(options?: GladiaClientOptions): LiveV2Client {\n if (options?.httpHeaders) {\n options.httpHeaders = normalizeGladiaHeaders(options.httpHeaders)\n }\n\n const mergedOptions = deepMergeObjects(this.options, options)\n if (mergedOptions.apiKey) {\n mergedOptions.httpHeaders = deepMergeObjects(mergedOptions.httpHeaders, {\n 'x-gladia-key': mergedOptions.apiKey,\n })\n }\n if (mergedOptions.httpHeaders['x-gladia-version'] !== gladiaVersion) {\n mergedOptions.httpHeaders['x-gladia-version'] =\n `${mergedOptions.httpHeaders['x-gladia-version'].trim()} ${gladiaVersion}`.trim()\n }\n assertValidOptions(mergedOptions)\n return new LiveV2Client(mergedOptions)\n }\n}\n"],"mappings":";;;;;;AAOA,SAAS,uBAAuB,SAAgD;CAC9E,MAAM,UAAU,MAAM,QAAQ,QAAQ,GAAG,UAAU,OAAO,QAAQ,QAAQ;AAC1E,QAAO,OAAO,YACZ,QAAQ,KAAK,CAAC,KAAK,WAAW;EAC5B,MAAM,QAAQ,IAAI,aAAa;AAC/B,SAAO,CAAC,MAAM,WAAW,YAAY,GAAG,QAAQ,KAAK,MAAM;GAC3D,CACH;;AAGH,SAAS,mBAAmB,SAAsC;CAChE,IAAIA;AACJ,KAAI;AACF,QAAM,IAAI,IAAI,QAAQ,OAAO;SACvB;AACN,QAAM,IAAI,MAAM,iBAAiB,QAAQ,OAAO,IAAI;;AAGtD,KAAI,CAAC,SAAS,UAAU,IAAI,SAAS,SAAS,aAAa,CACzD,OAAM,IAAI,MAAM,4DAA4D;AAG9E,KAAI,CAAC;EAAC;EAAU;EAAS;EAAQ;EAAM,CAAC,SAAS,IAAI,SAAS,CAC5D,OAAM,IAAI,MACR,yEAAyE,IAAI,SAAS,IACvF;;AAIL,MAAM,oBAAoB,iBACxB,KAAK,IAAI,KAAM,MAAM,eAAe,KAAK,KAAO,IAAO;AAEzD,MAAM,kBAAkB,iBACtB,KAAK,IAAI,KAAM,MAAM,eAAe,KAAK,KAAO,IAAM;AAExD,MAAM,gBAAgB,iBAAiBC;AAEvC,MAAMC,iBAA8C;CAClD,QAAQC,uBAAO,iBAAiB;CAChC,QAAQA,uBAAO,kBAAkB,wBAAwB;CACzD,QAAQA,uBAAgD,gBAAgB;CACxE,aAAa,EACX,oBAAoB,eACrB;CACD,WAAW;EACT,aAAa;EACb,aAAa;GAAC;GAAK;GAAK;GAAK,CAAC,KAAK,IAAI;GAAC;EACxC,OAAO;EACR;CACD,aAAa;CACb,SAAS;EACP,0BAA0B;EAC1B,YAAY,CACV,CAAC,MAAM,KAAK,EACZ,CAAC,MAAM,KAAK,CACb;EACD,OAAO;EACP,gBAAgB;EACjB;CACD,WAAW;CACZ;;;;AAKD,IAAa,eAAb,MAA0B;CACxB,AAAQ;CAER,YAAY,SAA+B;AACzC,MAAI,SAAS,YACX,SAAQ,cAAc,uBAAuB,QAAQ,YAAY;AAEnE,OAAK,UAAUC,iCAAiB,gBAAgB,QAAQ;;CAG1D,OAAO,SAA6C;AAClD,MAAI,SAAS,YACX,SAAQ,cAAc,uBAAuB,QAAQ,YAAY;EAGnE,MAAM,gBAAgBA,iCAAiB,KAAK,SAAS,QAAQ;AAC7D,MAAI,cAAc,OAChB,eAAc,cAAcA,iCAAiB,cAAc,aAAa,EACtE,gBAAgB,cAAc,QAC/B,CAAC;AAEJ,MAAI,cAAc,YAAY,wBAAwB,cACpD,eAAc,YAAY,sBACxB,GAAG,cAAc,YAAY,oBAAoB,MAAM,CAAC,GAAG,gBAAgB,MAAM;AAErF,qBAAmB,cAAc;AACjC,SAAO,IAAIC,4BAAa,cAAc"}