webs-sdk 0.2.1 → 0.2.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.ts CHANGED
@@ -7,6 +7,7 @@ import AndromedaClass from './libraries/andromeda';
7
7
  import ContentManagerClass from './libraries/content';
8
8
  import SessionClass from './libraries/session';
9
9
  import MixPanelClass from './libraries/mixpanel';
10
+ import AudioClass from './libraries/audio';
10
11
  declare const WebsSDK: {
11
12
  Networking: NetworkingClass;
12
13
  AuthManager: AuthManagerClass;
@@ -17,6 +18,7 @@ declare const WebsSDK: {
17
18
  ContentManager: ContentManagerClass;
18
19
  Session: SessionClass;
19
20
  MixPanel: MixPanelClass;
21
+ Audio: AudioClass;
20
22
  Config: import("./config").Config;
21
23
  };
22
24
  export default WebsSDK;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,eAAe,MAAM,wBAAwB,CAAC;AACrD,OAAO,gBAAgB,MAAM,kBAAkB,CAAC;AAChD,OAAO,gBAAgB,MAAM,kBAAkB,CAAC;AAChD,OAAO,YAAY,MAAM,qBAAqB,CAAC;AAC/C,OAAO,UAAU,MAAM,mBAAmB,CAAC;AAC3C,OAAO,cAAc,MAAM,uBAAuB,CAAC;AACnD,OAAO,mBAAmB,MAAM,qBAAqB,CAAC;AACtD,OAAO,YAAY,MAAM,qBAAqB,CAAC;AAC/C,OAAO,aAAa,MAAM,sBAAsB,CAAC;AAGjD,QAAA,MAAM,OAAO;;;;;;;;;;;CAWZ,CAAC;AAEF,eAAe,OAAO,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,eAAe,MAAM,wBAAwB,CAAC;AACrD,OAAO,gBAAgB,MAAM,kBAAkB,CAAC;AAChD,OAAO,gBAAgB,MAAM,kBAAkB,CAAC;AAChD,OAAO,YAAY,MAAM,qBAAqB,CAAC;AAC/C,OAAO,UAAU,MAAM,mBAAmB,CAAC;AAC3C,OAAO,cAAc,MAAM,uBAAuB,CAAC;AACnD,OAAO,mBAAmB,MAAM,qBAAqB,CAAC;AACtD,OAAO,YAAY,MAAM,qBAAqB,CAAC;AAC/C,OAAO,aAAa,MAAM,sBAAsB,CAAC;AACjD,OAAO,UAAU,MAAM,mBAAmB,CAAC;AAG3C,QAAA,MAAM,OAAO;;;;;;;;;;;;CAYZ,CAAC;AAEF,eAAe,OAAO,CAAC"}
package/dist/index.js CHANGED
@@ -12,6 +12,7 @@ const andromeda_1 = __importDefault(require("./libraries/andromeda"));
12
12
  const content_1 = __importDefault(require("./libraries/content"));
13
13
  const session_1 = __importDefault(require("./libraries/session"));
14
14
  const mixpanel_1 = __importDefault(require("./libraries/mixpanel"));
15
+ const audio_1 = __importDefault(require("./libraries/audio"));
15
16
  const config_1 = __importDefault(require("./config"));
16
17
  const WebsSDK = {
17
18
  Networking: new networking_1.default(),
@@ -23,6 +24,7 @@ const WebsSDK = {
23
24
  ContentManager: new content_1.default(),
24
25
  Session: new session_1.default(),
25
26
  MixPanel: new mixpanel_1.default(),
27
+ Audio: new audio_1.default(),
26
28
  Config: config_1.default
27
29
  };
28
30
  exports.default = WebsSDK;
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;AAAA,wEAAqD;AACrD,4DAAgD;AAChD,4DAAgD;AAChD,kEAA+C;AAC/C,8DAA2C;AAC3C,sEAAmD;AACnD,kEAAsD;AACtD,kEAA+C;AAC/C,oEAAiD;AACjD,sDAA8B;AAE9B,MAAM,OAAO,GAAG;IACZ,UAAU,EAAE,IAAI,oBAAe,EAAE;IACjC,WAAW,EAAE,IAAI,cAAgB,EAAE;IACnC,WAAW,EAAE,IAAI,cAAgB,EAAE;IACnC,OAAO,EAAE,IAAI,iBAAY,EAAE;IAC3B,KAAK,EAAE,IAAI,eAAU,EAAE;IACvB,SAAS,EAAE,IAAI,mBAAc,EAAE;IAC/B,cAAc,EAAE,IAAI,iBAAmB,EAAE;IACzC,OAAO,EAAE,IAAI,iBAAY,EAAE;IAC3B,QAAQ,EAAE,IAAI,kBAAa,EAAE;IAC7B,MAAM,EAAE,gBAAM;CACjB,CAAC;AAEF,kBAAe,OAAO,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;AAAA,wEAAqD;AACrD,4DAAgD;AAChD,4DAAgD;AAChD,kEAA+C;AAC/C,8DAA2C;AAC3C,sEAAmD;AACnD,kEAAsD;AACtD,kEAA+C;AAC/C,oEAAiD;AACjD,8DAA2C;AAC3C,sDAA8B;AAE9B,MAAM,OAAO,GAAG;IACZ,UAAU,EAAE,IAAI,oBAAe,EAAE;IACjC,WAAW,EAAE,IAAI,cAAgB,EAAE;IACnC,WAAW,EAAE,IAAI,cAAgB,EAAE;IACnC,OAAO,EAAE,IAAI,iBAAY,EAAE;IAC3B,KAAK,EAAE,IAAI,eAAU,EAAE;IACvB,SAAS,EAAE,IAAI,mBAAc,EAAE;IAC/B,cAAc,EAAE,IAAI,iBAAmB,EAAE;IACzC,OAAO,EAAE,IAAI,iBAAY,EAAE;IAC3B,QAAQ,EAAE,IAAI,kBAAa,EAAE;IAC7B,KAAK,EAAE,IAAI,eAAU,EAAE;IACvB,MAAM,EAAE,gBAAM;CACjB,CAAC;AAEF,kBAAe,OAAO,CAAC"}
@@ -0,0 +1,49 @@
1
+ export interface AudioVoice {
2
+ name: string;
3
+ lang: string;
4
+ localService: boolean;
5
+ default: boolean;
6
+ voiceURI: string;
7
+ }
8
+ export interface SpeechOptions {
9
+ text: string;
10
+ voice?: string;
11
+ rate?: number;
12
+ pitch?: number;
13
+ volume?: number;
14
+ lang?: string;
15
+ }
16
+ export interface AudioConfig {
17
+ defaultRate: number;
18
+ defaultPitch: number;
19
+ defaultVolume: number;
20
+ preferredLanguages: string[];
21
+ fallbackLanguage: string;
22
+ }
23
+ export declare class Audio {
24
+ private synthesis;
25
+ private voices;
26
+ private isInitialized;
27
+ private audioConfig;
28
+ constructor();
29
+ private init;
30
+ private loadVoices;
31
+ getAvailableVoices(): AudioVoice[];
32
+ getBestVoiceForLanguage(language?: string): SpeechSynthesisVoice | null;
33
+ speak(options: SpeechOptions): Promise<void>;
34
+ speakText(text: string, language?: string): Promise<void>;
35
+ pause(): void;
36
+ resume(): void;
37
+ stop(): void;
38
+ isSpeaking(): boolean;
39
+ isPaused(): boolean;
40
+ isSupported(): boolean;
41
+ private getSystemLanguage;
42
+ setAudioConfig(config: Partial<AudioConfig>): void;
43
+ getAudioConfig(): AudioConfig;
44
+ getAudioInfo(): any;
45
+ speakSequence(texts: string[], options?: Partial<SpeechOptions>): Promise<void>;
46
+ speakWithEffect(text: string, effect: 'slow' | 'fast' | 'robot' | 'whisper'): Promise<void>;
47
+ }
48
+ export default Audio;
49
+ //# sourceMappingURL=audio.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"audio.d.ts","sourceRoot":"","sources":["../../src/libraries/audio.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,UAAU;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,OAAO,CAAC;IACtB,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,aAAa;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,WAAW;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,kBAAkB,EAAE,MAAM,EAAE,CAAC;IAC7B,gBAAgB,EAAE,MAAM,CAAC;CAC5B;AAED,qBAAa,KAAK;IACd,OAAO,CAAC,SAAS,CAAgC;IACjD,OAAO,CAAC,MAAM,CAA8B;IAC5C,OAAO,CAAC,aAAa,CAAkB;IACvC,OAAO,CAAC,WAAW,CAAc;;YAcnB,IAAI;YAcJ,UAAU;IAwCjB,kBAAkB,IAAI,UAAU,EAAE;IAiBlC,uBAAuB,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,oBAAoB,GAAG,IAAI;IAgDjE,KAAK,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAuC5C,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAU/D,KAAK,IAAI,IAAI;IASb,MAAM,IAAI,IAAI;IASd,IAAI,IAAI,IAAI;IASZ,UAAU,IAAI,OAAO;IAOrB,QAAQ,IAAI,OAAO;IAOnB,WAAW,IAAI,OAAO;IAO7B,OAAO,CAAC,iBAAiB;IAUlB,cAAc,CAAC,MAAM,EAAE,OAAO,CAAC,WAAW,CAAC,GAAG,IAAI;IAOlD,cAAc,IAAI,WAAW;IAO7B,YAAY,IAAI,GAAG;IAeb,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,OAAO,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAY/E,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;CAsB3G;AAED,eAAe,KAAK,CAAC"}
@@ -0,0 +1,212 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Audio = void 0;
4
+ class Audio {
5
+ constructor() {
6
+ this.synthesis = null;
7
+ this.voices = [];
8
+ this.isInitialized = false;
9
+ this.audioConfig = {
10
+ defaultRate: 1.0,
11
+ defaultPitch: 1.0,
12
+ defaultVolume: 1.0,
13
+ preferredLanguages: ['es-ES', 'en-US', 'fr-FR'],
14
+ fallbackLanguage: 'en-US'
15
+ };
16
+ this.init();
17
+ }
18
+ async init() {
19
+ try {
20
+ if (typeof window !== 'undefined' && 'speechSynthesis' in window) {
21
+ this.synthesis = window.speechSynthesis;
22
+ await this.loadVoices();
23
+ this.isInitialized = true;
24
+ }
25
+ else {
26
+ console.warn('Speech Synthesis API no está disponible en este navegador');
27
+ }
28
+ }
29
+ catch (error) {
30
+ console.error('Error inicializando Audio SDK:', error);
31
+ }
32
+ }
33
+ async loadVoices() {
34
+ return new Promise((resolve) => {
35
+ if (!this.synthesis) {
36
+ resolve();
37
+ return;
38
+ }
39
+ const loadVoicesCallback = () => {
40
+ this.voices = this.synthesis.getVoices();
41
+ if (this.voices.length > 0) {
42
+ resolve();
43
+ }
44
+ else {
45
+ setTimeout(() => {
46
+ this.voices = this.synthesis.getVoices();
47
+ resolve();
48
+ }, 100);
49
+ }
50
+ };
51
+ this.voices = this.synthesis.getVoices();
52
+ if (this.voices.length > 0) {
53
+ resolve();
54
+ }
55
+ else {
56
+ this.synthesis.addEventListener('voiceschanged', loadVoicesCallback, { once: true });
57
+ setTimeout(() => {
58
+ this.voices = this.synthesis.getVoices();
59
+ resolve();
60
+ }, 1000);
61
+ }
62
+ });
63
+ }
64
+ getAvailableVoices() {
65
+ if (!this.isInitialized || this.voices.length === 0) {
66
+ return [];
67
+ }
68
+ return this.voices.map(voice => ({
69
+ name: voice.name,
70
+ lang: voice.lang,
71
+ localService: voice.localService,
72
+ default: voice.default,
73
+ voiceURI: voice.voiceURI
74
+ }));
75
+ }
76
+ getBestVoiceForLanguage(language) {
77
+ if (!this.isInitialized || this.voices.length === 0) {
78
+ return null;
79
+ }
80
+ const targetLang = language || this.getSystemLanguage();
81
+ let matchingVoices = this.voices.filter(voice => voice.lang.toLowerCase() === targetLang.toLowerCase());
82
+ if (matchingVoices.length === 0) {
83
+ const baseLang = targetLang.split('-')[0];
84
+ matchingVoices = this.voices.filter(voice => voice.lang.toLowerCase().startsWith(baseLang.toLowerCase()));
85
+ }
86
+ if (matchingVoices.length === 0) {
87
+ const fallbackLang = this.audioConfig.fallbackLanguage;
88
+ matchingVoices = this.voices.filter(voice => voice.lang.toLowerCase().startsWith(fallbackLang.toLowerCase()));
89
+ }
90
+ if (matchingVoices.length === 0) {
91
+ return this.voices[0] || null;
92
+ }
93
+ const prioritizedVoices = matchingVoices.sort((a, b) => {
94
+ if (a.default && !b.default)
95
+ return -1;
96
+ if (!a.default && b.default)
97
+ return 1;
98
+ if (a.localService && !b.localService)
99
+ return -1;
100
+ if (!a.localService && b.localService)
101
+ return 1;
102
+ return 0;
103
+ });
104
+ return prioritizedVoices[0];
105
+ }
106
+ async speak(options) {
107
+ return new Promise((resolve, reject) => {
108
+ var _a, _b, _c;
109
+ if (!this.isInitialized || !this.synthesis) {
110
+ reject(new Error('Speech Synthesis no está disponible'));
111
+ return;
112
+ }
113
+ this.synthesis.cancel();
114
+ const utterance = new SpeechSynthesisUtterance(options.text);
115
+ const voice = this.getBestVoiceForLanguage(options.lang);
116
+ if (voice) {
117
+ utterance.voice = voice;
118
+ }
119
+ utterance.rate = (_a = options.rate) !== null && _a !== void 0 ? _a : this.audioConfig.defaultRate;
120
+ utterance.pitch = (_b = options.pitch) !== null && _b !== void 0 ? _b : this.audioConfig.defaultPitch;
121
+ utterance.volume = (_c = options.volume) !== null && _c !== void 0 ? _c : this.audioConfig.defaultVolume;
122
+ if (options.lang) {
123
+ utterance.lang = options.lang;
124
+ }
125
+ utterance.onend = () => resolve();
126
+ utterance.onerror = (event) => reject(new Error(`Error en síntesis de voz: ${event.error}`));
127
+ this.synthesis.speak(utterance);
128
+ });
129
+ }
130
+ async speakText(text, language) {
131
+ return this.speak({
132
+ text,
133
+ lang: language
134
+ });
135
+ }
136
+ pause() {
137
+ if (this.synthesis && this.synthesis.speaking) {
138
+ this.synthesis.pause();
139
+ }
140
+ }
141
+ resume() {
142
+ if (this.synthesis && this.synthesis.paused) {
143
+ this.synthesis.resume();
144
+ }
145
+ }
146
+ stop() {
147
+ if (this.synthesis) {
148
+ this.synthesis.cancel();
149
+ }
150
+ }
151
+ isSpeaking() {
152
+ return this.synthesis ? this.synthesis.speaking : false;
153
+ }
154
+ isPaused() {
155
+ return this.synthesis ? this.synthesis.paused : false;
156
+ }
157
+ isSupported() {
158
+ return this.isInitialized && this.synthesis !== null;
159
+ }
160
+ getSystemLanguage() {
161
+ var _a;
162
+ if (typeof navigator !== 'undefined') {
163
+ return navigator.language || ((_a = navigator.languages) === null || _a === void 0 ? void 0 : _a[0]) || this.audioConfig.fallbackLanguage;
164
+ }
165
+ return this.audioConfig.fallbackLanguage;
166
+ }
167
+ setAudioConfig(config) {
168
+ this.audioConfig = Object.assign(Object.assign({}, this.audioConfig), config);
169
+ }
170
+ getAudioConfig() {
171
+ return Object.assign({}, this.audioConfig);
172
+ }
173
+ getAudioInfo() {
174
+ return {
175
+ isSupported: this.isSupported(),
176
+ isInitialized: this.isInitialized,
177
+ voicesCount: this.voices.length,
178
+ systemLanguage: this.getSystemLanguage(),
179
+ isSpeaking: this.isSpeaking(),
180
+ isPaused: this.isPaused(),
181
+ config: this.getAudioConfig()
182
+ };
183
+ }
184
+ async speakSequence(texts, options) {
185
+ for (const text of texts) {
186
+ await this.speak(Object.assign({ text }, options));
187
+ }
188
+ }
189
+ async speakWithEffect(text, effect) {
190
+ let speechOptions = { text };
191
+ switch (effect) {
192
+ case 'slow':
193
+ speechOptions.rate = 0.5;
194
+ break;
195
+ case 'fast':
196
+ speechOptions.rate = 1.5;
197
+ break;
198
+ case 'robot':
199
+ speechOptions.rate = 0.8;
200
+ speechOptions.pitch = 0.5;
201
+ break;
202
+ case 'whisper':
203
+ speechOptions.rate = 0.7;
204
+ speechOptions.volume = 0.3;
205
+ break;
206
+ }
207
+ return this.speak(speechOptions);
208
+ }
209
+ }
210
+ exports.Audio = Audio;
211
+ exports.default = Audio;
212
+ //# sourceMappingURL=audio.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"audio.js","sourceRoot":"","sources":["../../src/libraries/audio.ts"],"names":[],"mappings":"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"}
@@ -7,6 +7,7 @@ import AndromedaClass from './andromeda';
7
7
  import ContentManagerClass from './content';
8
8
  import SessionClass from './session';
9
9
  import MixPanelClass from './mixpanel';
10
+ import AudioClass from './audio';
10
11
  export declare const Networking: NetworkingClass;
11
12
  export declare const AuthManager: AuthManagerClass;
12
13
  export declare const I18nManager: I18nManagerClass;
@@ -16,4 +17,5 @@ export declare const Andromeda: AndromedaClass;
16
17
  export declare const ContentManager: ContentManagerClass;
17
18
  export declare const Session: SessionClass;
18
19
  export declare const MixPanel: MixPanelClass;
20
+ export declare const Audio: AudioClass;
19
21
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/libraries/index.ts"],"names":[],"mappings":"AAAA,OAAO,eAAe,MAAM,cAAc,CAAC;AAC3C,OAAO,gBAAgB,MAAM,QAAQ,CAAC;AACtC,OAAO,gBAAgB,MAAM,QAAQ,CAAC;AACtC,OAAO,YAAY,MAAM,WAAW,CAAC;AACrC,OAAO,UAAU,MAAM,SAAS,CAAC;AACjC,OAAO,cAAc,MAAM,aAAa,CAAC;AACzC,OAAO,mBAAmB,MAAM,WAAW,CAAC;AAC5C,OAAO,YAAY,MAAM,WAAW,CAAC;AACrC,OAAO,aAAa,MAAM,YAAY,CAAC;AAEvC,eAAO,MAAM,UAAU,iBAAwB,CAAC;AAChD,eAAO,MAAM,WAAW,kBAAyB,CAAC;AAClD,eAAO,MAAM,WAAW,kBAAyB,CAAC;AAClD,eAAO,MAAM,OAAO,cAAqB,CAAC;AAC1C,eAAO,MAAM,KAAK,YAAmB,CAAC;AACtC,eAAO,MAAM,SAAS,gBAAuB,CAAC;AAC9C,eAAO,MAAM,cAAc,qBAA4B,CAAC;AACxD,eAAO,MAAM,OAAO,cAAqB,CAAC;AAC1C,eAAO,MAAM,QAAQ,eAAsB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/libraries/index.ts"],"names":[],"mappings":"AAAA,OAAO,eAAe,MAAM,cAAc,CAAC;AAC3C,OAAO,gBAAgB,MAAM,QAAQ,CAAC;AACtC,OAAO,gBAAgB,MAAM,QAAQ,CAAC;AACtC,OAAO,YAAY,MAAM,WAAW,CAAC;AACrC,OAAO,UAAU,MAAM,SAAS,CAAC;AACjC,OAAO,cAAc,MAAM,aAAa,CAAC;AACzC,OAAO,mBAAmB,MAAM,WAAW,CAAC;AAC5C,OAAO,YAAY,MAAM,WAAW,CAAC;AACrC,OAAO,aAAa,MAAM,YAAY,CAAC;AACvC,OAAO,UAAU,MAAM,SAAS,CAAC;AAEjC,eAAO,MAAM,UAAU,iBAAwB,CAAC;AAChD,eAAO,MAAM,WAAW,kBAAyB,CAAC;AAClD,eAAO,MAAM,WAAW,kBAAyB,CAAC;AAClD,eAAO,MAAM,OAAO,cAAqB,CAAC;AAC1C,eAAO,MAAM,KAAK,YAAmB,CAAC;AACtC,eAAO,MAAM,SAAS,gBAAuB,CAAC;AAC9C,eAAO,MAAM,cAAc,qBAA4B,CAAC;AACxD,eAAO,MAAM,OAAO,cAAqB,CAAC;AAC1C,eAAO,MAAM,QAAQ,eAAsB,CAAC;AAC5C,eAAO,MAAM,KAAK,YAAmB,CAAC"}
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.MixPanel = exports.Session = exports.ContentManager = exports.Andromeda = exports.Utils = exports.Storage = exports.I18nManager = exports.AuthManager = exports.Networking = void 0;
6
+ exports.Audio = exports.MixPanel = exports.Session = exports.ContentManager = exports.Andromeda = exports.Utils = exports.Storage = exports.I18nManager = exports.AuthManager = exports.Networking = void 0;
7
7
  const networking_1 = __importDefault(require("./networking"));
8
8
  const auth_1 = __importDefault(require("./auth"));
9
9
  const i18n_1 = __importDefault(require("./i18n"));
@@ -13,6 +13,7 @@ const andromeda_1 = __importDefault(require("./andromeda"));
13
13
  const content_1 = __importDefault(require("./content"));
14
14
  const session_1 = __importDefault(require("./session"));
15
15
  const mixpanel_1 = __importDefault(require("./mixpanel"));
16
+ const audio_1 = __importDefault(require("./audio"));
16
17
  exports.Networking = new networking_1.default();
17
18
  exports.AuthManager = new auth_1.default();
18
19
  exports.I18nManager = new i18n_1.default();
@@ -22,4 +23,5 @@ exports.Andromeda = new andromeda_1.default();
22
23
  exports.ContentManager = new content_1.default();
23
24
  exports.Session = new session_1.default();
24
25
  exports.MixPanel = new mixpanel_1.default();
26
+ exports.Audio = new audio_1.default();
25
27
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/libraries/index.ts"],"names":[],"mappings":";;;;;;AAAA,8DAA2C;AAC3C,kDAAsC;AACtC,kDAAsC;AACtC,wDAAqC;AACrC,oDAAiC;AACjC,4DAAyC;AACzC,wDAA4C;AAC5C,wDAAqC;AACrC,0DAAuC;AAE1B,QAAA,UAAU,GAAG,IAAI,oBAAe,EAAE,CAAC;AACnC,QAAA,WAAW,GAAG,IAAI,cAAgB,EAAE,CAAC;AACrC,QAAA,WAAW,GAAG,IAAI,cAAgB,EAAE,CAAC;AACrC,QAAA,OAAO,GAAG,IAAI,iBAAY,EAAE,CAAC;AAC7B,QAAA,KAAK,GAAG,IAAI,eAAU,EAAE,CAAC;AACzB,QAAA,SAAS,GAAG,IAAI,mBAAc,EAAE,CAAC;AACjC,QAAA,cAAc,GAAG,IAAI,iBAAmB,EAAE,CAAC;AAC3C,QAAA,OAAO,GAAG,IAAI,iBAAY,EAAE,CAAC;AAC7B,QAAA,QAAQ,GAAG,IAAI,kBAAa,EAAE,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/libraries/index.ts"],"names":[],"mappings":";;;;;;AAAA,8DAA2C;AAC3C,kDAAsC;AACtC,kDAAsC;AACtC,wDAAqC;AACrC,oDAAiC;AACjC,4DAAyC;AACzC,wDAA4C;AAC5C,wDAAqC;AACrC,0DAAuC;AACvC,oDAAiC;AAEpB,QAAA,UAAU,GAAG,IAAI,oBAAe,EAAE,CAAC;AACnC,QAAA,WAAW,GAAG,IAAI,cAAgB,EAAE,CAAC;AACrC,QAAA,WAAW,GAAG,IAAI,cAAgB,EAAE,CAAC;AACrC,QAAA,OAAO,GAAG,IAAI,iBAAY,EAAE,CAAC;AAC7B,QAAA,KAAK,GAAG,IAAI,eAAU,EAAE,CAAC;AACzB,QAAA,SAAS,GAAG,IAAI,mBAAc,EAAE,CAAC;AACjC,QAAA,cAAc,GAAG,IAAI,iBAAmB,EAAE,CAAC;AAC3C,QAAA,OAAO,GAAG,IAAI,iBAAY,EAAE,CAAC;AAC7B,QAAA,QAAQ,GAAG,IAAI,kBAAa,EAAE,CAAC;AAC/B,QAAA,KAAK,GAAG,IAAI,eAAU,EAAE,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "webs-sdk",
3
- "version": "0.2.1",
3
+ "version": "0.2.2",
4
4
  "private": false,
5
5
  "main": "index.js",
6
6
  "types": "dist/index.d.ts",
package/types/index.d.ts CHANGED
@@ -239,6 +239,49 @@ declare module "webs-sdk" {
239
239
  enableTracking(): void;
240
240
  }
241
241
 
242
+ interface AudioVoice {
243
+ name: string;
244
+ lang: string;
245
+ localService: boolean;
246
+ default: boolean;
247
+ voiceURI: string;
248
+ }
249
+
250
+ interface SpeechOptions {
251
+ text: string;
252
+ voice?: string;
253
+ rate?: number;
254
+ pitch?: number;
255
+ volume?: number;
256
+ lang?: string;
257
+ }
258
+
259
+ interface AudioConfig {
260
+ defaultRate: number;
261
+ defaultPitch: number;
262
+ defaultVolume: number;
263
+ preferredLanguages: string[];
264
+ fallbackLanguage: string;
265
+ }
266
+
267
+ interface Audio {
268
+ getAvailableVoices(): AudioVoice[];
269
+ getBestVoiceForLanguage(language?: string): any;
270
+ speak(options: SpeechOptions): Promise<void>;
271
+ speakText(text: string, language?: string): Promise<void>;
272
+ pause(): void;
273
+ resume(): void;
274
+ stop(): void;
275
+ isSpeaking(): boolean;
276
+ isPaused(): boolean;
277
+ isSupported(): boolean;
278
+ setAudioConfig(config: Partial<AudioConfig>): void;
279
+ getAudioConfig(): AudioConfig;
280
+ getAudioInfo(): any;
281
+ speakSequence(texts: string[], options?: Partial<SpeechOptions>): Promise<void>;
282
+ speakWithEffect(text: string, effect: 'slow' | 'fast' | 'robot' | 'whisper'): Promise<void>;
283
+ }
284
+
242
285
  interface WebsSDK {
243
286
  Networking: Networking;
244
287
  AuthManager: AuthManager;
@@ -249,6 +292,7 @@ declare module "webs-sdk" {
249
292
  ContentManager: ContentManager;
250
293
  Session: Session;
251
294
  MixPanel: MixPanel;
295
+ Audio: Audio;
252
296
  Config: Config;
253
297
  }
254
298