@corti/dictation-web 0.0.1 → 0.0.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/{src/index.js → CortiDictation.js} +1 -1
- package/dist/CortiDictation.js.map +1 -0
- package/dist/{src/DictationService.js → DictationService.js} +1 -1
- package/dist/DictationService.js.map +1 -0
- package/dist/RecorderManager.js.map +1 -0
- package/dist/audioService.js.map +1 -0
- package/dist/components/audio-visualiser.js.map +1 -0
- package/dist/components/settings-menu.js.map +1 -0
- package/dist/constants.js.map +1 -0
- package/dist/icons/icons.js.map +1 -0
- package/dist/icons/index.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +6 -0
- package/dist/index.js.map +1 -0
- package/dist/styles/ComponentStyles.js.map +1 -0
- package/dist/styles/buttons.js.map +1 -0
- package/dist/styles/callout.js.map +1 -0
- package/dist/styles/select.js.map +1 -0
- package/dist/styles/theme.js.map +1 -0
- package/dist/types.js.map +1 -0
- package/dist/utils.js.map +1 -0
- package/package.json +6 -6
- package/.editorconfig +0 -29
- package/.eslintrc.json +0 -16
- package/.husky/pre-commit +0 -1
- package/.storybook/main.js +0 -8
- package/demo/index.html +0 -98
- package/dist/src/CortiDictation.d.ts +0 -19
- package/dist/src/CortiDictation.js +0 -137
- package/dist/src/CortiDictation.js.map +0 -1
- package/dist/src/DictationService.js.map +0 -1
- package/dist/src/RecorderManager.js.map +0 -1
- package/dist/src/audioRecorderManager.d.ts +0 -17
- package/dist/src/audioRecorderManager.js +0 -78
- package/dist/src/audioRecorderManager.js.map +0 -1
- package/dist/src/audioService.js.map +0 -1
- package/dist/src/componentStyles.d.ts +0 -1
- package/dist/src/componentStyles.js +0 -51
- package/dist/src/componentStyles.js.map +0 -1
- package/dist/src/components/audio-visualiser.js.map +0 -1
- package/dist/src/components/settings-menu.js.map +0 -1
- package/dist/src/components/visualiser.d.ts +0 -7
- package/dist/src/components/visualiser.js +0 -62
- package/dist/src/components/visualiser.js.map +0 -1
- package/dist/src/constants.js.map +0 -1
- package/dist/src/corti-dictation.d.ts +0 -1
- package/dist/src/corti-dictation.js +0 -3
- package/dist/src/corti-dictation.js.map +0 -1
- package/dist/src/dictationService.d.ts +0 -13
- package/dist/src/dictationService.js +0 -70
- package/dist/src/dictationService.js.map +0 -1
- package/dist/src/icons/icons.js.map +0 -1
- package/dist/src/icons/index.js.map +0 -1
- package/dist/src/icons/micOn.d.ts +0 -7
- package/dist/src/icons/micOn.js +0 -25
- package/dist/src/icons/micOn.js.map +0 -1
- package/dist/src/index.js.map +0 -1
- package/dist/src/mediaRecorderService.d.ts +0 -6
- package/dist/src/mediaRecorderService.js +0 -31
- package/dist/src/mediaRecorderService.js.map +0 -1
- package/dist/src/mic-selector.d.ts +0 -18
- package/dist/src/mic-selector.js +0 -131
- package/dist/src/mic-selector.js.map +0 -1
- package/dist/src/settings-menu.d.ts +0 -18
- package/dist/src/settings-menu.js +0 -131
- package/dist/src/settings-menu.js.map +0 -1
- package/dist/src/settings-popover.d.ts +0 -18
- package/dist/src/settings-popover.js +0 -131
- package/dist/src/settings-popover.js.map +0 -1
- package/dist/src/settings.d.ts +0 -18
- package/dist/src/settings.js +0 -131
- package/dist/src/settings.js.map +0 -1
- package/dist/src/styles/ComponentStyles.js.map +0 -1
- package/dist/src/styles/buttons.js.map +0 -1
- package/dist/src/styles/callout.js.map +0 -1
- package/dist/src/styles/select.js.map +0 -1
- package/dist/src/styles/theme.js.map +0 -1
- package/dist/src/types.js.map +0 -1
- package/dist/src/utils.js.map +0 -1
- package/dist/stories/index.stories.d.ts +0 -33
- package/dist/stories/index.stories.js +0 -37
- package/dist/stories/index.stories.js.map +0 -1
- package/dist/test/corti-dictation.test.d.ts +0 -1
- package/dist/test/corti-dictation.test.js +0 -100
- package/dist/test/corti-dictation.test.js.map +0 -1
- package/dist/tsconfig.tsbuildinfo +0 -1
- package/docs/DEV_README.md +0 -80
- package/src/DictationService.ts +0 -99
- package/src/RecorderManager.ts +0 -114
- package/src/audioService.ts +0 -25
- package/src/components/audio-visualiser.ts +0 -56
- package/src/components/settings-menu.ts +0 -152
- package/src/constants.ts +0 -10
- package/src/corti-dictation.ts +0 -3
- package/src/icons/icons.ts +0 -141
- package/src/icons/index.ts +0 -0
- package/src/index.ts +0 -154
- package/src/styles/ComponentStyles.ts +0 -53
- package/src/styles/buttons.ts +0 -59
- package/src/styles/callout.ts +0 -27
- package/src/styles/select.ts +0 -37
- package/src/styles/theme.ts +0 -75
- package/src/types.ts +0 -28
- package/src/utils.ts +0 -83
- package/stories/index.stories.ts +0 -60
- package/test/corti-dictation.test.ts +0 -124
- package/tsconfig.json +0 -22
- package/web-dev-server.config.js +0 -27
- package/web-test-runner.config.js +0 -41
- /package/dist/{src/index.d.ts → CortiDictation.d.ts} +0 -0
- /package/dist/{src/DictationService.d.ts → DictationService.d.ts} +0 -0
- /package/dist/{src/RecorderManager.d.ts → RecorderManager.d.ts} +0 -0
- /package/dist/{src/RecorderManager.js → RecorderManager.js} +0 -0
- /package/dist/{src/audioService.d.ts → audioService.d.ts} +0 -0
- /package/dist/{src/audioService.js → audioService.js} +0 -0
- /package/dist/{src/components → components}/audio-visualiser.d.ts +0 -0
- /package/dist/{src/components → components}/audio-visualiser.js +0 -0
- /package/dist/{src/components → components}/settings-menu.d.ts +0 -0
- /package/dist/{src/components → components}/settings-menu.js +0 -0
- /package/dist/{src/constants.d.ts → constants.d.ts} +0 -0
- /package/dist/{src/constants.js → constants.js} +0 -0
- /package/dist/{src/icons → icons}/icons.d.ts +0 -0
- /package/dist/{src/icons → icons}/icons.js +0 -0
- /package/dist/{src/icons → icons}/index.d.ts +0 -0
- /package/dist/{src/icons → icons}/index.js +0 -0
- /package/dist/{src/styles → styles}/ComponentStyles.d.ts +0 -0
- /package/dist/{src/styles → styles}/ComponentStyles.js +0 -0
- /package/dist/{src/styles → styles}/buttons.d.ts +0 -0
- /package/dist/{src/styles → styles}/buttons.js +0 -0
- /package/dist/{src/styles → styles}/callout.d.ts +0 -0
- /package/dist/{src/styles → styles}/callout.js +0 -0
- /package/dist/{src/styles → styles}/select.d.ts +0 -0
- /package/dist/{src/styles → styles}/select.js +0 -0
- /package/dist/{src/styles → styles}/theme.d.ts +0 -0
- /package/dist/{src/styles → styles}/theme.js +0 -0
- /package/dist/{src/types.d.ts → types.d.ts} +0 -0
- /package/dist/{src/types.js → types.js} +0 -0
- /package/dist/{src/utils.d.ts → utils.d.ts} +0 -0
- /package/dist/{src/utils.js → utils.js} +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"theme.js","sourceRoot":"","sources":["../../../src/styles/theme.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,MAAM,WAAW,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAsEtB,CAAC;AAEF,eAAe,WAAW,CAAC","sourcesContent":["import { css } from 'lit';\n\nconst ThemeStyles = css`\n :host {\n /* Component Defaults */\n --component-font-family: 'Segoe UI', Roboto, sans-serif;\n --component-text-color: #333;\n\n /* Card Defaults */\n --card-background: #fff;\n --card-border-color: #ddd;\n --card-padding: 4px;\n --card-border-radius: 8px;\n --card-inner-border-radius: 6px;\n --card-box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);\n\n /* Actions Defaults */\n --action-plain-border-color: #ccc;\n --action-plain-background-hover: #ddd;\n\n --action-accent-background: #007bff;\n --action-accent-background-hover: #0056b3;\n --action-accent-text-color: #fff;\n\n --action-red-background: #dc3545;\n --action-red-background-hover: #bd2130;\n --action-red-text-color: #fff;\n\n /* Callout Defaults */\n --callout-accent-background: #007bff33;\n --callout-accent-border: #007bff99;\n --callout-accent-text: #007bff;\n\n --callout-red-background: #dc354533;\n --callout-red-border: #dc354599;\n --callout-red-text: #dc3545;\n\n --callout-orange-background: #fd7e1433;\n --callout-orange-border: #fd7e1499;\n --callout-orange-text: #fd7e14;\n\n /* Visualiser Defaults */\n --visualiser-background: #e0e0e0;\n --visualiser-level-color: #28a745;\n }\n\n @media (prefers-color-scheme: dark) {\n :host {\n /* Component Dark */\n --component-text-color: #eee;\n\n /* Card Dark */\n --card-background: #333;\n --card-border-color: #555;\n\n /* Actions Dark */\n --action-plain-border-color: #555;\n --action-plain-background: #333;\n --action-plain-background-hover: #444;\n\n --action-accent-background: #0056b3;\n --action-accent-background-hover: #003d80;\n\n /* Visualiser Dark */\n --visualiser-background: #fff;\n }\n }\n :host {\n box-sizing: border-box;\n font-family: var(--component-font-family);\n color: var(--component-text-color);\n }\n`;\n\nexport default ThemeStyles;\n"]}
|
package/dist/src/types.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"","sourcesContent":["export type RecordingState =\n | 'initializing'\n | 'recording'\n | 'stopping'\n | 'stopped';\n\nexport interface Command {\n command: string;\n action: string;\n keywords: string[];\n}\n\nexport interface DictationConfig {\n primaryLanguage: string;\n interimResults: boolean;\n spokenPunctuation: boolean;\n automaticPunctuation: boolean;\n model: string;\n commands?: Command[];\n}\n\nexport type PartialDictationConfig = Partial<DictationConfig>;\n\nexport interface ServerConfig {\n environment?: string;\n tenant?: string;\n token?: string;\n}\n"]}
|
package/dist/src/utils.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"AAAA,+BAA+B;AAC/B;;;;;GAKG;AACH,MAAM,UAAU,eAAe,CAAC,YAAoB;IAClD,MAAM,UAAU,GAAG,SAAS,CAAC,QAAQ,IAAI,IAAI,CAAC;IAC9C,MAAM,YAAY,GAAG,IAAI,IAAI,CAAC,YAAY,CAAC,CAAC,UAAU,CAAC,EAAE;QACvD,IAAI,EAAE,UAAU;KACjB,CAAC,CAAC;IACH,MAAM,YAAY,GAAG,YAAY,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC;IACnD,OAAO,YAAY,IAAI,YAAY,CAAC;AACtC,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB;IACpC,IAAI,CAAC;QACH,+CAA+C;QAC/C,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC;YAC3B,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,YAAY,CAAC,YAAY,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YAC1E,MAAM,CAAC,SAAS,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;YAClD,OAAO;QACT,CAAC;QAED,MAAM,gBAAgB,GAAG,MAAM,SAAS,CAAC,WAAW,CAAC,KAAK,CAAC;YACzD,oCAAoC;YACpC,IAAI,EAAE,YAA8B;SACrC,CAAC,CAAC;QAEH,IAAI,gBAAgB,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;YACxC,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,YAAY,CAAC,YAAY,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YAC1E,MAAM,CAAC,SAAS,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;QACpD,CAAC;aAAM,IAAI,gBAAgB,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC/C,OAAO,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAC;QACnD,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,kDAAkD,EAAE,KAAK,CAAC,CAAC;IAC3E,CAAC;AACH,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe;IAInC,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,gBAAgB,EAAE,CAAC;QAC9C,OAAO,CAAC,KAAK,CAAC,kCAAkC,CAAC,CAAC;QAClD,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;IACzB,CAAC;IAED,MAAM,gBAAgB,EAAE,CAAC;IAEzB,IAAI,CAAC;QACH,0EAA0E;QAC1E,MAAM,OAAO,GAAG,MAAM,SAAS,CAAC,YAAY,CAAC,gBAAgB,EAAE,CAAC;QAChE,MAAM,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,YAAY,CAAC,CAAC;QAC5E,MAAM,eAAe,GACnB,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;QACjE,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,CAAC;IACpD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,4BAA4B,EAAE,KAAK,CAAC,CAAC;QACnD,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;IACzB,CAAC;AACH,CAAC","sourcesContent":["/* eslint-disable no-console */\n/**\n * Returns the localized name of a language given its BCP-47 code.\n *\n * @param languageCode - The BCP-47 language code (e.g. \"en\")\n * @returns The localized language name (e.g. \"English\") or the original code if unavailable.\n */\nexport function getLanguageName(languageCode: string): string {\n const userLocale = navigator.language || 'en';\n const displayNames = new Intl.DisplayNames([userLocale], {\n type: 'language',\n });\n const languageName = displayNames.of(languageCode);\n return languageName || languageCode;\n}\n\n/**\n * Requests access to the microphone.\n *\n * This function checks if the microphone permission is in \"prompt\" state, then requests\n * access and stops any active tracks immediately. It also logs if permission is already granted.\n *\n * @returns A promise that resolves when the permission request is complete.\n */\nexport async function requestMicAccess(): Promise<void> {\n try {\n // Fallback if Permissions API is not available\n if (!navigator.permissions) {\n const stream = await navigator.mediaDevices.getUserMedia({ audio: true });\n stream.getTracks().forEach(track => track.stop());\n return;\n }\n\n const permissionStatus = await navigator.permissions.query({\n // eslint-disable-next-line no-undef\n name: 'microphone' as PermissionName,\n });\n\n if (permissionStatus.state === 'prompt') {\n const stream = await navigator.mediaDevices.getUserMedia({ audio: true });\n stream.getTracks().forEach(track => track.stop());\n } else if (permissionStatus.state === 'denied') {\n console.warn('Microphone permission is denied.');\n }\n } catch (error) {\n console.error('Error checking/requesting microphone permission:', error);\n }\n}\n\n/**\n * Retrieves available audio input devices.\n *\n * This function uses the mediaDevices API to enumerate devices and filters out those\n * which are audio inputs. In some browsers, you may need to request user media before\n * device labels are populated.\n *\n * @returns A promise that resolves with an object containing:\n * - `devices`: an array of MediaDeviceInfo objects for audio inputs.\n * - `defaultDeviceId`: the deviceId of the first audio input, if available.\n */\nexport async function getAudioDevices(): Promise<{\n devices: MediaDeviceInfo[];\n defaultDeviceId?: string;\n}> {\n if (!navigator.mediaDevices?.enumerateDevices) {\n console.error('Media devices API not supported.');\n return { devices: [] };\n }\n\n await requestMicAccess();\n\n try {\n // Optionally: await navigator.mediaDevices.getUserMedia({ audio: true });\n const devices = await navigator.mediaDevices.enumerateDevices();\n const audioDevices = devices.filter(device => device.kind === 'audioinput');\n const defaultDeviceId =\n audioDevices.length > 0 ? audioDevices[0].deviceId : undefined;\n return { devices: audioDevices, defaultDeviceId };\n } catch (error) {\n console.error('Error enumerating devices:', error);\n return { devices: [] };\n }\n}\n"]}
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
import { TemplateResult } from 'lit';
|
|
2
|
-
import '../src/corti-dictation.js';
|
|
3
|
-
declare const _default: {
|
|
4
|
-
title: string;
|
|
5
|
-
component: string;
|
|
6
|
-
argTypes: {
|
|
7
|
-
header: {
|
|
8
|
-
control: string;
|
|
9
|
-
};
|
|
10
|
-
counter: {
|
|
11
|
-
control: string;
|
|
12
|
-
};
|
|
13
|
-
textColor: {
|
|
14
|
-
control: string;
|
|
15
|
-
};
|
|
16
|
-
};
|
|
17
|
-
};
|
|
18
|
-
export default _default;
|
|
19
|
-
interface Story<T> {
|
|
20
|
-
(args: T): TemplateResult;
|
|
21
|
-
args?: Partial<T>;
|
|
22
|
-
argTypes?: Record<string, unknown>;
|
|
23
|
-
}
|
|
24
|
-
interface ArgTypes {
|
|
25
|
-
header?: string;
|
|
26
|
-
counter?: number;
|
|
27
|
-
textColor?: string;
|
|
28
|
-
slot?: TemplateResult;
|
|
29
|
-
}
|
|
30
|
-
export declare const Regular: Story<ArgTypes>;
|
|
31
|
-
export declare const CustomHeader: Story<ArgTypes>;
|
|
32
|
-
export declare const CustomCounter: Story<ArgTypes>;
|
|
33
|
-
export declare const SlottedContent: Story<ArgTypes>;
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
import { html } from 'lit';
|
|
2
|
-
import '../src/corti-dictation.js';
|
|
3
|
-
export default {
|
|
4
|
-
title: 'CortiDictation',
|
|
5
|
-
component: 'corti-dictation',
|
|
6
|
-
argTypes: {
|
|
7
|
-
header: { control: 'text' },
|
|
8
|
-
counter: { control: 'number' },
|
|
9
|
-
textColor: { control: 'color' },
|
|
10
|
-
},
|
|
11
|
-
};
|
|
12
|
-
const Template = ({ header = 'Hello world', counter = 5, textColor, slot, }) => html `
|
|
13
|
-
<corti-dictation
|
|
14
|
-
style="--corti-dictation-text-color: ${textColor || 'black'}"
|
|
15
|
-
.header=${header}
|
|
16
|
-
.counter=${counter}
|
|
17
|
-
>
|
|
18
|
-
${slot}
|
|
19
|
-
</corti-dictation>
|
|
20
|
-
`;
|
|
21
|
-
export const Regular = Template.bind({});
|
|
22
|
-
export const CustomHeader = Template.bind({});
|
|
23
|
-
CustomHeader.args = {
|
|
24
|
-
header: 'My header',
|
|
25
|
-
};
|
|
26
|
-
export const CustomCounter = Template.bind({});
|
|
27
|
-
CustomCounter.args = {
|
|
28
|
-
counter: 123456,
|
|
29
|
-
};
|
|
30
|
-
export const SlottedContent = Template.bind({});
|
|
31
|
-
SlottedContent.args = {
|
|
32
|
-
slot: html `<p>Slotted content</p>`,
|
|
33
|
-
};
|
|
34
|
-
SlottedContent.argTypes = {
|
|
35
|
-
slot: { table: { disable: true } },
|
|
36
|
-
};
|
|
37
|
-
//# sourceMappingURL=index.stories.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.stories.js","sourceRoot":"","sources":["../../stories/index.stories.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAkB,MAAM,KAAK,CAAC;AAC3C,OAAO,2BAA2B,CAAC;AAEnC,eAAe;IACb,KAAK,EAAE,gBAAgB;IACvB,SAAS,EAAE,iBAAiB;IAC5B,QAAQ,EAAE;QACR,MAAM,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE;QAC3B,OAAO,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE;QAC9B,SAAS,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE;KAChC;CACF,CAAC;AAeF,MAAM,QAAQ,GAAoB,CAAC,EACjC,MAAM,GAAG,aAAa,EACtB,OAAO,GAAG,CAAC,EACX,SAAS,EACT,IAAI,GACK,EAAE,EAAE,CAAC,IAAI,CAAA;;2CAEuB,SAAS,IAAI,OAAO;cACjD,MAAM;eACL,OAAO;;MAEhB,IAAI;;CAET,CAAC;AAEF,MAAM,CAAC,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAEzC,MAAM,CAAC,MAAM,YAAY,GAAG,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAC9C,YAAY,CAAC,IAAI,GAAG;IAClB,MAAM,EAAE,WAAW;CACpB,CAAC;AAEF,MAAM,CAAC,MAAM,aAAa,GAAG,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAC/C,aAAa,CAAC,IAAI,GAAG;IACnB,OAAO,EAAE,MAAM;CAChB,CAAC;AAEF,MAAM,CAAC,MAAM,cAAc,GAAG,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAChD,cAAc,CAAC,IAAI,GAAG;IACpB,IAAI,EAAE,IAAI,CAAA,wBAAwB;CACnC,CAAC;AACF,cAAc,CAAC,QAAQ,GAAG;IACxB,IAAI,EAAE,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE;CACnC,CAAC","sourcesContent":["import { html, TemplateResult } from 'lit';\nimport '../src/corti-dictation.js';\n\nexport default {\n title: 'CortiDictation',\n component: 'corti-dictation',\n argTypes: {\n header: { control: 'text' },\n counter: { control: 'number' },\n textColor: { control: 'color' },\n },\n};\n\ninterface Story<T> {\n (args: T): TemplateResult;\n args?: Partial<T>;\n argTypes?: Record<string, unknown>;\n}\n\ninterface ArgTypes {\n header?: string;\n counter?: number;\n textColor?: string;\n slot?: TemplateResult;\n}\n\nconst Template: Story<ArgTypes> = ({\n header = 'Hello world',\n counter = 5,\n textColor,\n slot,\n}: ArgTypes) => html`\n <corti-dictation\n style=\"--corti-dictation-text-color: ${textColor || 'black'}\"\n .header=${header}\n .counter=${counter}\n >\n ${slot}\n </corti-dictation>\n`;\n\nexport const Regular = Template.bind({});\n\nexport const CustomHeader = Template.bind({});\nCustomHeader.args = {\n header: 'My header',\n};\n\nexport const CustomCounter = Template.bind({});\nCustomCounter.args = {\n counter: 123456,\n};\n\nexport const SlottedContent = Template.bind({});\nSlottedContent.args = {\n slot: html`<p>Slotted content</p>`,\n};\nSlottedContent.argTypes = {\n slot: { table: { disable: true } },\n};\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import '../src/corti-dictation.js';
|
|
@@ -1,100 +0,0 @@
|
|
|
1
|
-
import { html } from 'lit';
|
|
2
|
-
import { fixture, expect, oneEvent } from '@open-wc/testing';
|
|
3
|
-
import sinon from 'sinon';
|
|
4
|
-
import '../src/corti-dictation.js';
|
|
5
|
-
// Stub class for RecorderManager
|
|
6
|
-
class StubRecorderManager extends EventTarget {
|
|
7
|
-
constructor() {
|
|
8
|
-
super(...arguments);
|
|
9
|
-
this.devices = [];
|
|
10
|
-
this.selectedDevice = '';
|
|
11
|
-
this.startRecording = sinon.spy();
|
|
12
|
-
this.stopRecording = sinon.spy();
|
|
13
|
-
}
|
|
14
|
-
async initialize() {
|
|
15
|
-
// Simulate async initialization.
|
|
16
|
-
}
|
|
17
|
-
}
|
|
18
|
-
describe('CortiDictation', () => {
|
|
19
|
-
let stubRecorder;
|
|
20
|
-
beforeEach(() => {
|
|
21
|
-
stubRecorder = new StubRecorderManager();
|
|
22
|
-
});
|
|
23
|
-
it('renders a callout warning if serverConfig is not configured', async () => {
|
|
24
|
-
const el = await fixture(html `<corti-dictation></corti-dictation>`);
|
|
25
|
-
// Override the recorderManager to avoid real initialization.
|
|
26
|
-
el.recorderManager = stubRecorder;
|
|
27
|
-
el.serverConfig = {}; // Missing required keys.
|
|
28
|
-
await el.updateComplete;
|
|
29
|
-
const callout = el.shadowRoot?.querySelector('.callout');
|
|
30
|
-
expect(callout).to.exist;
|
|
31
|
-
expect(el.shadowRoot?.textContent).to.include('Please configure the server settings in the parent component');
|
|
32
|
-
});
|
|
33
|
-
it('renders the recording icon when recordingState is "recording"', async () => {
|
|
34
|
-
const configured = { token: 'abc', environment: 'prod', tenant: '123' };
|
|
35
|
-
const el = await fixture(html `<corti-dictation></corti-dictation>`);
|
|
36
|
-
el.recorderManager = stubRecorder;
|
|
37
|
-
el.serverConfig = configured;
|
|
38
|
-
el.recordingState = 'recording';
|
|
39
|
-
await el.updateComplete;
|
|
40
|
-
const recordingIcon = el.shadowRoot?.querySelector('icon-recording');
|
|
41
|
-
expect(recordingIcon).to.exist;
|
|
42
|
-
});
|
|
43
|
-
it('calls startRecording when button is clicked and state is "stopped"', async () => {
|
|
44
|
-
const configured = { token: 'abc', environment: 'prod', tenant: '123' };
|
|
45
|
-
const el = await fixture(html `<corti-dictation></corti-dictation>`);
|
|
46
|
-
el.recorderManager = stubRecorder;
|
|
47
|
-
el.serverConfig = configured;
|
|
48
|
-
el.recordingState = 'stopped';
|
|
49
|
-
await el.updateComplete;
|
|
50
|
-
const button = el.shadowRoot.querySelector('button');
|
|
51
|
-
button.click();
|
|
52
|
-
expect(stubRecorder.startRecording.calledOnce).to.be.true;
|
|
53
|
-
// Check that startRecording was called with a config object
|
|
54
|
-
const args = stubRecorder.startRecording.getCall(0).args[0];
|
|
55
|
-
expect(args).to.have.property('dictationConfig');
|
|
56
|
-
expect(args).to.have.property('serverConfig');
|
|
57
|
-
});
|
|
58
|
-
it('calls stopRecording when button is clicked and state is "recording"', async () => {
|
|
59
|
-
const configured = { token: 'abc', environment: 'prod', tenant: '123' };
|
|
60
|
-
const el = await fixture(html `<corti-dictation></corti-dictation>`);
|
|
61
|
-
el.recorderManager = stubRecorder;
|
|
62
|
-
el.serverConfig = configured;
|
|
63
|
-
el.recordingState = 'recording';
|
|
64
|
-
await el.updateComplete;
|
|
65
|
-
const button = el.shadowRoot.querySelector('button');
|
|
66
|
-
button.click();
|
|
67
|
-
expect(stubRecorder.stopRecording.calledOnce).to.be.true;
|
|
68
|
-
});
|
|
69
|
-
it('updates the audio level when an "audio-level-changed" event is dispatched', async () => {
|
|
70
|
-
const configured = { token: 'abc', environment: 'prod', tenant: '123' };
|
|
71
|
-
const el = await fixture(html `<corti-dictation></corti-dictation>`);
|
|
72
|
-
el.recorderManager = stubRecorder;
|
|
73
|
-
el.serverConfig = configured;
|
|
74
|
-
el.recordingState = 'recording';
|
|
75
|
-
await el.updateComplete;
|
|
76
|
-
const testLevel = 42;
|
|
77
|
-
const event = new CustomEvent('audio-level-changed', { detail: { audioLevel: testLevel } });
|
|
78
|
-
stubRecorder.dispatchEvent(event);
|
|
79
|
-
await el.updateComplete;
|
|
80
|
-
const audioVisualiser = el.shadowRoot?.querySelector('audio-visualiser');
|
|
81
|
-
expect(audioVisualiser).to.exist;
|
|
82
|
-
expect(audioVisualiser.level).to.equal(testLevel);
|
|
83
|
-
});
|
|
84
|
-
it('re-dispatches recorderManager events', async () => {
|
|
85
|
-
const configured = { token: 'abc', environment: 'prod', tenant: '123' };
|
|
86
|
-
const el = await fixture(html `<corti-dictation></corti-dictation>`);
|
|
87
|
-
el.recorderManager = stubRecorder;
|
|
88
|
-
el.serverConfig = configured;
|
|
89
|
-
el.recordingState = 'stopped';
|
|
90
|
-
await el.updateComplete;
|
|
91
|
-
// Listen for a re-dispatched event from the component.
|
|
92
|
-
setTimeout(() => {
|
|
93
|
-
const event = new CustomEvent('transcript', { detail: { transcript: 'hello' } });
|
|
94
|
-
stubRecorder.dispatchEvent(event);
|
|
95
|
-
});
|
|
96
|
-
const dispatchedEvent = (await oneEvent(el, 'transcript'));
|
|
97
|
-
expect(dispatchedEvent.detail.transcript).to.equal('hello');
|
|
98
|
-
});
|
|
99
|
-
});
|
|
100
|
-
//# sourceMappingURL=corti-dictation.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"corti-dictation.test.js","sourceRoot":"","sources":["../../test/corti-dictation.test.ts"],"names":[],"mappings":"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","sourcesContent":["import { html } from 'lit';\nimport { fixture, expect, oneEvent } from '@open-wc/testing';\nimport sinon from 'sinon';\nimport { CortiDictation } from '../src/index.js';\nimport '../src/corti-dictation.js';\n\n// Stub class for RecorderManager\nclass StubRecorderManager extends EventTarget {\n devices: MediaDeviceInfo[] = [];\n\n selectedDevice = '';\n\n startRecording = sinon.spy();\n\n stopRecording = sinon.spy();\n\n async initialize() {\n // Simulate async initialization.\n }\n}\n\ndescribe('CortiDictation', () => {\n let stubRecorder: StubRecorderManager;\n\n beforeEach(() => {\n stubRecorder = new StubRecorderManager();\n });\n\n it('renders a callout warning if serverConfig is not configured', async () => {\n const el = await fixture<CortiDictation>(\n html`<corti-dictation></corti-dictation>`\n );\n // Override the recorderManager to avoid real initialization.\n (el as any).recorderManager = stubRecorder;\n el.serverConfig = {}; // Missing required keys.\n await el.updateComplete;\n const callout = el.shadowRoot?.querySelector('.callout');\n expect(callout).to.exist;\n expect(el.shadowRoot?.textContent).to.include(\n 'Please configure the server settings in the parent component'\n );\n });\n\n it('renders the recording icon when recordingState is \"recording\"', async () => {\n const configured = { token: 'abc', environment: 'prod', tenant: '123' };\n const el = await fixture<CortiDictation>(\n html`<corti-dictation></corti-dictation>`\n );\n (el as any).recorderManager = stubRecorder;\n el.serverConfig = configured;\n el.recordingState = 'recording';\n await el.updateComplete;\n const recordingIcon = el.shadowRoot?.querySelector('icon-recording');\n expect(recordingIcon).to.exist;\n });\n\n it('calls startRecording when button is clicked and state is \"stopped\"', async () => {\n const configured = { token: 'abc', environment: 'prod', tenant: '123' };\n const el = await fixture<CortiDictation>(\n html`<corti-dictation></corti-dictation>`\n );\n (el as any).recorderManager = stubRecorder;\n el.serverConfig = configured;\n el.recordingState = 'stopped';\n await el.updateComplete;\n const button = el.shadowRoot!.querySelector('button')!;\n button.click();\n expect(stubRecorder.startRecording.calledOnce).to.be.true;\n // Check that startRecording was called with a config object\n const args = stubRecorder.startRecording.getCall(0).args[0];\n expect(args).to.have.property('dictationConfig');\n expect(args).to.have.property('serverConfig');\n });\n\n it('calls stopRecording when button is clicked and state is \"recording\"', async () => {\n const configured = { token: 'abc', environment: 'prod', tenant: '123' };\n const el = await fixture<CortiDictation>(\n html`<corti-dictation></corti-dictation>`\n );\n (el as any).recorderManager = stubRecorder;\n el.serverConfig = configured;\n el.recordingState = 'recording';\n await el.updateComplete;\n const button = el.shadowRoot!.querySelector('button')!;\n button.click();\n expect(stubRecorder.stopRecording.calledOnce).to.be.true;\n });\n\n it('updates the audio level when an \"audio-level-changed\" event is dispatched', async () => {\n const configured = { token: 'abc', environment: 'prod', tenant: '123' };\n const el = await fixture<CortiDictation>(\n html`<corti-dictation></corti-dictation>`\n );\n (el as any).recorderManager = stubRecorder;\n el.serverConfig = configured;\n el.recordingState = 'recording';\n await el.updateComplete;\n const testLevel = 42;\n const event = new CustomEvent('audio-level-changed', { detail: { audioLevel: testLevel } });\n stubRecorder.dispatchEvent(event);\n await el.updateComplete;\n const audioVisualiser = el.shadowRoot?.querySelector('audio-visualiser');\n expect(audioVisualiser).to.exist;\n expect((audioVisualiser as any).level).to.equal(testLevel);\n });\n\n it('re-dispatches recorderManager events', async () => {\n const configured = { token: 'abc', environment: 'prod', tenant: '123' };\n const el = await fixture<CortiDictation>(\n html`<corti-dictation></corti-dictation>`\n );\n (el as any).recorderManager = stubRecorder;\n el.serverConfig = configured;\n el.recordingState = 'stopped';\n await el.updateComplete;\n // Listen for a re-dispatched event from the component.\n setTimeout(() => {\n const event = new CustomEvent('transcript', { detail: { transcript: 'hello' } });\n stubRecorder.dispatchEvent(event);\n });\n const dispatchedEvent = (await oneEvent(el, 'transcript')) as CustomEvent;\n expect(dispatchedEvent.detail.transcript).to.equal('hello');\n });\n});\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"fileNames":["../node_modules/typescript/lib/lib.es5.d.ts","../node_modules/typescript/lib/lib.es2015.d.ts","../node_modules/typescript/lib/lib.es2016.d.ts","../node_modules/typescript/lib/lib.es2017.d.ts","../node_modules/typescript/lib/lib.es2018.d.ts","../node_modules/typescript/lib/lib.es2019.d.ts","../node_modules/typescript/lib/lib.es2020.d.ts","../node_modules/typescript/lib/lib.es2021.d.ts","../node_modules/typescript/lib/lib.dom.d.ts","../node_modules/typescript/lib/lib.dom.iterable.d.ts","../node_modules/typescript/lib/lib.es2015.core.d.ts","../node_modules/typescript/lib/lib.es2015.collection.d.ts","../node_modules/typescript/lib/lib.es2015.generator.d.ts","../node_modules/typescript/lib/lib.es2015.iterable.d.ts","../node_modules/typescript/lib/lib.es2015.promise.d.ts","../node_modules/typescript/lib/lib.es2015.proxy.d.ts","../node_modules/typescript/lib/lib.es2015.reflect.d.ts","../node_modules/typescript/lib/lib.es2015.symbol.d.ts","../node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../node_modules/typescript/lib/lib.es2016.array.include.d.ts","../node_modules/typescript/lib/lib.es2016.intl.d.ts","../node_modules/typescript/lib/lib.es2017.arraybuffer.d.ts","../node_modules/typescript/lib/lib.es2017.date.d.ts","../node_modules/typescript/lib/lib.es2017.object.d.ts","../node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../node_modules/typescript/lib/lib.es2017.string.d.ts","../node_modules/typescript/lib/lib.es2017.intl.d.ts","../node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../node_modules/typescript/lib/lib.es2018.intl.d.ts","../node_modules/typescript/lib/lib.es2018.promise.d.ts","../node_modules/typescript/lib/lib.es2018.regexp.d.ts","../node_modules/typescript/lib/lib.es2019.array.d.ts","../node_modules/typescript/lib/lib.es2019.object.d.ts","../node_modules/typescript/lib/lib.es2019.string.d.ts","../node_modules/typescript/lib/lib.es2019.symbol.d.ts","../node_modules/typescript/lib/lib.es2019.intl.d.ts","../node_modules/typescript/lib/lib.es2020.bigint.d.ts","../node_modules/typescript/lib/lib.es2020.date.d.ts","../node_modules/typescript/lib/lib.es2020.promise.d.ts","../node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../node_modules/typescript/lib/lib.es2020.string.d.ts","../node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../node_modules/typescript/lib/lib.es2020.intl.d.ts","../node_modules/typescript/lib/lib.es2020.number.d.ts","../node_modules/typescript/lib/lib.es2021.promise.d.ts","../node_modules/typescript/lib/lib.es2021.string.d.ts","../node_modules/typescript/lib/lib.es2021.weakref.d.ts","../node_modules/typescript/lib/lib.es2021.intl.d.ts","../node_modules/typescript/lib/lib.decorators.d.ts","../node_modules/typescript/lib/lib.decorators.legacy.d.ts","../node_modules/tslib/tslib.d.ts","../node_modules/tslib/modules/index.d.ts","../src/types.ts","../src/DictationService.ts","../src/utils.ts","../src/audioService.ts","../src/RecorderManager.ts","../src/constants.ts","../node_modules/@lit/reactive-element/development/css-tag.d.ts","../node_modules/@lit/reactive-element/development/reactive-controller.d.ts","../node_modules/@lit/reactive-element/development/reactive-element.d.ts","../node_modules/lit-html/development/directive.d.ts","../node_modules/@types/trusted-types/lib/index.d.ts","../node_modules/lit-html/development/lit-html.d.ts","../node_modules/lit-element/development/lit-element.d.ts","../node_modules/lit-html/development/is-server.d.ts","../node_modules/lit/development/index.d.ts","../node_modules/@lit/reactive-element/development/decorators/base.d.ts","../node_modules/@lit/reactive-element/development/decorators/custom-element.d.ts","../node_modules/@lit/reactive-element/development/decorators/property.d.ts","../node_modules/@lit/reactive-element/development/decorators/state.d.ts","../node_modules/@lit/reactive-element/development/decorators/event-options.d.ts","../node_modules/@lit/reactive-element/development/decorators/query.d.ts","../node_modules/@lit/reactive-element/development/decorators/query-all.d.ts","../node_modules/@lit/reactive-element/development/decorators/query-async.d.ts","../node_modules/@lit/reactive-element/development/decorators/query-assigned-nodes.d.ts","../node_modules/@lit/reactive-element/development/decorators/query-assigned-elements.d.ts","../node_modules/lit/development/decorators.d.ts","../src/styles/buttons.ts","../src/styles/select.ts","../src/styles/callout.ts","../src/components/settings-menu.ts","../src/components/audio-visualiser.ts","../src/icons/icons.ts","../src/styles/theme.ts","../src/styles/ComponentStyles.ts","../src/index.ts","../src/corti-dictation.ts","../src/icons/index.ts","../stories/index.stories.ts","../node_modules/@types/chai/index.d.ts","../node_modules/@open-wc/semantic-dom-diff/get-diffable-html.d.ts","../node_modules/@open-wc/semantic-dom-diff/chai-dom-diff-plugin.d.ts","../node_modules/@open-wc/semantic-dom-diff/chai-dom-diff.d.ts","../node_modules/@open-wc/semantic-dom-diff/index.d.ts","../node_modules/chai-a11y-axe/chai-a11y-axe-plugin.d.ts","../node_modules/chai-a11y-axe/src/accessible.d.ts","../node_modules/chai-a11y-axe/index.d.ts","../node_modules/@types/chai-dom/index.d.ts","../node_modules/@types/sinonjs__fake-timers/index.d.ts","../node_modules/@types/sinon/index.d.ts","../node_modules/@types/sinon-chai/index.d.ts","../node_modules/@open-wc/testing/register-chai-plugins.d.ts","../node_modules/@open-wc/testing-helpers/types/src/elementUpdated.d.ts","../node_modules/lit-html/development/static.d.ts","../node_modules/lit/development/static-html.d.ts","../node_modules/@open-wc/testing-helpers/types/src/renderable.d.ts","../node_modules/@open-wc/dedupe-mixin/index.d.ts","../node_modules/@open-wc/scoped-elements/types.d.ts","../node_modules/@open-wc/scoped-elements/html-element.d.ts","../node_modules/@open-wc/testing-helpers/types/src/fixture-no-side-effect.d.ts","../node_modules/@open-wc/testing-helpers/types/src/fixture.d.ts","../node_modules/@open-wc/testing-helpers/types/src/fixtureWrapper.d.ts","../node_modules/@open-wc/testing-helpers/types/src/helpers.d.ts","../node_modules/lit/development/html.d.ts","../node_modules/@open-wc/testing-helpers/types/src/scopedElementsWrapper.d.ts","../node_modules/@open-wc/testing-helpers/types/src/litFixture.d.ts","../node_modules/@open-wc/testing-helpers/types/src/stringFixture.d.ts","../node_modules/@open-wc/testing-helpers/types/index.d.ts","../node_modules/@open-wc/testing/index.d.ts","../test/corti-dictation.test.ts","../node_modules/@types/node/compatibility/disposable.d.ts","../node_modules/@types/node/compatibility/indexable.d.ts","../node_modules/@types/node/compatibility/iterators.d.ts","../node_modules/@types/node/compatibility/index.d.ts","../node_modules/@types/node/globals.typedarray.d.ts","../node_modules/@types/node/buffer.buffer.d.ts","../node_modules/buffer/index.d.ts","../node_modules/undici-types/header.d.ts","../node_modules/undici-types/readable.d.ts","../node_modules/undici-types/file.d.ts","../node_modules/undici-types/fetch.d.ts","../node_modules/undici-types/formdata.d.ts","../node_modules/undici-types/connector.d.ts","../node_modules/undici-types/client.d.ts","../node_modules/undici-types/errors.d.ts","../node_modules/undici-types/dispatcher.d.ts","../node_modules/undici-types/global-dispatcher.d.ts","../node_modules/undici-types/global-origin.d.ts","../node_modules/undici-types/pool-stats.d.ts","../node_modules/undici-types/pool.d.ts","../node_modules/undici-types/handlers.d.ts","../node_modules/undici-types/balanced-pool.d.ts","../node_modules/undici-types/agent.d.ts","../node_modules/undici-types/mock-interceptor.d.ts","../node_modules/undici-types/mock-agent.d.ts","../node_modules/undici-types/mock-client.d.ts","../node_modules/undici-types/mock-pool.d.ts","../node_modules/undici-types/mock-errors.d.ts","../node_modules/undici-types/proxy-agent.d.ts","../node_modules/undici-types/env-http-proxy-agent.d.ts","../node_modules/undici-types/retry-handler.d.ts","../node_modules/undici-types/retry-agent.d.ts","../node_modules/undici-types/api.d.ts","../node_modules/undici-types/interceptors.d.ts","../node_modules/undici-types/util.d.ts","../node_modules/undici-types/cookies.d.ts","../node_modules/undici-types/patch.d.ts","../node_modules/undici-types/websocket.d.ts","../node_modules/undici-types/eventsource.d.ts","../node_modules/undici-types/filereader.d.ts","../node_modules/undici-types/diagnostics-channel.d.ts","../node_modules/undici-types/content-type.d.ts","../node_modules/undici-types/cache.d.ts","../node_modules/undici-types/index.d.ts","../node_modules/@types/node/globals.d.ts","../node_modules/@types/node/assert.d.ts","../node_modules/@types/node/assert/strict.d.ts","../node_modules/@types/node/async_hooks.d.ts","../node_modules/@types/node/buffer.d.ts","../node_modules/@types/node/child_process.d.ts","../node_modules/@types/node/cluster.d.ts","../node_modules/@types/node/console.d.ts","../node_modules/@types/node/constants.d.ts","../node_modules/@types/node/crypto.d.ts","../node_modules/@types/node/dgram.d.ts","../node_modules/@types/node/diagnostics_channel.d.ts","../node_modules/@types/node/dns.d.ts","../node_modules/@types/node/dns/promises.d.ts","../node_modules/@types/node/domain.d.ts","../node_modules/@types/node/dom-events.d.ts","../node_modules/@types/node/events.d.ts","../node_modules/@types/node/fs.d.ts","../node_modules/@types/node/fs/promises.d.ts","../node_modules/@types/node/http.d.ts","../node_modules/@types/node/http2.d.ts","../node_modules/@types/node/https.d.ts","../node_modules/@types/node/inspector.d.ts","../node_modules/@types/node/module.d.ts","../node_modules/@types/node/net.d.ts","../node_modules/@types/node/os.d.ts","../node_modules/@types/node/path.d.ts","../node_modules/@types/node/perf_hooks.d.ts","../node_modules/@types/node/process.d.ts","../node_modules/@types/node/punycode.d.ts","../node_modules/@types/node/querystring.d.ts","../node_modules/@types/node/readline.d.ts","../node_modules/@types/node/readline/promises.d.ts","../node_modules/@types/node/repl.d.ts","../node_modules/@types/node/sea.d.ts","../node_modules/@types/node/sqlite.d.ts","../node_modules/@types/node/stream.d.ts","../node_modules/@types/node/stream/promises.d.ts","../node_modules/@types/node/stream/consumers.d.ts","../node_modules/@types/node/stream/web.d.ts","../node_modules/@types/node/string_decoder.d.ts","../node_modules/@types/node/test.d.ts","../node_modules/@types/node/timers.d.ts","../node_modules/@types/node/timers/promises.d.ts","../node_modules/@types/node/tls.d.ts","../node_modules/@types/node/trace_events.d.ts","../node_modules/@types/node/tty.d.ts","../node_modules/@types/node/url.d.ts","../node_modules/@types/node/util.d.ts","../node_modules/@types/node/v8.d.ts","../node_modules/@types/node/vm.d.ts","../node_modules/@types/node/wasi.d.ts","../node_modules/@types/node/worker_threads.d.ts","../node_modules/@types/node/zlib.d.ts","../node_modules/@types/node/index.d.ts","../node_modules/@types/accepts/index.d.ts","../node_modules/@types/babel__code-frame/index.d.ts","../node_modules/@babel/types/lib/index.d.ts","../node_modules/@types/babel__generator/index.d.ts","../node_modules/@babel/parser/typings/babel-parser.d.ts","../node_modules/@types/babel__template/index.d.ts","../node_modules/@types/babel__traverse/index.d.ts","../node_modules/@types/babel__core/index.d.ts","../node_modules/@types/connect/index.d.ts","../node_modules/@types/body-parser/index.d.ts","../node_modules/@types/qs/index.d.ts","../node_modules/@types/co-body/index.d.ts","../node_modules/@types/command-line-args/index.d.ts","../node_modules/@types/content-disposition/index.d.ts","../node_modules/@types/convert-source-map/index.d.ts","../node_modules/@types/mime/index.d.ts","../node_modules/@types/send/index.d.ts","../node_modules/@types/range-parser/index.d.ts","../node_modules/@types/express-serve-static-core/index.d.ts","../node_modules/@types/http-errors/index.d.ts","../node_modules/@types/serve-static/index.d.ts","../node_modules/@types/express/index.d.ts","../node_modules/@types/keygrip/index.d.ts","../node_modules/@types/cookies/index.d.ts","../node_modules/@types/cross-spawn/index.d.ts","../node_modules/@types/debounce/index.d.ts","../node_modules/@types/detect-port/index.d.ts","../node_modules/@types/doctrine/index.d.ts","../node_modules/@types/ejs/index.d.ts","../node_modules/@types/emscripten/index.d.ts","../node_modules/@types/estree/index.d.ts","../node_modules/@types/find-cache-dir/index.d.ts","../node_modules/@types/graceful-fs/index.d.ts","../node_modules/@types/http-assert/index.d.ts","../node_modules/@types/istanbul-lib-coverage/index.d.ts","../node_modules/@types/istanbul-lib-report/index.d.ts","../node_modules/@types/istanbul-reports/index.d.ts","../node_modules/@types/json5/index.d.ts","../node_modules/@types/koa-compose/index.d.ts","../node_modules/@types/koa/index.d.ts","../node_modules/@types/lodash/common/common.d.ts","../node_modules/@types/lodash/common/array.d.ts","../node_modules/@types/lodash/common/collection.d.ts","../node_modules/@types/lodash/common/date.d.ts","../node_modules/@types/lodash/common/function.d.ts","../node_modules/@types/lodash/common/lang.d.ts","../node_modules/@types/lodash/common/math.d.ts","../node_modules/@types/lodash/common/number.d.ts","../node_modules/@types/lodash/common/object.d.ts","../node_modules/@types/lodash/common/seq.d.ts","../node_modules/@types/lodash/common/string.d.ts","../node_modules/@types/lodash/common/util.d.ts","../node_modules/@types/lodash/index.d.ts","../node_modules/@types/mdx/types.d.ts","../node_modules/@types/mdx/index.d.ts","../node_modules/@types/mime-types/index.d.ts","../node_modules/@types/mocha/index.d.ts","../node_modules/form-data/index.d.ts","../node_modules/@types/node-fetch/externals.d.ts","../node_modules/@types/node-fetch/index.d.ts","../node_modules/@types/normalize-package-data/index.d.ts","../node_modules/@types/parse5/lib/tree-adapters/default.d.ts","../node_modules/@types/parse5/index.d.ts","../node_modules/@types/pretty-hrtime/index.d.ts","../node_modules/@types/prop-types/index.d.ts","../node_modules/@types/react/global.d.ts","../node_modules/csstype/index.d.ts","../node_modules/@types/react/index.d.ts","../node_modules/@types/resolve/index.d.ts","../node_modules/@types/semver/classes/semver.d.ts","../node_modules/@types/semver/functions/parse.d.ts","../node_modules/@types/semver/functions/valid.d.ts","../node_modules/@types/semver/functions/clean.d.ts","../node_modules/@types/semver/functions/inc.d.ts","../node_modules/@types/semver/functions/diff.d.ts","../node_modules/@types/semver/functions/major.d.ts","../node_modules/@types/semver/functions/minor.d.ts","../node_modules/@types/semver/functions/patch.d.ts","../node_modules/@types/semver/functions/prerelease.d.ts","../node_modules/@types/semver/functions/compare.d.ts","../node_modules/@types/semver/functions/rcompare.d.ts","../node_modules/@types/semver/functions/compare-loose.d.ts","../node_modules/@types/semver/functions/compare-build.d.ts","../node_modules/@types/semver/functions/sort.d.ts","../node_modules/@types/semver/functions/rsort.d.ts","../node_modules/@types/semver/functions/gt.d.ts","../node_modules/@types/semver/functions/lt.d.ts","../node_modules/@types/semver/functions/eq.d.ts","../node_modules/@types/semver/functions/neq.d.ts","../node_modules/@types/semver/functions/gte.d.ts","../node_modules/@types/semver/functions/lte.d.ts","../node_modules/@types/semver/functions/cmp.d.ts","../node_modules/@types/semver/functions/coerce.d.ts","../node_modules/@types/semver/classes/comparator.d.ts","../node_modules/@types/semver/classes/range.d.ts","../node_modules/@types/semver/functions/satisfies.d.ts","../node_modules/@types/semver/ranges/max-satisfying.d.ts","../node_modules/@types/semver/ranges/min-satisfying.d.ts","../node_modules/@types/semver/ranges/to-comparators.d.ts","../node_modules/@types/semver/ranges/min-version.d.ts","../node_modules/@types/semver/ranges/valid.d.ts","../node_modules/@types/semver/ranges/outside.d.ts","../node_modules/@types/semver/ranges/gtr.d.ts","../node_modules/@types/semver/ranges/ltr.d.ts","../node_modules/@types/semver/ranges/intersects.d.ts","../node_modules/@types/semver/ranges/simplify.d.ts","../node_modules/@types/semver/ranges/subset.d.ts","../node_modules/@types/semver/internals/identifiers.d.ts","../node_modules/@types/semver/index.d.ts","../node_modules/@types/trusted-types/index.d.ts","../node_modules/@types/unist/index.d.ts","../node_modules/@types/uuid/index.d.ts","../node_modules/@types/ws/index.d.ts","../node_modules/@types/yargs-parser/index.d.ts","../node_modules/@types/yargs/index.d.ts","../node_modules/@types/yauzl/index.d.ts"],"fileIdsList":[[129,172,225],[129,172],[70,129,172],[63,70,129,172],[63,70,78,129,172],[72,129,172],[61,62,129,172],[110,111,129,172],[110,129,172],[93,94,129,172],[95,129,172],[94,96,129,172],[106,108,114,115,116,119,120,129,172],[109,112,129,172],[113,129,172],[109,113,118,129,172],[69,129,172],[109,112,117,129,172],[93,105,121,129,172],[97,100,101,104,129,172],[129,172,187,222],[129,172,225,226,227,228,229],[129,172,225,227],[129,172,187,222,231],[93,129,172],[129,172,187,222,233],[129,172,187,222,231,244,245],[129,172,173,222],[129,172,184,187,222,233,239,240],[129,172,232,233,241,243],[129,172,185,222],[129,172,257],[129,172,258],[129,172,262],[129,171,172,184,187,188,192,198,215,222,223,236,242,245,246,256,261],[129,172,263,265,266,267,268,269,270,271,272,273,274,275],[129,172,263,264,266,267,268,269,270,271,272,273,274,275],[129,172,264,265,266,267,268,269,270,271,272,273,274,275],[129,172,263,264,265,267,268,269,270,271,272,273,274,275],[129,172,263,264,265,266,268,269,270,271,272,273,274,275],[129,172,263,264,265,266,267,269,270,271,272,273,274,275],[129,172,263,264,265,266,267,268,270,271,272,273,274,275],[129,172,263,264,265,266,267,268,269,271,272,273,274,275],[129,172,263,264,265,266,267,268,269,270,272,273,274,275],[129,172,263,264,265,266,267,268,269,270,271,273,274,275],[129,172,263,264,265,266,267,268,269,270,271,272,274,275],[129,172,263,264,265,266,267,268,269,270,271,272,273,275],[129,172,263,264,265,266,267,268,269,270,271,272,273,274],[129,172,276,277],[129,172,187,215,222,280,281],[129,169,172],[129,171,172],[172],[129,172,177,207],[129,172,173,178,184,185,192,204,215],[129,172,173,174,184,192],[124,125,126,129,172],[129,172,175,216],[129,172,176,177,185,193],[129,172,177,204,212],[129,172,178,180,184,192],[129,171,172,179],[129,172,180,181],[129,172,184],[129,172,182,184],[129,171,172,184],[129,172,184,185,186,204,215],[129,172,184,185,186,199,204,207],[129,167,172,220],[129,167,172,180,184,187,192,204,215],[129,172,184,185,187,188,192,204,212,215],[129,172,187,189,204,212,215],[127,128,129,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221],[129,172,184,190],[129,172,191,215],[129,172,180,184,192,204],[129,172,193],[129,172,194],[129,171,172,195],[129,169,170,171,172,173,174,175,176,177,178,179,180,181,182,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221],[129,172,197],[129,172,198],[129,172,184,199,200],[129,172,199,201,216,218],[129,172,184,204,205,206,207],[129,172,204,206],[129,172,204,205],[129,172,207],[129,172,208],[129,169,172,204],[129,172,184,210,211],[129,172,210,211],[129,172,177,192,204,212],[129,172,213],[129,172,192,214],[129,172,187,198,215],[129,172,177,216],[129,172,204,217],[129,172,191,218],[129,172,219],[129,172,177,184,186,195,204,215,218,220],[129,172,204,221],[129,172,284],[129,172,285],[129,172,287,288,289],[129,172,292,331],[129,172,292,316,331],[129,172,331],[129,172,292],[129,172,292,317,331],[129,172,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,327,328,329,330],[129,172,317,331],[129,172,185,204,222,238],[129,172,187,222,239,242],[93,103,129,172],[102,129,172],[65,129,172],[129,172,184,187,189,192,204,212,215,221,222],[129,172,336],[129,172,184,204,222],[99,129,172],[98,129,172],[129,172,187,204,222],[63,66,129,172],[66,129,172],[64,65,129,172],[71,72,73,74,75,76,77,78,79,129,172],[63,66,67,68,129,172],[107,129,172],[53,129,172],[129,139,143,172,215],[129,139,172,204,215],[129,134,172],[129,136,139,172,212,215],[129,172,192,212],[129,172,222],[129,134,172,222],[129,136,139,172,192,215],[129,131,132,135,138,172,184,204,215],[129,139,146,172],[129,131,137,172],[129,139,160,161,172],[129,135,139,172,207,215,222],[129,160,172,222],[129,133,134,172,222],[129,139,172],[129,133,134,135,136,137,138,139,140,141,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,161,162,163,164,165,166,172],[129,139,154,172],[129,139,146,147,172],[129,137,139,147,148,172],[129,138,172],[129,131,134,139,172],[129,139,143,147,148,172],[129,143,172],[129,137,139,142,172,215],[129,131,136,139,146,172],[129,172,204],[129,134,139,160,172,220,222],[54,55,129,172],[54,55,56,57,58,129,172],[54,129,172],[54,69,80,129,172],[54,57,60,69,80,81,82,83,129,172],[54,89,129,172],[54,55,59,60,69,80,81,83,84,85,86,87,88,129,172],[54,69,129,172],[54,69,90,129,172],[54,69,89,90,103,122,129,172]],"fileInfos":[{"version":"e41c290ef7dd7dab3493e6cbe5909e0148edf4a8dad0271be08edec368a0f7b9","affectsGlobalScope":true,"impliedFormat":1},{"version":"45b7ab580deca34ae9729e97c13cfd999df04416a79116c3bfb483804f85ded4","impliedFormat":1},{"version":"3facaf05f0c5fc569c5649dd359892c98a85557e3e0c847964caeb67076f4d75","impliedFormat":1},{"version":"e44bb8bbac7f10ecc786703fe0a6a4b952189f908707980ba8f3c8975a760962","impliedFormat":1},{"version":"5e1c4c362065a6b95ff952c0eab010f04dcd2c3494e813b493ecfd4fcb9fc0d8","impliedFormat":1},{"version":"68d73b4a11549f9c0b7d352d10e91e5dca8faa3322bfb77b661839c42b1ddec7","impliedFormat":1},{"version":"5efce4fc3c29ea84e8928f97adec086e3dc876365e0982cc8479a07954a3efd4","impliedFormat":1},{"version":"feecb1be483ed332fad555aff858affd90a48ab19ba7272ee084704eb7167569","impliedFormat":1},{"version":"4fd3f3422b2d2a3dfd5cdd0f387b3a8ec45f006c6ea896a4cb41264c2100bb2c","affectsGlobalScope":true,"impliedFormat":1},{"version":"69e65d976bf166ce4a9e6f6c18f94d2424bf116e90837ace179610dbccad9b42","affectsGlobalScope":true,"impliedFormat":1},{"version":"c57796738e7f83dbc4b8e65132f11a377649c00dd3eee333f672b8f0a6bea671","affectsGlobalScope":true,"impliedFormat":1},{"version":"dc2df20b1bcdc8c2d34af4926e2c3ab15ffe1160a63e58b7e09833f616efff44","affectsGlobalScope":true,"impliedFormat":1},{"version":"515d0b7b9bea2e31ea4ec968e9edd2c39d3eebf4a2d5cbd04e88639819ae3b71","affectsGlobalScope":true,"impliedFormat":1},{"version":"62bb211266ee48b2d0edf0d8d1b191f0c24fc379a82bd4c1692a082c540bc6b1","affectsGlobalScope":true,"impliedFormat":1},{"version":"0dc1e7ceda9b8b9b455c3a2d67b0412feab00bd2f66656cd8850e8831b08b537","affectsGlobalScope":true,"impliedFormat":1},{"version":"ce691fb9e5c64efb9547083e4a34091bcbe5bdb41027e310ebba8f7d96a98671","affectsGlobalScope":true,"impliedFormat":1},{"version":"8d697a2a929a5fcb38b7a65594020fcef05ec1630804a33748829c5ff53640d0","affectsGlobalScope":true,"impliedFormat":1},{"version":"4ff2a353abf8a80ee399af572debb8faab2d33ad38c4b4474cff7f26e7653b8d","affectsGlobalScope":true,"impliedFormat":1},{"version":"936e80ad36a2ee83fc3caf008e7c4c5afe45b3cf3d5c24408f039c1d47bdc1df","affectsGlobalScope":true,"impliedFormat":1},{"version":"d15bea3d62cbbdb9797079416b8ac375ae99162a7fba5de2c6c505446486ac0a","affectsGlobalScope":true,"impliedFormat":1},{"version":"68d18b664c9d32a7336a70235958b8997ebc1c3b8505f4f1ae2b7e7753b87618","affectsGlobalScope":true,"impliedFormat":1},{"version":"eb3d66c8327153d8fa7dd03f9c58d351107fe824c79e9b56b462935176cdf12a","affectsGlobalScope":true,"impliedFormat":1},{"version":"38f0219c9e23c915ef9790ab1d680440d95419ad264816fa15009a8851e79119","affectsGlobalScope":true,"impliedFormat":1},{"version":"69ab18c3b76cd9b1be3d188eaf8bba06112ebbe2f47f6c322b5105a6fbc45a2e","affectsGlobalScope":true,"impliedFormat":1},{"version":"fef8cfad2e2dc5f5b3d97a6f4f2e92848eb1b88e897bb7318cef0e2820bceaab","affectsGlobalScope":true,"impliedFormat":1},{"version":"2f11ff796926e0832f9ae148008138ad583bd181899ab7dd768a2666700b1893","affectsGlobalScope":true,"impliedFormat":1},{"version":"4de680d5bb41c17f7f68e0419412ca23c98d5749dcaaea1896172f06435891fc","affectsGlobalScope":true,"impliedFormat":1},{"version":"954296b30da6d508a104a3a0b5d96b76495c709785c1d11610908e63481ee667","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac9538681b19688c8eae65811b329d3744af679e0bdfa5d842d0e32524c73e1c","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a969edff4bd52585473d24995c5ef223f6652d6ef46193309b3921d65dd4376","affectsGlobalScope":true,"impliedFormat":1},{"version":"9e9fbd7030c440b33d021da145d3232984c8bb7916f277e8ffd3dc2e3eae2bdb","affectsGlobalScope":true,"impliedFormat":1},{"version":"811ec78f7fefcabbda4bfa93b3eb67d9ae166ef95f9bff989d964061cbf81a0c","affectsGlobalScope":true,"impliedFormat":1},{"version":"717937616a17072082152a2ef351cb51f98802fb4b2fdabd32399843875974ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"d7e7d9b7b50e5f22c915b525acc5a49a7a6584cf8f62d0569e557c5cfc4b2ac2","affectsGlobalScope":true,"impliedFormat":1},{"version":"71c37f4c9543f31dfced6c7840e068c5a5aacb7b89111a4364b1d5276b852557","affectsGlobalScope":true,"impliedFormat":1},{"version":"576711e016cf4f1804676043e6a0a5414252560eb57de9faceee34d79798c850","affectsGlobalScope":true,"impliedFormat":1},{"version":"89c1b1281ba7b8a96efc676b11b264de7a8374c5ea1e6617f11880a13fc56dc6","affectsGlobalScope":true,"impliedFormat":1},{"version":"74f7fa2d027d5b33eb0471c8e82a6c87216223181ec31247c357a3e8e2fddc5b","affectsGlobalScope":true,"impliedFormat":1},{"version":"f1e2a172204962276504466a6393426d2ca9c54894b1ad0a6c9dad867a65f876","affectsGlobalScope":true,"impliedFormat":1},{"version":"063600664504610fe3e99b717a1223f8b1900087fab0b4cad1496a114744f8df","affectsGlobalScope":true,"impliedFormat":1},{"version":"934019d7e3c81950f9a8426d093458b65d5aff2c7c1511233c0fd5b941e608ab","affectsGlobalScope":true,"impliedFormat":1},{"version":"52ada8e0b6e0482b728070b7639ee42e83a9b1c22d205992756fe020fd9f4a47","affectsGlobalScope":true,"impliedFormat":1},{"version":"3bdefe1bfd4d6dee0e26f928f93ccc128f1b64d5d501ff4a8cf3c6371200e5e6","affectsGlobalScope":true,"impliedFormat":1},{"version":"59fb2c069260b4ba00b5643b907ef5d5341b167e7d1dbf58dfd895658bda2867","affectsGlobalScope":true,"impliedFormat":1},{"version":"639e512c0dfc3fad96a84caad71b8834d66329a1f28dc95e3946c9b58176c73a","affectsGlobalScope":true,"impliedFormat":1},{"version":"368af93f74c9c932edd84c58883e736c9e3d53cec1fe24c0b0ff451f529ceab1","affectsGlobalScope":true,"impliedFormat":1},{"version":"af3dd424cf267428f30ccfc376f47a2c0114546b55c44d8c0f1d57d841e28d74","affectsGlobalScope":true,"impliedFormat":1},{"version":"995c005ab91a498455ea8dfb63aa9f83fa2ea793c3d8aa344be4a1678d06d399","affectsGlobalScope":true,"impliedFormat":1},{"version":"959d36cddf5e7d572a65045b876f2956c973a586da58e5d26cde519184fd9b8a","affectsGlobalScope":true,"impliedFormat":1},{"version":"965f36eae237dd74e6cca203a43e9ca801ce38824ead814728a2807b1910117d","affectsGlobalScope":true,"impliedFormat":1},{"version":"8e7f8264d0fb4c5339605a15daadb037bf238c10b654bb3eee14208f860a32ea","affectsGlobalScope":true,"impliedFormat":1},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true,"impliedFormat":1},{"version":"a6a5253138c5432c68a1510c70fe78a644fe2e632111ba778e1978010d6edfec","impliedFormat":1},{"version":"b8f34dd1757f68e03262b1ca3ddfa668a855b872f8bdd5224d6f993a7b37dc2c","impliedFormat":99},{"version":"fbbb345e73e43b6b59151bc0aef8dba35c5e61edc873c59c9b6ffc55cfc0664d","signature":"60d6dc51b4674a15a0c2b8dee4226b3809dd118f3310f1bd815fedbe40cdd03b"},{"version":"6e60db25b3e5cbd0f33582665b14e8bfd0c271d9b54a3c8b0b0439823c68c3ac","signature":"6f8ad36da5ffc22137ef0a4fe5c2574b7b2be425724fd97e61d216b28b613481"},{"version":"cbfa2b6189ebb9d4f809f04b769709e7f18024e277f18589558ca05fc8525678","signature":"b8d261e26487f1f383ef5b508fcab1ed37a9e3839570c7c6adce0d0e696f5a09"},{"version":"7d540e30835e538e0fb2dfa1a2a9cb276a1ff563c2446658dc8433cf855e9ff6","signature":"eddecf3a6dbfcdf8a48f9c754272c89f85b215c20d5d2ff2fdd791e2e4caa78a"},{"version":"3a9a6c70105d782e7e4a97445582f74fa96cec9ad807165c4bbbad7df67494c1","signature":"e62851e938bcff11de56fb08f06f6364f6b74458838e635ef200618e87254907"},{"version":"9bdd3ef04e57a4bf4b237bc6a70de757eede95056216f8589305e92d1db2c41f","signature":"86e70955c238d34654b56109edb537bcaac8ac749791a02ac67148cbf4897421"},{"version":"e056bb30bf82271634daeee81f772f4a7960085f01f6d4d09c8da1ebe5f6a623","impliedFormat":99},{"version":"5e30131b6a5587fe666926ad1d9807e733c0a597ed12d682669fcaa331aea576","impliedFormat":99},{"version":"86492a546c3308feaf1dde967afd325c321483b5e96f5fa9e9b6e691dc23fa9e","affectsGlobalScope":true,"impliedFormat":99},{"version":"00cb63103f9670f8094c238a4a7e252c8b4c06ba371fea5c44add7e41b7247e4","impliedFormat":99},{"version":"15fe687c59d62741b4494d5e623d497d55eb38966ecf5bea7f36e48fc3fbe15e","impliedFormat":1},{"version":"43f58358870effc43ba93c92c040dee2285cbd8685ddfa77658e498780727c4e","impliedFormat":99},{"version":"9a318e3a8900672b85cd3c8c3a5acf51b88049557a3ae897ccdcf2b85a8f61f9","impliedFormat":99},{"version":"1bcd560deed90a43c51b08aa18f7f55229f2e30974ab5ed1b7bb5721be379013","impliedFormat":99},{"version":"dc08fe04e50bc24d1baded4f33e942222bbdd5d77d6341a93cfe6e4e4586a3be","impliedFormat":99},{"version":"cdeae34aca6700620ebf3f27cf7d439c3af97595dd6e2729fa4780483add5680","impliedFormat":99},{"version":"3ff87ea3471b51beaf4aa8fd8f4422862b11d343fdbb55bf383e0f8cc195a445","impliedFormat":99},{"version":"1cc188904259bd0985b24d9dc2a160891cb5e94210901466b951716fcdb4ff62","impliedFormat":99},{"version":"732fb71ecb695d6f36ddcbb72ebfe4ff6b6491d45101a00fa2b75a26b80d640f","impliedFormat":99},{"version":"039cb05125d7621f8143616c495b8e6b54249c4e64d2754b80ff93867f7f4b01","impliedFormat":99},{"version":"1b81f1fa82ad30af01ab1cae91ccaddc10c48f5916bbd6d282155e44a65d858d","impliedFormat":99},{"version":"a0fc7a02a75802678a67000607f20266cf1a49dc0e787967efe514e31b9ed0c3","impliedFormat":99},{"version":"5ebf098a1d81d400b8af82807cf19893700335cf91a7b9dbd83a5d737af34b11","impliedFormat":99},{"version":"101cf83ac3f9c5e1a7355a02e4fbe988877ef83c4ebec0ff0f02b2af022254a3","impliedFormat":99},{"version":"d017e2fcd44b46ca80cd2b592a6314e75f5caab5bda230f0f4a45e964049a43a","impliedFormat":99},{"version":"a8992b852521a66f63e0cedc6e1f054b28f972232b6fa5ca59771db6a1c8bbea","impliedFormat":99},{"version":"2824669ec69f00b3cd5db45515a9128dfc0918a0317073f7d7ce5834570fe001","signature":"0f1e6fcc71bb5365ed5d50d6ca65ce3af1823f2d4816a78a14dd1a455e30a0cd"},{"version":"d1c5da06b3fc4f1c157849de0d9039e1556ac891c2a0cc8113ab1d04b4eda2e3","signature":"c5362b67c58d6ad2261297513c2fee4835b06dc353c30b4b434a288248dd6f2a"},{"version":"06ca8ec9bfef4ce0d54fd184609b7c3cc26bc2ea24a44888972b9beb236f05de","signature":"05227a91573ae82aff3754511a4c719957f3edae9f4e430da88d5f8693b690ef"},{"version":"b012c0e3f919d57610a3ed6880e6e6ae342e337761dbe7851a50886a2db5d3e5","signature":"145fc23086828810c01e5cbcd81814bcd99f112e6c67657ad91b9a49213d0133","affectsGlobalScope":true},{"version":"46b7926f83b5d8743a23a0e11452903818d3c2c88123d1f7c4044b423a435c1d","signature":"2d52ae801c13164a2194ca3cf3795b91830631f2157e74812c46088cc0d24684","affectsGlobalScope":true},{"version":"a7fa018780b400668f0e464600a5d97a43708cd0ea42c8a3e2de20811d2d8c56","signature":"19b340b5305006312852e284c6b83519021d875baf9da03c719abf4cd6f27457"},{"version":"f753d3a8808a1bfd5c2224aa01e656b6ea7c890d6c988ef0d69d24adfd7ccde5","signature":"2692f5d52e25238c75bf773f665109cfab1e0df845c0e4906f2ea0da0be68d5b"},{"version":"161611ec3b7ebce7c522163d641b61dcdc5e4fea23b9f7e578b1c33f0ebd7cfa","signature":"04a7528d64434cdb21623c2424b1f600008a16715f5f1daa373a5bcf17bea173"},{"version":"ec7f0f48108f51491403108df7dc6ef30b06a3ce61eb6a68f05e07393133d70a","signature":"cc64a407b964e3f1bc0ec9dcc7b959592c740da7e5401ea6ff248fcfbcac3930"},{"version":"51fa8f669eaedb91a91e9d1218df467d9963111932e494288b3bf627500de357","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",{"version":"f6eb58be56ab2f0b07d91f4bf03537e25184e4e3c1aaed38289cfd4697ba060b","signature":"828462c9e09ab7053ea1eb40387b4959620f4122a55c1ea148f90ac0649b55ad"},{"version":"eef204f061321360559bd19235ea32a9d55b3ec22a362cc78d14ef50d4db4490","affectsGlobalScope":true,"impliedFormat":1},{"version":"72bee526b949b9932edba50997ff3b9cdede7b314d790d5f0d94f3d2944930ea","impliedFormat":99},{"version":"2d412861573a672bd90fdcb1e48740593324565f3b3aaf6808c0e3e2f0d54ae8","affectsGlobalScope":true,"impliedFormat":99},{"version":"cd711db43a952f15464b571ac11b7a440332cd52342bc92c4bf908c70688f57f","affectsGlobalScope":true,"impliedFormat":99},{"version":"9d8709c916778cb34830708ed47b78e9a46d1fb2eb73a682b14eee990bed4aa6","impliedFormat":99},{"version":"507e2131e89b515ce40c05c0c2fef6cc575ba8947703f92e8cdf36078747a9ff","affectsGlobalScope":true,"impliedFormat":99},{"version":"999a90d30a3183dcee987d0a5a7c586aba5bacbf6ce087ba8635124082ccfeea","impliedFormat":99},{"version":"8a5878edd52f4a720560b4c6e6247e9ddc3df6118ad9cf2f9927903b03d5f440","impliedFormat":99},{"version":"e7be17cfcbe98809c052f384c230ecea9e1cee045edac9db0659e997a988ff9e","affectsGlobalScope":true,"impliedFormat":1},{"version":"7d2a0ba1297be385a89b5515b88cd31b4a1eeef5236f710166dc1b36b1741e1b","impliedFormat":1},{"version":"6175dda01fddf3684d6261d97d169d86b024eceb2cc20041936c068789230f8f","impliedFormat":1},{"version":"525b52b38b44420fb1758c0917e7b67cf379f7f9477d2ba7343f3d5f50a44258","affectsGlobalScope":true,"impliedFormat":1},{"version":"65b91a3725399231d3469529b5e27b85bf2aa98013e607f308e5fe260b47eeff","impliedFormat":99},{"version":"04e3793f33c71ceae20a4719698c068b72c98cf925b3c5f8a33096c00ed44258","impliedFormat":99},{"version":"fa8ef3fb228e258f9508386e2056c95c959d1c1168301181313a5c978754ba70","impliedFormat":99},{"version":"15c9478a8a3d630ac5e738aca25fca15d0842aaeb97fb1a9c1e80eddc5a0e14c","impliedFormat":99},{"version":"cc46ce345c0e19e456388446733250527eead4ca557b5e5fdf0c2e30adc3c89f","impliedFormat":99},{"version":"88cda4269c54f0803834fd62b2fac61af8bff7a085693f7ca9df85c1f19dee8a","impliedFormat":99},{"version":"5d600cfe96a85d58ea8dbf44646f35e82d25e788ea0a6a8295594cef9948445a","affectsGlobalScope":true,"impliedFormat":99},{"version":"d9e25c382a75bed1c058c324edff8b2af655521472b431857e58cdac5f9b2185","impliedFormat":99},{"version":"6168f8e0a5b354f8177bf0dee7c1a69c2afb6a155d5534221f3a1a2d86b84367","impliedFormat":99},{"version":"d7840fd94e6dfb5b0d9df5a20fe1e79c8dd72b1efdb74d2ef04c31e3588c6b5b","impliedFormat":99},{"version":"fa6d684e15fe6e99c7208a51b45c04f8e0147f1c8587871aac48fff55b7b1f24","impliedFormat":99},{"version":"d61a4b627c3e2e054616df905a25226f547dc0e821c2a2b6d5f13318b3fd7e78","impliedFormat":99},{"version":"1308479c593c3d337bd9c438ac1d7164006a9286638cec0b26e3331a978f91d4","impliedFormat":99},{"version":"cfad37dbd7cf27cc16758755847ad7c07ac52a01c466486e50f8f84d0f0ea9ce","impliedFormat":99},{"version":"0c4d3009672fd12d4d9a6505e769de9369c180dcfa8188d9fd850ec156245d87","impliedFormat":99},{"version":"793fca6322a14fa8fa6bc6a4fc694fd7bcc88922c4f9abcd48bf6908f8bf939b","impliedFormat":99},{"version":"be3e93b109deb44b925583674cc0706c0b3c2e7316bcf79631285a45c18ed0c8","impliedFormat":99},{"version":"50f63746fc2a779d1f9c5657fd78e292045dc98b540e026799e039ea629f2943","impliedFormat":99},{"version":"54589463a18daa51cb653f545a301c3663b9e9a364acb73442cc545151e588e0","signature":"6356100cf1e5fe74da111baa9605635b97fa65d5e2397bf69b7e3637d806f748"},{"version":"70521b6ab0dcba37539e5303104f29b721bfb2940b2776da4cc818c07e1fefc1","affectsGlobalScope":true,"impliedFormat":1},{"version":"030e350db2525514580ed054f712ffb22d273e6bc7eddc1bb7eda1e0ba5d395e","affectsGlobalScope":true,"impliedFormat":1},{"version":"d153a11543fd884b596587ccd97aebbeed950b26933ee000f94009f1ab142848","affectsGlobalScope":true,"impliedFormat":1},{"version":"21d819c173c0cf7cc3ce57c3276e77fd9a8a01d35a06ad87158781515c9a438a","impliedFormat":1},{"version":"a79e62f1e20467e11a904399b8b18b18c0c6eea6b50c1168bf215356d5bebfaf","affectsGlobalScope":true,"impliedFormat":1},{"version":"13af9e8fb6757946c48117315866177b95e554d1e773577bb6ca6e40083b6d73","affectsGlobalScope":true,"impliedFormat":1},{"version":"8e9c23ba78aabc2e0a27033f18737a6df754067731e69dc5f52823957d60a4b6","impliedFormat":1},{"version":"5929864ce17fba74232584d90cb721a89b7ad277220627cc97054ba15a98ea8f","impliedFormat":1},{"version":"24bd580b5743dc56402c440dc7f9a4f5d592ad7a419f25414d37a7bfe11e342b","impliedFormat":1},{"version":"25c8056edf4314820382a5fdb4bb7816999acdcb929c8f75e3f39473b87e85bc","impliedFormat":1},{"version":"c464d66b20788266e5353b48dc4aa6bc0dc4a707276df1e7152ab0c9ae21fad8","impliedFormat":1},{"version":"78d0d27c130d35c60b5e5566c9f1e5be77caf39804636bc1a40133919a949f21","impliedFormat":1},{"version":"c6fd2c5a395f2432786c9cb8deb870b9b0e8ff7e22c029954fabdd692bff6195","impliedFormat":1},{"version":"1d6e127068ea8e104a912e42fc0a110e2aa5a66a356a917a163e8cf9a65e4a75","impliedFormat":1},{"version":"5ded6427296cdf3b9542de4471d2aa8d3983671d4cac0f4bf9c637208d1ced43","impliedFormat":1},{"version":"6bdc71028db658243775263e93a7db2fd2abfce3ca569c3cca5aee6ed5eb186d","impliedFormat":1},{"version":"cadc8aced301244057c4e7e73fbcae534b0f5b12a37b150d80e5a45aa4bebcbd","impliedFormat":1},{"version":"385aab901643aa54e1c36f5ef3107913b10d1b5bb8cbcd933d4263b80a0d7f20","impliedFormat":1},{"version":"9670d44354bab9d9982eca21945686b5c24a3f893db73c0dae0fd74217a4c219","impliedFormat":1},{"version":"0b8a9268adaf4da35e7fa830c8981cfa22adbbe5b3f6f5ab91f6658899e657a7","impliedFormat":1},{"version":"11396ed8a44c02ab9798b7dca436009f866e8dae3c9c25e8c1fbc396880bf1bb","impliedFormat":1},{"version":"ba7bc87d01492633cb5a0e5da8a4a42a1c86270e7b3d2dea5d156828a84e4882","impliedFormat":1},{"version":"4893a895ea92c85345017a04ed427cbd6a1710453338df26881a6019432febdd","impliedFormat":1},{"version":"c21dc52e277bcfc75fac0436ccb75c204f9e1b3fa5e12729670910639f27343e","impliedFormat":1},{"version":"13f6f39e12b1518c6650bbb220c8985999020fe0f21d818e28f512b7771d00f9","impliedFormat":1},{"version":"9b5369969f6e7175740bf51223112ff209f94ba43ecd3bb09eefff9fd675624a","impliedFormat":1},{"version":"4fe9e626e7164748e8769bbf74b538e09607f07ed17c2f20af8d680ee49fc1da","impliedFormat":1},{"version":"24515859bc0b836719105bb6cc3d68255042a9f02a6022b3187948b204946bd2","impliedFormat":1},{"version":"ea0148f897b45a76544ae179784c95af1bd6721b8610af9ffa467a518a086a43","impliedFormat":1},{"version":"24c6a117721e606c9984335f71711877293a9651e44f59f3d21c1ea0856f9cc9","impliedFormat":1},{"version":"dd3273ead9fbde62a72949c97dbec2247ea08e0c6952e701a483d74ef92d6a17","impliedFormat":1},{"version":"405822be75ad3e4d162e07439bac80c6bcc6dbae1929e179cf467ec0b9ee4e2e","impliedFormat":1},{"version":"0db18c6e78ea846316c012478888f33c11ffadab9efd1cc8bcc12daded7a60b6","impliedFormat":1},{"version":"e61be3f894b41b7baa1fbd6a66893f2579bfad01d208b4ff61daef21493ef0a8","impliedFormat":1},{"version":"bd0532fd6556073727d28da0edfd1736417a3f9f394877b6d5ef6ad88fba1d1a","impliedFormat":1},{"version":"89167d696a849fce5ca508032aabfe901c0868f833a8625d5a9c6e861ef935d2","impliedFormat":1},{"version":"615ba88d0128ed16bf83ef8ccbb6aff05c3ee2db1cc0f89ab50a4939bfc1943f","impliedFormat":1},{"version":"a4d551dbf8746780194d550c88f26cf937caf8d56f102969a110cfaed4b06656","impliedFormat":1},{"version":"8bd86b8e8f6a6aa6c49b71e14c4ffe1211a0e97c80f08d2c8cc98838006e4b88","impliedFormat":1},{"version":"317e63deeb21ac07f3992f5b50cdca8338f10acd4fbb7257ebf56735bf52ab00","impliedFormat":1},{"version":"4732aec92b20fb28c5fe9ad99521fb59974289ed1e45aecb282616202184064f","impliedFormat":1},{"version":"2e85db9e6fd73cfa3d7f28e0ab6b55417ea18931423bd47b409a96e4a169e8e6","impliedFormat":1},{"version":"c46e079fe54c76f95c67fb89081b3e399da2c7d109e7dca8e4b58d83e332e605","impliedFormat":1},{"version":"bf67d53d168abc1298888693338cb82854bdb2e69ef83f8a0092093c2d562107","impliedFormat":1},{"version":"d2bc987ae352271d0d615a420dcf98cc886aa16b87fb2b569358c1fe0ca0773d","affectsGlobalScope":true,"impliedFormat":1},{"version":"4f0539c58717cbc8b73acb29f9e992ab5ff20adba5f9b57130691c7f9b186a4d","impliedFormat":1},{"version":"7394959e5a741b185456e1ef5d64599c36c60a323207450991e7a42e08911419","impliedFormat":1},{"version":"76103716ba397bbb61f9fa9c9090dca59f39f9047cb1352b2179c5d8e7f4e8d0","impliedFormat":1},{"version":"53eac70430b30089a3a1959d8306b0f9cfaf0de75224b68ef25243e0b5ad1ca3","affectsGlobalScope":true,"impliedFormat":1},{"version":"4314c7a11517e221f7296b46547dbc4df047115b182f544d072bdccffa57fc72","impliedFormat":1},{"version":"115971d64632ea4742b5b115fb64ed04bcaae2c3c342f13d9ba7e3f9ee39c4e7","impliedFormat":1},{"version":"c2510f124c0293ab80b1777c44d80f812b75612f297b9857406468c0f4dafe29","affectsGlobalScope":true,"impliedFormat":1},{"version":"a40826e8476694e90da94aa008283a7de50d1dafd37beada623863f1901cb7fb","impliedFormat":1},{"version":"86956cc2eb9dd371d6fab493d326a574afedebf76eef3fa7833b8e0d9b52d6f1","affectsGlobalScope":true,"impliedFormat":1},{"version":"19d5f8d3930e9f99aa2c36258bf95abbe5adf7e889e6181872d1cdba7c9a7dd5","impliedFormat":1},{"version":"e6f5a38687bebe43a4cef426b69d34373ef68be9a6b1538ec0a371e69f309354","impliedFormat":1},{"version":"a6bf63d17324010ca1fbf0389cab83f93389bb0b9a01dc8a346d092f65b3605f","impliedFormat":1},{"version":"e009777bef4b023a999b2e5b9a136ff2cde37dc3f77c744a02840f05b18be8ff","impliedFormat":1},{"version":"1e0d1f8b0adfa0b0330e028c7941b5a98c08b600efe7f14d2d2a00854fb2f393","impliedFormat":1},{"version":"ee1ee365d88c4c6c0c0a5a5701d66ebc27ccd0bcfcfaa482c6e2e7fe7b98edf7","affectsGlobalScope":true,"impliedFormat":1},{"version":"88bc59b32d0d5b4e5d9632ac38edea23454057e643684c3c0b94511296f2998c","affectsGlobalScope":true,"impliedFormat":1},{"version":"1ff5a53a58e756d2661b73ba60ffe274231a4432d21f7a2d0d9e4f6aa99f4283","impliedFormat":1},{"version":"1e289f30a48126935a5d408a91129a13a59c9b0f8c007a816f9f16ef821e144e","impliedFormat":1},{"version":"2ea254f944dfe131df1264d1fb96e4b1f7d110195b21f1f5dbb68fdd394e5518","impliedFormat":1},{"version":"5135bdd72cc05a8192bd2e92f0914d7fc43ee077d1293dc622a049b7035a0afb","impliedFormat":1},{"version":"4f80de3a11c0d2f1329a72e92c7416b2f7eab14f67e92cac63bb4e8d01c6edc8","impliedFormat":1},{"version":"6d386bc0d7f3afa1d401afc3e00ed6b09205a354a9795196caed937494a713e6","impliedFormat":1},{"version":"b11cb909327c874a4e81bfb390bf0d231e5bf9439052689ab80ba8afa50da17b","affectsGlobalScope":true,"impliedFormat":1},{"version":"23459c1915878a7c1e86e8bdb9c187cddd3aea105b8b1dfce512f093c969bc7e","impliedFormat":1},{"version":"b1b6ee0d012aeebe11d776a155d8979730440082797695fc8e2a5c326285678f","impliedFormat":1},{"version":"45875bcae57270aeb3ebc73a5e3fb4c7b9d91d6b045f107c1d8513c28ece71c0","impliedFormat":1},{"version":"1dc73f8854e5c4506131c4d95b3a6c24d0c80336d3758e95110f4c7b5cb16397","affectsGlobalScope":true,"impliedFormat":1},{"version":"5f6f1d54779d0b9ed152b0516b0958cd34889764c1190434bbf18e7a8bb884cd","affectsGlobalScope":true,"impliedFormat":1},{"version":"3f16a7e4deafa527ed9995a772bb380eb7d3c2c0fd4ae178c5263ed18394db2c","impliedFormat":1},{"version":"c6b4e0a02545304935ecbf7de7a8e056a31bb50939b5b321c9d50a405b5a0bba","impliedFormat":1},{"version":"fab29e6d649aa074a6b91e3bdf2bff484934a46067f6ee97a30fcd9762ae2213","impliedFormat":1},{"version":"8145e07aad6da5f23f2fcd8c8e4c5c13fb26ee986a79d03b0829b8fce152d8b2","impliedFormat":1},{"version":"e1120271ebbc9952fdc7b2dd3e145560e52e06956345e6fdf91d70ca4886464f","impliedFormat":1},{"version":"814118df420c4e38fe5ae1b9a3bafb6e9c2aa40838e528cde908381867be6466","impliedFormat":1},{"version":"f7b1df115dbd1b8522cba4f404a9f4fdcd5169e2137129187ffeee9d287e4fd1","impliedFormat":1},{"version":"b52d379b4939681f3781d1cfd5b2c3cbb35e7e76f2425172e165782f8a08228c","impliedFormat":1},{"version":"37ba7b45141a45ce6e80e66f2a96c8a5ab1bcef0fc2d0f56bb58df96ec67e972","impliedFormat":1},{"version":"93452d394fdd1dc551ec62f5042366f011a00d342d36d50793b3529bfc9bd633","impliedFormat":1},{"version":"745c4240220559bd340c8aeb6e3c5270a709d3565e934dc22a69c304703956bc","affectsGlobalScope":true,"impliedFormat":1},{"version":"2754d8221d77c7b382096651925eb476f1066b3348da4b73fe71ced7801edada","impliedFormat":1},{"version":"993985beef40c7d113f6dd8f0ba26eed63028b691fbfeb6a5b63f26408dd2c6d","affectsGlobalScope":true,"impliedFormat":1},{"version":"bef91efa0baea5d0e0f0f27b574a8bc100ce62a6d7e70220a0d58af6acab5e89","affectsGlobalScope":true,"impliedFormat":1},{"version":"282fd2a1268a25345b830497b4b7bf5037a5e04f6a9c44c840cb605e19fea841","impliedFormat":1},{"version":"5360a27d3ebca11b224d7d3e38e3e2c63f8290cb1fcf6c3610401898f8e68bc3","impliedFormat":1},{"version":"66ba1b2c3e3a3644a1011cd530fb444a96b1b2dfe2f5e837a002d41a1a799e60","impliedFormat":1},{"version":"7e514f5b852fdbc166b539fdd1f4e9114f29911592a5eb10a94bb3a13ccac3c4","impliedFormat":1},{"version":"7d6ff413e198d25639f9f01f16673e7df4e4bd2875a42455afd4ecc02ef156da","affectsGlobalScope":true,"impliedFormat":1},{"version":"cb094bb347d7df3380299eb69836c2c8758626ecf45917577707c03cf816b6f4","affectsGlobalScope":true,"impliedFormat":1},{"version":"f689c4237b70ae6be5f0e4180e8833f34ace40529d1acc0676ab8fb8f70457d7","impliedFormat":1},{"version":"b02784111b3fc9c38590cd4339ff8718f9329a6f4d3fd66e9744a1dcd1d7e191","impliedFormat":1},{"version":"ac5ed35e649cdd8143131964336ab9076937fa91802ec760b3ea63b59175c10a","impliedFormat":1},{"version":"52a8e7e8a1454b6d1b5ad428efae3870ffc56f2c02d923467f2940c454aa9aec","affectsGlobalScope":true,"impliedFormat":1},{"version":"78dc0513cc4f1642906b74dda42146bcbd9df7401717d6e89ea6d72d12ecb539","impliedFormat":1},{"version":"ad90122e1cb599b3bc06a11710eb5489101be678f2920f2322b0ac3e195af78d","impliedFormat":1},{"version":"87f287f296f3ff07dbd14ea7853c2400d995dccd7bd83206196d6c0974774e96","impliedFormat":1},{"version":"3dcefe176e6dce7a06bd345522e19f631f7fdb370335e2e93bc225b3afbb0bd0","impliedFormat":1},{"version":"8d27e5f73b75340198b2df36f39326f693743e64006bd7b88a925a5f285df628","impliedFormat":1},{"version":"2c8e55457aaf4902941dfdba4061935922e8ee6e120539c9801cd7b400fae050","impliedFormat":1},{"version":"1c2cd862994b1fbed3cde0d1e8de47835ff112d197a3debfddf7b2ee3b2c52bc","impliedFormat":1},{"version":"670a76db379b27c8ff42f1ba927828a22862e2ab0b0908e38b671f0e912cc5ed","impliedFormat":1},{"version":"9e0cf651e8e2c5b9bebbabdff2f7c6f8cedd91b1d9afcc0a854cdff053a88f1b","impliedFormat":1},{"version":"069bebfee29864e3955378107e243508b163e77ab10de6a5ee03ae06939f0bb9","impliedFormat":1},{"version":"104c67f0da1bdf0d94865419247e20eded83ce7f9911a1aa75fc675c077ca66e","impliedFormat":1},{"version":"cc0d0b339f31ce0ab3b7a5b714d8e578ce698f1e13d7f8c60bfb766baeb1d35c","impliedFormat":1},{"version":"936eb43a381712a8ec1249f2afc819f6fc7ca68f10dfec71762b428dfdc53bf1","impliedFormat":1},{"version":"7578ed901eec5f590609fc7a6ba9027be5735ad1aedef119aa56d53a22dfbe02","impliedFormat":1},{"version":"5b7206ca5f2f6eeaac6daa285664f424e0b728f3e31937da89deb8696c5f1dbc","impliedFormat":1},{"version":"0504070e7eaba788f5d0d5926782ed177f1db01cee28363c488fae94950c0bbc","impliedFormat":1},{"version":"1e87d58d3678958d89e2a94454afcc827f1aa6363abbcbd4f99729e65ab47995","impliedFormat":1},{"version":"d3f2d715f57df3f04bf7b16dde01dec10366f64fce44503c92b8f78f614c1769","impliedFormat":1},{"version":"b78cd10245a90e27e62d0558564f5d9a16576294eee724a59ae21b91f9269e4a","impliedFormat":1},{"version":"2f5747b1508ccf83fad0c251ba1e5da2f5a30b78b09ffa1cfaf633045160afed","impliedFormat":1},{"version":"a45c25e77c911c1f2a04cade78f6f42b4d7d896a3882d4e226efd3a3fcd5f2c4","affectsGlobalScope":true,"impliedFormat":1},{"version":"b71c603a539078a5e3a039b20f2b0a0d1708967530cf97dec8850a9ca45baa2b","impliedFormat":1},{"version":"0e13570a7e86c6d83dd92e81758a930f63747483e2cd34ef36fcdb47d1f9726a","impliedFormat":1},{"version":"5c45abf1e13e4463eacfd5dedda06855da8748a6a6cb3334f582b52e219acc04","impliedFormat":1},{"version":"6847334317c1bc1e6fc4b679b0095bbd2b6ee3b85fe3f26fc26bac462f68ef5e","impliedFormat":1},{"version":"2224f3072e3cc07906eeed5c71746779511fba2dd224addc5489bcdb489bdee5","impliedFormat":1},{"version":"c269a12e83c5ffc0332b1f245008e4e621e483dd2f8b9b77fc6a664fcde4969d","impliedFormat":1},{"version":"072099609280e6659eb29b1d2a601e95708c90b7db2aba2571ebda50d1be0dd5","impliedFormat":1},{"version":"72dff7d18139f0d579db7e4b904fb39f5740423f656edc1f84e4baa936b1fac0","impliedFormat":1},{"version":"febcc45f9517827496659c229a21b058831eef4cf9b71b77fd9a364ae12c3b9e","impliedFormat":1},{"version":"f2a60d253f7206372203b736144906bf135762100a2b3d1b415776ebf6575d07","impliedFormat":1},{"version":"2a6896ee1eb573182585d65e48e3ba6896e3f27c7496dcbb6e80963b0feb04ce","affectsGlobalScope":true,"impliedFormat":1},{"version":"785b9d575b49124ce01b46f5b9402157c7611e6532effa562ac6aebec0074dfc","impliedFormat":1},{"version":"19f1159e1fa24300e2eaf72cb53f0815f5879ec53cad3c606802f0c55f0917e9","impliedFormat":1},{"version":"afe73051ff6a03a9565cbd8ebb0e956ee3df5e913ad5c1ded64218aabfa3dcb5","impliedFormat":1},{"version":"fbf802b3a028f5eb22ad406ee5fc7c368f0acfd3a2a6d0f805120766f5717ec8","impliedFormat":1},{"version":"035a5df183489c2e22f3cf59fc1ed2b043d27f357eecc0eb8d8e840059d44245","impliedFormat":1},{"version":"a4809f4d92317535e6b22b01019437030077a76fec1d93b9881c9ed4738fcc54","impliedFormat":1},{"version":"5f53fa0bd22096d2a78533f94e02c899143b8f0f9891a46965294ee8b91a9434","impliedFormat":1},{"version":"96d14f21b7652903852eef49379d04dbda28c16ed36468f8c9fa08f7c14c9538","impliedFormat":1},{"version":"7e8d3f08435ad2cefe67f58182618bfc9a0a29db08cf2544b94cbcae754a9bd9","impliedFormat":1},{"version":"8cf9b9045a614f883b623c2f1a631ec6a93321747e933330b2eec0ee47164a34","impliedFormat":1},{"version":"7220461ab7f6d600b313ce621346c315c3a0ebc65b5c6f268488c5c55b68d319","impliedFormat":1},{"version":"f90d4c1ae3af9afb35920b984ba3e41bdd43f0dc7bae890b89fbd52b978f0cac","impliedFormat":1},{"version":"fcf79300e5257a23ed3bacaa6861d7c645139c6f7ece134d15e6669447e5e6db","impliedFormat":1},{"version":"187119ff4f9553676a884e296089e131e8cc01691c546273b1d0089c3533ce42","impliedFormat":1},{"version":"aa2c18a1b5a086bbcaae10a4efba409cc95ba7287d8cf8f2591b53704fea3dea","impliedFormat":1},{"version":"b88749bdb18fc1398370e33aa72bc4f88274118f4960e61ce26605f9b33c5ba2","impliedFormat":1},{"version":"0aaef8cded245bf5036a7a40b65622dd6c4da71f7a35343112edbe112b348a1e","impliedFormat":1},{"version":"00baffbe8a2f2e4875367479489b5d43b5fc1429ecb4a4cc98cfc3009095f52a","impliedFormat":1},{"version":"a873c50d3e47c21aa09fbe1e2023d9a44efb07cc0cb8c72f418bf301b0771fd3","impliedFormat":1},{"version":"7c14ccd2eaa82619fffc1bfa877eb68a012e9fb723d07ee98db451fadb618906","impliedFormat":1},{"version":"288d992cd0d35fd4bb5a0f23df62114b8bfbc53e55b96a4ad00dde7e6fb72e31","impliedFormat":1},{"version":"df996e25faa505f85aeb294d15ebe61b399cf1d1e49959cdfaf2cc0815c203f9","impliedFormat":1},{"version":"4f6a12044ee6f458db11964153830abbc499e73d065c51c329ec97407f4b13dd","impliedFormat":1},{"version":"f8a6bb79327f4a6afc63d28624654522fc80f7536efa7a617ef48200b7a5f673","impliedFormat":1},{"version":"8e0733c50eaac49b4e84954106acc144ec1a8019922d6afcde3762523a3634af","impliedFormat":1},{"version":"169cc96316cacf8b489aaab4ac6bcef7b33e8779a8902bce57c737b4aa372d16","impliedFormat":1},{"version":"29f72ec1289ae3aeda78bf14b38086d3d803262ac13904b400422941a26a3636","affectsGlobalScope":true,"impliedFormat":1},{"version":"736097ddbb2903bef918bb3b5811ef1c9c5656f2a73bd39b22a91b9cc2525e50","impliedFormat":1},{"version":"4340936f4e937c452ae783514e7c7bbb7fc06d0c97993ff4865370d0962bb9cf","impliedFormat":1},{"version":"b70c7ea83a7d0de17a791d9b5283f664033a96362c42cc4d2b2e0bdaa65ef7d1","impliedFormat":1},{"version":"22293bd6fa12747929f8dfca3ec1684a3fe08638aa18023dd286ab337e88a592","impliedFormat":1},{"version":"fc37aca06f6b8b296c42412a2e75ab53d30cd1fa8a340a3bb328a723fd678377","impliedFormat":1},{"version":"5f2c582b9ef260cb9559a64221b38606378c1fabe17694592cdfe5975a6d7efa","impliedFormat":1},{"version":"d7c30ea636d7d7cbeba0795baa8ec1bbd06274bd19a23ec0d7c84d0610a5f0c7","impliedFormat":1},{"version":"65ff5a0aefd7817a03c1ad04fee85c9cdd3ec415cc3c9efec85d8008d4d5e4ee","impliedFormat":1},{"version":"36a2e4c9a67439aca5f91bb304611d5ae6e20d420503e96c230cf8fcdc948d94","affectsGlobalScope":true,"impliedFormat":1},{"version":"8a8eb4ebffd85e589a1cc7c178e291626c359543403d58c9cd22b81fab5b1fb9","impliedFormat":1},{"version":"b89c2ddec6bd955e8721d41e24ca667de06882338d88b183c2cdc1f41f4c5a34","affectsGlobalScope":true,"impliedFormat":1},{"version":"8baa5d0febc68db886c40bf341e5c90dc215a90cd64552e47e8184be6b7e3358","impliedFormat":1},{"version":"cf3d384d082b933d987c4e2fe7bfb8710adfd9dc8155190056ed6695a25a559e","impliedFormat":1},{"version":"9871b7ee672bc16c78833bdab3052615834b08375cb144e4d2cba74473f4a589","impliedFormat":1},{"version":"c863198dae89420f3c552b5a03da6ed6d0acfa3807a64772b895db624b0de707","impliedFormat":1},{"version":"8b03a5e327d7db67112ebbc93b4f744133eda2c1743dbb0a990c61a8007823ef","impliedFormat":1},{"version":"86c73f2ee1752bac8eeeece234fd05dfcf0637a4fbd8032e4f5f43102faa8eec","impliedFormat":1},{"version":"42fad1f540271e35ca37cecda12c4ce2eef27f0f5cf0f8dd761d723c744d3159","impliedFormat":1},{"version":"ff3743a5de32bee10906aff63d1de726f6a7fd6ee2da4b8229054dfa69de2c34","impliedFormat":1},{"version":"83acd370f7f84f203e71ebba33ba61b7f1291ca027d7f9a662c6307d74e4ac22","impliedFormat":1},{"version":"1445cec898f90bdd18b2949b9590b3c012f5b7e1804e6e329fb0fe053946d5ec","impliedFormat":1},{"version":"0e5318ec2275d8da858b541920d9306650ae6ac8012f0e872fe66eb50321a669","impliedFormat":1},{"version":"cf530297c3fb3a92ec9591dd4fa229d58b5981e45fe6702a0bd2bea53a5e59be","impliedFormat":1},{"version":"c1f6f7d08d42148ddfe164d36d7aba91f467dbcb3caa715966ff95f55048b3a4","impliedFormat":1},{"version":"f4e9bf9103191ef3b3612d3ec0044ca4044ca5be27711fe648ada06fad4bcc85","impliedFormat":1},{"version":"0c1ee27b8f6a00097c2d6d91a21ee4d096ab52c1e28350f6362542b55380059a","impliedFormat":1},{"version":"7677d5b0db9e020d3017720f853ba18f415219fb3a9597343b1b1012cfd699f7","impliedFormat":1},{"version":"bc1c6bc119c1784b1a2be6d9c47addec0d83ef0d52c8fbe1f14a51b4dfffc675","impliedFormat":1},{"version":"52cf2ce99c2a23de70225e252e9822a22b4e0adb82643ab0b710858810e00bf1","impliedFormat":1},{"version":"770625067bb27a20b9826255a8d47b6b5b0a2d3dfcbd21f89904c731f671ba77","impliedFormat":1},{"version":"d1ed6765f4d7906a05968fb5cd6d1db8afa14dbe512a4884e8ea5c0f5e142c80","impliedFormat":1},{"version":"799c0f1b07c092626cf1efd71d459997635911bb5f7fc1196efe449bba87e965","impliedFormat":1},{"version":"2a184e4462b9914a30b1b5c41cf80c6d3428f17b20d3afb711fff3f0644001fd","impliedFormat":1},{"version":"9eabde32a3aa5d80de34af2c2206cdc3ee094c6504a8d0c2d6d20c7c179503cc","impliedFormat":1},{"version":"397c8051b6cfcb48aa22656f0faca2553c5f56187262135162ee79d2b2f6c966","impliedFormat":1},{"version":"a8ead142e0c87dcd5dc130eba1f8eeed506b08952d905c47621dc2f583b1bff9","impliedFormat":1},{"version":"a02f10ea5f73130efca046429254a4e3c06b5475baecc8f7b99a0014731be8b3","impliedFormat":1},{"version":"c2576a4083232b0e2d9bd06875dd43d371dee2e090325a9eac0133fd5650c1cb","impliedFormat":1},{"version":"4c9a0564bb317349de6a24eb4efea8bb79898fa72ad63a1809165f5bd42970dd","impliedFormat":1},{"version":"f40ac11d8859092d20f953aae14ba967282c3bb056431a37fced1866ec7a2681","impliedFormat":1},{"version":"cc11e9e79d4746cc59e0e17473a59d6f104692fd0eeea1bdb2e206eabed83b03","impliedFormat":1},{"version":"b444a410d34fb5e98aa5ee2b381362044f4884652e8bc8a11c8fe14bbd85518e","impliedFormat":1},{"version":"c35808c1f5e16d2c571aa65067e3cb95afeff843b259ecfa2fc107a9519b5392","impliedFormat":1},{"version":"14d5dc055143e941c8743c6a21fa459f961cbc3deedf1bfe47b11587ca4b3ef5","impliedFormat":1},{"version":"a3ad4e1fc542751005267d50a6298e6765928c0c3a8dce1572f2ba6ca518661c","impliedFormat":1},{"version":"f237e7c97a3a89f4591afd49ecb3bd8d14f51a1c4adc8fcae3430febedff5eb6","impliedFormat":1},{"version":"3ffdfbec93b7aed71082af62b8c3e0cc71261cc68d796665faa1e91604fbae8f","impliedFormat":1},{"version":"662201f943ed45b1ad600d03a90dffe20841e725203ced8b708c91fcd7f9379a","impliedFormat":1},{"version":"c9ef74c64ed051ea5b958621e7fb853fe3b56e8787c1587aefc6ea988b3c7e79","impliedFormat":1},{"version":"2462ccfac5f3375794b861abaa81da380f1bbd9401de59ffa43119a0b644253d","impliedFormat":1},{"version":"34baf65cfee92f110d6653322e2120c2d368ee64b3c7981dff08ed105c4f19b0","impliedFormat":1},{"version":"7d8ddf0f021c53099e34ee831a06c394d50371816caa98684812f089b4c6b3d4","impliedFormat":1},{"version":"2c3b8be03577c98530ef9cb1a76e2c812636a871f367e9edf4c5f3ce702b77f8","affectsGlobalScope":true,"impliedFormat":1},{"version":"6d09838b65c3c780513878793fc394ae29b8595d9e4729246d14ce69abc71140","impliedFormat":1},{"version":"7d2b7fe4adb76d8253f20e4dbdce044f1cdfab4902ec33c3604585f553883f7d","impliedFormat":1},{"version":"bc81aff061c53a7140270555f4b22da4ecfe8601e8027cf5aa175fbdc7927c31","impliedFormat":1},{"version":"bae8d023ef6b23df7da26f51cea44321f95817c190342a36882e93b80d07a960","impliedFormat":1},{"version":"26a770cec4bd2e7dbba95c6e536390fffe83c6268b78974a93727903b515c4e7","impliedFormat":1},{"version":"74d5a87c3616cd5d8691059d531504403aa857e09cbaecb1c64dfb9ace0db185","impliedFormat":1}],"root":[[55,60],[81,92],123],"options":{"allowSyntheticDefaultImports":true,"declaration":true,"esModuleInterop":false,"experimentalDecorators":true,"importHelpers":true,"inlineSources":true,"module":99,"noEmitOnError":true,"outDir":"./","rootDir":"..","skipLibCheck":true,"sourceMap":true,"strict":true,"target":8},"referencedMap":[[227,1],[225,2],[61,2],[70,2],[71,3],[74,4],[72,4],[76,4],[79,5],[78,4],[77,4],[75,4],[73,6],[62,2],[63,7],[110,2],[112,8],[111,9],[95,10],[96,11],[94,2],[97,12],[121,13],[106,2],[113,14],[114,15],[115,2],[116,9],[119,16],[109,17],[118,18],[120,15],[122,19],[105,20],[223,21],[224,2],[230,22],[226,1],[228,23],[229,1],[232,24],[101,25],[93,2],[234,26],[235,2],[231,21],[236,2],[237,2],[246,27],[247,28],[248,2],[249,2],[250,2],[251,2],[252,2],[253,2],[241,29],[244,30],[254,2],[255,31],[256,2],[242,2],[257,2],[258,32],[259,33],[260,2],[245,2],[261,34],[262,35],[264,36],[265,37],[263,38],[266,39],[267,40],[268,41],[269,42],[270,43],[271,44],[272,45],[273,46],[274,47],[275,48],[277,49],[276,2],[278,2],[238,2],[279,2],[281,2],[282,50],[169,51],[170,51],[171,52],[129,53],[172,54],[173,55],[174,56],[124,2],[127,57],[125,2],[126,2],[175,58],[176,59],[177,60],[178,61],[179,62],[180,63],[181,63],[183,64],[182,65],[184,66],[185,67],[186,68],[168,69],[128,2],[187,70],[188,71],[189,72],[222,73],[190,74],[191,75],[192,76],[193,77],[194,78],[195,79],[196,80],[197,81],[198,82],[199,83],[200,83],[201,84],[202,2],[203,2],[204,85],[206,86],[205,87],[207,88],[208,89],[209,90],[210,91],[211,92],[212,93],[213,94],[214,95],[215,96],[216,97],[217,98],[218,99],[219,100],[220,101],[221,102],[283,2],[285,103],[284,104],[286,2],[287,2],[233,2],[240,2],[288,2],[290,105],[291,2],[316,106],[317,107],[292,108],[295,108],[314,106],[315,106],[305,106],[304,109],[302,106],[297,106],[310,106],[308,106],[312,106],[296,106],[309,106],[313,106],[298,106],[299,106],[311,106],[293,106],[300,106],[301,106],[303,106],[307,106],[318,110],[306,106],[294,106],[331,111],[330,2],[325,110],[327,112],[326,110],[319,110],[320,110],[322,110],[324,110],[328,112],[329,112],[321,112],[323,112],[239,113],[243,114],[104,115],[103,116],[102,2],[332,117],[65,2],[333,2],[334,2],[335,118],[336,2],[337,119],[338,120],[130,2],[98,25],[100,121],[99,122],[289,2],[280,123],[67,124],[64,125],[68,2],[66,126],[107,125],[80,127],[117,125],[69,128],[108,129],[54,130],[53,2],[51,2],[52,2],[9,2],[10,2],[12,2],[11,2],[2,2],[13,2],[14,2],[15,2],[16,2],[17,2],[18,2],[19,2],[20,2],[3,2],[21,2],[22,2],[4,2],[23,2],[27,2],[24,2],[25,2],[26,2],[28,2],[29,2],[30,2],[5,2],[31,2],[32,2],[33,2],[34,2],[6,2],[38,2],[35,2],[36,2],[37,2],[39,2],[7,2],[40,2],[45,2],[46,2],[41,2],[42,2],[43,2],[44,2],[8,2],[50,2],[47,2],[48,2],[49,2],[1,2],[146,131],[156,132],[145,131],[166,133],[137,134],[136,135],[165,136],[159,137],[164,138],[139,139],[153,140],[138,141],[162,142],[134,143],[133,136],[163,144],[135,145],[140,146],[141,2],[144,146],[131,2],[167,147],[157,148],[148,149],[149,150],[151,151],[147,152],[150,153],[160,136],[142,154],[143,155],[152,156],[132,157],[155,148],[154,146],[158,2],[161,158],[56,159],[59,160],[58,161],[85,162],[84,163],[60,159],[90,164],[86,162],[91,2],[89,165],[88,166],[81,166],[83,166],[82,166],[87,166],[55,161],[57,161],[92,167],[123,168]],"version":"5.7.3"}
|
package/docs/DEV_README.md
DELETED
|
@@ -1,80 +0,0 @@
|
|
|
1
|
-
# \<corti-dictation>
|
|
2
|
-
|
|
3
|
-
This webcomponent follows the [open-wc](https://github.com/open-wc/open-wc) recommendation.
|
|
4
|
-
|
|
5
|
-
## Installation
|
|
6
|
-
|
|
7
|
-
```bash
|
|
8
|
-
npm i corti-dictation
|
|
9
|
-
```
|
|
10
|
-
|
|
11
|
-
## Usage
|
|
12
|
-
|
|
13
|
-
```html
|
|
14
|
-
<script type="module">
|
|
15
|
-
import 'corti-dictation/corti-dictation.js';
|
|
16
|
-
</script>
|
|
17
|
-
|
|
18
|
-
<corti-dictation></corti-dictation>
|
|
19
|
-
```
|
|
20
|
-
|
|
21
|
-
## Linting and formatting
|
|
22
|
-
|
|
23
|
-
To scan the project for linting and formatting errors, run
|
|
24
|
-
|
|
25
|
-
```bash
|
|
26
|
-
npm run lint
|
|
27
|
-
```
|
|
28
|
-
|
|
29
|
-
To automatically fix linting and formatting errors, run
|
|
30
|
-
|
|
31
|
-
```bash
|
|
32
|
-
npm run format
|
|
33
|
-
```
|
|
34
|
-
|
|
35
|
-
## Testing with Web Test Runner
|
|
36
|
-
|
|
37
|
-
To execute a single test run:
|
|
38
|
-
|
|
39
|
-
```bash
|
|
40
|
-
npm run test
|
|
41
|
-
```
|
|
42
|
-
|
|
43
|
-
To run the tests in interactive watch mode run:
|
|
44
|
-
|
|
45
|
-
```bash
|
|
46
|
-
npm run test:watch
|
|
47
|
-
```
|
|
48
|
-
|
|
49
|
-
## Demoing with Storybook
|
|
50
|
-
|
|
51
|
-
To run a local instance of Storybook for your component, run
|
|
52
|
-
|
|
53
|
-
```bash
|
|
54
|
-
npm run storybook
|
|
55
|
-
```
|
|
56
|
-
|
|
57
|
-
To build a production version of Storybook, run
|
|
58
|
-
|
|
59
|
-
```bash
|
|
60
|
-
npm run storybook:build
|
|
61
|
-
```
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
## Tooling configs
|
|
65
|
-
|
|
66
|
-
For most of the tools, the configuration is in the `package.json` to reduce the amount of files in your project.
|
|
67
|
-
|
|
68
|
-
If you customize the configuration a lot, you can consider moving them to individual files.
|
|
69
|
-
|
|
70
|
-
## Local Demo with `web-dev-server`
|
|
71
|
-
|
|
72
|
-
```bash
|
|
73
|
-
npm start
|
|
74
|
-
```
|
|
75
|
-
|
|
76
|
-
To run a local development server that serves the basic demo located in `demo/index.html`
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
## Icons
|
|
80
|
-
https://lucide.dev/icons
|
package/src/DictationService.ts
DELETED
|
@@ -1,99 +0,0 @@
|
|
|
1
|
-
import { DictationConfig, ServerConfig } from './types';
|
|
2
|
-
|
|
3
|
-
export class DictationService extends EventTarget {
|
|
4
|
-
private mediaRecorder: MediaRecorder;
|
|
5
|
-
|
|
6
|
-
private webSocket!: WebSocket;
|
|
7
|
-
|
|
8
|
-
private serverConfig!: ServerConfig;
|
|
9
|
-
|
|
10
|
-
private dictationConfig!: DictationConfig;
|
|
11
|
-
|
|
12
|
-
constructor(
|
|
13
|
-
mediaStream: MediaStream,
|
|
14
|
-
{
|
|
15
|
-
dictationConfig,
|
|
16
|
-
serverConfig,
|
|
17
|
-
}: { dictationConfig: DictationConfig; serverConfig: ServerConfig },
|
|
18
|
-
) {
|
|
19
|
-
super();
|
|
20
|
-
this.mediaRecorder = new MediaRecorder(mediaStream);
|
|
21
|
-
this.serverConfig = serverConfig;
|
|
22
|
-
this.dictationConfig = dictationConfig;
|
|
23
|
-
this.mediaRecorder.ondataavailable = event => {
|
|
24
|
-
// if webSocket is open, send the data
|
|
25
|
-
if (this.webSocket?.readyState === WebSocket.OPEN) {
|
|
26
|
-
this.webSocket.send(event.data);
|
|
27
|
-
}
|
|
28
|
-
};
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
public startRecording() {
|
|
32
|
-
const url = `wss://api.${this.serverConfig.environment}.corti.app/audio-bridge/v2/transcribe?tenant-name=${this.serverConfig.tenant}&token=Bearer%20${this.serverConfig.token}`;
|
|
33
|
-
this.webSocket = new WebSocket(url);
|
|
34
|
-
this.webSocket.onopen = () => {
|
|
35
|
-
this.webSocket.send(
|
|
36
|
-
JSON.stringify({
|
|
37
|
-
type: 'config',
|
|
38
|
-
configuration: this.dictationConfig,
|
|
39
|
-
}),
|
|
40
|
-
);
|
|
41
|
-
};
|
|
42
|
-
this.webSocket.onmessage = event => {
|
|
43
|
-
const message = JSON.parse(event.data);
|
|
44
|
-
if (message.type === 'config') {
|
|
45
|
-
this.mediaRecorder.start(250);
|
|
46
|
-
} else if (message.type === 'transcript') {
|
|
47
|
-
this.dispatchEvent(
|
|
48
|
-
new CustomEvent('transcript', {
|
|
49
|
-
detail: message,
|
|
50
|
-
bubbles: true,
|
|
51
|
-
composed: true,
|
|
52
|
-
}),
|
|
53
|
-
);
|
|
54
|
-
}
|
|
55
|
-
};
|
|
56
|
-
this.webSocket.onerror = event => {
|
|
57
|
-
this.dispatchEvent(
|
|
58
|
-
new CustomEvent('error', {
|
|
59
|
-
detail: event,
|
|
60
|
-
bubbles: true,
|
|
61
|
-
composed: true,
|
|
62
|
-
}),
|
|
63
|
-
);
|
|
64
|
-
};
|
|
65
|
-
this.webSocket.onclose = event => {
|
|
66
|
-
this.dispatchEvent(
|
|
67
|
-
new CustomEvent('stream-closed', {
|
|
68
|
-
detail: event,
|
|
69
|
-
bubbles: true,
|
|
70
|
-
composed: true,
|
|
71
|
-
}),
|
|
72
|
-
);
|
|
73
|
-
};
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
public async stopRecording() {
|
|
77
|
-
this.mediaRecorder.stop();
|
|
78
|
-
|
|
79
|
-
if (this.webSocket?.readyState === WebSocket.OPEN) {
|
|
80
|
-
this.webSocket.send(
|
|
81
|
-
JSON.stringify({
|
|
82
|
-
type: 'end',
|
|
83
|
-
}),
|
|
84
|
-
);
|
|
85
|
-
}
|
|
86
|
-
|
|
87
|
-
const timeOut: NodeJS.Timeout = setTimeout(() => {
|
|
88
|
-
if (this.webSocket?.readyState === WebSocket.OPEN) {
|
|
89
|
-
this.webSocket.close();
|
|
90
|
-
}
|
|
91
|
-
}, 10000);
|
|
92
|
-
|
|
93
|
-
// This implementation should be replaced by handling a proper 'ended' message from the server
|
|
94
|
-
this.webSocket.onclose = () => {
|
|
95
|
-
this.webSocket?.close();
|
|
96
|
-
clearTimeout(timeOut);
|
|
97
|
-
};
|
|
98
|
-
}
|
|
99
|
-
}
|