@corti/dictation-web 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (121) hide show
  1. package/.editorconfig +29 -0
  2. package/.eslintrc.json +16 -0
  3. package/.husky/pre-commit +1 -0
  4. package/.storybook/main.js +8 -0
  5. package/README.md +120 -0
  6. package/demo/index.html +98 -0
  7. package/dist/src/CortiDictation.d.ts +19 -0
  8. package/dist/src/CortiDictation.js +137 -0
  9. package/dist/src/CortiDictation.js.map +1 -0
  10. package/dist/src/DictationService.d.ts +13 -0
  11. package/dist/src/DictationService.js +70 -0
  12. package/dist/src/DictationService.js.map +1 -0
  13. package/dist/src/RecorderManager.d.ts +20 -0
  14. package/dist/src/RecorderManager.js +85 -0
  15. package/dist/src/RecorderManager.js.map +1 -0
  16. package/dist/src/audioRecorderManager.d.ts +17 -0
  17. package/dist/src/audioRecorderManager.js +78 -0
  18. package/dist/src/audioRecorderManager.js.map +1 -0
  19. package/dist/src/audioService.d.ts +6 -0
  20. package/dist/src/audioService.js +21 -0
  21. package/dist/src/audioService.js.map +1 -0
  22. package/dist/src/componentStyles.d.ts +1 -0
  23. package/dist/src/componentStyles.js +51 -0
  24. package/dist/src/componentStyles.js.map +1 -0
  25. package/dist/src/components/audio-visualiser.d.ts +12 -0
  26. package/dist/src/components/audio-visualiser.js +60 -0
  27. package/dist/src/components/audio-visualiser.js.map +1 -0
  28. package/dist/src/components/settings-menu.d.ts +15 -0
  29. package/dist/src/components/settings-menu.js +148 -0
  30. package/dist/src/components/settings-menu.js.map +1 -0
  31. package/dist/src/components/visualiser.d.ts +7 -0
  32. package/dist/src/components/visualiser.js +62 -0
  33. package/dist/src/components/visualiser.js.map +1 -0
  34. package/dist/src/constants.d.ts +3 -0
  35. package/dist/src/constants.js +9 -0
  36. package/dist/src/constants.js.map +1 -0
  37. package/dist/src/corti-dictation.d.ts +1 -0
  38. package/dist/src/corti-dictation.js +3 -0
  39. package/dist/src/corti-dictation.js.map +1 -0
  40. package/dist/src/dictationService.d.ts +13 -0
  41. package/dist/src/dictationService.js +70 -0
  42. package/dist/src/dictationService.js.map +1 -0
  43. package/dist/src/icons/icons.d.ts +17 -0
  44. package/dist/src/icons/icons.js +153 -0
  45. package/dist/src/icons/icons.js.map +1 -0
  46. package/dist/src/icons/index.d.ts +0 -0
  47. package/dist/src/icons/index.js +2 -0
  48. package/dist/src/icons/index.js.map +1 -0
  49. package/dist/src/icons/micOn.d.ts +7 -0
  50. package/dist/src/icons/micOn.js +25 -0
  51. package/dist/src/icons/micOn.js.map +1 -0
  52. package/dist/src/index.d.ts +20 -0
  53. package/dist/src/index.js +147 -0
  54. package/dist/src/index.js.map +1 -0
  55. package/dist/src/mediaRecorderService.d.ts +6 -0
  56. package/dist/src/mediaRecorderService.js +31 -0
  57. package/dist/src/mediaRecorderService.js.map +1 -0
  58. package/dist/src/mic-selector.d.ts +18 -0
  59. package/dist/src/mic-selector.js +131 -0
  60. package/dist/src/mic-selector.js.map +1 -0
  61. package/dist/src/settings-menu.d.ts +18 -0
  62. package/dist/src/settings-menu.js +131 -0
  63. package/dist/src/settings-menu.js.map +1 -0
  64. package/dist/src/settings-popover.d.ts +18 -0
  65. package/dist/src/settings-popover.js +131 -0
  66. package/dist/src/settings-popover.js.map +1 -0
  67. package/dist/src/settings.d.ts +18 -0
  68. package/dist/src/settings.js +131 -0
  69. package/dist/src/settings.js.map +1 -0
  70. package/dist/src/styles/ComponentStyles.d.ts +2 -0
  71. package/dist/src/styles/ComponentStyles.js +52 -0
  72. package/dist/src/styles/ComponentStyles.js.map +1 -0
  73. package/dist/src/styles/buttons.d.ts +2 -0
  74. package/dist/src/styles/buttons.js +58 -0
  75. package/dist/src/styles/buttons.js.map +1 -0
  76. package/dist/src/styles/callout.d.ts +2 -0
  77. package/dist/src/styles/callout.js +26 -0
  78. package/dist/src/styles/callout.js.map +1 -0
  79. package/dist/src/styles/select.d.ts +2 -0
  80. package/dist/src/styles/select.js +36 -0
  81. package/dist/src/styles/select.js.map +1 -0
  82. package/dist/src/styles/theme.d.ts +2 -0
  83. package/dist/src/styles/theme.js +74 -0
  84. package/dist/src/styles/theme.js.map +1 -0
  85. package/dist/src/types.d.ts +20 -0
  86. package/dist/src/types.js +2 -0
  87. package/dist/src/types.js.map +1 -0
  88. package/dist/src/utils.d.ts +31 -0
  89. package/dist/src/utils.js +77 -0
  90. package/dist/src/utils.js.map +1 -0
  91. package/dist/stories/index.stories.d.ts +33 -0
  92. package/dist/stories/index.stories.js +37 -0
  93. package/dist/stories/index.stories.js.map +1 -0
  94. package/dist/test/corti-dictation.test.d.ts +1 -0
  95. package/dist/test/corti-dictation.test.js +100 -0
  96. package/dist/test/corti-dictation.test.js.map +1 -0
  97. package/dist/tsconfig.tsbuildinfo +1 -0
  98. package/docs/DEV_README.md +80 -0
  99. package/package.json +92 -0
  100. package/src/DictationService.ts +99 -0
  101. package/src/RecorderManager.ts +114 -0
  102. package/src/audioService.ts +25 -0
  103. package/src/components/audio-visualiser.ts +56 -0
  104. package/src/components/settings-menu.ts +152 -0
  105. package/src/constants.ts +10 -0
  106. package/src/corti-dictation.ts +3 -0
  107. package/src/icons/icons.ts +141 -0
  108. package/src/icons/index.ts +0 -0
  109. package/src/index.ts +154 -0
  110. package/src/styles/ComponentStyles.ts +53 -0
  111. package/src/styles/buttons.ts +59 -0
  112. package/src/styles/callout.ts +27 -0
  113. package/src/styles/select.ts +37 -0
  114. package/src/styles/theme.ts +75 -0
  115. package/src/types.ts +28 -0
  116. package/src/utils.ts +83 -0
  117. package/stories/index.stories.ts +60 -0
  118. package/test/corti-dictation.test.ts +124 -0
  119. package/tsconfig.json +22 -0
  120. package/web-dev-server.config.js +27 -0
  121. package/web-test-runner.config.js +41 -0
