@haibun/core 1.51.1 → 1.51.3
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/build/currentVersion.d.ts +1 -1
- package/build/currentVersion.js +1 -1
- package/build/steps/haibun.d.ts +28 -4
- package/build/steps/haibun.d.ts.map +1 -1
- package/build/steps/haibun.js +32 -6
- package/build/steps/haibun.js.map +1 -1
- package/build/steps/lib/tts.d.ts +2 -0
- package/build/steps/lib/tts.d.ts.map +1 -1
- package/build/steps/lib/tts.js +23 -17
- package/build/steps/lib/tts.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare const currentVersion = "1.51.
|
|
1
|
+
export declare const currentVersion = "1.51.3";
|
|
2
2
|
//# sourceMappingURL=currentVersion.d.ts.map
|
package/build/currentVersion.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export const currentVersion = '1.51.
|
|
1
|
+
export const currentVersion = '1.51.3';
|
|
2
2
|
//# sourceMappingURL=currentVersion.js.map
|
package/build/steps/haibun.d.ts
CHANGED
|
@@ -27,24 +27,48 @@ declare class Haibun extends AStepper implements IHasOptions {
|
|
|
27
27
|
};
|
|
28
28
|
required: boolean;
|
|
29
29
|
};
|
|
30
|
+
CAPTURE_START: {
|
|
31
|
+
desc: string;
|
|
32
|
+
parse: (input: string) => {
|
|
33
|
+
parseError: string;
|
|
34
|
+
result?: undefined;
|
|
35
|
+
} | {
|
|
36
|
+
result: string;
|
|
37
|
+
parseError?: undefined;
|
|
38
|
+
};
|
|
39
|
+
required: boolean;
|
|
40
|
+
};
|
|
41
|
+
CAPTURE_STOP: {
|
|
42
|
+
desc: string;
|
|
43
|
+
parse: (input: string) => {
|
|
44
|
+
parseError: string;
|
|
45
|
+
result?: undefined;
|
|
46
|
+
} | {
|
|
47
|
+
result: string;
|
|
48
|
+
parseError?: undefined;
|
|
49
|
+
};
|
|
50
|
+
required: boolean;
|
|
51
|
+
};
|
|
30
52
|
};
|
|
31
53
|
cycles: IStepperCycles;
|
|
32
54
|
steppers: AStepper[];
|
|
33
55
|
ttsCmd: string;
|
|
34
56
|
ttsPlay: string;
|
|
57
|
+
captureStart: string;
|
|
58
|
+
captureStop: string;
|
|
35
59
|
setWorld(world: TWorld, steppers: AStepper[]): Promise<void>;
|
|
36
60
|
steps: {
|
|
37
61
|
prose: {
|
|
38
62
|
gwta: string;
|
|
39
|
-
action: (t: TNamed, featureStep: TFeatureStep) => Promise<import("../lib/defs.js").
|
|
63
|
+
action: (t: TNamed, featureStep: TFeatureStep) => Promise<import("../lib/defs.js").TOKActionResult | import("../lib/defs.js").TNotOKActionResult>;
|
|
40
64
|
};
|
|
41
65
|
feature: {
|
|
42
66
|
match: RegExp;
|
|
43
|
-
action: ({ feature }: TNamed, featureStep: TFeatureStep) => Promise<import("../lib/defs.js").
|
|
67
|
+
action: ({ feature }: TNamed, featureStep: TFeatureStep) => Promise<import("../lib/defs.js").TOKActionResult | import("../lib/defs.js").TNotOKActionResult>;
|
|
44
68
|
};
|
|
45
69
|
scenarioStart: {
|
|
46
70
|
match: RegExp;
|
|
47
|
-
action: ({ scenario }: TNamed, featureStep: TFeatureStep) => Promise<import("../lib/defs.js").
|
|
71
|
+
action: ({ scenario }: TNamed, featureStep: TFeatureStep) => Promise<import("../lib/defs.js").TOKActionResult | import("../lib/defs.js").TNotOKActionResult>;
|
|
48
72
|
};
|
|
49
73
|
sequenceToken: {
|
|
50
74
|
gwta: string;
|
|
@@ -88,7 +112,7 @@ declare class Haibun extends AStepper implements IHasOptions {
|
|
|
88
112
|
applyEffect: ({ stepperName, line }: TNamed, currentFeatureStep: TFeatureStep, steppers: AStepper[]) => Promise<any[]>;
|
|
89
113
|
};
|
|
90
114
|
};
|
|
91
|
-
maybeSay(transcript: string): Promise<import("../lib/defs.js").
|
|
115
|
+
maybeSay(transcript: string): Promise<import("../lib/defs.js").TOKActionResult | import("../lib/defs.js").TNotOKActionResult>;
|
|
92
116
|
newFeatureFromEffect(content: string, seq: number, steppers: AStepper[]): Promise<TFeatureStep>;
|
|
93
117
|
}
|
|
94
118
|
export default Haibun;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"haibun.d.ts","sourceRoot":"","sources":["../../src/steps/haibun.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"haibun.d.ts","sourceRoot":"","sources":["../../src/steps/haibun.ts"],"names":[],"mappings":"AAEA,OAAO,EAAM,MAAM,EAAE,MAAM,EAAE,YAAY,EAAc,cAAc,EAAoC,MAAM,gBAAgB,CAAC;AAEhI,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAK9C,OAAO,EAAsE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAsBrH,cAAM,MAAO,SAAQ,QAAS,YAAW,WAAW;IACnD,aAAa,EAAE,iBAAiB,CAAM;IACtC,OAAO;;;2BAGU,MAAM;;;;;;;;;;;2BAKN,MAAM;;;;;;;;;;;2BAKN,MAAM;;;;;;;;;;;2BAKN,MAAM;;;;;;;;;MAGtB;IAED,MAAM,iBAAgB;IACtB,QAAQ,EAAE,QAAQ,EAAE,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE;IAYlD,KAAK;;;wBAGe,MAAM,eAAe,YAAY;;;;kCAMvB,MAAM,eAAe,YAAY;;;;mCAOhC,MAAM,eAAe,YAAY;;;;gCAOpC,MAAM;;;;6BAOT,MAAM;;;;kCAOD,MAAM;;;;;;;;;;;;gCAmBR,MAAM;;;;sCAQA,MAAM;;;;6BASf,MAAM;;;;;;;;;iDAiBc,MAAM,sBAAsB,YAAY,YAAY,QAAQ,EAAE;;MAWzG;IACI,QAAQ,CAAC,UAAU,EAAE,MAAM;IA0B3B,oBAAoB,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC,YAAY,CAAC;CAMrG;AAED,eAAe,MAAM,CAAC"}
|
package/build/steps/haibun.js
CHANGED
|
@@ -1,19 +1,28 @@
|
|
|
1
|
+
import { resolve } from 'path';
|
|
1
2
|
import { OK, STEP_DELAY, SCENARIO_START } from '../lib/defs.js';
|
|
2
3
|
import { AStepper } from '../lib/astepper.js';
|
|
3
4
|
import { Resolver } from '../phases/Resolver.js';
|
|
4
5
|
import { actionNotOK, actionOK, getStepperOption, sleep, stringOrError } from '../lib/util/index.js';
|
|
5
6
|
import { expand } from '../lib/features.js';
|
|
6
7
|
import { asFeatures } from '../lib/resolver-features.js';
|
|
7
|
-
import { copyPreRenderedAudio, preRenderFeatureProse } from './lib/tts.js';
|
|
8
|
+
import { copyPreRenderedAudio, doExec, playAudioFile, preRenderFeatureProse } from './lib/tts.js';
|
|
8
9
|
import { captureLocator } from '../lib/capture-locator.js';
|
|
9
|
-
import { resolve } from 'path';
|
|
10
|
-
import { execSync } from 'child_process';
|
|
11
10
|
const cycles = (hb) => ({
|
|
12
11
|
async startFeature(feature) {
|
|
13
12
|
if (!hb.ttsCmd) {
|
|
14
13
|
return Promise.resolve();
|
|
15
14
|
}
|
|
16
15
|
hb.renderedAudio = await preRenderFeatureProse(feature, hb.ttsCmd, hb.world.logger);
|
|
16
|
+
if (hb.captureStart) {
|
|
17
|
+
hb.getWorld().logger.info(`Starting screen capture using ${hb.captureStart}`);
|
|
18
|
+
await doExec(hb.captureStart);
|
|
19
|
+
}
|
|
20
|
+
},
|
|
21
|
+
async endFeature() {
|
|
22
|
+
if (hb.captureStop) {
|
|
23
|
+
hb.getWorld().logger.info(`Stopping screen capture using ${hb.captureStop}`);
|
|
24
|
+
await doExec(hb.captureStop);
|
|
25
|
+
}
|
|
17
26
|
}
|
|
18
27
|
});
|
|
19
28
|
class Haibun extends AStepper {
|
|
@@ -29,16 +38,33 @@ class Haibun extends AStepper {
|
|
|
29
38
|
parse: (input) => stringOrError(input),
|
|
30
39
|
required: false
|
|
31
40
|
},
|
|
41
|
+
CAPTURE_START: {
|
|
42
|
+
desc: `Shell command to start screen capture'`,
|
|
43
|
+
parse: (input) => stringOrError(input),
|
|
44
|
+
required: false
|
|
45
|
+
},
|
|
46
|
+
CAPTURE_STOP: {
|
|
47
|
+
desc: `Shell command to stop screen capture'`,
|
|
48
|
+
parse: (input) => stringOrError(input),
|
|
49
|
+
required: false
|
|
50
|
+
},
|
|
32
51
|
};
|
|
33
52
|
cycles = cycles(this);
|
|
34
53
|
steppers;
|
|
35
54
|
ttsCmd;
|
|
36
55
|
ttsPlay;
|
|
56
|
+
captureStart;
|
|
57
|
+
captureStop;
|
|
37
58
|
async setWorld(world, steppers) {
|
|
38
59
|
this.steppers = steppers;
|
|
39
60
|
this.world = world;
|
|
40
61
|
this.ttsCmd = getStepperOption(this, 'TTS_CMD', world.moduleOptions);
|
|
41
62
|
this.ttsPlay = getStepperOption(this, 'TTS_PLAY', world.moduleOptions);
|
|
63
|
+
this.captureStart = getStepperOption(this, 'CAPTURE_START', world.moduleOptions);
|
|
64
|
+
this.captureStop = getStepperOption(this, 'CAPTURE_STOP', world.moduleOptions);
|
|
65
|
+
if (this.captureStart && !this.captureStop || this.captureStop && !this.captureStart) {
|
|
66
|
+
throw Error(`Capture requires both CAPTURE_START and CAPTURE_STOP`);
|
|
67
|
+
}
|
|
42
68
|
return Promise.resolve();
|
|
43
69
|
}
|
|
44
70
|
steps = {
|
|
@@ -151,10 +177,10 @@ class Haibun extends AStepper {
|
|
|
151
177
|
const runtimePath = resolve(dir);
|
|
152
178
|
const artifact = { artifactType: 'speech', path, durationS, runtimePath, transcript };
|
|
153
179
|
if (this.ttsPlay) {
|
|
154
|
-
const playCmd = this.ttsPlay.replace(/@WHAT@/g,
|
|
155
|
-
this.world.logger.debug(`playing audio: ${playCmd}`);
|
|
180
|
+
const playCmd = this.ttsPlay.replace(/@WHAT@/g, `"${runtimePath}/${path}"`);
|
|
156
181
|
try {
|
|
157
|
-
|
|
182
|
+
this.world.logger.debug(`playing audio: ${playCmd}`);
|
|
183
|
+
await playAudioFile(playCmd);
|
|
158
184
|
}
|
|
159
185
|
catch (error) {
|
|
160
186
|
const stderr = error.stderr ? error.stderr.toString() : '';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"haibun.js","sourceRoot":"","sources":["../../src/steps/haibun.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAgC,UAAU,EAAoC,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAGhI,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,gBAAgB,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrG,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AACzD,OAAO,EAAE,oBAAoB,EAAE,
|
|
1
|
+
{"version":3,"file":"haibun.js","sourceRoot":"","sources":["../../src/steps/haibun.ts"],"names":[],"mappings":"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"}
|
package/build/steps/lib/tts.d.ts
CHANGED
|
@@ -15,4 +15,6 @@ export declare function copyPreRenderedAudio(dir: string, renderedAudio: TRender
|
|
|
15
15
|
path: string;
|
|
16
16
|
durationS: number;
|
|
17
17
|
}>;
|
|
18
|
+
export declare function playAudioFile(playCmd: string): Promise<void>;
|
|
19
|
+
export declare function doExec(command: string): Promise<string>;
|
|
18
20
|
//# sourceMappingURL=tts.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tts.d.ts","sourceRoot":"","sources":["../../../src/steps/lib/tts.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,OAAO,EAAE,MAAM,gCAAgC,CAAC;AAGzD,MAAM,MAAM,YAAY,GAAG;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,CAAC;AACzF,MAAM,MAAM,iBAAiB,GAAG;IAAE,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,CAAA;CAAE,CAAC;AAMjE,wBAAsB,qBAAqB,CAAC,OAAO,EAAE,gBAAgB,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAkClI;
|
|
1
|
+
{"version":3,"file":"tts.d.ts","sourceRoot":"","sources":["../../../src/steps/lib/tts.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,OAAO,EAAE,MAAM,gCAAgC,CAAC;AAGzD,MAAM,MAAM,YAAY,GAAG;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,CAAC;AACzF,MAAM,MAAM,iBAAiB,GAAG;IAAE,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,CAAA;CAAE,CAAC;AAMjE,wBAAsB,qBAAqB,CAAC,OAAO,EAAE,gBAAgB,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAkClI;AAED,wBAAsB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAc5E;AAED,wBAAsB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAa3H;AAED,wBAAsB,oBAAoB,CAAC,GAAG,EAAE,MAAM,EAAE,aAAa,EAAE,iBAAiB,EAAE,UAAU,EAAE,MAAM;;;GAQ3G;AAED,wBAAsB,aAAa,CAAC,OAAO,EAAE,MAAM,iBAElD;AAED,wBAAsB,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAS7D"}
|
package/build/steps/lib/tts.js
CHANGED
|
@@ -30,31 +30,18 @@ export async function preRenderFeatureProse(feature, ttsCmd, logger) {
|
|
|
30
30
|
renderedAudio[hash] = { transcript, durationS, cachedPath };
|
|
31
31
|
}
|
|
32
32
|
else {
|
|
33
|
-
logger.
|
|
33
|
+
logger.info(`Rendering audio for transcript "${transcript}"`);
|
|
34
34
|
const audioInfo = await renderAudio(hash, ttsCmd, transcript, CACHE_DIR);
|
|
35
35
|
renderedAudio[hash] = audioInfo;
|
|
36
36
|
}
|
|
37
37
|
}
|
|
38
38
|
return renderedAudio;
|
|
39
39
|
}
|
|
40
|
-
function renderSpeech(cmd, what) {
|
|
41
|
-
// Escape single quotes and wrap entire text in single quotes
|
|
42
|
-
what = what.replace(/'/g, "'\\''");
|
|
43
|
-
const command = cmd.replace('@WHAT@', `'${what}'`);
|
|
44
|
-
try {
|
|
45
|
-
const fn = execSync(command, { encoding: 'utf8' });
|
|
46
|
-
return fn.trim();
|
|
47
|
-
}
|
|
48
|
-
catch (error) {
|
|
49
|
-
const stderr = error.stderr ? error.stderr.toString() : '';
|
|
50
|
-
throw new Error(`Error rendering audio using ${command}: ${error.message}\nOutput: ${stderr}`);
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
40
|
export async function getMediafileDuration(filePath) {
|
|
54
41
|
try {
|
|
55
42
|
const command = `ffprobe -v error -show_entries format=duration -of default=noprint_wrappers=1:nokey=1 "${filePath}"`;
|
|
56
|
-
const durationStr =
|
|
57
|
-
const duration = parseFloat(
|
|
43
|
+
const durationStr = await doExec(command);
|
|
44
|
+
const duration = parseFloat(command);
|
|
58
45
|
if (isNaN(duration)) {
|
|
59
46
|
throw new Error(`ffprobe returned non-numeric duration: "${durationStr}" for ${filePath}`);
|
|
60
47
|
}
|
|
@@ -66,7 +53,7 @@ export async function getMediafileDuration(filePath) {
|
|
|
66
53
|
}
|
|
67
54
|
}
|
|
68
55
|
export async function renderAudio(hash, ttsCmd, transcript, cacheDir) {
|
|
69
|
-
const generatedWavPath = renderSpeech(ttsCmd, transcript);
|
|
56
|
+
const generatedWavPath = await renderSpeech(ttsCmd, transcript);
|
|
70
57
|
if (!existsSync(generatedWavPath)) {
|
|
71
58
|
throw new Error(`TTS command did not produce expected file: ${generatedWavPath}`);
|
|
72
59
|
}
|
|
@@ -84,4 +71,23 @@ export async function copyPreRenderedAudio(dir, renderedAudio, transcript) {
|
|
|
84
71
|
cpSync(cachedPath, path, { force: true });
|
|
85
72
|
return Promise.resolve({ path: cacheFilename, durationS });
|
|
86
73
|
}
|
|
74
|
+
export async function playAudioFile(playCmd) {
|
|
75
|
+
await doExec(playCmd);
|
|
76
|
+
}
|
|
77
|
+
export async function doExec(command) {
|
|
78
|
+
try {
|
|
79
|
+
const stdout = execSync(command, { encoding: 'utf8', stdio: 'pipe' }).toString();
|
|
80
|
+
return Promise.resolve(stdout.trim());
|
|
81
|
+
}
|
|
82
|
+
catch (error) {
|
|
83
|
+
const stderr = error.stderr ? error.stderr.toString() : '';
|
|
84
|
+
console.error(stderr);
|
|
85
|
+
throw (error);
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
async function renderSpeech(cmd, what) {
|
|
89
|
+
what = what.replace(/"/g, '\\"');
|
|
90
|
+
const command = cmd.replace('@WHAT@', `"${what}"`);
|
|
91
|
+
return await doExec(command);
|
|
92
|
+
}
|
|
87
93
|
//# sourceMappingURL=tts.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tts.js","sourceRoot":"","sources":["../../../src/steps/lib/tts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,IAAI,CAAC;AAChE,OAAO,KAAK,QAAQ,MAAM,MAAM,CAAC;AAIjC,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAKnD,MAAM,SAAS,GAAG,eAAe,CAAC;AAElC,MAAM,YAAY,GAAG,CAAC,OAAO,EAAE,cAAc,EAAE,SAAS,CAAC,CAAC;AAE1D,MAAM,CAAC,KAAK,UAAU,qBAAqB,CAAC,OAAyB,EAAE,MAAc,EAAE,MAAe;IACrG,MAAM,UAAU,GAAG,IAAI,GAAG,EAAU,CAAC;IACrC,KAAK,MAAM,IAAI,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;QACzC,IAAI,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC;YACnD,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC;YACrB,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACtB,CAAC;IACF,CAAC;IAED,IAAI,UAAU,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;QAC3B,OAAO,EAAE,CAAC;IACX,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,GAAG,UAAU,CAAC,IAAI,sDAAsD,CAAC,CAAC;IAEvF,MAAM,aAAa,GAAsB,EAAE,CAAC;IAC5C,SAAS,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAE1C,MAAM,oBAAoB,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC;IACpD,KAAK,MAAM,UAAU,IAAI,UAAU,EAAE,CAAC;QACrC,MAAM,IAAI,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACjE,MAAM,QAAQ,GAAG,oBAAoB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC;QAC5E,IAAI,QAAQ,EAAE,CAAC;YACd,MAAM,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACtD,MAAM,SAAS,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YACvC,MAAM,UAAU,GAAG,QAAQ,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;YACtD,aAAa,CAAC,IAAI,CAAC,GAAG,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC;QAC7D,CAAC;aAAM,CAAC;YACP,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"tts.js","sourceRoot":"","sources":["../../../src/steps/lib/tts.ts"],"names":[],"mappings":"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"}
|