@corti/sdk 1.0.0-alpha → 1.0.0-alpha.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.
Files changed (399) hide show
  1. package/README.md +126 -44
  2. package/dist/cjs/BaseClient.js +2 -2
  3. package/dist/cjs/api/errors/ForbiddenError.d.ts +1 -2
  4. package/dist/cjs/api/errors/UnprocessableEntityError.d.ts +6 -0
  5. package/dist/cjs/api/errors/UnprocessableEntityError.js +54 -0
  6. package/dist/cjs/api/errors/index.d.ts +1 -0
  7. package/dist/cjs/api/errors/index.js +1 -0
  8. package/dist/cjs/api/resources/agents/client/Client.d.ts +6 -0
  9. package/dist/cjs/api/resources/agents/client/Client.js +42 -0
  10. package/dist/cjs/api/resources/codes/client/Client.d.ts +15 -3
  11. package/dist/cjs/api/resources/codes/client/Client.js +16 -10
  12. package/dist/cjs/api/resources/codes/client/requests/CodesGeneralPredictRequest.d.ts +16 -4
  13. package/dist/cjs/api/resources/documents/client/Client.js +5 -35
  14. package/dist/cjs/api/resources/interactions/client/Client.js +5 -35
  15. package/dist/cjs/api/resources/recordings/client/Client.js +4 -28
  16. package/dist/cjs/api/resources/stream/client/Client.d.ts +2 -2
  17. package/dist/cjs/api/resources/stream/client/Client.js +4 -2
  18. package/dist/cjs/api/resources/stream/client/Socket.d.ts +1 -1
  19. package/dist/cjs/api/resources/transcribe/client/Client.d.ts +2 -2
  20. package/dist/cjs/api/resources/transcribe/client/Client.js +4 -2
  21. package/dist/cjs/api/resources/transcribe/client/Socket.d.ts +1 -1
  22. package/dist/cjs/api/resources/transcripts/client/Client.js +4 -28
  23. package/dist/cjs/api/types/AgentsErrorResponse.d.ts +12 -0
  24. package/dist/cjs/api/types/AgentsErrorResponse.js +3 -0
  25. package/dist/cjs/api/types/AgentsValidationError.d.ts +8 -0
  26. package/dist/cjs/api/types/AgentsValidationError.js +3 -0
  27. package/dist/cjs/api/types/AgentsValidationErrorErrorsItem.d.ts +4 -0
  28. package/dist/cjs/api/types/AgentsValidationErrorErrorsItem.js +3 -0
  29. package/dist/cjs/api/types/AgentsValidationErrorResponse.d.ts +4 -0
  30. package/dist/cjs/api/types/AgentsValidationErrorResponse.js +3 -0
  31. package/dist/cjs/api/types/CodesFilter.d.ts +11 -0
  32. package/dist/cjs/api/types/CodesFilter.js +3 -0
  33. package/dist/cjs/api/types/CodesGeneralReadResponse.d.ts +2 -0
  34. package/dist/cjs/api/types/CodesGeneralReadResponseAlternativesItem.d.ts +9 -0
  35. package/dist/cjs/api/types/CodesGeneralReadResponseAlternativesItem.js +3 -0
  36. package/dist/cjs/api/types/CodesGeneralReadResponseEvidencesItem.d.ts +6 -2
  37. package/dist/cjs/api/types/CodesGeneralResponse.d.ts +2 -2
  38. package/dist/cjs/api/types/CommonCodingSystemEnum.d.ts +2 -1
  39. package/dist/cjs/api/types/CommonCodingSystemEnum.js +2 -1
  40. package/dist/cjs/api/types/StreamConfigMessage.d.ts +1 -1
  41. package/dist/cjs/api/types/StreamEndMessage.d.ts +1 -2
  42. package/dist/cjs/api/types/StreamEndedMessage.d.ts +1 -2
  43. package/dist/cjs/api/types/StreamErrorMessage.d.ts +1 -1
  44. package/dist/cjs/api/types/StreamFactsMessage.d.ts +1 -1
  45. package/dist/cjs/api/types/StreamFlushMessage.d.ts +1 -2
  46. package/dist/cjs/api/types/StreamFlushedMessage.d.ts +1 -2
  47. package/dist/cjs/api/types/StreamTranscriptMessage.d.ts +1 -1
  48. package/dist/cjs/api/types/StreamUsageMessage.d.ts +1 -2
  49. package/dist/cjs/api/types/TranscribeCommandMessage.d.ts +1 -1
  50. package/dist/cjs/api/types/TranscribeCommandVariable.d.ts +1 -2
  51. package/dist/cjs/api/types/TranscribeConfigMessage.d.ts +1 -1
  52. package/dist/cjs/api/types/TranscribeEndMessage.d.ts +1 -2
  53. package/dist/cjs/api/types/TranscribeEndedMessage.d.ts +1 -2
  54. package/dist/cjs/api/types/TranscribeErrorMessage.d.ts +1 -1
  55. package/dist/cjs/api/types/TranscribeFlushMessage.d.ts +1 -2
  56. package/dist/cjs/api/types/TranscribeFlushedMessage.d.ts +1 -2
  57. package/dist/cjs/api/types/TranscribeFormattingDates.d.ts +4 -4
  58. package/dist/cjs/api/types/TranscribeFormattingDates.js +4 -4
  59. package/dist/cjs/api/types/TranscribeFormattingNumbers.d.ts +2 -2
  60. package/dist/cjs/api/types/TranscribeFormattingNumbers.js +2 -2
  61. package/dist/cjs/api/types/TranscribeFormattingNumericRanges.d.ts +1 -1
  62. package/dist/cjs/api/types/TranscribeFormattingNumericRanges.js +1 -1
  63. package/dist/cjs/api/types/TranscribeFormattingOrdinals.d.ts +1 -0
  64. package/dist/cjs/api/types/TranscribeFormattingOrdinals.js +1 -0
  65. package/dist/cjs/api/types/TranscribeFormattingTimes.d.ts +3 -2
  66. package/dist/cjs/api/types/TranscribeFormattingTimes.js +3 -2
  67. package/dist/cjs/api/types/TranscribeTranscriptMessage.d.ts +1 -1
  68. package/dist/cjs/api/types/TranscribeUsageMessage.d.ts +1 -2
  69. package/dist/cjs/api/types/index.d.ts +6 -19
  70. package/dist/cjs/api/types/index.js +6 -19
  71. package/dist/cjs/auth/OAuthAuthProvider.d.ts +1 -99
  72. package/dist/cjs/auth/OAuthAuthProvider.js +4 -276
  73. package/dist/cjs/core/fetcher/index.d.ts +2 -11
  74. package/dist/cjs/core/fetcher/index.js +16 -15
  75. package/dist/cjs/custom/CortiClient.d.ts +15 -4
  76. package/dist/cjs/custom/CortiClient.js +8 -5
  77. package/dist/cjs/custom/CortiWebSocketProxyClient.d.ts +10 -40
  78. package/dist/cjs/custom/CortiWebSocketProxyClient.js +12 -74
  79. package/dist/cjs/custom/OAuthAuthProvider.d.ts +99 -0
  80. package/dist/cjs/custom/OAuthAuthProvider.js +290 -0
  81. package/dist/cjs/custom/auth/CortiAuth.d.ts +129 -0
  82. package/dist/cjs/custom/auth/CortiAuth.js +195 -0
  83. package/dist/cjs/custom/auth/OAuthAuthCodeAuthProvider.d.ts +23 -0
  84. package/dist/cjs/custom/auth/OAuthAuthCodeAuthProvider.js +164 -0
  85. package/dist/cjs/custom/auth/OAuthPkceAuthProvider.d.ts +23 -0
  86. package/dist/cjs/custom/auth/OAuthPkceAuthProvider.js +164 -0
  87. package/dist/cjs/custom/auth/OAuthRopcAuthProvider.d.ts +22 -0
  88. package/dist/cjs/custom/auth/OAuthRopcAuthProvider.js +137 -0
  89. package/dist/cjs/custom/fetcher.d.ts +3 -0
  90. package/dist/cjs/custom/fetcher.js +8 -0
  91. package/dist/cjs/custom/index.d.ts +10 -0
  92. package/dist/cjs/custom/index.js +55 -1
  93. package/dist/cjs/custom/overrides/OAuthAuthProvider.d.ts +99 -0
  94. package/dist/cjs/custom/overrides/OAuthAuthProvider.js +289 -0
  95. package/dist/cjs/custom/overrides/fetcher/index.d.ts +12 -0
  96. package/dist/cjs/custom/overrides/fetcher/index.js +18 -0
  97. package/dist/cjs/custom/overrides/index.d.ts +14 -0
  98. package/dist/cjs/custom/overrides/index.js +61 -0
  99. package/dist/cjs/custom/proxy/CustomProxyStream.d.ts +17 -0
  100. package/dist/cjs/custom/proxy/CustomProxyStream.js +18 -0
  101. package/dist/cjs/custom/proxy/CustomProxyTranscribe.d.ts +17 -0
  102. package/dist/cjs/custom/proxy/CustomProxyTranscribe.js +21 -0
  103. package/dist/cjs/custom/stream/CustomStream.d.ts +39 -0
  104. package/dist/cjs/custom/stream/CustomStream.js +183 -0
  105. package/dist/cjs/custom/stream/CustomStreamSocket.d.ts +7 -0
  106. package/dist/cjs/custom/stream/CustomStreamSocket.js +17 -0
  107. package/dist/cjs/custom/stream/parseStreamResponseType.d.ts +2 -0
  108. package/dist/cjs/custom/stream/parseStreamResponseType.js +49 -0
  109. package/dist/cjs/custom/transcribe/CustomTranscribe.d.ts +38 -0
  110. package/dist/cjs/custom/transcribe/CustomTranscribe.js +181 -0
  111. package/dist/cjs/custom/transcribe/CustomTranscribeSocket.d.ts +7 -0
  112. package/dist/cjs/custom/transcribe/CustomTranscribeSocket.js +17 -0
  113. package/dist/cjs/custom/transcribe/parseTranscribeResponseType.d.ts +2 -0
  114. package/dist/cjs/custom/transcribe/parseTranscribeResponseType.js +49 -0
  115. package/dist/cjs/custom/utils/encodeHeadersAsWsProtocols.d.ts +30 -0
  116. package/dist/cjs/custom/utils/encodeHeadersAsWsProtocols.js +102 -0
  117. package/dist/cjs/custom/utils/index.d.ts +3 -0
  118. package/dist/cjs/custom/utils/index.js +10 -0
  119. package/dist/cjs/custom/utils/localStorageHelpers.js +11 -9
  120. package/dist/cjs/custom/utils/withCredentialsConfig.d.ts +2 -0
  121. package/dist/cjs/custom/utils/withCredentialsConfig.js +15 -0
  122. package/dist/cjs/index.d.ts +1 -16
  123. package/dist/cjs/index.js +1 -47
  124. package/dist/cjs/serialization/resources/codes/client/requests/CodesGeneralPredictRequest.d.ts +2 -1
  125. package/dist/cjs/serialization/resources/codes/client/requests/CodesGeneralPredictRequest.js +2 -1
  126. package/dist/cjs/serialization/resources/stream/client/socket/StreamSocketResponse.d.ts +2 -2
  127. package/dist/cjs/serialization/resources/stream/client/socket/StreamSocketResponse.js +1 -1
  128. package/dist/cjs/serialization/resources/transcribe/client/socket/TranscribeSocketResponse.d.ts +2 -2
  129. package/dist/cjs/serialization/resources/transcribe/client/socket/TranscribeSocketResponse.js +1 -1
  130. package/dist/cjs/serialization/types/AgentsErrorResponse.d.ts +13 -0
  131. package/dist/cjs/serialization/types/AgentsErrorResponse.js +46 -0
  132. package/dist/cjs/serialization/types/AgentsValidationError.d.ts +14 -0
  133. package/dist/cjs/serialization/types/AgentsValidationError.js +46 -0
  134. package/dist/cjs/serialization/types/AgentsValidationErrorErrorsItem.d.ts +10 -0
  135. package/dist/cjs/serialization/types/AgentsValidationErrorErrorsItem.js +42 -0
  136. package/dist/cjs/serialization/types/AgentsValidationErrorResponse.d.ts +10 -0
  137. package/dist/cjs/serialization/types/AgentsValidationErrorResponse.js +45 -0
  138. package/dist/cjs/serialization/types/CodesFilter.d.ts +11 -0
  139. package/dist/cjs/serialization/types/CodesFilter.js +43 -0
  140. package/dist/cjs/serialization/types/CodesGeneralReadResponse.d.ts +2 -0
  141. package/dist/cjs/serialization/types/CodesGeneralReadResponse.js +2 -0
  142. package/dist/cjs/serialization/types/CodesGeneralReadResponseAlternativesItem.d.ts +10 -0
  143. package/dist/cjs/serialization/types/CodesGeneralReadResponseAlternativesItem.js +42 -0
  144. package/dist/cjs/serialization/types/CodesGeneralReadResponseEvidencesItem.d.ts +4 -2
  145. package/dist/cjs/serialization/types/CodesGeneralReadResponseEvidencesItem.js +4 -2
  146. package/dist/cjs/serialization/types/CommonCodingSystemEnum.d.ts +1 -1
  147. package/dist/cjs/serialization/types/CommonCodingSystemEnum.js +1 -1
  148. package/dist/cjs/serialization/types/StreamConfigMessage.d.ts +1 -2
  149. package/dist/cjs/serialization/types/StreamConfigMessage.js +1 -2
  150. package/dist/cjs/serialization/types/StreamEndMessage.d.ts +1 -2
  151. package/dist/cjs/serialization/types/StreamEndMessage.js +1 -2
  152. package/dist/cjs/serialization/types/StreamEndedMessage.d.ts +1 -2
  153. package/dist/cjs/serialization/types/StreamEndedMessage.js +1 -2
  154. package/dist/cjs/serialization/types/StreamErrorMessage.d.ts +1 -2
  155. package/dist/cjs/serialization/types/StreamErrorMessage.js +1 -2
  156. package/dist/cjs/serialization/types/StreamFactsMessage.d.ts +1 -2
  157. package/dist/cjs/serialization/types/StreamFactsMessage.js +1 -2
  158. package/dist/cjs/serialization/types/StreamFlushMessage.d.ts +1 -2
  159. package/dist/cjs/serialization/types/StreamFlushMessage.js +1 -2
  160. package/dist/cjs/serialization/types/StreamFlushedMessage.d.ts +1 -2
  161. package/dist/cjs/serialization/types/StreamFlushedMessage.js +1 -2
  162. package/dist/cjs/serialization/types/StreamTranscriptMessage.d.ts +1 -2
  163. package/dist/cjs/serialization/types/StreamTranscriptMessage.js +1 -2
  164. package/dist/cjs/serialization/types/StreamUsageMessage.d.ts +1 -2
  165. package/dist/cjs/serialization/types/StreamUsageMessage.js +1 -2
  166. package/dist/cjs/serialization/types/TranscribeCommandMessage.d.ts +1 -2
  167. package/dist/cjs/serialization/types/TranscribeCommandMessage.js +1 -2
  168. package/dist/cjs/serialization/types/TranscribeCommandVariable.d.ts +1 -2
  169. package/dist/cjs/serialization/types/TranscribeCommandVariable.js +1 -2
  170. package/dist/cjs/serialization/types/TranscribeConfigMessage.d.ts +1 -2
  171. package/dist/cjs/serialization/types/TranscribeConfigMessage.js +1 -2
  172. package/dist/cjs/serialization/types/TranscribeEndMessage.d.ts +1 -2
  173. package/dist/cjs/serialization/types/TranscribeEndMessage.js +1 -2
  174. package/dist/cjs/serialization/types/TranscribeEndedMessage.d.ts +1 -2
  175. package/dist/cjs/serialization/types/TranscribeEndedMessage.js +1 -2
  176. package/dist/cjs/serialization/types/TranscribeErrorMessage.d.ts +1 -2
  177. package/dist/cjs/serialization/types/TranscribeErrorMessage.js +1 -2
  178. package/dist/cjs/serialization/types/TranscribeFlushMessage.d.ts +1 -2
  179. package/dist/cjs/serialization/types/TranscribeFlushMessage.js +1 -2
  180. package/dist/cjs/serialization/types/TranscribeFlushedMessage.d.ts +1 -2
  181. package/dist/cjs/serialization/types/TranscribeFlushedMessage.js +1 -2
  182. package/dist/cjs/serialization/types/TranscribeFormattingDates.d.ts +1 -1
  183. package/dist/cjs/serialization/types/TranscribeFormattingDates.js +1 -1
  184. package/dist/cjs/serialization/types/TranscribeFormattingNumbers.d.ts +1 -1
  185. package/dist/cjs/serialization/types/TranscribeFormattingNumbers.js +1 -1
  186. package/dist/cjs/serialization/types/TranscribeFormattingNumericRanges.d.ts +1 -1
  187. package/dist/cjs/serialization/types/TranscribeFormattingNumericRanges.js +1 -1
  188. package/dist/cjs/serialization/types/TranscribeFormattingOrdinals.d.ts +1 -1
  189. package/dist/cjs/serialization/types/TranscribeFormattingOrdinals.js +1 -1
  190. package/dist/cjs/serialization/types/TranscribeFormattingTimes.d.ts +1 -1
  191. package/dist/cjs/serialization/types/TranscribeFormattingTimes.js +1 -1
  192. package/dist/cjs/serialization/types/TranscribeTranscriptMessage.d.ts +1 -2
  193. package/dist/cjs/serialization/types/TranscribeTranscriptMessage.js +1 -2
  194. package/dist/cjs/serialization/types/TranscribeUsageMessage.d.ts +1 -2
  195. package/dist/cjs/serialization/types/TranscribeUsageMessage.js +1 -2
  196. package/dist/cjs/serialization/types/index.d.ts +6 -19
  197. package/dist/cjs/serialization/types/index.js +6 -19
  198. package/dist/cjs/version.d.ts +1 -1
  199. package/dist/cjs/version.js +1 -1
  200. package/dist/esm/BaseClient.mjs +2 -2
  201. package/dist/esm/api/errors/ForbiddenError.d.mts +1 -2
  202. package/dist/esm/api/errors/UnprocessableEntityError.d.mts +6 -0
  203. package/dist/esm/api/errors/UnprocessableEntityError.mjs +17 -0
  204. package/dist/esm/api/errors/index.d.mts +1 -0
  205. package/dist/esm/api/errors/index.mjs +1 -0
  206. package/dist/esm/api/resources/agents/client/Client.d.mts +6 -0
  207. package/dist/esm/api/resources/agents/client/Client.mjs +42 -0
  208. package/dist/esm/api/resources/codes/client/Client.d.mts +15 -3
  209. package/dist/esm/api/resources/codes/client/Client.mjs +16 -10
  210. package/dist/esm/api/resources/codes/client/requests/CodesGeneralPredictRequest.d.mts +16 -4
  211. package/dist/esm/api/resources/documents/client/Client.mjs +5 -35
  212. package/dist/esm/api/resources/interactions/client/Client.mjs +5 -35
  213. package/dist/esm/api/resources/recordings/client/Client.mjs +4 -28
  214. package/dist/esm/api/resources/stream/client/Client.d.mts +2 -2
  215. package/dist/esm/api/resources/stream/client/Client.mjs +5 -3
  216. package/dist/esm/api/resources/stream/client/Socket.d.mts +1 -1
  217. package/dist/esm/api/resources/transcribe/client/Client.d.mts +2 -2
  218. package/dist/esm/api/resources/transcribe/client/Client.mjs +5 -3
  219. package/dist/esm/api/resources/transcribe/client/Socket.d.mts +1 -1
  220. package/dist/esm/api/resources/transcripts/client/Client.mjs +4 -28
  221. package/dist/esm/api/types/AgentsErrorResponse.d.mts +12 -0
  222. package/dist/esm/api/types/AgentsErrorResponse.mjs +2 -0
  223. package/dist/esm/api/types/AgentsValidationError.d.mts +8 -0
  224. package/dist/esm/api/types/AgentsValidationError.mjs +2 -0
  225. package/dist/esm/api/types/AgentsValidationErrorErrorsItem.d.mts +4 -0
  226. package/dist/esm/api/types/AgentsValidationErrorErrorsItem.mjs +2 -0
  227. package/dist/esm/api/types/AgentsValidationErrorResponse.d.mts +4 -0
  228. package/dist/esm/api/types/AgentsValidationErrorResponse.mjs +2 -0
  229. package/dist/esm/api/types/CodesFilter.d.mts +11 -0
  230. package/dist/esm/api/types/CodesFilter.mjs +2 -0
  231. package/dist/esm/api/types/CodesGeneralReadResponse.d.mts +2 -0
  232. package/dist/esm/api/types/CodesGeneralReadResponseAlternativesItem.d.mts +9 -0
  233. package/dist/esm/api/types/CodesGeneralReadResponseAlternativesItem.mjs +2 -0
  234. package/dist/esm/api/types/CodesGeneralReadResponseEvidencesItem.d.mts +6 -2
  235. package/dist/esm/api/types/CodesGeneralResponse.d.mts +2 -2
  236. package/dist/esm/api/types/CommonCodingSystemEnum.d.mts +2 -1
  237. package/dist/esm/api/types/CommonCodingSystemEnum.mjs +2 -1
  238. package/dist/esm/api/types/StreamConfigMessage.d.mts +1 -1
  239. package/dist/esm/api/types/StreamEndMessage.d.mts +1 -2
  240. package/dist/esm/api/types/StreamEndedMessage.d.mts +1 -2
  241. package/dist/esm/api/types/StreamErrorMessage.d.mts +1 -1
  242. package/dist/esm/api/types/StreamFactsMessage.d.mts +1 -1
  243. package/dist/esm/api/types/StreamFlushMessage.d.mts +1 -2
  244. package/dist/esm/api/types/StreamFlushedMessage.d.mts +1 -2
  245. package/dist/esm/api/types/StreamTranscriptMessage.d.mts +1 -1
  246. package/dist/esm/api/types/StreamUsageMessage.d.mts +1 -2
  247. package/dist/esm/api/types/TranscribeCommandMessage.d.mts +1 -1
  248. package/dist/esm/api/types/TranscribeCommandVariable.d.mts +1 -2
  249. package/dist/esm/api/types/TranscribeConfigMessage.d.mts +1 -1
  250. package/dist/esm/api/types/TranscribeEndMessage.d.mts +1 -2
  251. package/dist/esm/api/types/TranscribeEndedMessage.d.mts +1 -2
  252. package/dist/esm/api/types/TranscribeErrorMessage.d.mts +1 -1
  253. package/dist/esm/api/types/TranscribeFlushMessage.d.mts +1 -2
  254. package/dist/esm/api/types/TranscribeFlushedMessage.d.mts +1 -2
  255. package/dist/esm/api/types/TranscribeFormattingDates.d.mts +4 -4
  256. package/dist/esm/api/types/TranscribeFormattingDates.mjs +4 -4
  257. package/dist/esm/api/types/TranscribeFormattingNumbers.d.mts +2 -2
  258. package/dist/esm/api/types/TranscribeFormattingNumbers.mjs +2 -2
  259. package/dist/esm/api/types/TranscribeFormattingNumericRanges.d.mts +1 -1
  260. package/dist/esm/api/types/TranscribeFormattingNumericRanges.mjs +1 -1
  261. package/dist/esm/api/types/TranscribeFormattingOrdinals.d.mts +1 -0
  262. package/dist/esm/api/types/TranscribeFormattingOrdinals.mjs +1 -0
  263. package/dist/esm/api/types/TranscribeFormattingTimes.d.mts +3 -2
  264. package/dist/esm/api/types/TranscribeFormattingTimes.mjs +3 -2
  265. package/dist/esm/api/types/TranscribeTranscriptMessage.d.mts +1 -1
  266. package/dist/esm/api/types/TranscribeUsageMessage.d.mts +1 -2
  267. package/dist/esm/api/types/index.d.mts +6 -19
  268. package/dist/esm/api/types/index.mjs +6 -19
  269. package/dist/esm/auth/OAuthAuthProvider.d.mts +1 -99
  270. package/dist/esm/auth/OAuthAuthProvider.mjs +2 -239
  271. package/dist/esm/core/fetcher/index.d.mts +2 -11
  272. package/dist/esm/core/fetcher/index.mjs +2 -6
  273. package/dist/esm/custom/CortiClient.d.mts +15 -4
  274. package/dist/esm/custom/CortiClient.mjs +8 -5
  275. package/dist/esm/custom/CortiWebSocketProxyClient.d.mts +10 -40
  276. package/dist/esm/custom/CortiWebSocketProxyClient.mjs +10 -39
  277. package/dist/esm/custom/OAuthAuthProvider.d.mts +99 -0
  278. package/dist/esm/custom/OAuthAuthProvider.mjs +239 -0
  279. package/dist/esm/custom/auth/CortiAuth.d.mts +129 -0
  280. package/dist/esm/custom/auth/CortiAuth.mjs +158 -0
  281. package/dist/esm/custom/auth/OAuthAuthCodeAuthProvider.d.mts +23 -0
  282. package/dist/esm/custom/auth/OAuthAuthCodeAuthProvider.mjs +127 -0
  283. package/dist/esm/custom/auth/OAuthPkceAuthProvider.d.mts +23 -0
  284. package/dist/esm/custom/auth/OAuthPkceAuthProvider.mjs +127 -0
  285. package/dist/esm/custom/auth/OAuthRopcAuthProvider.d.mts +22 -0
  286. package/dist/esm/custom/auth/OAuthRopcAuthProvider.mjs +100 -0
  287. package/dist/esm/custom/fetcher.d.mts +3 -0
  288. package/dist/esm/custom/fetcher.mjs +4 -0
  289. package/dist/esm/custom/index.d.mts +10 -0
  290. package/dist/esm/custom/index.mjs +10 -0
  291. package/dist/esm/custom/overrides/OAuthAuthProvider.d.mts +99 -0
  292. package/dist/esm/custom/overrides/OAuthAuthProvider.mjs +238 -0
  293. package/dist/esm/custom/overrides/fetcher/index.d.mts +12 -0
  294. package/dist/esm/custom/overrides/fetcher/index.mjs +7 -0
  295. package/dist/esm/custom/overrides/index.d.mts +14 -0
  296. package/dist/esm/custom/overrides/index.mjs +14 -0
  297. package/dist/esm/custom/proxy/CustomProxyStream.d.mts +17 -0
  298. package/dist/esm/custom/proxy/CustomProxyStream.mjs +15 -0
  299. package/dist/esm/custom/proxy/CustomProxyTranscribe.d.mts +17 -0
  300. package/dist/esm/custom/proxy/CustomProxyTranscribe.mjs +18 -0
  301. package/dist/esm/custom/stream/CustomStream.d.mts +39 -0
  302. package/dist/esm/custom/stream/CustomStream.mjs +146 -0
  303. package/dist/esm/custom/stream/CustomStreamSocket.d.mts +7 -0
  304. package/dist/esm/custom/stream/CustomStreamSocket.mjs +13 -0
  305. package/dist/esm/custom/stream/parseStreamResponseType.d.mts +2 -0
  306. package/dist/esm/custom/stream/parseStreamResponseType.mjs +13 -0
  307. package/dist/esm/custom/transcribe/CustomTranscribe.d.mts +38 -0
  308. package/dist/esm/custom/transcribe/CustomTranscribe.mjs +144 -0
  309. package/dist/esm/custom/transcribe/CustomTranscribeSocket.d.mts +7 -0
  310. package/dist/esm/custom/transcribe/CustomTranscribeSocket.mjs +13 -0
  311. package/dist/esm/custom/transcribe/parseTranscribeResponseType.d.mts +2 -0
  312. package/dist/esm/custom/transcribe/parseTranscribeResponseType.mjs +13 -0
  313. package/dist/esm/custom/utils/encodeHeadersAsWsProtocols.d.mts +30 -0
  314. package/dist/esm/custom/utils/encodeHeadersAsWsProtocols.mjs +65 -0
  315. package/dist/esm/custom/utils/index.d.mts +3 -0
  316. package/dist/esm/custom/utils/index.mjs +3 -0
  317. package/dist/esm/custom/utils/localStorageHelpers.mjs +11 -9
  318. package/dist/esm/custom/utils/withCredentialsConfig.d.mts +2 -0
  319. package/dist/esm/custom/utils/withCredentialsConfig.mjs +11 -0
  320. package/dist/esm/index.d.mts +1 -16
  321. package/dist/esm/index.mjs +1 -15
  322. package/dist/esm/serialization/resources/codes/client/requests/CodesGeneralPredictRequest.d.mts +2 -1
  323. package/dist/esm/serialization/resources/codes/client/requests/CodesGeneralPredictRequest.mjs +2 -1
  324. package/dist/esm/serialization/resources/stream/client/socket/StreamSocketResponse.d.mts +2 -2
  325. package/dist/esm/serialization/resources/stream/client/socket/StreamSocketResponse.mjs +1 -1
  326. package/dist/esm/serialization/resources/transcribe/client/socket/TranscribeSocketResponse.d.mts +2 -2
  327. package/dist/esm/serialization/resources/transcribe/client/socket/TranscribeSocketResponse.mjs +1 -1
  328. package/dist/esm/serialization/types/AgentsErrorResponse.d.mts +13 -0
  329. package/dist/esm/serialization/types/AgentsErrorResponse.mjs +10 -0
  330. package/dist/esm/serialization/types/AgentsValidationError.d.mts +14 -0
  331. package/dist/esm/serialization/types/AgentsValidationError.mjs +10 -0
  332. package/dist/esm/serialization/types/AgentsValidationErrorErrorsItem.d.mts +10 -0
  333. package/dist/esm/serialization/types/AgentsValidationErrorErrorsItem.mjs +6 -0
  334. package/dist/esm/serialization/types/AgentsValidationErrorResponse.d.mts +10 -0
  335. package/dist/esm/serialization/types/AgentsValidationErrorResponse.mjs +9 -0
  336. package/dist/esm/serialization/types/CodesFilter.d.mts +11 -0
  337. package/dist/esm/serialization/types/CodesFilter.mjs +7 -0
  338. package/dist/esm/serialization/types/CodesGeneralReadResponse.d.mts +2 -0
  339. package/dist/esm/serialization/types/CodesGeneralReadResponse.mjs +2 -0
  340. package/dist/esm/serialization/types/CodesGeneralReadResponseAlternativesItem.d.mts +10 -0
  341. package/dist/esm/serialization/types/CodesGeneralReadResponseAlternativesItem.mjs +6 -0
  342. package/dist/esm/serialization/types/CodesGeneralReadResponseEvidencesItem.d.mts +4 -2
  343. package/dist/esm/serialization/types/CodesGeneralReadResponseEvidencesItem.mjs +4 -2
  344. package/dist/esm/serialization/types/CommonCodingSystemEnum.d.mts +1 -1
  345. package/dist/esm/serialization/types/CommonCodingSystemEnum.mjs +1 -1
  346. package/dist/esm/serialization/types/StreamConfigMessage.d.mts +1 -2
  347. package/dist/esm/serialization/types/StreamConfigMessage.mjs +1 -2
  348. package/dist/esm/serialization/types/StreamEndMessage.d.mts +1 -2
  349. package/dist/esm/serialization/types/StreamEndMessage.mjs +1 -2
  350. package/dist/esm/serialization/types/StreamEndedMessage.d.mts +1 -2
  351. package/dist/esm/serialization/types/StreamEndedMessage.mjs +1 -2
  352. package/dist/esm/serialization/types/StreamErrorMessage.d.mts +1 -2
  353. package/dist/esm/serialization/types/StreamErrorMessage.mjs +1 -2
  354. package/dist/esm/serialization/types/StreamFactsMessage.d.mts +1 -2
  355. package/dist/esm/serialization/types/StreamFactsMessage.mjs +1 -2
  356. package/dist/esm/serialization/types/StreamFlushMessage.d.mts +1 -2
  357. package/dist/esm/serialization/types/StreamFlushMessage.mjs +1 -2
  358. package/dist/esm/serialization/types/StreamFlushedMessage.d.mts +1 -2
  359. package/dist/esm/serialization/types/StreamFlushedMessage.mjs +1 -2
  360. package/dist/esm/serialization/types/StreamTranscriptMessage.d.mts +1 -2
  361. package/dist/esm/serialization/types/StreamTranscriptMessage.mjs +1 -2
  362. package/dist/esm/serialization/types/StreamUsageMessage.d.mts +1 -2
  363. package/dist/esm/serialization/types/StreamUsageMessage.mjs +1 -2
  364. package/dist/esm/serialization/types/TranscribeCommandMessage.d.mts +1 -2
  365. package/dist/esm/serialization/types/TranscribeCommandMessage.mjs +1 -2
  366. package/dist/esm/serialization/types/TranscribeCommandVariable.d.mts +1 -2
  367. package/dist/esm/serialization/types/TranscribeCommandVariable.mjs +1 -2
  368. package/dist/esm/serialization/types/TranscribeConfigMessage.d.mts +1 -2
  369. package/dist/esm/serialization/types/TranscribeConfigMessage.mjs +1 -2
  370. package/dist/esm/serialization/types/TranscribeEndMessage.d.mts +1 -2
  371. package/dist/esm/serialization/types/TranscribeEndMessage.mjs +1 -2
  372. package/dist/esm/serialization/types/TranscribeEndedMessage.d.mts +1 -2
  373. package/dist/esm/serialization/types/TranscribeEndedMessage.mjs +1 -2
  374. package/dist/esm/serialization/types/TranscribeErrorMessage.d.mts +1 -2
  375. package/dist/esm/serialization/types/TranscribeErrorMessage.mjs +1 -2
  376. package/dist/esm/serialization/types/TranscribeFlushMessage.d.mts +1 -2
  377. package/dist/esm/serialization/types/TranscribeFlushMessage.mjs +1 -2
  378. package/dist/esm/serialization/types/TranscribeFlushedMessage.d.mts +1 -2
  379. package/dist/esm/serialization/types/TranscribeFlushedMessage.mjs +1 -2
  380. package/dist/esm/serialization/types/TranscribeFormattingDates.d.mts +1 -1
  381. package/dist/esm/serialization/types/TranscribeFormattingDates.mjs +1 -1
  382. package/dist/esm/serialization/types/TranscribeFormattingNumbers.d.mts +1 -1
  383. package/dist/esm/serialization/types/TranscribeFormattingNumbers.mjs +1 -1
  384. package/dist/esm/serialization/types/TranscribeFormattingNumericRanges.d.mts +1 -1
  385. package/dist/esm/serialization/types/TranscribeFormattingNumericRanges.mjs +1 -1
  386. package/dist/esm/serialization/types/TranscribeFormattingOrdinals.d.mts +1 -1
  387. package/dist/esm/serialization/types/TranscribeFormattingOrdinals.mjs +1 -1
  388. package/dist/esm/serialization/types/TranscribeFormattingTimes.d.mts +1 -1
  389. package/dist/esm/serialization/types/TranscribeFormattingTimes.mjs +1 -1
  390. package/dist/esm/serialization/types/TranscribeTranscriptMessage.d.mts +1 -2
  391. package/dist/esm/serialization/types/TranscribeTranscriptMessage.mjs +1 -2
  392. package/dist/esm/serialization/types/TranscribeUsageMessage.d.mts +1 -2
  393. package/dist/esm/serialization/types/TranscribeUsageMessage.mjs +1 -2
  394. package/dist/esm/serialization/types/index.d.mts +6 -19
  395. package/dist/esm/serialization/types/index.mjs +6 -19
  396. package/dist/esm/version.d.mts +1 -1
  397. package/dist/esm/version.mjs +1 -1
  398. package/package.json +10 -120
  399. package/reference.md +0 -2748