@@ -0,0 +1 @@
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"}
@@ -0,0 +1,80 @@
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/package.json ADDED
@@ -0,0 +1,92 @@
1
+ {
2
+ "name": "@corti/dictation-web",
3
+ "description": "Web component for Corti Dictation",
4
+ "author": "Corti ApS",
5
+ "version": "0.0.1",
6
+ "type": "module",
7
+ "main": "dist/src/index.js",
8
+ "module": "dist/src/index.js",
9
+ "exports": {
10
+ ".": "./dist/src/index.js",
11
+ "./corti-dictation.js": "./dist/src/corti-dictation.js"
12
+ },
13
+ "scripts": {
14
+ "analyze": "cem analyze --litelement",
15
+ "start": "tsc && concurrently -k -r \"tsc --watch --preserveWatchOutput\" \"web-dev-server\"",
16
+ "build": "tsc && npm run analyze -- --exclude dist",
17
+ "prepublish": "tsc && npm run analyze -- --exclude dist",
18
+ "lint": "eslint --ext .ts,.tsx src --ignore-path .gitignore && prettier \"src/**/*.ts\" --check --ignore-path .gitignore",
19
+ "format": "eslint --ext .ts,.tsx src --fix --ignore-path .gitignore && prettier \"src/**/*.ts\" --write --ignore-path .gitignore",
20
+ "prepare": "husky",
21
+ "test": "tsc && wtr --coverage",
22
+ "test:watch": "tsc && concurrently -k -r \"tsc --watch --preserveWatchOutput\" \"wtr --watch\"",
23
+ "storybook": "tsc && npm run analyze -- --exclude dist && concurrently -k -r \"tsc --watch --preserveWatchOutput\" \"storybook dev -p 8080\"",
24
+ "storybook:build": "tsc && npm run analyze -- --exclude dist && storybook build"
25
+ },
26
+ "dependencies": {
27
+ "lit": "^3.1.4",
28
+ "sinon": "^19.0.2"
29
+ },
30
+ "devDependencies": {
31
+ "@custom-elements-manifest/analyzer": "^0.10.3",
32
+ "@open-wc/eslint-config": "^12.0.3",
33
+ "@open-wc/testing": "^4.0.0",
34
+ "@storybook/addon-a11y": "^7.6.20",
35
+ "@storybook/addon-essentials": "^7.6.20",
36
+ "@storybook/addon-links": "^7.6.20",
37
+ "@storybook/web-components": "^7.6.20",
38
+ "@types/mocha": "^10.0.7",
39
+ "@typescript-eslint/eslint-plugin": "^7.18.0",
40
+ "@typescript-eslint/parser": "^7.18.0",
41
+ "@web/dev-server": "^0.4.6",
42
+ "@web/storybook-builder": "^0.1.16",
43
+ "@web/storybook-framework-web-components": "^0.1.2",
44
+ "@web/test-runner": "^0.18.2",
45
+ "concurrently": "^8.2.2",
46
+ "esbuild": "^0.25.0",
47
+ "eslint": "^8.57.0",
48
+ "eslint-config-prettier": "^9.1.0",
49
+ "eslint-plugin-html": "^8.1.2",
50
+ "husky": "^9.0.11",
51
+ "lint-staged": "^15.2.7",
52
+ "prettier": "^3.3.2",
53
+ "storybook": "^7.6.20",
54
+ "tslib": "^2.6.3",
55
+ "typescript": "^5.5.3"
56
+ },
57
+ "customElements": "custom-elements.json",
58
+ "eslintConfig": {
59
+ "parser": "@typescript-eslint/parser",
60
+ "extends": [
61
+ "@open-wc",
62
+ "prettier"
63
+ ],
64
+ "plugins": [
65
+ "@typescript-eslint"
66
+ ],
67
+ "rules": {
68
+ "no-unused-vars": "off",
69
+ "@typescript-eslint/no-unused-vars": [
70
+ "error"
71
+ ],
72
+ "import/no-unresolved": "off",
73
+ "import/extensions": [
74
+ "error",
75
+ "always",
76
+ {
77
+ "ignorePackages": true
78
+ }
79
+ ]
80
+ }
81
+ },
82
+ "prettier": {
83
+ "singleQuote": true,
84
+ "arrowParens": "avoid"
85
+ },
86
+ "lint-staged": {
87
+ "*.ts": [
88
+ "eslint --fix",
89
+ "prettier --write"
90
+ ]
91
+ }
92
+ }
@@ -0,0 +1,99 @@
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
+ }
@@ -0,0 +1,114 @@
1
+ import { getAudioDevices } from './utils';
2
+ import { AudioService } from './audioService';
3
+ import { DictationService } from './DictationService';
4
+ import type { DictationConfig, RecordingState, ServerConfig } from './types';
5
+
6
+ export class RecorderManager extends EventTarget {
7
+ public devices: MediaDeviceInfo[] = [];
8
+
9
+ public selectedDevice: string = '';
10
+
11
+ public recordingState: RecordingState = 'stopped';
12
+
13
+ private _mediaStream: MediaStream | null = null;
14
+
15
+ private _audioService: AudioService | null = null;
16
+
17
+ private _dictationService: DictationService | null = null;
18
+
19
+ private _visualiserInterval?: number;
20
+
21
+ async initialize() {
22
+ const deviceResponse = await getAudioDevices();
23
+ this.devices = deviceResponse.devices;
24
+ this.selectedDevice = deviceResponse.defaultDeviceId || '';
25
+ return deviceResponse;
26
+ }
27
+
28
+ async startRecording(params: {
29
+ dictationConfig: DictationConfig;
30
+ serverConfig: ServerConfig;
31
+ }) {
32
+ this._updateRecordingState('initializing');
33
+ try {
34
+ this._mediaStream = await navigator.mediaDevices.getUserMedia({
35
+ audio: { deviceId: this.selectedDevice },
36
+ });
37
+ this._audioService = new AudioService(this._mediaStream);
38
+ this._dictationService = new DictationService(this._mediaStream, params);
39
+
40
+ // Forward custom events from dictation service
41
+ this._dictationService.addEventListener('error', e =>
42
+ this.dispatchEvent(
43
+ new CustomEvent('error', {
44
+ detail: (e as CustomEvent).detail,
45
+ bubbles: true,
46
+ composed: true,
47
+ }),
48
+ ),
49
+ );
50
+ this._dictationService.addEventListener('stream-closed', () =>
51
+ this.stopRecording(),
52
+ );
53
+ this._dictationService.addEventListener('transcript', e =>
54
+ this.dispatchEvent(
55
+ new CustomEvent('transcript', {
56
+ detail: (e as CustomEvent).detail,
57
+ bubbles: true,
58
+ composed: true,
59
+ }),
60
+ ),
61
+ );
62
+ } catch (error) {
63
+ this.dispatchEvent(
64
+ new CustomEvent('error', {
65
+ detail: error,
66
+ bubbles: true,
67
+ composed: true,
68
+ }),
69
+ );
70
+ this._updateRecordingState('stopped');
71
+ return;
72
+ }
73
+
74
+ this._dictationService?.startRecording();
75
+ this._updateRecordingState('recording');
76
+ this._visualiserInterval = window.setInterval(() => {
77
+ const level = this._audioService
78
+ ? this._audioService.getAudioLevel() * 3
79
+ : 0;
80
+ this.dispatchEvent(
81
+ new CustomEvent('audio-level-changed', {
82
+ detail: { audioLevel: level },
83
+ bubbles: true,
84
+ composed: true,
85
+ }),
86
+ );
87
+ }, 150);
88
+ }
89
+
90
+ async stopRecording() {
91
+ this._updateRecordingState('stopping');
92
+ if (this._visualiserInterval) {
93
+ clearInterval(this._visualiserInterval);
94
+ this._visualiserInterval = undefined;
95
+ }
96
+ if (this._mediaStream) {
97
+ this._mediaStream.getTracks().forEach(track => track.stop());
98
+ this._mediaStream = null;
99
+ }
100
+ await this._dictationService?.stopRecording();
101
+ this._updateRecordingState('stopped');
102
+ }
103
+
104
+ private _updateRecordingState(state: RecordingState) {
105
+ this.recordingState = state;
106
+ this.dispatchEvent(
107
+ new CustomEvent('recording-state-changed', {
108
+ detail: { state },
109
+ bubbles: true,
110
+ composed: true,
111
+ }),
112
+ );
113
+ }
114
+ }
@@ -0,0 +1,25 @@
1
+ export class AudioService {
2
+ private audioContext: AudioContext;
3
+
4
+ private analyser: AnalyserNode;
5
+
6
+ constructor(mediaStream: MediaStream) {
7
+ this.audioContext = new AudioContext();
8
+ const source = this.audioContext.createMediaStreamSource(mediaStream);
9
+ this.analyser = this.audioContext.createAnalyser();
10
+ this.analyser.fftSize = 8192;
11
+ source.connect(this.analyser);
12
+ }
13
+
14
+ public getAudioLevel(): number {
15
+ const bufferLength = this.analyser.fftSize;
16
+ const dataArray = new Uint8Array(bufferLength);
17
+ this.analyser.getByteTimeDomainData(dataArray);
18
+ let sum = 0;
19
+ for (let i = 0; i < bufferLength; i += 1) {
20
+ const normalized = (dataArray[i] - 128) / 128;
21
+ sum += normalized * normalized;
22
+ }
23
+ return Math.sqrt(sum / bufferLength);
24
+ }
25
+ }
@@ -0,0 +1,56 @@
1
+ import { LitElement, html, css } from 'lit';
2
+ import { property, customElement } from 'lit/decorators.js';
3
+
4
+ @customElement('audio-visualiser')
5
+ export class AudioVisualiser extends LitElement {
6
+ @property({ type: Number }) level = 0; // expects a value from 0 to 100
7
+
8
+ @property({ type: Boolean }) active = true;
9
+
10
+ static styles = css`
11
+ :host {
12
+ height: 100%;
13
+ }
14
+ .container {
15
+ display: flex;
16
+ width: 8px;
17
+ flex-direction: column-reverse; /* Bottom-up stacking */
18
+ height: 100%;
19
+ gap: 1px;
20
+ opacity: 0.5;
21
+ &.active {
22
+ opacity: 1;
23
+ }
24
+ }
25
+ .segment {
26
+ flex: 1;
27
+ background-color: var(--action-accent-text-color);
28
+ transition: background-color 0.25s;
29
+ border-radius: 1px;
30
+ opacity: 0.5;
31
+ }
32
+ .segment.active {
33
+ opacity: 1;
34
+ }
35
+ `;
36
+
37
+ render() {
38
+ // Each segment represents 20%. Using Math.ceil to fill segments optimistically.
39
+ const activeSegments = Math.round(this.level * 5);
40
+ const segments = [];
41
+ for (let i = 0; i < 5; i += 1) {
42
+ segments.push(html`
43
+ <div class="segment ${i < activeSegments ? 'active' : ''}"></div>
44
+ `);
45
+ }
46
+ return html`
47
+ <div class="container ${this.active ? 'active' : ''}">${segments}</div>
48
+ `;
49
+ }
50
+ }
51
+
52
+ declare global {
53
+ interface HTMLElementTagNameMap {
54
+ 'audio-visualiser': AudioVisualiser;
55
+ }
56
+ }