@supertone/supertone 0.1.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.
Files changed (1076) hide show
  1. package/.tshy/build.json +8 -0
  2. package/.tshy/commonjs.json +16 -0
  3. package/.tshy/esm.json +15 -0
  4. package/FUNCTIONS.md +93 -0
  5. package/LICENSE +21 -0
  6. package/README.md +251 -0
  7. package/RUNTIMES.md +48 -0
  8. package/custom_test/realtime_tts_player.ts +489 -0
  9. package/custom_test/test_real_api.ts +1803 -0
  10. package/custom_test/test_sdk.ts +259 -0
  11. package/custom_test/test_sdk_functions.ts +609 -0
  12. package/dist/commonjs/core.d.ts +10 -0
  13. package/dist/commonjs/core.d.ts.map +1 -0
  14. package/dist/commonjs/core.js +17 -0
  15. package/dist/commonjs/core.js.map +1 -0
  16. package/dist/commonjs/funcs/customVoicesCreateClonedVoice.d.ts +19 -0
  17. package/dist/commonjs/funcs/customVoicesCreateClonedVoice.d.ts.map +1 -0
  18. package/dist/commonjs/funcs/customVoicesCreateClonedVoice.js +151 -0
  19. package/dist/commonjs/funcs/customVoicesCreateClonedVoice.js.map +1 -0
  20. package/dist/commonjs/funcs/customVoicesDeleteCustomVoice.d.ts +18 -0
  21. package/dist/commonjs/funcs/customVoicesDeleteCustomVoice.d.ts.map +1 -0
  22. package/dist/commonjs/funcs/customVoicesDeleteCustomVoice.js +124 -0
  23. package/dist/commonjs/funcs/customVoicesDeleteCustomVoice.js.map +1 -0
  24. package/dist/commonjs/funcs/customVoicesEditCustomVoice.d.ts +19 -0
  25. package/dist/commonjs/funcs/customVoicesEditCustomVoice.d.ts.map +1 -0
  26. package/dist/commonjs/funcs/customVoicesEditCustomVoice.js +127 -0
  27. package/dist/commonjs/funcs/customVoicesEditCustomVoice.js.map +1 -0
  28. package/dist/commonjs/funcs/customVoicesGetCustomVoice.d.ts +19 -0
  29. package/dist/commonjs/funcs/customVoicesGetCustomVoice.d.ts.map +1 -0
  30. package/dist/commonjs/funcs/customVoicesGetCustomVoice.js +124 -0
  31. package/dist/commonjs/funcs/customVoicesGetCustomVoice.js.map +1 -0
  32. package/dist/commonjs/funcs/customVoicesListCustomVoices.d.ts +19 -0
  33. package/dist/commonjs/funcs/customVoicesListCustomVoices.d.ts.map +1 -0
  34. package/dist/commonjs/funcs/customVoicesListCustomVoices.js +123 -0
  35. package/dist/commonjs/funcs/customVoicesListCustomVoices.js.map +1 -0
  36. package/dist/commonjs/funcs/customVoicesSearchCustomVoices.d.ts +19 -0
  37. package/dist/commonjs/funcs/customVoicesSearchCustomVoices.d.ts.map +1 -0
  38. package/dist/commonjs/funcs/customVoicesSearchCustomVoices.js +125 -0
  39. package/dist/commonjs/funcs/customVoicesSearchCustomVoices.js.map +1 -0
  40. package/dist/commonjs/funcs/textToSpeechCreateSpeech.d.ts +25 -0
  41. package/dist/commonjs/funcs/textToSpeechCreateSpeech.d.ts.map +1 -0
  42. package/dist/commonjs/funcs/textToSpeechCreateSpeech.js +154 -0
  43. package/dist/commonjs/funcs/textToSpeechCreateSpeech.js.map +1 -0
  44. package/dist/commonjs/funcs/textToSpeechPredictDuration.d.ts +18 -0
  45. package/dist/commonjs/funcs/textToSpeechPredictDuration.d.ts.map +1 -0
  46. package/dist/commonjs/funcs/textToSpeechPredictDuration.js +135 -0
  47. package/dist/commonjs/funcs/textToSpeechPredictDuration.js.map +1 -0
  48. package/dist/commonjs/funcs/textToSpeechStreamSpeech.d.ts +25 -0
  49. package/dist/commonjs/funcs/textToSpeechStreamSpeech.d.ts.map +1 -0
  50. package/dist/commonjs/funcs/textToSpeechStreamSpeech.js +155 -0
  51. package/dist/commonjs/funcs/textToSpeechStreamSpeech.js.map +1 -0
  52. package/dist/commonjs/funcs/usageGetCreditBalance.d.ts +17 -0
  53. package/dist/commonjs/funcs/usageGetCreditBalance.d.ts.map +1 -0
  54. package/dist/commonjs/funcs/usageGetCreditBalance.js +104 -0
  55. package/dist/commonjs/funcs/usageGetCreditBalance.js.map +1 -0
  56. package/dist/commonjs/funcs/usageGetUsage.d.ts +19 -0
  57. package/dist/commonjs/funcs/usageGetUsage.d.ts.map +1 -0
  58. package/dist/commonjs/funcs/usageGetUsage.js +127 -0
  59. package/dist/commonjs/funcs/usageGetUsage.js.map +1 -0
  60. package/dist/commonjs/funcs/usageGetVoiceUsage.d.ts +18 -0
  61. package/dist/commonjs/funcs/usageGetVoiceUsage.d.ts.map +1 -0
  62. package/dist/commonjs/funcs/usageGetVoiceUsage.js +119 -0
  63. package/dist/commonjs/funcs/usageGetVoiceUsage.js.map +1 -0
  64. package/dist/commonjs/funcs/voicesGetVoice.d.ts +18 -0
  65. package/dist/commonjs/funcs/voicesGetVoice.d.ts.map +1 -0
  66. package/dist/commonjs/funcs/voicesGetVoice.js +120 -0
  67. package/dist/commonjs/funcs/voicesGetVoice.js.map +1 -0
  68. package/dist/commonjs/funcs/voicesListVoices.d.ts +18 -0
  69. package/dist/commonjs/funcs/voicesListVoices.d.ts.map +1 -0
  70. package/dist/commonjs/funcs/voicesListVoices.js +119 -0
  71. package/dist/commonjs/funcs/voicesListVoices.js.map +1 -0
  72. package/dist/commonjs/funcs/voicesSearchVoices.d.ts +18 -0
  73. package/dist/commonjs/funcs/voicesSearchVoices.d.ts.map +1 -0
  74. package/dist/commonjs/funcs/voicesSearchVoices.js +128 -0
  75. package/dist/commonjs/funcs/voicesSearchVoices.js.map +1 -0
  76. package/dist/commonjs/hooks/hooks.d.ts +25 -0
  77. package/dist/commonjs/hooks/hooks.d.ts.map +1 -0
  78. package/dist/commonjs/hooks/hooks.js +84 -0
  79. package/dist/commonjs/hooks/hooks.js.map +1 -0
  80. package/dist/commonjs/hooks/index.d.ts +3 -0
  81. package/dist/commonjs/hooks/index.d.ts.map +1 -0
  82. package/dist/commonjs/hooks/index.js +22 -0
  83. package/dist/commonjs/hooks/index.js.map +1 -0
  84. package/dist/commonjs/hooks/types.d.ts +76 -0
  85. package/dist/commonjs/hooks/types.d.ts.map +1 -0
  86. package/dist/commonjs/hooks/types.js +6 -0
  87. package/dist/commonjs/hooks/types.js.map +1 -0
  88. package/dist/commonjs/index.d.ts +6 -0
  89. package/dist/commonjs/index.d.ts.map +1 -0
  90. package/dist/commonjs/index.js +48 -0
  91. package/dist/commonjs/index.js.map +1 -0
  92. package/dist/commonjs/lib/base64.d.ts +10 -0
  93. package/dist/commonjs/lib/base64.d.ts.map +1 -0
  94. package/dist/commonjs/lib/base64.js +71 -0
  95. package/dist/commonjs/lib/base64.js.map +1 -0
  96. package/dist/commonjs/lib/config.d.ts +38 -0
  97. package/dist/commonjs/lib/config.d.ts.map +1 -0
  98. package/dist/commonjs/lib/config.js +38 -0
  99. package/dist/commonjs/lib/config.js.map +1 -0
  100. package/dist/commonjs/lib/custom_utils/audio_utils.d.ts +74 -0
  101. package/dist/commonjs/lib/custom_utils/audio_utils.d.ts.map +1 -0
  102. package/dist/commonjs/lib/custom_utils/audio_utils.js +327 -0
  103. package/dist/commonjs/lib/custom_utils/audio_utils.js.map +1 -0
  104. package/dist/commonjs/lib/custom_utils/constants.d.ts +16 -0
  105. package/dist/commonjs/lib/custom_utils/constants.d.ts.map +1 -0
  106. package/dist/commonjs/lib/custom_utils/constants.js +22 -0
  107. package/dist/commonjs/lib/custom_utils/constants.js.map +1 -0
  108. package/dist/commonjs/lib/custom_utils/index.d.ts +11 -0
  109. package/dist/commonjs/lib/custom_utils/index.d.ts.map +1 -0
  110. package/dist/commonjs/lib/custom_utils/index.js +44 -0
  111. package/dist/commonjs/lib/custom_utils/index.js.map +1 -0
  112. package/dist/commonjs/lib/custom_utils/phoneme_utils.d.ts +42 -0
  113. package/dist/commonjs/lib/custom_utils/phoneme_utils.d.ts.map +1 -0
  114. package/dist/commonjs/lib/custom_utils/phoneme_utils.js +106 -0
  115. package/dist/commonjs/lib/custom_utils/phoneme_utils.js.map +1 -0
  116. package/dist/commonjs/lib/custom_utils/text_utils.d.ts +30 -0
  117. package/dist/commonjs/lib/custom_utils/text_utils.d.ts.map +1 -0
  118. package/dist/commonjs/lib/custom_utils/text_utils.js +125 -0
  119. package/dist/commonjs/lib/custom_utils/text_utils.js.map +1 -0
  120. package/dist/commonjs/lib/dlv.d.ts +14 -0
  121. package/dist/commonjs/lib/dlv.d.ts.map +1 -0
  122. package/dist/commonjs/lib/dlv.js +49 -0
  123. package/dist/commonjs/lib/dlv.js.map +1 -0
  124. package/dist/commonjs/lib/encodings.d.ts +52 -0
  125. package/dist/commonjs/lib/encodings.d.ts.map +1 -0
  126. package/dist/commonjs/lib/encodings.js +368 -0
  127. package/dist/commonjs/lib/encodings.js.map +1 -0
  128. package/dist/commonjs/lib/files.d.ts +13 -0
  129. package/dist/commonjs/lib/files.d.ts.map +1 -0
  130. package/dist/commonjs/lib/files.js +77 -0
  131. package/dist/commonjs/lib/files.js.map +1 -0
  132. package/dist/commonjs/lib/http.d.ts +67 -0
  133. package/dist/commonjs/lib/http.d.ts.map +1 -0
  134. package/dist/commonjs/lib/http.js +217 -0
  135. package/dist/commonjs/lib/http.js.map +1 -0
  136. package/dist/commonjs/lib/is-plain-object.d.ts +2 -0
  137. package/dist/commonjs/lib/is-plain-object.d.ts.map +1 -0
  138. package/dist/commonjs/lib/is-plain-object.js +41 -0
  139. package/dist/commonjs/lib/is-plain-object.js.map +1 -0
  140. package/dist/commonjs/lib/logger.d.ts +6 -0
  141. package/dist/commonjs/lib/logger.d.ts.map +1 -0
  142. package/dist/commonjs/lib/logger.js +6 -0
  143. package/dist/commonjs/lib/logger.js.map +1 -0
  144. package/dist/commonjs/lib/matchers.d.ts +59 -0
  145. package/dist/commonjs/lib/matchers.d.ts.map +1 -0
  146. package/dist/commonjs/lib/matchers.js +222 -0
  147. package/dist/commonjs/lib/matchers.js.map +1 -0
  148. package/dist/commonjs/lib/primitives.d.ts +26 -0
  149. package/dist/commonjs/lib/primitives.d.ts.map +1 -0
  150. package/dist/commonjs/lib/primitives.js +111 -0
  151. package/dist/commonjs/lib/primitives.js.map +1 -0
  152. package/dist/commonjs/lib/retries.d.ts +38 -0
  153. package/dist/commonjs/lib/retries.d.ts.map +1 -0
  154. package/dist/commonjs/lib/retries.js +153 -0
  155. package/dist/commonjs/lib/retries.js.map +1 -0
  156. package/dist/commonjs/lib/schemas.d.ts +19 -0
  157. package/dist/commonjs/lib/schemas.d.ts.map +1 -0
  158. package/dist/commonjs/lib/schemas.js +62 -0
  159. package/dist/commonjs/lib/schemas.js.map +1 -0
  160. package/dist/commonjs/lib/sdks.d.ts +63 -0
  161. package/dist/commonjs/lib/sdks.d.ts.map +1 -0
  162. package/dist/commonjs/lib/sdks.js +269 -0
  163. package/dist/commonjs/lib/sdks.js.map +1 -0
  164. package/dist/commonjs/lib/security.d.ts +83 -0
  165. package/dist/commonjs/lib/security.d.ts.map +1 -0
  166. package/dist/commonjs/lib/security.js +143 -0
  167. package/dist/commonjs/lib/security.js.map +1 -0
  168. package/dist/commonjs/lib/url.d.ts +5 -0
  169. package/dist/commonjs/lib/url.d.ts.map +1 -0
  170. package/dist/commonjs/lib/url.js +25 -0
  171. package/dist/commonjs/lib/url.js.map +1 -0
  172. package/dist/commonjs/models/apiconverttexttospeechusingcharacterrequest.d.ts +132 -0
  173. package/dist/commonjs/models/apiconverttexttospeechusingcharacterrequest.d.ts.map +1 -0
  174. package/dist/commonjs/models/apiconverttexttospeechusingcharacterrequest.js +144 -0
  175. package/dist/commonjs/models/apiconverttexttospeechusingcharacterrequest.js.map +1 -0
  176. package/dist/commonjs/models/apisampledata.d.ts +47 -0
  177. package/dist/commonjs/models/apisampledata.d.ts.map +1 -0
  178. package/dist/commonjs/models/apisampledata.js +75 -0
  179. package/dist/commonjs/models/apisampledata.js.map +1 -0
  180. package/dist/commonjs/models/converttexttospeechparameters.d.ts +53 -0
  181. package/dist/commonjs/models/converttexttospeechparameters.d.ts.map +1 -0
  182. package/dist/commonjs/models/converttexttospeechparameters.js +96 -0
  183. package/dist/commonjs/models/converttexttospeechparameters.js.map +1 -0
  184. package/dist/commonjs/models/createclonedvoiceuploadresponse.d.ts +32 -0
  185. package/dist/commonjs/models/createclonedvoiceuploadresponse.d.ts.map +1 -0
  186. package/dist/commonjs/models/createclonedvoiceuploadresponse.js +78 -0
  187. package/dist/commonjs/models/createclonedvoiceuploadresponse.js.map +1 -0
  188. package/dist/commonjs/models/errors/badrequesterrorresponse.d.ts +47 -0
  189. package/dist/commonjs/models/errors/badrequesterrorresponse.d.ts.map +1 -0
  190. package/dist/commonjs/models/errors/badrequesterrorresponse.js +85 -0
  191. package/dist/commonjs/models/errors/badrequesterrorresponse.js.map +1 -0
  192. package/dist/commonjs/models/errors/forbiddenerrorresponse.d.ts +48 -0
  193. package/dist/commonjs/models/errors/forbiddenerrorresponse.d.ts.map +1 -0
  194. package/dist/commonjs/models/errors/forbiddenerrorresponse.js +88 -0
  195. package/dist/commonjs/models/errors/forbiddenerrorresponse.js.map +1 -0
  196. package/dist/commonjs/models/errors/httpclienterrors.d.ts +44 -0
  197. package/dist/commonjs/models/errors/httpclienterrors.d.ts.map +1 -0
  198. package/dist/commonjs/models/errors/httpclienterrors.js +78 -0
  199. package/dist/commonjs/models/errors/httpclienterrors.js.map +1 -0
  200. package/dist/commonjs/models/errors/index.d.ts +15 -0
  201. package/dist/commonjs/models/errors/index.d.ts.map +1 -0
  202. package/dist/commonjs/models/errors/index.js +34 -0
  203. package/dist/commonjs/models/errors/index.js.map +1 -0
  204. package/dist/commonjs/models/errors/internalservererrorresponse.d.ts +48 -0
  205. package/dist/commonjs/models/errors/internalservererrorresponse.d.ts.map +1 -0
  206. package/dist/commonjs/models/errors/internalservererrorresponse.js +88 -0
  207. package/dist/commonjs/models/errors/internalservererrorresponse.js.map +1 -0
  208. package/dist/commonjs/models/errors/notfounderrorresponse.d.ts +48 -0
  209. package/dist/commonjs/models/errors/notfounderrorresponse.d.ts.map +1 -0
  210. package/dist/commonjs/models/errors/notfounderrorresponse.js +88 -0
  211. package/dist/commonjs/models/errors/notfounderrorresponse.js.map +1 -0
  212. package/dist/commonjs/models/errors/payloadtoolargeerrorresponse.d.ts +48 -0
  213. package/dist/commonjs/models/errors/payloadtoolargeerrorresponse.d.ts.map +1 -0
  214. package/dist/commonjs/models/errors/payloadtoolargeerrorresponse.js +88 -0
  215. package/dist/commonjs/models/errors/payloadtoolargeerrorresponse.js.map +1 -0
  216. package/dist/commonjs/models/errors/paymentrequirederrorresponse.d.ts +48 -0
  217. package/dist/commonjs/models/errors/paymentrequirederrorresponse.d.ts.map +1 -0
  218. package/dist/commonjs/models/errors/paymentrequirederrorresponse.js +88 -0
  219. package/dist/commonjs/models/errors/paymentrequirederrorresponse.js.map +1 -0
  220. package/dist/commonjs/models/errors/requesttimeouterrorresponse.d.ts +48 -0
  221. package/dist/commonjs/models/errors/requesttimeouterrorresponse.d.ts.map +1 -0
  222. package/dist/commonjs/models/errors/requesttimeouterrorresponse.js +88 -0
  223. package/dist/commonjs/models/errors/requesttimeouterrorresponse.js.map +1 -0
  224. package/dist/commonjs/models/errors/responsevalidationerror.d.ts +26 -0
  225. package/dist/commonjs/models/errors/responsevalidationerror.d.ts.map +1 -0
  226. package/dist/commonjs/models/errors/responsevalidationerror.js +66 -0
  227. package/dist/commonjs/models/errors/responsevalidationerror.js.map +1 -0
  228. package/dist/commonjs/models/errors/sdkvalidationerror.d.ts +21 -0
  229. package/dist/commonjs/models/errors/sdkvalidationerror.d.ts.map +1 -0
  230. package/dist/commonjs/models/errors/sdkvalidationerror.js +129 -0
  231. package/dist/commonjs/models/errors/sdkvalidationerror.js.map +1 -0
  232. package/dist/commonjs/models/errors/supertonedefaulterror.d.ts +10 -0
  233. package/dist/commonjs/models/errors/supertonedefaulterror.d.ts.map +1 -0
  234. package/dist/commonjs/models/errors/supertonedefaulterror.js +34 -0
  235. package/dist/commonjs/models/errors/supertonedefaulterror.js.map +1 -0
  236. package/dist/commonjs/models/errors/supertoneerror.d.ts +19 -0
  237. package/dist/commonjs/models/errors/supertoneerror.d.ts.map +1 -0
  238. package/dist/commonjs/models/errors/supertoneerror.js +20 -0
  239. package/dist/commonjs/models/errors/supertoneerror.js.map +1 -0
  240. package/dist/commonjs/models/errors/toomanyrequestserrorresponse.d.ts +48 -0
  241. package/dist/commonjs/models/errors/toomanyrequestserrorresponse.d.ts.map +1 -0
  242. package/dist/commonjs/models/errors/toomanyrequestserrorresponse.js +88 -0
  243. package/dist/commonjs/models/errors/toomanyrequestserrorresponse.js.map +1 -0
  244. package/dist/commonjs/models/errors/unauthorizederrorresponse.d.ts +48 -0
  245. package/dist/commonjs/models/errors/unauthorizederrorresponse.d.ts.map +1 -0
  246. package/dist/commonjs/models/errors/unauthorizederrorresponse.js +88 -0
  247. package/dist/commonjs/models/errors/unauthorizederrorresponse.js.map +1 -0
  248. package/dist/commonjs/models/errors/unsupportedmediatypeerrorresponse.d.ts +47 -0
  249. package/dist/commonjs/models/errors/unsupportedmediatypeerrorresponse.d.ts.map +1 -0
  250. package/dist/commonjs/models/errors/unsupportedmediatypeerrorresponse.js +85 -0
  251. package/dist/commonjs/models/errors/unsupportedmediatypeerrorresponse.js.map +1 -0
  252. package/dist/commonjs/models/forbiddenerrorresponse.d.ts +45 -0
  253. package/dist/commonjs/models/forbiddenerrorresponse.d.ts.map +1 -0
  254. package/dist/commonjs/models/forbiddenerrorresponse.js +82 -0
  255. package/dist/commonjs/models/forbiddenerrorresponse.js.map +1 -0
  256. package/dist/commonjs/models/getapicharacterlistresponse.d.ts +43 -0
  257. package/dist/commonjs/models/getapicharacterlistresponse.d.ts.map +1 -0
  258. package/dist/commonjs/models/getapicharacterlistresponse.js +83 -0
  259. package/dist/commonjs/models/getapicharacterlistresponse.js.map +1 -0
  260. package/dist/commonjs/models/getapicharacterresponsedata.d.ts +88 -0
  261. package/dist/commonjs/models/getapicharacterresponsedata.d.ts.map +1 -0
  262. package/dist/commonjs/models/getapicharacterresponsedata.js +107 -0
  263. package/dist/commonjs/models/getapicharacterresponsedata.js.map +1 -0
  264. package/dist/commonjs/models/getcharacterbyidresponse.d.ts +88 -0
  265. package/dist/commonjs/models/getcharacterbyidresponse.d.ts.map +1 -0
  266. package/dist/commonjs/models/getcharacterbyidresponse.js +107 -0
  267. package/dist/commonjs/models/getcharacterbyidresponse.js.map +1 -0
  268. package/dist/commonjs/models/getcreditbalanceresponse.d.ts +32 -0
  269. package/dist/commonjs/models/getcreditbalanceresponse.d.ts.map +1 -0
  270. package/dist/commonjs/models/getcreditbalanceresponse.js +69 -0
  271. package/dist/commonjs/models/getcreditbalanceresponse.js.map +1 -0
  272. package/dist/commonjs/models/getcustomvoicelistresponse.d.ts +43 -0
  273. package/dist/commonjs/models/getcustomvoicelistresponse.d.ts.map +1 -0
  274. package/dist/commonjs/models/getcustomvoicelistresponse.js +83 -0
  275. package/dist/commonjs/models/getcustomvoicelistresponse.js.map +1 -0
  276. package/dist/commonjs/models/getcustomvoiceresponsedata.d.ts +42 -0
  277. package/dist/commonjs/models/getcustomvoiceresponsedata.d.ts.map +1 -0
  278. package/dist/commonjs/models/getcustomvoiceresponsedata.js +82 -0
  279. package/dist/commonjs/models/getcustomvoiceresponsedata.js.map +1 -0
  280. package/dist/commonjs/models/getsingleclonedvoiceresponse.d.ts +42 -0
  281. package/dist/commonjs/models/getsingleclonedvoiceresponse.d.ts.map +1 -0
  282. package/dist/commonjs/models/getsingleclonedvoiceresponse.js +82 -0
  283. package/dist/commonjs/models/getsingleclonedvoiceresponse.js.map +1 -0
  284. package/dist/commonjs/models/getusagelistv1response.d.ts +30 -0
  285. package/dist/commonjs/models/getusagelistv1response.d.ts.map +1 -0
  286. package/dist/commonjs/models/getusagelistv1response.js +70 -0
  287. package/dist/commonjs/models/getusagelistv1response.js.map +1 -0
  288. package/dist/commonjs/models/getusageresponsev1data.d.ts +67 -0
  289. package/dist/commonjs/models/getusageresponsev1data.d.ts.map +1 -0
  290. package/dist/commonjs/models/getusageresponsev1data.js +96 -0
  291. package/dist/commonjs/models/getusageresponsev1data.js.map +1 -0
  292. package/dist/commonjs/models/index.d.ts +29 -0
  293. package/dist/commonjs/models/index.d.ts.map +1 -0
  294. package/dist/commonjs/models/index.js +48 -0
  295. package/dist/commonjs/models/index.js.map +1 -0
  296. package/dist/commonjs/models/internalservererrorresponse.d.ts +45 -0
  297. package/dist/commonjs/models/internalservererrorresponse.d.ts.map +1 -0
  298. package/dist/commonjs/models/internalservererrorresponse.js +82 -0
  299. package/dist/commonjs/models/internalservererrorresponse.js.map +1 -0
  300. package/dist/commonjs/models/notfounderrorresponse.d.ts +45 -0
  301. package/dist/commonjs/models/notfounderrorresponse.d.ts.map +1 -0
  302. package/dist/commonjs/models/notfounderrorresponse.js +82 -0
  303. package/dist/commonjs/models/notfounderrorresponse.js.map +1 -0
  304. package/dist/commonjs/models/operations/createclonedvoice.d.ts +72 -0
  305. package/dist/commonjs/models/operations/createclonedvoice.d.ts.map +1 -0
  306. package/dist/commonjs/models/operations/createclonedvoice.js +114 -0
  307. package/dist/commonjs/models/operations/createclonedvoice.js.map +1 -0
  308. package/dist/commonjs/models/operations/createspeech.d.ts +161 -0
  309. package/dist/commonjs/models/operations/createspeech.d.ts.map +1 -0
  310. package/dist/commonjs/models/operations/createspeech.js +239 -0
  311. package/dist/commonjs/models/operations/createspeech.js.map +1 -0
  312. package/dist/commonjs/models/operations/deletecustomvoice.d.ts +29 -0
  313. package/dist/commonjs/models/operations/deletecustomvoice.d.ts.map +1 -0
  314. package/dist/commonjs/models/operations/deletecustomvoice.js +78 -0
  315. package/dist/commonjs/models/operations/deletecustomvoice.js.map +1 -0
  316. package/dist/commonjs/models/operations/editcustomvoice.d.ts +32 -0
  317. package/dist/commonjs/models/operations/editcustomvoice.d.ts.map +1 -0
  318. package/dist/commonjs/models/operations/editcustomvoice.js +83 -0
  319. package/dist/commonjs/models/operations/editcustomvoice.js.map +1 -0
  320. package/dist/commonjs/models/operations/getcustomvoice.d.ts +29 -0
  321. package/dist/commonjs/models/operations/getcustomvoice.d.ts.map +1 -0
  322. package/dist/commonjs/models/operations/getcustomvoice.js +78 -0
  323. package/dist/commonjs/models/operations/getcustomvoice.js.map +1 -0
  324. package/dist/commonjs/models/operations/getusage.d.ts +120 -0
  325. package/dist/commonjs/models/operations/getusage.d.ts.map +1 -0
  326. package/dist/commonjs/models/operations/getusage.js +142 -0
  327. package/dist/commonjs/models/operations/getusage.js.map +1 -0
  328. package/dist/commonjs/models/operations/getvoice.d.ts +29 -0
  329. package/dist/commonjs/models/operations/getvoice.d.ts.map +1 -0
  330. package/dist/commonjs/models/operations/getvoice.js +78 -0
  331. package/dist/commonjs/models/operations/getvoice.js.map +1 -0
  332. package/dist/commonjs/models/operations/getvoiceusage.d.ts +37 -0
  333. package/dist/commonjs/models/operations/getvoiceusage.d.ts.map +1 -0
  334. package/dist/commonjs/models/operations/getvoiceusage.js +82 -0
  335. package/dist/commonjs/models/operations/getvoiceusage.js.map +1 -0
  336. package/dist/commonjs/models/operations/index.d.ts +15 -0
  337. package/dist/commonjs/models/operations/index.d.ts.map +1 -0
  338. package/dist/commonjs/models/operations/index.js +34 -0
  339. package/dist/commonjs/models/operations/index.js.map +1 -0
  340. package/dist/commonjs/models/operations/listcustomvoices.d.ts +37 -0
  341. package/dist/commonjs/models/operations/listcustomvoices.d.ts.map +1 -0
  342. package/dist/commonjs/models/operations/listcustomvoices.js +82 -0
  343. package/dist/commonjs/models/operations/listcustomvoices.js.map +1 -0
  344. package/dist/commonjs/models/operations/listvoices.d.ts +37 -0
  345. package/dist/commonjs/models/operations/listvoices.d.ts.map +1 -0
  346. package/dist/commonjs/models/operations/listvoices.js +82 -0
  347. package/dist/commonjs/models/operations/listvoices.js.map +1 -0
  348. package/dist/commonjs/models/operations/predictduration.d.ts +60 -0
  349. package/dist/commonjs/models/operations/predictduration.d.ts.map +1 -0
  350. package/dist/commonjs/models/operations/predictduration.js +110 -0
  351. package/dist/commonjs/models/operations/predictduration.js.map +1 -0
  352. package/dist/commonjs/models/operations/searchcustomvoices.d.ts +47 -0
  353. package/dist/commonjs/models/operations/searchcustomvoices.d.ts.map +1 -0
  354. package/dist/commonjs/models/operations/searchcustomvoices.js +86 -0
  355. package/dist/commonjs/models/operations/searchcustomvoices.js.map +1 -0
  356. package/dist/commonjs/models/operations/searchvoices.d.ts +82 -0
  357. package/dist/commonjs/models/operations/searchvoices.d.ts.map +1 -0
  358. package/dist/commonjs/models/operations/searchvoices.js +104 -0
  359. package/dist/commonjs/models/operations/searchvoices.js.map +1 -0
  360. package/dist/commonjs/models/operations/streamspeech.d.ts +84 -0
  361. package/dist/commonjs/models/operations/streamspeech.d.ts.map +1 -0
  362. package/dist/commonjs/models/operations/streamspeech.js +161 -0
  363. package/dist/commonjs/models/operations/streamspeech.js.map +1 -0
  364. package/dist/commonjs/models/payloadtoolargeerrorresponse.d.ts +45 -0
  365. package/dist/commonjs/models/payloadtoolargeerrorresponse.d.ts.map +1 -0
  366. package/dist/commonjs/models/payloadtoolargeerrorresponse.js +82 -0
  367. package/dist/commonjs/models/payloadtoolargeerrorresponse.js.map +1 -0
  368. package/dist/commonjs/models/paymentrequirederrorresponse.d.ts +45 -0
  369. package/dist/commonjs/models/paymentrequirederrorresponse.d.ts.map +1 -0
  370. package/dist/commonjs/models/paymentrequirederrorresponse.js +82 -0
  371. package/dist/commonjs/models/paymentrequirederrorresponse.js.map +1 -0
  372. package/dist/commonjs/models/predictttsdurationusingcharacterrequest.d.ts +127 -0
  373. package/dist/commonjs/models/predictttsdurationusingcharacterrequest.d.ts.map +1 -0
  374. package/dist/commonjs/models/predictttsdurationusingcharacterrequest.js +139 -0
  375. package/dist/commonjs/models/predictttsdurationusingcharacterrequest.js.map +1 -0
  376. package/dist/commonjs/models/requesttimeouterrorresponse.d.ts +45 -0
  377. package/dist/commonjs/models/requesttimeouterrorresponse.d.ts.map +1 -0
  378. package/dist/commonjs/models/requesttimeouterrorresponse.js +82 -0
  379. package/dist/commonjs/models/requesttimeouterrorresponse.js.map +1 -0
  380. package/dist/commonjs/models/security.d.ts +29 -0
  381. package/dist/commonjs/models/security.d.ts.map +1 -0
  382. package/dist/commonjs/models/security.js +78 -0
  383. package/dist/commonjs/models/security.js.map +1 -0
  384. package/dist/commonjs/models/toomanyrequestserrorresponse.d.ts +45 -0
  385. package/dist/commonjs/models/toomanyrequestserrorresponse.d.ts.map +1 -0
  386. package/dist/commonjs/models/toomanyrequestserrorresponse.js +82 -0
  387. package/dist/commonjs/models/toomanyrequestserrorresponse.js.map +1 -0
  388. package/dist/commonjs/models/unauthorizederrorresponse.d.ts +45 -0
  389. package/dist/commonjs/models/unauthorizederrorresponse.d.ts.map +1 -0
  390. package/dist/commonjs/models/unauthorizederrorresponse.js +82 -0
  391. package/dist/commonjs/models/unauthorizederrorresponse.js.map +1 -0
  392. package/dist/commonjs/models/updateclonedvoicerequest.d.ts +37 -0
  393. package/dist/commonjs/models/updateclonedvoicerequest.d.ts.map +1 -0
  394. package/dist/commonjs/models/updateclonedvoicerequest.js +71 -0
  395. package/dist/commonjs/models/updateclonedvoicerequest.js.map +1 -0
  396. package/dist/commonjs/models/updateclonedvoiceresponse.d.ts +42 -0
  397. package/dist/commonjs/models/updateclonedvoiceresponse.d.ts.map +1 -0
  398. package/dist/commonjs/models/updateclonedvoiceresponse.js +82 -0
  399. package/dist/commonjs/models/updateclonedvoiceresponse.js.map +1 -0
  400. package/dist/commonjs/models/usageanalyticsresponse.d.ts +43 -0
  401. package/dist/commonjs/models/usageanalyticsresponse.d.ts.map +1 -0
  402. package/dist/commonjs/models/usageanalyticsresponse.js +83 -0
  403. package/dist/commonjs/models/usageanalyticsresponse.js.map +1 -0
  404. package/dist/commonjs/models/usagebucket.d.ts +43 -0
  405. package/dist/commonjs/models/usagebucket.d.ts.map +1 -0
  406. package/dist/commonjs/models/usagebucket.js +85 -0
  407. package/dist/commonjs/models/usagebucket.js.map +1 -0
  408. package/dist/commonjs/models/usageresult.d.ts +52 -0
  409. package/dist/commonjs/models/usageresult.d.ts.map +1 -0
  410. package/dist/commonjs/models/usageresult.js +92 -0
  411. package/dist/commonjs/models/usageresult.js.map +1 -0
  412. package/dist/commonjs/package.json +3 -0
  413. package/dist/commonjs/sdk/customvoices.d.ts +48 -0
  414. package/dist/commonjs/sdk/customvoices.d.ts.map +1 -0
  415. package/dist/commonjs/sdk/customvoices.js +72 -0
  416. package/dist/commonjs/sdk/customvoices.js.map +1 -0
  417. package/dist/commonjs/sdk/index.d.ts +2 -0
  418. package/dist/commonjs/sdk/index.d.ts.map +1 -0
  419. package/dist/commonjs/sdk/index.js +21 -0
  420. package/dist/commonjs/sdk/index.js.map +1 -0
  421. package/dist/commonjs/sdk/sdk.d.ts +16 -0
  422. package/dist/commonjs/sdk/sdk.d.ts.map +1 -0
  423. package/dist/commonjs/sdk/sdk.js +27 -0
  424. package/dist/commonjs/sdk/sdk.js.map +1 -0
  425. package/dist/commonjs/sdk/texttospeech.d.ts +62 -0
  426. package/dist/commonjs/sdk/texttospeech.d.ts.map +1 -0
  427. package/dist/commonjs/sdk/texttospeech.js +365 -0
  428. package/dist/commonjs/sdk/texttospeech.js.map +1 -0
  429. package/dist/commonjs/sdk/usage.d.ts +27 -0
  430. package/dist/commonjs/sdk/usage.d.ts.map +1 -0
  431. package/dist/commonjs/sdk/usage.js +42 -0
  432. package/dist/commonjs/sdk/usage.js.map +1 -0
  433. package/dist/commonjs/sdk/voices.d.ts +27 -0
  434. package/dist/commonjs/sdk/voices.d.ts.map +1 -0
  435. package/dist/commonjs/sdk/voices.js +42 -0
  436. package/dist/commonjs/sdk/voices.js.map +1 -0
  437. package/dist/commonjs/types/async.d.ts +23 -0
  438. package/dist/commonjs/types/async.d.ts.map +1 -0
  439. package/dist/commonjs/types/async.js +44 -0
  440. package/dist/commonjs/types/async.js.map +1 -0
  441. package/dist/commonjs/types/blobs.d.ts +4 -0
  442. package/dist/commonjs/types/blobs.d.ts.map +1 -0
  443. package/dist/commonjs/types/blobs.js +62 -0
  444. package/dist/commonjs/types/blobs.js.map +1 -0
  445. package/dist/commonjs/types/constdatetime.d.ts +3 -0
  446. package/dist/commonjs/types/constdatetime.d.ts.map +1 -0
  447. package/dist/commonjs/types/constdatetime.js +46 -0
  448. package/dist/commonjs/types/constdatetime.js.map +1 -0
  449. package/dist/commonjs/types/enums.d.ts +12 -0
  450. package/dist/commonjs/types/enums.d.ts.map +1 -0
  451. package/dist/commonjs/types/enums.js +10 -0
  452. package/dist/commonjs/types/enums.js.map +1 -0
  453. package/dist/commonjs/types/fp.d.ts +31 -0
  454. package/dist/commonjs/types/fp.d.ts.map +1 -0
  455. package/dist/commonjs/types/fp.js +37 -0
  456. package/dist/commonjs/types/fp.js.map +1 -0
  457. package/dist/commonjs/types/index.d.ts +8 -0
  458. package/dist/commonjs/types/index.d.ts.map +1 -0
  459. package/dist/commonjs/types/index.js +16 -0
  460. package/dist/commonjs/types/index.js.map +1 -0
  461. package/dist/commonjs/types/operations.d.ts +27 -0
  462. package/dist/commonjs/types/operations.d.ts.map +1 -0
  463. package/dist/commonjs/types/operations.js +83 -0
  464. package/dist/commonjs/types/operations.js.map +1 -0
  465. package/dist/commonjs/types/rfcdate.d.ts +21 -0
  466. package/dist/commonjs/types/rfcdate.d.ts.map +1 -0
  467. package/dist/commonjs/types/rfcdate.js +46 -0
  468. package/dist/commonjs/types/rfcdate.js.map +1 -0
  469. package/dist/commonjs/types/streams.d.ts +2 -0
  470. package/dist/commonjs/types/streams.d.ts.map +1 -0
  471. package/dist/commonjs/types/streams.js +18 -0
  472. package/dist/commonjs/types/streams.js.map +1 -0
  473. package/dist/esm/core.d.ts +10 -0
  474. package/dist/esm/core.d.ts.map +1 -0
  475. package/dist/esm/core.js +13 -0
  476. package/dist/esm/core.js.map +1 -0
  477. package/dist/esm/funcs/customVoicesCreateClonedVoice.d.ts +19 -0
  478. package/dist/esm/funcs/customVoicesCreateClonedVoice.d.ts.map +1 -0
  479. package/dist/esm/funcs/customVoicesCreateClonedVoice.js +115 -0
  480. package/dist/esm/funcs/customVoicesCreateClonedVoice.js.map +1 -0
  481. package/dist/esm/funcs/customVoicesDeleteCustomVoice.d.ts +18 -0
  482. package/dist/esm/funcs/customVoicesDeleteCustomVoice.d.ts.map +1 -0
  483. package/dist/esm/funcs/customVoicesDeleteCustomVoice.js +88 -0
  484. package/dist/esm/funcs/customVoicesDeleteCustomVoice.js.map +1 -0
  485. package/dist/esm/funcs/customVoicesEditCustomVoice.d.ts +19 -0
  486. package/dist/esm/funcs/customVoicesEditCustomVoice.d.ts.map +1 -0
  487. package/dist/esm/funcs/customVoicesEditCustomVoice.js +91 -0
  488. package/dist/esm/funcs/customVoicesEditCustomVoice.js.map +1 -0
  489. package/dist/esm/funcs/customVoicesGetCustomVoice.d.ts +19 -0
  490. package/dist/esm/funcs/customVoicesGetCustomVoice.d.ts.map +1 -0
  491. package/dist/esm/funcs/customVoicesGetCustomVoice.js +88 -0
  492. package/dist/esm/funcs/customVoicesGetCustomVoice.js.map +1 -0
  493. package/dist/esm/funcs/customVoicesListCustomVoices.d.ts +19 -0
  494. package/dist/esm/funcs/customVoicesListCustomVoices.d.ts.map +1 -0
  495. package/dist/esm/funcs/customVoicesListCustomVoices.js +87 -0
  496. package/dist/esm/funcs/customVoicesListCustomVoices.js.map +1 -0
  497. package/dist/esm/funcs/customVoicesSearchCustomVoices.d.ts +19 -0
  498. package/dist/esm/funcs/customVoicesSearchCustomVoices.d.ts.map +1 -0
  499. package/dist/esm/funcs/customVoicesSearchCustomVoices.js +89 -0
  500. package/dist/esm/funcs/customVoicesSearchCustomVoices.js.map +1 -0
  501. package/dist/esm/funcs/textToSpeechCreateSpeech.d.ts +25 -0
  502. package/dist/esm/funcs/textToSpeechCreateSpeech.d.ts.map +1 -0
  503. package/dist/esm/funcs/textToSpeechCreateSpeech.js +117 -0
  504. package/dist/esm/funcs/textToSpeechCreateSpeech.js.map +1 -0
  505. package/dist/esm/funcs/textToSpeechPredictDuration.d.ts +18 -0
  506. package/dist/esm/funcs/textToSpeechPredictDuration.d.ts.map +1 -0
  507. package/dist/esm/funcs/textToSpeechPredictDuration.js +99 -0
  508. package/dist/esm/funcs/textToSpeechPredictDuration.js.map +1 -0
  509. package/dist/esm/funcs/textToSpeechStreamSpeech.d.ts +25 -0
  510. package/dist/esm/funcs/textToSpeechStreamSpeech.d.ts.map +1 -0
  511. package/dist/esm/funcs/textToSpeechStreamSpeech.js +118 -0
  512. package/dist/esm/funcs/textToSpeechStreamSpeech.js.map +1 -0
  513. package/dist/esm/funcs/usageGetCreditBalance.d.ts +17 -0
  514. package/dist/esm/funcs/usageGetCreditBalance.d.ts.map +1 -0
  515. package/dist/esm/funcs/usageGetCreditBalance.js +68 -0
  516. package/dist/esm/funcs/usageGetCreditBalance.js.map +1 -0
  517. package/dist/esm/funcs/usageGetUsage.d.ts +19 -0
  518. package/dist/esm/funcs/usageGetUsage.d.ts.map +1 -0
  519. package/dist/esm/funcs/usageGetUsage.js +91 -0
  520. package/dist/esm/funcs/usageGetUsage.js.map +1 -0
  521. package/dist/esm/funcs/usageGetVoiceUsage.d.ts +18 -0
  522. package/dist/esm/funcs/usageGetVoiceUsage.d.ts.map +1 -0
  523. package/dist/esm/funcs/usageGetVoiceUsage.js +83 -0
  524. package/dist/esm/funcs/usageGetVoiceUsage.js.map +1 -0
  525. package/dist/esm/funcs/voicesGetVoice.d.ts +18 -0
  526. package/dist/esm/funcs/voicesGetVoice.d.ts.map +1 -0
  527. package/dist/esm/funcs/voicesGetVoice.js +84 -0
  528. package/dist/esm/funcs/voicesGetVoice.js.map +1 -0
  529. package/dist/esm/funcs/voicesListVoices.d.ts +18 -0
  530. package/dist/esm/funcs/voicesListVoices.d.ts.map +1 -0
  531. package/dist/esm/funcs/voicesListVoices.js +83 -0
  532. package/dist/esm/funcs/voicesListVoices.js.map +1 -0
  533. package/dist/esm/funcs/voicesSearchVoices.d.ts +18 -0
  534. package/dist/esm/funcs/voicesSearchVoices.d.ts.map +1 -0
  535. package/dist/esm/funcs/voicesSearchVoices.js +92 -0
  536. package/dist/esm/funcs/voicesSearchVoices.js.map +1 -0
  537. package/dist/esm/hooks/hooks.d.ts +25 -0
  538. package/dist/esm/hooks/hooks.d.ts.map +1 -0
  539. package/dist/esm/hooks/hooks.js +80 -0
  540. package/dist/esm/hooks/hooks.js.map +1 -0
  541. package/dist/esm/hooks/index.d.ts +3 -0
  542. package/dist/esm/hooks/index.d.ts.map +1 -0
  543. package/dist/esm/hooks/index.js +6 -0
  544. package/dist/esm/hooks/index.js.map +1 -0
  545. package/dist/esm/hooks/types.d.ts +76 -0
  546. package/dist/esm/hooks/types.d.ts.map +1 -0
  547. package/dist/esm/hooks/types.js +5 -0
  548. package/dist/esm/hooks/types.js.map +1 -0
  549. package/dist/esm/index.d.ts +6 -0
  550. package/dist/esm/index.d.ts.map +1 -0
  551. package/dist/esm/index.js +8 -0
  552. package/dist/esm/index.js.map +1 -0
  553. package/dist/esm/lib/base64.d.ts +10 -0
  554. package/dist/esm/lib/base64.d.ts.map +1 -0
  555. package/dist/esm/lib/base64.js +29 -0
  556. package/dist/esm/lib/base64.js.map +1 -0
  557. package/dist/esm/lib/config.d.ts +38 -0
  558. package/dist/esm/lib/config.d.ts.map +1 -0
  559. package/dist/esm/lib/config.js +34 -0
  560. package/dist/esm/lib/config.js.map +1 -0
  561. package/dist/esm/lib/custom_utils/audio_utils.d.ts +74 -0
  562. package/dist/esm/lib/custom_utils/audio_utils.d.ts.map +1 -0
  563. package/dist/esm/lib/custom_utils/audio_utils.js +318 -0
  564. package/dist/esm/lib/custom_utils/audio_utils.js.map +1 -0
  565. package/dist/esm/lib/custom_utils/constants.d.ts +16 -0
  566. package/dist/esm/lib/custom_utils/constants.d.ts.map +1 -0
  567. package/dist/esm/lib/custom_utils/constants.js +19 -0
  568. package/dist/esm/lib/custom_utils/constants.js.map +1 -0
  569. package/dist/esm/lib/custom_utils/index.d.ts +11 -0
  570. package/dist/esm/lib/custom_utils/index.d.ts.map +1 -0
  571. package/dist/esm/lib/custom_utils/index.js +15 -0
  572. package/dist/esm/lib/custom_utils/index.js.map +1 -0
  573. package/dist/esm/lib/custom_utils/phoneme_utils.d.ts +42 -0
  574. package/dist/esm/lib/custom_utils/phoneme_utils.d.ts.map +1 -0
  575. package/dist/esm/lib/custom_utils/phoneme_utils.js +101 -0
  576. package/dist/esm/lib/custom_utils/phoneme_utils.js.map +1 -0
  577. package/dist/esm/lib/custom_utils/text_utils.d.ts +30 -0
  578. package/dist/esm/lib/custom_utils/text_utils.d.ts.map +1 -0
  579. package/dist/esm/lib/custom_utils/text_utils.js +121 -0
  580. package/dist/esm/lib/custom_utils/text_utils.js.map +1 -0
  581. package/dist/esm/lib/dlv.d.ts +14 -0
  582. package/dist/esm/lib/dlv.d.ts.map +1 -0
  583. package/dist/esm/lib/dlv.js +46 -0
  584. package/dist/esm/lib/dlv.js.map +1 -0
  585. package/dist/esm/lib/encodings.d.ts +52 -0
  586. package/dist/esm/lib/encodings.d.ts.map +1 -0
  587. package/dist/esm/lib/encodings.js +354 -0
  588. package/dist/esm/lib/encodings.js.map +1 -0
  589. package/dist/esm/lib/files.d.ts +13 -0
  590. package/dist/esm/lib/files.d.ts.map +1 -0
  591. package/dist/esm/lib/files.js +73 -0
  592. package/dist/esm/lib/files.js.map +1 -0
  593. package/dist/esm/lib/http.d.ts +67 -0
  594. package/dist/esm/lib/http.d.ts.map +1 -0
  595. package/dist/esm/lib/http.js +207 -0
  596. package/dist/esm/lib/http.js.map +1 -0
  597. package/dist/esm/lib/is-plain-object.d.ts +2 -0
  598. package/dist/esm/lib/is-plain-object.d.ts.map +1 -0
  599. package/dist/esm/lib/is-plain-object.js +38 -0
  600. package/dist/esm/lib/is-plain-object.js.map +1 -0
  601. package/dist/esm/lib/logger.d.ts +6 -0
  602. package/dist/esm/lib/logger.d.ts.map +1 -0
  603. package/dist/esm/lib/logger.js +5 -0
  604. package/dist/esm/lib/logger.js.map +1 -0
  605. package/dist/esm/lib/matchers.d.ts +59 -0
  606. package/dist/esm/lib/matchers.d.ts.map +1 -0
  607. package/dist/esm/lib/matchers.js +203 -0
  608. package/dist/esm/lib/matchers.js.map +1 -0
  609. package/dist/esm/lib/primitives.d.ts +26 -0
  610. package/dist/esm/lib/primitives.d.ts.map +1 -0
  611. package/dist/esm/lib/primitives.js +103 -0
  612. package/dist/esm/lib/primitives.js.map +1 -0
  613. package/dist/esm/lib/retries.d.ts +38 -0
  614. package/dist/esm/lib/retries.d.ts.map +1 -0
  615. package/dist/esm/lib/retries.js +147 -0
  616. package/dist/esm/lib/retries.js.map +1 -0
  617. package/dist/esm/lib/schemas.d.ts +19 -0
  618. package/dist/esm/lib/schemas.d.ts.map +1 -0
  619. package/dist/esm/lib/schemas.js +57 -0
  620. package/dist/esm/lib/schemas.js.map +1 -0
  621. package/dist/esm/lib/sdks.d.ts +63 -0
  622. package/dist/esm/lib/sdks.d.ts.map +1 -0
  623. package/dist/esm/lib/sdks.js +265 -0
  624. package/dist/esm/lib/sdks.js.map +1 -0
  625. package/dist/esm/lib/security.d.ts +83 -0
  626. package/dist/esm/lib/security.d.ts.map +1 -0
  627. package/dist/esm/lib/security.js +136 -0
  628. package/dist/esm/lib/security.js.map +1 -0
  629. package/dist/esm/lib/url.d.ts +5 -0
  630. package/dist/esm/lib/url.d.ts.map +1 -0
  631. package/dist/esm/lib/url.js +22 -0
  632. package/dist/esm/lib/url.js.map +1 -0
  633. package/dist/esm/models/apiconverttexttospeechusingcharacterrequest.d.ts +132 -0
  634. package/dist/esm/models/apiconverttexttospeechusingcharacterrequest.d.ts.map +1 -0
  635. package/dist/esm/models/apiconverttexttospeechusingcharacterrequest.js +106 -0
  636. package/dist/esm/models/apiconverttexttospeechusingcharacterrequest.js.map +1 -0
  637. package/dist/esm/models/apisampledata.d.ts +47 -0
  638. package/dist/esm/models/apisampledata.d.ts.map +1 -0
  639. package/dist/esm/models/apisampledata.js +37 -0
  640. package/dist/esm/models/apisampledata.js.map +1 -0
  641. package/dist/esm/models/converttexttospeechparameters.d.ts +53 -0
  642. package/dist/esm/models/converttexttospeechparameters.d.ts.map +1 -0
  643. package/dist/esm/models/converttexttospeechparameters.js +58 -0
  644. package/dist/esm/models/converttexttospeechparameters.js.map +1 -0
  645. package/dist/esm/models/createclonedvoiceuploadresponse.d.ts +32 -0
  646. package/dist/esm/models/createclonedvoiceuploadresponse.d.ts.map +1 -0
  647. package/dist/esm/models/createclonedvoiceuploadresponse.js +40 -0
  648. package/dist/esm/models/createclonedvoiceuploadresponse.js.map +1 -0
  649. package/dist/esm/models/errors/badrequesterrorresponse.d.ts +47 -0
  650. package/dist/esm/models/errors/badrequesterrorresponse.d.ts.map +1 -0
  651. package/dist/esm/models/errors/badrequesterrorresponse.js +48 -0
  652. package/dist/esm/models/errors/badrequesterrorresponse.js.map +1 -0
  653. package/dist/esm/models/errors/forbiddenerrorresponse.d.ts +48 -0
  654. package/dist/esm/models/errors/forbiddenerrorresponse.d.ts.map +1 -0
  655. package/dist/esm/models/errors/forbiddenerrorresponse.js +51 -0
  656. package/dist/esm/models/errors/forbiddenerrorresponse.js.map +1 -0
  657. package/dist/esm/models/errors/httpclienterrors.d.ts +44 -0
  658. package/dist/esm/models/errors/httpclienterrors.d.ts.map +1 -0
  659. package/dist/esm/models/errors/httpclienterrors.js +69 -0
  660. package/dist/esm/models/errors/httpclienterrors.js.map +1 -0
  661. package/dist/esm/models/errors/index.d.ts +15 -0
  662. package/dist/esm/models/errors/index.d.ts.map +1 -0
  663. package/dist/esm/models/errors/index.js +18 -0
  664. package/dist/esm/models/errors/index.js.map +1 -0
  665. package/dist/esm/models/errors/internalservererrorresponse.d.ts +48 -0
  666. package/dist/esm/models/errors/internalservererrorresponse.d.ts.map +1 -0
  667. package/dist/esm/models/errors/internalservererrorresponse.js +51 -0
  668. package/dist/esm/models/errors/internalservererrorresponse.js.map +1 -0
  669. package/dist/esm/models/errors/notfounderrorresponse.d.ts +48 -0
  670. package/dist/esm/models/errors/notfounderrorresponse.d.ts.map +1 -0
  671. package/dist/esm/models/errors/notfounderrorresponse.js +51 -0
  672. package/dist/esm/models/errors/notfounderrorresponse.js.map +1 -0
  673. package/dist/esm/models/errors/payloadtoolargeerrorresponse.d.ts +48 -0
  674. package/dist/esm/models/errors/payloadtoolargeerrorresponse.d.ts.map +1 -0
  675. package/dist/esm/models/errors/payloadtoolargeerrorresponse.js +51 -0
  676. package/dist/esm/models/errors/payloadtoolargeerrorresponse.js.map +1 -0
  677. package/dist/esm/models/errors/paymentrequirederrorresponse.d.ts +48 -0
  678. package/dist/esm/models/errors/paymentrequirederrorresponse.d.ts.map +1 -0
  679. package/dist/esm/models/errors/paymentrequirederrorresponse.js +51 -0
  680. package/dist/esm/models/errors/paymentrequirederrorresponse.js.map +1 -0
  681. package/dist/esm/models/errors/requesttimeouterrorresponse.d.ts +48 -0
  682. package/dist/esm/models/errors/requesttimeouterrorresponse.d.ts.map +1 -0
  683. package/dist/esm/models/errors/requesttimeouterrorresponse.js +51 -0
  684. package/dist/esm/models/errors/requesttimeouterrorresponse.js.map +1 -0
  685. package/dist/esm/models/errors/responsevalidationerror.d.ts +26 -0
  686. package/dist/esm/models/errors/responsevalidationerror.d.ts.map +1 -0
  687. package/dist/esm/models/errors/responsevalidationerror.js +29 -0
  688. package/dist/esm/models/errors/responsevalidationerror.js.map +1 -0
  689. package/dist/esm/models/errors/sdkvalidationerror.d.ts +21 -0
  690. package/dist/esm/models/errors/sdkvalidationerror.d.ts.map +1 -0
  691. package/dist/esm/models/errors/sdkvalidationerror.js +91 -0
  692. package/dist/esm/models/errors/sdkvalidationerror.js.map +1 -0
  693. package/dist/esm/models/errors/supertonedefaulterror.d.ts +10 -0
  694. package/dist/esm/models/errors/supertonedefaulterror.d.ts.map +1 -0
  695. package/dist/esm/models/errors/supertonedefaulterror.js +30 -0
  696. package/dist/esm/models/errors/supertonedefaulterror.js.map +1 -0
  697. package/dist/esm/models/errors/supertoneerror.d.ts +19 -0
  698. package/dist/esm/models/errors/supertoneerror.d.ts.map +1 -0
  699. package/dist/esm/models/errors/supertoneerror.js +16 -0
  700. package/dist/esm/models/errors/supertoneerror.js.map +1 -0
  701. package/dist/esm/models/errors/toomanyrequestserrorresponse.d.ts +48 -0
  702. package/dist/esm/models/errors/toomanyrequestserrorresponse.d.ts.map +1 -0
  703. package/dist/esm/models/errors/toomanyrequestserrorresponse.js +51 -0
  704. package/dist/esm/models/errors/toomanyrequestserrorresponse.js.map +1 -0
  705. package/dist/esm/models/errors/unauthorizederrorresponse.d.ts +48 -0
  706. package/dist/esm/models/errors/unauthorizederrorresponse.d.ts.map +1 -0
  707. package/dist/esm/models/errors/unauthorizederrorresponse.js +51 -0
  708. package/dist/esm/models/errors/unauthorizederrorresponse.js.map +1 -0
  709. package/dist/esm/models/errors/unsupportedmediatypeerrorresponse.d.ts +47 -0
  710. package/dist/esm/models/errors/unsupportedmediatypeerrorresponse.d.ts.map +1 -0
  711. package/dist/esm/models/errors/unsupportedmediatypeerrorresponse.js +48 -0
  712. package/dist/esm/models/errors/unsupportedmediatypeerrorresponse.js.map +1 -0
  713. package/dist/esm/models/forbiddenerrorresponse.d.ts +45 -0
  714. package/dist/esm/models/forbiddenerrorresponse.d.ts.map +1 -0
  715. package/dist/esm/models/forbiddenerrorresponse.js +44 -0
  716. package/dist/esm/models/forbiddenerrorresponse.js.map +1 -0
  717. package/dist/esm/models/getapicharacterlistresponse.d.ts +43 -0
  718. package/dist/esm/models/getapicharacterlistresponse.d.ts.map +1 -0
  719. package/dist/esm/models/getapicharacterlistresponse.js +45 -0
  720. package/dist/esm/models/getapicharacterlistresponse.js.map +1 -0
  721. package/dist/esm/models/getapicharacterresponsedata.d.ts +88 -0
  722. package/dist/esm/models/getapicharacterresponsedata.d.ts.map +1 -0
  723. package/dist/esm/models/getapicharacterresponsedata.js +69 -0
  724. package/dist/esm/models/getapicharacterresponsedata.js.map +1 -0
  725. package/dist/esm/models/getcharacterbyidresponse.d.ts +88 -0
  726. package/dist/esm/models/getcharacterbyidresponse.d.ts.map +1 -0
  727. package/dist/esm/models/getcharacterbyidresponse.js +69 -0
  728. package/dist/esm/models/getcharacterbyidresponse.js.map +1 -0
  729. package/dist/esm/models/getcreditbalanceresponse.d.ts +32 -0
  730. package/dist/esm/models/getcreditbalanceresponse.d.ts.map +1 -0
  731. package/dist/esm/models/getcreditbalanceresponse.js +31 -0
  732. package/dist/esm/models/getcreditbalanceresponse.js.map +1 -0
  733. package/dist/esm/models/getcustomvoicelistresponse.d.ts +43 -0
  734. package/dist/esm/models/getcustomvoicelistresponse.d.ts.map +1 -0
  735. package/dist/esm/models/getcustomvoicelistresponse.js +45 -0
  736. package/dist/esm/models/getcustomvoicelistresponse.js.map +1 -0
  737. package/dist/esm/models/getcustomvoiceresponsedata.d.ts +42 -0
  738. package/dist/esm/models/getcustomvoiceresponsedata.d.ts.map +1 -0
  739. package/dist/esm/models/getcustomvoiceresponsedata.js +44 -0
  740. package/dist/esm/models/getcustomvoiceresponsedata.js.map +1 -0
  741. package/dist/esm/models/getsingleclonedvoiceresponse.d.ts +42 -0
  742. package/dist/esm/models/getsingleclonedvoiceresponse.d.ts.map +1 -0
  743. package/dist/esm/models/getsingleclonedvoiceresponse.js +44 -0
  744. package/dist/esm/models/getsingleclonedvoiceresponse.js.map +1 -0
  745. package/dist/esm/models/getusagelistv1response.d.ts +30 -0
  746. package/dist/esm/models/getusagelistv1response.d.ts.map +1 -0
  747. package/dist/esm/models/getusagelistv1response.js +32 -0
  748. package/dist/esm/models/getusagelistv1response.js.map +1 -0
  749. package/dist/esm/models/getusageresponsev1data.d.ts +67 -0
  750. package/dist/esm/models/getusageresponsev1data.d.ts.map +1 -0
  751. package/dist/esm/models/getusageresponsev1data.js +58 -0
  752. package/dist/esm/models/getusageresponsev1data.js.map +1 -0
  753. package/dist/esm/models/index.d.ts +29 -0
  754. package/dist/esm/models/index.d.ts.map +1 -0
  755. package/dist/esm/models/index.js +32 -0
  756. package/dist/esm/models/index.js.map +1 -0
  757. package/dist/esm/models/internalservererrorresponse.d.ts +45 -0
  758. package/dist/esm/models/internalservererrorresponse.d.ts.map +1 -0
  759. package/dist/esm/models/internalservererrorresponse.js +44 -0
  760. package/dist/esm/models/internalservererrorresponse.js.map +1 -0
  761. package/dist/esm/models/notfounderrorresponse.d.ts +45 -0
  762. package/dist/esm/models/notfounderrorresponse.d.ts.map +1 -0
  763. package/dist/esm/models/notfounderrorresponse.js +44 -0
  764. package/dist/esm/models/notfounderrorresponse.js.map +1 -0
  765. package/dist/esm/models/operations/createclonedvoice.d.ts +72 -0
  766. package/dist/esm/models/operations/createclonedvoice.d.ts.map +1 -0
  767. package/dist/esm/models/operations/createclonedvoice.js +74 -0
  768. package/dist/esm/models/operations/createclonedvoice.js.map +1 -0
  769. package/dist/esm/models/operations/createspeech.d.ts +161 -0
  770. package/dist/esm/models/operations/createspeech.d.ts.map +1 -0
  771. package/dist/esm/models/operations/createspeech.js +193 -0
  772. package/dist/esm/models/operations/createspeech.js.map +1 -0
  773. package/dist/esm/models/operations/deletecustomvoice.d.ts +29 -0
  774. package/dist/esm/models/operations/deletecustomvoice.d.ts.map +1 -0
  775. package/dist/esm/models/operations/deletecustomvoice.js +40 -0
  776. package/dist/esm/models/operations/deletecustomvoice.js.map +1 -0
  777. package/dist/esm/models/operations/editcustomvoice.d.ts +32 -0
  778. package/dist/esm/models/operations/editcustomvoice.d.ts.map +1 -0
  779. package/dist/esm/models/operations/editcustomvoice.js +45 -0
  780. package/dist/esm/models/operations/editcustomvoice.js.map +1 -0
  781. package/dist/esm/models/operations/getcustomvoice.d.ts +29 -0
  782. package/dist/esm/models/operations/getcustomvoice.d.ts.map +1 -0
  783. package/dist/esm/models/operations/getcustomvoice.js +40 -0
  784. package/dist/esm/models/operations/getcustomvoice.js.map +1 -0
  785. package/dist/esm/models/operations/getusage.d.ts +120 -0
  786. package/dist/esm/models/operations/getusage.d.ts.map +1 -0
  787. package/dist/esm/models/operations/getusage.js +104 -0
  788. package/dist/esm/models/operations/getusage.js.map +1 -0
  789. package/dist/esm/models/operations/getvoice.d.ts +29 -0
  790. package/dist/esm/models/operations/getvoice.d.ts.map +1 -0
  791. package/dist/esm/models/operations/getvoice.js +40 -0
  792. package/dist/esm/models/operations/getvoice.js.map +1 -0
  793. package/dist/esm/models/operations/getvoiceusage.d.ts +37 -0
  794. package/dist/esm/models/operations/getvoiceusage.d.ts.map +1 -0
  795. package/dist/esm/models/operations/getvoiceusage.js +44 -0
  796. package/dist/esm/models/operations/getvoiceusage.js.map +1 -0
  797. package/dist/esm/models/operations/index.d.ts +15 -0
  798. package/dist/esm/models/operations/index.d.ts.map +1 -0
  799. package/dist/esm/models/operations/index.js +18 -0
  800. package/dist/esm/models/operations/index.js.map +1 -0
  801. package/dist/esm/models/operations/listcustomvoices.d.ts +37 -0
  802. package/dist/esm/models/operations/listcustomvoices.d.ts.map +1 -0
  803. package/dist/esm/models/operations/listcustomvoices.js +44 -0
  804. package/dist/esm/models/operations/listcustomvoices.js.map +1 -0
  805. package/dist/esm/models/operations/listvoices.d.ts +37 -0
  806. package/dist/esm/models/operations/listvoices.d.ts.map +1 -0
  807. package/dist/esm/models/operations/listvoices.js +44 -0
  808. package/dist/esm/models/operations/listvoices.js.map +1 -0
  809. package/dist/esm/models/operations/predictduration.d.ts +60 -0
  810. package/dist/esm/models/operations/predictduration.d.ts.map +1 -0
  811. package/dist/esm/models/operations/predictduration.js +70 -0
  812. package/dist/esm/models/operations/predictduration.js.map +1 -0
  813. package/dist/esm/models/operations/searchcustomvoices.d.ts +47 -0
  814. package/dist/esm/models/operations/searchcustomvoices.d.ts.map +1 -0
  815. package/dist/esm/models/operations/searchcustomvoices.js +48 -0
  816. package/dist/esm/models/operations/searchcustomvoices.js.map +1 -0
  817. package/dist/esm/models/operations/searchvoices.d.ts +82 -0
  818. package/dist/esm/models/operations/searchvoices.d.ts.map +1 -0
  819. package/dist/esm/models/operations/searchvoices.js +66 -0
  820. package/dist/esm/models/operations/searchvoices.js.map +1 -0
  821. package/dist/esm/models/operations/streamspeech.d.ts +84 -0
  822. package/dist/esm/models/operations/streamspeech.d.ts.map +1 -0
  823. package/dist/esm/models/operations/streamspeech.js +119 -0
  824. package/dist/esm/models/operations/streamspeech.js.map +1 -0
  825. package/dist/esm/models/payloadtoolargeerrorresponse.d.ts +45 -0
  826. package/dist/esm/models/payloadtoolargeerrorresponse.d.ts.map +1 -0
  827. package/dist/esm/models/payloadtoolargeerrorresponse.js +44 -0
  828. package/dist/esm/models/payloadtoolargeerrorresponse.js.map +1 -0
  829. package/dist/esm/models/paymentrequirederrorresponse.d.ts +45 -0
  830. package/dist/esm/models/paymentrequirederrorresponse.d.ts.map +1 -0
  831. package/dist/esm/models/paymentrequirederrorresponse.js +44 -0
  832. package/dist/esm/models/paymentrequirederrorresponse.js.map +1 -0
  833. package/dist/esm/models/predictttsdurationusingcharacterrequest.d.ts +127 -0
  834. package/dist/esm/models/predictttsdurationusingcharacterrequest.d.ts.map +1 -0
  835. package/dist/esm/models/predictttsdurationusingcharacterrequest.js +101 -0
  836. package/dist/esm/models/predictttsdurationusingcharacterrequest.js.map +1 -0
  837. package/dist/esm/models/requesttimeouterrorresponse.d.ts +45 -0
  838. package/dist/esm/models/requesttimeouterrorresponse.d.ts.map +1 -0
  839. package/dist/esm/models/requesttimeouterrorresponse.js +44 -0
  840. package/dist/esm/models/requesttimeouterrorresponse.js.map +1 -0
  841. package/dist/esm/models/security.d.ts +29 -0
  842. package/dist/esm/models/security.d.ts.map +1 -0
  843. package/dist/esm/models/security.js +40 -0
  844. package/dist/esm/models/security.js.map +1 -0
  845. package/dist/esm/models/toomanyrequestserrorresponse.d.ts +45 -0
  846. package/dist/esm/models/toomanyrequestserrorresponse.d.ts.map +1 -0
  847. package/dist/esm/models/toomanyrequestserrorresponse.js +44 -0
  848. package/dist/esm/models/toomanyrequestserrorresponse.js.map +1 -0
  849. package/dist/esm/models/unauthorizederrorresponse.d.ts +45 -0
  850. package/dist/esm/models/unauthorizederrorresponse.d.ts.map +1 -0
  851. package/dist/esm/models/unauthorizederrorresponse.js +44 -0
  852. package/dist/esm/models/unauthorizederrorresponse.js.map +1 -0
  853. package/dist/esm/models/updateclonedvoicerequest.d.ts +37 -0
  854. package/dist/esm/models/updateclonedvoicerequest.d.ts.map +1 -0
  855. package/dist/esm/models/updateclonedvoicerequest.js +33 -0
  856. package/dist/esm/models/updateclonedvoicerequest.js.map +1 -0
  857. package/dist/esm/models/updateclonedvoiceresponse.d.ts +42 -0
  858. package/dist/esm/models/updateclonedvoiceresponse.d.ts.map +1 -0
  859. package/dist/esm/models/updateclonedvoiceresponse.js +44 -0
  860. package/dist/esm/models/updateclonedvoiceresponse.js.map +1 -0
  861. package/dist/esm/models/usageanalyticsresponse.d.ts +43 -0
  862. package/dist/esm/models/usageanalyticsresponse.d.ts.map +1 -0
  863. package/dist/esm/models/usageanalyticsresponse.js +45 -0
  864. package/dist/esm/models/usageanalyticsresponse.js.map +1 -0
  865. package/dist/esm/models/usagebucket.d.ts +43 -0
  866. package/dist/esm/models/usagebucket.d.ts.map +1 -0
  867. package/dist/esm/models/usagebucket.js +47 -0
  868. package/dist/esm/models/usagebucket.js.map +1 -0
  869. package/dist/esm/models/usageresult.d.ts +52 -0
  870. package/dist/esm/models/usageresult.d.ts.map +1 -0
  871. package/dist/esm/models/usageresult.js +54 -0
  872. package/dist/esm/models/usageresult.js.map +1 -0
  873. package/dist/esm/package.json +3 -0
  874. package/dist/esm/sdk/customvoices.d.ts +48 -0
  875. package/dist/esm/sdk/customvoices.d.ts.map +1 -0
  876. package/dist/esm/sdk/customvoices.js +68 -0
  877. package/dist/esm/sdk/customvoices.js.map +1 -0
  878. package/dist/esm/sdk/index.d.ts +2 -0
  879. package/dist/esm/sdk/index.d.ts.map +1 -0
  880. package/dist/esm/sdk/index.js +5 -0
  881. package/dist/esm/sdk/index.js.map +1 -0
  882. package/dist/esm/sdk/sdk.d.ts +16 -0
  883. package/dist/esm/sdk/sdk.d.ts.map +1 -0
  884. package/dist/esm/sdk/sdk.js +23 -0
  885. package/dist/esm/sdk/sdk.js.map +1 -0
  886. package/dist/esm/sdk/texttospeech.d.ts +62 -0
  887. package/dist/esm/sdk/texttospeech.d.ts.map +1 -0
  888. package/dist/esm/sdk/texttospeech.js +359 -0
  889. package/dist/esm/sdk/texttospeech.js.map +1 -0
  890. package/dist/esm/sdk/usage.d.ts +27 -0
  891. package/dist/esm/sdk/usage.d.ts.map +1 -0
  892. package/dist/esm/sdk/usage.js +38 -0
  893. package/dist/esm/sdk/usage.js.map +1 -0
  894. package/dist/esm/sdk/voices.d.ts +27 -0
  895. package/dist/esm/sdk/voices.d.ts.map +1 -0
  896. package/dist/esm/sdk/voices.js +38 -0
  897. package/dist/esm/sdk/voices.js.map +1 -0
  898. package/dist/esm/types/async.d.ts +23 -0
  899. package/dist/esm/types/async.d.ts.map +1 -0
  900. package/dist/esm/types/async.js +40 -0
  901. package/dist/esm/types/async.js.map +1 -0
  902. package/dist/esm/types/blobs.d.ts +4 -0
  903. package/dist/esm/types/blobs.d.ts.map +1 -0
  904. package/dist/esm/types/blobs.js +25 -0
  905. package/dist/esm/types/blobs.js.map +1 -0
  906. package/dist/esm/types/constdatetime.d.ts +3 -0
  907. package/dist/esm/types/constdatetime.d.ts.map +1 -0
  908. package/dist/esm/types/constdatetime.js +10 -0
  909. package/dist/esm/types/constdatetime.js.map +1 -0
  910. package/dist/esm/types/enums.d.ts +12 -0
  911. package/dist/esm/types/enums.d.ts.map +1 -0
  912. package/dist/esm/types/enums.js +7 -0
  913. package/dist/esm/types/enums.js.map +1 -0
  914. package/dist/esm/types/fp.d.ts +31 -0
  915. package/dist/esm/types/fp.d.ts.map +1 -0
  916. package/dist/esm/types/fp.js +31 -0
  917. package/dist/esm/types/fp.js.map +1 -0
  918. package/dist/esm/types/index.d.ts +8 -0
  919. package/dist/esm/types/index.d.ts.map +1 -0
  920. package/dist/esm/types/index.js +8 -0
  921. package/dist/esm/types/index.js.map +1 -0
  922. package/dist/esm/types/operations.d.ts +27 -0
  923. package/dist/esm/types/operations.d.ts.map +1 -0
  924. package/dist/esm/types/operations.js +77 -0
  925. package/dist/esm/types/operations.js.map +1 -0
  926. package/dist/esm/types/rfcdate.d.ts +21 -0
  927. package/dist/esm/types/rfcdate.d.ts.map +1 -0
  928. package/dist/esm/types/rfcdate.js +42 -0
  929. package/dist/esm/types/rfcdate.js.map +1 -0
  930. package/dist/esm/types/streams.d.ts +2 -0
  931. package/dist/esm/types/streams.d.ts.map +1 -0
  932. package/dist/esm/types/streams.js +15 -0
  933. package/dist/esm/types/streams.js.map +1 -0
  934. package/eslint.config.mjs +22 -0
  935. package/examples/custom_voices/create_cloned_voice.ts +116 -0
  936. package/examples/custom_voices/delete_custom_voice.ts +98 -0
  937. package/examples/custom_voices/edit_custom_voice.ts +71 -0
  938. package/examples/custom_voices/get_custom_voice.ts +69 -0
  939. package/examples/custom_voices/list_custom_voices.ts +70 -0
  940. package/examples/custom_voices/search_custom_voices.ts +80 -0
  941. package/examples/package.json +18 -0
  942. package/examples/textToSpeechCreateSpeech.example.ts +32 -0
  943. package/examples/text_to_speech/create_speech.ts +97 -0
  944. package/examples/text_to_speech/create_speech_long_text.ts +104 -0
  945. package/examples/text_to_speech/create_speech_with_phonemes.ts +122 -0
  946. package/examples/text_to_speech/create_speech_with_voice_settings.ts +108 -0
  947. package/examples/text_to_speech/predict_duration.ts +69 -0
  948. package/examples/text_to_speech/stream_speech.ts +114 -0
  949. package/examples/text_to_speech/stream_speech_long_text.ts +139 -0
  950. package/examples/text_to_speech/stream_speech_with_phonemes.ts +169 -0
  951. package/examples/text_to_speech/stream_speech_with_voice_settings.ts +150 -0
  952. package/examples/usage/get_credit_balance.ts +48 -0
  953. package/examples/usage/get_usage.ts +74 -0
  954. package/examples/usage/get_voice_usage.ts +75 -0
  955. package/examples/voices/get_voice.ts +59 -0
  956. package/examples/voices/list_voices.ts +67 -0
  957. package/examples/voices/search_voices.ts +61 -0
  958. package/jsr.json +27 -0
  959. package/openapi.json +2569 -0
  960. package/package.json +125 -0
  961. package/src/core.ts +13 -0
  962. package/src/funcs/customVoicesCreateClonedVoice.ts +237 -0
  963. package/src/funcs/customVoicesDeleteCustomVoice.ts +184 -0
  964. package/src/funcs/customVoicesEditCustomVoice.ts +187 -0
  965. package/src/funcs/customVoicesGetCustomVoice.ts +184 -0
  966. package/src/funcs/customVoicesListCustomVoices.ts +184 -0
  967. package/src/funcs/customVoicesSearchCustomVoices.ts +188 -0
  968. package/src/funcs/textToSpeechCreateSpeech.ts +239 -0
  969. package/src/funcs/textToSpeechPredictDuration.ts +219 -0
  970. package/src/funcs/textToSpeechStreamSpeech.ts +240 -0
  971. package/src/funcs/usageGetCreditBalance.ts +142 -0
  972. package/src/funcs/usageGetUsage.ts +191 -0
  973. package/src/funcs/usageGetVoiceUsage.ts +166 -0
  974. package/src/funcs/voicesGetVoice.ts +167 -0
  975. package/src/funcs/voicesListVoices.ts +167 -0
  976. package/src/funcs/voicesSearchVoices.ts +176 -0
  977. package/src/hooks/hooks.ts +129 -0
  978. package/src/hooks/index.ts +6 -0
  979. package/src/hooks/types.ts +107 -0
  980. package/src/index.ts +9 -0
  981. package/src/lib/base64.ts +37 -0
  982. package/src/lib/config.ts +67 -0
  983. package/src/lib/custom_utils/audio_utils.ts +380 -0
  984. package/src/lib/custom_utils/constants.ts +21 -0
  985. package/src/lib/custom_utils/index.ts +31 -0
  986. package/src/lib/custom_utils/phoneme_utils.ts +134 -0
  987. package/src/lib/custom_utils/text_utils.ts +132 -0
  988. package/src/lib/dlv.ts +53 -0
  989. package/src/lib/encodings.ts +483 -0
  990. package/src/lib/files.ts +82 -0
  991. package/src/lib/http.ts +323 -0
  992. package/src/lib/is-plain-object.ts +43 -0
  993. package/src/lib/logger.ts +9 -0
  994. package/src/lib/matchers.ts +352 -0
  995. package/src/lib/primitives.ts +150 -0
  996. package/src/lib/retries.ts +218 -0
  997. package/src/lib/schemas.ts +91 -0
  998. package/src/lib/sdks.ts +402 -0
  999. package/src/lib/security.ts +263 -0
  1000. package/src/lib/url.ts +33 -0
  1001. package/src/models/apiconverttexttospeechusingcharacterrequest.ts +226 -0
  1002. package/src/models/apisampledata.ts +86 -0
  1003. package/src/models/converttexttospeechparameters.ts +119 -0
  1004. package/src/models/createclonedvoiceuploadresponse.ts +80 -0
  1005. package/src/models/errors/badrequesterrorresponse.ts +90 -0
  1006. package/src/models/errors/forbiddenerrorresponse.ts +93 -0
  1007. package/src/models/errors/httpclienterrors.ts +62 -0
  1008. package/src/models/errors/index.ts +18 -0
  1009. package/src/models/errors/internalservererrorresponse.ts +97 -0
  1010. package/src/models/errors/notfounderrorresponse.ts +93 -0
  1011. package/src/models/errors/payloadtoolargeerrorresponse.ts +97 -0
  1012. package/src/models/errors/paymentrequirederrorresponse.ts +97 -0
  1013. package/src/models/errors/requesttimeouterrorresponse.ts +97 -0
  1014. package/src/models/errors/responsevalidationerror.ts +50 -0
  1015. package/src/models/errors/sdkvalidationerror.ts +109 -0
  1016. package/src/models/errors/supertonedefaulterror.ts +40 -0
  1017. package/src/models/errors/supertoneerror.ts +35 -0
  1018. package/src/models/errors/toomanyrequestserrorresponse.ts +97 -0
  1019. package/src/models/errors/unauthorizederrorresponse.ts +95 -0
  1020. package/src/models/errors/unsupportedmediatypeerrorresponse.ts +91 -0
  1021. package/src/models/forbiddenerrorresponse.ts +97 -0
  1022. package/src/models/getapicharacterlistresponse.ts +100 -0
  1023. package/src/models/getapicharacterresponsedata.ts +169 -0
  1024. package/src/models/getcharacterbyidresponse.ts +167 -0
  1025. package/src/models/getcreditbalanceresponse.ts +69 -0
  1026. package/src/models/getcustomvoicelistresponse.ts +98 -0
  1027. package/src/models/getcustomvoiceresponsedata.ts +92 -0
  1028. package/src/models/getsingleclonedvoiceresponse.ts +94 -0
  1029. package/src/models/getusagelistv1response.ts +72 -0
  1030. package/src/models/getusageresponsev1data.ts +131 -0
  1031. package/src/models/index.ts +32 -0
  1032. package/src/models/internalservererrorresponse.ts +99 -0
  1033. package/src/models/notfounderrorresponse.ts +97 -0
  1034. package/src/models/operations/createclonedvoice.ts +152 -0
  1035. package/src/models/operations/createspeech.ts +401 -0
  1036. package/src/models/operations/deletecustomvoice.ts +75 -0
  1037. package/src/models/operations/editcustomvoice.ts +82 -0
  1038. package/src/models/operations/getcustomvoice.ts +75 -0
  1039. package/src/models/operations/getusage.ts +182 -0
  1040. package/src/models/operations/getvoice.ts +73 -0
  1041. package/src/models/operations/getvoiceusage.ts +87 -0
  1042. package/src/models/operations/index.ts +18 -0
  1043. package/src/models/operations/listcustomvoices.ts +87 -0
  1044. package/src/models/operations/listvoices.ts +87 -0
  1045. package/src/models/operations/predictduration.ts +149 -0
  1046. package/src/models/operations/searchcustomvoices.ts +101 -0
  1047. package/src/models/operations/searchvoices.ts +154 -0
  1048. package/src/models/operations/streamspeech.ts +232 -0
  1049. package/src/models/payloadtoolargeerrorresponse.ts +100 -0
  1050. package/src/models/paymentrequirederrorresponse.ts +100 -0
  1051. package/src/models/predictttsdurationusingcharacterrequest.ts +215 -0
  1052. package/src/models/requesttimeouterrorresponse.ts +99 -0
  1053. package/src/models/security.ts +71 -0
  1054. package/src/models/toomanyrequestserrorresponse.ts +100 -0
  1055. package/src/models/unauthorizederrorresponse.ts +97 -0
  1056. package/src/models/updateclonedvoicerequest.ts +76 -0
  1057. package/src/models/updateclonedvoiceresponse.ts +92 -0
  1058. package/src/models/usageanalyticsresponse.ts +98 -0
  1059. package/src/models/usagebucket.ts +96 -0
  1060. package/src/models/usageresult.ts +108 -0
  1061. package/src/sdk/customvoices.ts +118 -0
  1062. package/src/sdk/index.ts +5 -0
  1063. package/src/sdk/sdk.ts +31 -0
  1064. package/src/sdk/texttospeech.ts +488 -0
  1065. package/src/sdk/usage.ts +62 -0
  1066. package/src/sdk/voices.ts +64 -0
  1067. package/src/types/async.ts +68 -0
  1068. package/src/types/blobs.ts +31 -0
  1069. package/src/types/constdatetime.ts +15 -0
  1070. package/src/types/enums.ts +16 -0
  1071. package/src/types/fp.ts +50 -0
  1072. package/src/types/index.ts +11 -0
  1073. package/src/types/operations.ts +105 -0
  1074. package/src/types/rfcdate.ts +54 -0
  1075. package/src/types/streams.ts +21 -0
  1076. package/tsconfig.json +41 -0