@@ -0,0 +1,99 @@
1
+ import type * as Corti from "../api/index.mjs";
2
+ import type { BaseClientOptions } from "../BaseClient.mjs";
3
+ import * as core from "../core/index.mjs";
4
+ import { CLIENT_ID_PARAM, CLIENT_SECRET_PARAM, CODE_PARAM, CODE_VERIFIER_PARAM, PASSWORD_PARAM, REDIRECT_URI_PARAM, USERNAME_PARAM } from "./utils/oauthAuthHelpers.mjs";
5
+ /** Patch: Re-export for consumers; implementation shared with OAuthRopcAuthProvider, OAuthAuthCodeAuthProvider and OAuthPkceAuthProvider. */
6
+ export { BUFFER_IN_MINUTES, CLIENT_ID_PARAM, CLIENT_ID_REQUIRED_ERROR_MESSAGE, CLIENT_SECRET_PARAM, CLIENT_SECRET_REQUIRED_ERROR_MESSAGE, CODE_PARAM, CODE_VERIFIER_PARAM, getExpiresAt, PASSWORD_PARAM, PASSWORD_REQUIRED_ERROR_MESSAGE, REDIRECT_URI_PARAM, USERNAME_PARAM, USERNAME_REQUIRED_ERROR_MESSAGE, } from "./utils/oauthAuthHelpers.mjs";
7
+ declare const TOKEN_PARAM: "token";
8
+ export declare class OAuthAuthProvider implements core.AuthProvider {
9
+ private readonly options;
10
+ /**
11
+ * Patch: Use CortiAuth (real token endpoint) instead of AuthClient (fake-token).
12
+ */
13
+ private readonly authClient;
14
+ private accessToken;
15
+ private expiresAt;
16
+ private refreshPromise;
17
+ private storedRefreshToken;
18
+ private refreshExpiresAt;
19
+ constructor(options: OAuthAuthProvider.Options & OAuthAuthProvider.ClientCredentials);
20
+ static canCreate(options?: Partial<OAuthAuthProvider.ClientCredentials & BaseClientOptions>): boolean;
21
+ private clientIdSupplier;
22
+ private clientSecretSupplier;
23
+ getAuthRequest({ endpointMetadata, }?: {
24
+ endpointMetadata?: core.EndpointMetadata;
25
+ }): Promise<core.AuthRequest>;
26
+ private getToken;
27
+ private refresh;
28
+ }
29
+ export declare class OAuthTokenOverrideAuthProvider implements core.AuthProvider {
30
+ private readonly authClient;
31
+ private readonly _tokenSupplier;
32
+ private readonly _clientIdSupplier;
33
+ private readonly _refreshAccessToken;
34
+ private accessToken;
35
+ private expiresAt;
36
+ private storedRefreshToken;
37
+ private refreshExpiresAt;
38
+ private _seedPromise;
39
+ constructor(options: OAuthAuthProvider.TokenOverride & BaseClientOptions);
40
+ static canCreate(options?: Partial<OAuthAuthProvider.TokenOverride & BaseClientOptions>): options is OAuthAuthProvider.TokenOverride & BaseClientOptions;
41
+ getAuthRequest({ endpointMetadata, }?: {
42
+ endpointMetadata?: core.EndpointMetadata;
43
+ }): Promise<core.AuthRequest>;
44
+ }
45
+ export declare namespace OAuthAuthProvider {
46
+ const AUTH_SCHEME: "OAuth";
47
+ /** Patch: Message extended to mention ROPC (clientId, username, password). */
48
+ const AUTH_CONFIG_ERROR_MESSAGE: string;
49
+ type ClientCredentials = {
50
+ [CLIENT_ID_PARAM]: core.Supplier<string>;
51
+ [CLIENT_SECRET_PARAM]: core.Supplier<string>;
52
+ };
53
+ /**
54
+ * Patch: tokenType and expiresIn made optional — the provider only strictly needs accessToken.
55
+ * Mirrors AuthTokenResponse but relaxes the two required fields so custom refresh functions
56
+ * don't need to return fields the provider doesn't use.
57
+ */
58
+ type ExpectedTokenResponse = Omit<Corti.AuthTokenResponse, "tokenType" | "expiresIn"> & {
59
+ tokenType?: string;
60
+ expiresIn?: number;
61
+ };
62
+ /** Patch: Custom refresh function — sync or async, receives the last known refresh token. */
63
+ type RefreshAccessTokenFunction = (refreshToken?: string) => Promise<OAuthAuthProvider.ExpectedTokenResponse> | OAuthAuthProvider.ExpectedTokenResponse;
64
+ type TokenOverride = {
65
+ [TOKEN_PARAM]?: core.Supplier<string>;
66
+ /** Patch: Custom callback called to obtain/renew the access token. Takes priority over built-in clientId+refreshToken path. */
67
+ refreshAccessToken?: OAuthAuthProvider.RefreshAccessTokenFunction;
68
+ expiresIn?: number;
69
+ refreshToken?: string;
70
+ refreshExpiresIn?: number;
71
+ clientId?: core.Supplier<string>;
72
+ /** Patch: Pre-seeded token response from resolveClientOptions — avoids a second refreshAccessToken call on first API request. */
73
+ initialTokenResponse?: Promise<OAuthAuthProvider.ExpectedTokenResponse>;
74
+ };
75
+ /** Patch: ROPC grant credentials (clientId + username + password) */
76
+ type RopcCredentials = {
77
+ [CLIENT_ID_PARAM]: core.Supplier<string>;
78
+ [USERNAME_PARAM]: core.Supplier<string>;
79
+ [PASSWORD_PARAM]: core.Supplier<string>;
80
+ };
81
+ /** Patch: Authorization code credentials (clientId + clientSecret + code + redirectUri) */
82
+ type AuthCodeCredentials = {
83
+ [CLIENT_ID_PARAM]: core.Supplier<string>;
84
+ [CLIENT_SECRET_PARAM]: core.Supplier<string>;
85
+ [CODE_PARAM]: core.Supplier<string>;
86
+ [REDIRECT_URI_PARAM]: core.Supplier<string>;
87
+ };
88
+ /** Patch: PKCE credentials (clientId + code + redirectUri; no clientSecret) */
89
+ type PkceCredentials = {
90
+ [CLIENT_ID_PARAM]: core.Supplier<string>;
91
+ [CODE_PARAM]: core.Supplier<string>;
92
+ [REDIRECT_URI_PARAM]: core.Supplier<string>;
93
+ [CODE_VERIFIER_PARAM]?: core.Supplier<string>;
94
+ };
95
+ /** Patch: Include RopcCredentials, AuthCodeCredentials and PkceCredentials so CortiClient can use those auth flows. */
96
+ type AuthOptions = ClientCredentials | TokenOverride | RopcCredentials | AuthCodeCredentials | PkceCredentials;
97
+ type Options = BaseClientOptions & AuthOptions;
98
+ function createInstance(options: Options): core.AuthProvider;
99
+ }
@@ -0,0 +1,239 @@
1
+ // This file was auto-generated by Fern from our API Definition.
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ import * as core from "../core/index.mjs";
12
+ import { CortiAuth } from "./CortiAuth.mjs";
13
+ import { OAuthAuthCodeAuthProvider } from "./OAuthAuthCodeAuthProvider.mjs";
14
+ import { OAuthPkceAuthProvider } from "./OAuthPkceAuthProvider.mjs";
15
+ import { OAuthRopcAuthProvider } from "./OAuthRopcAuthProvider.mjs";
16
+ import { BUFFER_IN_MINUTES, CLIENT_ID_PARAM, CLIENT_ID_REQUIRED_ERROR_MESSAGE, CLIENT_SECRET_PARAM, CLIENT_SECRET_REQUIRED_ERROR_MESSAGE, CODE_PARAM, CODE_VERIFIER_PARAM, getExpiresAt, PASSWORD_PARAM, REDIRECT_URI_PARAM, USERNAME_PARAM, } from "./utils/oauthAuthHelpers.mjs";
17
+ import * as errors from "../errors/index.mjs";
18
+ /** Patch: Re-export for consumers; implementation shared with OAuthRopcAuthProvider, OAuthAuthCodeAuthProvider and OAuthPkceAuthProvider. */
19
+ export { BUFFER_IN_MINUTES, CLIENT_ID_PARAM, CLIENT_ID_REQUIRED_ERROR_MESSAGE, CLIENT_SECRET_PARAM, CLIENT_SECRET_REQUIRED_ERROR_MESSAGE, CODE_PARAM, CODE_VERIFIER_PARAM, getExpiresAt, PASSWORD_PARAM, PASSWORD_REQUIRED_ERROR_MESSAGE, REDIRECT_URI_PARAM, USERNAME_PARAM, USERNAME_REQUIRED_ERROR_MESSAGE, } from "./utils/oauthAuthHelpers.mjs";
20
+ const TOKEN_PARAM = "token";
21
+ const TOKEN_PARAM_REQUIRED_ERROR_MESSAGE = `${TOKEN_PARAM} is required. Please provide it in options.`;
22
+ export class OAuthAuthProvider {
23
+ constructor(options) {
24
+ this.options = options;
25
+ /**
26
+ * Patch: Use CortiAuth (real token endpoint) instead of AuthClient (fake-token).
27
+ */
28
+ this.authClient = new CortiAuth(options);
29
+ this.expiresAt = new Date();
30
+ }
31
+ static canCreate(options) {
32
+ return (options === null || options === void 0 ? void 0 : options[CLIENT_ID_PARAM]) != null && (options === null || options === void 0 ? void 0 : options[CLIENT_SECRET_PARAM]) != null;
33
+ }
34
+ clientIdSupplier() {
35
+ return __awaiter(this, arguments, void 0, function* ({ endpointMetadata, } = {}) {
36
+ const supplier = this.options[CLIENT_ID_PARAM];
37
+ if (supplier == null) {
38
+ throw new errors.CortiError({
39
+ message: CLIENT_ID_REQUIRED_ERROR_MESSAGE,
40
+ });
41
+ }
42
+ return core.EndpointSupplier.get(supplier, { endpointMetadata });
43
+ });
44
+ }
45
+ clientSecretSupplier() {
46
+ return __awaiter(this, arguments, void 0, function* ({ endpointMetadata, } = {}) {
47
+ const supplier = this.options[CLIENT_SECRET_PARAM];
48
+ if (supplier == null) {
49
+ throw new errors.CortiError({
50
+ message: CLIENT_SECRET_REQUIRED_ERROR_MESSAGE,
51
+ });
52
+ }
53
+ return core.EndpointSupplier.get(supplier, { endpointMetadata });
54
+ });
55
+ }
56
+ getAuthRequest() {
57
+ return __awaiter(this, arguments, void 0, function* ({ endpointMetadata, } = {}) {
58
+ const token = yield this.getToken({ endpointMetadata });
59
+ return {
60
+ headers: {
61
+ Authorization: `Bearer ${token}`,
62
+ },
63
+ };
64
+ });
65
+ }
66
+ getToken() {
67
+ return __awaiter(this, arguments, void 0, function* ({ endpointMetadata } = {}) {
68
+ if (this.accessToken && this.expiresAt > new Date()) {
69
+ return this.accessToken;
70
+ }
71
+ // If a refresh is already in progress, return the existing promise
72
+ if (this.refreshPromise != null) {
73
+ return this.refreshPromise;
74
+ }
75
+ return this.refresh({ endpointMetadata });
76
+ });
77
+ }
78
+ refresh() {
79
+ return __awaiter(this, arguments, void 0, function* ({ endpointMetadata } = {}) {
80
+ this.refreshPromise = (() => __awaiter(this, void 0, void 0, function* () {
81
+ try {
82
+ const clientId = yield this.clientIdSupplier({ endpointMetadata });
83
+ const clientSecret = yield this.clientSecretSupplier({ endpointMetadata });
84
+ const tokenResponse = clientId && this.storedRefreshToken && this.refreshExpiresAt && this.refreshExpiresAt > new Date()
85
+ ? yield this.authClient.refreshToken({
86
+ clientId,
87
+ refreshToken: this.storedRefreshToken,
88
+ })
89
+ : yield this.authClient.getToken({ clientId, clientSecret });
90
+ this.accessToken = tokenResponse.accessToken;
91
+ this.expiresAt = getExpiresAt(tokenResponse.expiresIn, BUFFER_IN_MINUTES);
92
+ if (tokenResponse.refreshToken) {
93
+ this.storedRefreshToken = tokenResponse.refreshToken;
94
+ this.refreshExpiresAt = tokenResponse.refreshExpiresIn
95
+ ? getExpiresAt(tokenResponse.refreshExpiresIn, BUFFER_IN_MINUTES)
96
+ : undefined;
97
+ }
98
+ return this.accessToken;
99
+ }
100
+ finally {
101
+ this.refreshPromise = undefined;
102
+ }
103
+ }))();
104
+ return this.refreshPromise;
105
+ });
106
+ }
107
+ }
108
+ export class OAuthTokenOverrideAuthProvider {
109
+ constructor(options) {
110
+ this._tokenSupplier = options[TOKEN_PARAM];
111
+ this._clientIdSupplier = options.clientId;
112
+ // Patch: store custom refresh callback
113
+ this._refreshAccessToken = options.refreshAccessToken;
114
+ this.expiresAt = options.expiresIn ? getExpiresAt(options.expiresIn, BUFFER_IN_MINUTES) : undefined;
115
+ this.storedRefreshToken = options.refreshToken;
116
+ this.refreshExpiresAt = options.refreshExpiresIn
117
+ ? getExpiresAt(options.refreshExpiresIn, BUFFER_IN_MINUTES)
118
+ : undefined;
119
+ if (options.clientId && options.refreshToken) {
120
+ this.authClient = new CortiAuth(options);
121
+ }
122
+ // Patch: pre-seed token from discovery promise so getAuthRequest doesn't call refreshAccessToken again
123
+ if (options.initialTokenResponse) {
124
+ this._seedPromise = options.initialTokenResponse
125
+ .then((resp) => {
126
+ this.accessToken = resp.accessToken;
127
+ this.expiresAt = resp.expiresIn ? getExpiresAt(resp.expiresIn, BUFFER_IN_MINUTES) : undefined;
128
+ if (resp.refreshToken) {
129
+ this.storedRefreshToken = resp.refreshToken;
130
+ this.refreshExpiresAt = resp.refreshExpiresIn
131
+ ? getExpiresAt(resp.refreshExpiresIn, BUFFER_IN_MINUTES)
132
+ : undefined;
133
+ }
134
+ })
135
+ .finally(() => {
136
+ this._seedPromise = undefined;
137
+ });
138
+ }
139
+ }
140
+ static canCreate(options) {
141
+ // Patch: either token or refreshAccessToken is sufficient
142
+ return (options === null || options === void 0 ? void 0 : options[TOKEN_PARAM]) != null || (options === null || options === void 0 ? void 0 : options.refreshAccessToken) != null;
143
+ }
144
+ getAuthRequest() {
145
+ return __awaiter(this, arguments, void 0, function* ({ endpointMetadata, } = {}) {
146
+ // Patch: await seed promise so the initial token from resolveClientOptions is set before checking expiry
147
+ if (this._seedPromise) {
148
+ yield this._seedPromise;
149
+ }
150
+ const isExpiredOrAbsent = !this.accessToken || (this.expiresAt != null && this.expiresAt <= new Date());
151
+ // Patch: custom refreshAccessToken takes priority — call it when token is absent or expired
152
+ if (this._refreshAccessToken && isExpiredOrAbsent) {
153
+ const result = yield this._refreshAccessToken(this.storedRefreshToken);
154
+ this.accessToken = result.accessToken;
155
+ this.expiresAt = result.expiresIn ? getExpiresAt(result.expiresIn, BUFFER_IN_MINUTES) : undefined;
156
+ if (result.refreshToken) {
157
+ this.storedRefreshToken = result.refreshToken;
158
+ this.refreshExpiresAt = result.refreshExpiresIn
159
+ ? getExpiresAt(result.refreshExpiresIn, BUFFER_IN_MINUTES)
160
+ : undefined;
161
+ }
162
+ return { headers: { Authorization: `Bearer ${this.accessToken}` } };
163
+ }
164
+ // Built-in: if access token is expired and we have a valid SDK refresh token, use it
165
+ if (this.expiresAt != null &&
166
+ this.expiresAt <= new Date() &&
167
+ this._clientIdSupplier &&
168
+ this.storedRefreshToken &&
169
+ this.refreshExpiresAt &&
170
+ this.refreshExpiresAt > new Date() &&
171
+ this.authClient) {
172
+ const clientId = yield core.EndpointSupplier.get(this._clientIdSupplier, { endpointMetadata });
173
+ const tokenResponse = yield this.authClient.refreshToken({
174
+ clientId,
175
+ refreshToken: this.storedRefreshToken,
176
+ });
177
+ this.accessToken = tokenResponse.accessToken;
178
+ this.expiresAt = getExpiresAt(tokenResponse.expiresIn, BUFFER_IN_MINUTES);
179
+ if (tokenResponse.refreshToken) {
180
+ this.storedRefreshToken = tokenResponse.refreshToken;
181
+ this.refreshExpiresAt = tokenResponse.refreshExpiresIn
182
+ ? getExpiresAt(tokenResponse.refreshExpiresIn, BUFFER_IN_MINUTES)
183
+ : undefined;
184
+ }
185
+ return { headers: { Authorization: `Bearer ${this.accessToken}` } };
186
+ }
187
+ // Token not yet acquired — resolve from supplier (static token / initial value)
188
+ if (!this.accessToken) {
189
+ if (this._tokenSupplier == null) {
190
+ throw new errors.CortiError({ message: TOKEN_PARAM_REQUIRED_ERROR_MESSAGE });
191
+ }
192
+ this.accessToken = yield core.EndpointSupplier.get(this._tokenSupplier, { endpointMetadata });
193
+ }
194
+ if (!this.accessToken) {
195
+ throw new errors.CortiError({ message: TOKEN_PARAM_REQUIRED_ERROR_MESSAGE });
196
+ }
197
+ return { headers: { Authorization: `Bearer ${this.accessToken}` } };
198
+ });
199
+ }
200
+ }
201
+ (function (OAuthAuthProvider) {
202
+ OAuthAuthProvider.AUTH_SCHEME = "OAuth";
203
+ /** Patch: Message extended to mention ROPC (clientId, username, password). */
204
+ OAuthAuthProvider.AUTH_CONFIG_ERROR_MESSAGE = `Insufficient options to create OAuthAuthProvider. Please provide '${CLIENT_ID_PARAM}' and '${CLIENT_SECRET_PARAM}', or ${TOKEN_PARAM}, or ROPC (${CLIENT_ID_PARAM}, username, password).`;
205
+ function createInstance(options) {
206
+ if (OAuthTokenOverrideAuthProvider.canCreate(options)) {
207
+ return new OAuthTokenOverrideAuthProvider(options);
208
+ }
209
+ /** Patch: ROPC provider before client credentials so ROPC auth is used when username+password provided. */
210
+ if (OAuthRopcAuthProvider.canCreate(options)) {
211
+ return new OAuthRopcAuthProvider(options);
212
+ }
213
+ /** Patch: PKCE provider before auth code — both have clientId+code+redirectUri, but PKCE has no clientSecret. */
214
+ if (OAuthPkceAuthProvider.canCreate(options)) {
215
+ return new OAuthPkceAuthProvider(options);
216
+ }
217
+ /** Patch: Auth code provider before client credentials — both have clientId+clientSecret, code+redirectUri distinguishes auth code. */
218
+ if (OAuthAuthCodeAuthProvider.canCreate(options)) {
219
+ return new OAuthAuthCodeAuthProvider(options);
220
+ }
221
+ if (OAuthAuthProvider.canCreate(options)) {
222
+ return new OAuthAuthProvider(options);
223
+ }
224
+ /** Patch: No credentials provided — proxy/passthrough mode; requests are sent without an Authorization header. */
225
+ const partialOptions = options;
226
+ const hasNoCredentials = partialOptions[CLIENT_ID_PARAM] == null &&
227
+ partialOptions[CLIENT_SECRET_PARAM] == null &&
228
+ partialOptions[TOKEN_PARAM] == null &&
229
+ partialOptions.refreshAccessToken == null &&
230
+ partialOptions[USERNAME_PARAM] == null;
231
+ if (hasNoCredentials) {
232
+ return new core.NoOpAuthProvider();
233
+ }
234
+ throw new errors.CortiError({
235
+ message: OAuthAuthProvider.AUTH_CONFIG_ERROR_MESSAGE,
236
+ });
237
+ }
238
+ OAuthAuthProvider.createInstance = createInstance;
239
+ })(OAuthAuthProvider || (OAuthAuthProvider = {}));
@@ -0,0 +1,129 @@
1
+ import type * as Corti from "../../api/index.mjs";
2
+ import { AuthClient } from "../../api/resources/auth/client/Client.mjs";
3
+ import type { OAuthAuthProvider } from "../../auth/OAuthAuthProvider.mjs";
4
+ import * as core from "../../core/index.mjs";
5
+ import { type Environment } from "../utils/environment.mjs";
6
+ interface Options {
7
+ skipRedirect?: boolean;
8
+ }
9
+ export declare namespace CortiAuth {
10
+ /** Auth (clientId/clientSecret or token) is optional; credentials can be passed to getToken() instead. */
11
+ type Options = Omit<AuthClient.Options, "clientId" | "clientSecret" | "token" | "environment"> & Partial<OAuthAuthProvider.ClientCredentials> & Partial<OAuthAuthProvider.TokenOverride> & {
12
+ environment: Environment;
13
+ };
14
+ /** Optional scopes on getToken request. */
15
+ interface GetTokenRequest extends Corti.OAuthTokenRequest {
16
+ scopes?: string[];
17
+ }
18
+ /** ROPC (resource owner password credentials) request for getRopcFlowToken. */
19
+ interface GetRopcFlowTokenRequest {
20
+ clientId: string;
21
+ username: string;
22
+ password: string;
23
+ scopes?: string[];
24
+ }
25
+ /** Refresh token request for refreshToken. */
26
+ interface RefreshTokenRequest {
27
+ clientId: string;
28
+ refreshToken: string;
29
+ clientSecret?: string;
30
+ scopes?: string[];
31
+ }
32
+ /** Authorization code grant request for getCodeFlowToken. */
33
+ interface GetCodeFlowTokenRequest {
34
+ clientId: string;
35
+ clientSecret: string;
36
+ redirectUri: string;
37
+ code: string;
38
+ scopes?: string[];
39
+ }
40
+ /** PKCE grant request for getPkceFlowToken. codeVerifier is optional — if omitted, reads from localStorage. */
41
+ interface GetPkceFlowTokenRequest {
42
+ clientId: string;
43
+ redirectUri: string;
44
+ code: string;
45
+ codeVerifier?: string;
46
+ scopes?: string[];
47
+ }
48
+ /** Parameters for authorizeURL — builds the Keycloak authorization endpoint URL. */
49
+ interface AuthorizationCodeClient {
50
+ clientId: string;
51
+ redirectUri: string;
52
+ codeChallenge?: string;
53
+ scopes?: string[];
54
+ }
55
+ /** Parameters for authorizePkceUrl — like AuthorizationCodeClient but without codeChallenge (generated internally). */
56
+ interface PkceClient {
57
+ clientId: string;
58
+ redirectUri: string;
59
+ scopes?: string[];
60
+ codeVerifier?: string;
61
+ }
62
+ }
63
+ export declare class CortiAuth extends AuthClient {
64
+ /** No-op auth provider so super.token() does not trigger OAuth refresh. When auth is omitted, a dummy token is passed so the base constructor does not throw. */
65
+ constructor(options: CortiAuth.Options);
66
+ /**
67
+ * Exchange credentials for a short-lived access token using the tenant token endpoint (client_credentials).
68
+ * Resolves tenant from client options. Supports optional scopes (openid is always included).
69
+ *
70
+ * @param request - Client credentials and optional scopes
71
+ * @param requestOptions - Request-specific configuration
72
+ *
73
+ * @throws {@link Corti.BadRequestError}
74
+ * @throws {@link Corti.UnauthorizedError}
75
+ *
76
+ * @example
77
+ * const response = await auth.getToken({
78
+ * clientId: "client_id",
79
+ * clientSecret: "client_secret",
80
+ * scopes: ["profile"]
81
+ * });
82
+ */
83
+ getToken(request: CortiAuth.GetTokenRequest, requestOptions?: AuthClient.RequestOptions): core.HttpResponsePromise<Corti.AuthTokenResponse>;
84
+ private _getTokenWithTenant;
85
+ /** Exchange username/password for access token via ROPC (resource owner password credentials). */
86
+ getRopcFlowToken(request: CortiAuth.GetRopcFlowTokenRequest, requestOptions?: AuthClient.RequestOptions): core.HttpResponsePromise<Corti.AuthTokenResponse>;
87
+ /**
88
+ * Exchange a refresh token for a new access token (refresh_token grant).
89
+ * Resolves tenant from client options.
90
+ *
91
+ * @param request - Client ID, refresh token, and optional scopes
92
+ * @param requestOptions - Request-specific configuration
93
+ *
94
+ * @throws {@link Corti.BadRequestError}
95
+ * @throws {@link Corti.UnauthorizedError}
96
+ *
97
+ * @example
98
+ * const response = await auth.refreshToken({
99
+ * clientId: "client_id",
100
+ * refreshToken: "refresh_token",
101
+ * });
102
+ */
103
+ refreshToken(request: CortiAuth.RefreshTokenRequest, requestOptions?: AuthClient.RequestOptions): core.HttpResponsePromise<Corti.AuthTokenResponse>;
104
+ /** Exchange an authorization code for an access token (authorization_code grant). */
105
+ getCodeFlowToken(request: CortiAuth.GetCodeFlowTokenRequest, requestOptions?: AuthClient.RequestOptions): core.HttpResponsePromise<Corti.AuthTokenResponse>;
106
+ /**
107
+ * Exchange a PKCE authorization code for an access token (authorization_code grant with code_verifier).
108
+ * If codeVerifier is omitted, it is read from localStorage (set by authorizePkceUrl).
109
+ */
110
+ getPkceFlowToken(request: CortiAuth.GetPkceFlowTokenRequest, requestOptions?: AuthClient.RequestOptions): core.HttpResponsePromise<Corti.AuthTokenResponse>;
111
+ /**
112
+ * Build the Keycloak authorization endpoint URL for the PKCE flow.
113
+ * Generates a code verifier if not provided, stores it in localStorage, and computes the challenge.
114
+ * In a browser environment, redirects to the URL unless skipRedirect is true.
115
+ */
116
+ authorizePkceUrl({ clientId, redirectUri, scopes, codeVerifier }: CortiAuth.PkceClient, options?: Options): Promise<string>;
117
+ /** Read the PKCE code verifier stored in localStorage by authorizePkceUrl. Returns null if not found. */
118
+ static getCodeVerifier(): string | null;
119
+ /**
120
+ * Build the Keycloak authorization endpoint URL for the authorization code flow.
121
+ * In a browser environment, redirects to the URL unless skipRedirect is true.
122
+ * In a server environment (no window), always returns the URL string.
123
+ *
124
+ * @param client - clientId, redirectUri, and optional codeChallenge/scopes
125
+ * @param options - { skipRedirect?: boolean }
126
+ */
127
+ authorizeURL({ clientId, redirectUri, codeChallenge, scopes }: CortiAuth.AuthorizationCodeClient, options?: Options): Promise<string>;
128
+ }
129
+ export {};
@@ -0,0 +1,158 @@
1
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
+ return new (P || (P = Promise))(function (resolve, reject) {
4
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
8
+ });
9
+ };
10
+ var __rest = (this && this.__rest) || function (s, e) {
11
+ var t = {};
12
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
13
+ t[p] = s[p];
14
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
15
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
16
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
17
+ t[p[i]] = s[p[i]];
18
+ }
19
+ return t;
20
+ };
21
+ import { AuthClient } from "../../api/resources/auth/client/Client.mjs";
22
+ import * as core from "../../core/index.mjs";
23
+ import { ParseError } from "../../core/schemas/index.mjs";
24
+ import { buildTokenRequestBody } from "../utils/buildTokenRequestBody.mjs";
25
+ import { getEnvironment } from "../utils/environment.mjs";
26
+ import { CODE_VERIFIER_KEY, getLocalStorageItem, setLocalStorageItem } from "../utils/localStorageHelpers.mjs";
27
+ import { generateCodeChallenge, generateCodeVerifier } from "../utils/pkceHelpers.mjs";
28
+ export class CortiAuth extends AuthClient {
29
+ /** No-op auth provider so super.token() does not trigger OAuth refresh. When auth is omitted, a dummy token is passed so the base constructor does not throw. */
30
+ constructor(options) {
31
+ var _a;
32
+ const { environment } = options, rest = __rest(options, ["environment"]);
33
+ super(Object.assign(Object.assign({}, rest), { environment: getEnvironment(environment), token: (_a = options.token) !== null && _a !== void 0 ? _a : (() => "") }));
34
+ this._options.authProvider = new core.NoOpAuthProvider();
35
+ }
36
+ /**
37
+ * Exchange credentials for a short-lived access token using the tenant token endpoint (client_credentials).
38
+ * Resolves tenant from client options. Supports optional scopes (openid is always included).
39
+ *
40
+ * @param request - Client credentials and optional scopes
41
+ * @param requestOptions - Request-specific configuration
42
+ *
43
+ * @throws {@link Corti.BadRequestError}
44
+ * @throws {@link Corti.UnauthorizedError}
45
+ *
46
+ * @example
47
+ * const response = await auth.getToken({
48
+ * clientId: "client_id",
49
+ * clientSecret: "client_secret",
50
+ * scopes: ["profile"]
51
+ * });
52
+ */
53
+ getToken(request, requestOptions) {
54
+ return core.HttpResponsePromise.fromPromise(this._getTokenWithTenant(request, requestOptions !== null && requestOptions !== void 0 ? requestOptions : {}));
55
+ }
56
+ _getTokenWithTenant(request, requestOptions) {
57
+ return __awaiter(this, void 0, void 0, function* () {
58
+ const authRequest = buildTokenRequestBody(request);
59
+ const tenantName = yield core.Supplier.get(this._options.tenantName);
60
+ return this.token(tenantName, authRequest, requestOptions).withRawResponse();
61
+ });
62
+ }
63
+ /** Exchange username/password for access token via ROPC (resource owner password credentials). */
64
+ getRopcFlowToken(request, requestOptions) {
65
+ return core.HttpResponsePromise.fromPromise(this._getTokenWithTenant(request, requestOptions !== null && requestOptions !== void 0 ? requestOptions : {}));
66
+ }
67
+ /**
68
+ * Exchange a refresh token for a new access token (refresh_token grant).
69
+ * Resolves tenant from client options.
70
+ *
71
+ * @param request - Client ID, refresh token, and optional scopes
72
+ * @param requestOptions - Request-specific configuration
73
+ *
74
+ * @throws {@link Corti.BadRequestError}
75
+ * @throws {@link Corti.UnauthorizedError}
76
+ *
77
+ * @example
78
+ * const response = await auth.refreshToken({
79
+ * clientId: "client_id",
80
+ * refreshToken: "refresh_token",
81
+ * });
82
+ */
83
+ refreshToken(request, requestOptions) {
84
+ return core.HttpResponsePromise.fromPromise(this._getTokenWithTenant(request, requestOptions !== null && requestOptions !== void 0 ? requestOptions : {}));
85
+ }
86
+ /** Exchange an authorization code for an access token (authorization_code grant). */
87
+ getCodeFlowToken(request, requestOptions) {
88
+ return core.HttpResponsePromise.fromPromise(this._getTokenWithTenant(request, requestOptions !== null && requestOptions !== void 0 ? requestOptions : {}));
89
+ }
90
+ /**
91
+ * Exchange a PKCE authorization code for an access token (authorization_code grant with code_verifier).
92
+ * If codeVerifier is omitted, it is read from localStorage (set by authorizePkceUrl).
93
+ */
94
+ getPkceFlowToken(request, requestOptions) {
95
+ var _a;
96
+ const codeVerifier = (_a = request.codeVerifier) !== null && _a !== void 0 ? _a : getLocalStorageItem(CODE_VERIFIER_KEY);
97
+ if (!codeVerifier) {
98
+ throw new ParseError([
99
+ {
100
+ path: ["codeVerifier"],
101
+ message: "Code verifier was not provided and not found in localStorage.",
102
+ },
103
+ ]);
104
+ }
105
+ return core.HttpResponsePromise.fromPromise(this._getTokenWithTenant(Object.assign(Object.assign({}, request), { codeVerifier }), requestOptions !== null && requestOptions !== void 0 ? requestOptions : {}));
106
+ }
107
+ /**
108
+ * Build the Keycloak authorization endpoint URL for the PKCE flow.
109
+ * Generates a code verifier if not provided, stores it in localStorage, and computes the challenge.
110
+ * In a browser environment, redirects to the URL unless skipRedirect is true.
111
+ */
112
+ authorizePkceUrl(_a, options_1) {
113
+ return __awaiter(this, arguments, void 0, function* ({ clientId, redirectUri, scopes, codeVerifier }, options) {
114
+ const verifier = codeVerifier !== null && codeVerifier !== void 0 ? codeVerifier : generateCodeVerifier();
115
+ setLocalStorageItem(CODE_VERIFIER_KEY, verifier);
116
+ const codeChallenge = yield generateCodeChallenge(verifier);
117
+ return this.authorizeURL({ clientId, redirectUri, codeChallenge, scopes }, options);
118
+ });
119
+ }
120
+ /** Read the PKCE code verifier stored in localStorage by authorizePkceUrl. Returns null if not found. */
121
+ static getCodeVerifier() {
122
+ return getLocalStorageItem(CODE_VERIFIER_KEY);
123
+ }
124
+ /**
125
+ * Build the Keycloak authorization endpoint URL for the authorization code flow.
126
+ * In a browser environment, redirects to the URL unless skipRedirect is true.
127
+ * In a server environment (no window), always returns the URL string.
128
+ *
129
+ * @param client - clientId, redirectUri, and optional codeChallenge/scopes
130
+ * @param options - { skipRedirect?: boolean }
131
+ */
132
+ authorizeURL(_a, options_1) {
133
+ return __awaiter(this, arguments, void 0, function* ({ clientId, redirectUri, codeChallenge, scopes }, options) {
134
+ const envUrls = yield core.Supplier.get(this._options.environment);
135
+ const tenantName = yield core.Supplier.get(this._options.tenantName);
136
+ const authUrl = new URL(core.url.join(envUrls.login, tenantName, "protocol/openid-connect/auth"));
137
+ authUrl.searchParams.set("response_type", "code");
138
+ const allScopes = ["openid", "profile", ...(scopes !== null && scopes !== void 0 ? scopes : [])];
139
+ authUrl.searchParams.set("scope", [...new Set(allScopes)].join(" "));
140
+ if (clientId !== undefined) {
141
+ authUrl.searchParams.set("client_id", clientId);
142
+ }
143
+ if (redirectUri !== undefined) {
144
+ authUrl.searchParams.set("redirect_uri", redirectUri);
145
+ }
146
+ if (codeChallenge !== undefined) {
147
+ authUrl.searchParams.set("code_challenge", codeChallenge);
148
+ authUrl.searchParams.set("code_challenge_method", "S256");
149
+ }
150
+ const authUrlString = authUrl.toString();
151
+ if (typeof window !== "undefined" && !(options === null || options === void 0 ? void 0 : options.skipRedirect)) {
152
+ window.location.href = authUrlString;
153
+ return authUrlString;
154
+ }
155
+ return authUrlString;
156
+ });
157
+ }
158
+ }
@@ -0,0 +1,23 @@
1
+ import type { OAuthAuthProvider } from "../../auth/OAuthAuthProvider.mjs";
2
+ import type { BaseClientOptions } from "../../BaseClient.mjs";
3
+ import * as core from "../../core/index.mjs";
4
+ export declare class OAuthAuthCodeAuthProvider implements core.AuthProvider {
5
+ private readonly options;
6
+ private readonly authClient;
7
+ private accessToken;
8
+ private expiresAt;
9
+ private refreshPromise;
10
+ private storedRefreshToken;
11
+ private refreshExpiresAt;
12
+ constructor(options: BaseClientOptions & OAuthAuthProvider.AuthCodeCredentials);
13
+ static canCreate(options?: Partial<OAuthAuthProvider.AuthCodeCredentials & BaseClientOptions>): options is BaseClientOptions & OAuthAuthProvider.AuthCodeCredentials;
14
+ private clientIdSupplier;
15
+ private clientSecretSupplier;
16
+ private codeSupplier;
17
+ private redirectUriSupplier;
18
+ getAuthRequest({ endpointMetadata, }?: {
19
+ endpointMetadata?: core.EndpointMetadata;
20
+ }): Promise<core.AuthRequest>;
21
+ private getToken;
22
+ private refresh;
23
+ }