@ai-sdk/deepgram 2.0.0-beta.61 → 2.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +73 -159
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +1 -1
- package/dist/index.mjs.map +1 -1
- package/package.json +4 -4
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,59 @@
|
|
|
1
1
|
# @ai-sdk/deepgram
|
|
2
2
|
|
|
3
|
+
## 2.0.1
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- Updated dependencies [29264a3]
|
|
8
|
+
- @ai-sdk/provider-utils@4.0.1
|
|
9
|
+
|
|
10
|
+
## 2.0.0
|
|
11
|
+
|
|
12
|
+
### Major Changes
|
|
13
|
+
|
|
14
|
+
- dee8b05: ai SDK 6 beta
|
|
15
|
+
|
|
16
|
+
### Minor Changes
|
|
17
|
+
|
|
18
|
+
- 78928cb: release: start 5.1 beta
|
|
19
|
+
|
|
20
|
+
### Patch Changes
|
|
21
|
+
|
|
22
|
+
- 0c3b58b: fix(provider): add specificationVersion to ProviderV3
|
|
23
|
+
- 8d9e8ad: chore(provider): remove generics from EmbeddingModelV3
|
|
24
|
+
|
|
25
|
+
Before
|
|
26
|
+
|
|
27
|
+
```ts
|
|
28
|
+
model.textEmbeddingModel('my-model-id');
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
After
|
|
32
|
+
|
|
33
|
+
```ts
|
|
34
|
+
model.embeddingModel('my-model-id');
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
- 7f91f36: feat(deepgram): add language detection support
|
|
38
|
+
|
|
39
|
+
Add language detection support for Deepgram transcription. When `detectLanguage` is enabled, Deepgram will automatically detect the spoken language and return it in the response via `providerMetadata.deepgram.detectedLanguage`.
|
|
40
|
+
|
|
41
|
+
- f118108: feat(deepgram): add text-to-speech support
|
|
42
|
+
|
|
43
|
+
Add text-to-speech support for Deepgram Aura models via the REST API. Supports all Aura voice models (aura-2-helena-en, aura-2-thalia-en, etc.) with proper audio format validation, encoding/container/sample_rate/bitrate combinations, and comprehensive parameter validation.
|
|
44
|
+
|
|
45
|
+
- 95f65c2: chore: use import \* from zod/v4
|
|
46
|
+
- ed329cb: feat: `Provider-V3`
|
|
47
|
+
- 1cad0ab: feat: add provider version to user-agent header
|
|
48
|
+
- 457318b: chore(provider,ai): switch to SharedV3Warning and unified warnings
|
|
49
|
+
- 366f50b: chore(provider): add deprecated textEmbeddingModel and textEmbedding aliases
|
|
50
|
+
- 4616b86: chore: update zod peer depenedency version
|
|
51
|
+
- 21e20c0: feat(provider): transcription model v3 spec
|
|
52
|
+
- 10c1322: fix: moved dependency `@ai-sdk/test-server` to devDependencies
|
|
53
|
+
- Updated dependencies
|
|
54
|
+
- @ai-sdk/provider@3.0.0
|
|
55
|
+
- @ai-sdk/provider-utils@4.0.0
|
|
56
|
+
|
|
3
57
|
## 2.0.0-beta.61
|
|
4
58
|
|
|
5
59
|
### Patch Changes
|
|
@@ -400,8 +454,7 @@
|
|
|
400
454
|
### Patch Changes
|
|
401
455
|
|
|
402
456
|
- 95f65c2: chore: use import \* from zod/v4
|
|
403
|
-
- Updated dependencies
|
|
404
|
-
- Updated dependencies [95f65c2]
|
|
457
|
+
- Updated dependencies
|
|
405
458
|
- @ai-sdk/provider-utils@4.0.0-beta.11
|
|
406
459
|
|
|
407
460
|
## 2.0.0-beta.10
|
|
@@ -435,8 +488,7 @@
|
|
|
435
488
|
### Patch Changes
|
|
436
489
|
|
|
437
490
|
- 21e20c0: feat(provider): transcription model v3 spec
|
|
438
|
-
- Updated dependencies
|
|
439
|
-
- Updated dependencies [e8109d3]
|
|
491
|
+
- Updated dependencies
|
|
440
492
|
- @ai-sdk/provider@2.1.0-beta.5
|
|
441
493
|
- @ai-sdk/provider-utils@3.1.0-beta.7
|
|
442
494
|
|
|
@@ -444,8 +496,7 @@
|
|
|
444
496
|
|
|
445
497
|
### Patch Changes
|
|
446
498
|
|
|
447
|
-
- Updated dependencies
|
|
448
|
-
- Updated dependencies [2b0caef]
|
|
499
|
+
- Updated dependencies
|
|
449
500
|
- @ai-sdk/provider-utils@3.1.0-beta.6
|
|
450
501
|
- @ai-sdk/provider@2.1.0-beta.4
|
|
451
502
|
|
|
@@ -471,8 +522,7 @@
|
|
|
471
522
|
### Patch Changes
|
|
472
523
|
|
|
473
524
|
- ed329cb: feat: `Provider-V3`
|
|
474
|
-
- Updated dependencies
|
|
475
|
-
- Updated dependencies [522f6b8]
|
|
525
|
+
- Updated dependencies
|
|
476
526
|
- @ai-sdk/provider@2.1.0-beta.2
|
|
477
527
|
- @ai-sdk/provider-utils@3.1.0-beta.3
|
|
478
528
|
|
|
@@ -489,8 +539,7 @@
|
|
|
489
539
|
|
|
490
540
|
### Patch Changes
|
|
491
541
|
|
|
492
|
-
- Updated dependencies
|
|
493
|
-
- Updated dependencies [cbb1d35]
|
|
542
|
+
- Updated dependencies
|
|
494
543
|
- @ai-sdk/test-server@1.0.0-beta.0
|
|
495
544
|
- @ai-sdk/provider-utils@3.1.0-beta.1
|
|
496
545
|
|
|
@@ -552,8 +601,7 @@
|
|
|
552
601
|
|
|
553
602
|
### Patch Changes
|
|
554
603
|
|
|
555
|
-
- Updated dependencies
|
|
556
|
-
- Updated dependencies [f25040d]
|
|
604
|
+
- Updated dependencies
|
|
557
605
|
- @ai-sdk/provider-utils@3.0.3
|
|
558
606
|
|
|
559
607
|
## 1.0.2
|
|
@@ -578,108 +626,7 @@
|
|
|
578
626
|
- cb68df0: feat: add transcription and speech model support to provider registry
|
|
579
627
|
- d1a034f: feature: using Zod 4 for internal stuff
|
|
580
628
|
- 205077b: fix: improve Zod compatibility
|
|
581
|
-
- Updated dependencies
|
|
582
|
-
- Updated dependencies [742b7be]
|
|
583
|
-
- Updated dependencies [e7fcc86]
|
|
584
|
-
- Updated dependencies [7cddb72]
|
|
585
|
-
- Updated dependencies [ccce59b]
|
|
586
|
-
- Updated dependencies [e2b9e4b]
|
|
587
|
-
- Updated dependencies [95857aa]
|
|
588
|
-
- Updated dependencies [45c1ea2]
|
|
589
|
-
- Updated dependencies [6f6bb89]
|
|
590
|
-
- Updated dependencies [060370c]
|
|
591
|
-
- Updated dependencies [dc714f3]
|
|
592
|
-
- Updated dependencies [b5da06a]
|
|
593
|
-
- Updated dependencies [d1a1aa1]
|
|
594
|
-
- Updated dependencies [63f9e9b]
|
|
595
|
-
- Updated dependencies [5d142ab]
|
|
596
|
-
- Updated dependencies [d5f588f]
|
|
597
|
-
- Updated dependencies [e025824]
|
|
598
|
-
- Updated dependencies [0571b98]
|
|
599
|
-
- Updated dependencies [b6b43c7]
|
|
600
|
-
- Updated dependencies [4fef487]
|
|
601
|
-
- Updated dependencies [48d257a]
|
|
602
|
-
- Updated dependencies [0c0c0b3]
|
|
603
|
-
- Updated dependencies [0d2c085]
|
|
604
|
-
- Updated dependencies [40acf9b]
|
|
605
|
-
- Updated dependencies [9222aeb]
|
|
606
|
-
- Updated dependencies [e2aceaf]
|
|
607
|
-
- Updated dependencies [411e483]
|
|
608
|
-
- Updated dependencies [8ba77a7]
|
|
609
|
-
- Updated dependencies [7b3ae3f]
|
|
610
|
-
- Updated dependencies [a166433]
|
|
611
|
-
- Updated dependencies [26735b5]
|
|
612
|
-
- Updated dependencies [443d8ec]
|
|
613
|
-
- Updated dependencies [a8c8bd5]
|
|
614
|
-
- Updated dependencies [abf9a79]
|
|
615
|
-
- Updated dependencies [14c9410]
|
|
616
|
-
- Updated dependencies [e86be6f]
|
|
617
|
-
- Updated dependencies [9bf7291]
|
|
618
|
-
- Updated dependencies [2e13791]
|
|
619
|
-
- Updated dependencies [9f95b35]
|
|
620
|
-
- Updated dependencies [66962ed]
|
|
621
|
-
- Updated dependencies [0d06df6]
|
|
622
|
-
- Updated dependencies [472524a]
|
|
623
|
-
- Updated dependencies [dd3ff01]
|
|
624
|
-
- Updated dependencies [d9c98f4]
|
|
625
|
-
- Updated dependencies [05d2819]
|
|
626
|
-
- Updated dependencies [9301f86]
|
|
627
|
-
- Updated dependencies [0a87932]
|
|
628
|
-
- Updated dependencies [c4a2fec]
|
|
629
|
-
- Updated dependencies [957b739]
|
|
630
|
-
- Updated dependencies [79457bd]
|
|
631
|
-
- Updated dependencies [a3f768e]
|
|
632
|
-
- Updated dependencies [7435eb5]
|
|
633
|
-
- Updated dependencies [8aa9e20]
|
|
634
|
-
- Updated dependencies [4617fab]
|
|
635
|
-
- Updated dependencies [ac34802]
|
|
636
|
-
- Updated dependencies [0054544]
|
|
637
|
-
- Updated dependencies [cb68df0]
|
|
638
|
-
- Updated dependencies [ad80501]
|
|
639
|
-
- Updated dependencies [68ecf2f]
|
|
640
|
-
- Updated dependencies [9e9c809]
|
|
641
|
-
- Updated dependencies [32831c6]
|
|
642
|
-
- Updated dependencies [6dc848c]
|
|
643
|
-
- Updated dependencies [6b98118]
|
|
644
|
-
- Updated dependencies [d0f9495]
|
|
645
|
-
- Updated dependencies [63d791d]
|
|
646
|
-
- Updated dependencies [87b828f]
|
|
647
|
-
- Updated dependencies [3f2f00c]
|
|
648
|
-
- Updated dependencies [bfdca8d]
|
|
649
|
-
- Updated dependencies [0ff02bb]
|
|
650
|
-
- Updated dependencies [7979f7f]
|
|
651
|
-
- Updated dependencies [39a4fab]
|
|
652
|
-
- Updated dependencies [44f4aba]
|
|
653
|
-
- Updated dependencies [9bd5ab5]
|
|
654
|
-
- Updated dependencies [57edfcb]
|
|
655
|
-
- Updated dependencies [faf8446]
|
|
656
|
-
- Updated dependencies [7ea4132]
|
|
657
|
-
- Updated dependencies [d1a034f]
|
|
658
|
-
- Updated dependencies [5c56081]
|
|
659
|
-
- Updated dependencies [fd65bc6]
|
|
660
|
-
- Updated dependencies [023ba40]
|
|
661
|
-
- Updated dependencies [ea7a7c9]
|
|
662
|
-
- Updated dependencies [26535e0]
|
|
663
|
-
- Updated dependencies [e030615]
|
|
664
|
-
- Updated dependencies [5e57fae]
|
|
665
|
-
- Updated dependencies [393138b]
|
|
666
|
-
- Updated dependencies [c57e248]
|
|
667
|
-
- Updated dependencies [88a8ee5]
|
|
668
|
-
- Updated dependencies [41fa418]
|
|
669
|
-
- Updated dependencies [205077b]
|
|
670
|
-
- Updated dependencies [71f938d]
|
|
671
|
-
- Updated dependencies [3795467]
|
|
672
|
-
- Updated dependencies [28a5ed5]
|
|
673
|
-
- Updated dependencies [7182d14]
|
|
674
|
-
- Updated dependencies [c1e6647]
|
|
675
|
-
- Updated dependencies [1766ede]
|
|
676
|
-
- Updated dependencies [811dff3]
|
|
677
|
-
- Updated dependencies [f10304b]
|
|
678
|
-
- Updated dependencies [dd5fd43]
|
|
679
|
-
- Updated dependencies [33f4a6a]
|
|
680
|
-
- Updated dependencies [383cbfa]
|
|
681
|
-
- Updated dependencies [27deb4d]
|
|
682
|
-
- Updated dependencies [c4df419]
|
|
629
|
+
- Updated dependencies
|
|
683
630
|
- @ai-sdk/provider-utils@3.0.0
|
|
684
631
|
- @ai-sdk/provider@2.0.0
|
|
685
632
|
|
|
@@ -723,8 +670,7 @@
|
|
|
723
670
|
|
|
724
671
|
### Patch Changes
|
|
725
672
|
|
|
726
|
-
- Updated dependencies
|
|
727
|
-
- Updated dependencies [383cbfa]
|
|
673
|
+
- Updated dependencies
|
|
728
674
|
- @ai-sdk/provider-utils@3.0.0-beta.5
|
|
729
675
|
|
|
730
676
|
## 1.0.0-beta.4
|
|
@@ -747,9 +693,7 @@
|
|
|
747
693
|
### Patch Changes
|
|
748
694
|
|
|
749
695
|
- d1a034f: feature: using Zod 4 for internal stuff
|
|
750
|
-
- Updated dependencies
|
|
751
|
-
- Updated dependencies [39a4fab]
|
|
752
|
-
- Updated dependencies [d1a034f]
|
|
696
|
+
- Updated dependencies
|
|
753
697
|
- @ai-sdk/provider-utils@3.0.0-beta.2
|
|
754
698
|
|
|
755
699
|
## 1.0.0-beta.1
|
|
@@ -757,23 +701,7 @@
|
|
|
757
701
|
### Patch Changes
|
|
758
702
|
|
|
759
703
|
- cb68df0: feat: add transcription and speech model support to provider registry
|
|
760
|
-
- Updated dependencies
|
|
761
|
-
- Updated dependencies [7cddb72]
|
|
762
|
-
- Updated dependencies [ccce59b]
|
|
763
|
-
- Updated dependencies [e2b9e4b]
|
|
764
|
-
- Updated dependencies [45c1ea2]
|
|
765
|
-
- Updated dependencies [e025824]
|
|
766
|
-
- Updated dependencies [0d06df6]
|
|
767
|
-
- Updated dependencies [472524a]
|
|
768
|
-
- Updated dependencies [dd3ff01]
|
|
769
|
-
- Updated dependencies [7435eb5]
|
|
770
|
-
- Updated dependencies [cb68df0]
|
|
771
|
-
- Updated dependencies [bfdca8d]
|
|
772
|
-
- Updated dependencies [44f4aba]
|
|
773
|
-
- Updated dependencies [023ba40]
|
|
774
|
-
- Updated dependencies [5e57fae]
|
|
775
|
-
- Updated dependencies [71f938d]
|
|
776
|
-
- Updated dependencies [28a5ed5]
|
|
704
|
+
- Updated dependencies
|
|
777
705
|
- @ai-sdk/provider@2.0.0-beta.1
|
|
778
706
|
- @ai-sdk/provider-utils@3.0.0-beta.1
|
|
779
707
|
|
|
@@ -781,8 +709,7 @@
|
|
|
781
709
|
|
|
782
710
|
### Patch Changes
|
|
783
711
|
|
|
784
|
-
- Updated dependencies
|
|
785
|
-
- Updated dependencies [8ba77a7]
|
|
712
|
+
- Updated dependencies
|
|
786
713
|
- @ai-sdk/provider@2.0.0-alpha.15
|
|
787
714
|
- @ai-sdk/provider-utils@3.0.0-alpha.15
|
|
788
715
|
|
|
@@ -790,9 +717,7 @@
|
|
|
790
717
|
|
|
791
718
|
### Patch Changes
|
|
792
719
|
|
|
793
|
-
- Updated dependencies
|
|
794
|
-
- Updated dependencies [63f9e9b]
|
|
795
|
-
- Updated dependencies [2e13791]
|
|
720
|
+
- Updated dependencies
|
|
796
721
|
- @ai-sdk/provider@2.0.0-alpha.14
|
|
797
722
|
- @ai-sdk/provider-utils@3.0.0-alpha.14
|
|
798
723
|
|
|
@@ -840,8 +765,7 @@
|
|
|
840
765
|
|
|
841
766
|
### Patch Changes
|
|
842
767
|
|
|
843
|
-
- Updated dependencies
|
|
844
|
-
- Updated dependencies [9222aeb]
|
|
768
|
+
- Updated dependencies
|
|
845
769
|
- @ai-sdk/provider-utils@3.0.0-alpha.8
|
|
846
770
|
- @ai-sdk/provider@2.0.0-alpha.8
|
|
847
771
|
|
|
@@ -925,10 +849,7 @@
|
|
|
925
849
|
|
|
926
850
|
### Patch Changes
|
|
927
851
|
|
|
928
|
-
- Updated dependencies
|
|
929
|
-
- Updated dependencies [a8c8bd5]
|
|
930
|
-
- Updated dependencies [7979f7f]
|
|
931
|
-
- Updated dependencies [41fa418]
|
|
852
|
+
- Updated dependencies
|
|
932
853
|
- @ai-sdk/provider-utils@3.0.0-canary.15
|
|
933
854
|
- @ai-sdk/provider@2.0.0-canary.14
|
|
934
855
|
|
|
@@ -936,8 +857,7 @@
|
|
|
936
857
|
|
|
937
858
|
### Patch Changes
|
|
938
859
|
|
|
939
|
-
- Updated dependencies
|
|
940
|
-
- Updated dependencies [9bd5ab5]
|
|
860
|
+
- Updated dependencies
|
|
941
861
|
- @ai-sdk/provider-utils@3.0.0-canary.14
|
|
942
862
|
- @ai-sdk/provider@2.0.0-canary.13
|
|
943
863
|
|
|
@@ -945,8 +865,7 @@
|
|
|
945
865
|
|
|
946
866
|
### Patch Changes
|
|
947
867
|
|
|
948
|
-
- Updated dependencies
|
|
949
|
-
- Updated dependencies [0ff02bb]
|
|
868
|
+
- Updated dependencies
|
|
950
869
|
- @ai-sdk/provider@2.0.0-canary.12
|
|
951
870
|
- @ai-sdk/provider-utils@3.0.0-canary.13
|
|
952
871
|
|
|
@@ -954,9 +873,7 @@
|
|
|
954
873
|
|
|
955
874
|
### Patch Changes
|
|
956
875
|
|
|
957
|
-
- Updated dependencies
|
|
958
|
-
- Updated dependencies [4617fab]
|
|
959
|
-
- Updated dependencies [e030615]
|
|
876
|
+
- Updated dependencies
|
|
960
877
|
- @ai-sdk/provider@2.0.0-canary.11
|
|
961
878
|
- @ai-sdk/provider-utils@3.0.0-canary.12
|
|
962
879
|
|
|
@@ -964,9 +881,7 @@
|
|
|
964
881
|
|
|
965
882
|
### Patch Changes
|
|
966
883
|
|
|
967
|
-
- Updated dependencies
|
|
968
|
-
- Updated dependencies [9301f86]
|
|
969
|
-
- Updated dependencies [a3f768e]
|
|
884
|
+
- Updated dependencies
|
|
970
885
|
- @ai-sdk/provider-utils@3.0.0-canary.11
|
|
971
886
|
- @ai-sdk/provider@2.0.0-canary.10
|
|
972
887
|
|
|
@@ -982,8 +897,7 @@
|
|
|
982
897
|
|
|
983
898
|
### Patch Changes
|
|
984
899
|
|
|
985
|
-
- Updated dependencies
|
|
986
|
-
- Updated dependencies [7ea4132]
|
|
900
|
+
- Updated dependencies
|
|
987
901
|
- @ai-sdk/provider@2.0.0-canary.8
|
|
988
902
|
- @ai-sdk/provider-utils@3.0.0-canary.9
|
|
989
903
|
|
package/dist/index.js
CHANGED
|
@@ -593,7 +593,7 @@ var DeepgramSpeechModel = class {
|
|
|
593
593
|
};
|
|
594
594
|
|
|
595
595
|
// src/version.ts
|
|
596
|
-
var VERSION = true ? "2.0.
|
|
596
|
+
var VERSION = true ? "2.0.1" : "0.0.0-test";
|
|
597
597
|
|
|
598
598
|
// src/deepgram-provider.ts
|
|
599
599
|
function createDeepgram(options = {}) {
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts","../src/deepgram-provider.ts","../src/deepgram-transcription-model.ts","../src/deepgram-error.ts","../src/deepgram-speech-model.ts","../src/version.ts"],"sourcesContent":["export { createDeepgram, deepgram } from './deepgram-provider';\nexport type {\n DeepgramProvider,\n DeepgramProviderSettings,\n} from './deepgram-provider';\nexport { DeepgramSpeechModel } from './deepgram-speech-model';\nexport type { DeepgramSpeechCallOptions } from './deepgram-speech-model';\nexport type { DeepgramSpeechModelId } from './deepgram-speech-options';\nexport { VERSION } from './version';\n","import {\n TranscriptionModelV3,\n SpeechModelV3,\n ProviderV3,\n NoSuchModelError,\n} from '@ai-sdk/provider';\nimport {\n FetchFunction,\n loadApiKey,\n withUserAgentSuffix,\n} from '@ai-sdk/provider-utils';\nimport { DeepgramTranscriptionModel } from './deepgram-transcription-model';\nimport { DeepgramTranscriptionModelId } from './deepgram-transcription-options';\nimport { DeepgramSpeechModel } from './deepgram-speech-model';\nimport { DeepgramSpeechModelId } from './deepgram-speech-options';\nimport { VERSION } from './version';\n\nexport interface DeepgramProvider extends ProviderV3 {\n (\n modelId: 'nova-3',\n settings?: {},\n ): {\n transcription: DeepgramTranscriptionModel;\n };\n\n /**\nCreates a model for transcription.\n */\n transcription(modelId: DeepgramTranscriptionModelId): TranscriptionModelV3;\n\n /**\nCreates a model for speech generation.\n */\n speech(modelId: DeepgramSpeechModelId): SpeechModelV3;\n\n /**\n * @deprecated Use `embeddingModel` instead.\n */\n textEmbeddingModel(modelId: string): never;\n}\n\nexport interface DeepgramProviderSettings {\n /**\nAPI key for authenticating requests.\n */\n apiKey?: string;\n\n /**\nCustom headers to include in the requests.\n */\n headers?: Record<string, string>;\n\n /**\nCustom fetch implementation. You can use it as a middleware to intercept requests,\nor to provide a custom fetch implementation for e.g. testing.\n */\n fetch?: FetchFunction;\n}\n\n/**\nCreate an Deepgram provider instance.\n */\nexport function createDeepgram(\n options: DeepgramProviderSettings = {},\n): DeepgramProvider {\n const getHeaders = () =>\n withUserAgentSuffix(\n {\n authorization: `Token ${loadApiKey({\n apiKey: options.apiKey,\n environmentVariableName: 'DEEPGRAM_API_KEY',\n description: 'Deepgram',\n })}`,\n ...options.headers,\n },\n `ai-sdk/deepgram/${VERSION}`,\n );\n\n const createTranscriptionModel = (modelId: DeepgramTranscriptionModelId) =>\n new DeepgramTranscriptionModel(modelId, {\n provider: `deepgram.transcription`,\n url: ({ path }) => `https://api.deepgram.com${path}`,\n headers: getHeaders,\n fetch: options.fetch,\n });\n\n const createSpeechModel = (modelId: DeepgramSpeechModelId) =>\n new DeepgramSpeechModel(modelId, {\n provider: `deepgram.speech`,\n url: ({ path }) => `https://api.deepgram.com${path}`,\n headers: getHeaders,\n fetch: options.fetch,\n });\n\n const provider = function (modelId: DeepgramTranscriptionModelId) {\n return {\n transcription: createTranscriptionModel(modelId),\n };\n };\n\n provider.specificationVersion = 'v3' as const;\n provider.transcription = createTranscriptionModel;\n provider.transcriptionModel = createTranscriptionModel;\n provider.speech = createSpeechModel;\n provider.speechModel = createSpeechModel;\n\n // Required ProviderV3 methods that are not supported\n provider.languageModel = (modelId: string) => {\n throw new NoSuchModelError({\n modelId,\n modelType: 'languageModel',\n message: 'Deepgram does not provide language models',\n });\n };\n\n provider.embeddingModel = (modelId: string) => {\n throw new NoSuchModelError({\n modelId,\n modelType: 'embeddingModel',\n message: 'Deepgram does not provide text embedding models',\n });\n };\n provider.textEmbeddingModel = provider.embeddingModel;\n\n provider.imageModel = (modelId: string) => {\n throw new NoSuchModelError({\n modelId,\n modelType: 'imageModel',\n message: 'Deepgram does not provide image models',\n });\n };\n\n return provider as DeepgramProvider;\n}\n\n/**\nDefault Deepgram provider instance.\n */\nexport const deepgram = createDeepgram();\n","import { SharedV3Warning, TranscriptionModelV3 } from '@ai-sdk/provider';\nimport {\n combineHeaders,\n createJsonResponseHandler,\n parseProviderOptions,\n postToApi,\n} from '@ai-sdk/provider-utils';\nimport { z } from 'zod/v4';\nimport { DeepgramTranscriptionAPITypes } from './deepgram-api-types';\nimport { DeepgramConfig } from './deepgram-config';\nimport { deepgramFailedResponseHandler } from './deepgram-error';\nimport { DeepgramTranscriptionModelId } from './deepgram-transcription-options';\n\n// https://developers.deepgram.com/docs/pre-recorded-audio#results\nconst deepgramProviderOptionsSchema = z.object({\n /** Language to use for transcription. If not specified, Deepgram defaults to English. Use `detectLanguage: true` to enable automatic language detection. */\n language: z.string().nullish(),\n /** Whether to enable automatic language detection. When true, Deepgram will detect the language of the audio. */\n detectLanguage: z.boolean().nullish(),\n /** Whether to use smart formatting, which formats written-out numbers, dates, times, etc. */\n smartFormat: z.boolean().nullish(),\n /** Whether to add punctuation to the transcript. */\n punctuate: z.boolean().nullish(),\n /** Whether to format the transcript into paragraphs. */\n paragraphs: z.boolean().nullish(),\n /** Whether to generate a summary of the transcript. Use 'v2' for the latest version or false to disable. */\n summarize: z.union([z.literal('v2'), z.literal(false)]).nullish(),\n /** Whether to identify topics in the transcript. */\n topics: z.boolean().nullish(),\n /** Whether to identify intents in the transcript. */\n intents: z.boolean().nullish(),\n /** Whether to analyze sentiment in the transcript. */\n sentiment: z.boolean().nullish(),\n /** Whether to detect and tag named entities in the transcript. */\n detectEntities: z.boolean().nullish(),\n /** Specify terms or patterns to redact from the transcript. Can be a string or array of strings. */\n redact: z.union([z.string(), z.array(z.string())]).nullish(),\n /** String to replace redacted content with. */\n replace: z.string().nullish(),\n /** Term or phrase to search for in the transcript. */\n search: z.string().nullish(),\n /** Key term to identify in the transcript. */\n keyterm: z.string().nullish(),\n /** Whether to identify different speakers in the audio. */\n diarize: z.boolean().nullish(),\n /** Whether to segment the transcript into utterances. */\n utterances: z.boolean().nullish(),\n /** Minimum duration of silence (in seconds) to trigger a new utterance. */\n uttSplit: z.number().nullish(),\n /** Whether to include filler words (um, uh, etc.) in the transcript. */\n fillerWords: z.boolean().nullish(),\n});\n\nexport type DeepgramTranscriptionCallOptions = z.infer<\n typeof deepgramProviderOptionsSchema\n>;\n\ninterface DeepgramTranscriptionModelConfig extends DeepgramConfig {\n _internal?: {\n currentDate?: () => Date;\n };\n}\n\nexport class DeepgramTranscriptionModel implements TranscriptionModelV3 {\n readonly specificationVersion = 'v3';\n\n get provider(): string {\n return this.config.provider;\n }\n\n constructor(\n readonly modelId: DeepgramTranscriptionModelId,\n private readonly config: DeepgramTranscriptionModelConfig,\n ) {}\n\n private async getArgs({\n providerOptions,\n }: Parameters<TranscriptionModelV3['doGenerate']>[0]) {\n const warnings: SharedV3Warning[] = [];\n\n // Parse provider options\n const deepgramOptions = await parseProviderOptions({\n provider: 'deepgram',\n providerOptions,\n schema: deepgramProviderOptionsSchema,\n });\n\n const body: DeepgramTranscriptionAPITypes = {\n model: this.modelId,\n diarize: true,\n };\n\n // Add provider-specific options\n if (deepgramOptions) {\n body.detect_entities = deepgramOptions.detectEntities ?? undefined;\n body.detect_language = deepgramOptions.detectLanguage ?? undefined;\n body.filler_words = deepgramOptions.fillerWords ?? undefined;\n body.language = deepgramOptions.language ?? undefined;\n body.punctuate = deepgramOptions.punctuate ?? undefined;\n body.redact = deepgramOptions.redact ?? undefined;\n body.search = deepgramOptions.search ?? undefined;\n body.smart_format = deepgramOptions.smartFormat ?? undefined;\n body.summarize = deepgramOptions.summarize ?? undefined;\n body.topics = deepgramOptions.topics ?? undefined;\n body.utterances = deepgramOptions.utterances ?? undefined;\n body.utt_split = deepgramOptions.uttSplit ?? undefined;\n\n if (typeof deepgramOptions.diarize === 'boolean') {\n body.diarize = deepgramOptions.diarize;\n }\n }\n\n // Convert body to URL query parameters\n const queryParams = new URLSearchParams();\n for (const [key, value] of Object.entries(body)) {\n if (value !== undefined) {\n queryParams.append(key, String(value));\n }\n }\n\n return {\n queryParams,\n warnings,\n };\n }\n\n async doGenerate(\n options: Parameters<TranscriptionModelV3['doGenerate']>[0],\n ): Promise<Awaited<ReturnType<TranscriptionModelV3['doGenerate']>>> {\n const currentDate = this.config._internal?.currentDate?.() ?? new Date();\n const { queryParams, warnings } = await this.getArgs(options);\n\n const {\n value: response,\n responseHeaders,\n rawValue: rawResponse,\n } = await postToApi({\n url:\n this.config.url({\n path: '/v1/listen',\n modelId: this.modelId,\n }) +\n '?' +\n queryParams.toString(),\n headers: {\n ...combineHeaders(this.config.headers(), options.headers),\n 'Content-Type': options.mediaType,\n },\n body: {\n content: options.audio,\n values: options.audio,\n },\n failedResponseHandler: deepgramFailedResponseHandler,\n successfulResponseHandler: createJsonResponseHandler(\n deepgramTranscriptionResponseSchema,\n ),\n abortSignal: options.abortSignal,\n fetch: this.config.fetch,\n });\n\n return {\n text:\n response.results?.channels.at(0)?.alternatives.at(0)?.transcript ?? '',\n segments:\n response.results?.channels[0].alternatives[0].words?.map(word => ({\n text: word.word,\n startSecond: word.start,\n endSecond: word.end,\n })) ?? [],\n language:\n response.results?.channels.at(0)?.detected_language ?? undefined,\n durationInSeconds: response.metadata?.duration ?? undefined,\n warnings,\n response: {\n timestamp: currentDate,\n modelId: this.modelId,\n headers: responseHeaders,\n body: rawResponse,\n },\n };\n }\n}\n\nconst deepgramTranscriptionResponseSchema = z.object({\n metadata: z\n .object({\n duration: z.number(),\n })\n .nullish(),\n results: z\n .object({\n channels: z.array(\n z.object({\n detected_language: z.string().nullish(),\n alternatives: z.array(\n z.object({\n transcript: z.string(),\n words: z.array(\n z.object({\n word: z.string(),\n start: z.number(),\n end: z.number(),\n }),\n ),\n }),\n ),\n }),\n ),\n })\n .nullish(),\n});\n","import { z } from 'zod/v4';\nimport { createJsonErrorResponseHandler } from '@ai-sdk/provider-utils';\n\nexport const deepgramErrorDataSchema = z.object({\n error: z.object({\n message: z.string(),\n code: z.number(),\n }),\n});\n\nexport type DeepgramErrorData = z.infer<typeof deepgramErrorDataSchema>;\n\nexport const deepgramFailedResponseHandler = createJsonErrorResponseHandler({\n errorSchema: deepgramErrorDataSchema,\n errorToMessage: data => data.error.message,\n});\n","import { SpeechModelV3, SharedV3Warning } from '@ai-sdk/provider';\nimport {\n combineHeaders,\n createBinaryResponseHandler,\n parseProviderOptions,\n postJsonToApi,\n} from '@ai-sdk/provider-utils';\nimport { z } from 'zod/v4';\nimport { DeepgramConfig } from './deepgram-config';\nimport { deepgramFailedResponseHandler } from './deepgram-error';\nimport { DeepgramSpeechModelId } from './deepgram-speech-options';\n\n// https://developers.deepgram.com/reference/text-to-speech/speak-request\nconst deepgramSpeechProviderOptionsSchema = z.object({\n /** Bitrate of the audio in bits per second. Can be a number or predefined enum value. */\n bitRate: z.union([z.number(), z.string()]).nullish(),\n /** Container format for the output audio (mp3, wav, etc.). */\n container: z.string().nullish(),\n /** Encoding type for the audio output (linear16, mulaw, alaw, etc.). */\n encoding: z.string().nullish(),\n /** Sample rate for the output audio in Hz (8000, 16000, 24000, 44100, 48000). */\n sampleRate: z.number().nullish(),\n /** URL to which we'll make the callback request. */\n callback: z.string().url().nullish(),\n /** HTTP method by which the callback request will be made (POST or PUT). */\n callbackMethod: z.enum(['POST', 'PUT']).nullish(),\n /** Opts out requests from the Deepgram Model Improvement Program. */\n mipOptOut: z.boolean().nullish(),\n /** Label your requests for the purpose of identification during usage reporting. */\n tag: z.union([z.string(), z.array(z.string())]).nullish(),\n});\n\nexport type DeepgramSpeechCallOptions = z.infer<\n typeof deepgramSpeechProviderOptionsSchema\n>;\n\ninterface DeepgramSpeechModelConfig extends DeepgramConfig {\n _internal?: {\n currentDate?: () => Date;\n };\n}\n\nexport class DeepgramSpeechModel implements SpeechModelV3 {\n readonly specificationVersion = 'v3';\n\n get provider(): string {\n return this.config.provider;\n }\n\n constructor(\n readonly modelId: DeepgramSpeechModelId,\n private readonly config: DeepgramSpeechModelConfig,\n ) {}\n\n private async getArgs({\n text,\n voice,\n outputFormat = 'mp3',\n speed,\n language,\n instructions,\n providerOptions,\n }: Parameters<SpeechModelV3['doGenerate']>[0]) {\n const warnings: SharedV3Warning[] = [];\n\n // Parse provider options\n const deepgramOptions = await parseProviderOptions({\n provider: 'deepgram',\n providerOptions,\n schema: deepgramSpeechProviderOptionsSchema,\n });\n\n // Create request body\n const requestBody = {\n text,\n };\n\n // Prepare query parameters\n const queryParams: Record<string, string> = {\n model: this.modelId,\n };\n\n // Map outputFormat to encoding/container/sample_rate\n // https://developers.deepgram.com/docs/tts-media-output-settings#audio-format-combinations\n if (outputFormat) {\n const formatLower = outputFormat.toLowerCase();\n\n // Common format mappings based on Deepgram's valid combinations\n const formatMap: Record<\n string,\n {\n encoding?: string;\n container?: string;\n sampleRate?: number;\n bitRate?: number;\n }\n > = {\n // MP3: no container, fixed 22050 sample rate, bitrate 32000/48000\n mp3: { encoding: 'mp3' }, // Don't set container or sample_rate for mp3\n // Linear16: wav/none container, configurable sample rate\n wav: { container: 'wav', encoding: 'linear16' },\n linear16: { encoding: 'linear16', container: 'wav' },\n // MuLaw: wav/none container, 8000/16000 sample rate\n mulaw: { encoding: 'mulaw', container: 'wav' },\n // ALaw: wav/none container, 8000/16000 sample rate\n alaw: { encoding: 'alaw', container: 'wav' },\n // Opus: ogg container, fixed 48000 sample rate\n opus: { encoding: 'opus', container: 'ogg' },\n ogg: { encoding: 'opus', container: 'ogg' },\n // FLAC: no container, configurable sample rate\n flac: { encoding: 'flac' },\n // AAC: no container, fixed 22050 sample rate\n aac: { encoding: 'aac' },\n // Raw audio (no container)\n pcm: { encoding: 'linear16', container: 'none' },\n };\n\n const mappedFormat = formatMap[formatLower];\n if (mappedFormat) {\n if (mappedFormat.encoding) {\n queryParams.encoding = mappedFormat.encoding;\n }\n // Only set container if specified and valid for the encoding\n if (mappedFormat.container) {\n queryParams.container = mappedFormat.container;\n }\n // Only set sample_rate if specified and valid for the encoding\n if (mappedFormat.sampleRate) {\n queryParams.sample_rate = String(mappedFormat.sampleRate);\n }\n // Set bitrate for formats that support it\n if (mappedFormat.bitRate) {\n queryParams.bit_rate = String(mappedFormat.bitRate);\n }\n } else {\n // Try to parse format like \"wav_44100\" or \"linear16_24000\"\n const parts = formatLower.split('_');\n if (parts.length >= 2) {\n const firstPart = parts[0];\n const secondPart = parts[1];\n const sampleRate = parseInt(secondPart, 10);\n\n // Check if first part is an encoding\n if (\n [\n 'linear16',\n 'mulaw',\n 'alaw',\n 'mp3',\n 'opus',\n 'flac',\n 'aac',\n ].includes(firstPart)\n ) {\n queryParams.encoding = firstPart;\n\n // Set container based on encoding\n if (['linear16', 'mulaw', 'alaw'].includes(firstPart)) {\n // These can use wav or none, default to wav\n queryParams.container = 'wav';\n } else if (firstPart === 'opus') {\n queryParams.container = 'ogg';\n }\n // mp3, flac, aac don't use container\n\n // Set sample rate if valid for encoding\n if (!isNaN(sampleRate)) {\n if (\n firstPart === 'linear16' &&\n [8000, 16000, 24000, 32000, 48000].includes(sampleRate)\n ) {\n queryParams.sample_rate = String(sampleRate);\n } else if (\n firstPart === 'mulaw' &&\n [8000, 16000].includes(sampleRate)\n ) {\n queryParams.sample_rate = String(sampleRate);\n } else if (\n firstPart === 'alaw' &&\n [8000, 16000].includes(sampleRate)\n ) {\n queryParams.sample_rate = String(sampleRate);\n } else if (\n firstPart === 'flac' &&\n [8000, 16000, 22050, 32000, 48000].includes(sampleRate)\n ) {\n queryParams.sample_rate = String(sampleRate);\n }\n // mp3, opus, aac have fixed sample rates, don't set\n }\n } else if (['wav', 'ogg'].includes(firstPart)) {\n // First part is container\n if (firstPart === 'wav') {\n queryParams.container = 'wav';\n queryParams.encoding = 'linear16'; // Default encoding for wav\n } else if (firstPart === 'ogg') {\n queryParams.container = 'ogg';\n queryParams.encoding = 'opus'; // Default encoding for ogg\n }\n if (!isNaN(sampleRate)) {\n queryParams.sample_rate = String(sampleRate);\n }\n }\n }\n }\n }\n\n // Add provider-specific options - map camelCase to snake_case\n // Validate combinations according to Deepgram's spec\n if (deepgramOptions) {\n if (deepgramOptions.encoding) {\n const newEncoding = deepgramOptions.encoding.toLowerCase();\n\n // If encoding changes, we may need to clear incompatible parameters\n queryParams.encoding = newEncoding;\n\n // Validate container based on encoding\n if (deepgramOptions.container) {\n // Validate container is valid for this encoding\n if (['linear16', 'mulaw', 'alaw'].includes(newEncoding)) {\n if (\n !['wav', 'none'].includes(deepgramOptions.container.toLowerCase())\n ) {\n warnings.push({\n type: 'unsupported',\n feature: 'providerOptions',\n details: `Encoding \"${newEncoding}\" only supports containers \"wav\" or \"none\". Container \"${deepgramOptions.container}\" was ignored.`,\n });\n } else {\n queryParams.container = deepgramOptions.container.toLowerCase();\n }\n } else if (newEncoding === 'opus') {\n // opus requires ogg container, override any previous container setting\n queryParams.container = 'ogg';\n } else if (['mp3', 'flac', 'aac'].includes(newEncoding)) {\n warnings.push({\n type: 'unsupported',\n feature: 'providerOptions',\n details: `Encoding \"${newEncoding}\" does not support container parameter. Container \"${deepgramOptions.container}\" was ignored.`,\n });\n // Remove container if it was set by outputFormat\n delete queryParams.container;\n }\n } else {\n // No container specified in providerOptions\n // If encoding changed to one that doesn't support container, remove it\n if (['mp3', 'flac', 'aac'].includes(newEncoding)) {\n delete queryParams.container;\n } else if (['linear16', 'mulaw', 'alaw'].includes(newEncoding)) {\n // Set default container if not already set\n if (!queryParams.container) {\n queryParams.container = 'wav'; // Default for these encodings\n }\n } else if (newEncoding === 'opus') {\n // opus requires ogg container, override any previous container setting\n queryParams.container = 'ogg';\n }\n }\n\n // Clean up sample_rate and bit_rate if they're incompatible with the new encoding\n // Fixed sample rate encodings (mp3, opus, aac) don't support sample_rate parameter\n if (['mp3', 'opus', 'aac'].includes(newEncoding)) {\n delete queryParams.sample_rate;\n }\n // Lossless encodings without bitrate support (linear16, mulaw, alaw, flac) don't support bit_rate\n if (['linear16', 'mulaw', 'alaw', 'flac'].includes(newEncoding)) {\n delete queryParams.bit_rate;\n }\n } else if (deepgramOptions.container) {\n // Container specified without encoding - set default encoding\n const container = deepgramOptions.container.toLowerCase();\n const oldEncoding = queryParams.encoding?.toLowerCase();\n let newEncoding: string | undefined;\n\n if (container === 'wav') {\n queryParams.container = 'wav';\n newEncoding = 'linear16'; // Default encoding for wav\n } else if (container === 'ogg') {\n queryParams.container = 'ogg';\n newEncoding = 'opus'; // Default encoding for ogg\n } else if (container === 'none') {\n queryParams.container = 'none';\n newEncoding = 'linear16'; // Default encoding for raw audio\n }\n\n // If encoding changed, clean up incompatible parameters\n if (newEncoding && newEncoding !== oldEncoding) {\n queryParams.encoding = newEncoding;\n // Clean up sample_rate and bit_rate if they're incompatible with the new encoding\n if (['mp3', 'opus', 'aac'].includes(newEncoding)) {\n delete queryParams.sample_rate;\n }\n if (['linear16', 'mulaw', 'alaw', 'flac'].includes(newEncoding)) {\n delete queryParams.bit_rate;\n }\n }\n }\n\n if (deepgramOptions.sampleRate != null) {\n const encoding = queryParams.encoding?.toLowerCase() || '';\n const sampleRate = deepgramOptions.sampleRate;\n\n // Validate sample rate based on encoding\n if (encoding === 'linear16') {\n if (![8000, 16000, 24000, 32000, 48000].includes(sampleRate)) {\n warnings.push({\n type: 'unsupported',\n feature: 'providerOptions',\n details: `Encoding \"linear16\" only supports sample rates: 8000, 16000, 24000, 32000, 48000. Sample rate ${sampleRate} was ignored.`,\n });\n } else {\n queryParams.sample_rate = String(sampleRate);\n }\n } else if (encoding === 'mulaw' || encoding === 'alaw') {\n if (![8000, 16000].includes(sampleRate)) {\n warnings.push({\n type: 'unsupported',\n feature: 'providerOptions',\n details: `Encoding \"${encoding}\" only supports sample rates: 8000, 16000. Sample rate ${sampleRate} was ignored.`,\n });\n } else {\n queryParams.sample_rate = String(sampleRate);\n }\n } else if (encoding === 'flac') {\n if (![8000, 16000, 22050, 32000, 48000].includes(sampleRate)) {\n warnings.push({\n type: 'unsupported',\n feature: 'providerOptions',\n details: `Encoding \"flac\" only supports sample rates: 8000, 16000, 22050, 32000, 48000. Sample rate ${sampleRate} was ignored.`,\n });\n } else {\n queryParams.sample_rate = String(sampleRate);\n }\n } else if (['mp3', 'opus', 'aac'].includes(encoding)) {\n warnings.push({\n type: 'unsupported',\n feature: 'providerOptions',\n details: `Encoding \"${encoding}\" has a fixed sample rate and does not support sample_rate parameter. Sample rate ${sampleRate} was ignored.`,\n });\n } else {\n // No encoding set yet, allow it (will be validated when encoding is set)\n queryParams.sample_rate = String(sampleRate);\n }\n }\n\n if (deepgramOptions.bitRate != null) {\n const encoding = queryParams.encoding?.toLowerCase() || '';\n const bitRate = deepgramOptions.bitRate;\n\n // Validate bitrate based on encoding\n if (encoding === 'mp3') {\n if (![32000, 48000].includes(Number(bitRate))) {\n warnings.push({\n type: 'unsupported',\n feature: 'providerOptions',\n details: `Encoding \"mp3\" only supports bit rates: 32000, 48000. Bit rate ${bitRate} was ignored.`,\n });\n } else {\n queryParams.bit_rate = String(bitRate);\n }\n } else if (encoding === 'opus') {\n const bitRateNum = Number(bitRate);\n if (bitRateNum < 4000 || bitRateNum > 650000) {\n warnings.push({\n type: 'unsupported',\n feature: 'providerOptions',\n details: `Encoding \"opus\" supports bit rates between 4000 and 650000. Bit rate ${bitRate} was ignored.`,\n });\n } else {\n queryParams.bit_rate = String(bitRate);\n }\n } else if (encoding === 'aac') {\n const bitRateNum = Number(bitRate);\n if (bitRateNum < 4000 || bitRateNum > 192000) {\n warnings.push({\n type: 'unsupported',\n feature: 'providerOptions',\n details: `Encoding \"aac\" supports bit rates between 4000 and 192000. Bit rate ${bitRate} was ignored.`,\n });\n } else {\n queryParams.bit_rate = String(bitRate);\n }\n } else if (['linear16', 'mulaw', 'alaw', 'flac'].includes(encoding)) {\n warnings.push({\n type: 'unsupported',\n feature: 'providerOptions',\n details: `Encoding \"${encoding}\" does not support bit_rate parameter. Bit rate ${bitRate} was ignored.`,\n });\n } else {\n // No encoding set yet, allow it\n queryParams.bit_rate = String(bitRate);\n }\n }\n\n if (deepgramOptions.callback) {\n queryParams.callback = deepgramOptions.callback;\n }\n if (deepgramOptions.callbackMethod) {\n queryParams.callback_method = deepgramOptions.callbackMethod;\n }\n if (deepgramOptions.mipOptOut != null) {\n queryParams.mip_opt_out = String(deepgramOptions.mipOptOut);\n }\n if (deepgramOptions.tag) {\n if (Array.isArray(deepgramOptions.tag)) {\n queryParams.tag = deepgramOptions.tag.join(',');\n } else {\n queryParams.tag = deepgramOptions.tag;\n }\n }\n }\n\n // Handle voice parameter - Deepgram embeds voice in model ID\n // If voice is provided and different from model, warn user\n if (voice && voice !== this.modelId) {\n warnings.push({\n type: 'unsupported',\n feature: 'voice',\n details: `Deepgram TTS models embed the voice in the model ID. The voice parameter \"${voice}\" was ignored. Use the model ID to select a voice (e.g., \"aura-2-helena-en\").`,\n });\n }\n\n // Handle speed - not supported in Deepgram REST API\n if (speed != null) {\n warnings.push({\n type: 'unsupported',\n feature: 'speed',\n details: `Deepgram TTS REST API does not support speed adjustment. Speed parameter was ignored.`,\n });\n }\n\n // Handle language - Deepgram models are language-specific via model ID\n if (language) {\n warnings.push({\n type: 'unsupported',\n feature: 'language',\n details: `Deepgram TTS models are language-specific via the model ID. Language parameter \"${language}\" was ignored. Select a model with the appropriate language suffix (e.g., \"-en\" for English).`,\n });\n }\n\n // Handle instructions - not supported in Deepgram REST API\n if (instructions) {\n warnings.push({\n type: 'unsupported',\n feature: 'instructions',\n details: `Deepgram TTS REST API does not support instructions. Instructions parameter was ignored.`,\n });\n }\n\n return {\n requestBody,\n queryParams,\n warnings,\n };\n }\n\n async doGenerate(\n options: Parameters<SpeechModelV3['doGenerate']>[0],\n ): Promise<Awaited<ReturnType<SpeechModelV3['doGenerate']>>> {\n const currentDate = this.config._internal?.currentDate?.() ?? new Date();\n const { requestBody, queryParams, warnings } = await this.getArgs(options);\n\n const {\n value: audio,\n responseHeaders,\n rawValue: rawResponse,\n } = await postJsonToApi({\n url: (() => {\n const baseUrl = this.config.url({\n path: '/v1/speak',\n modelId: this.modelId,\n });\n const queryString = new URLSearchParams(queryParams).toString();\n return queryString ? `${baseUrl}?${queryString}` : baseUrl;\n })(),\n headers: combineHeaders(this.config.headers(), options.headers),\n body: requestBody,\n failedResponseHandler: deepgramFailedResponseHandler,\n successfulResponseHandler: createBinaryResponseHandler(),\n abortSignal: options.abortSignal,\n fetch: this.config.fetch,\n });\n\n return {\n audio,\n warnings,\n request: {\n body: JSON.stringify(requestBody),\n },\n response: {\n timestamp: currentDate,\n modelId: this.modelId,\n headers: responseHeaders,\n body: rawResponse,\n },\n };\n }\n}\n","// Version string of this package injected at build time.\ndeclare const __PACKAGE_VERSION__: string | undefined;\nexport const VERSION: string =\n typeof __PACKAGE_VERSION__ !== 'undefined'\n ? __PACKAGE_VERSION__\n : '0.0.0-test';\n"],"mappings":"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","names":["import_provider_utils","import_provider_utils","import_v4","import_provider_utils","import_v4"]}
|
|
1
|
+
{"version":3,"sources":["../src/index.ts","../src/deepgram-provider.ts","../src/deepgram-transcription-model.ts","../src/deepgram-error.ts","../src/deepgram-speech-model.ts","../src/version.ts"],"sourcesContent":["export { createDeepgram, deepgram } from './deepgram-provider';\nexport type {\n DeepgramProvider,\n DeepgramProviderSettings,\n} from './deepgram-provider';\nexport { DeepgramSpeechModel } from './deepgram-speech-model';\nexport type { DeepgramSpeechCallOptions } from './deepgram-speech-model';\nexport type { DeepgramSpeechModelId } from './deepgram-speech-options';\nexport { VERSION } from './version';\n","import {\n TranscriptionModelV3,\n SpeechModelV3,\n ProviderV3,\n NoSuchModelError,\n} from '@ai-sdk/provider';\nimport {\n FetchFunction,\n loadApiKey,\n withUserAgentSuffix,\n} from '@ai-sdk/provider-utils';\nimport { DeepgramTranscriptionModel } from './deepgram-transcription-model';\nimport { DeepgramTranscriptionModelId } from './deepgram-transcription-options';\nimport { DeepgramSpeechModel } from './deepgram-speech-model';\nimport { DeepgramSpeechModelId } from './deepgram-speech-options';\nimport { VERSION } from './version';\n\nexport interface DeepgramProvider extends ProviderV3 {\n (\n modelId: 'nova-3',\n settings?: {},\n ): {\n transcription: DeepgramTranscriptionModel;\n };\n\n /**\nCreates a model for transcription.\n */\n transcription(modelId: DeepgramTranscriptionModelId): TranscriptionModelV3;\n\n /**\nCreates a model for speech generation.\n */\n speech(modelId: DeepgramSpeechModelId): SpeechModelV3;\n\n /**\n * @deprecated Use `embeddingModel` instead.\n */\n textEmbeddingModel(modelId: string): never;\n}\n\nexport interface DeepgramProviderSettings {\n /**\nAPI key for authenticating requests.\n */\n apiKey?: string;\n\n /**\nCustom headers to include in the requests.\n */\n headers?: Record<string, string>;\n\n /**\nCustom fetch implementation. You can use it as a middleware to intercept requests,\nor to provide a custom fetch implementation for e.g. testing.\n */\n fetch?: FetchFunction;\n}\n\n/**\nCreate an Deepgram provider instance.\n */\nexport function createDeepgram(\n options: DeepgramProviderSettings = {},\n): DeepgramProvider {\n const getHeaders = () =>\n withUserAgentSuffix(\n {\n authorization: `Token ${loadApiKey({\n apiKey: options.apiKey,\n environmentVariableName: 'DEEPGRAM_API_KEY',\n description: 'Deepgram',\n })}`,\n ...options.headers,\n },\n `ai-sdk/deepgram/${VERSION}`,\n );\n\n const createTranscriptionModel = (modelId: DeepgramTranscriptionModelId) =>\n new DeepgramTranscriptionModel(modelId, {\n provider: `deepgram.transcription`,\n url: ({ path }) => `https://api.deepgram.com${path}`,\n headers: getHeaders,\n fetch: options.fetch,\n });\n\n const createSpeechModel = (modelId: DeepgramSpeechModelId) =>\n new DeepgramSpeechModel(modelId, {\n provider: `deepgram.speech`,\n url: ({ path }) => `https://api.deepgram.com${path}`,\n headers: getHeaders,\n fetch: options.fetch,\n });\n\n const provider = function (modelId: DeepgramTranscriptionModelId) {\n return {\n transcription: createTranscriptionModel(modelId),\n };\n };\n\n provider.specificationVersion = 'v3' as const;\n provider.transcription = createTranscriptionModel;\n provider.transcriptionModel = createTranscriptionModel;\n provider.speech = createSpeechModel;\n provider.speechModel = createSpeechModel;\n\n // Required ProviderV3 methods that are not supported\n provider.languageModel = (modelId: string) => {\n throw new NoSuchModelError({\n modelId,\n modelType: 'languageModel',\n message: 'Deepgram does not provide language models',\n });\n };\n\n provider.embeddingModel = (modelId: string) => {\n throw new NoSuchModelError({\n modelId,\n modelType: 'embeddingModel',\n message: 'Deepgram does not provide text embedding models',\n });\n };\n provider.textEmbeddingModel = provider.embeddingModel;\n\n provider.imageModel = (modelId: string) => {\n throw new NoSuchModelError({\n modelId,\n modelType: 'imageModel',\n message: 'Deepgram does not provide image models',\n });\n };\n\n return provider as DeepgramProvider;\n}\n\n/**\nDefault Deepgram provider instance.\n */\nexport const deepgram = createDeepgram();\n","import { SharedV3Warning, TranscriptionModelV3 } from '@ai-sdk/provider';\nimport {\n combineHeaders,\n createJsonResponseHandler,\n parseProviderOptions,\n postToApi,\n} from '@ai-sdk/provider-utils';\nimport { z } from 'zod/v4';\nimport { DeepgramTranscriptionAPITypes } from './deepgram-api-types';\nimport { DeepgramConfig } from './deepgram-config';\nimport { deepgramFailedResponseHandler } from './deepgram-error';\nimport { DeepgramTranscriptionModelId } from './deepgram-transcription-options';\n\n// https://developers.deepgram.com/docs/pre-recorded-audio#results\nconst deepgramProviderOptionsSchema = z.object({\n /** Language to use for transcription. If not specified, Deepgram defaults to English. Use `detectLanguage: true` to enable automatic language detection. */\n language: z.string().nullish(),\n /** Whether to enable automatic language detection. When true, Deepgram will detect the language of the audio. */\n detectLanguage: z.boolean().nullish(),\n /** Whether to use smart formatting, which formats written-out numbers, dates, times, etc. */\n smartFormat: z.boolean().nullish(),\n /** Whether to add punctuation to the transcript. */\n punctuate: z.boolean().nullish(),\n /** Whether to format the transcript into paragraphs. */\n paragraphs: z.boolean().nullish(),\n /** Whether to generate a summary of the transcript. Use 'v2' for the latest version or false to disable. */\n summarize: z.union([z.literal('v2'), z.literal(false)]).nullish(),\n /** Whether to identify topics in the transcript. */\n topics: z.boolean().nullish(),\n /** Whether to identify intents in the transcript. */\n intents: z.boolean().nullish(),\n /** Whether to analyze sentiment in the transcript. */\n sentiment: z.boolean().nullish(),\n /** Whether to detect and tag named entities in the transcript. */\n detectEntities: z.boolean().nullish(),\n /** Specify terms or patterns to redact from the transcript. Can be a string or array of strings. */\n redact: z.union([z.string(), z.array(z.string())]).nullish(),\n /** String to replace redacted content with. */\n replace: z.string().nullish(),\n /** Term or phrase to search for in the transcript. */\n search: z.string().nullish(),\n /** Key term to identify in the transcript. */\n keyterm: z.string().nullish(),\n /** Whether to identify different speakers in the audio. */\n diarize: z.boolean().nullish(),\n /** Whether to segment the transcript into utterances. */\n utterances: z.boolean().nullish(),\n /** Minimum duration of silence (in seconds) to trigger a new utterance. */\n uttSplit: z.number().nullish(),\n /** Whether to include filler words (um, uh, etc.) in the transcript. */\n fillerWords: z.boolean().nullish(),\n});\n\nexport type DeepgramTranscriptionCallOptions = z.infer<\n typeof deepgramProviderOptionsSchema\n>;\n\ninterface DeepgramTranscriptionModelConfig extends DeepgramConfig {\n _internal?: {\n currentDate?: () => Date;\n };\n}\n\nexport class DeepgramTranscriptionModel implements TranscriptionModelV3 {\n readonly specificationVersion = 'v3';\n\n get provider(): string {\n return this.config.provider;\n }\n\n constructor(\n readonly modelId: DeepgramTranscriptionModelId,\n private readonly config: DeepgramTranscriptionModelConfig,\n ) {}\n\n private async getArgs({\n providerOptions,\n }: Parameters<TranscriptionModelV3['doGenerate']>[0]) {\n const warnings: SharedV3Warning[] = [];\n\n // Parse provider options\n const deepgramOptions = await parseProviderOptions({\n provider: 'deepgram',\n providerOptions,\n schema: deepgramProviderOptionsSchema,\n });\n\n const body: DeepgramTranscriptionAPITypes = {\n model: this.modelId,\n diarize: true,\n };\n\n // Add provider-specific options\n if (deepgramOptions) {\n body.detect_entities = deepgramOptions.detectEntities ?? undefined;\n body.detect_language = deepgramOptions.detectLanguage ?? undefined;\n body.filler_words = deepgramOptions.fillerWords ?? undefined;\n body.language = deepgramOptions.language ?? undefined;\n body.punctuate = deepgramOptions.punctuate ?? undefined;\n body.redact = deepgramOptions.redact ?? undefined;\n body.search = deepgramOptions.search ?? undefined;\n body.smart_format = deepgramOptions.smartFormat ?? undefined;\n body.summarize = deepgramOptions.summarize ?? undefined;\n body.topics = deepgramOptions.topics ?? undefined;\n body.utterances = deepgramOptions.utterances ?? undefined;\n body.utt_split = deepgramOptions.uttSplit ?? undefined;\n\n if (typeof deepgramOptions.diarize === 'boolean') {\n body.diarize = deepgramOptions.diarize;\n }\n }\n\n // Convert body to URL query parameters\n const queryParams = new URLSearchParams();\n for (const [key, value] of Object.entries(body)) {\n if (value !== undefined) {\n queryParams.append(key, String(value));\n }\n }\n\n return {\n queryParams,\n warnings,\n };\n }\n\n async doGenerate(\n options: Parameters<TranscriptionModelV3['doGenerate']>[0],\n ): Promise<Awaited<ReturnType<TranscriptionModelV3['doGenerate']>>> {\n const currentDate = this.config._internal?.currentDate?.() ?? new Date();\n const { queryParams, warnings } = await this.getArgs(options);\n\n const {\n value: response,\n responseHeaders,\n rawValue: rawResponse,\n } = await postToApi({\n url:\n this.config.url({\n path: '/v1/listen',\n modelId: this.modelId,\n }) +\n '?' +\n queryParams.toString(),\n headers: {\n ...combineHeaders(this.config.headers(), options.headers),\n 'Content-Type': options.mediaType,\n },\n body: {\n content: options.audio,\n values: options.audio,\n },\n failedResponseHandler: deepgramFailedResponseHandler,\n successfulResponseHandler: createJsonResponseHandler(\n deepgramTranscriptionResponseSchema,\n ),\n abortSignal: options.abortSignal,\n fetch: this.config.fetch,\n });\n\n return {\n text:\n response.results?.channels.at(0)?.alternatives.at(0)?.transcript ?? '',\n segments:\n response.results?.channels[0].alternatives[0].words?.map(word => ({\n text: word.word,\n startSecond: word.start,\n endSecond: word.end,\n })) ?? [],\n language:\n response.results?.channels.at(0)?.detected_language ?? undefined,\n durationInSeconds: response.metadata?.duration ?? undefined,\n warnings,\n response: {\n timestamp: currentDate,\n modelId: this.modelId,\n headers: responseHeaders,\n body: rawResponse,\n },\n };\n }\n}\n\nconst deepgramTranscriptionResponseSchema = z.object({\n metadata: z\n .object({\n duration: z.number(),\n })\n .nullish(),\n results: z\n .object({\n channels: z.array(\n z.object({\n detected_language: z.string().nullish(),\n alternatives: z.array(\n z.object({\n transcript: z.string(),\n words: z.array(\n z.object({\n word: z.string(),\n start: z.number(),\n end: z.number(),\n }),\n ),\n }),\n ),\n }),\n ),\n })\n .nullish(),\n});\n","import { z } from 'zod/v4';\nimport { createJsonErrorResponseHandler } from '@ai-sdk/provider-utils';\n\nexport const deepgramErrorDataSchema = z.object({\n error: z.object({\n message: z.string(),\n code: z.number(),\n }),\n});\n\nexport type DeepgramErrorData = z.infer<typeof deepgramErrorDataSchema>;\n\nexport const deepgramFailedResponseHandler = createJsonErrorResponseHandler({\n errorSchema: deepgramErrorDataSchema,\n errorToMessage: data => data.error.message,\n});\n","import { SpeechModelV3, SharedV3Warning } from '@ai-sdk/provider';\nimport {\n combineHeaders,\n createBinaryResponseHandler,\n parseProviderOptions,\n postJsonToApi,\n} from '@ai-sdk/provider-utils';\nimport { z } from 'zod/v4';\nimport { DeepgramConfig } from './deepgram-config';\nimport { deepgramFailedResponseHandler } from './deepgram-error';\nimport { DeepgramSpeechModelId } from './deepgram-speech-options';\n\n// https://developers.deepgram.com/reference/text-to-speech/speak-request\nconst deepgramSpeechProviderOptionsSchema = z.object({\n /** Bitrate of the audio in bits per second. Can be a number or predefined enum value. */\n bitRate: z.union([z.number(), z.string()]).nullish(),\n /** Container format for the output audio (mp3, wav, etc.). */\n container: z.string().nullish(),\n /** Encoding type for the audio output (linear16, mulaw, alaw, etc.). */\n encoding: z.string().nullish(),\n /** Sample rate for the output audio in Hz (8000, 16000, 24000, 44100, 48000). */\n sampleRate: z.number().nullish(),\n /** URL to which we'll make the callback request. */\n callback: z.string().url().nullish(),\n /** HTTP method by which the callback request will be made (POST or PUT). */\n callbackMethod: z.enum(['POST', 'PUT']).nullish(),\n /** Opts out requests from the Deepgram Model Improvement Program. */\n mipOptOut: z.boolean().nullish(),\n /** Label your requests for the purpose of identification during usage reporting. */\n tag: z.union([z.string(), z.array(z.string())]).nullish(),\n});\n\nexport type DeepgramSpeechCallOptions = z.infer<\n typeof deepgramSpeechProviderOptionsSchema\n>;\n\ninterface DeepgramSpeechModelConfig extends DeepgramConfig {\n _internal?: {\n currentDate?: () => Date;\n };\n}\n\nexport class DeepgramSpeechModel implements SpeechModelV3 {\n readonly specificationVersion = 'v3';\n\n get provider(): string {\n return this.config.provider;\n }\n\n constructor(\n readonly modelId: DeepgramSpeechModelId,\n private readonly config: DeepgramSpeechModelConfig,\n ) {}\n\n private async getArgs({\n text,\n voice,\n outputFormat = 'mp3',\n speed,\n language,\n instructions,\n providerOptions,\n }: Parameters<SpeechModelV3['doGenerate']>[0]) {\n const warnings: SharedV3Warning[] = [];\n\n // Parse provider options\n const deepgramOptions = await parseProviderOptions({\n provider: 'deepgram',\n providerOptions,\n schema: deepgramSpeechProviderOptionsSchema,\n });\n\n // Create request body\n const requestBody = {\n text,\n };\n\n // Prepare query parameters\n const queryParams: Record<string, string> = {\n model: this.modelId,\n };\n\n // Map outputFormat to encoding/container/sample_rate\n // https://developers.deepgram.com/docs/tts-media-output-settings#audio-format-combinations\n if (outputFormat) {\n const formatLower = outputFormat.toLowerCase();\n\n // Common format mappings based on Deepgram's valid combinations\n const formatMap: Record<\n string,\n {\n encoding?: string;\n container?: string;\n sampleRate?: number;\n bitRate?: number;\n }\n > = {\n // MP3: no container, fixed 22050 sample rate, bitrate 32000/48000\n mp3: { encoding: 'mp3' }, // Don't set container or sample_rate for mp3\n // Linear16: wav/none container, configurable sample rate\n wav: { container: 'wav', encoding: 'linear16' },\n linear16: { encoding: 'linear16', container: 'wav' },\n // MuLaw: wav/none container, 8000/16000 sample rate\n mulaw: { encoding: 'mulaw', container: 'wav' },\n // ALaw: wav/none container, 8000/16000 sample rate\n alaw: { encoding: 'alaw', container: 'wav' },\n // Opus: ogg container, fixed 48000 sample rate\n opus: { encoding: 'opus', container: 'ogg' },\n ogg: { encoding: 'opus', container: 'ogg' },\n // FLAC: no container, configurable sample rate\n flac: { encoding: 'flac' },\n // AAC: no container, fixed 22050 sample rate\n aac: { encoding: 'aac' },\n // Raw audio (no container)\n pcm: { encoding: 'linear16', container: 'none' },\n };\n\n const mappedFormat = formatMap[formatLower];\n if (mappedFormat) {\n if (mappedFormat.encoding) {\n queryParams.encoding = mappedFormat.encoding;\n }\n // Only set container if specified and valid for the encoding\n if (mappedFormat.container) {\n queryParams.container = mappedFormat.container;\n }\n // Only set sample_rate if specified and valid for the encoding\n if (mappedFormat.sampleRate) {\n queryParams.sample_rate = String(mappedFormat.sampleRate);\n }\n // Set bitrate for formats that support it\n if (mappedFormat.bitRate) {\n queryParams.bit_rate = String(mappedFormat.bitRate);\n }\n } else {\n // Try to parse format like \"wav_44100\" or \"linear16_24000\"\n const parts = formatLower.split('_');\n if (parts.length >= 2) {\n const firstPart = parts[0];\n const secondPart = parts[1];\n const sampleRate = parseInt(secondPart, 10);\n\n // Check if first part is an encoding\n if (\n [\n 'linear16',\n 'mulaw',\n 'alaw',\n 'mp3',\n 'opus',\n 'flac',\n 'aac',\n ].includes(firstPart)\n ) {\n queryParams.encoding = firstPart;\n\n // Set container based on encoding\n if (['linear16', 'mulaw', 'alaw'].includes(firstPart)) {\n // These can use wav or none, default to wav\n queryParams.container = 'wav';\n } else if (firstPart === 'opus') {\n queryParams.container = 'ogg';\n }\n // mp3, flac, aac don't use container\n\n // Set sample rate if valid for encoding\n if (!isNaN(sampleRate)) {\n if (\n firstPart === 'linear16' &&\n [8000, 16000, 24000, 32000, 48000].includes(sampleRate)\n ) {\n queryParams.sample_rate = String(sampleRate);\n } else if (\n firstPart === 'mulaw' &&\n [8000, 16000].includes(sampleRate)\n ) {\n queryParams.sample_rate = String(sampleRate);\n } else if (\n firstPart === 'alaw' &&\n [8000, 16000].includes(sampleRate)\n ) {\n queryParams.sample_rate = String(sampleRate);\n } else if (\n firstPart === 'flac' &&\n [8000, 16000, 22050, 32000, 48000].includes(sampleRate)\n ) {\n queryParams.sample_rate = String(sampleRate);\n }\n // mp3, opus, aac have fixed sample rates, don't set\n }\n } else if (['wav', 'ogg'].includes(firstPart)) {\n // First part is container\n if (firstPart === 'wav') {\n queryParams.container = 'wav';\n queryParams.encoding = 'linear16'; // Default encoding for wav\n } else if (firstPart === 'ogg') {\n queryParams.container = 'ogg';\n queryParams.encoding = 'opus'; // Default encoding for ogg\n }\n if (!isNaN(sampleRate)) {\n queryParams.sample_rate = String(sampleRate);\n }\n }\n }\n }\n }\n\n // Add provider-specific options - map camelCase to snake_case\n // Validate combinations according to Deepgram's spec\n if (deepgramOptions) {\n if (deepgramOptions.encoding) {\n const newEncoding = deepgramOptions.encoding.toLowerCase();\n\n // If encoding changes, we may need to clear incompatible parameters\n queryParams.encoding = newEncoding;\n\n // Validate container based on encoding\n if (deepgramOptions.container) {\n // Validate container is valid for this encoding\n if (['linear16', 'mulaw', 'alaw'].includes(newEncoding)) {\n if (\n !['wav', 'none'].includes(deepgramOptions.container.toLowerCase())\n ) {\n warnings.push({\n type: 'unsupported',\n feature: 'providerOptions',\n details: `Encoding \"${newEncoding}\" only supports containers \"wav\" or \"none\". Container \"${deepgramOptions.container}\" was ignored.`,\n });\n } else {\n queryParams.container = deepgramOptions.container.toLowerCase();\n }\n } else if (newEncoding === 'opus') {\n // opus requires ogg container, override any previous container setting\n queryParams.container = 'ogg';\n } else if (['mp3', 'flac', 'aac'].includes(newEncoding)) {\n warnings.push({\n type: 'unsupported',\n feature: 'providerOptions',\n details: `Encoding \"${newEncoding}\" does not support container parameter. Container \"${deepgramOptions.container}\" was ignored.`,\n });\n // Remove container if it was set by outputFormat\n delete queryParams.container;\n }\n } else {\n // No container specified in providerOptions\n // If encoding changed to one that doesn't support container, remove it\n if (['mp3', 'flac', 'aac'].includes(newEncoding)) {\n delete queryParams.container;\n } else if (['linear16', 'mulaw', 'alaw'].includes(newEncoding)) {\n // Set default container if not already set\n if (!queryParams.container) {\n queryParams.container = 'wav'; // Default for these encodings\n }\n } else if (newEncoding === 'opus') {\n // opus requires ogg container, override any previous container setting\n queryParams.container = 'ogg';\n }\n }\n\n // Clean up sample_rate and bit_rate if they're incompatible with the new encoding\n // Fixed sample rate encodings (mp3, opus, aac) don't support sample_rate parameter\n if (['mp3', 'opus', 'aac'].includes(newEncoding)) {\n delete queryParams.sample_rate;\n }\n // Lossless encodings without bitrate support (linear16, mulaw, alaw, flac) don't support bit_rate\n if (['linear16', 'mulaw', 'alaw', 'flac'].includes(newEncoding)) {\n delete queryParams.bit_rate;\n }\n } else if (deepgramOptions.container) {\n // Container specified without encoding - set default encoding\n const container = deepgramOptions.container.toLowerCase();\n const oldEncoding = queryParams.encoding?.toLowerCase();\n let newEncoding: string | undefined;\n\n if (container === 'wav') {\n queryParams.container = 'wav';\n newEncoding = 'linear16'; // Default encoding for wav\n } else if (container === 'ogg') {\n queryParams.container = 'ogg';\n newEncoding = 'opus'; // Default encoding for ogg\n } else if (container === 'none') {\n queryParams.container = 'none';\n newEncoding = 'linear16'; // Default encoding for raw audio\n }\n\n // If encoding changed, clean up incompatible parameters\n if (newEncoding && newEncoding !== oldEncoding) {\n queryParams.encoding = newEncoding;\n // Clean up sample_rate and bit_rate if they're incompatible with the new encoding\n if (['mp3', 'opus', 'aac'].includes(newEncoding)) {\n delete queryParams.sample_rate;\n }\n if (['linear16', 'mulaw', 'alaw', 'flac'].includes(newEncoding)) {\n delete queryParams.bit_rate;\n }\n }\n }\n\n if (deepgramOptions.sampleRate != null) {\n const encoding = queryParams.encoding?.toLowerCase() || '';\n const sampleRate = deepgramOptions.sampleRate;\n\n // Validate sample rate based on encoding\n if (encoding === 'linear16') {\n if (![8000, 16000, 24000, 32000, 48000].includes(sampleRate)) {\n warnings.push({\n type: 'unsupported',\n feature: 'providerOptions',\n details: `Encoding \"linear16\" only supports sample rates: 8000, 16000, 24000, 32000, 48000. Sample rate ${sampleRate} was ignored.`,\n });\n } else {\n queryParams.sample_rate = String(sampleRate);\n }\n } else if (encoding === 'mulaw' || encoding === 'alaw') {\n if (![8000, 16000].includes(sampleRate)) {\n warnings.push({\n type: 'unsupported',\n feature: 'providerOptions',\n details: `Encoding \"${encoding}\" only supports sample rates: 8000, 16000. Sample rate ${sampleRate} was ignored.`,\n });\n } else {\n queryParams.sample_rate = String(sampleRate);\n }\n } else if (encoding === 'flac') {\n if (![8000, 16000, 22050, 32000, 48000].includes(sampleRate)) {\n warnings.push({\n type: 'unsupported',\n feature: 'providerOptions',\n details: `Encoding \"flac\" only supports sample rates: 8000, 16000, 22050, 32000, 48000. Sample rate ${sampleRate} was ignored.`,\n });\n } else {\n queryParams.sample_rate = String(sampleRate);\n }\n } else if (['mp3', 'opus', 'aac'].includes(encoding)) {\n warnings.push({\n type: 'unsupported',\n feature: 'providerOptions',\n details: `Encoding \"${encoding}\" has a fixed sample rate and does not support sample_rate parameter. Sample rate ${sampleRate} was ignored.`,\n });\n } else {\n // No encoding set yet, allow it (will be validated when encoding is set)\n queryParams.sample_rate = String(sampleRate);\n }\n }\n\n if (deepgramOptions.bitRate != null) {\n const encoding = queryParams.encoding?.toLowerCase() || '';\n const bitRate = deepgramOptions.bitRate;\n\n // Validate bitrate based on encoding\n if (encoding === 'mp3') {\n if (![32000, 48000].includes(Number(bitRate))) {\n warnings.push({\n type: 'unsupported',\n feature: 'providerOptions',\n details: `Encoding \"mp3\" only supports bit rates: 32000, 48000. Bit rate ${bitRate} was ignored.`,\n });\n } else {\n queryParams.bit_rate = String(bitRate);\n }\n } else if (encoding === 'opus') {\n const bitRateNum = Number(bitRate);\n if (bitRateNum < 4000 || bitRateNum > 650000) {\n warnings.push({\n type: 'unsupported',\n feature: 'providerOptions',\n details: `Encoding \"opus\" supports bit rates between 4000 and 650000. Bit rate ${bitRate} was ignored.`,\n });\n } else {\n queryParams.bit_rate = String(bitRate);\n }\n } else if (encoding === 'aac') {\n const bitRateNum = Number(bitRate);\n if (bitRateNum < 4000 || bitRateNum > 192000) {\n warnings.push({\n type: 'unsupported',\n feature: 'providerOptions',\n details: `Encoding \"aac\" supports bit rates between 4000 and 192000. Bit rate ${bitRate} was ignored.`,\n });\n } else {\n queryParams.bit_rate = String(bitRate);\n }\n } else if (['linear16', 'mulaw', 'alaw', 'flac'].includes(encoding)) {\n warnings.push({\n type: 'unsupported',\n feature: 'providerOptions',\n details: `Encoding \"${encoding}\" does not support bit_rate parameter. Bit rate ${bitRate} was ignored.`,\n });\n } else {\n // No encoding set yet, allow it\n queryParams.bit_rate = String(bitRate);\n }\n }\n\n if (deepgramOptions.callback) {\n queryParams.callback = deepgramOptions.callback;\n }\n if (deepgramOptions.callbackMethod) {\n queryParams.callback_method = deepgramOptions.callbackMethod;\n }\n if (deepgramOptions.mipOptOut != null) {\n queryParams.mip_opt_out = String(deepgramOptions.mipOptOut);\n }\n if (deepgramOptions.tag) {\n if (Array.isArray(deepgramOptions.tag)) {\n queryParams.tag = deepgramOptions.tag.join(',');\n } else {\n queryParams.tag = deepgramOptions.tag;\n }\n }\n }\n\n // Handle voice parameter - Deepgram embeds voice in model ID\n // If voice is provided and different from model, warn user\n if (voice && voice !== this.modelId) {\n warnings.push({\n type: 'unsupported',\n feature: 'voice',\n details: `Deepgram TTS models embed the voice in the model ID. The voice parameter \"${voice}\" was ignored. Use the model ID to select a voice (e.g., \"aura-2-helena-en\").`,\n });\n }\n\n // Handle speed - not supported in Deepgram REST API\n if (speed != null) {\n warnings.push({\n type: 'unsupported',\n feature: 'speed',\n details: `Deepgram TTS REST API does not support speed adjustment. Speed parameter was ignored.`,\n });\n }\n\n // Handle language - Deepgram models are language-specific via model ID\n if (language) {\n warnings.push({\n type: 'unsupported',\n feature: 'language',\n details: `Deepgram TTS models are language-specific via the model ID. Language parameter \"${language}\" was ignored. Select a model with the appropriate language suffix (e.g., \"-en\" for English).`,\n });\n }\n\n // Handle instructions - not supported in Deepgram REST API\n if (instructions) {\n warnings.push({\n type: 'unsupported',\n feature: 'instructions',\n details: `Deepgram TTS REST API does not support instructions. Instructions parameter was ignored.`,\n });\n }\n\n return {\n requestBody,\n queryParams,\n warnings,\n };\n }\n\n async doGenerate(\n options: Parameters<SpeechModelV3['doGenerate']>[0],\n ): Promise<Awaited<ReturnType<SpeechModelV3['doGenerate']>>> {\n const currentDate = this.config._internal?.currentDate?.() ?? new Date();\n const { requestBody, queryParams, warnings } = await this.getArgs(options);\n\n const {\n value: audio,\n responseHeaders,\n rawValue: rawResponse,\n } = await postJsonToApi({\n url: (() => {\n const baseUrl = this.config.url({\n path: '/v1/speak',\n modelId: this.modelId,\n });\n const queryString = new URLSearchParams(queryParams).toString();\n return queryString ? `${baseUrl}?${queryString}` : baseUrl;\n })(),\n headers: combineHeaders(this.config.headers(), options.headers),\n body: requestBody,\n failedResponseHandler: deepgramFailedResponseHandler,\n successfulResponseHandler: createBinaryResponseHandler(),\n abortSignal: options.abortSignal,\n fetch: this.config.fetch,\n });\n\n return {\n audio,\n warnings,\n request: {\n body: JSON.stringify(requestBody),\n },\n response: {\n timestamp: currentDate,\n modelId: this.modelId,\n headers: responseHeaders,\n body: rawResponse,\n },\n };\n }\n}\n","// Version string of this package injected at build time.\ndeclare const __PACKAGE_VERSION__: string | undefined;\nexport const VERSION: string =\n typeof __PACKAGE_VERSION__ !== 'undefined'\n ? __PACKAGE_VERSION__\n : '0.0.0-test';\n"],"mappings":"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","names":["import_provider_utils","import_provider_utils","import_v4","import_provider_utils","import_v4"]}
|
package/dist/index.mjs
CHANGED
|
@@ -579,7 +579,7 @@ var DeepgramSpeechModel = class {
|
|
|
579
579
|
};
|
|
580
580
|
|
|
581
581
|
// src/version.ts
|
|
582
|
-
var VERSION = true ? "2.0.
|
|
582
|
+
var VERSION = true ? "2.0.1" : "0.0.0-test";
|
|
583
583
|
|
|
584
584
|
// src/deepgram-provider.ts
|
|
585
585
|
function createDeepgram(options = {}) {
|
package/dist/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/deepgram-provider.ts","../src/deepgram-transcription-model.ts","../src/deepgram-error.ts","../src/deepgram-speech-model.ts","../src/version.ts"],"sourcesContent":["import {\n TranscriptionModelV3,\n SpeechModelV3,\n ProviderV3,\n NoSuchModelError,\n} from '@ai-sdk/provider';\nimport {\n FetchFunction,\n loadApiKey,\n withUserAgentSuffix,\n} from '@ai-sdk/provider-utils';\nimport { DeepgramTranscriptionModel } from './deepgram-transcription-model';\nimport { DeepgramTranscriptionModelId } from './deepgram-transcription-options';\nimport { DeepgramSpeechModel } from './deepgram-speech-model';\nimport { DeepgramSpeechModelId } from './deepgram-speech-options';\nimport { VERSION } from './version';\n\nexport interface DeepgramProvider extends ProviderV3 {\n (\n modelId: 'nova-3',\n settings?: {},\n ): {\n transcription: DeepgramTranscriptionModel;\n };\n\n /**\nCreates a model for transcription.\n */\n transcription(modelId: DeepgramTranscriptionModelId): TranscriptionModelV3;\n\n /**\nCreates a model for speech generation.\n */\n speech(modelId: DeepgramSpeechModelId): SpeechModelV3;\n\n /**\n * @deprecated Use `embeddingModel` instead.\n */\n textEmbeddingModel(modelId: string): never;\n}\n\nexport interface DeepgramProviderSettings {\n /**\nAPI key for authenticating requests.\n */\n apiKey?: string;\n\n /**\nCustom headers to include in the requests.\n */\n headers?: Record<string, string>;\n\n /**\nCustom fetch implementation. You can use it as a middleware to intercept requests,\nor to provide a custom fetch implementation for e.g. testing.\n */\n fetch?: FetchFunction;\n}\n\n/**\nCreate an Deepgram provider instance.\n */\nexport function createDeepgram(\n options: DeepgramProviderSettings = {},\n): DeepgramProvider {\n const getHeaders = () =>\n withUserAgentSuffix(\n {\n authorization: `Token ${loadApiKey({\n apiKey: options.apiKey,\n environmentVariableName: 'DEEPGRAM_API_KEY',\n description: 'Deepgram',\n })}`,\n ...options.headers,\n },\n `ai-sdk/deepgram/${VERSION}`,\n );\n\n const createTranscriptionModel = (modelId: DeepgramTranscriptionModelId) =>\n new DeepgramTranscriptionModel(modelId, {\n provider: `deepgram.transcription`,\n url: ({ path }) => `https://api.deepgram.com${path}`,\n headers: getHeaders,\n fetch: options.fetch,\n });\n\n const createSpeechModel = (modelId: DeepgramSpeechModelId) =>\n new DeepgramSpeechModel(modelId, {\n provider: `deepgram.speech`,\n url: ({ path }) => `https://api.deepgram.com${path}`,\n headers: getHeaders,\n fetch: options.fetch,\n });\n\n const provider = function (modelId: DeepgramTranscriptionModelId) {\n return {\n transcription: createTranscriptionModel(modelId),\n };\n };\n\n provider.specificationVersion = 'v3' as const;\n provider.transcription = createTranscriptionModel;\n provider.transcriptionModel = createTranscriptionModel;\n provider.speech = createSpeechModel;\n provider.speechModel = createSpeechModel;\n\n // Required ProviderV3 methods that are not supported\n provider.languageModel = (modelId: string) => {\n throw new NoSuchModelError({\n modelId,\n modelType: 'languageModel',\n message: 'Deepgram does not provide language models',\n });\n };\n\n provider.embeddingModel = (modelId: string) => {\n throw new NoSuchModelError({\n modelId,\n modelType: 'embeddingModel',\n message: 'Deepgram does not provide text embedding models',\n });\n };\n provider.textEmbeddingModel = provider.embeddingModel;\n\n provider.imageModel = (modelId: string) => {\n throw new NoSuchModelError({\n modelId,\n modelType: 'imageModel',\n message: 'Deepgram does not provide image models',\n });\n };\n\n return provider as DeepgramProvider;\n}\n\n/**\nDefault Deepgram provider instance.\n */\nexport const deepgram = createDeepgram();\n","import { SharedV3Warning, TranscriptionModelV3 } from '@ai-sdk/provider';\nimport {\n combineHeaders,\n createJsonResponseHandler,\n parseProviderOptions,\n postToApi,\n} from '@ai-sdk/provider-utils';\nimport { z } from 'zod/v4';\nimport { DeepgramTranscriptionAPITypes } from './deepgram-api-types';\nimport { DeepgramConfig } from './deepgram-config';\nimport { deepgramFailedResponseHandler } from './deepgram-error';\nimport { DeepgramTranscriptionModelId } from './deepgram-transcription-options';\n\n// https://developers.deepgram.com/docs/pre-recorded-audio#results\nconst deepgramProviderOptionsSchema = z.object({\n /** Language to use for transcription. If not specified, Deepgram defaults to English. Use `detectLanguage: true` to enable automatic language detection. */\n language: z.string().nullish(),\n /** Whether to enable automatic language detection. When true, Deepgram will detect the language of the audio. */\n detectLanguage: z.boolean().nullish(),\n /** Whether to use smart formatting, which formats written-out numbers, dates, times, etc. */\n smartFormat: z.boolean().nullish(),\n /** Whether to add punctuation to the transcript. */\n punctuate: z.boolean().nullish(),\n /** Whether to format the transcript into paragraphs. */\n paragraphs: z.boolean().nullish(),\n /** Whether to generate a summary of the transcript. Use 'v2' for the latest version or false to disable. */\n summarize: z.union([z.literal('v2'), z.literal(false)]).nullish(),\n /** Whether to identify topics in the transcript. */\n topics: z.boolean().nullish(),\n /** Whether to identify intents in the transcript. */\n intents: z.boolean().nullish(),\n /** Whether to analyze sentiment in the transcript. */\n sentiment: z.boolean().nullish(),\n /** Whether to detect and tag named entities in the transcript. */\n detectEntities: z.boolean().nullish(),\n /** Specify terms or patterns to redact from the transcript. Can be a string or array of strings. */\n redact: z.union([z.string(), z.array(z.string())]).nullish(),\n /** String to replace redacted content with. */\n replace: z.string().nullish(),\n /** Term or phrase to search for in the transcript. */\n search: z.string().nullish(),\n /** Key term to identify in the transcript. */\n keyterm: z.string().nullish(),\n /** Whether to identify different speakers in the audio. */\n diarize: z.boolean().nullish(),\n /** Whether to segment the transcript into utterances. */\n utterances: z.boolean().nullish(),\n /** Minimum duration of silence (in seconds) to trigger a new utterance. */\n uttSplit: z.number().nullish(),\n /** Whether to include filler words (um, uh, etc.) in the transcript. */\n fillerWords: z.boolean().nullish(),\n});\n\nexport type DeepgramTranscriptionCallOptions = z.infer<\n typeof deepgramProviderOptionsSchema\n>;\n\ninterface DeepgramTranscriptionModelConfig extends DeepgramConfig {\n _internal?: {\n currentDate?: () => Date;\n };\n}\n\nexport class DeepgramTranscriptionModel implements TranscriptionModelV3 {\n readonly specificationVersion = 'v3';\n\n get provider(): string {\n return this.config.provider;\n }\n\n constructor(\n readonly modelId: DeepgramTranscriptionModelId,\n private readonly config: DeepgramTranscriptionModelConfig,\n ) {}\n\n private async getArgs({\n providerOptions,\n }: Parameters<TranscriptionModelV3['doGenerate']>[0]) {\n const warnings: SharedV3Warning[] = [];\n\n // Parse provider options\n const deepgramOptions = await parseProviderOptions({\n provider: 'deepgram',\n providerOptions,\n schema: deepgramProviderOptionsSchema,\n });\n\n const body: DeepgramTranscriptionAPITypes = {\n model: this.modelId,\n diarize: true,\n };\n\n // Add provider-specific options\n if (deepgramOptions) {\n body.detect_entities = deepgramOptions.detectEntities ?? undefined;\n body.detect_language = deepgramOptions.detectLanguage ?? undefined;\n body.filler_words = deepgramOptions.fillerWords ?? undefined;\n body.language = deepgramOptions.language ?? undefined;\n body.punctuate = deepgramOptions.punctuate ?? undefined;\n body.redact = deepgramOptions.redact ?? undefined;\n body.search = deepgramOptions.search ?? undefined;\n body.smart_format = deepgramOptions.smartFormat ?? undefined;\n body.summarize = deepgramOptions.summarize ?? undefined;\n body.topics = deepgramOptions.topics ?? undefined;\n body.utterances = deepgramOptions.utterances ?? undefined;\n body.utt_split = deepgramOptions.uttSplit ?? undefined;\n\n if (typeof deepgramOptions.diarize === 'boolean') {\n body.diarize = deepgramOptions.diarize;\n }\n }\n\n // Convert body to URL query parameters\n const queryParams = new URLSearchParams();\n for (const [key, value] of Object.entries(body)) {\n if (value !== undefined) {\n queryParams.append(key, String(value));\n }\n }\n\n return {\n queryParams,\n warnings,\n };\n }\n\n async doGenerate(\n options: Parameters<TranscriptionModelV3['doGenerate']>[0],\n ): Promise<Awaited<ReturnType<TranscriptionModelV3['doGenerate']>>> {\n const currentDate = this.config._internal?.currentDate?.() ?? new Date();\n const { queryParams, warnings } = await this.getArgs(options);\n\n const {\n value: response,\n responseHeaders,\n rawValue: rawResponse,\n } = await postToApi({\n url:\n this.config.url({\n path: '/v1/listen',\n modelId: this.modelId,\n }) +\n '?' +\n queryParams.toString(),\n headers: {\n ...combineHeaders(this.config.headers(), options.headers),\n 'Content-Type': options.mediaType,\n },\n body: {\n content: options.audio,\n values: options.audio,\n },\n failedResponseHandler: deepgramFailedResponseHandler,\n successfulResponseHandler: createJsonResponseHandler(\n deepgramTranscriptionResponseSchema,\n ),\n abortSignal: options.abortSignal,\n fetch: this.config.fetch,\n });\n\n return {\n text:\n response.results?.channels.at(0)?.alternatives.at(0)?.transcript ?? '',\n segments:\n response.results?.channels[0].alternatives[0].words?.map(word => ({\n text: word.word,\n startSecond: word.start,\n endSecond: word.end,\n })) ?? [],\n language:\n response.results?.channels.at(0)?.detected_language ?? undefined,\n durationInSeconds: response.metadata?.duration ?? undefined,\n warnings,\n response: {\n timestamp: currentDate,\n modelId: this.modelId,\n headers: responseHeaders,\n body: rawResponse,\n },\n };\n }\n}\n\nconst deepgramTranscriptionResponseSchema = z.object({\n metadata: z\n .object({\n duration: z.number(),\n })\n .nullish(),\n results: z\n .object({\n channels: z.array(\n z.object({\n detected_language: z.string().nullish(),\n alternatives: z.array(\n z.object({\n transcript: z.string(),\n words: z.array(\n z.object({\n word: z.string(),\n start: z.number(),\n end: z.number(),\n }),\n ),\n }),\n ),\n }),\n ),\n })\n .nullish(),\n});\n","import { z } from 'zod/v4';\nimport { createJsonErrorResponseHandler } from '@ai-sdk/provider-utils';\n\nexport const deepgramErrorDataSchema = z.object({\n error: z.object({\n message: z.string(),\n code: z.number(),\n }),\n});\n\nexport type DeepgramErrorData = z.infer<typeof deepgramErrorDataSchema>;\n\nexport const deepgramFailedResponseHandler = createJsonErrorResponseHandler({\n errorSchema: deepgramErrorDataSchema,\n errorToMessage: data => data.error.message,\n});\n","import { SpeechModelV3, SharedV3Warning } from '@ai-sdk/provider';\nimport {\n combineHeaders,\n createBinaryResponseHandler,\n parseProviderOptions,\n postJsonToApi,\n} from '@ai-sdk/provider-utils';\nimport { z } from 'zod/v4';\nimport { DeepgramConfig } from './deepgram-config';\nimport { deepgramFailedResponseHandler } from './deepgram-error';\nimport { DeepgramSpeechModelId } from './deepgram-speech-options';\n\n// https://developers.deepgram.com/reference/text-to-speech/speak-request\nconst deepgramSpeechProviderOptionsSchema = z.object({\n /** Bitrate of the audio in bits per second. Can be a number or predefined enum value. */\n bitRate: z.union([z.number(), z.string()]).nullish(),\n /** Container format for the output audio (mp3, wav, etc.). */\n container: z.string().nullish(),\n /** Encoding type for the audio output (linear16, mulaw, alaw, etc.). */\n encoding: z.string().nullish(),\n /** Sample rate for the output audio in Hz (8000, 16000, 24000, 44100, 48000). */\n sampleRate: z.number().nullish(),\n /** URL to which we'll make the callback request. */\n callback: z.string().url().nullish(),\n /** HTTP method by which the callback request will be made (POST or PUT). */\n callbackMethod: z.enum(['POST', 'PUT']).nullish(),\n /** Opts out requests from the Deepgram Model Improvement Program. */\n mipOptOut: z.boolean().nullish(),\n /** Label your requests for the purpose of identification during usage reporting. */\n tag: z.union([z.string(), z.array(z.string())]).nullish(),\n});\n\nexport type DeepgramSpeechCallOptions = z.infer<\n typeof deepgramSpeechProviderOptionsSchema\n>;\n\ninterface DeepgramSpeechModelConfig extends DeepgramConfig {\n _internal?: {\n currentDate?: () => Date;\n };\n}\n\nexport class DeepgramSpeechModel implements SpeechModelV3 {\n readonly specificationVersion = 'v3';\n\n get provider(): string {\n return this.config.provider;\n }\n\n constructor(\n readonly modelId: DeepgramSpeechModelId,\n private readonly config: DeepgramSpeechModelConfig,\n ) {}\n\n private async getArgs({\n text,\n voice,\n outputFormat = 'mp3',\n speed,\n language,\n instructions,\n providerOptions,\n }: Parameters<SpeechModelV3['doGenerate']>[0]) {\n const warnings: SharedV3Warning[] = [];\n\n // Parse provider options\n const deepgramOptions = await parseProviderOptions({\n provider: 'deepgram',\n providerOptions,\n schema: deepgramSpeechProviderOptionsSchema,\n });\n\n // Create request body\n const requestBody = {\n text,\n };\n\n // Prepare query parameters\n const queryParams: Record<string, string> = {\n model: this.modelId,\n };\n\n // Map outputFormat to encoding/container/sample_rate\n // https://developers.deepgram.com/docs/tts-media-output-settings#audio-format-combinations\n if (outputFormat) {\n const formatLower = outputFormat.toLowerCase();\n\n // Common format mappings based on Deepgram's valid combinations\n const formatMap: Record<\n string,\n {\n encoding?: string;\n container?: string;\n sampleRate?: number;\n bitRate?: number;\n }\n > = {\n // MP3: no container, fixed 22050 sample rate, bitrate 32000/48000\n mp3: { encoding: 'mp3' }, // Don't set container or sample_rate for mp3\n // Linear16: wav/none container, configurable sample rate\n wav: { container: 'wav', encoding: 'linear16' },\n linear16: { encoding: 'linear16', container: 'wav' },\n // MuLaw: wav/none container, 8000/16000 sample rate\n mulaw: { encoding: 'mulaw', container: 'wav' },\n // ALaw: wav/none container, 8000/16000 sample rate\n alaw: { encoding: 'alaw', container: 'wav' },\n // Opus: ogg container, fixed 48000 sample rate\n opus: { encoding: 'opus', container: 'ogg' },\n ogg: { encoding: 'opus', container: 'ogg' },\n // FLAC: no container, configurable sample rate\n flac: { encoding: 'flac' },\n // AAC: no container, fixed 22050 sample rate\n aac: { encoding: 'aac' },\n // Raw audio (no container)\n pcm: { encoding: 'linear16', container: 'none' },\n };\n\n const mappedFormat = formatMap[formatLower];\n if (mappedFormat) {\n if (mappedFormat.encoding) {\n queryParams.encoding = mappedFormat.encoding;\n }\n // Only set container if specified and valid for the encoding\n if (mappedFormat.container) {\n queryParams.container = mappedFormat.container;\n }\n // Only set sample_rate if specified and valid for the encoding\n if (mappedFormat.sampleRate) {\n queryParams.sample_rate = String(mappedFormat.sampleRate);\n }\n // Set bitrate for formats that support it\n if (mappedFormat.bitRate) {\n queryParams.bit_rate = String(mappedFormat.bitRate);\n }\n } else {\n // Try to parse format like \"wav_44100\" or \"linear16_24000\"\n const parts = formatLower.split('_');\n if (parts.length >= 2) {\n const firstPart = parts[0];\n const secondPart = parts[1];\n const sampleRate = parseInt(secondPart, 10);\n\n // Check if first part is an encoding\n if (\n [\n 'linear16',\n 'mulaw',\n 'alaw',\n 'mp3',\n 'opus',\n 'flac',\n 'aac',\n ].includes(firstPart)\n ) {\n queryParams.encoding = firstPart;\n\n // Set container based on encoding\n if (['linear16', 'mulaw', 'alaw'].includes(firstPart)) {\n // These can use wav or none, default to wav\n queryParams.container = 'wav';\n } else if (firstPart === 'opus') {\n queryParams.container = 'ogg';\n }\n // mp3, flac, aac don't use container\n\n // Set sample rate if valid for encoding\n if (!isNaN(sampleRate)) {\n if (\n firstPart === 'linear16' &&\n [8000, 16000, 24000, 32000, 48000].includes(sampleRate)\n ) {\n queryParams.sample_rate = String(sampleRate);\n } else if (\n firstPart === 'mulaw' &&\n [8000, 16000].includes(sampleRate)\n ) {\n queryParams.sample_rate = String(sampleRate);\n } else if (\n firstPart === 'alaw' &&\n [8000, 16000].includes(sampleRate)\n ) {\n queryParams.sample_rate = String(sampleRate);\n } else if (\n firstPart === 'flac' &&\n [8000, 16000, 22050, 32000, 48000].includes(sampleRate)\n ) {\n queryParams.sample_rate = String(sampleRate);\n }\n // mp3, opus, aac have fixed sample rates, don't set\n }\n } else if (['wav', 'ogg'].includes(firstPart)) {\n // First part is container\n if (firstPart === 'wav') {\n queryParams.container = 'wav';\n queryParams.encoding = 'linear16'; // Default encoding for wav\n } else if (firstPart === 'ogg') {\n queryParams.container = 'ogg';\n queryParams.encoding = 'opus'; // Default encoding for ogg\n }\n if (!isNaN(sampleRate)) {\n queryParams.sample_rate = String(sampleRate);\n }\n }\n }\n }\n }\n\n // Add provider-specific options - map camelCase to snake_case\n // Validate combinations according to Deepgram's spec\n if (deepgramOptions) {\n if (deepgramOptions.encoding) {\n const newEncoding = deepgramOptions.encoding.toLowerCase();\n\n // If encoding changes, we may need to clear incompatible parameters\n queryParams.encoding = newEncoding;\n\n // Validate container based on encoding\n if (deepgramOptions.container) {\n // Validate container is valid for this encoding\n if (['linear16', 'mulaw', 'alaw'].includes(newEncoding)) {\n if (\n !['wav', 'none'].includes(deepgramOptions.container.toLowerCase())\n ) {\n warnings.push({\n type: 'unsupported',\n feature: 'providerOptions',\n details: `Encoding \"${newEncoding}\" only supports containers \"wav\" or \"none\". Container \"${deepgramOptions.container}\" was ignored.`,\n });\n } else {\n queryParams.container = deepgramOptions.container.toLowerCase();\n }\n } else if (newEncoding === 'opus') {\n // opus requires ogg container, override any previous container setting\n queryParams.container = 'ogg';\n } else if (['mp3', 'flac', 'aac'].includes(newEncoding)) {\n warnings.push({\n type: 'unsupported',\n feature: 'providerOptions',\n details: `Encoding \"${newEncoding}\" does not support container parameter. Container \"${deepgramOptions.container}\" was ignored.`,\n });\n // Remove container if it was set by outputFormat\n delete queryParams.container;\n }\n } else {\n // No container specified in providerOptions\n // If encoding changed to one that doesn't support container, remove it\n if (['mp3', 'flac', 'aac'].includes(newEncoding)) {\n delete queryParams.container;\n } else if (['linear16', 'mulaw', 'alaw'].includes(newEncoding)) {\n // Set default container if not already set\n if (!queryParams.container) {\n queryParams.container = 'wav'; // Default for these encodings\n }\n } else if (newEncoding === 'opus') {\n // opus requires ogg container, override any previous container setting\n queryParams.container = 'ogg';\n }\n }\n\n // Clean up sample_rate and bit_rate if they're incompatible with the new encoding\n // Fixed sample rate encodings (mp3, opus, aac) don't support sample_rate parameter\n if (['mp3', 'opus', 'aac'].includes(newEncoding)) {\n delete queryParams.sample_rate;\n }\n // Lossless encodings without bitrate support (linear16, mulaw, alaw, flac) don't support bit_rate\n if (['linear16', 'mulaw', 'alaw', 'flac'].includes(newEncoding)) {\n delete queryParams.bit_rate;\n }\n } else if (deepgramOptions.container) {\n // Container specified without encoding - set default encoding\n const container = deepgramOptions.container.toLowerCase();\n const oldEncoding = queryParams.encoding?.toLowerCase();\n let newEncoding: string | undefined;\n\n if (container === 'wav') {\n queryParams.container = 'wav';\n newEncoding = 'linear16'; // Default encoding for wav\n } else if (container === 'ogg') {\n queryParams.container = 'ogg';\n newEncoding = 'opus'; // Default encoding for ogg\n } else if (container === 'none') {\n queryParams.container = 'none';\n newEncoding = 'linear16'; // Default encoding for raw audio\n }\n\n // If encoding changed, clean up incompatible parameters\n if (newEncoding && newEncoding !== oldEncoding) {\n queryParams.encoding = newEncoding;\n // Clean up sample_rate and bit_rate if they're incompatible with the new encoding\n if (['mp3', 'opus', 'aac'].includes(newEncoding)) {\n delete queryParams.sample_rate;\n }\n if (['linear16', 'mulaw', 'alaw', 'flac'].includes(newEncoding)) {\n delete queryParams.bit_rate;\n }\n }\n }\n\n if (deepgramOptions.sampleRate != null) {\n const encoding = queryParams.encoding?.toLowerCase() || '';\n const sampleRate = deepgramOptions.sampleRate;\n\n // Validate sample rate based on encoding\n if (encoding === 'linear16') {\n if (![8000, 16000, 24000, 32000, 48000].includes(sampleRate)) {\n warnings.push({\n type: 'unsupported',\n feature: 'providerOptions',\n details: `Encoding \"linear16\" only supports sample rates: 8000, 16000, 24000, 32000, 48000. Sample rate ${sampleRate} was ignored.`,\n });\n } else {\n queryParams.sample_rate = String(sampleRate);\n }\n } else if (encoding === 'mulaw' || encoding === 'alaw') {\n if (![8000, 16000].includes(sampleRate)) {\n warnings.push({\n type: 'unsupported',\n feature: 'providerOptions',\n details: `Encoding \"${encoding}\" only supports sample rates: 8000, 16000. Sample rate ${sampleRate} was ignored.`,\n });\n } else {\n queryParams.sample_rate = String(sampleRate);\n }\n } else if (encoding === 'flac') {\n if (![8000, 16000, 22050, 32000, 48000].includes(sampleRate)) {\n warnings.push({\n type: 'unsupported',\n feature: 'providerOptions',\n details: `Encoding \"flac\" only supports sample rates: 8000, 16000, 22050, 32000, 48000. Sample rate ${sampleRate} was ignored.`,\n });\n } else {\n queryParams.sample_rate = String(sampleRate);\n }\n } else if (['mp3', 'opus', 'aac'].includes(encoding)) {\n warnings.push({\n type: 'unsupported',\n feature: 'providerOptions',\n details: `Encoding \"${encoding}\" has a fixed sample rate and does not support sample_rate parameter. Sample rate ${sampleRate} was ignored.`,\n });\n } else {\n // No encoding set yet, allow it (will be validated when encoding is set)\n queryParams.sample_rate = String(sampleRate);\n }\n }\n\n if (deepgramOptions.bitRate != null) {\n const encoding = queryParams.encoding?.toLowerCase() || '';\n const bitRate = deepgramOptions.bitRate;\n\n // Validate bitrate based on encoding\n if (encoding === 'mp3') {\n if (![32000, 48000].includes(Number(bitRate))) {\n warnings.push({\n type: 'unsupported',\n feature: 'providerOptions',\n details: `Encoding \"mp3\" only supports bit rates: 32000, 48000. Bit rate ${bitRate} was ignored.`,\n });\n } else {\n queryParams.bit_rate = String(bitRate);\n }\n } else if (encoding === 'opus') {\n const bitRateNum = Number(bitRate);\n if (bitRateNum < 4000 || bitRateNum > 650000) {\n warnings.push({\n type: 'unsupported',\n feature: 'providerOptions',\n details: `Encoding \"opus\" supports bit rates between 4000 and 650000. Bit rate ${bitRate} was ignored.`,\n });\n } else {\n queryParams.bit_rate = String(bitRate);\n }\n } else if (encoding === 'aac') {\n const bitRateNum = Number(bitRate);\n if (bitRateNum < 4000 || bitRateNum > 192000) {\n warnings.push({\n type: 'unsupported',\n feature: 'providerOptions',\n details: `Encoding \"aac\" supports bit rates between 4000 and 192000. Bit rate ${bitRate} was ignored.`,\n });\n } else {\n queryParams.bit_rate = String(bitRate);\n }\n } else if (['linear16', 'mulaw', 'alaw', 'flac'].includes(encoding)) {\n warnings.push({\n type: 'unsupported',\n feature: 'providerOptions',\n details: `Encoding \"${encoding}\" does not support bit_rate parameter. Bit rate ${bitRate} was ignored.`,\n });\n } else {\n // No encoding set yet, allow it\n queryParams.bit_rate = String(bitRate);\n }\n }\n\n if (deepgramOptions.callback) {\n queryParams.callback = deepgramOptions.callback;\n }\n if (deepgramOptions.callbackMethod) {\n queryParams.callback_method = deepgramOptions.callbackMethod;\n }\n if (deepgramOptions.mipOptOut != null) {\n queryParams.mip_opt_out = String(deepgramOptions.mipOptOut);\n }\n if (deepgramOptions.tag) {\n if (Array.isArray(deepgramOptions.tag)) {\n queryParams.tag = deepgramOptions.tag.join(',');\n } else {\n queryParams.tag = deepgramOptions.tag;\n }\n }\n }\n\n // Handle voice parameter - Deepgram embeds voice in model ID\n // If voice is provided and different from model, warn user\n if (voice && voice !== this.modelId) {\n warnings.push({\n type: 'unsupported',\n feature: 'voice',\n details: `Deepgram TTS models embed the voice in the model ID. The voice parameter \"${voice}\" was ignored. Use the model ID to select a voice (e.g., \"aura-2-helena-en\").`,\n });\n }\n\n // Handle speed - not supported in Deepgram REST API\n if (speed != null) {\n warnings.push({\n type: 'unsupported',\n feature: 'speed',\n details: `Deepgram TTS REST API does not support speed adjustment. Speed parameter was ignored.`,\n });\n }\n\n // Handle language - Deepgram models are language-specific via model ID\n if (language) {\n warnings.push({\n type: 'unsupported',\n feature: 'language',\n details: `Deepgram TTS models are language-specific via the model ID. Language parameter \"${language}\" was ignored. Select a model with the appropriate language suffix (e.g., \"-en\" for English).`,\n });\n }\n\n // Handle instructions - not supported in Deepgram REST API\n if (instructions) {\n warnings.push({\n type: 'unsupported',\n feature: 'instructions',\n details: `Deepgram TTS REST API does not support instructions. Instructions parameter was ignored.`,\n });\n }\n\n return {\n requestBody,\n queryParams,\n warnings,\n };\n }\n\n async doGenerate(\n options: Parameters<SpeechModelV3['doGenerate']>[0],\n ): Promise<Awaited<ReturnType<SpeechModelV3['doGenerate']>>> {\n const currentDate = this.config._internal?.currentDate?.() ?? new Date();\n const { requestBody, queryParams, warnings } = await this.getArgs(options);\n\n const {\n value: audio,\n responseHeaders,\n rawValue: rawResponse,\n } = await postJsonToApi({\n url: (() => {\n const baseUrl = this.config.url({\n path: '/v1/speak',\n modelId: this.modelId,\n });\n const queryString = new URLSearchParams(queryParams).toString();\n return queryString ? `${baseUrl}?${queryString}` : baseUrl;\n })(),\n headers: combineHeaders(this.config.headers(), options.headers),\n body: requestBody,\n failedResponseHandler: deepgramFailedResponseHandler,\n successfulResponseHandler: createBinaryResponseHandler(),\n abortSignal: options.abortSignal,\n fetch: this.config.fetch,\n });\n\n return {\n audio,\n warnings,\n request: {\n body: JSON.stringify(requestBody),\n },\n response: {\n timestamp: currentDate,\n modelId: this.modelId,\n headers: responseHeaders,\n body: rawResponse,\n },\n };\n }\n}\n","// Version string of this package injected at build time.\ndeclare const __PACKAGE_VERSION__: string | undefined;\nexport const VERSION: string =\n typeof __PACKAGE_VERSION__ !== 'undefined'\n ? __PACKAGE_VERSION__\n : '0.0.0-test';\n"],"mappings":";AAAA;AAAA,EAIE;AAAA,OACK;AACP;AAAA,EAEE;AAAA,EACA;AAAA,OACK;;;ACTP;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AACP,SAAS,KAAAA,UAAS;;;ACPlB,SAAS,SAAS;AAClB,SAAS,sCAAsC;AAExC,IAAM,0BAA0B,EAAE,OAAO;AAAA,EAC9C,OAAO,EAAE,OAAO;AAAA,IACd,SAAS,EAAE,OAAO;AAAA,IAClB,MAAM,EAAE,OAAO;AAAA,EACjB,CAAC;AACH,CAAC;AAIM,IAAM,gCAAgC,+BAA+B;AAAA,EAC1E,aAAa;AAAA,EACb,gBAAgB,UAAQ,KAAK,MAAM;AACrC,CAAC;;;ADDD,IAAM,gCAAgCC,GAAE,OAAO;AAAA;AAAA,EAE7C,UAAUA,GAAE,OAAO,EAAE,QAAQ;AAAA;AAAA,EAE7B,gBAAgBA,GAAE,QAAQ,EAAE,QAAQ;AAAA;AAAA,EAEpC,aAAaA,GAAE,QAAQ,EAAE,QAAQ;AAAA;AAAA,EAEjC,WAAWA,GAAE,QAAQ,EAAE,QAAQ;AAAA;AAAA,EAE/B,YAAYA,GAAE,QAAQ,EAAE,QAAQ;AAAA;AAAA,EAEhC,WAAWA,GAAE,MAAM,CAACA,GAAE,QAAQ,IAAI,GAAGA,GAAE,QAAQ,KAAK,CAAC,CAAC,EAAE,QAAQ;AAAA;AAAA,EAEhE,QAAQA,GAAE,QAAQ,EAAE,QAAQ;AAAA;AAAA,EAE5B,SAASA,GAAE,QAAQ,EAAE,QAAQ;AAAA;AAAA,EAE7B,WAAWA,GAAE,QAAQ,EAAE,QAAQ;AAAA;AAAA,EAE/B,gBAAgBA,GAAE,QAAQ,EAAE,QAAQ;AAAA;AAAA,EAEpC,QAAQA,GAAE,MAAM,CAACA,GAAE,OAAO,GAAGA,GAAE,MAAMA,GAAE,OAAO,CAAC,CAAC,CAAC,EAAE,QAAQ;AAAA;AAAA,EAE3D,SAASA,GAAE,OAAO,EAAE,QAAQ;AAAA;AAAA,EAE5B,QAAQA,GAAE,OAAO,EAAE,QAAQ;AAAA;AAAA,EAE3B,SAASA,GAAE,OAAO,EAAE,QAAQ;AAAA;AAAA,EAE5B,SAASA,GAAE,QAAQ,EAAE,QAAQ;AAAA;AAAA,EAE7B,YAAYA,GAAE,QAAQ,EAAE,QAAQ;AAAA;AAAA,EAEhC,UAAUA,GAAE,OAAO,EAAE,QAAQ;AAAA;AAAA,EAE7B,aAAaA,GAAE,QAAQ,EAAE,QAAQ;AACnC,CAAC;AAYM,IAAM,6BAAN,MAAiE;AAAA,EAOtE,YACW,SACQ,QACjB;AAFS;AACQ;AARnB,SAAS,uBAAuB;AAAA,EAS7B;AAAA,EAPH,IAAI,WAAmB;AACrB,WAAO,KAAK,OAAO;AAAA,EACrB;AAAA,EAOA,MAAc,QAAQ;AAAA,IACpB;AAAA,EACF,GAAsD;AA7ExD;AA8EI,UAAM,WAA8B,CAAC;AAGrC,UAAM,kBAAkB,MAAM,qBAAqB;AAAA,MACjD,UAAU;AAAA,MACV;AAAA,MACA,QAAQ;AAAA,IACV,CAAC;AAED,UAAM,OAAsC;AAAA,MAC1C,OAAO,KAAK;AAAA,MACZ,SAAS;AAAA,IACX;AAGA,QAAI,iBAAiB;AACnB,WAAK,mBAAkB,qBAAgB,mBAAhB,YAAkC;AACzD,WAAK,mBAAkB,qBAAgB,mBAAhB,YAAkC;AACzD,WAAK,gBAAe,qBAAgB,gBAAhB,YAA+B;AACnD,WAAK,YAAW,qBAAgB,aAAhB,YAA4B;AAC5C,WAAK,aAAY,qBAAgB,cAAhB,YAA6B;AAC9C,WAAK,UAAS,qBAAgB,WAAhB,YAA0B;AACxC,WAAK,UAAS,qBAAgB,WAAhB,YAA0B;AACxC,WAAK,gBAAe,qBAAgB,gBAAhB,YAA+B;AACnD,WAAK,aAAY,qBAAgB,cAAhB,YAA6B;AAC9C,WAAK,UAAS,qBAAgB,WAAhB,YAA0B;AACxC,WAAK,cAAa,qBAAgB,eAAhB,YAA8B;AAChD,WAAK,aAAY,qBAAgB,aAAhB,YAA4B;AAE7C,UAAI,OAAO,gBAAgB,YAAY,WAAW;AAChD,aAAK,UAAU,gBAAgB;AAAA,MACjC;AAAA,IACF;AAGA,UAAM,cAAc,IAAI,gBAAgB;AACxC,eAAW,CAAC,KAAK,KAAK,KAAK,OAAO,QAAQ,IAAI,GAAG;AAC/C,UAAI,UAAU,QAAW;AACvB,oBAAY,OAAO,KAAK,OAAO,KAAK,CAAC;AAAA,MACvC;AAAA,IACF;AAEA,WAAO;AAAA,MACL;AAAA,MACA;AAAA,IACF;AAAA,EACF;AAAA,EAEA,MAAM,WACJ,SACkE;AAhItE;AAiII,UAAM,eAAc,sBAAK,OAAO,cAAZ,mBAAuB,gBAAvB,4CAA0C,oBAAI,KAAK;AACvE,UAAM,EAAE,aAAa,SAAS,IAAI,MAAM,KAAK,QAAQ,OAAO;AAE5D,UAAM;AAAA,MACJ,OAAO;AAAA,MACP;AAAA,MACA,UAAU;AAAA,IACZ,IAAI,MAAM,UAAU;AAAA,MAClB,KACE,KAAK,OAAO,IAAI;AAAA,QACd,MAAM;AAAA,QACN,SAAS,KAAK;AAAA,MAChB,CAAC,IACD,MACA,YAAY,SAAS;AAAA,MACvB,SAAS;AAAA,QACP,GAAG,eAAe,KAAK,OAAO,QAAQ,GAAG,QAAQ,OAAO;AAAA,QACxD,gBAAgB,QAAQ;AAAA,MAC1B;AAAA,MACA,MAAM;AAAA,QACJ,SAAS,QAAQ;AAAA,QACjB,QAAQ,QAAQ;AAAA,MAClB;AAAA,MACA,uBAAuB;AAAA,MACvB,2BAA2B;AAAA,QACzB;AAAA,MACF;AAAA,MACA,aAAa,QAAQ;AAAA,MACrB,OAAO,KAAK,OAAO;AAAA,IACrB,CAAC;AAED,WAAO;AAAA,MACL,OACE,gCAAS,YAAT,mBAAkB,SAAS,GAAG,OAA9B,mBAAkC,aAAa,GAAG,OAAlD,mBAAsD,eAAtD,YAAoE;AAAA,MACtE,WACE,0BAAS,YAAT,mBAAkB,SAAS,GAAG,aAAa,GAAG,UAA9C,mBAAqD,IAAI,WAAS;AAAA,QAChE,MAAM,KAAK;AAAA,QACX,aAAa,KAAK;AAAA,QAClB,WAAW,KAAK;AAAA,MAClB,QAJA,YAIO,CAAC;AAAA,MACV,WACE,0BAAS,YAAT,mBAAkB,SAAS,GAAG,OAA9B,mBAAkC,sBAAlC,YAAuD;AAAA,MACzD,oBAAmB,oBAAS,aAAT,mBAAmB,aAAnB,YAA+B;AAAA,MAClD;AAAA,MACA,UAAU;AAAA,QACR,WAAW;AAAA,QACX,SAAS,KAAK;AAAA,QACd,SAAS;AAAA,QACT,MAAM;AAAA,MACR;AAAA,IACF;AAAA,EACF;AACF;AAEA,IAAM,sCAAsCA,GAAE,OAAO;AAAA,EACnD,UAAUA,GACP,OAAO;AAAA,IACN,UAAUA,GAAE,OAAO;AAAA,EACrB,CAAC,EACA,QAAQ;AAAA,EACX,SAASA,GACN,OAAO;AAAA,IACN,UAAUA,GAAE;AAAA,MACVA,GAAE,OAAO;AAAA,QACP,mBAAmBA,GAAE,OAAO,EAAE,QAAQ;AAAA,QACtC,cAAcA,GAAE;AAAA,UACdA,GAAE,OAAO;AAAA,YACP,YAAYA,GAAE,OAAO;AAAA,YACrB,OAAOA,GAAE;AAAA,cACPA,GAAE,OAAO;AAAA,gBACP,MAAMA,GAAE,OAAO;AAAA,gBACf,OAAOA,GAAE,OAAO;AAAA,gBAChB,KAAKA,GAAE,OAAO;AAAA,cAChB,CAAC;AAAA,YACH;AAAA,UACF,CAAC;AAAA,QACH;AAAA,MACF,CAAC;AAAA,IACH;AAAA,EACF,CAAC,EACA,QAAQ;AACb,CAAC;;;AEjND;AAAA,EACE,kBAAAC;AAAA,EACA;AAAA,EACA,wBAAAC;AAAA,EACA;AAAA,OACK;AACP,SAAS,KAAAC,UAAS;AAMlB,IAAM,sCAAsCC,GAAE,OAAO;AAAA;AAAA,EAEnD,SAASA,GAAE,MAAM,CAACA,GAAE,OAAO,GAAGA,GAAE,OAAO,CAAC,CAAC,EAAE,QAAQ;AAAA;AAAA,EAEnD,WAAWA,GAAE,OAAO,EAAE,QAAQ;AAAA;AAAA,EAE9B,UAAUA,GAAE,OAAO,EAAE,QAAQ;AAAA;AAAA,EAE7B,YAAYA,GAAE,OAAO,EAAE,QAAQ;AAAA;AAAA,EAE/B,UAAUA,GAAE,OAAO,EAAE,IAAI,EAAE,QAAQ;AAAA;AAAA,EAEnC,gBAAgBA,GAAE,KAAK,CAAC,QAAQ,KAAK,CAAC,EAAE,QAAQ;AAAA;AAAA,EAEhD,WAAWA,GAAE,QAAQ,EAAE,QAAQ;AAAA;AAAA,EAE/B,KAAKA,GAAE,MAAM,CAACA,GAAE,OAAO,GAAGA,GAAE,MAAMA,GAAE,OAAO,CAAC,CAAC,CAAC,EAAE,QAAQ;AAC1D,CAAC;AAYM,IAAM,sBAAN,MAAmD;AAAA,EAOxD,YACW,SACQ,QACjB;AAFS;AACQ;AARnB,SAAS,uBAAuB;AAAA,EAS7B;AAAA,EAPH,IAAI,WAAmB;AACrB,WAAO,KAAK,OAAO;AAAA,EACrB;AAAA,EAOA,MAAc,QAAQ;AAAA,IACpB;AAAA,IACA;AAAA,IACA,eAAe;AAAA,IACf;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,GAA+C;AA9DjD;AA+DI,UAAM,WAA8B,CAAC;AAGrC,UAAM,kBAAkB,MAAMC,sBAAqB;AAAA,MACjD,UAAU;AAAA,MACV;AAAA,MACA,QAAQ;AAAA,IACV,CAAC;AAGD,UAAM,cAAc;AAAA,MAClB;AAAA,IACF;AAGA,UAAM,cAAsC;AAAA,MAC1C,OAAO,KAAK;AAAA,IACd;AAIA,QAAI,cAAc;AAChB,YAAM,cAAc,aAAa,YAAY;AAG7C,YAAM,YAQF;AAAA;AAAA,QAEF,KAAK,EAAE,UAAU,MAAM;AAAA;AAAA;AAAA,QAEvB,KAAK,EAAE,WAAW,OAAO,UAAU,WAAW;AAAA,QAC9C,UAAU,EAAE,UAAU,YAAY,WAAW,MAAM;AAAA;AAAA,QAEnD,OAAO,EAAE,UAAU,SAAS,WAAW,MAAM;AAAA;AAAA,QAE7C,MAAM,EAAE,UAAU,QAAQ,WAAW,MAAM;AAAA;AAAA,QAE3C,MAAM,EAAE,UAAU,QAAQ,WAAW,MAAM;AAAA,QAC3C,KAAK,EAAE,UAAU,QAAQ,WAAW,MAAM;AAAA;AAAA,QAE1C,MAAM,EAAE,UAAU,OAAO;AAAA;AAAA,QAEzB,KAAK,EAAE,UAAU,MAAM;AAAA;AAAA,QAEvB,KAAK,EAAE,UAAU,YAAY,WAAW,OAAO;AAAA,MACjD;AAEA,YAAM,eAAe,UAAU,WAAW;AAC1C,UAAI,cAAc;AAChB,YAAI,aAAa,UAAU;AACzB,sBAAY,WAAW,aAAa;AAAA,QACtC;AAEA,YAAI,aAAa,WAAW;AAC1B,sBAAY,YAAY,aAAa;AAAA,QACvC;AAEA,YAAI,aAAa,YAAY;AAC3B,sBAAY,cAAc,OAAO,aAAa,UAAU;AAAA,QAC1D;AAEA,YAAI,aAAa,SAAS;AACxB,sBAAY,WAAW,OAAO,aAAa,OAAO;AAAA,QACpD;AAAA,MACF,OAAO;AAEL,cAAM,QAAQ,YAAY,MAAM,GAAG;AACnC,YAAI,MAAM,UAAU,GAAG;AACrB,gBAAM,YAAY,MAAM,CAAC;AACzB,gBAAM,aAAa,MAAM,CAAC;AAC1B,gBAAM,aAAa,SAAS,YAAY,EAAE;AAG1C,cACE;AAAA,YACE;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,UACF,EAAE,SAAS,SAAS,GACpB;AACA,wBAAY,WAAW;AAGvB,gBAAI,CAAC,YAAY,SAAS,MAAM,EAAE,SAAS,SAAS,GAAG;AAErD,0BAAY,YAAY;AAAA,YAC1B,WAAW,cAAc,QAAQ;AAC/B,0BAAY,YAAY;AAAA,YAC1B;AAIA,gBAAI,CAAC,MAAM,UAAU,GAAG;AACtB,kBACE,cAAc,cACd,CAAC,KAAM,MAAO,MAAO,MAAO,IAAK,EAAE,SAAS,UAAU,GACtD;AACA,4BAAY,cAAc,OAAO,UAAU;AAAA,cAC7C,WACE,cAAc,WACd,CAAC,KAAM,IAAK,EAAE,SAAS,UAAU,GACjC;AACA,4BAAY,cAAc,OAAO,UAAU;AAAA,cAC7C,WACE,cAAc,UACd,CAAC,KAAM,IAAK,EAAE,SAAS,UAAU,GACjC;AACA,4BAAY,cAAc,OAAO,UAAU;AAAA,cAC7C,WACE,cAAc,UACd,CAAC,KAAM,MAAO,OAAO,MAAO,IAAK,EAAE,SAAS,UAAU,GACtD;AACA,4BAAY,cAAc,OAAO,UAAU;AAAA,cAC7C;AAAA,YAEF;AAAA,UACF,WAAW,CAAC,OAAO,KAAK,EAAE,SAAS,SAAS,GAAG;AAE7C,gBAAI,cAAc,OAAO;AACvB,0BAAY,YAAY;AACxB,0BAAY,WAAW;AAAA,YACzB,WAAW,cAAc,OAAO;AAC9B,0BAAY,YAAY;AACxB,0BAAY,WAAW;AAAA,YACzB;AACA,gBAAI,CAAC,MAAM,UAAU,GAAG;AACtB,0BAAY,cAAc,OAAO,UAAU;AAAA,YAC7C;AAAA,UACF;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAIA,QAAI,iBAAiB;AACnB,UAAI,gBAAgB,UAAU;AAC5B,cAAM,cAAc,gBAAgB,SAAS,YAAY;AAGzD,oBAAY,WAAW;AAGvB,YAAI,gBAAgB,WAAW;AAE7B,cAAI,CAAC,YAAY,SAAS,MAAM,EAAE,SAAS,WAAW,GAAG;AACvD,gBACE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,gBAAgB,UAAU,YAAY,CAAC,GACjE;AACA,uBAAS,KAAK;AAAA,gBACZ,MAAM;AAAA,gBACN,SAAS;AAAA,gBACT,SAAS,aAAa,WAAW,0DAA0D,gBAAgB,SAAS;AAAA,cACtH,CAAC;AAAA,YACH,OAAO;AACL,0BAAY,YAAY,gBAAgB,UAAU,YAAY;AAAA,YAChE;AAAA,UACF,WAAW,gBAAgB,QAAQ;AAEjC,wBAAY,YAAY;AAAA,UAC1B,WAAW,CAAC,OAAO,QAAQ,KAAK,EAAE,SAAS,WAAW,GAAG;AACvD,qBAAS,KAAK;AAAA,cACZ,MAAM;AAAA,cACN,SAAS;AAAA,cACT,SAAS,aAAa,WAAW,sDAAsD,gBAAgB,SAAS;AAAA,YAClH,CAAC;AAED,mBAAO,YAAY;AAAA,UACrB;AAAA,QACF,OAAO;AAGL,cAAI,CAAC,OAAO,QAAQ,KAAK,EAAE,SAAS,WAAW,GAAG;AAChD,mBAAO,YAAY;AAAA,UACrB,WAAW,CAAC,YAAY,SAAS,MAAM,EAAE,SAAS,WAAW,GAAG;AAE9D,gBAAI,CAAC,YAAY,WAAW;AAC1B,0BAAY,YAAY;AAAA,YAC1B;AAAA,UACF,WAAW,gBAAgB,QAAQ;AAEjC,wBAAY,YAAY;AAAA,UAC1B;AAAA,QACF;AAIA,YAAI,CAAC,OAAO,QAAQ,KAAK,EAAE,SAAS,WAAW,GAAG;AAChD,iBAAO,YAAY;AAAA,QACrB;AAEA,YAAI,CAAC,YAAY,SAAS,QAAQ,MAAM,EAAE,SAAS,WAAW,GAAG;AAC/D,iBAAO,YAAY;AAAA,QACrB;AAAA,MACF,WAAW,gBAAgB,WAAW;AAEpC,cAAM,YAAY,gBAAgB,UAAU,YAAY;AACxD,cAAM,eAAc,iBAAY,aAAZ,mBAAsB;AAC1C,YAAI;AAEJ,YAAI,cAAc,OAAO;AACvB,sBAAY,YAAY;AACxB,wBAAc;AAAA,QAChB,WAAW,cAAc,OAAO;AAC9B,sBAAY,YAAY;AACxB,wBAAc;AAAA,QAChB,WAAW,cAAc,QAAQ;AAC/B,sBAAY,YAAY;AACxB,wBAAc;AAAA,QAChB;AAGA,YAAI,eAAe,gBAAgB,aAAa;AAC9C,sBAAY,WAAW;AAEvB,cAAI,CAAC,OAAO,QAAQ,KAAK,EAAE,SAAS,WAAW,GAAG;AAChD,mBAAO,YAAY;AAAA,UACrB;AACA,cAAI,CAAC,YAAY,SAAS,QAAQ,MAAM,EAAE,SAAS,WAAW,GAAG;AAC/D,mBAAO,YAAY;AAAA,UACrB;AAAA,QACF;AAAA,MACF;AAEA,UAAI,gBAAgB,cAAc,MAAM;AACtC,cAAM,aAAW,iBAAY,aAAZ,mBAAsB,kBAAiB;AACxD,cAAM,aAAa,gBAAgB;AAGnC,YAAI,aAAa,YAAY;AAC3B,cAAI,CAAC,CAAC,KAAM,MAAO,MAAO,MAAO,IAAK,EAAE,SAAS,UAAU,GAAG;AAC5D,qBAAS,KAAK;AAAA,cACZ,MAAM;AAAA,cACN,SAAS;AAAA,cACT,SAAS,iGAAiG,UAAU;AAAA,YACtH,CAAC;AAAA,UACH,OAAO;AACL,wBAAY,cAAc,OAAO,UAAU;AAAA,UAC7C;AAAA,QACF,WAAW,aAAa,WAAW,aAAa,QAAQ;AACtD,cAAI,CAAC,CAAC,KAAM,IAAK,EAAE,SAAS,UAAU,GAAG;AACvC,qBAAS,KAAK;AAAA,cACZ,MAAM;AAAA,cACN,SAAS;AAAA,cACT,SAAS,aAAa,QAAQ,0DAA0D,UAAU;AAAA,YACpG,CAAC;AAAA,UACH,OAAO;AACL,wBAAY,cAAc,OAAO,UAAU;AAAA,UAC7C;AAAA,QACF,WAAW,aAAa,QAAQ;AAC9B,cAAI,CAAC,CAAC,KAAM,MAAO,OAAO,MAAO,IAAK,EAAE,SAAS,UAAU,GAAG;AAC5D,qBAAS,KAAK;AAAA,cACZ,MAAM;AAAA,cACN,SAAS;AAAA,cACT,SAAS,6FAA6F,UAAU;AAAA,YAClH,CAAC;AAAA,UACH,OAAO;AACL,wBAAY,cAAc,OAAO,UAAU;AAAA,UAC7C;AAAA,QACF,WAAW,CAAC,OAAO,QAAQ,KAAK,EAAE,SAAS,QAAQ,GAAG;AACpD,mBAAS,KAAK;AAAA,YACZ,MAAM;AAAA,YACN,SAAS;AAAA,YACT,SAAS,aAAa,QAAQ,qFAAqF,UAAU;AAAA,UAC/H,CAAC;AAAA,QACH,OAAO;AAEL,sBAAY,cAAc,OAAO,UAAU;AAAA,QAC7C;AAAA,MACF;AAEA,UAAI,gBAAgB,WAAW,MAAM;AACnC,cAAM,aAAW,iBAAY,aAAZ,mBAAsB,kBAAiB;AACxD,cAAM,UAAU,gBAAgB;AAGhC,YAAI,aAAa,OAAO;AACtB,cAAI,CAAC,CAAC,MAAO,IAAK,EAAE,SAAS,OAAO,OAAO,CAAC,GAAG;AAC7C,qBAAS,KAAK;AAAA,cACZ,MAAM;AAAA,cACN,SAAS;AAAA,cACT,SAAS,kEAAkE,OAAO;AAAA,YACpF,CAAC;AAAA,UACH,OAAO;AACL,wBAAY,WAAW,OAAO,OAAO;AAAA,UACvC;AAAA,QACF,WAAW,aAAa,QAAQ;AAC9B,gBAAM,aAAa,OAAO,OAAO;AACjC,cAAI,aAAa,OAAQ,aAAa,MAAQ;AAC5C,qBAAS,KAAK;AAAA,cACZ,MAAM;AAAA,cACN,SAAS;AAAA,cACT,SAAS,wEAAwE,OAAO;AAAA,YAC1F,CAAC;AAAA,UACH,OAAO;AACL,wBAAY,WAAW,OAAO,OAAO;AAAA,UACvC;AAAA,QACF,WAAW,aAAa,OAAO;AAC7B,gBAAM,aAAa,OAAO,OAAO;AACjC,cAAI,aAAa,OAAQ,aAAa,OAAQ;AAC5C,qBAAS,KAAK;AAAA,cACZ,MAAM;AAAA,cACN,SAAS;AAAA,cACT,SAAS,uEAAuE,OAAO;AAAA,YACzF,CAAC;AAAA,UACH,OAAO;AACL,wBAAY,WAAW,OAAO,OAAO;AAAA,UACvC;AAAA,QACF,WAAW,CAAC,YAAY,SAAS,QAAQ,MAAM,EAAE,SAAS,QAAQ,GAAG;AACnE,mBAAS,KAAK;AAAA,YACZ,MAAM;AAAA,YACN,SAAS;AAAA,YACT,SAAS,aAAa,QAAQ,mDAAmD,OAAO;AAAA,UAC1F,CAAC;AAAA,QACH,OAAO;AAEL,sBAAY,WAAW,OAAO,OAAO;AAAA,QACvC;AAAA,MACF;AAEA,UAAI,gBAAgB,UAAU;AAC5B,oBAAY,WAAW,gBAAgB;AAAA,MACzC;AACA,UAAI,gBAAgB,gBAAgB;AAClC,oBAAY,kBAAkB,gBAAgB;AAAA,MAChD;AACA,UAAI,gBAAgB,aAAa,MAAM;AACrC,oBAAY,cAAc,OAAO,gBAAgB,SAAS;AAAA,MAC5D;AACA,UAAI,gBAAgB,KAAK;AACvB,YAAI,MAAM,QAAQ,gBAAgB,GAAG,GAAG;AACtC,sBAAY,MAAM,gBAAgB,IAAI,KAAK,GAAG;AAAA,QAChD,OAAO;AACL,sBAAY,MAAM,gBAAgB;AAAA,QACpC;AAAA,MACF;AAAA,IACF;AAIA,QAAI,SAAS,UAAU,KAAK,SAAS;AACnC,eAAS,KAAK;AAAA,QACZ,MAAM;AAAA,QACN,SAAS;AAAA,QACT,SAAS,6EAA6E,KAAK;AAAA,MAC7F,CAAC;AAAA,IACH;AAGA,QAAI,SAAS,MAAM;AACjB,eAAS,KAAK;AAAA,QACZ,MAAM;AAAA,QACN,SAAS;AAAA,QACT,SAAS;AAAA,MACX,CAAC;AAAA,IACH;AAGA,QAAI,UAAU;AACZ,eAAS,KAAK;AAAA,QACZ,MAAM;AAAA,QACN,SAAS;AAAA,QACT,SAAS,mFAAmF,QAAQ;AAAA,MACtG,CAAC;AAAA,IACH;AAGA,QAAI,cAAc;AAChB,eAAS,KAAK;AAAA,QACZ,MAAM;AAAA,QACN,SAAS;AAAA,QACT,SAAS;AAAA,MACX,CAAC;AAAA,IACH;AAEA,WAAO;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,EACF;AAAA,EAEA,MAAM,WACJ,SAC2D;AA1c/D;AA2cI,UAAM,eAAc,sBAAK,OAAO,cAAZ,mBAAuB,gBAAvB,4CAA0C,oBAAI,KAAK;AACvE,UAAM,EAAE,aAAa,aAAa,SAAS,IAAI,MAAM,KAAK,QAAQ,OAAO;AAEzE,UAAM;AAAA,MACJ,OAAO;AAAA,MACP;AAAA,MACA,UAAU;AAAA,IACZ,IAAI,MAAM,cAAc;AAAA,MACtB,MAAM,MAAM;AACV,cAAM,UAAU,KAAK,OAAO,IAAI;AAAA,UAC9B,MAAM;AAAA,UACN,SAAS,KAAK;AAAA,QAChB,CAAC;AACD,cAAM,cAAc,IAAI,gBAAgB,WAAW,EAAE,SAAS;AAC9D,eAAO,cAAc,GAAG,OAAO,IAAI,WAAW,KAAK;AAAA,MACrD,GAAG;AAAA,MACH,SAASC,gBAAe,KAAK,OAAO,QAAQ,GAAG,QAAQ,OAAO;AAAA,MAC9D,MAAM;AAAA,MACN,uBAAuB;AAAA,MACvB,2BAA2B,4BAA4B;AAAA,MACvD,aAAa,QAAQ;AAAA,MACrB,OAAO,KAAK,OAAO;AAAA,IACrB,CAAC;AAED,WAAO;AAAA,MACL;AAAA,MACA;AAAA,MACA,SAAS;AAAA,QACP,MAAM,KAAK,UAAU,WAAW;AAAA,MAClC;AAAA,MACA,UAAU;AAAA,QACR,WAAW;AAAA,QACX,SAAS,KAAK;AAAA,QACd,SAAS;AAAA,QACT,MAAM;AAAA,MACR;AAAA,IACF;AAAA,EACF;AACF;;;AC/eO,IAAM,UACX,OACI,kBACA;;;AJyDC,SAAS,eACd,UAAoC,CAAC,GACnB;AAClB,QAAM,aAAa,MACjB;AAAA,IACE;AAAA,MACE,eAAe,SAAS,WAAW;AAAA,QACjC,QAAQ,QAAQ;AAAA,QAChB,yBAAyB;AAAA,QACzB,aAAa;AAAA,MACf,CAAC,CAAC;AAAA,MACF,GAAG,QAAQ;AAAA,IACb;AAAA,IACA,mBAAmB,OAAO;AAAA,EAC5B;AAEF,QAAM,2BAA2B,CAAC,YAChC,IAAI,2BAA2B,SAAS;AAAA,IACtC,UAAU;AAAA,IACV,KAAK,CAAC,EAAE,KAAK,MAAM,2BAA2B,IAAI;AAAA,IAClD,SAAS;AAAA,IACT,OAAO,QAAQ;AAAA,EACjB,CAAC;AAEH,QAAM,oBAAoB,CAAC,YACzB,IAAI,oBAAoB,SAAS;AAAA,IAC/B,UAAU;AAAA,IACV,KAAK,CAAC,EAAE,KAAK,MAAM,2BAA2B,IAAI;AAAA,IAClD,SAAS;AAAA,IACT,OAAO,QAAQ;AAAA,EACjB,CAAC;AAEH,QAAM,WAAW,SAAU,SAAuC;AAChE,WAAO;AAAA,MACL,eAAe,yBAAyB,OAAO;AAAA,IACjD;AAAA,EACF;AAEA,WAAS,uBAAuB;AAChC,WAAS,gBAAgB;AACzB,WAAS,qBAAqB;AAC9B,WAAS,SAAS;AAClB,WAAS,cAAc;AAGvB,WAAS,gBAAgB,CAAC,YAAoB;AAC5C,UAAM,IAAI,iBAAiB;AAAA,MACzB;AAAA,MACA,WAAW;AAAA,MACX,SAAS;AAAA,IACX,CAAC;AAAA,EACH;AAEA,WAAS,iBAAiB,CAAC,YAAoB;AAC7C,UAAM,IAAI,iBAAiB;AAAA,MACzB;AAAA,MACA,WAAW;AAAA,MACX,SAAS;AAAA,IACX,CAAC;AAAA,EACH;AACA,WAAS,qBAAqB,SAAS;AAEvC,WAAS,aAAa,CAAC,YAAoB;AACzC,UAAM,IAAI,iBAAiB;AAAA,MACzB;AAAA,MACA,WAAW;AAAA,MACX,SAAS;AAAA,IACX,CAAC;AAAA,EACH;AAEA,SAAO;AACT;AAKO,IAAM,WAAW,eAAe;","names":["z","z","combineHeaders","parseProviderOptions","z","z","parseProviderOptions","combineHeaders"]}
|
|
1
|
+
{"version":3,"sources":["../src/deepgram-provider.ts","../src/deepgram-transcription-model.ts","../src/deepgram-error.ts","../src/deepgram-speech-model.ts","../src/version.ts"],"sourcesContent":["import {\n TranscriptionModelV3,\n SpeechModelV3,\n ProviderV3,\n NoSuchModelError,\n} from '@ai-sdk/provider';\nimport {\n FetchFunction,\n loadApiKey,\n withUserAgentSuffix,\n} from '@ai-sdk/provider-utils';\nimport { DeepgramTranscriptionModel } from './deepgram-transcription-model';\nimport { DeepgramTranscriptionModelId } from './deepgram-transcription-options';\nimport { DeepgramSpeechModel } from './deepgram-speech-model';\nimport { DeepgramSpeechModelId } from './deepgram-speech-options';\nimport { VERSION } from './version';\n\nexport interface DeepgramProvider extends ProviderV3 {\n (\n modelId: 'nova-3',\n settings?: {},\n ): {\n transcription: DeepgramTranscriptionModel;\n };\n\n /**\nCreates a model for transcription.\n */\n transcription(modelId: DeepgramTranscriptionModelId): TranscriptionModelV3;\n\n /**\nCreates a model for speech generation.\n */\n speech(modelId: DeepgramSpeechModelId): SpeechModelV3;\n\n /**\n * @deprecated Use `embeddingModel` instead.\n */\n textEmbeddingModel(modelId: string): never;\n}\n\nexport interface DeepgramProviderSettings {\n /**\nAPI key for authenticating requests.\n */\n apiKey?: string;\n\n /**\nCustom headers to include in the requests.\n */\n headers?: Record<string, string>;\n\n /**\nCustom fetch implementation. You can use it as a middleware to intercept requests,\nor to provide a custom fetch implementation for e.g. testing.\n */\n fetch?: FetchFunction;\n}\n\n/**\nCreate an Deepgram provider instance.\n */\nexport function createDeepgram(\n options: DeepgramProviderSettings = {},\n): DeepgramProvider {\n const getHeaders = () =>\n withUserAgentSuffix(\n {\n authorization: `Token ${loadApiKey({\n apiKey: options.apiKey,\n environmentVariableName: 'DEEPGRAM_API_KEY',\n description: 'Deepgram',\n })}`,\n ...options.headers,\n },\n `ai-sdk/deepgram/${VERSION}`,\n );\n\n const createTranscriptionModel = (modelId: DeepgramTranscriptionModelId) =>\n new DeepgramTranscriptionModel(modelId, {\n provider: `deepgram.transcription`,\n url: ({ path }) => `https://api.deepgram.com${path}`,\n headers: getHeaders,\n fetch: options.fetch,\n });\n\n const createSpeechModel = (modelId: DeepgramSpeechModelId) =>\n new DeepgramSpeechModel(modelId, {\n provider: `deepgram.speech`,\n url: ({ path }) => `https://api.deepgram.com${path}`,\n headers: getHeaders,\n fetch: options.fetch,\n });\n\n const provider = function (modelId: DeepgramTranscriptionModelId) {\n return {\n transcription: createTranscriptionModel(modelId),\n };\n };\n\n provider.specificationVersion = 'v3' as const;\n provider.transcription = createTranscriptionModel;\n provider.transcriptionModel = createTranscriptionModel;\n provider.speech = createSpeechModel;\n provider.speechModel = createSpeechModel;\n\n // Required ProviderV3 methods that are not supported\n provider.languageModel = (modelId: string) => {\n throw new NoSuchModelError({\n modelId,\n modelType: 'languageModel',\n message: 'Deepgram does not provide language models',\n });\n };\n\n provider.embeddingModel = (modelId: string) => {\n throw new NoSuchModelError({\n modelId,\n modelType: 'embeddingModel',\n message: 'Deepgram does not provide text embedding models',\n });\n };\n provider.textEmbeddingModel = provider.embeddingModel;\n\n provider.imageModel = (modelId: string) => {\n throw new NoSuchModelError({\n modelId,\n modelType: 'imageModel',\n message: 'Deepgram does not provide image models',\n });\n };\n\n return provider as DeepgramProvider;\n}\n\n/**\nDefault Deepgram provider instance.\n */\nexport const deepgram = createDeepgram();\n","import { SharedV3Warning, TranscriptionModelV3 } from '@ai-sdk/provider';\nimport {\n combineHeaders,\n createJsonResponseHandler,\n parseProviderOptions,\n postToApi,\n} from '@ai-sdk/provider-utils';\nimport { z } from 'zod/v4';\nimport { DeepgramTranscriptionAPITypes } from './deepgram-api-types';\nimport { DeepgramConfig } from './deepgram-config';\nimport { deepgramFailedResponseHandler } from './deepgram-error';\nimport { DeepgramTranscriptionModelId } from './deepgram-transcription-options';\n\n// https://developers.deepgram.com/docs/pre-recorded-audio#results\nconst deepgramProviderOptionsSchema = z.object({\n /** Language to use for transcription. If not specified, Deepgram defaults to English. Use `detectLanguage: true` to enable automatic language detection. */\n language: z.string().nullish(),\n /** Whether to enable automatic language detection. When true, Deepgram will detect the language of the audio. */\n detectLanguage: z.boolean().nullish(),\n /** Whether to use smart formatting, which formats written-out numbers, dates, times, etc. */\n smartFormat: z.boolean().nullish(),\n /** Whether to add punctuation to the transcript. */\n punctuate: z.boolean().nullish(),\n /** Whether to format the transcript into paragraphs. */\n paragraphs: z.boolean().nullish(),\n /** Whether to generate a summary of the transcript. Use 'v2' for the latest version or false to disable. */\n summarize: z.union([z.literal('v2'), z.literal(false)]).nullish(),\n /** Whether to identify topics in the transcript. */\n topics: z.boolean().nullish(),\n /** Whether to identify intents in the transcript. */\n intents: z.boolean().nullish(),\n /** Whether to analyze sentiment in the transcript. */\n sentiment: z.boolean().nullish(),\n /** Whether to detect and tag named entities in the transcript. */\n detectEntities: z.boolean().nullish(),\n /** Specify terms or patterns to redact from the transcript. Can be a string or array of strings. */\n redact: z.union([z.string(), z.array(z.string())]).nullish(),\n /** String to replace redacted content with. */\n replace: z.string().nullish(),\n /** Term or phrase to search for in the transcript. */\n search: z.string().nullish(),\n /** Key term to identify in the transcript. */\n keyterm: z.string().nullish(),\n /** Whether to identify different speakers in the audio. */\n diarize: z.boolean().nullish(),\n /** Whether to segment the transcript into utterances. */\n utterances: z.boolean().nullish(),\n /** Minimum duration of silence (in seconds) to trigger a new utterance. */\n uttSplit: z.number().nullish(),\n /** Whether to include filler words (um, uh, etc.) in the transcript. */\n fillerWords: z.boolean().nullish(),\n});\n\nexport type DeepgramTranscriptionCallOptions = z.infer<\n typeof deepgramProviderOptionsSchema\n>;\n\ninterface DeepgramTranscriptionModelConfig extends DeepgramConfig {\n _internal?: {\n currentDate?: () => Date;\n };\n}\n\nexport class DeepgramTranscriptionModel implements TranscriptionModelV3 {\n readonly specificationVersion = 'v3';\n\n get provider(): string {\n return this.config.provider;\n }\n\n constructor(\n readonly modelId: DeepgramTranscriptionModelId,\n private readonly config: DeepgramTranscriptionModelConfig,\n ) {}\n\n private async getArgs({\n providerOptions,\n }: Parameters<TranscriptionModelV3['doGenerate']>[0]) {\n const warnings: SharedV3Warning[] = [];\n\n // Parse provider options\n const deepgramOptions = await parseProviderOptions({\n provider: 'deepgram',\n providerOptions,\n schema: deepgramProviderOptionsSchema,\n });\n\n const body: DeepgramTranscriptionAPITypes = {\n model: this.modelId,\n diarize: true,\n };\n\n // Add provider-specific options\n if (deepgramOptions) {\n body.detect_entities = deepgramOptions.detectEntities ?? undefined;\n body.detect_language = deepgramOptions.detectLanguage ?? undefined;\n body.filler_words = deepgramOptions.fillerWords ?? undefined;\n body.language = deepgramOptions.language ?? undefined;\n body.punctuate = deepgramOptions.punctuate ?? undefined;\n body.redact = deepgramOptions.redact ?? undefined;\n body.search = deepgramOptions.search ?? undefined;\n body.smart_format = deepgramOptions.smartFormat ?? undefined;\n body.summarize = deepgramOptions.summarize ?? undefined;\n body.topics = deepgramOptions.topics ?? undefined;\n body.utterances = deepgramOptions.utterances ?? undefined;\n body.utt_split = deepgramOptions.uttSplit ?? undefined;\n\n if (typeof deepgramOptions.diarize === 'boolean') {\n body.diarize = deepgramOptions.diarize;\n }\n }\n\n // Convert body to URL query parameters\n const queryParams = new URLSearchParams();\n for (const [key, value] of Object.entries(body)) {\n if (value !== undefined) {\n queryParams.append(key, String(value));\n }\n }\n\n return {\n queryParams,\n warnings,\n };\n }\n\n async doGenerate(\n options: Parameters<TranscriptionModelV3['doGenerate']>[0],\n ): Promise<Awaited<ReturnType<TranscriptionModelV3['doGenerate']>>> {\n const currentDate = this.config._internal?.currentDate?.() ?? new Date();\n const { queryParams, warnings } = await this.getArgs(options);\n\n const {\n value: response,\n responseHeaders,\n rawValue: rawResponse,\n } = await postToApi({\n url:\n this.config.url({\n path: '/v1/listen',\n modelId: this.modelId,\n }) +\n '?' +\n queryParams.toString(),\n headers: {\n ...combineHeaders(this.config.headers(), options.headers),\n 'Content-Type': options.mediaType,\n },\n body: {\n content: options.audio,\n values: options.audio,\n },\n failedResponseHandler: deepgramFailedResponseHandler,\n successfulResponseHandler: createJsonResponseHandler(\n deepgramTranscriptionResponseSchema,\n ),\n abortSignal: options.abortSignal,\n fetch: this.config.fetch,\n });\n\n return {\n text:\n response.results?.channels.at(0)?.alternatives.at(0)?.transcript ?? '',\n segments:\n response.results?.channels[0].alternatives[0].words?.map(word => ({\n text: word.word,\n startSecond: word.start,\n endSecond: word.end,\n })) ?? [],\n language:\n response.results?.channels.at(0)?.detected_language ?? undefined,\n durationInSeconds: response.metadata?.duration ?? undefined,\n warnings,\n response: {\n timestamp: currentDate,\n modelId: this.modelId,\n headers: responseHeaders,\n body: rawResponse,\n },\n };\n }\n}\n\nconst deepgramTranscriptionResponseSchema = z.object({\n metadata: z\n .object({\n duration: z.number(),\n })\n .nullish(),\n results: z\n .object({\n channels: z.array(\n z.object({\n detected_language: z.string().nullish(),\n alternatives: z.array(\n z.object({\n transcript: z.string(),\n words: z.array(\n z.object({\n word: z.string(),\n start: z.number(),\n end: z.number(),\n }),\n ),\n }),\n ),\n }),\n ),\n })\n .nullish(),\n});\n","import { z } from 'zod/v4';\nimport { createJsonErrorResponseHandler } from '@ai-sdk/provider-utils';\n\nexport const deepgramErrorDataSchema = z.object({\n error: z.object({\n message: z.string(),\n code: z.number(),\n }),\n});\n\nexport type DeepgramErrorData = z.infer<typeof deepgramErrorDataSchema>;\n\nexport const deepgramFailedResponseHandler = createJsonErrorResponseHandler({\n errorSchema: deepgramErrorDataSchema,\n errorToMessage: data => data.error.message,\n});\n","import { SpeechModelV3, SharedV3Warning } from '@ai-sdk/provider';\nimport {\n combineHeaders,\n createBinaryResponseHandler,\n parseProviderOptions,\n postJsonToApi,\n} from '@ai-sdk/provider-utils';\nimport { z } from 'zod/v4';\nimport { DeepgramConfig } from './deepgram-config';\nimport { deepgramFailedResponseHandler } from './deepgram-error';\nimport { DeepgramSpeechModelId } from './deepgram-speech-options';\n\n// https://developers.deepgram.com/reference/text-to-speech/speak-request\nconst deepgramSpeechProviderOptionsSchema = z.object({\n /** Bitrate of the audio in bits per second. Can be a number or predefined enum value. */\n bitRate: z.union([z.number(), z.string()]).nullish(),\n /** Container format for the output audio (mp3, wav, etc.). */\n container: z.string().nullish(),\n /** Encoding type for the audio output (linear16, mulaw, alaw, etc.). */\n encoding: z.string().nullish(),\n /** Sample rate for the output audio in Hz (8000, 16000, 24000, 44100, 48000). */\n sampleRate: z.number().nullish(),\n /** URL to which we'll make the callback request. */\n callback: z.string().url().nullish(),\n /** HTTP method by which the callback request will be made (POST or PUT). */\n callbackMethod: z.enum(['POST', 'PUT']).nullish(),\n /** Opts out requests from the Deepgram Model Improvement Program. */\n mipOptOut: z.boolean().nullish(),\n /** Label your requests for the purpose of identification during usage reporting. */\n tag: z.union([z.string(), z.array(z.string())]).nullish(),\n});\n\nexport type DeepgramSpeechCallOptions = z.infer<\n typeof deepgramSpeechProviderOptionsSchema\n>;\n\ninterface DeepgramSpeechModelConfig extends DeepgramConfig {\n _internal?: {\n currentDate?: () => Date;\n };\n}\n\nexport class DeepgramSpeechModel implements SpeechModelV3 {\n readonly specificationVersion = 'v3';\n\n get provider(): string {\n return this.config.provider;\n }\n\n constructor(\n readonly modelId: DeepgramSpeechModelId,\n private readonly config: DeepgramSpeechModelConfig,\n ) {}\n\n private async getArgs({\n text,\n voice,\n outputFormat = 'mp3',\n speed,\n language,\n instructions,\n providerOptions,\n }: Parameters<SpeechModelV3['doGenerate']>[0]) {\n const warnings: SharedV3Warning[] = [];\n\n // Parse provider options\n const deepgramOptions = await parseProviderOptions({\n provider: 'deepgram',\n providerOptions,\n schema: deepgramSpeechProviderOptionsSchema,\n });\n\n // Create request body\n const requestBody = {\n text,\n };\n\n // Prepare query parameters\n const queryParams: Record<string, string> = {\n model: this.modelId,\n };\n\n // Map outputFormat to encoding/container/sample_rate\n // https://developers.deepgram.com/docs/tts-media-output-settings#audio-format-combinations\n if (outputFormat) {\n const formatLower = outputFormat.toLowerCase();\n\n // Common format mappings based on Deepgram's valid combinations\n const formatMap: Record<\n string,\n {\n encoding?: string;\n container?: string;\n sampleRate?: number;\n bitRate?: number;\n }\n > = {\n // MP3: no container, fixed 22050 sample rate, bitrate 32000/48000\n mp3: { encoding: 'mp3' }, // Don't set container or sample_rate for mp3\n // Linear16: wav/none container, configurable sample rate\n wav: { container: 'wav', encoding: 'linear16' },\n linear16: { encoding: 'linear16', container: 'wav' },\n // MuLaw: wav/none container, 8000/16000 sample rate\n mulaw: { encoding: 'mulaw', container: 'wav' },\n // ALaw: wav/none container, 8000/16000 sample rate\n alaw: { encoding: 'alaw', container: 'wav' },\n // Opus: ogg container, fixed 48000 sample rate\n opus: { encoding: 'opus', container: 'ogg' },\n ogg: { encoding: 'opus', container: 'ogg' },\n // FLAC: no container, configurable sample rate\n flac: { encoding: 'flac' },\n // AAC: no container, fixed 22050 sample rate\n aac: { encoding: 'aac' },\n // Raw audio (no container)\n pcm: { encoding: 'linear16', container: 'none' },\n };\n\n const mappedFormat = formatMap[formatLower];\n if (mappedFormat) {\n if (mappedFormat.encoding) {\n queryParams.encoding = mappedFormat.encoding;\n }\n // Only set container if specified and valid for the encoding\n if (mappedFormat.container) {\n queryParams.container = mappedFormat.container;\n }\n // Only set sample_rate if specified and valid for the encoding\n if (mappedFormat.sampleRate) {\n queryParams.sample_rate = String(mappedFormat.sampleRate);\n }\n // Set bitrate for formats that support it\n if (mappedFormat.bitRate) {\n queryParams.bit_rate = String(mappedFormat.bitRate);\n }\n } else {\n // Try to parse format like \"wav_44100\" or \"linear16_24000\"\n const parts = formatLower.split('_');\n if (parts.length >= 2) {\n const firstPart = parts[0];\n const secondPart = parts[1];\n const sampleRate = parseInt(secondPart, 10);\n\n // Check if first part is an encoding\n if (\n [\n 'linear16',\n 'mulaw',\n 'alaw',\n 'mp3',\n 'opus',\n 'flac',\n 'aac',\n ].includes(firstPart)\n ) {\n queryParams.encoding = firstPart;\n\n // Set container based on encoding\n if (['linear16', 'mulaw', 'alaw'].includes(firstPart)) {\n // These can use wav or none, default to wav\n queryParams.container = 'wav';\n } else if (firstPart === 'opus') {\n queryParams.container = 'ogg';\n }\n // mp3, flac, aac don't use container\n\n // Set sample rate if valid for encoding\n if (!isNaN(sampleRate)) {\n if (\n firstPart === 'linear16' &&\n [8000, 16000, 24000, 32000, 48000].includes(sampleRate)\n ) {\n queryParams.sample_rate = String(sampleRate);\n } else if (\n firstPart === 'mulaw' &&\n [8000, 16000].includes(sampleRate)\n ) {\n queryParams.sample_rate = String(sampleRate);\n } else if (\n firstPart === 'alaw' &&\n [8000, 16000].includes(sampleRate)\n ) {\n queryParams.sample_rate = String(sampleRate);\n } else if (\n firstPart === 'flac' &&\n [8000, 16000, 22050, 32000, 48000].includes(sampleRate)\n ) {\n queryParams.sample_rate = String(sampleRate);\n }\n // mp3, opus, aac have fixed sample rates, don't set\n }\n } else if (['wav', 'ogg'].includes(firstPart)) {\n // First part is container\n if (firstPart === 'wav') {\n queryParams.container = 'wav';\n queryParams.encoding = 'linear16'; // Default encoding for wav\n } else if (firstPart === 'ogg') {\n queryParams.container = 'ogg';\n queryParams.encoding = 'opus'; // Default encoding for ogg\n }\n if (!isNaN(sampleRate)) {\n queryParams.sample_rate = String(sampleRate);\n }\n }\n }\n }\n }\n\n // Add provider-specific options - map camelCase to snake_case\n // Validate combinations according to Deepgram's spec\n if (deepgramOptions) {\n if (deepgramOptions.encoding) {\n const newEncoding = deepgramOptions.encoding.toLowerCase();\n\n // If encoding changes, we may need to clear incompatible parameters\n queryParams.encoding = newEncoding;\n\n // Validate container based on encoding\n if (deepgramOptions.container) {\n // Validate container is valid for this encoding\n if (['linear16', 'mulaw', 'alaw'].includes(newEncoding)) {\n if (\n !['wav', 'none'].includes(deepgramOptions.container.toLowerCase())\n ) {\n warnings.push({\n type: 'unsupported',\n feature: 'providerOptions',\n details: `Encoding \"${newEncoding}\" only supports containers \"wav\" or \"none\". Container \"${deepgramOptions.container}\" was ignored.`,\n });\n } else {\n queryParams.container = deepgramOptions.container.toLowerCase();\n }\n } else if (newEncoding === 'opus') {\n // opus requires ogg container, override any previous container setting\n queryParams.container = 'ogg';\n } else if (['mp3', 'flac', 'aac'].includes(newEncoding)) {\n warnings.push({\n type: 'unsupported',\n feature: 'providerOptions',\n details: `Encoding \"${newEncoding}\" does not support container parameter. Container \"${deepgramOptions.container}\" was ignored.`,\n });\n // Remove container if it was set by outputFormat\n delete queryParams.container;\n }\n } else {\n // No container specified in providerOptions\n // If encoding changed to one that doesn't support container, remove it\n if (['mp3', 'flac', 'aac'].includes(newEncoding)) {\n delete queryParams.container;\n } else if (['linear16', 'mulaw', 'alaw'].includes(newEncoding)) {\n // Set default container if not already set\n if (!queryParams.container) {\n queryParams.container = 'wav'; // Default for these encodings\n }\n } else if (newEncoding === 'opus') {\n // opus requires ogg container, override any previous container setting\n queryParams.container = 'ogg';\n }\n }\n\n // Clean up sample_rate and bit_rate if they're incompatible with the new encoding\n // Fixed sample rate encodings (mp3, opus, aac) don't support sample_rate parameter\n if (['mp3', 'opus', 'aac'].includes(newEncoding)) {\n delete queryParams.sample_rate;\n }\n // Lossless encodings without bitrate support (linear16, mulaw, alaw, flac) don't support bit_rate\n if (['linear16', 'mulaw', 'alaw', 'flac'].includes(newEncoding)) {\n delete queryParams.bit_rate;\n }\n } else if (deepgramOptions.container) {\n // Container specified without encoding - set default encoding\n const container = deepgramOptions.container.toLowerCase();\n const oldEncoding = queryParams.encoding?.toLowerCase();\n let newEncoding: string | undefined;\n\n if (container === 'wav') {\n queryParams.container = 'wav';\n newEncoding = 'linear16'; // Default encoding for wav\n } else if (container === 'ogg') {\n queryParams.container = 'ogg';\n newEncoding = 'opus'; // Default encoding for ogg\n } else if (container === 'none') {\n queryParams.container = 'none';\n newEncoding = 'linear16'; // Default encoding for raw audio\n }\n\n // If encoding changed, clean up incompatible parameters\n if (newEncoding && newEncoding !== oldEncoding) {\n queryParams.encoding = newEncoding;\n // Clean up sample_rate and bit_rate if they're incompatible with the new encoding\n if (['mp3', 'opus', 'aac'].includes(newEncoding)) {\n delete queryParams.sample_rate;\n }\n if (['linear16', 'mulaw', 'alaw', 'flac'].includes(newEncoding)) {\n delete queryParams.bit_rate;\n }\n }\n }\n\n if (deepgramOptions.sampleRate != null) {\n const encoding = queryParams.encoding?.toLowerCase() || '';\n const sampleRate = deepgramOptions.sampleRate;\n\n // Validate sample rate based on encoding\n if (encoding === 'linear16') {\n if (![8000, 16000, 24000, 32000, 48000].includes(sampleRate)) {\n warnings.push({\n type: 'unsupported',\n feature: 'providerOptions',\n details: `Encoding \"linear16\" only supports sample rates: 8000, 16000, 24000, 32000, 48000. Sample rate ${sampleRate} was ignored.`,\n });\n } else {\n queryParams.sample_rate = String(sampleRate);\n }\n } else if (encoding === 'mulaw' || encoding === 'alaw') {\n if (![8000, 16000].includes(sampleRate)) {\n warnings.push({\n type: 'unsupported',\n feature: 'providerOptions',\n details: `Encoding \"${encoding}\" only supports sample rates: 8000, 16000. Sample rate ${sampleRate} was ignored.`,\n });\n } else {\n queryParams.sample_rate = String(sampleRate);\n }\n } else if (encoding === 'flac') {\n if (![8000, 16000, 22050, 32000, 48000].includes(sampleRate)) {\n warnings.push({\n type: 'unsupported',\n feature: 'providerOptions',\n details: `Encoding \"flac\" only supports sample rates: 8000, 16000, 22050, 32000, 48000. Sample rate ${sampleRate} was ignored.`,\n });\n } else {\n queryParams.sample_rate = String(sampleRate);\n }\n } else if (['mp3', 'opus', 'aac'].includes(encoding)) {\n warnings.push({\n type: 'unsupported',\n feature: 'providerOptions',\n details: `Encoding \"${encoding}\" has a fixed sample rate and does not support sample_rate parameter. Sample rate ${sampleRate} was ignored.`,\n });\n } else {\n // No encoding set yet, allow it (will be validated when encoding is set)\n queryParams.sample_rate = String(sampleRate);\n }\n }\n\n if (deepgramOptions.bitRate != null) {\n const encoding = queryParams.encoding?.toLowerCase() || '';\n const bitRate = deepgramOptions.bitRate;\n\n // Validate bitrate based on encoding\n if (encoding === 'mp3') {\n if (![32000, 48000].includes(Number(bitRate))) {\n warnings.push({\n type: 'unsupported',\n feature: 'providerOptions',\n details: `Encoding \"mp3\" only supports bit rates: 32000, 48000. Bit rate ${bitRate} was ignored.`,\n });\n } else {\n queryParams.bit_rate = String(bitRate);\n }\n } else if (encoding === 'opus') {\n const bitRateNum = Number(bitRate);\n if (bitRateNum < 4000 || bitRateNum > 650000) {\n warnings.push({\n type: 'unsupported',\n feature: 'providerOptions',\n details: `Encoding \"opus\" supports bit rates between 4000 and 650000. Bit rate ${bitRate} was ignored.`,\n });\n } else {\n queryParams.bit_rate = String(bitRate);\n }\n } else if (encoding === 'aac') {\n const bitRateNum = Number(bitRate);\n if (bitRateNum < 4000 || bitRateNum > 192000) {\n warnings.push({\n type: 'unsupported',\n feature: 'providerOptions',\n details: `Encoding \"aac\" supports bit rates between 4000 and 192000. Bit rate ${bitRate} was ignored.`,\n });\n } else {\n queryParams.bit_rate = String(bitRate);\n }\n } else if (['linear16', 'mulaw', 'alaw', 'flac'].includes(encoding)) {\n warnings.push({\n type: 'unsupported',\n feature: 'providerOptions',\n details: `Encoding \"${encoding}\" does not support bit_rate parameter. Bit rate ${bitRate} was ignored.`,\n });\n } else {\n // No encoding set yet, allow it\n queryParams.bit_rate = String(bitRate);\n }\n }\n\n if (deepgramOptions.callback) {\n queryParams.callback = deepgramOptions.callback;\n }\n if (deepgramOptions.callbackMethod) {\n queryParams.callback_method = deepgramOptions.callbackMethod;\n }\n if (deepgramOptions.mipOptOut != null) {\n queryParams.mip_opt_out = String(deepgramOptions.mipOptOut);\n }\n if (deepgramOptions.tag) {\n if (Array.isArray(deepgramOptions.tag)) {\n queryParams.tag = deepgramOptions.tag.join(',');\n } else {\n queryParams.tag = deepgramOptions.tag;\n }\n }\n }\n\n // Handle voice parameter - Deepgram embeds voice in model ID\n // If voice is provided and different from model, warn user\n if (voice && voice !== this.modelId) {\n warnings.push({\n type: 'unsupported',\n feature: 'voice',\n details: `Deepgram TTS models embed the voice in the model ID. The voice parameter \"${voice}\" was ignored. Use the model ID to select a voice (e.g., \"aura-2-helena-en\").`,\n });\n }\n\n // Handle speed - not supported in Deepgram REST API\n if (speed != null) {\n warnings.push({\n type: 'unsupported',\n feature: 'speed',\n details: `Deepgram TTS REST API does not support speed adjustment. Speed parameter was ignored.`,\n });\n }\n\n // Handle language - Deepgram models are language-specific via model ID\n if (language) {\n warnings.push({\n type: 'unsupported',\n feature: 'language',\n details: `Deepgram TTS models are language-specific via the model ID. Language parameter \"${language}\" was ignored. Select a model with the appropriate language suffix (e.g., \"-en\" for English).`,\n });\n }\n\n // Handle instructions - not supported in Deepgram REST API\n if (instructions) {\n warnings.push({\n type: 'unsupported',\n feature: 'instructions',\n details: `Deepgram TTS REST API does not support instructions. Instructions parameter was ignored.`,\n });\n }\n\n return {\n requestBody,\n queryParams,\n warnings,\n };\n }\n\n async doGenerate(\n options: Parameters<SpeechModelV3['doGenerate']>[0],\n ): Promise<Awaited<ReturnType<SpeechModelV3['doGenerate']>>> {\n const currentDate = this.config._internal?.currentDate?.() ?? new Date();\n const { requestBody, queryParams, warnings } = await this.getArgs(options);\n\n const {\n value: audio,\n responseHeaders,\n rawValue: rawResponse,\n } = await postJsonToApi({\n url: (() => {\n const baseUrl = this.config.url({\n path: '/v1/speak',\n modelId: this.modelId,\n });\n const queryString = new URLSearchParams(queryParams).toString();\n return queryString ? `${baseUrl}?${queryString}` : baseUrl;\n })(),\n headers: combineHeaders(this.config.headers(), options.headers),\n body: requestBody,\n failedResponseHandler: deepgramFailedResponseHandler,\n successfulResponseHandler: createBinaryResponseHandler(),\n abortSignal: options.abortSignal,\n fetch: this.config.fetch,\n });\n\n return {\n audio,\n warnings,\n request: {\n body: JSON.stringify(requestBody),\n },\n response: {\n timestamp: currentDate,\n modelId: this.modelId,\n headers: responseHeaders,\n body: rawResponse,\n },\n };\n }\n}\n","// Version string of this package injected at build time.\ndeclare const __PACKAGE_VERSION__: string | undefined;\nexport const VERSION: string =\n typeof __PACKAGE_VERSION__ !== 'undefined'\n ? __PACKAGE_VERSION__\n : '0.0.0-test';\n"],"mappings":"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","names":["z","z","combineHeaders","parseProviderOptions","z","z","parseProviderOptions","combineHeaders"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ai-sdk/deepgram",
|
|
3
|
-
"version": "2.0.
|
|
3
|
+
"version": "2.0.1",
|
|
4
4
|
"license": "Apache-2.0",
|
|
5
5
|
"sideEffects": false,
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -20,15 +20,15 @@
|
|
|
20
20
|
}
|
|
21
21
|
},
|
|
22
22
|
"dependencies": {
|
|
23
|
-
"@ai-sdk/provider": "3.0.0
|
|
24
|
-
"@ai-sdk/provider-utils": "4.0.
|
|
23
|
+
"@ai-sdk/provider": "3.0.0",
|
|
24
|
+
"@ai-sdk/provider-utils": "4.0.1"
|
|
25
25
|
},
|
|
26
26
|
"devDependencies": {
|
|
27
27
|
"@types/node": "20.17.24",
|
|
28
28
|
"tsup": "^8",
|
|
29
29
|
"typescript": "5.6.3",
|
|
30
30
|
"zod": "3.25.76",
|
|
31
|
-
"@ai-sdk/test-server": "1.0.0
|
|
31
|
+
"@ai-sdk/test-server": "1.0.0",
|
|
32
32
|
"@vercel/ai-tsconfig": "0.0.0"
|
|
33
33
|
},
|
|
34
34
|
"peerDependencies": {
|