@@ -0,0 +1,1803 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * Real API Integration Test Script
4
+ * Tests all SDK functionality with real Supertone API calls.
5
+ *
6
+ * Comprehensive TypeScript version of the Python test suite.
7
+ * Includes all API tests except parallel processing tests.
8
+ */
9
+
10
+ import * as fs from "fs";
11
+ import * as path from "path";
12
+ import { fileURLToPath } from "url";
13
+ import * as dotenv from "dotenv";
14
+
15
+ // Get the directory of the current module
16
+ const __filename = fileURLToPath(import.meta.url);
17
+ const __dirname = path.dirname(__filename);
18
+
19
+ // Load environment variables from .env file in custom_test directory
20
+ dotenv.config({ path: path.join(__dirname, ".env") });
21
+
22
+ const API_KEY = process.env.SUPERTONE_API_KEY || "your-api-key-here";
23
+
24
+ interface TestResult {
25
+ [key: string]: boolean | null;
26
+ }
27
+
28
+ /**
29
+ * Helper function to log detailed error information
30
+ */
31
+ function logDetailedError(e: any, context?: string): void {
32
+ console.error(` āŒ Error: ${e.message || e}`);
33
+
34
+ if (context) {
35
+ console.error(` šŸ“ Context: ${context}`);
36
+ }
37
+
38
+ // Validation errors (Zod)
39
+ if (e.message && e.message.includes("validation")) {
40
+ if (e.cause) {
41
+ console.error(` šŸ“‹ Validation details:`);
42
+ try {
43
+ console.error(JSON.stringify(e.cause, null, 2));
44
+ } catch {
45
+ console.error(e.cause);
46
+ }
47
+ }
48
+ }
49
+
50
+ // HTTP errors
51
+ if (e.statusCode || e.status) {
52
+ console.error(` 🌐 Status: ${e.statusCode || e.status}`);
53
+ }
54
+
55
+ // Response body if available
56
+ if (e.body) {
57
+ console.error(` šŸ“¦ Response body:`);
58
+ try {
59
+ console.error(JSON.stringify(e.body, null, 2));
60
+ } catch {
61
+ console.error(e.body);
62
+ }
63
+ }
64
+
65
+ // Stack trace in debug mode
66
+ if (process.env.DEBUG && e.stack) {
67
+ console.error(` šŸ“š Stack trace:`);
68
+ console.error(e.stack);
69
+ }
70
+ }
71
+
72
+ /**
73
+ * Helper function to inspect and log response object
74
+ */
75
+ function inspectResponse(response: any, label: string = "Response"): void {
76
+ console.log(` šŸ” ${label} inspection:`);
77
+ console.log(` Type: ${typeof response}`);
78
+ console.log(` Constructor: ${response?.constructor?.name || "unknown"}`);
79
+
80
+ if (response) {
81
+ const keys = Object.keys(response);
82
+ console.log(` Keys: ${keys.join(", ") || "(none)"}`);
83
+
84
+ // Check for result property
85
+ if ("result" in response) {
86
+ const result = response.result;
87
+ console.log(` Result type: ${typeof result}`);
88
+ console.log(
89
+ ` Result constructor: ${result?.constructor?.name || "unknown"}`
90
+ );
91
+
92
+ if (result && typeof result === "object") {
93
+ const resultKeys = Object.keys(result);
94
+ console.log(
95
+ ` Result keys: ${resultKeys.join(", ") || "(empty object)"}`
96
+ );
97
+
98
+ // Check prototype
99
+ const proto = Object.getPrototypeOf(result);
100
+ if (proto && proto.constructor) {
101
+ console.log(` Result prototype: ${proto.constructor.name}`);
102
+ }
103
+
104
+ // Check for stream methods
105
+ if ("getReader" in result) {
106
+ console.log(` āœ“ Has getReader (ReadableStream-like)`);
107
+ }
108
+ if ("arrayBuffer" in result) {
109
+ console.log(` āœ“ Has arrayBuffer method`);
110
+ }
111
+ }
112
+ }
113
+ }
114
+ }
115
+
116
+ /**
117
+ * Helper function to extract audio data from various response types
118
+ */
119
+ async function extractAudioData(response: any): Promise<Uint8Array> {
120
+ let result = response.result;
121
+
122
+ // Debug logging
123
+ console.log(` šŸ” Debug - result type: ${typeof result}`);
124
+ if (typeof result === "object" && result !== null) {
125
+ console.log(` šŸ” Debug - constructor: ${result.constructor.name}`);
126
+ console.log(` šŸ” Debug - keys: ${Object.keys(result).join(", ")}`);
127
+ console.log(` šŸ” Debug - has audioBase64: ${"audioBase64" in result}`);
128
+ console.log(` šŸ” Debug - has getReader: ${"getReader" in result}`);
129
+ }
130
+
131
+ // Check for capital-case Result (SDK internal structure)
132
+ if (!result || (typeof result === "object" && Object.keys(result).length === 0)) {
133
+ console.log(` šŸ’” Checking SDK internal Result field...`);
134
+ if ((response as any).Result) {
135
+ result = (response as any).Result;
136
+ console.log(` āœ… Found Result (capital R) - using that instead`);
137
+ }
138
+ }
139
+
140
+ // Debug response headers
141
+ if (response.headers) {
142
+ console.log(` šŸ” Debug - response headers:`, JSON.stringify(response.headers, null, 2));
143
+ }
144
+
145
+ if (result instanceof Uint8Array) {
146
+ console.log(` āœ… Detected: Uint8Array`);
147
+ return result;
148
+ }
149
+
150
+ if (result instanceof Blob) {
151
+ console.log(` āœ… Detected: Blob`);
152
+ return new Uint8Array(await result.arrayBuffer());
153
+ }
154
+
155
+ if (result instanceof ArrayBuffer) {
156
+ console.log(` āœ… Detected: ArrayBuffer`);
157
+ return new Uint8Array(result);
158
+ }
159
+
160
+ if (typeof result === "object" && result !== null && "getReader" in result) {
161
+ console.log(` āœ… Detected: ReadableStream`);
162
+ // ReadableStream
163
+ const reader = (result as ReadableStream<Uint8Array>).getReader();
164
+ const chunks: Uint8Array[] = [];
165
+
166
+ while (true) {
167
+ const { done, value } = await reader.read();
168
+ if (done) break;
169
+ if (value) chunks.push(value);
170
+ }
171
+
172
+ // Merge all chunks
173
+ const totalLength = chunks.reduce((sum, chunk) => sum + chunk.length, 0);
174
+ const merged = new Uint8Array(totalLength);
175
+ let offset = 0;
176
+ for (const chunk of chunks) {
177
+ merged.set(chunk, offset);
178
+ offset += chunk.length;
179
+ }
180
+ return merged;
181
+ }
182
+
183
+ // Handle CreateSpeechResponseBody with audioBase64 (for phoneme responses)
184
+ if (
185
+ typeof result === "object" &&
186
+ result !== null &&
187
+ "audioBase64" in result
188
+ ) {
189
+ console.log(` āœ… Detected: audioBase64 object`);
190
+ const audioBase64 = (result as any).audioBase64;
191
+ if (typeof audioBase64 === "string") {
192
+ // Decode base64 to binary
193
+ const binaryString = atob(audioBase64);
194
+ const bytes = new Uint8Array(binaryString.length);
195
+ for (let i = 0; i < binaryString.length; i++) {
196
+ bytes[i] = binaryString.charCodeAt(i);
197
+ }
198
+ return bytes;
199
+ }
200
+ }
201
+
202
+ // Handle empty object case - this might happen when the SDK doesn't properly parse audio responses
203
+ if (
204
+ typeof result === "object" &&
205
+ result !== null &&
206
+ Object.keys(result).length === 0
207
+ ) {
208
+ console.log(` āš ļø Warning: Empty result object detected`);
209
+ console.log(` šŸ’” This might be a parsing issue with the SDK`);
210
+ console.log(` šŸ’” Check if the response was actually a stream but got parsed as an empty object`);
211
+
212
+ throw new Error(
213
+ `Empty result object - SDK may have failed to parse audio stream response. ` +
214
+ `This usually happens when audio/* content-type responses are not properly handled.`
215
+ );
216
+ }
217
+
218
+ // Enhanced error message with debug info
219
+ const errorDetails = typeof result === "object" && result !== null
220
+ ? `constructor: ${result.constructor.name}, keys: [${Object.keys(result).join(", ")}]`
221
+ : `value: ${result}`;
222
+
223
+ throw new Error(
224
+ `Unsupported result type: ${typeof result}, ${errorDetails}`
225
+ );
226
+ }
227
+
228
+ /**
229
+ * Test credit balance retrieval
230
+ */
231
+ async function testCreditBalance(): Promise<[boolean, any]> {
232
+ console.log("šŸ’° Credit Balance Test");
233
+
234
+ try {
235
+ const { Supertone } = await import("../src/index.js");
236
+ const client = new Supertone({ apiKey: API_KEY });
237
+
238
+ console.log(" šŸ” Retrieving credit balance...");
239
+ const response = await client.usage.getCreditBalance();
240
+
241
+ console.log(` āœ… Credit Balance: ${response.balance}`);
242
+ return [true, response];
243
+ } catch (e: any) {
244
+ console.error(` āŒ Error: ${e.message || e}`);
245
+ return [false, e];
246
+ }
247
+ }
248
+
249
+ /**
250
+ * Test usage retrieval
251
+ */
252
+ async function testGetUsage(): Promise<[boolean, any]> {
253
+ console.log("šŸ“Š Usage Analytics Test");
254
+
255
+ try {
256
+ const { Supertone } = await import("../src/index.js");
257
+ const client = new Supertone({ apiKey: API_KEY });
258
+
259
+ const endTime = new Date();
260
+ const startTime = new Date(endTime.getTime() - 7 * 24 * 60 * 60 * 1000);
261
+
262
+ console.log(
263
+ ` šŸ” Retrieving usage from ${startTime.toISOString().split("T")[0]} to ${
264
+ endTime.toISOString().split("T")[0]
265
+ }...`
266
+ );
267
+
268
+ const response = await client.usage.getUsage({
269
+ startTime: startTime.toISOString(),
270
+ endTime: endTime.toISOString(),
271
+ });
272
+
273
+ console.log(
274
+ ` āœ… Success: ${response.data?.length || 0} usage record buckets`
275
+ );
276
+ console.log(` šŸ“Š Total buckets: ${response.total}`);
277
+
278
+ if (response.data && response.data.length > 0) {
279
+ for (const bucket of response.data.slice(0, 3)) {
280
+ console.log(` šŸ“… Bucket start: ${bucket.startingAt}`);
281
+ console.log(` Bucket end: ${bucket.endingAt}`);
282
+ console.log(` Results: ${bucket.results?.length || 0} items`);
283
+
284
+ if (bucket.results) {
285
+ const totalMinutes = bucket.results.reduce(
286
+ (sum, r) => sum + (r.minutesUsed || 0),
287
+ 0
288
+ );
289
+ console.log(` Total usage: ${totalMinutes.toFixed(2)} minutes`);
290
+ }
291
+ }
292
+ } else {
293
+ console.log(" šŸ“ No usage records for this period");
294
+ }
295
+
296
+ return [true, response];
297
+ } catch (e: any) {
298
+ console.error(` āŒ Error: ${e.message || e}`);
299
+ return [false, e];
300
+ }
301
+ }
302
+
303
+ /**
304
+ * Test voice listing
305
+ */
306
+ async function testListVoices(): Promise<[boolean, any]> {
307
+ console.log("šŸŽµ Voice List Test");
308
+
309
+ try {
310
+ const { Supertone } = await import("../src/index.js");
311
+ const client = new Supertone({ apiKey: API_KEY });
312
+
313
+ console.log(" šŸ” Retrieving voice list...");
314
+ const response = await client.voices.listVoices({ pageSize: 10 });
315
+
316
+ console.log(` āœ… Success: ${response.items?.length || 0} voices`);
317
+ console.log(` šŸ“Š Total voices: ${response.total}`);
318
+
319
+ let firstVoiceId: string | null = null;
320
+ if (response.items && response.items.length > 0) {
321
+ const firstVoice = response.items[0];
322
+ firstVoiceId = firstVoice!.voiceId || null;
323
+ console.log(` šŸŽ¤ First voice:`);
324
+ console.log(` ID: ${firstVoice!.voiceId}`);
325
+ console.log(` Name: ${firstVoice!.name}`);
326
+ console.log(
327
+ ` Description: ${firstVoice!.description?.substring(0, 50)}...`
328
+ );
329
+ console.log(` Language: ${firstVoice!.language}`);
330
+ console.log(` Gender: ${firstVoice!.gender}`);
331
+ }
332
+
333
+ return [true, { response, voiceId: firstVoiceId }];
334
+ } catch (e: any) {
335
+ console.error(` āŒ Error: ${e.message || e}`);
336
+ return [false, e];
337
+ }
338
+ }
339
+
340
+ /**
341
+ * Test voice search
342
+ */
343
+ async function testSearchVoices(): Promise<[boolean, any]> {
344
+ console.log("šŸ” Voice Search Test");
345
+
346
+ try {
347
+ const { Supertone } = await import("../src/index.js");
348
+ const client = new Supertone({ apiKey: API_KEY });
349
+
350
+ console.log(" šŸ” Searching for female English voices...");
351
+ const response = await client.voices.searchVoices({
352
+ language: "en",
353
+ gender: "female",
354
+ pageSize: 10,
355
+ });
356
+
357
+ console.log(` āœ… Search success: ${response.items?.length || 0} voices`);
358
+
359
+ if (response.items) {
360
+ for (const voice of response.items.slice(0, 5)) {
361
+ console.log(` šŸŽ¤ ${voice.name} (${voice.voiceId})`);
362
+ console.log(
363
+ ` Language: ${voice.language}, Gender: ${voice.gender}`
364
+ );
365
+ }
366
+ }
367
+
368
+ return [true, response];
369
+ } catch (e: any) {
370
+ console.error(` āŒ Error: ${e.message || e}`);
371
+ return [false, e];
372
+ }
373
+ }
374
+
375
+ /**
376
+ * Test voice detail retrieval
377
+ */
378
+ async function testGetVoice(voiceId: string | null): Promise<[boolean, any]> {
379
+ console.log("šŸ“„ Voice Detail Test");
380
+
381
+ if (!voiceId) {
382
+ console.log(" āš ļø No voice ID available");
383
+ return [false, null];
384
+ }
385
+
386
+ try {
387
+ const { Supertone } = await import("../src/index.js");
388
+ const client = new Supertone({ apiKey: API_KEY });
389
+
390
+ console.log(` šŸ” Retrieving voice '${voiceId}' details...`);
391
+ const response = await client.voices.getVoice({ voiceId });
392
+
393
+ console.log(` āœ… Success:`);
394
+ console.log(` Name: ${response.name}`);
395
+ console.log(` ID: ${response.voiceId}`);
396
+ console.log(` Description: ${response.description}`);
397
+ console.log(` Language: ${response.language}`);
398
+ console.log(` Gender: ${response.gender}`);
399
+
400
+ return [true, response];
401
+ } catch (e: any) {
402
+ console.error(` āŒ Error: ${e.message || e}`);
403
+ return [false, e];
404
+ }
405
+ }
406
+
407
+ /**
408
+ * Test custom voice listing
409
+ */
410
+ async function testListCustomVoices(): Promise<[boolean, any]> {
411
+ console.log("šŸŽØ Custom Voice List Test");
412
+
413
+ try {
414
+ const { Supertone } = await import("../src/index.js");
415
+ const client = new Supertone({ apiKey: API_KEY });
416
+
417
+ console.log(" šŸ” Retrieving custom voice list...");
418
+ const response = await client.customVoices.listCustomVoices({
419
+ pageSize: 10,
420
+ });
421
+
422
+ console.log(` āœ… Success: ${response.items?.length || 0} custom voices`);
423
+ console.log(` šŸ“Š Total custom voices: ${response.total}`);
424
+
425
+ let customVoiceId: string | null = null;
426
+ if (response.items) {
427
+ for (const voice of response.items) {
428
+ console.log(` šŸŽ¤ ${voice.name} (${voice.voiceId})`);
429
+ console.log(` Description: ${voice.description}`);
430
+ if (!customVoiceId) {
431
+ customVoiceId = voice.voiceId || null;
432
+ }
433
+ }
434
+ }
435
+
436
+ return [true, { response, voiceId: customVoiceId }];
437
+ } catch (e: any) {
438
+ console.error(` āŒ Error: ${e.message || e}`);
439
+ return [false, e];
440
+ }
441
+ }
442
+
443
+ /**
444
+ * Test TTS duration prediction
445
+ */
446
+ async function testPredictDuration(
447
+ voiceId: string | null
448
+ ): Promise<[boolean, any]> {
449
+ console.log("ā±ļø TTS Duration Prediction Test");
450
+
451
+ if (!voiceId) {
452
+ console.log(" āš ļø No voice ID available");
453
+ return [false, null];
454
+ }
455
+
456
+ try {
457
+ const { Supertone } = await import("../src/index.js");
458
+ const models = await import("../src/models/index.js");
459
+ const client = new Supertone({ apiKey: API_KEY });
460
+
461
+ const testText = "Hello, this is a test message for duration prediction.";
462
+ console.log(` šŸ” Predicting duration for: "${testText}"`);
463
+
464
+ const response = await client.textToSpeech.predictDuration({
465
+ voiceId,
466
+ predictTTSDurationUsingCharacterRequest: {
467
+ text: testText,
468
+ language: models.PredictTTSDurationUsingCharacterRequestLanguage.En,
469
+ },
470
+ });
471
+
472
+ console.log(` āœ… Predicted duration: ${response.duration}s`);
473
+ return [true, response];
474
+ } catch (e: any) {
475
+ console.error(` āŒ Error: ${e.message || e}`);
476
+ return [false, e];
477
+ }
478
+ }
479
+
480
+ /**
481
+ * Test TTS creation (WAV)
482
+ */
483
+ async function testCreateSpeech(
484
+ voiceId: string | null
485
+ ): Promise<[boolean, any]> {
486
+ console.log("šŸŽ¤ TTS Creation Test (WAV)");
487
+
488
+ if (!voiceId) {
489
+ console.log(" āš ļø No voice ID available");
490
+ return [false, null];
491
+ }
492
+
493
+ try {
494
+ const { Supertone } = await import("../src/index.js");
495
+ const models = await import("../src/models/index.js");
496
+ const client = new Supertone({ apiKey: API_KEY });
497
+
498
+ const testText = "Hello! This is a test speech synthesis.";
499
+ console.log(` šŸ” Creating speech: "${testText}"`);
500
+ console.log(` Voice ID: ${voiceId}`);
501
+ console.log(` Format: WAV`);
502
+ console.log(" āš ļø This test consumes credits!");
503
+
504
+ const response = await client.textToSpeech.createSpeech({
505
+ voiceId,
506
+ apiConvertTextToSpeechUsingCharacterRequest: {
507
+ text: testText,
508
+ language: models.APIConvertTextToSpeechUsingCharacterRequestLanguage.En,
509
+ outputFormat:
510
+ models.APIConvertTextToSpeechUsingCharacterRequestOutputFormat.Wav,
511
+ },
512
+ });
513
+
514
+ console.log(` āœ… Speech created successfully`);
515
+ console.log(` Audio size: ${response.result ? "received" : "none"}`);
516
+
517
+ return [true, response];
518
+ } catch (e: any) {
519
+ console.error(` āŒ Error: ${e.message || e}`);
520
+ return [false, e];
521
+ }
522
+ }
523
+
524
+ /**
525
+ * Test TTS streaming
526
+ */
527
+ async function testStreamSpeech(
528
+ voiceId: string | null
529
+ ): Promise<[boolean, any]> {
530
+ console.log("šŸ“” TTS Streaming Test");
531
+
532
+ if (!voiceId) {
533
+ console.log(" āš ļø No voice ID available");
534
+ return [false, null];
535
+ }
536
+
537
+ try {
538
+ const { Supertone } = await import("../src/index.js");
539
+ const models = await import("../src/models/index.js");
540
+ const client = new Supertone({ apiKey: API_KEY });
541
+
542
+ const testText = "Testing streaming speech synthesis.";
543
+ console.log(` šŸ” Streaming speech: "${testText}"`);
544
+ console.log(" āš ļø This test consumes credits!");
545
+
546
+ const response = await client.textToSpeech.streamSpeech({
547
+ voiceId,
548
+ apiConvertTextToSpeechUsingCharacterRequest: {
549
+ text: testText,
550
+ language: models.APIConvertTextToSpeechUsingCharacterRequestLanguage.En,
551
+ outputFormat:
552
+ models.APIConvertTextToSpeechUsingCharacterRequestOutputFormat.Wav,
553
+ },
554
+ });
555
+
556
+ console.log(` āœ… Stream started successfully`);
557
+
558
+ return [true, response];
559
+ } catch (e: any) {
560
+ console.error(` āŒ Error: ${e.message || e}`);
561
+ return [false, e];
562
+ }
563
+ }
564
+
565
+ /**
566
+ * Test voice-specific usage retrieval
567
+ */
568
+ async function testGetVoiceUsage(): Promise<[boolean, any]> {
569
+ console.log("šŸŽ¤ Voice Usage Test");
570
+
571
+ try {
572
+ const { Supertone } = await import("../src/index.js");
573
+ const client = new Supertone({ apiKey: API_KEY });
574
+
575
+ const endDate = new Date();
576
+ const startDate = new Date(endDate.getTime() - 7 * 24 * 60 * 60 * 1000);
577
+
578
+ console.log(
579
+ ` šŸ” Retrieving voice usage from ${
580
+ startDate.toISOString().split("T")[0]
581
+ } to ${endDate.toISOString().split("T")[0]}...`
582
+ );
583
+
584
+ const response = await client.usage.getVoiceUsage({
585
+ startDate: startDate.toISOString().split("T")[0],
586
+ endDate: endDate.toISOString().split("T")[0],
587
+ });
588
+
589
+ console.log(
590
+ ` āœ… Success: ${response.usages?.length || 0} voice usage records`
591
+ );
592
+
593
+ if (response.usages && response.usages.length > 0) {
594
+ for (const usage of response.usages.slice(0, 5)) {
595
+ const voiceName =
596
+ usage.name || `Voice ${usage.voiceId?.substring(0, 8) || "Unknown"}`;
597
+ console.log(
598
+ ` šŸŽ¤ ${voiceName}: ${usage.totalMinutesUsed?.toFixed(2)}min`
599
+ );
600
+ console.log(` Voice ID: ${usage.voiceId}`);
601
+ if (usage.language) {
602
+ console.log(` Language: ${usage.language}`);
603
+ }
604
+ }
605
+ } else {
606
+ console.log(" šŸ“ No voice usage records for this period");
607
+ }
608
+
609
+ return [true, response];
610
+ } catch (e: any) {
611
+ console.error(` āŒ Error: ${e.message || e}`);
612
+ return [false, e];
613
+ }
614
+ }
615
+
616
+ /**
617
+ * Test custom voice search
618
+ */
619
+ async function testSearchCustomVoices(): Promise<[boolean, any]> {
620
+ console.log("šŸ” Custom Voice Search Test");
621
+
622
+ try {
623
+ const { Supertone } = await import("../src/index.js");
624
+ const client = new Supertone({ apiKey: API_KEY });
625
+
626
+ console.log(" šŸ” Searching custom voices...");
627
+ const response = await client.customVoices.searchCustomVoices({
628
+ pageSize: 10,
629
+ });
630
+
631
+ console.log(
632
+ ` āœ… Search success: ${response.items?.length || 0} custom voices`
633
+ );
634
+
635
+ if (response.items) {
636
+ for (const voice of response.items) {
637
+ console.log(` šŸŽ¤ ${voice.name} (${voice.voiceId})`);
638
+ console.log(` Description: ${voice.description}`);
639
+ }
640
+ }
641
+
642
+ return [true, response];
643
+ } catch (e: any) {
644
+ console.error(` āŒ Error: ${e.message || e}`);
645
+ return [false, e];
646
+ }
647
+ }
648
+
649
+ /**
650
+ * Test custom voice detail retrieval
651
+ */
652
+ async function testGetCustomVoice(
653
+ voiceId: string | null
654
+ ): Promise<[boolean, any]> {
655
+ console.log("šŸ“„ Custom Voice Detail Test");
656
+
657
+ if (!voiceId) {
658
+ console.log(" āš ļø No custom voice ID available");
659
+ return [false, null];
660
+ }
661
+
662
+ try {
663
+ const { Supertone } = await import("../src/index.js");
664
+ const client = new Supertone({ apiKey: API_KEY });
665
+
666
+ console.log(` šŸ” Retrieving custom voice '${voiceId}' details...`);
667
+ const response = await client.customVoices.getCustomVoice({ voiceId });
668
+
669
+ console.log(` āœ… Success:`);
670
+ console.log(` Name: ${response.name}`);
671
+ console.log(` ID: ${response.voiceId}`);
672
+ console.log(` Description: ${response.description}`);
673
+
674
+ return [true, response];
675
+ } catch (e: any) {
676
+ logDetailedError(e, "Get custom voice");
677
+ return [false, e];
678
+ }
679
+ }
680
+
681
+ /**
682
+ * Test custom voice creation
683
+ */
684
+ async function testCreateClonedVoice(): Promise<[boolean, any]> {
685
+ console.log("šŸŽØ Custom Voice Creation Test");
686
+
687
+ // File is in custom_test directory
688
+ const audioFilePath = path.join(__dirname, "voice_sample.wav");
689
+
690
+ if (!fs.existsSync(audioFilePath)) {
691
+ console.log(` āŒ Audio file not found: ${audioFilePath}`);
692
+ console.log(` ā­ļø Skipping test (not a failure)`);
693
+ return [true, null]; // Return success with null to skip, not fail
694
+ }
695
+
696
+ console.log(` šŸ“ Using audio file: ${audioFilePath}`);
697
+
698
+ try {
699
+ const { Supertone } = await import("../src/index.js");
700
+ const client = new Supertone({ apiKey: API_KEY });
701
+
702
+ const stats = fs.statSync(audioFilePath);
703
+ const fileSize = stats.size;
704
+ const maxSize = 3 * 1024 * 1024; // 3MB
705
+
706
+ console.log(
707
+ ` šŸ“ File size: ${fileSize.toLocaleString()} bytes (${(
708
+ fileSize /
709
+ 1024 /
710
+ 1024
711
+ ).toFixed(2)} MB)`
712
+ );
713
+
714
+ if (fileSize > maxSize) {
715
+ console.log(
716
+ ` āŒ File exceeds 3MB limit: ${(fileSize / 1024 / 1024).toFixed(2)} MB`
717
+ );
718
+ return [false, null];
719
+ }
720
+
721
+ const timestamp = new Date()
722
+ .toLocaleString("en-US", {
723
+ month: "2-digit",
724
+ day: "2-digit",
725
+ hour: "2-digit",
726
+ minute: "2-digit",
727
+ hour12: false,
728
+ })
729
+ .replace(/[/, :]/g, "");
730
+ const voiceName = `Test Sample Voice ${timestamp}`;
731
+ const voiceDescription = `Test custom voice created at ${new Date().toISOString()}`;
732
+
733
+ console.log(` šŸ” Creating custom voice...`);
734
+ console.log(` File: ${audioFilePath}`);
735
+ console.log(` Name: ${voiceName}`);
736
+ console.log(` Description: ${voiceDescription}`);
737
+ console.log(
738
+ " āš ļø This test consumes credits and creates actual custom voice!"
739
+ );
740
+
741
+ const audioContent = fs.readFileSync(audioFilePath);
742
+
743
+ const response = await client.customVoices.createClonedVoice({
744
+ files: {
745
+ fileName: "voice_sample.wav",
746
+ content: audioContent,
747
+ },
748
+ name: voiceName,
749
+ description: voiceDescription,
750
+ });
751
+
752
+ console.log(` āœ… Custom voice creation request successful!`);
753
+ console.log(` Voice ID: ${response.voiceId}`);
754
+
755
+ return [true, response];
756
+ } catch (e: any) {
757
+ console.error(` āŒ Error: ${e.message || e}`);
758
+ return [false, e];
759
+ }
760
+ }
761
+
762
+ /**
763
+ * Test custom voice update
764
+ */
765
+ async function testEditCustomVoice(
766
+ voiceId: string | null
767
+ ): Promise<[boolean, any]> {
768
+ console.log("āœļø Custom Voice Update Test");
769
+
770
+ if (!voiceId) {
771
+ console.log(" āš ļø No custom voice ID available");
772
+ return [false, null];
773
+ }
774
+
775
+ try {
776
+ const { Supertone } = await import("../src/index.js");
777
+ const client = new Supertone({ apiKey: API_KEY });
778
+
779
+ const timestamp = new Date().toISOString();
780
+ const testName = `Updated Test Voice ${timestamp}`;
781
+ const testDescription = `Updated description at ${timestamp}`;
782
+
783
+ console.log(` šŸ”„ Updating custom voice '${voiceId}'...`);
784
+ console.log(` New name: ${testName}`);
785
+ console.log(` New description: ${testDescription}`);
786
+
787
+ const response = await client.customVoices.editCustomVoice({
788
+ voiceId,
789
+ updateClonedVoiceRequest: {
790
+ name: testName,
791
+ description: testDescription,
792
+ },
793
+ });
794
+
795
+ console.log(` āœ… Custom voice updated successfully`);
796
+ console.log(` Name: ${response.name}`);
797
+ console.log(` Description: ${response.description}`);
798
+
799
+ return [true, response];
800
+ } catch (e: any) {
801
+ console.error(` āŒ Error: ${e.message || e}`);
802
+ return [false, e];
803
+ }
804
+ }
805
+
806
+ /**
807
+ * Test custom voice deletion
808
+ */
809
+ async function testDeleteCustomVoice(
810
+ voiceId: string | null
811
+ ): Promise<[boolean, any]> {
812
+ console.log("šŸ—‘ļø Custom Voice Deletion Test");
813
+
814
+ if (!voiceId) {
815
+ console.log(" āš ļø No custom voice ID available");
816
+ return [false, null];
817
+ }
818
+
819
+ try {
820
+ const { Supertone } = await import("../src/index.js");
821
+ const client = new Supertone({ apiKey: API_KEY });
822
+
823
+ console.log(` šŸ” Deleting custom voice '${voiceId}'...`);
824
+ console.log(" āš ļø This test permanently deletes the custom voice!");
825
+
826
+ const response = await client.customVoices.deleteCustomVoice({ voiceId });
827
+
828
+ console.log(` āœ… Custom voice deleted successfully`);
829
+
830
+ return [true, response];
831
+ } catch (e: any) {
832
+ console.error(` āŒ Error: ${e.message || e}`);
833
+ return [false, e];
834
+ }
835
+ }
836
+
837
+ /**
838
+ * Test TTS with long text (auto-chunking at SDK level)
839
+ */
840
+ async function testCreateSpeechLongText(
841
+ voiceId: string | null
842
+ ): Promise<[boolean, any]> {
843
+ console.log("šŸ“œ Long Text Auto-Chunking TTS Test (300+ chars)");
844
+
845
+ if (!voiceId) {
846
+ console.log(" āš ļø No voice ID available");
847
+ return [false, null];
848
+ }
849
+
850
+ try {
851
+ const { Supertone } = await import("../src/index.js");
852
+ const models = await import("../src/models/index.js");
853
+ const client = new Supertone({ apiKey: API_KEY });
854
+
855
+ const longText = `
856
+ Hello! This is a very long text auto-chunking TTS test exceeding 300 characters.
857
+ The newly implemented SDK automatically divides long text into multiple chunks for processing.
858
+ Real-time streaming text-to-speech technology plays a crucial role in modern AI applications.
859
+ It is an indispensable technology especially in conversational services, live broadcasting, and real-time translation services.
860
+ Through the auto-chunking feature, long texts are naturally divided into multiple small segments for processing.
861
+ Each segment is intelligently segmented considering sentence and word boundaries, enabling natural speech generation.
862
+ Now users don't need to worry about text length, as the SDK automatically handles everything.
863
+ `.trim();
864
+
865
+ const actualLength = longText.length;
866
+ console.log(
867
+ ` šŸ“ Test text length: ${actualLength} characters (exceeds 300)`
868
+ );
869
+ console.log(` šŸ”§ Auto-chunking enabled for text segmentation`);
870
+
871
+ console.log(` šŸ” Converting long text with voice '${voiceId}'...`);
872
+ console.log(" āš ļø This test consumes credits!");
873
+ console.log(" ✨ SDK automatically chunks and processes the text");
874
+
875
+ const response = await client.textToSpeech.createSpeech({
876
+ voiceId,
877
+ apiConvertTextToSpeechUsingCharacterRequest: {
878
+ text: longText,
879
+ language: models.APIConvertTextToSpeechUsingCharacterRequestLanguage.En,
880
+ outputFormat:
881
+ models.APIConvertTextToSpeechUsingCharacterRequestOutputFormat.Wav,
882
+ style: "neutral",
883
+ model: "sona_speech_1",
884
+ },
885
+ });
886
+
887
+ if (response.result) {
888
+ let audioSize = 0;
889
+ let audioData: Uint8Array;
890
+
891
+ if (response.result instanceof Uint8Array) {
892
+ audioSize = response.result.length;
893
+ audioData = response.result;
894
+ } else if (response.result instanceof Blob) {
895
+ audioSize = response.result.size;
896
+ audioData = new Uint8Array(await response.result.arrayBuffer());
897
+ } else if (
898
+ typeof response.result === "object" &&
899
+ "getReader" in response.result
900
+ ) {
901
+ // ReadableStream
902
+ audioData = await extractAudioData(response);
903
+ audioSize = audioData.length;
904
+ } else {
905
+ audioData = new Uint8Array(0);
906
+ }
907
+
908
+ console.log(
909
+ ` āœ… Auto-chunking TTS success: ${audioSize} bytes audio generated`
910
+ );
911
+ console.log(` šŸŽÆ Long text successfully chunked and processed!`);
912
+
913
+ const outputFile = "test_auto_chunking_speech_output.wav";
914
+ fs.writeFileSync(outputFile, audioData);
915
+ console.log(` šŸ’¾ Auto-chunked audio file saved: ${outputFile}`);
916
+
917
+ const estimatedChunks = Math.ceil(actualLength / 300);
918
+ console.log(
919
+ ` šŸ“Š Estimated chunks: ${estimatedChunks} (based on text length)`
920
+ );
921
+ }
922
+
923
+ return [true, response];
924
+ } catch (e: any) {
925
+ console.error(` āŒ Error: ${e.message || e}`);
926
+ return [false, e];
927
+ }
928
+ }
929
+
930
+ /**
931
+ * Test TTS streaming with long text
932
+ */
933
+ async function testStreamSpeechLongText(
934
+ voiceId: string | null
935
+ ): Promise<[boolean, any]> {
936
+ console.log("šŸ“” Long Text Streaming TTS Test");
937
+
938
+ if (!voiceId) {
939
+ console.log(" āš ļø No voice ID available");
940
+ return [false, null];
941
+ }
942
+
943
+ try {
944
+ const { Supertone } = await import("../src/index.js");
945
+ const models = await import("../src/models/index.js");
946
+ const client = new Supertone({ apiKey: API_KEY });
947
+
948
+ const longText = `
949
+ Hello! This is a long text streaming test.
950
+ The SDK automatically chunks and streams the audio in real-time.
951
+ This enables efficient processing of longer content without waiting for complete generation.
952
+ `
953
+ .trim()
954
+ .repeat(3);
955
+
956
+ console.log(` šŸ” Streaming long text with voice '${voiceId}'...`);
957
+ console.log(` Text length: ${longText.length} characters`);
958
+ console.log(" āš ļø This test consumes credits!");
959
+
960
+ const response = await client.textToSpeech.streamSpeech({
961
+ voiceId,
962
+ apiConvertTextToSpeechUsingCharacterRequest: {
963
+ text: longText,
964
+ language: models.APIConvertTextToSpeechUsingCharacterRequestLanguage.En,
965
+ outputFormat:
966
+ models.APIConvertTextToSpeechUsingCharacterRequestOutputFormat.Wav,
967
+ },
968
+ });
969
+
970
+ console.log(` āœ… Stream started successfully`);
971
+
972
+ return [true, response];
973
+ } catch (e: any) {
974
+ console.error(` āŒ Error: ${e.message || e}`);
975
+ return [false, e];
976
+ }
977
+ }
978
+
979
+ /**
980
+ * Test TTS with voice settings
981
+ */
982
+ async function testCreateSpeechWithVoiceSettings(
983
+ voiceId: string | null
984
+ ): Promise<[boolean, any]> {
985
+ console.log("šŸŽ›ļø TTS with Voice Settings Test");
986
+
987
+ if (!voiceId) {
988
+ console.log(" āš ļø No voice ID available");
989
+ return [false, null];
990
+ }
991
+
992
+ try {
993
+ const { Supertone } = await import("../src/index.js");
994
+ const models = await import("../src/models/index.js");
995
+ const client = new Supertone({ apiKey: API_KEY });
996
+
997
+ const voiceSettings = {
998
+ pitchShift: 0.95,
999
+ pitchVariance: 1.1,
1000
+ speed: 0.9,
1001
+ };
1002
+
1003
+ console.log(
1004
+ ` šŸ” TTS conversion with voice settings using voice '${voiceId}'...`
1005
+ );
1006
+ console.log(
1007
+ ` Settings: pitchShift=${voiceSettings.pitchShift}, speed=${voiceSettings.speed}`
1008
+ );
1009
+ console.log(" āš ļø This test consumes credits!");
1010
+
1011
+ const response = await client.textToSpeech.createSpeech({
1012
+ voiceId,
1013
+ apiConvertTextToSpeechUsingCharacterRequest: {
1014
+ text: "Hello world! This is a voice settings test. You can hear the adjusted pitch and speed.",
1015
+ language: models.APIConvertTextToSpeechUsingCharacterRequestLanguage.En,
1016
+ outputFormat:
1017
+ models.APIConvertTextToSpeechUsingCharacterRequestOutputFormat.Wav,
1018
+ style: "neutral",
1019
+ model: "sona_speech_1",
1020
+ voiceSettings,
1021
+ includePhonemes: false,
1022
+ },
1023
+ });
1024
+
1025
+ console.log(` āœ… TTS with voice settings success`);
1026
+
1027
+ if (response.result) {
1028
+ const outputFile = "test_voice_settings_speech_output.wav";
1029
+ const audioData = await extractAudioData(response);
1030
+
1031
+ fs.writeFileSync(outputFile, audioData);
1032
+ console.log(` šŸ’¾ Voice settings audio file saved: ${outputFile}`);
1033
+ }
1034
+
1035
+ return [true, response];
1036
+ } catch (e: any) {
1037
+ console.error(` āŒ Error: ${e.message || e}`);
1038
+ return [false, e];
1039
+ }
1040
+ }
1041
+
1042
+ /**
1043
+ * Test TTS with phoneme information
1044
+ */
1045
+ async function testCreateSpeechWithPhonemes(
1046
+ voiceId: string | null
1047
+ ): Promise<[boolean, any]> {
1048
+ console.log("šŸ”¤ TTS with Phoneme Information Test");
1049
+
1050
+ if (!voiceId) {
1051
+ console.log(" āš ļø No voice ID available");
1052
+ return [false, null];
1053
+ }
1054
+
1055
+ try {
1056
+ const { Supertone } = await import("../src/index.js");
1057
+ const models = await import("../src/models/index.js");
1058
+ const client = new Supertone({ apiKey: API_KEY });
1059
+
1060
+ console.log(
1061
+ ` šŸ” TTS conversion with phonemes using voice '${voiceId}'...`
1062
+ );
1063
+ console.log(" āš ļø This test consumes credits!");
1064
+
1065
+ const response = await client.textToSpeech.createSpeech({
1066
+ voiceId,
1067
+ apiConvertTextToSpeechUsingCharacterRequest: {
1068
+ text: "Hello world! This is a phoneme timing test.",
1069
+ language: models.APIConvertTextToSpeechUsingCharacterRequestLanguage.En,
1070
+ outputFormat:
1071
+ models.APIConvertTextToSpeechUsingCharacterRequestOutputFormat.Wav,
1072
+ style: "neutral",
1073
+ model: "sona_speech_1",
1074
+ includePhonemes: true,
1075
+ },
1076
+ });
1077
+
1078
+ console.log(` āœ… TTS with phonemes success`);
1079
+
1080
+ if (response.result) {
1081
+ const outputFile = "test_phoneme_speech_output.wav";
1082
+
1083
+ // Check if response is JSON with phonemes data
1084
+ if (
1085
+ typeof response.result === "object" &&
1086
+ "audioBase64" in response.result
1087
+ ) {
1088
+ const audioData = await extractAudioData(response);
1089
+ fs.writeFileSync(outputFile, audioData);
1090
+ console.log(` šŸ’¾ Phoneme audio file saved: ${outputFile}`);
1091
+
1092
+ // Display phoneme information as JSON
1093
+ const phonemes = (response.result as any).phonemes;
1094
+ if (phonemes) {
1095
+ console.log(` šŸ“Š Phoneme data (JSON):`);
1096
+ console.log(JSON.stringify(phonemes, null, 2));
1097
+ console.log(` šŸ“ˆ Summary:`);
1098
+ console.log(` Symbols count: ${phonemes.symbols?.length || 0}`);
1099
+ console.log(
1100
+ ` Durations count: ${phonemes.durations_seconds?.length || 0}`
1101
+ );
1102
+ console.log(
1103
+ ` Start times count: ${
1104
+ phonemes.start_times_seconds?.length || 0
1105
+ }`
1106
+ );
1107
+ if (phonemes.symbols && phonemes.symbols.length > 0) {
1108
+ console.log(
1109
+ ` First 5 symbols: ${phonemes.symbols.slice(0, 5).join(", ")}`
1110
+ );
1111
+ }
1112
+ }
1113
+ } else {
1114
+ // Binary audio without phonemes
1115
+ const audioData = await extractAudioData(response);
1116
+ fs.writeFileSync(outputFile, audioData);
1117
+ console.log(` šŸ’¾ Phoneme audio file saved: ${outputFile}`);
1118
+ }
1119
+ }
1120
+
1121
+ return [true, response];
1122
+ } catch (e: any) {
1123
+ console.error(` āŒ Error: ${e.message || e}`);
1124
+ return [false, e];
1125
+ }
1126
+ }
1127
+
1128
+ /**
1129
+ * Test TTS streaming with phonemes
1130
+ */
1131
+ async function testStreamSpeechWithPhonemes(
1132
+ voiceId: string | null
1133
+ ): Promise<[boolean, any]> {
1134
+ console.log("šŸ“” TTS Streaming with Phonemes Test");
1135
+
1136
+ if (!voiceId) {
1137
+ console.log(" āš ļø No voice ID available");
1138
+ return [false, null];
1139
+ }
1140
+
1141
+ try {
1142
+ const { Supertone } = await import("../src/index.js");
1143
+ const models = await import("../src/models/index.js");
1144
+ const client = new Supertone({ apiKey: API_KEY });
1145
+
1146
+ console.log(
1147
+ ` šŸ” Streaming speech with phonemes for voice '${voiceId}'...`
1148
+ );
1149
+ console.log(" āš ļø This test consumes credits!");
1150
+
1151
+ const response = await client.textToSpeech.streamSpeech({
1152
+ voiceId,
1153
+ apiConvertTextToSpeechUsingCharacterRequest: {
1154
+ text: "Streaming with phoneme timing information.",
1155
+ language: models.APIConvertTextToSpeechUsingCharacterRequestLanguage.En,
1156
+ outputFormat:
1157
+ models.APIConvertTextToSpeechUsingCharacterRequestOutputFormat.Wav,
1158
+ includePhonemes: true,
1159
+ },
1160
+ });
1161
+
1162
+ console.log(` āœ… Stream with phonemes started successfully`);
1163
+
1164
+ return [true, response];
1165
+ } catch (e: any) {
1166
+ console.error(` āŒ Error: ${e.message || e}`);
1167
+ return [false, e];
1168
+ }
1169
+ }
1170
+
1171
+ /**
1172
+ * Test duration prediction with voice settings
1173
+ */
1174
+ async function testPredictDurationWithVoiceSettings(
1175
+ voiceId: string | null
1176
+ ): Promise<[boolean, any]> {
1177
+ console.log("ā±ļø Duration Prediction with Voice Settings Test");
1178
+
1179
+ if (!voiceId) {
1180
+ console.log(" āš ļø No voice ID available");
1181
+ return [false, null];
1182
+ }
1183
+
1184
+ try {
1185
+ const { Supertone } = await import("../src/index.js");
1186
+ const models = await import("../src/models/index.js");
1187
+ const client = new Supertone({ apiKey: API_KEY });
1188
+
1189
+ const voiceSettings = {
1190
+ speed: 0.8,
1191
+ };
1192
+
1193
+ console.log(
1194
+ ` šŸ” Predicting duration with voice settings for voice '${voiceId}'...`
1195
+ );
1196
+ console.log(` Settings: speed=${voiceSettings.speed}`);
1197
+
1198
+ const response = await client.textToSpeech.predictDuration({
1199
+ voiceId,
1200
+ predictTTSDurationUsingCharacterRequest: {
1201
+ text: "This is a duration test with adjusted speed.",
1202
+ language: models.PredictTTSDurationUsingCharacterRequestLanguage.En,
1203
+ voiceSettings,
1204
+ },
1205
+ });
1206
+
1207
+ console.log(` āœ… Predicted duration: ${response.duration}s`);
1208
+
1209
+ return [true, response];
1210
+ } catch (e: any) {
1211
+ console.error(` āŒ Error: ${e.message || e}`);
1212
+ return [false, e];
1213
+ }
1214
+ }
1215
+
1216
+ /**
1217
+ * Test TTS streaming with voice settings
1218
+ */
1219
+ async function testStreamSpeechWithVoiceSettings(
1220
+ voiceId: string | null
1221
+ ): Promise<[boolean, any]> {
1222
+ console.log("šŸ“” TTS Streaming with Voice Settings Test");
1223
+
1224
+ if (!voiceId) {
1225
+ console.log(" āš ļø No voice ID available");
1226
+ return [false, null];
1227
+ }
1228
+
1229
+ try {
1230
+ const { Supertone } = await import("../src/index.js");
1231
+ const models = await import("../src/models/index.js");
1232
+ const client = new Supertone({ apiKey: API_KEY });
1233
+
1234
+ const voiceSettings = {
1235
+ pitchShift: 1.05,
1236
+ speed: 1.1,
1237
+ };
1238
+
1239
+ console.log(
1240
+ ` šŸ” Streaming speech with voice settings for voice '${voiceId}'...`
1241
+ );
1242
+ console.log(
1243
+ ` Settings: pitchShift=${voiceSettings.pitchShift}, speed=${voiceSettings.speed}`
1244
+ );
1245
+ console.log(" āš ļø This test consumes credits!");
1246
+
1247
+ const response = await client.textToSpeech.streamSpeech({
1248
+ voiceId,
1249
+ apiConvertTextToSpeechUsingCharacterRequest: {
1250
+ text: "Streaming with adjusted voice settings.",
1251
+ language: models.APIConvertTextToSpeechUsingCharacterRequestLanguage.En,
1252
+ outputFormat:
1253
+ models.APIConvertTextToSpeechUsingCharacterRequestOutputFormat.Wav,
1254
+ voiceSettings,
1255
+ },
1256
+ });
1257
+
1258
+ console.log(` āœ… Stream with voice settings started successfully`);
1259
+
1260
+ return [true, response];
1261
+ } catch (e: any) {
1262
+ console.error(` āŒ Error: ${e.message || e}`);
1263
+ return [false, e];
1264
+ }
1265
+ }
1266
+
1267
+ /**
1268
+ * Test MP3 format TTS
1269
+ */
1270
+ async function testCreateSpeechMp3(
1271
+ voiceId: string | null
1272
+ ): Promise<[boolean, any]> {
1273
+ console.log("šŸŽ¤ MP3 Format TTS Test");
1274
+
1275
+ if (!voiceId) {
1276
+ console.log(" āš ļø No voice ID available");
1277
+ return [false, null];
1278
+ }
1279
+
1280
+ try {
1281
+ const { Supertone } = await import("../src/index.js");
1282
+ const models = await import("../src/models/index.js");
1283
+ const client = new Supertone({ apiKey: API_KEY });
1284
+
1285
+ console.log(` šŸ” MP3 TTS conversion with voice '${voiceId}'...`);
1286
+ console.log(" āš ļø This test consumes credits!");
1287
+
1288
+ const response = await client.textToSpeech.createSpeech({
1289
+ voiceId,
1290
+ apiConvertTextToSpeechUsingCharacterRequest: {
1291
+ text: "Hello! This is an MP3 format SDK test. Let's verify if it works correctly.",
1292
+ language: models.APIConvertTextToSpeechUsingCharacterRequestLanguage.En,
1293
+ outputFormat:
1294
+ models.APIConvertTextToSpeechUsingCharacterRequestOutputFormat.Mp3,
1295
+ style: "neutral",
1296
+ model: "sona_speech_1",
1297
+ },
1298
+ });
1299
+
1300
+ console.log(` āœ… MP3 TTS conversion success`);
1301
+
1302
+ if (response.result) {
1303
+ const outputFile = "test_create_speech_output.mp3";
1304
+ const audioData = await extractAudioData(response);
1305
+
1306
+ fs.writeFileSync(outputFile, audioData);
1307
+ console.log(` šŸ’¾ MP3 audio file saved: ${outputFile}`);
1308
+
1309
+ // Verify MP3 header
1310
+ const header = audioData.slice(0, 10);
1311
+ if (header[0] === 0x49 && header[1] === 0x44 && header[2] === 0x33) {
1312
+ console.log(` āœ… Valid MP3 file generated (ID3 tag)`);
1313
+ } else if (
1314
+ (header[0] === 0xff && header[1] === 0xfb) ||
1315
+ (header[0] === 0xff && header[1] === 0xfa)
1316
+ ) {
1317
+ console.log(` āœ… Valid MP3 file generated (MPEG frame)`);
1318
+ } else {
1319
+ console.log(
1320
+ ` šŸ“„ MP3 header: ${Array.from(header.slice(0, 10))
1321
+ .map((b) => b.toString(16).padStart(2, "0"))
1322
+ .join(" ")} (needs verification)`
1323
+ );
1324
+ }
1325
+ }
1326
+
1327
+ return [true, response];
1328
+ } catch (e: any) {
1329
+ console.error(` āŒ Error: ${e.message || e}`);
1330
+ return [false, e];
1331
+ }
1332
+ }
1333
+
1334
+ /**
1335
+ * Test MP3 format with long text
1336
+ */
1337
+ async function testCreateSpeechLongTextMp3(
1338
+ voiceId: string | null
1339
+ ): Promise<[boolean, any]> {
1340
+ console.log("šŸ“œ Long Text MP3 Auto-Chunking TTS Test (300+ chars)");
1341
+
1342
+ if (!voiceId) {
1343
+ console.log(" āš ļø No voice ID available");
1344
+ return [false, null];
1345
+ }
1346
+
1347
+ try {
1348
+ const { Supertone } = await import("../src/index.js");
1349
+ const models = await import("../src/models/index.js");
1350
+ const client = new Supertone({ apiKey: API_KEY });
1351
+
1352
+ const longText = `
1353
+ Hello! This is a very long text MP3 auto-chunking TTS test exceeding 300 characters.
1354
+ The newly implemented SDK automatically divides long text into multiple chunks for processing.
1355
+ Real-time streaming text-to-speech technology plays a crucial role in modern AI applications.
1356
+ It is an indispensable technology especially in conversational services, live broadcasting, and real-time translation services.
1357
+ Through the auto-chunking feature, long texts are naturally divided into multiple small segments for processing.
1358
+ Each segment is intelligently segmented considering sentence and word boundaries, enabling natural speech generation.
1359
+ Now users don't need to worry about text length or output format, as the SDK automatically handles everything in MP3 format too.
1360
+ `.trim();
1361
+
1362
+ const actualLength = longText.length;
1363
+ console.log(
1364
+ ` šŸ“ Test text length: ${actualLength} characters (exceeds 300)`
1365
+ );
1366
+ console.log(` šŸ”§ Auto-chunking enabled for MP3 format`);
1367
+
1368
+ console.log(` šŸ” Converting long text to MP3 with voice '${voiceId}'...`);
1369
+ console.log(" āš ļø This test consumes credits!");
1370
+
1371
+ const response = await client.textToSpeech.createSpeech({
1372
+ voiceId,
1373
+ apiConvertTextToSpeechUsingCharacterRequest: {
1374
+ text: longText,
1375
+ language: models.APIConvertTextToSpeechUsingCharacterRequestLanguage.En,
1376
+ outputFormat:
1377
+ models.APIConvertTextToSpeechUsingCharacterRequestOutputFormat.Mp3,
1378
+ style: "neutral",
1379
+ model: "sona_speech_1",
1380
+ },
1381
+ });
1382
+
1383
+ console.log(` āœ… MP3 auto-chunking TTS success`);
1384
+
1385
+ if (response.result) {
1386
+ const outputFile = "test_auto_chunking_speech_output.mp3";
1387
+ const audioData = await extractAudioData(response);
1388
+
1389
+ fs.writeFileSync(outputFile, audioData);
1390
+ console.log(` šŸ’¾ Auto-chunked MP3 audio file saved: ${outputFile}`);
1391
+ }
1392
+
1393
+ return [true, response];
1394
+ } catch (e: any) {
1395
+ logDetailedError(e, "MP3 long text auto-chunking");
1396
+ return [false, e];
1397
+ }
1398
+ }
1399
+
1400
+ /**
1401
+ * Test MP3 streaming
1402
+ */
1403
+ async function testStreamSpeechMp3(
1404
+ voiceId: string | null
1405
+ ): Promise<[boolean, any]> {
1406
+ console.log("šŸ“” MP3 Streaming Test");
1407
+
1408
+ if (!voiceId) {
1409
+ console.log(" āš ļø No voice ID available");
1410
+ return [false, null];
1411
+ }
1412
+
1413
+ try {
1414
+ const { Supertone } = await import("../src/index.js");
1415
+ const models = await import("../src/models/index.js");
1416
+ const client = new Supertone({ apiKey: API_KEY });
1417
+
1418
+ console.log(` šŸ” Streaming MP3 speech with voice '${voiceId}'...`);
1419
+ console.log(" āš ļø This test consumes credits!");
1420
+
1421
+ const response = await client.textToSpeech.streamSpeech({
1422
+ voiceId,
1423
+ apiConvertTextToSpeechUsingCharacterRequest: {
1424
+ text: "Testing MP3 streaming speech synthesis.",
1425
+ language: models.APIConvertTextToSpeechUsingCharacterRequestLanguage.En,
1426
+ outputFormat:
1427
+ models.APIConvertTextToSpeechUsingCharacterRequestOutputFormat.Mp3,
1428
+ },
1429
+ });
1430
+
1431
+ console.log(` āœ… MP3 stream started successfully`);
1432
+
1433
+ return [true, response];
1434
+ } catch (e: any) {
1435
+ console.error(` āŒ Error: ${e.message || e}`);
1436
+ return [false, e];
1437
+ }
1438
+ }
1439
+
1440
+ /**
1441
+ * Test MP3 streaming with long text
1442
+ */
1443
+ async function testStreamSpeechLongTextMp3(
1444
+ voiceId: string | null
1445
+ ): Promise<[boolean, any]> {
1446
+ console.log("šŸ“” Long Text MP3 Streaming Test");
1447
+
1448
+ if (!voiceId) {
1449
+ console.log(" āš ļø No voice ID available");
1450
+ return [false, null];
1451
+ }
1452
+
1453
+ try {
1454
+ const { Supertone } = await import("../src/index.js");
1455
+ const models = await import("../src/models/index.js");
1456
+ const client = new Supertone({ apiKey: API_KEY });
1457
+
1458
+ const longText = `
1459
+ Hello! This is a long text MP3 streaming test.
1460
+ The SDK automatically chunks and streams the MP3 audio in real-time.
1461
+ This enables efficient processing of longer content without waiting for complete generation.
1462
+ `
1463
+ .trim()
1464
+ .repeat(3);
1465
+
1466
+ console.log(` šŸ” Streaming long text MP3 with voice '${voiceId}'...`);
1467
+ console.log(` Text length: ${longText.length} characters`);
1468
+ console.log(" āš ļø This test consumes credits!");
1469
+
1470
+ const response = await client.textToSpeech.streamSpeech({
1471
+ voiceId,
1472
+ apiConvertTextToSpeechUsingCharacterRequest: {
1473
+ text: longText,
1474
+ language: models.APIConvertTextToSpeechUsingCharacterRequestLanguage.En,
1475
+ outputFormat:
1476
+ models.APIConvertTextToSpeechUsingCharacterRequestOutputFormat.Mp3,
1477
+ },
1478
+ });
1479
+
1480
+ console.log(` āœ… Long text MP3 stream started successfully`);
1481
+
1482
+ return [true, response];
1483
+ } catch (e: any) {
1484
+ logDetailedError(e, "MP3 long text streaming");
1485
+ return [false, e];
1486
+ }
1487
+ }
1488
+
1489
+ /**
1490
+ * Test TTS with automatic chunking (long text)
1491
+ * Note: Now createSpeech automatically handles chunking for long text
1492
+ */
1493
+ async function testCreateSpeechWithChunking(
1494
+ voiceId: string | null
1495
+ ): Promise<[boolean, any]> {
1496
+ console.log("šŸ“ TTS with Auto-Chunking Test (via createSpeech)");
1497
+
1498
+ if (!voiceId) {
1499
+ console.log(" āš ļø No voice ID available");
1500
+ return [false, null];
1501
+ }
1502
+
1503
+ try {
1504
+ const { Supertone } = await import("../src/index.js");
1505
+ const models = await import("../src/models/index.js");
1506
+ const client = new Supertone({ apiKey: API_KEY });
1507
+
1508
+ // Long text that exceeds typical limits
1509
+ const longText =
1510
+ "This is a longer test text. ".repeat(20) +
1511
+ "It will be automatically chunked and merged.";
1512
+
1513
+ console.log(` šŸ” Creating speech with auto-chunking`);
1514
+ console.log(` Text length: ${longText.length} characters`);
1515
+ console.log(" ✨ Using createSpeech() - automatically chunks internally");
1516
+ console.log(" āš ļø This test consumes credits!");
1517
+
1518
+ // Now just use regular createSpeech - it handles chunking automatically
1519
+ const response = await client.textToSpeech.createSpeech({
1520
+ voiceId,
1521
+ apiConvertTextToSpeechUsingCharacterRequest: {
1522
+ text: longText,
1523
+ language: models.APIConvertTextToSpeechUsingCharacterRequestLanguage.En,
1524
+ outputFormat:
1525
+ models.APIConvertTextToSpeechUsingCharacterRequestOutputFormat.Wav,
1526
+ },
1527
+ });
1528
+
1529
+ console.log(` āœ… Speech created and merged successfully`);
1530
+ console.log(` šŸŽÆ Chunking handled automatically by SDK`);
1531
+
1532
+ return [true, response];
1533
+ } catch (e: any) {
1534
+ logDetailedError(e, "Auto-chunking TTS");
1535
+ return [false, e];
1536
+ }
1537
+ }
1538
+
1539
+ /**
1540
+ * Main test execution
1541
+ */
1542
+ async function main(): Promise<boolean> {
1543
+ console.log("🧪 Real API Integration Test Start");
1544
+ console.log("=".repeat(60));
1545
+ console.log(
1546
+ "āš ļø WARNING: These tests make real API calls and consume credits!"
1547
+ );
1548
+ console.log("=".repeat(60));
1549
+ console.log("");
1550
+
1551
+ const testResults: TestResult = {};
1552
+ let voiceIdForTTS: string | null = null;
1553
+ let customVoiceId: string | null = null;
1554
+ let createdCustomVoiceId: string | null = null;
1555
+
1556
+ // 1. Usage Tests
1557
+ console.log("\nšŸ’° Usage & Credit Tests");
1558
+ console.log("-".repeat(60));
1559
+
1560
+ let [success, result] = await testCreditBalance();
1561
+ testResults["credit_balance"] = success;
1562
+
1563
+ [success, result] = await testGetUsage();
1564
+ testResults["get_usage"] = success;
1565
+
1566
+ [success, result] = await testGetVoiceUsage();
1567
+ testResults["get_voice_usage"] = success;
1568
+
1569
+ // 2. Voice Tests
1570
+ console.log("\nšŸŽµ Voice Tests");
1571
+ console.log("-".repeat(60));
1572
+
1573
+ [success, result] = await testListVoices();
1574
+ testResults["list_voices"] = success;
1575
+ if (success && result.voiceId) {
1576
+ voiceIdForTTS = result.voiceId;
1577
+ }
1578
+
1579
+ [success, result] = await testSearchVoices();
1580
+ testResults["search_voices"] = success;
1581
+
1582
+ [success, result] = await testGetVoice(voiceIdForTTS);
1583
+ testResults["get_voice"] = success;
1584
+
1585
+ // 3. Custom Voice Tests
1586
+ console.log("\nšŸŽØ Custom Voice Tests");
1587
+ console.log("-".repeat(60));
1588
+
1589
+ [success, result] = await testListCustomVoices();
1590
+ testResults["list_custom_voices"] = success;
1591
+ if (success && result.voiceId) {
1592
+ customVoiceId = result.voiceId;
1593
+ }
1594
+
1595
+ [success, result] = await testSearchCustomVoices();
1596
+ testResults["search_custom_voices"] = success;
1597
+
1598
+ [success, result] = await testGetCustomVoice(customVoiceId);
1599
+ testResults["get_custom_voice"] = success;
1600
+
1601
+ // 4. Custom Voice Creation/Edit/Delete Tests
1602
+ console.log("\nšŸŽØ Custom Voice Management Tests");
1603
+ console.log("-".repeat(60));
1604
+ console.log("āš ļø These tests consume credits and modify custom voices!");
1605
+ console.log("");
1606
+
1607
+ [success, result] = await testCreateClonedVoice();
1608
+ testResults["create_cloned_voice"] = success;
1609
+ if (success && result?.voiceId) {
1610
+ createdCustomVoiceId = result.voiceId;
1611
+ }
1612
+
1613
+ if (createdCustomVoiceId) {
1614
+ [success, result] = await testEditCustomVoice(createdCustomVoiceId);
1615
+ testResults["edit_custom_voice"] = success;
1616
+
1617
+ console.log("\nāøļø Pausing before deletion to allow voice to be used...");
1618
+ console.log(
1619
+ "āš ļø Note: In production, ensure voice is no longer needed before deletion"
1620
+ );
1621
+
1622
+ [success, result] = await testDeleteCustomVoice(createdCustomVoiceId);
1623
+ testResults["delete_custom_voice"] = success;
1624
+ } else {
1625
+ console.log("ā­ļø Skipping edit/delete tests (no custom voice created)");
1626
+ testResults["edit_custom_voice"] = null;
1627
+ testResults["delete_custom_voice"] = null;
1628
+ }
1629
+
1630
+ // 5. TTS Basic Tests (only if voice ID available)
1631
+ if (voiceIdForTTS) {
1632
+ console.log("\nšŸŽ¤ Text-to-Speech Basic Tests");
1633
+ console.log("-".repeat(60));
1634
+ console.log("āš ļø These tests consume credits!");
1635
+ console.log("");
1636
+
1637
+ [success, result] = await testPredictDuration(voiceIdForTTS);
1638
+ testResults["predict_duration"] = success;
1639
+
1640
+ [success, result] = await testCreateSpeech(voiceIdForTTS);
1641
+ testResults["create_speech_wav"] = success;
1642
+
1643
+ [success, result] = await testStreamSpeech(voiceIdForTTS);
1644
+ testResults["stream_speech"] = success;
1645
+
1646
+ // 6. TTS Long Text Tests
1647
+ console.log("\nšŸ“œ Text-to-Speech Long Text Tests");
1648
+ console.log("-".repeat(60));
1649
+ console.log("āš ļø These tests consume more credits!");
1650
+ console.log("");
1651
+
1652
+ [success, result] = await testCreateSpeechLongText(voiceIdForTTS);
1653
+ testResults["create_speech_long_text"] = success;
1654
+
1655
+ [success, result] = await testStreamSpeechLongText(voiceIdForTTS);
1656
+ testResults["stream_speech_long_text"] = success;
1657
+
1658
+ [success, result] = await testCreateSpeechWithChunking(voiceIdForTTS);
1659
+ testResults["create_speech_chunking"] = success;
1660
+
1661
+ // 7. TTS with Voice Settings Tests
1662
+ console.log("\nšŸŽ›ļø Text-to-Speech with Voice Settings Tests");
1663
+ console.log("-".repeat(60));
1664
+ console.log("āš ļø These tests consume credits!");
1665
+ console.log("");
1666
+
1667
+ [success, result] = await testCreateSpeechWithVoiceSettings(voiceIdForTTS);
1668
+ testResults["create_speech_voice_settings"] = success;
1669
+
1670
+ [success, result] = await testPredictDurationWithVoiceSettings(
1671
+ voiceIdForTTS
1672
+ );
1673
+ testResults["predict_duration_voice_settings"] = success;
1674
+
1675
+ [success, result] = await testStreamSpeechWithVoiceSettings(voiceIdForTTS);
1676
+ testResults["stream_speech_voice_settings"] = success;
1677
+
1678
+ // 8. TTS with Phonemes Tests
1679
+ console.log("\nšŸ”¤ Text-to-Speech with Phonemes Tests");
1680
+ console.log("-".repeat(60));
1681
+ console.log("āš ļø These tests consume credits!");
1682
+ console.log("");
1683
+
1684
+ [success, result] = await testCreateSpeechWithPhonemes(voiceIdForTTS);
1685
+ testResults["create_speech_phonemes"] = success;
1686
+
1687
+ [success, result] = await testStreamSpeechWithPhonemes(voiceIdForTTS);
1688
+ testResults["stream_speech_phonemes"] = success;
1689
+
1690
+ // 9. MP3 Format Tests
1691
+ console.log("\nšŸŽµ MP3 Format Tests");
1692
+ console.log("-".repeat(60));
1693
+ console.log("āš ļø These tests consume credits!");
1694
+ console.log("");
1695
+
1696
+ [success, result] = await testCreateSpeechMp3(voiceIdForTTS);
1697
+ testResults["create_speech_mp3"] = success;
1698
+
1699
+ [success, result] = await testCreateSpeechLongTextMp3(voiceIdForTTS);
1700
+ testResults["create_speech_long_text_mp3"] = success;
1701
+
1702
+ [success, result] = await testStreamSpeechMp3(voiceIdForTTS);
1703
+ testResults["stream_speech_mp3"] = success;
1704
+
1705
+ [success, result] = await testStreamSpeechLongTextMp3(voiceIdForTTS);
1706
+ testResults["stream_speech_long_text_mp3"] = success;
1707
+ }
1708
+
1709
+ // Results Summary
1710
+ console.log("\n" + "=".repeat(60));
1711
+ console.log("🧪 Integration Test Results Summary:");
1712
+ console.log("");
1713
+
1714
+ let passed = 0;
1715
+ let total = 0;
1716
+
1717
+ for (const [testName, testResult] of Object.entries(testResults)) {
1718
+ let status: string;
1719
+ if (testResult === null) {
1720
+ status = "ā­ļø SKIP";
1721
+ } else if (testResult) {
1722
+ status = "āœ… PASS";
1723
+ passed++;
1724
+ total++;
1725
+ } else {
1726
+ status = "āŒ FAIL";
1727
+ total++;
1728
+ }
1729
+
1730
+ console.log(` ${testName}: ${status}`);
1731
+ }
1732
+
1733
+ console.log("");
1734
+ console.log(`Total ${passed}/${total} tests passed`);
1735
+ console.log("");
1736
+
1737
+ if (passed === total) {
1738
+ console.log(
1739
+ "šŸŽ‰ All integration tests passed! SDK works correctly with real API."
1740
+ );
1741
+ console.log("");
1742
+ console.log("āœ… SDK ready for deployment!");
1743
+ } else {
1744
+ console.log("āš ļø Some tests failed. Please check:");
1745
+ console.log(" • API key is valid");
1746
+ console.log(" • Account has sufficient credits");
1747
+ console.log(" • Network connection is stable");
1748
+ }
1749
+
1750
+ console.log("");
1751
+ console.log("šŸ“‹ Tested APIs:");
1752
+ console.log(" • Usage: getCreditBalance, getUsage, getVoiceUsage");
1753
+ console.log(" • Voices: listVoices, searchVoices, getVoice");
1754
+ console.log(
1755
+ " • Custom Voices: listCustomVoices, searchCustomVoices, getCustomVoice"
1756
+ );
1757
+ console.log(
1758
+ " • Custom Voice Management: createClonedVoice, editCustomVoice, deleteCustomVoice"
1759
+ );
1760
+ console.log(
1761
+ " • Text-to-Speech: predictDuration, createSpeech, streamSpeech"
1762
+ );
1763
+ console.log(" • TTS Long Text: createSpeechLongText, streamSpeechLongText");
1764
+ console.log(
1765
+ " • TTS with Voice Settings: createSpeechWithVoiceSettings, predictDurationWithVoiceSettings, streamSpeechWithVoiceSettings"
1766
+ );
1767
+ console.log(
1768
+ " • TTS with Phonemes: createSpeechWithPhonemes, streamSpeechWithPhonemes"
1769
+ );
1770
+ console.log(
1771
+ " • MP3 Format: createSpeechMp3, createSpeechLongTextMp3, streamSpeechMp3, streamSpeechLongTextMp3"
1772
+ );
1773
+ console.log(
1774
+ " • Custom Features: Auto-chunking in createSpeech/streamSpeech (transparent)"
1775
+ );
1776
+
1777
+ if (customVoiceId) {
1778
+ console.log("");
1779
+ console.log(`šŸŽØ Found existing custom voice: ${customVoiceId}`);
1780
+ }
1781
+
1782
+ if (createdCustomVoiceId) {
1783
+ console.log(`šŸ†• Created and deleted custom voice: ${createdCustomVoiceId}`);
1784
+ }
1785
+
1786
+ console.log("");
1787
+ console.log("šŸ’” Note: This is a comprehensive test suite.");
1788
+ console.log(
1789
+ " Excludes parallel processing tests (see Python version for those)"
1790
+ );
1791
+
1792
+ return passed === total;
1793
+ }
1794
+
1795
+ // Run tests
1796
+ main()
1797
+ .then((success) => {
1798
+ process.exit(success ? 0 : 1);
1799
+ })
1800
+ .catch((error) => {
1801
+ console.error("āŒ Test execution failed:", error);
1802
+ process.exit(1);
1803
+ });