{"version":3,"file":"static/js/main.6f190e05.js","mappings":"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AE9B,ECRD,IACE,IAAO,OACP,QAAW,uBACX,MAAS,QACT,GAAM,WACN,GAAM,mBACN,GAAM,UACN,GAAM,uBACN,GAAM,cACN,GAAM,sBACN,GAAM,WACN,GAAM,UACN,GAAM,UACN,GAAM,SACN,GAAM,aACN,GAAM,YACN,GAAM,iBACN,GAAM,UACN,GAAM,YACN,GAAM,QACN,GAAM,mBACN,GAAM,aACN,GAAM,yBACN,GAAM,WACN,GAAM,aACN,GAAM,UACN,GAAM,eACN,GAAM,WACN,GAAM,UACN,GAAM,UACN,GAAM,QACN,GAAM,sBACN,GAAM,UACN,GAAM,oBACN,GAAM,UACN,GAAM,mCACN,GAAM,SACN,GAAM,UACN,GAAM,SACN,GAAM,gBACN,GAAM,WACN,GAAM,UACN,GAAM,SACN,GAAM,SACN,GAAM,0BACN,GAAM,oCACN,GAAM,2BACN,GAAM,QACN,GAAM,cACN,GAAM,gBACN,GAAM,eACN,GAAM,QACN,GAAM,WACN,GAAM,QACN,GAAM,WACN,GAAM,aACN,GAAM,OACN,GAAM,aACN,GAAM,aACN,GAAM,mBACN,GAAM,SACN,GAAM,iBACN,GAAM,UACN,GAAM,WACN,GAAM,UACN,GAAM,WACN,GAAM,qBACN,GAAM,UACN,GAAM,UACN,GAAM,UACN,GAAM,QACN,GAAM,iBACN,GAAM,UACN,GAAM,QACN,GAAM,WACN,GAAM,UACN,GAAM,OACN,GAAM,mBACN,GAAM,iCACN,GAAM,gBACN,GAAM,SACN,GAAM,QACN,GAAM,iBACN,GAAM,UACN,GAAM,UACN,GAAM,gBACN,GAAM,WACN,GAAM,QACN,GAAM,YACN,GAAM,YACN,GAAM,SACN,GAAM,SACN,GAAM,aACN,GAAM,oBACN,GAAM,SACN,GAAM,+CACN,GAAM,YACN,GAAM,OACN,GAAM,gBACN,GAAM,SACN,GAAM,YACN,GAAM,oCACN,GAAM,WACN,GAAM,UACN,GAAM,QACN,GAAM,UACN,GAAM,YACN,GAAM,UACN,GAAM,SACN,GAAM,cACN,GAAM,QACN,GAAM,iCACN,GAAM,OACN,GAAM,OACN,GAAM,UACN,GAAM,QACN,GAAM,SACN,GAAM,UACN,GAAM,SACN,GAAM,QACN,GAAM,QACN,GAAM,aACN,GAAM,WACN,GAAM,WACN,GAAM,UACN,GAAM,wBACN,GAAM,cACN,GAAM,cACN,GAAM,SACN,GAAM,iBACN,GAAM,aACN,GAAM,OACN,GAAM,UACN,GAAM,cACN,GAAM,gBACN,GAAM,YACN,GAAM,UACN,GAAM,UACN,GAAM,YACN,GAAM,aACN,GAAM,SACN,GAAM,QACN,GAAM,UACN,GAAM,SACN,GAAM,UACN,GAAM,aACN,GAAM,6BACN,GAAM,aACN,GAAM,mBACN,GAAM,kBACN,GAAM,OACN,GAAM,UACN,GAAM,WACN,GAAM,QACN,GAAM,2BACN,GAAM,aACN,GAAM,aACN,GAAM,aACN,GAAM,QACN,GAAM,YACN,GAAM,WACN,GAAM,SACN,GAAM,SACN,GAAM,WACN,GAAM,aACN,GAAM,UACN,GAAM,gBACN,GAAM,QACN,GAAM,iBACN,GAAM,UACN,GAAM,YACN,GAAM,cACN,GAAM,SACN,GAAM,QACN,GAAM,QACN,GAAM,OACN,GAAM,cACN,GAAM,OACN,GAAM,gBACN,GAAM,SACN,GAAM,OACN,GAAM,mBACN,GAAM,mBACN,GAAM,cACN,GAAM,WACN,GAAM,SACN,GAAM,4BACN,GAAM,WACN,GAAM,cACN,GAAM,YACN,GAAM,WACN,GAAM,QACN,GAAM,WACN,GAAM,QACN,GAAM,UACN,GAAM,UACN,GAAM,SACN,GAAM,SACN,GAAM,SACN,GAAM,eACN,GAAM,kBACN,GAAM,aACN,GAAM,QACN,GAAM,SACN,GAAM,YACN,GAAM,eACN,GAAM,WACN,GAAM,yBACN,GAAM,WACN,GAAM,eACN,GAAM,aACN,GAAM,UACN,GAAM,UACN,GAAM,WACN,GAAM,cACN,GAAM,wBACN,GAAM,cACN,GAAM,eACN,GAAM,QACN,GAAM,YACN,GAAM,mBACN,GAAM,2BACN,GAAM,OACN,GAAM,8BACN,GAAM,OACN,GAAM,WACN,GAAM,aACN,GAAM,UACN,GAAM,cACN,GAAM,eACN,GAAM,UACN,GAAM,QACN,GAAM,SACN,GAAM,sBACN,GAAM,S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AAC,MAAM,GAAK,CAAC,MAAM,GAAK,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,KAAK,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,KAAK,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,KAAK,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,KAAK,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,KAAK,KAAK,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,KAAK,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,I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","sources":["../node_modules/automation-events/build/es5/bundle.js","../node_modules/axios/node_modules/form-data/lib/browser.js","../node_modules/broker-factory/src/helpers/port-map.ts","../node_modules/broker-factory/src/module.ts","../node_modules/broker-factory/src/helpers/extend-broker-implementation.ts","../node_modules/broker-factory/src/guards/message-port.ts","../node_modules/classnames/index.js","../node_modules/compilerr/build/es5/bundle.js","../node_modules/dashify/index.js","../node_modules/extendable-media-recorder-wav-encoder-broker/src/module.ts","../node_modules/extendable-media-recorder-wav-encoder/src/module.ts","../node_modules/extendable-media-recorder-wav-encoder/src/worker/worker.ts","../node_modules/media-encoder-host-broker/src/module.ts","../node_modules/media-encoder-host/src/module.ts","../node_modules/media-encoder-host/src/worker/worker.ts","../node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../node_modules/extendable-media-recorder/src/factories/invalid-modification-error.ts","../node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","../node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","../node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","../node_modules/@babel/runtime/helpers/esm/inherits.js","../node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","../node_modules/@babel/runtime/helpers/esm/createSuper.js","../node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js","../node_modules/extendable-media-recorder/src/factories/media-recorder-constructor.ts","../node_modules/extendable-media-recorder/src/factories/not-supported-error.ts","../node_modules/rxjs-interop/source/symbols.ts","../node_modules/rxjs-interop/source/to-observer.ts","../node_modules/subscribable-things/src/factories/animation-frame.ts","../node_modules/subscribable-things/src/functions/emit-not-supported-error.ts","../node_modules/subscribable-things/src/module.ts","../node_modules/subscribable-things/src/factories/window.ts","../node_modules/subscribable-things/src/factories/wrap-subscribe-function.ts","../node_modules/rxjs-interop/source/patch.ts","../node_modules/subscribable-things/src/factories/mutations.ts","../node_modules/subscribable-things/src/factories/map-subscribable-thing.ts","../node_modules/subscribable-things/src/factories/prepend-subscribable-thing.ts","../node_modules/subscribable-things/src/factories/attribute.ts","../node_modules/subscribable-things/src/factories/geolocation.ts","../node_modules/subscribable-things/src/factories/intersections.ts","../node_modules/subscribable-things/src/factories/media-devices.ts","../node_modules/subscribable-things/src/factories/media-query-match.ts","../node_modules/subscribable-things/src/factories/metrics.ts","../node_modules/subscribable-things/src/factories/midi-inputs.ts","../node_modules/subscribable-things/src/factories/midi-outputs.ts","../node_modules/subscribable-things/src/factories/on.ts","../node_modules/subscribable-things/src/factories/online.ts","../node_modules/subscribable-things/src/factories/permission-state.ts","../node_modules/subscribable-things/src/factories/reports.ts","../node_modules/subscribable-things/src/factories/resizes.ts","../node_modules/subscribable-things/src/factories/unhandled-rejection.ts","../node_modules/subscribable-things/src/factories/video-frame.ts","../node_modules/subscribable-things/src/factories/wake-lock.ts","../node_modules/worker-factory/src/helpers/error-renderers.ts","../node_modules/recorder-audio-worklet/src/module.ts","../node_modules/worker-factory/src/helpers/extend-worker-implementation.ts","../node_modules/recorder-audio-worklet/src/factories/add-recorder-audio-worklet-module.ts","../node_modules/recorder-audio-worklet/src/worklet/worklet.ts","../node_modules/recorder-audio-worklet/src/factories/recorder-audio-worklet-node-factory.ts","../node_modules/recorder-audio-worklet/src/factories/listener.ts","../node_modules/recorder-audio-worklet/src/factories/post-message-factory.ts","../node_modules/recorder-audio-worklet/src/functions/validate-state.ts","../node_modules/standardized-audio-context/src/globals.ts","../node_modules/standardized-audio-context/src/helpers/is-constructible.ts","../node_modules/standardized-audio-context/src/helpers/split-import-statements.ts","../node_modules/standardized-audio-context/src/factories/add-audio-worklet-module.ts","../node_modules/standardized-audio-context/src/helpers/get-value-for-key.ts","../node_modules/standardized-audio-context/src/helpers/pick-element-from-set.ts","../node_modules/standardized-audio-context/src/helpers/delete-passive-input-connection-to-audio-node.ts","../node_modules/standardized-audio-context/src/helpers/get-event-listeners-of-audio-node.ts","../node_modules/standardized-audio-context/src/helpers/set-internal-state-to-active.ts","../node_modules/standardized-audio-context/src/guards/audio-worklet-node.ts","../node_modules/standardized-audio-context/src/helpers/set-internal-state-to-passive.ts","../node_modules/standardized-audio-context/src/helpers/set-internal-state-to-passive-when-necessary.ts","../node_modules/standardized-audio-context/src/factories/analyser-node-constructor.ts","../node_modules/standardized-audio-context/src/helpers/is-owned-by-context.ts","../node_modules/standardized-audio-context/src/helpers/test-audio-buffer-copy-channel-methods-out-of-bounds-support.ts","../node_modules/standardized-audio-context/src/factories/index-size-error.ts","../node_modules/standardized-audio-context/src/helpers/wrap-audio-buffer-get-channel-data-method.ts","../node_modules/standardized-audio-context/src/factories/audio-buffer-constructor.ts","../node_modules/standardized-audio-context/src/constants.ts","../node_modules/standardized-audio-context/src/helpers/is-active-audio-node.ts","../node_modules/standardized-audio-context/src/factories/audio-buffer-source-node-constructor.ts","../node_modules/@babel/runtime/helpers/esm/createForOfIteratorHelper.js","../node_modules/standardized-audio-context/src/guards/audio-buffer-source-node.ts","../node_modules/standardized-audio-context/src/helpers/get-audio-node-connections.ts","../node_modules/standardized-audio-context/src/helpers/get-audio-param-connections.ts","../node_modules/standardized-audio-context/src/helpers/deactivate-active-audio-node-input-connections.ts","../node_modules/standardized-audio-context/src/guards/biquad-filter-node.ts","../node_modules/standardized-audio-context/src/guards/constant-source-node.ts","../node_modules/standardized-audio-context/src/guards/gain-node.ts","../node_modules/standardized-audio-context/src/guards/oscillator-node.ts","../node_modules/standardized-audio-context/src/guards/stereo-panner-node.ts","../node_modules/standardized-audio-context/src/helpers/deactivate-audio-graph.ts","../node_modules/standardized-audio-context/src/helpers/is-valid-latency-hint.ts","../node_modules/standardized-audio-context/src/guards/audio-node.ts","../node_modules/standardized-audio-context/src/guards/audio-node-output-connection.ts","../node_modules/standardized-audio-context/src/helpers/insert-element-in-set.ts","../node_modules/standardized-audio-context/src/helpers/add-active-input-connection-to-audio-param.ts","../node_modules/standardized-audio-context/src/helpers/add-passive-input-connection-to-audio-param.ts","../node_modules/standardized-audio-context/src/guards/native-audio-node-faker.ts","../node_modules/standardized-audio-context/src/helpers/connect-native-audio-node-to-native-audio-node.ts","../node_modules/standardized-audio-context/src/helpers/delete-active-input-connection.ts","../node_modules/standardized-audio-context/src/helpers/delete-event-listeners-of-audio-node.ts","../node_modules/standardized-audio-context/src/helpers/delete-passive-input-connection-to-audio-param.ts","../node_modules/standardized-audio-context/src/helpers/disconnect-native-audio-node-from-native-audio-node.ts","../node_modules/standardized-audio-context/src/helpers/get-native-audio-node.ts","../node_modules/standardized-audio-context/src/helpers/get-native-audio-param.ts","../node_modules/standardized-audio-context/src/helpers/is-part-of-a-cycle.ts","../node_modules/standardized-audio-context/src/helpers/is-passive-audio-node.ts","../node_modules/standardized-audio-context/src/helpers/test-audio-node-disconnect-method-support.ts","../node_modules/standardized-audio-context/src/helpers/visit-each-audio-node-once.ts","../node_modules/standardized-audio-context/src/guards/native-audio-node.ts","../node_modules/standardized-audio-context/src/helpers/wrap-audio-node-disconnect-method.ts","../node_modules/standardized-audio-context/src/factories/audio-node-constructor.ts","../node_modules/standardized-audio-context/src/helpers/delete-active-input-connection-to-audio-param.ts","../node_modules/standardized-audio-context/src/read-only-map.ts","../node_modules/standardized-audio-context/src/factories/audio-worklet-node-constructor.ts","../node_modules/standardized-audio-context/src/helpers/copy-from-channel.ts","../node_modules/standardized-audio-context/src/helpers/copy-to-channel.ts","../node_modules/standardized-audio-context/src/helpers/create-nested-arrays.ts","../node_modules/standardized-audio-context/src/helpers/get-audio-worklet-processor.ts","../node_modules/standardized-audio-context/src/factories/audio-worklet-node-renderer-factory.ts","../node_modules/standardized-audio-context/src/factories/biquad-filter-node-constructor.ts","../node_modules/standardized-audio-context/src/factories/channel-merger-node-constructor.ts","../node_modules/standardized-audio-context/src/factories/channel-splitter-node-constructor.ts","../node_modules/standardized-audio-context/src/factories/constant-source-node-constructor.ts","../node_modules/standardized-audio-context/src/factories/convolver-node-constructor.ts","../node_modules/standardized-audio-context/src/helpers/detach-array-buffer.ts","../node_modules/standardized-audio-context/src/factories/delay-node-constructor.ts","../node_modules/standardized-audio-context/src/factories/disconnect-multiple-outputs.ts","../node_modules/standardized-audio-context/src/factories/dynamics-compressor-node-constructor.ts","../node_modules/standardized-audio-context/src/factories/gain-node-constructor.ts","../node_modules/standardized-audio-context/src/factories/invalid-state-error.ts","../node_modules/standardized-audio-context/src/factories/invalid-access-error.ts","../node_modules/standardized-audio-context/src/factories/iir-filter-node-constructor.ts","../node_modules/standardized-audio-context/src/helpers/filter-buffer.ts","../node_modules/standardized-audio-context/src/factories/iir-filter-node-renderer-factory.ts","../node_modules/standardized-audio-context/src/factories/media-stream-audio-destination-node-constructor.ts","../node_modules/standardized-audio-context/src/helpers/test-promise-support.ts","../node_modules/standardized-audio-context/src/factories/minimal-offline-audio-context-constructor.ts","../node_modules/standardized-audio-context/src/helpers/assign-native-audio-node-option.ts","../node_modules/standardized-audio-context/src/helpers/assign-native-audio-node-options.ts","../node_modules/standardized-audio-context/src/helpers/test-analyser-node-get-float-time-domain-data-method-support.ts","../node_modules/standardized-audio-context/src/helpers/assign-native-audio-node-audio-param-value.ts","../node_modules/standardized-audio-context/src/helpers/wrap-audio-scheduled-source-node-start-method-negative-parameters.ts","../node_modules/standardized-audio-context/src/helpers/wrap-audio-scheduled-source-node-stop-method-negative-parameters.ts","../node_modules/standardized-audio-context/src/helpers/compute-buffer-size.ts","../node_modules/standardized-audio-context/src/helpers/clone-audio-worklet-node-options.ts","../node_modules/standardized-audio-context/src/helpers/create-audio-worklet-processor-promise.ts","../node_modules/standardized-audio-context/src/factories/native-biquad-filter-node.ts","../node_modules/standardized-audio-context/src/factories/native-channel-splitter-node.ts","../node_modules/standardized-audio-context/src/helpers/wrap-channel-splitter-node.ts","../node_modules/standardized-audio-context/src/helpers/intercept-connections.ts","../node_modules/standardized-audio-context/src/factories/native-delay-node.ts","../node_modules/standardized-audio-context/src/factories/native-gain-node.ts","../node_modules/standardized-audio-context/src/factories/native-iir-filter-node-faker-factory.ts","../node_modules/standardized-audio-context/src/factories/cache-test-result.ts","../node_modules/standardized-audio-context/src/factories/get-native-context.ts","../node_modules/standardized-audio-context/src/factories/add-audio-node-connections.ts","../node_modules/standardized-audio-context/src/factories/convert-number-to-unsigned-long.ts","../node_modules/standardized-audio-context/src/factories/add-audio-param-connections.ts","../node_modules/standardized-audio-context/src/factories/native-script-processor-node.ts","../node_modules/standardized-audio-context/src/factories/not-supported-error.ts","../node_modules/standardized-audio-context/src/factories/offline-audio-context-constructor.ts","../node_modules/standardized-audio-context/src/factories/oscillator-node-constructor.ts","../node_modules/standardized-audio-context/src/factories/panner-node-constructor.ts","../node_modules/standardized-audio-context/src/factories/periodic-wave-constructor.ts","../node_modules/standardized-audio-context/src/factories/stereo-panner-node-constructor.ts","../node_modules/standardized-audio-context/src/factories/unknown-error.ts","../node_modules/standardized-audio-context/src/factories/wave-shaper-node-constructor.ts","../node_modules/standardized-audio-context/src/helpers/get-first-sample.ts","../node_modules/standardized-audio-context/src/helpers/is-dc-curve.ts","../node_modules/standardized-audio-context/src/helpers/overwrite-accessors.ts","../node_modules/standardized-audio-context/src/helpers/test-audio-scheduled-source-node-start-method-negative-parameters-support.ts","../node_modules/standardized-audio-context/src/helpers/test-audio-scheduled-source-node-stop-method-consecutive-calls-support.ts","../node_modules/standardized-audio-context/src/helpers/test-audio-scheduled-source-node-stop-method-negative-parameters-support.ts","../node_modules/standardized-audio-context/src/helpers/wrap-audio-scheduled-source-node-stop-method-consecutive-calls.ts","../node_modules/standardized-audio-context/src/helpers/wrap-event-listener.ts","../node_modules/standardized-audio-context/src/module.ts","../node_modules/standardized-audio-context/src/factories/add-active-input-connection-to-audio-node.ts","../node_modules/standardized-audio-context/src/factories/add-passive-input-connection-to-audio-node.ts","../node_modules/standardized-audio-context/src/factories/delete-active-input-connection-to-audio-node.ts","../node_modules/standardized-audio-context/src/factories/get-audio-node-tail-time.ts","../node_modules/standardized-audio-context/src/factories/window.ts","../node_modules/standardized-audio-context/src/factories/native-analyser-node-factory.ts","../node_modules/standardized-audio-context/src/helpers/wrap-analyser-node-get-float-time-domain-data-method.ts","../node_modules/standardized-audio-context/src/factories/get-audio-node-renderer.ts","../node_modules/standardized-audio-context/src/factories/render-inputs-of-audio-node.ts","../node_modules/standardized-audio-context/src/factories/analyser-node-renderer-factory.ts","../node_modules/standardized-audio-context/src/factories/native-offline-audio-context-constructor.ts","../node_modules/standardized-audio-context/src/factories/is-native-offline-audio-context.ts","../node_modules/standardized-audio-context/src/factories/event-target-constructor.ts","../node_modules/standardized-audio-context/src/factories/native-audio-context-constructor.ts","../node_modules/standardized-audio-context/src/factories/is-native-audio-context.ts","../node_modules/standardized-audio-context/src/factories/is-native-audio-node.ts","../node_modules/standardized-audio-context/src/factories/is-native-audio-param.ts","../node_modules/standardized-audio-context/src/factories/native-audio-worklet-node-constructor.ts","../node_modules/standardized-audio-context/src/factories/add-connection-to-audio-node.ts","../node_modules/standardized-audio-context/src/factories/increment-cycle-counter-factory.ts","../node_modules/standardized-audio-context/src/factories/decrement-cycle-counter.ts","../node_modules/standardized-audio-context/src/factories/detect-cycles.ts","../node_modules/standardized-audio-context/src/guards/delay-node.ts","../node_modules/standardized-audio-context/src/factories/native-audio-buffer-constructor.ts","../node_modules/standardized-audio-context/src/factories/wrap-audio-buffer-copy-channel-methods.ts","../node_modules/standardized-audio-context/src/factories/wrap-audio-buffer-copy-channel-methods-out-of-bounds.ts","../node_modules/standardized-audio-context/src/factories/test-audio-buffer-constructor-support.ts","../node_modules/standardized-audio-context/src/factories/add-silent-connection.ts","../node_modules/standardized-audio-context/src/factories/render-inputs-of-audio-param.ts","../node_modules/standardized-audio-context/src/factories/connect-audio-param.ts","../node_modules/standardized-audio-context/src/factories/native-audio-buffer-source-node-factory.ts","../node_modules/standardized-audio-context/src/helpers/wrap-audio-buffer-source-node-start-method-consecutive-calls.ts","../node_modules/standardized-audio-context/src/helpers/test-audio-buffer-source-node-start-method-consecutive-calls-support.ts","../node_modules/standardized-audio-context/src/helpers/test-audio-buffer-source-node-start-method-offset-clamping-support.ts","../node_modules/standardized-audio-context/src/helpers/test-audio-buffer-source-node-stop-method-nullified-buffer-support.ts","../node_modules/standardized-audio-context/src/helpers/wrap-audio-buffer-source-node-start-method-offset-clamping.ts","../node_modules/standardized-audio-context/src/factories/wrap-audio-buffer-source-node-stop-method-nullified-buffer.ts","../node_modules/standardized-audio-context/src/factories/render-automation.ts","../node_modules/standardized-audio-context/src/factories/get-audio-param-renderer.ts","../node_modules/standardized-audio-context/src/factories/audio-buffer-source-node-renderer-factory.ts","../node_modules/standardized-audio-context/src/factories/audio-param-factory.ts","../node_modules/standardized-audio-context/src/factories/audio-param-renderer.ts","../node_modules/standardized-audio-context/src/helpers/set-value-at-time-until-possible.ts","../node_modules/standardized-audio-context/src/factories/audio-destination-node-constructor.ts","../node_modules/standardized-audio-context/src/factories/audio-destination-node-renderer-factory.ts","../node_modules/standardized-audio-context/src/factories/native-audio-destination-node.ts","../node_modules/standardized-audio-context/src/factories/biquad-filter-node-renderer-factory.ts","../node_modules/standardized-audio-context/src/factories/set-audio-node-tail-time.ts","../node_modules/standardized-audio-context/src/factories/monitor-connections.ts","../node_modules/standardized-audio-context/src/factories/wrap-channel-merger-node.ts","../node_modules/standardized-audio-context/src/factories/native-channel-merger-node-factory.ts","../node_modules/standardized-audio-context/src/factories/channel-merger-node-renderer-factory.ts","../node_modules/standardized-audio-context/src/factories/channel-splitter-node-renderer-factory.ts","../node_modules/standardized-audio-context/src/helpers/sanitize-channel-splitter-options.ts","../node_modules/standardized-audio-context/src/factories/native-constant-source-node-faker-factory.ts","../node_modules/standardized-audio-context/src/factories/native-constant-source-node-factory.ts","../node_modules/standardized-audio-context/src/factories/constant-source-node-renderer-factory.ts","../node_modules/standardized-audio-context/src/factories/native-convolver-node-factory.ts","../node_modules/standardized-audio-context/src/factories/convolver-node-renderer-factory.ts","../node_modules/standardized-audio-context/src/factories/delay-node-renderer-factory.ts","../node_modules/standardized-audio-context/src/factories/native-dynamics-compressor-node-factory.ts","../node_modules/standardized-audio-context/src/factories/dynamics-compressor-node-renderer-factory.ts","../node_modules/standardized-audio-context/src/factories/gain-node-renderer-factory.ts","../node_modules/standardized-audio-context/src/factories/render-native-offline-audio-context.ts","../node_modules/standardized-audio-context/src/factories/test-offline-audio-context-current-time-support.ts","../node_modules/standardized-audio-context/src/factories/native-iir-filter-node-factory.ts","../node_modules/standardized-audio-context/src/helpers/wrap-iir-filter-node-get-frequency-response-method.ts","../node_modules/standardized-audio-context/src/factories/audio-listener-factory.ts","../node_modules/standardized-audio-context/src/factories/minimal-base-audio-context-constructor.ts","../node_modules/standardized-audio-context/src/factories/native-oscillator-node-factory.ts","../node_modules/standardized-audio-context/src/factories/oscillator-node-renderer-factory.ts","../node_modules/standardized-audio-context/src/factories/connected-native-audio-buffer-source-node-factory.ts","../node_modules/standardized-audio-context/src/factories/native-wave-shaper-node-faker-factory.ts","../node_modules/standardized-audio-context/src/factories/native-wave-shaper-node-factory.ts","../node_modules/standardized-audio-context/src/factories/native-panner-node-faker-factory.ts","../node_modules/standardized-audio-context/src/factories/native-panner-node-factory.ts","../node_modules/standardized-audio-context/src/factories/panner-node-renderer-factory.ts","../node_modules/standardized-audio-context/src/factories/native-periodic-wave-factory.ts","../node_modules/standardized-audio-context/src/helpers/sanitize-periodic-wave-options.ts","../node_modules/standardized-audio-context/src/factories/native-stereo-panner-node-faker-factory.ts","../node_modules/standardized-audio-context/src/factories/native-stereo-panner-node-factory.ts","../node_modules/standardized-audio-context/src/factories/stereo-panner-node-renderer-factory.ts","../node_modules/standardized-audio-context/src/factories/wave-shaper-node-renderer-factory.ts","../node_modules/standardized-audio-context/src/factories/is-secure-context.ts","../node_modules/standardized-audio-context/src/factories/expose-current-frame-and-current-time.ts","../node_modules/standardized-audio-context/src/factories/get-or-create-backup-offline-audio-context.ts","../node_modules/standardized-audio-context/src/factories/evaluate-source.ts","../node_modules/standardized-audio-context/src/factories/fetch-source.ts","../node_modules/standardized-audio-context/src/factories/abort-error.ts","../node_modules/standardized-audio-context/src/factories/test-audio-worklet-processor-post-message-support.ts","../node_modules/standardized-audio-context/src/factories/is-native-context.ts","../node_modules/standardized-audio-context/src/factories/decode-audio-data.ts","../node_modules/standardized-audio-context/src/factories/data-clone-error.ts","../node_modules/standardized-audio-context/src/factories/encoding-error.ts","../node_modules/standardized-audio-context/src/factories/base-audio-context-constructor.ts","../node_modules/standardized-audio-context/src/factories/media-element-audio-source-node-constructor.ts","../node_modules/standardized-audio-context/src/factories/native-media-element-audio-source-node.ts","../node_modules/standardized-audio-context/src/factories/native-media-stream-audio-destination-node.ts","../node_modules/standardized-audio-context/src/factories/media-stream-audio-source-node-constructor.ts","../node_modules/standardized-audio-context/src/factories/native-media-stream-audio-source-node.ts","../node_modules/standardized-audio-context/src/factories/native-media-stream-track-audio-source-node-factory.ts","../node_modules/standardized-audio-context/src/factories/media-stream-track-audio-source-node-constructor.ts","../node_modules/standardized-audio-context/src/factories/audio-context-constructor.ts","../node_modules/standardized-audio-context/src/factories/get-unrendered-audio-worklet-nodes.ts","../node_modules/standardized-audio-context/src/factories/add-unrendered-audio-worklet-node.ts","../node_modules/standardized-audio-context/src/factories/connect-multiple-outputs.ts","../node_modules/standardized-audio-context/src/factories/delete-unrendered-audio-worklet-node.ts","../node_modules/standardized-audio-context/src/factories/get-active-audio-worklet-node-inputs.ts","../node_modules/standardized-audio-context/src/factories/native-audio-worklet-node-faker-factory.ts","../node_modules/standardized-audio-context/src/helpers/create-audio-worklet-processor.ts","../node_modules/standardized-audio-context/src/factories/native-audio-worklet-node-factory.ts","../node_modules/standardized-audio-context/src/helpers/test-clonability-of-audio-worklet-node-options.ts","../node_modules/standardized-audio-context/src/factories/get-backup-offline-audio-context.ts","../node_modules/standardized-audio-context/src/factories/set-active-audio-worklet-node-inputs.ts","../node_modules/standardized-audio-context/src/helpers/sanitize-audio-worklet-node-options.ts","../node_modules/standardized-audio-context/src/helpers/test-audio-worklet-node-options-clonability.ts","../node_modules/standardized-audio-context/src/factories/minimal-audio-context-constructor.ts","../node_modules/standardized-audio-context/src/factories/create-native-offline-audio-context.ts","../node_modules/standardized-audio-context/src/factories/start-rendering.ts","../node_modules/extendable-media-recorder/src/factories/web-audio-media-recorder.ts","../node_modules/standardized-audio-context/src/factories/is-any-audio-context.ts","../node_modules/standardized-audio-context/src/factories/is-any-audio-node.ts","../node_modules/standardized-audio-context/src/factories/is-any-audio-param.ts","../node_modules/standardized-audio-context/src/factories/is-any-offline-audio-context.ts","../node_modules/extendable-media-recorder/src/module.ts","../node_modules/extendable-media-recorder/src/factories/window.ts","../node_modules/extendable-media-recorder/src/factories/blob-event-factory.ts","../node_modules/extendable-media-recorder/src/factories/native-blob-event-constructor.ts","../node_modules/extendable-media-recorder/src/factories/invalid-state-error.ts","../node_modules/extendable-media-recorder/src/factories/read-variable-size-integer.ts","../node_modules/extendable-media-recorder/src/functions/read-variable-size-integer-length.ts","../node_modules/extendable-media-recorder/src/factories/read-element-content.ts","../node_modules/extendable-media-recorder/src/factories/read-element-type.ts","../node_modules/extendable-media-recorder/src/factories/decode-web-m-chunk.ts","../node_modules/extendable-media-recorder/src/factories/webm-pcm-media-recorder.ts","../node_modules/extendable-media-recorder/src/factories/event-target-factory.ts","../node_modules/extendable-media-recorder/src/factories/native-media-recorder-constructor.ts","../node_modules/extendable-media-recorder/src/factories/native-media-recorder.ts","../node_modules/extendable-media-recorder/src/factories/event-target-constructor.ts","../node_modules/extendable-media-recorder/src/functions/wrap-event-listener.ts","../node_modules/extendable-media-recorder/src/factories/is-supported-promise.ts","../node_modules/fast-unique-numbers/build/es5/bundle.js","../node_modules/indefinite-article/indefinite-article.js","../node_modules/multi-buffer-data-view/build/es5/bundle.js","../node_modules/prop-types/factoryWithThrowingShims.js","../node_modules/prop-types/index.js","../node_modules/prop-types/lib/ReactPropTypesSecret.js","../node_modules/react-dom/cjs/react-dom.production.min.js","../node_modules/react-dom/client.js","../node_modules/react-dom/index.js","../node_modules/react-media-recorder/index.js","../node_modules/react-media-recorder/lib/index.js","../node_modules/react/cjs/react-jsx-runtime.production.min.js","../node_modules/react/cjs/react.production.min.js","../node_modules/react/index.js","../node_modules/react/jsx-runtime.js","../node_modules/scheduler/cjs/scheduler.production.min.js","../node_modules/scheduler/index.js","../node_modules/@babel/runtime/helpers/arrayLikeToArray.js","../node_modules/@babel/runtime/helpers/arrayWithHoles.js","../node_modules/@babel/runtime/helpers/arrayWithoutHoles.js","../node_modules/@babel/runtime/helpers/classCallCheck.js","../node_modules/@babel/runtime/helpers/createClass.js","../node_modules/@babel/runtime/helpers/iterableToArray.js","../node_modules/@babel/runtime/helpers/iterableToArrayLimit.js","../node_modules/@babel/runtime/helpers/nonIterableRest.js","../node_modules/@babel/runtime/helpers/nonIterableSpread.js","../node_modules/@babel/runtime/helpers/slicedToArray.js","../node_modules/@babel/runtime/helpers/toConsumableArray.js","../node_modules/@babel/runtime/helpers/toPrimitive.js","../node_modules/@babel/runtime/helpers/toPropertyKey.js","../node_modules/@babel/runtime/helpers/typeof.js","../node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js","../node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","../node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","../node_modules/@babel/runtime/helpers/esm/classCallCheck.js","../node_modules/@babel/runtime/helpers/esm/createClass.js","../node_modules/@babel/runtime/helpers/esm/defineProperty.js","../node_modules/@babel/runtime/helpers/esm/objectSpread2.js","../node_modules/@babel/runtime/helpers/esm/regeneratorRuntime.js","../node_modules/@babel/runtime/helpers/esm/slicedToArray.js","../node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","../node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","../node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","../node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","../node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","../node_modules/@babel/runtime/helpers/esm/iterableToArray.js","../node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","../node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","../node_modules/@babel/runtime/helpers/esm/toPrimitive.js","../node_modules/@babel/runtime/helpers/esm/typeof.js","../node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","../webpack/bootstrap","../webpack/runtime/define property getters","../webpack/runtime/hasOwnProperty shorthand","../webpack/runtime/make namespace object","Components/Common/Svgs.jsx","Components/Common/AppWrapper.jsx","../node_modules/axios/lib/helpers/bind.js","../node_modules/axios/lib/utils.js","../node_modules/axios/lib/core/AxiosError.js","../node_modules/axios/lib/env/classes/FormData.js","../node_modules/axios/lib/helpers/toFormData.js","../node_modules/axios/lib/helpers/AxiosURLSearchParams.js","../node_modules/axios/lib/helpers/buildURL.js","../node_modules/axios/lib/core/InterceptorManager.js","../node_modules/axios/lib/defaults/transitional.js","../node_modules/axios/lib/platform/browser/classes/URLSearchParams.js","../node_modules/axios/lib/platform/browser/classes/FormData.js","../node_modules/axios/lib/platform/browser/index.js","../node_modules/axios/lib/helpers/formDataToJSON.js","../node_modules/axios/lib/defaults/index.js","../node_modules/axios/lib/helpers/toURLEncodedForm.js","../node_modules/axios/lib/helpers/parseHeaders.js","../node_modules/axios/lib/core/AxiosHeaders.js","../node_modules/axios/lib/core/transformData.js","../node_modules/axios/lib/cancel/isCancel.js","../node_modules/axios/lib/cancel/CanceledError.js","../node_modules/axios/lib/helpers/cookies.js","../node_modules/axios/lib/core/buildFullPath.js","../node_modules/axios/lib/helpers/isAbsoluteURL.js","../node_modules/axios/lib/helpers/combineURLs.js","../node_modules/axios/lib/helpers/isURLSameOrigin.js","../node_modules/axios/lib/helpers/speedometer.js","../node_modules/axios/lib/adapters/xhr.js","../node_modules/axios/lib/core/settle.js","../node_modules/axios/lib/helpers/parseProtocol.js","../node_modules/axios/lib/adapters/adapters.js","../node_modules/axios/lib/helpers/null.js","../node_modules/axios/lib/core/dispatchRequest.js","../node_modules/axios/lib/core/mergeConfig.js","../node_modules/axios/lib/env/data.js","../node_modules/axios/lib/helpers/validator.js","../node_modules/axios/lib/core/Axios.js","../node_modules/axios/lib/cancel/CancelToken.js","../node_modules/axios/lib/axios.js","../node_modules/axios/lib/helpers/spread.js","../node_modules/axios/lib/helpers/isAxiosError.js","../node_modules/use-long-press/src/types.ts","Components/Common/Api.jsx","Components/Steps/Intro.jsx","Components/Steps/Login.jsx","Components/Common/CircleIcon.jsx","Components/Steps/Lang.jsx","Components/Steps/One.jsx","Components/Steps/Two.jsx","Components/Steps/Three.jsx","Components/Common/Button.jsx","Components/Steps/Four.jsx","Components/Steps/Five.jsx","Components/Steps/Six.jsx","../node_modules/use-long-press/src/utils.ts","Components/Steps/VideoModal.jsx","Components/Steps/Seven.jsx","../node_modules/use-long-press/src/index.ts","Components/Common/Input.jsx","../node_modules/react-phone-number-input/locale/en.json.js","../node_modules/react-phone-number-input/source/PropTypes.js","../node_modules/input-format/source/helpers.js","../node_modules/input-format/source/closeBraces.js","../node_modules/input-format/source/format.js","../node_modules/input-format/source/templateFormatter.js","../node_modules/input-format/source/dom.js","../node_modules/input-format/source/inputControl.js","../node_modules/input-format/source/parse.js","../node_modules/input-format/source/edit.js","../node_modules/input-format/source/react/Input.js","../node_modules/libphonenumber-js/source/tools/semver-compare.js","../node_modules/libphonenumber-js/source/metadata.js","../node_modules/libphonenumber-js/source/helpers/checkNumberLength.js","../node_modules/libphonenumber-js/source/helpers/mergeArrays.js","../node_modules/libphonenumber-js/source/isPossibleNumber_.js","../node_modules/libphonenumber-js/source/helpers/matchesEntirely.js","../node_modules/libphonenumber-js/source/helpers/getNumberType.js","../node_modules/libphonenumber-js/source/constants.js","../node_modules/libphonenumber-js/source/helpers/applyInternationalSeparatorStyle.js","../node_modules/libphonenumber-js/source/helpers/formatNationalNumberUsingFormat.js","../node_modules/libphonenumber-js/source/helpers/getIddPrefix.js","../node_modules/libphonenumber-js/source/helpers/extension/createExtensionPattern.js","../node_modules/libphonenumber-js/source/helpers/isViablePhoneNumber.js","../node_modules/libphonenumber-js/source/helpers/RFC3966.js","../node_modules/libphonenumber-js/source/format_.js","../node_modules/libphonenumber-js/source/PhoneNumber.js","../node_modules/libphonenumber-js/source/validate_.js","../node_modules/libphonenumber-js/source/AsYouTypeState.js","../node_modules/libphonenumber-js/source/AsYouTypeFormatter.util.js","../node_modules/libphonenumber-js/source/helpers/parseDigits.js","../node_modules/libphonenumber-js/source/AsYouTypeFormatter.complete.js","../node_modules/libphonenumber-js/source/AsYouTypeFormatter.PatternParser.js","../node_modules/libphonenumber-js/source/AsYouTypeFormatter.PatternMatcher.js","../node_modules/libphonenumber-js/source/AsYouTypeFormatter.js","../node_modules/libphonenumber-js/source/helpers/stripIddPrefix.js","../node_modules/libphonenumber-js/source/helpers/extractNationalNumberFromPossiblyIncompleteNumber.js","../node_modules/libphonenumber-js/source/helpers/extractNationalNumber.js","../node_modules/libphonenumber-js/source/helpers/extractCountryCallingCodeFromInternationalNumberWithoutPlusSign.js","../node_modules/libphonenumber-js/source/helpers/extractCountryCallingCode.js","../node_modules/libphonenumber-js/source/AsYouTypeParser.js","../node_modules/libphonenumber-js/source/helpers/getCountryByCallingCode.js","../node_modules/libphonenumber-js/source/AsYouType.js","../node_modules/libphonenumber-js/source/parseIncompletePhoneNumber.js","../node_modules/react-phone-number-input/source/helpers/inputValuePrefix.js","../node_modules/react-phone-number-input/source/InputSmart.js","../node_modules/react-phone-number-input/source/InputBasic.js","../node_modules/libphonenumber-js/source/formatIncompletePhoneNumber.js","../node_modules/country-flag-icons/source/unicode.js","../node_modules/react-phone-number-input/source/CountrySelect.js","../node_modules/react-phone-number-input/source/Flag.js","../node_modules/react-phone-number-input/source/InternationalIcon.js","../node_modules/react-phone-number-input/source/helpers/countries.js","../node_modules/libphonenumber-js/source/getCountries.js","../node_modules/react-phone-number-input/source/CountryIcon.js","../node_modules/libphonenumber-js/source/parsePhoneNumber.js","../node_modules/libphonenumber-js/source/ParseError.js","../node_modules/libphonenumber-js/source/helpers/extension/extractExtension.js","../node_modules/libphonenumber-js/source/parse_.js","../node_modules/libphonenumber-js/source/parsePhoneNumberFromString_.js","../node_modules/libphonenumber-js/source/parsePhoneNumber_.js","../node_modules/react-phone-number-input/source/helpers/getInternationalPhoneNumberPrefix.js","../node_modules/react-phone-number-input/source/helpers/phoneInputHelpers.js","../node_modules/libphonenumber-js/source/parsePhoneNumberFromString.js","../node_modules/react-phone-number-input/source/PhoneInputWithCountry.js","../node_modules/react-phone-number-input/source/helpers/getPhoneInputWithCountryStateUpdateFromNewProps.js","../node_modules/react-phone-number-input/source/PhoneInputWithCountryDefault.js","../node_modules/react-phone-number-input/min/index.js","../node_modules/libphonenumber-js/metadata.min.json.js","Components/Steps/Eight.jsx","Components/Steps/HowManyTimes.jsx","Components/Data.jsx","Components/Steps/Nine.jsx","Components/Main.jsx","App.js","index.js"],"sourcesContent":["(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@babel/runtime/helpers/slicedToArray'), require('@babel/runtime/helpers/classCallCheck'), require('@babel/runtime/helpers/createClass')) :\n typeof define === 'function' && define.amd ? define(['exports', '@babel/runtime/helpers/slicedToArray', '@babel/runtime/helpers/classCallCheck', '@babel/runtime/helpers/createClass'], factory) :\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.automationEvents = {}, global._slicedToArray, global._classCallCheck, global._createClass));\n})(this, (function (exports, _slicedToArray, _classCallCheck, _createClass) { 'use strict';\n\n var createExtendedExponentialRampToValueAutomationEvent = function createExtendedExponentialRampToValueAutomationEvent(value, endTime, insertTime) {\n return {\n endTime: endTime,\n insertTime: insertTime,\n type: 'exponentialRampToValue',\n value: value\n };\n };\n\n var createExtendedLinearRampToValueAutomationEvent = function createExtendedLinearRampToValueAutomationEvent(value, endTime, insertTime) {\n return {\n endTime: endTime,\n insertTime: insertTime,\n type: 'linearRampToValue',\n value: value\n };\n };\n\n var createSetValueAutomationEvent = function createSetValueAutomationEvent(value, startTime) {\n return {\n startTime: startTime,\n type: 'setValue',\n value: value\n };\n };\n\n var createSetValueCurveAutomationEvent = function createSetValueCurveAutomationEvent(values, startTime, duration) {\n return {\n duration: duration,\n startTime: startTime,\n type: 'setValueCurve',\n values: values\n };\n };\n\n var getTargetValueAtTime = function getTargetValueAtTime(time, valueAtStartTime, _ref) {\n var startTime = _ref.startTime,\n target = _ref.target,\n timeConstant = _ref.timeConstant;\n return target + (valueAtStartTime - target) * Math.exp((startTime - time) / timeConstant);\n };\n\n var isExponentialRampToValueAutomationEvent = function isExponentialRampToValueAutomationEvent(automationEvent) {\n return automationEvent.type === 'exponentialRampToValue';\n };\n\n var isLinearRampToValueAutomationEvent = function isLinearRampToValueAutomationEvent(automationEvent) {\n return automationEvent.type === 'linearRampToValue';\n };\n\n var isAnyRampToValueAutomationEvent = function isAnyRampToValueAutomationEvent(automationEvent) {\n return isExponentialRampToValueAutomationEvent(automationEvent) || isLinearRampToValueAutomationEvent(automationEvent);\n };\n\n var isSetValueAutomationEvent = function isSetValueAutomationEvent(automationEvent) {\n return automationEvent.type === 'setValue';\n };\n\n var isSetValueCurveAutomationEvent = function isSetValueCurveAutomationEvent(automationEvent) {\n return automationEvent.type === 'setValueCurve';\n };\n\n var getValueOfAutomationEventAtIndexAtTime = function getValueOfAutomationEventAtIndexAtTime(automationEvents, index, time, defaultValue) {\n var automationEvent = automationEvents[index];\n return automationEvent === undefined ? defaultValue : isAnyRampToValueAutomationEvent(automationEvent) || isSetValueAutomationEvent(automationEvent) ? automationEvent.value : isSetValueCurveAutomationEvent(automationEvent) ? automationEvent.values[automationEvent.values.length - 1] : getTargetValueAtTime(time, getValueOfAutomationEventAtIndexAtTime(automationEvents, index - 1, automationEvent.startTime, defaultValue), automationEvent);\n };\n\n var getEndTimeAndValueOfPreviousAutomationEvent = function getEndTimeAndValueOfPreviousAutomationEvent(automationEvents, index, currentAutomationEvent, nextAutomationEvent, defaultValue) {\n return currentAutomationEvent === undefined ? [nextAutomationEvent.insertTime, defaultValue] : isAnyRampToValueAutomationEvent(currentAutomationEvent) ? [currentAutomationEvent.endTime, currentAutomationEvent.value] : isSetValueAutomationEvent(currentAutomationEvent) ? [currentAutomationEvent.startTime, currentAutomationEvent.value] : isSetValueCurveAutomationEvent(currentAutomationEvent) ? [currentAutomationEvent.startTime + currentAutomationEvent.duration, currentAutomationEvent.values[currentAutomationEvent.values.length - 1]] : [currentAutomationEvent.startTime, getValueOfAutomationEventAtIndexAtTime(automationEvents, index - 1, currentAutomationEvent.startTime, defaultValue)];\n };\n\n var isCancelAndHoldAutomationEvent = function isCancelAndHoldAutomationEvent(automationEvent) {\n return automationEvent.type === 'cancelAndHold';\n };\n\n var isCancelScheduledValuesAutomationEvent = function isCancelScheduledValuesAutomationEvent(automationEvent) {\n return automationEvent.type === 'cancelScheduledValues';\n };\n\n var getEventTime = function getEventTime(automationEvent) {\n if (isCancelAndHoldAutomationEvent(automationEvent) || isCancelScheduledValuesAutomationEvent(automationEvent)) {\n return automationEvent.cancelTime;\n }\n if (isExponentialRampToValueAutomationEvent(automationEvent) || isLinearRampToValueAutomationEvent(automationEvent)) {\n return automationEvent.endTime;\n }\n return automationEvent.startTime;\n };\n\n var getExponentialRampValueAtTime = function getExponentialRampValueAtTime(time, startTime, valueAtStartTime, _ref) {\n var endTime = _ref.endTime,\n value = _ref.value;\n if (valueAtStartTime === value) {\n return value;\n }\n if (0 < valueAtStartTime && 0 < value || valueAtStartTime < 0 && value < 0) {\n return valueAtStartTime * Math.pow(value / valueAtStartTime, (time - startTime) / (endTime - startTime));\n }\n return 0;\n };\n\n var getLinearRampValueAtTime = function getLinearRampValueAtTime(time, startTime, valueAtStartTime, _ref) {\n var endTime = _ref.endTime,\n value = _ref.value;\n return valueAtStartTime + (time - startTime) / (endTime - startTime) * (value - valueAtStartTime);\n };\n\n var interpolateValue = function interpolateValue(values, theoreticIndex) {\n var lowerIndex = Math.floor(theoreticIndex);\n var upperIndex = Math.ceil(theoreticIndex);\n if (lowerIndex === upperIndex) {\n return values[lowerIndex];\n }\n return (1 - (theoreticIndex - lowerIndex)) * values[lowerIndex] + (1 - (upperIndex - theoreticIndex)) * values[upperIndex];\n };\n\n var getValueCurveValueAtTime = function getValueCurveValueAtTime(time, _ref) {\n var duration = _ref.duration,\n startTime = _ref.startTime,\n values = _ref.values;\n var theoreticIndex = (time - startTime) / duration * (values.length - 1);\n return interpolateValue(values, theoreticIndex);\n };\n\n var isSetTargetAutomationEvent = function isSetTargetAutomationEvent(automationEvent) {\n return automationEvent.type === 'setTarget';\n };\n\n var AutomationEventList = /*#__PURE__*/function (_Symbol$iterator) {\n function AutomationEventList(defaultValue) {\n _classCallCheck(this, AutomationEventList);\n this._automationEvents = [];\n this._currenTime = 0;\n this._defaultValue = defaultValue;\n }\n _createClass(AutomationEventList, [{\n key: _Symbol$iterator,\n value: function value() {\n return this._automationEvents[Symbol.iterator]();\n }\n }, {\n key: \"add\",\n value: function add(automationEvent) {\n var eventTime = getEventTime(automationEvent);\n if (isCancelAndHoldAutomationEvent(automationEvent) || isCancelScheduledValuesAutomationEvent(automationEvent)) {\n var index = this._automationEvents.findIndex(function (currentAutomationEvent) {\n if (isCancelScheduledValuesAutomationEvent(automationEvent) && isSetValueCurveAutomationEvent(currentAutomationEvent)) {\n return currentAutomationEvent.startTime + currentAutomationEvent.duration >= eventTime;\n }\n return getEventTime(currentAutomationEvent) >= eventTime;\n });\n var removedAutomationEvent = this._automationEvents[index];\n if (index !== -1) {\n this._automationEvents = this._automationEvents.slice(0, index);\n }\n if (isCancelAndHoldAutomationEvent(automationEvent)) {\n var lastAutomationEvent = this._automationEvents[this._automationEvents.length - 1];\n if (removedAutomationEvent !== undefined && isAnyRampToValueAutomationEvent(removedAutomationEvent)) {\n if (isSetTargetAutomationEvent(lastAutomationEvent)) {\n throw new Error('The internal list is malformed.');\n }\n var startTime = isSetValueCurveAutomationEvent(lastAutomationEvent) ? lastAutomationEvent.startTime + lastAutomationEvent.duration : getEventTime(lastAutomationEvent);\n var startValue = isSetValueCurveAutomationEvent(lastAutomationEvent) ? lastAutomationEvent.values[lastAutomationEvent.values.length - 1] : lastAutomationEvent.value;\n var value = isExponentialRampToValueAutomationEvent(removedAutomationEvent) ? getExponentialRampValueAtTime(eventTime, startTime, startValue, removedAutomationEvent) : getLinearRampValueAtTime(eventTime, startTime, startValue, removedAutomationEvent);\n var truncatedAutomationEvent = isExponentialRampToValueAutomationEvent(removedAutomationEvent) ? createExtendedExponentialRampToValueAutomationEvent(value, eventTime, this._currenTime) : createExtendedLinearRampToValueAutomationEvent(value, eventTime, this._currenTime);\n this._automationEvents.push(truncatedAutomationEvent);\n }\n if (lastAutomationEvent !== undefined && isSetTargetAutomationEvent(lastAutomationEvent)) {\n this._automationEvents.push(createSetValueAutomationEvent(this.getValue(eventTime), eventTime));\n }\n if (lastAutomationEvent !== undefined && isSetValueCurveAutomationEvent(lastAutomationEvent) && lastAutomationEvent.startTime + lastAutomationEvent.duration > eventTime) {\n this._automationEvents[this._automationEvents.length - 1] = createSetValueCurveAutomationEvent(new Float32Array([6, 7]), lastAutomationEvent.startTime, eventTime - lastAutomationEvent.startTime);\n }\n }\n } else {\n var _index = this._automationEvents.findIndex(function (currentAutomationEvent) {\n return getEventTime(currentAutomationEvent) > eventTime;\n });\n var previousAutomationEvent = _index === -1 ? this._automationEvents[this._automationEvents.length - 1] : this._automationEvents[_index - 1];\n if (previousAutomationEvent !== undefined && isSetValueCurveAutomationEvent(previousAutomationEvent) && getEventTime(previousAutomationEvent) + previousAutomationEvent.duration > eventTime) {\n return false;\n }\n var persistentAutomationEvent = isExponentialRampToValueAutomationEvent(automationEvent) ? createExtendedExponentialRampToValueAutomationEvent(automationEvent.value, automationEvent.endTime, this._currenTime) : isLinearRampToValueAutomationEvent(automationEvent) ? createExtendedLinearRampToValueAutomationEvent(automationEvent.value, eventTime, this._currenTime) : automationEvent;\n if (_index === -1) {\n this._automationEvents.push(persistentAutomationEvent);\n } else {\n if (isSetValueCurveAutomationEvent(automationEvent) && eventTime + automationEvent.duration > getEventTime(this._automationEvents[_index])) {\n return false;\n }\n this._automationEvents.splice(_index, 0, persistentAutomationEvent);\n }\n }\n return true;\n }\n }, {\n key: \"flush\",\n value: function flush(time) {\n var index = this._automationEvents.findIndex(function (currentAutomationEvent) {\n return getEventTime(currentAutomationEvent) > time;\n });\n if (index > 1) {\n var remainingAutomationEvents = this._automationEvents.slice(index - 1);\n var firstRemainingAutomationEvent = remainingAutomationEvents[0];\n if (isSetTargetAutomationEvent(firstRemainingAutomationEvent)) {\n remainingAutomationEvents.unshift(createSetValueAutomationEvent(getValueOfAutomationEventAtIndexAtTime(this._automationEvents, index - 2, firstRemainingAutomationEvent.startTime, this._defaultValue), firstRemainingAutomationEvent.startTime));\n }\n this._automationEvents = remainingAutomationEvents;\n }\n }\n }, {\n key: \"getValue\",\n value: function getValue(time) {\n if (this._automationEvents.length === 0) {\n return this._defaultValue;\n }\n var indexOfNextEvent = this._automationEvents.findIndex(function (automationEvent) {\n return getEventTime(automationEvent) > time;\n });\n var nextAutomationEvent = this._automationEvents[indexOfNextEvent];\n var indexOfCurrentEvent = (indexOfNextEvent === -1 ? this._automationEvents.length : indexOfNextEvent) - 1;\n var currentAutomationEvent = this._automationEvents[indexOfCurrentEvent];\n if (currentAutomationEvent !== undefined && isSetTargetAutomationEvent(currentAutomationEvent) && (nextAutomationEvent === undefined || !isAnyRampToValueAutomationEvent(nextAutomationEvent) || nextAutomationEvent.insertTime > time)) {\n return getTargetValueAtTime(time, getValueOfAutomationEventAtIndexAtTime(this._automationEvents, indexOfCurrentEvent - 1, currentAutomationEvent.startTime, this._defaultValue), currentAutomationEvent);\n }\n if (currentAutomationEvent !== undefined && isSetValueAutomationEvent(currentAutomationEvent) && (nextAutomationEvent === undefined || !isAnyRampToValueAutomationEvent(nextAutomationEvent))) {\n return currentAutomationEvent.value;\n }\n if (currentAutomationEvent !== undefined && isSetValueCurveAutomationEvent(currentAutomationEvent) && (nextAutomationEvent === undefined || !isAnyRampToValueAutomationEvent(nextAutomationEvent) || currentAutomationEvent.startTime + currentAutomationEvent.duration > time)) {\n if (time < currentAutomationEvent.startTime + currentAutomationEvent.duration) {\n return getValueCurveValueAtTime(time, currentAutomationEvent);\n }\n return currentAutomationEvent.values[currentAutomationEvent.values.length - 1];\n }\n if (currentAutomationEvent !== undefined && isAnyRampToValueAutomationEvent(currentAutomationEvent) && (nextAutomationEvent === undefined || !isAnyRampToValueAutomationEvent(nextAutomationEvent))) {\n return currentAutomationEvent.value;\n }\n if (nextAutomationEvent !== undefined && isExponentialRampToValueAutomationEvent(nextAutomationEvent)) {\n var _getEndTimeAndValueOf = getEndTimeAndValueOfPreviousAutomationEvent(this._automationEvents, indexOfCurrentEvent, currentAutomationEvent, nextAutomationEvent, this._defaultValue),\n _getEndTimeAndValueOf2 = _slicedToArray(_getEndTimeAndValueOf, 2),\n startTime = _getEndTimeAndValueOf2[0],\n value = _getEndTimeAndValueOf2[1];\n return getExponentialRampValueAtTime(time, startTime, value, nextAutomationEvent);\n }\n if (nextAutomationEvent !== undefined && isLinearRampToValueAutomationEvent(nextAutomationEvent)) {\n var _getEndTimeAndValueOf3 = getEndTimeAndValueOfPreviousAutomationEvent(this._automationEvents, indexOfCurrentEvent, currentAutomationEvent, nextAutomationEvent, this._defaultValue),\n _getEndTimeAndValueOf4 = _slicedToArray(_getEndTimeAndValueOf3, 2),\n _startTime = _getEndTimeAndValueOf4[0],\n _value = _getEndTimeAndValueOf4[1];\n return getLinearRampValueAtTime(time, _startTime, _value, nextAutomationEvent);\n }\n return this._defaultValue;\n }\n }]);\n return AutomationEventList;\n }(Symbol.iterator);\n\n var createCancelAndHoldAutomationEvent = function createCancelAndHoldAutomationEvent(cancelTime) {\n return {\n cancelTime: cancelTime,\n type: 'cancelAndHold'\n };\n };\n\n var createCancelScheduledValuesAutomationEvent = function createCancelScheduledValuesAutomationEvent(cancelTime) {\n return {\n cancelTime: cancelTime,\n type: 'cancelScheduledValues'\n };\n };\n\n var createExponentialRampToValueAutomationEvent = function createExponentialRampToValueAutomationEvent(value, endTime) {\n return {\n endTime: endTime,\n type: 'exponentialRampToValue',\n value: value\n };\n };\n\n var createLinearRampToValueAutomationEvent = function createLinearRampToValueAutomationEvent(value, endTime) {\n return {\n endTime: endTime,\n type: 'linearRampToValue',\n value: value\n };\n };\n\n var createSetTargetAutomationEvent = function createSetTargetAutomationEvent(target, startTime, timeConstant) {\n return {\n startTime: startTime,\n target: target,\n timeConstant: timeConstant,\n type: 'setTarget'\n };\n };\n\n exports.AutomationEventList = AutomationEventList;\n exports.createCancelAndHoldAutomationEvent = createCancelAndHoldAutomationEvent;\n exports.createCancelScheduledValuesAutomationEvent = createCancelScheduledValuesAutomationEvent;\n exports.createExponentialRampToValueAutomationEvent = createExponentialRampToValueAutomationEvent;\n exports.createLinearRampToValueAutomationEvent = createLinearRampToValueAutomationEvent;\n exports.createSetTargetAutomationEvent = createSetTargetAutomationEvent;\n exports.createSetValueAutomationEvent = createSetValueAutomationEvent;\n exports.createSetValueCurveAutomationEvent = createSetValueCurveAutomationEvent;\n\n}));\n","/* eslint-env browser */\nmodule.exports = typeof self == 'object' ? self.FormData : window.FormData;\n","export const PORT_MAP: WeakMap = new WeakMap();\n","import { generateUniqueNumber } from 'fast-unique-numbers';\nimport { IWorkerDefinition, IWorkerErrorMessage, IWorkerResultMessage } from 'worker-factory';\nimport { isMessagePort } from './guards/message-port';\nimport { extendBrokerImplementation } from './helpers/extend-broker-implementation';\nimport { IBrokerDefinition, IDefaultBrokerDefinition, IWorkerEvent } from './interfaces';\nimport { TBrokerImplementation } from './types';\n\n/*\n * @todo Explicitly referencing the barrel file seems to be necessary when enabling the\n * isolatedModules compiler option.\n */\nexport * from './interfaces/index';\nexport * from './types/index';\n\nconst ONGOING_REQUESTS = new WeakMap>();\n\nconst createOrGetOngoingRequests = (sender: MessagePort | Worker): Map => {\n if (ONGOING_REQUESTS.has(sender)) {\n // @todo TypeScript needs to be convinced that has() works as expected.\n return >ONGOING_REQUESTS.get(sender);\n }\n\n const ongoingRequests: Map = new Map();\n\n ONGOING_REQUESTS.set(sender, ongoingRequests);\n\n return ongoingRequests;\n};\n\nexport const createBroker = (\n brokerImplementation: TBrokerImplementation\n): ((sender: MessagePort | Worker) => T & IDefaultBrokerDefinition) => {\n const fullBrokerImplementation = extendBrokerImplementation(brokerImplementation);\n\n return (sender: MessagePort | Worker) => {\n const ongoingRequests = createOrGetOngoingRequests(sender);\n\n sender.addEventListener('message', (({ data: message }: IWorkerEvent) => {\n const { id } = message;\n\n if (id !== null && ongoingRequests.has(id)) {\n const { reject, resolve } = <{ reject: Function; resolve: Function }>ongoingRequests.get(id);\n\n ongoingRequests.delete(id);\n\n if ((message).error === undefined) {\n resolve((message).result);\n } else {\n reject(new Error((message).error.message));\n }\n }\n }));\n\n if (isMessagePort(sender)) {\n sender.start();\n }\n\n const call = (method: V, params: U[V]['params'] = null, transferables: U[V]['transferables'] = []) => {\n return new Promise((resolve, reject) => {\n const id = generateUniqueNumber(ongoingRequests);\n\n ongoingRequests.set(id, { reject, resolve });\n\n if (params === null) {\n sender.postMessage({ id, method }, transferables);\n } else {\n sender.postMessage({ id, method, params }, transferables);\n }\n });\n };\n const notify = (method: V, params: U[V]['params'], transferables: U[V]['transferables'] = []) => {\n sender.postMessage({ id: null, method, params }, transferables);\n };\n\n let functions: object = {};\n\n for (const [key, handler] of Object.entries(fullBrokerImplementation)) {\n functions = { ...functions, [key]: handler({ call, notify }) };\n }\n\n return { ...functions };\n };\n};\n","import { IWorkerDefinition } from 'worker-factory';\nimport { IBrokerDefinition, IDefaultBrokerDefinition } from '../interfaces';\nimport { TBrokerImplementation } from '../types';\nimport { PORT_MAP } from './port-map';\n\nexport const extendBrokerImplementation = (\n partialBrokerImplementation: TBrokerImplementation\n): TBrokerImplementation =>\n >{\n ...partialBrokerImplementation,\n connect: ({ call }) => {\n return async (): Promise => {\n const { port1, port2 } = new MessageChannel();\n\n const portId = await call('connect', { port: port1 }, [port1]);\n\n PORT_MAP.set(port2, portId);\n\n return port2;\n };\n },\n disconnect: ({ call }) => {\n return async (port: MessagePort): Promise => {\n const portId = PORT_MAP.get(port);\n\n if (portId === undefined) {\n throw new Error('The given port is not connected.');\n }\n\n await call('disconnect', { portId });\n };\n },\n isSupported: ({ call }) => {\n return () => call('isSupported');\n }\n };\n","export const isMessagePort = (sender: MessagePort | Worker): sender is MessagePort => {\n return typeof (sender).start === 'function';\n};\n","/*!\n\tCopyright (c) 2018 Jed Watson.\n\tLicensed under the MIT License (MIT), see\n\thttp://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\tvar nativeCodeString = '[native code]';\n\n\tfunction classNames() {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg)) {\n\t\t\t\tif (arg.length) {\n\t\t\t\t\tvar inner = classNames.apply(null, arg);\n\t\t\t\t\tif (inner) {\n\t\t\t\t\t\tclasses.push(inner);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tif (arg.toString !== Object.prototype.toString && !arg.toString.toString().includes('[native code]')) {\n\t\t\t\t\tclasses.push(arg.toString());\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tfor (var key in arg) {\n\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@babel/runtime/helpers/toConsumableArray'), require('dashify'), require('indefinite-article')) :\n typeof define === 'function' && define.amd ? define(['exports', '@babel/runtime/helpers/toConsumableArray', 'dashify', 'indefinite-article'], factory) :\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.compilerr = {}, global._toConsumableArray, global.dashify, global.indefiniteArticle));\n})(this, (function (exports, _toConsumableArray, dashify, indefiniteArticle) { 'use strict';\n\n var applyModifiers = function applyModifiers(name, modifiers) {\n if (modifiers === undefined) {\n return name;\n }\n return modifiers.reduce(function (modifiedName, modifier) {\n if (modifier === 'capitalize') {\n var head = modifiedName.charAt(0).toUpperCase();\n var tail = modifiedName.slice(1);\n return \"\".concat(head).concat(tail);\n }\n if (modifier === 'dashify') {\n return dashify(modifiedName);\n }\n if (modifier === 'prependIndefiniteArticle') {\n return \"\".concat(indefiniteArticle(modifiedName), \" \").concat(modifiedName);\n }\n return modifiedName;\n }, name);\n };\n var buildRegex = function buildRegex(variable) {\n var expression = variable.name + variable.modifiers.map(function (modifier) {\n return \"\\\\.\".concat(modifier, \"\\\\(\\\\)\");\n }).join('');\n return new RegExp(\"\\\\$\\\\{\".concat(expression, \"}\"), 'g');\n };\n var preRenderString = function preRenderString(string, parameters) {\n var expressionRegex = /\\${([^.}]+)((\\.[^(]+\\(\\))*)}/g;\n var variables = [];\n var expressionResult = expressionRegex.exec(string);\n while (expressionResult !== null) {\n var variable = {\n modifiers: [],\n name: expressionResult[1]\n };\n if (expressionResult[3] !== undefined) {\n var modifiersRegex = /\\.[^(]+\\(\\)/g;\n var modifiersRegexResult = modifiersRegex.exec(expressionResult[2]);\n while (modifiersRegexResult !== null) {\n variable.modifiers.push(modifiersRegexResult[0].slice(1, -2));\n modifiersRegexResult = modifiersRegex.exec(expressionResult[2]);\n }\n }\n variables.push(variable);\n expressionResult = expressionRegex.exec(string);\n }\n var preRenderedParts = variables.reduce(function (parts, variable) {\n return parts.map(function (part) {\n if (typeof part === 'string') {\n return part.split(buildRegex(variable)).reduce(function (prts, prt, index) {\n if (index === 0) {\n return [prt];\n }\n if (variable.name in parameters) {\n return [].concat(_toConsumableArray(prts), [applyModifiers(parameters[variable.name], variable.modifiers), prt]);\n }\n return [].concat(_toConsumableArray(prts), [function (prmtrs) {\n return applyModifiers(prmtrs[variable.name], variable.modifiers);\n }, prt]);\n }, []);\n }\n return [part];\n }).reduce(function (prts, part) {\n return [].concat(_toConsumableArray(prts), _toConsumableArray(part));\n }, []);\n }, [string]);\n return function (missingParameters) {\n return preRenderedParts.reduce(function (renderedParts, preRenderedPart) {\n if (typeof preRenderedPart === 'string') {\n return [].concat(_toConsumableArray(renderedParts), [preRenderedPart]);\n }\n return [].concat(_toConsumableArray(renderedParts), [preRenderedPart(missingParameters)]);\n }, []).join('');\n };\n };\n var compile = function compile(template) {\n var knownParameters = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var renderCode = template.code === undefined ? undefined : preRenderString(template.code, knownParameters);\n var renderMessage = template.message === undefined ? undefined : preRenderString(template.message, knownParameters);\n function render() {\n var causeOrMissingParameters = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var optionalCause = arguments.length > 1 ? arguments[1] : undefined;\n var hasNoOptionalCause = optionalCause === undefined && (causeOrMissingParameters instanceof Error || causeOrMissingParameters.code !== undefined && causeOrMissingParameters.code.slice(-9) === 'Exception');\n var _ref = hasNoOptionalCause ? {\n cause: causeOrMissingParameters,\n missingParameters: {}\n } : {\n cause: optionalCause,\n missingParameters: causeOrMissingParameters\n },\n cause = _ref.cause,\n missingParameters = _ref.missingParameters;\n var err = renderMessage === undefined ? new Error() : new Error(renderMessage(missingParameters));\n if (cause !== null) {\n err.cause = cause;\n }\n if (renderCode !== undefined) {\n err.code = renderCode(missingParameters);\n }\n if (template.status !== undefined) {\n err.status = template.status;\n }\n return err;\n }\n return render;\n };\n\n exports.compile = compile;\n\n}));\n","/*!\n * dashify \n *\n * Copyright (c) 2015-2017, Jon Schlinkert.\n * Released under the MIT License.\n */\n\n'use strict';\n\nmodule.exports = (str, options) => {\n if (typeof str !== 'string') throw new TypeError('expected a string');\n return str.trim()\n .replace(/([a-z])([A-Z])/g, '$1-$2')\n .replace(/\\W/g, m => /[À-ž]/.test(m) ? m : '-')\n .replace(/^-+|-+$/g, '')\n .replace(/-{2,}/g, m => options && options.condense ? '-' : m)\n .toLowerCase();\n};\n","import { createBroker } from 'broker-factory';\nimport { TExtendableMediaRecorderWavEncoderWorkerDefinition } from 'extendable-media-recorder-wav-encoder-worker';\nimport { IExtendableMediaRecorderWavEncoderBrokerDefinition } from './interfaces';\nimport { TExtendableMediaRecorderWavEncoderBrokerLoader, TExtendableMediaRecorderWavEncoderBrokerWrapper } from './types';\n\n/*\n * @todo Explicitly referencing the barrel file seems to be necessary when enabling the\n * isolatedModules compiler option.\n */\nexport * from './interfaces/index';\nexport * from './types/index';\n\nexport const wrap: TExtendableMediaRecorderWavEncoderBrokerWrapper = createBroker<\n IExtendableMediaRecorderWavEncoderBrokerDefinition,\n TExtendableMediaRecorderWavEncoderWorkerDefinition\n>({\n characterize: ({ call }) => {\n return () => call('characterize');\n },\n encode: ({ call }) => {\n return (recordingId, timeslice) => {\n return call('encode', { recordingId, timeslice });\n };\n },\n record: ({ call }) => {\n return async (recordingId, sampleRate, typedArrays) => {\n await call(\n 'record',\n { recordingId, sampleRate, typedArrays },\n typedArrays.map(({ buffer }) => buffer)\n );\n };\n }\n});\n\nexport const load: TExtendableMediaRecorderWavEncoderBrokerLoader = (url: string) => {\n const worker = new Worker(url);\n\n return wrap(worker);\n};\n","import { load } from 'extendable-media-recorder-wav-encoder-broker';\nimport { worker } from './worker/worker';\n\nconst blob: Blob = new Blob([worker], { type: 'application/javascript; charset=utf-8' });\n\nconst url: string = URL.createObjectURL(blob);\n\nconst extendableMediaRecorderWavEncoder = load(url);\n\nexport const characterize = extendableMediaRecorderWavEncoder.characterize;\n\nexport const connect = extendableMediaRecorderWavEncoder.connect;\n\nexport const disconnect = extendableMediaRecorderWavEncoder.disconnect;\n\nexport const encode = extendableMediaRecorderWavEncoder.encode;\n\nexport const isSupported = extendableMediaRecorderWavEncoder.isSupported;\n\nexport const record = extendableMediaRecorderWavEncoder.record;\n\nURL.revokeObjectURL(url);\n","// This is the minified and stringified code of the extendable-media-recorder-wav-encoder-worker package.\nexport const worker = `(()=>{var e={775:function(e,t,r){!function(e,t,r,n){\"use strict\";var o=function(e,t){return void 0===t?e:t.reduce((function(e,t){if(\"capitalize\"===t){var o=e.charAt(0).toUpperCase(),s=e.slice(1);return\"\".concat(o).concat(s)}return\"dashify\"===t?r(e):\"prependIndefiniteArticle\"===t?\"\".concat(n(e),\" \").concat(e):e}),e)},s=function(e){var t=e.name+e.modifiers.map((function(e){return\"\\\\\\\\.\".concat(e,\"\\\\\\\\(\\\\\\\\)\")})).join(\"\");return new RegExp(\"\\\\\\\\$\\\\\\\\{\".concat(t,\"}\"),\"g\")},a=function(e,r){for(var n=/\\\\\\${([^.}]+)((\\\\.[^(]+\\\\(\\\\))*)}/g,a=[],i=n.exec(e);null!==i;){var u={modifiers:[],name:i[1]};if(void 0!==i[3])for(var c=/\\\\.[^(]+\\\\(\\\\)/g,l=c.exec(i[2]);null!==l;)u.modifiers.push(l[0].slice(1,-2)),l=c.exec(i[2]);a.push(u),i=n.exec(e)}var d=a.reduce((function(e,n){return e.map((function(e){return\"string\"==typeof e?e.split(s(n)).reduce((function(e,s,a){return 0===a?[s]:n.name in r?[].concat(t(e),[o(r[n.name],n.modifiers),s]):[].concat(t(e),[function(e){return o(e[n.name],n.modifiers)},s])}),[]):[e]})).reduce((function(e,r){return[].concat(t(e),t(r))}),[])}),[e]);return function(e){return d.reduce((function(r,n){return[].concat(t(r),\"string\"==typeof n?[n]:[n(e)])}),[]).join(\"\")}},i=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=void 0===e.code?void 0:a(e.code,t),n=void 0===e.message?void 0:a(e.message,t);function o(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},o=arguments.length>1?arguments[1]:void 0,s=void 0===o&&(t instanceof Error||void 0!==t.code&&\"Exception\"===t.code.slice(-9))?{cause:t,missingParameters:{}}:{cause:o,missingParameters:t},a=s.cause,i=s.missingParameters,u=void 0===n?new Error:new Error(n(i));return null!==a&&(u.cause=a),void 0!==r&&(u.code=r(i)),void 0!==e.status&&(u.status=e.status),u}return o};e.compile=i}(t,r(106),r(881),r(507))},881:e=>{\"use strict\";e.exports=(e,t)=>{if(\"string\"!=typeof e)throw new TypeError(\"expected a string\");return e.trim().replace(/([a-z])([A-Z])/g,\"$1-$2\").replace(/\\\\W/g,(e=>/[À-ž]/.test(e)?e:\"-\")).replace(/^-+|-+$/g,\"\").replace(/-{2,}/g,(e=>t&&t.condense?\"-\":e)).toLowerCase()}},107:function(e,t){!function(e){\"use strict\";var t=function(e){return function(t){var r=e(t);return t.add(r),r}},r=function(e){return function(t,r){return e.set(t,r),r}},n=void 0===Number.MAX_SAFE_INTEGER?9007199254740991:Number.MAX_SAFE_INTEGER,o=536870912,s=2*o,a=function(e,t){return function(r){var a=t.get(r),i=void 0===a?r.size:an)throw new Error(\"Congratulations, you created a collection of unique numbers which uses all available integers!\");for(;r.has(i);)i=Math.floor(Math.random()*n);return e(r,i)}},i=new WeakMap,u=r(i),c=a(u,i),l=t(c);e.addUniqueNumber=l,e.generateUniqueNumber=c}(t)},507:e=>{var t=function(e){var t,r,n=/\\\\w+/.exec(e);if(!n)return\"an\";var o=(r=n[0]).toLowerCase(),s=[\"honest\",\"hour\",\"hono\"];for(t in s)if(0==o.indexOf(s[t]))return\"an\";if(1==o.length)return\"aedhilmnorsx\".indexOf(o)>=0?\"an\":\"a\";if(r.match(/(?!FJO|[HLMNS]Y.|RY[EO]|SQU|(F[LR]?|[HL]|MN?|N|RH?|S[CHKLMNPTVW]?|X(YL)?)[AEIOU])[FHLMNRSX][A-Z]/))return\"an\";var a=[/^e[uw]/,/^onc?e\\\\b/,/^uni([^nmd]|mo)/,/^u[bcfhjkqrst][aeiou]/];for(t=0;t=0?\"an\":\"a\":\"aeiou\".indexOf(o[0])>=0||o.match(/^y(b[lor]|cl[ea]|fere|gg|p[ios]|rou|tt)/)?\"an\":\"a\"};void 0!==e.exports?e.exports=t:window.indefiniteArticle=t},768:e=>{e.exports=function(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r{var n=r(768);e.exports=function(e){if(Array.isArray(e))return n(e)},e.exports.__esModule=!0,e.exports.default=e.exports},642:e=>{e.exports=function(e){if(\"undefined\"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e[\"@@iterator\"])return Array.from(e)},e.exports.__esModule=!0,e.exports.default=e.exports},344:e=>{e.exports=function(){throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")},e.exports.__esModule=!0,e.exports.default=e.exports},106:(e,t,r)=>{var n=r(907),o=r(642),s=r(906),a=r(344);e.exports=function(e){return n(e)||o(e)||s(e)||a()},e.exports.__esModule=!0,e.exports.default=e.exports},906:(e,t,r)=>{var n=r(768);e.exports=function(e,t){if(e){if(\"string\"==typeof e)return n(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);return\"Object\"===r&&e.constructor&&(r=e.constructor.name),\"Map\"===r||\"Set\"===r?Array.from(e):\"Arguments\"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?n(e,t):void 0}},e.exports.__esModule=!0,e.exports.default=e.exports}},t={};function r(n){var o=t[n];if(void 0!==o)return o.exports;var s=t[n]={exports:{}};return e[n].call(s.exports,s,s.exports,r),s.exports}(()=>{\"use strict\";var e=r(775);const t=-32603,n=-32602,o=-32601,s=(0,e.compile)({message:'The requested method called \"\\${method}\" is not supported.',status:o}),a=(0,e.compile)({message:'The handler of the method called \"\\${method}\" returned no required result.',status:t}),i=(0,e.compile)({message:'The handler of the method called \"\\${method}\" returned an unexpected result.',status:t}),u=(0,e.compile)({message:'The specified parameter called \"portId\" with the given value \"\\${portId}\" does not identify a port connected to this worker.',status:n}),c=(e,t)=>async r=>{let{data:{id:n,method:o,params:u}}=r;const c=t[o];try{if(void 0===c)throw s({method:o});const t=void 0===u?c():c(u);if(void 0===t)throw a({method:o});const r=t instanceof Promise?await t:t;if(null===n){if(void 0!==r.result)throw i({method:o})}else{if(void 0===r.result)throw i({method:o});const{result:t,transferables:s=[]}=r;e.postMessage({id:n,result:t},s)}}catch(t){const{message:r,status:o=-32603}=t;e.postMessage({error:{code:o,message:r},id:n})}};var l=r(107);const d=new Map,f=(e,t,r)=>({...t,connect:r=>{let{port:n}=r;n.start();const o=e(n,t),s=(0,l.generateUniqueNumber)(d);return d.set(s,(()=>{o(),n.close(),d.delete(s)})),{result:s}},disconnect:e=>{let{portId:t}=e;const r=d.get(t);if(void 0===r)throw u({portId:t.toString()});return r(),{result:null}},isSupported:async()=>{if(await new Promise((e=>{const t=new ArrayBuffer(0),{port1:r,port2:n}=new MessageChannel;r.onmessage=t=>{let{data:r}=t;return e(null!==r)},n.postMessage(t,[t])}))){const e=r();return{result:e instanceof Promise?await e:e}}return{result:!1}}}),p=function(e,t){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:()=>!0;const n=f(p,t,r),o=c(e,n);return e.addEventListener(\"message\",o),()=>e.removeEventListener(\"message\",o)},m=e=>e.reduce(((e,t)=>e+t.length),0),h=(e,t)=>{const r=[];let n=0;e:for(;nt){const o=n-t;r.forEach(((t,r)=>{const n=t.pop(),s=n.length-o;t.push(n.subarray(0,s)),e[r].unshift(n.subarray(s))}))}return r},v=new Map,g=(e=>(t,r,n)=>{const o=e.get(t);if(void 0===o){const o={channelDataArrays:n.map((e=>[e])),isComplete:!0,sampleRate:r};return e.set(t,o),o}return o.channelDataArrays.forEach(((e,t)=>e.push(n[t]))),o})(v),x=((e,t)=>(r,n,o,s)=>{const a=o>>3,i=\"subsequent\"===n?0:44,u=r.length,c=e(r[0]),l=new ArrayBuffer(c*u*a+i),d=new DataView(l);return\"subsequent\"!==n&&t(d,o,u,\"complete\"===n?c:Number.POSITIVE_INFINITY,s),r.forEach(((e,t)=>{let r=i+t*a;e.forEach((e=>{const t=e.length;for(let n=0;n{const s=t>>3,a=Math.min(n*r*s,4294967251);e.setUint32(0,1380533830),e.setUint32(4,a+36,!0),e.setUint32(8,1463899717),e.setUint32(12,1718449184),e.setUint32(16,16,!0),e.setUint16(20,1,!0),e.setUint16(22,r,!0),e.setUint32(24,o,!0),e.setUint32(28,o*r*s,!0),e.setUint16(32,r*s,!0),e.setUint16(34,t,!0),e.setUint32(36,1684108385),e.setUint32(40,a,!0)})),w=new Map;p(self,{characterize:()=>({result:/^audio\\\\/wav$/}),encode:e=>{let{recordingId:t,timeslice:r}=e;const n=w.get(t);void 0!==n&&(w.delete(t),n.reject(new Error(\"Another request was made to initiate an encoding.\")));const o=v.get(t);if(null!==r){if(void 0===o||m(o.channelDataArrays[0])*(1e3/o.sampleRate){w.set(t,{reject:n,resolve:e,timeslice:r})}));const e=h(o.channelDataArrays,Math.ceil(r*(o.sampleRate/1e3))),n=x(e,o.isComplete?\"initial\":\"subsequent\",16,o.sampleRate);return o.isComplete=!1,{result:n,transferables:n}}if(void 0!==o){const e=x(o.channelDataArrays,o.isComplete?\"complete\":\"subsequent\",16,o.sampleRate);return v.delete(t),{result:e,transferables:e}}return{result:[],transferables:[]}},record:e=>{let{recordingId:t,sampleRate:r,typedArrays:n}=e;const o=g(t,r,n),s=w.get(t);if(void 0!==s&&m(o.channelDataArrays[0])*(1e3/r)>=s.timeslice){const e=h(o.channelDataArrays,Math.ceil(s.timeslice*(r/1e3))),n=x(e,o.isComplete?\"initial\":\"subsequent\",16,r);o.isComplete=!1,w.delete(t),s.resolve({result:n,transferables:n})}return{result:null}}})})()})();`; // tslint:disable-line:max-line-length\n","import { createBroker } from 'broker-factory';\nimport { addUniqueNumber } from 'fast-unique-numbers';\nimport { TMediaEncoderHostWorkerDefinition } from 'media-encoder-host-worker';\nimport { IMediaEncoderHostBrokerDefinition } from './interfaces';\nimport { TMediaEncoderHostBrokerLoader, TMediaEncoderHostBrokerWrapper } from './types';\n\n/*\n * @todo Explicitly referencing the barrel file seems to be necessary when enabling the\n * isolatedModules compiler option.\n */\nexport * from './interfaces/index';\nexport * from './types/index';\n\nconst encoderIds: Set = new Set();\n\nexport const wrap: TMediaEncoderHostBrokerWrapper = createBroker({\n encode: ({ call }) => {\n return async (encoderId, timeslice) => {\n const arrayBuffers = await call('encode', { encoderId, timeslice });\n\n encoderIds.delete(encoderId);\n\n return arrayBuffers;\n };\n },\n instantiate: ({ call }) => {\n return async (mimeType, sampleRate) => {\n const encoderId = addUniqueNumber(encoderIds);\n const port = await call('instantiate', { encoderId, mimeType, sampleRate });\n\n return { encoderId, port };\n };\n },\n register: ({ call }) => {\n return (port) => {\n return call('register', { port }, [port]);\n };\n }\n});\n\nexport const load: TMediaEncoderHostBrokerLoader = (url: string) => {\n const worker = new Worker(url);\n\n return wrap(worker);\n};\n","import { load as loadWorker } from 'media-encoder-host-broker';\nimport { worker } from './worker/worker';\n\nconst blob: Blob = new Blob([worker], { type: 'application/javascript; charset=utf-8' });\n\nconst url: string = URL.createObjectURL(blob);\n\nconst mediaEncoderHost = loadWorker(url);\n\nexport const connect = mediaEncoderHost.connect;\n\nexport const disconnect = mediaEncoderHost.disconnect;\n\nexport const encode = mediaEncoderHost.encode;\n\nexport const instantiate = mediaEncoderHost.instantiate;\n\nexport const isSupported = mediaEncoderHost.isSupported;\n\nexport const register = mediaEncoderHost.register;\n\nURL.revokeObjectURL(url);\n","// This is the minified and stringified code of the media-encoder-host-worker package.\nexport const worker = `(()=>{var e={775:function(e,t,r){!function(e,t,r,n){\"use strict\";var o=function(e,t){return void 0===t?e:t.reduce((function(e,t){if(\"capitalize\"===t){var o=e.charAt(0).toUpperCase(),s=e.slice(1);return\"\".concat(o).concat(s)}return\"dashify\"===t?r(e):\"prependIndefiniteArticle\"===t?\"\".concat(n(e),\" \").concat(e):e}),e)},s=function(e){var t=e.name+e.modifiers.map((function(e){return\"\\\\\\\\.\".concat(e,\"\\\\\\\\(\\\\\\\\)\")})).join(\"\");return new RegExp(\"\\\\\\\\$\\\\\\\\{\".concat(t,\"}\"),\"g\")},a=function(e,r){for(var n=/\\\\\\${([^.}]+)((\\\\.[^(]+\\\\(\\\\))*)}/g,a=[],i=n.exec(e);null!==i;){var c={modifiers:[],name:i[1]};if(void 0!==i[3])for(var u=/\\\\.[^(]+\\\\(\\\\)/g,l=u.exec(i[2]);null!==l;)c.modifiers.push(l[0].slice(1,-2)),l=u.exec(i[2]);a.push(c),i=n.exec(e)}var d=a.reduce((function(e,n){return e.map((function(e){return\"string\"==typeof e?e.split(s(n)).reduce((function(e,s,a){return 0===a?[s]:n.name in r?[].concat(t(e),[o(r[n.name],n.modifiers),s]):[].concat(t(e),[function(e){return o(e[n.name],n.modifiers)},s])}),[]):[e]})).reduce((function(e,r){return[].concat(t(e),t(r))}),[])}),[e]);return function(e){return d.reduce((function(r,n){return[].concat(t(r),\"string\"==typeof n?[n]:[n(e)])}),[]).join(\"\")}},i=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=void 0===e.code?void 0:a(e.code,t),n=void 0===e.message?void 0:a(e.message,t);function o(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},o=arguments.length>1?arguments[1]:void 0,s=void 0===o&&(t instanceof Error||void 0!==t.code&&\"Exception\"===t.code.slice(-9))?{cause:t,missingParameters:{}}:{cause:o,missingParameters:t},a=s.cause,i=s.missingParameters,c=void 0===n?new Error:new Error(n(i));return null!==a&&(c.cause=a),void 0!==r&&(c.code=r(i)),void 0!==e.status&&(c.status=e.status),c}return o};e.compile=i}(t,r(106),r(881),r(507))},881:e=>{\"use strict\";e.exports=(e,t)=>{if(\"string\"!=typeof e)throw new TypeError(\"expected a string\");return e.trim().replace(/([a-z])([A-Z])/g,\"$1-$2\").replace(/\\\\W/g,(e=>/[À-ž]/.test(e)?e:\"-\")).replace(/^-+|-+$/g,\"\").replace(/-{2,}/g,(e=>t&&t.condense?\"-\":e)).toLowerCase()}},107:function(e,t){!function(e){\"use strict\";var t=function(e){return function(t){var r=e(t);return t.add(r),r}},r=function(e){return function(t,r){return e.set(t,r),r}},n=void 0===Number.MAX_SAFE_INTEGER?9007199254740991:Number.MAX_SAFE_INTEGER,o=536870912,s=2*o,a=function(e,t){return function(r){var a=t.get(r),i=void 0===a?r.size:an)throw new Error(\"Congratulations, you created a collection of unique numbers which uses all available integers!\");for(;r.has(i);)i=Math.floor(Math.random()*n);return e(r,i)}},i=new WeakMap,c=r(i),u=a(c,i),l=t(u);e.addUniqueNumber=l,e.generateUniqueNumber=u}(t)},507:e=>{var t=function(e){var t,r,n=/\\\\w+/.exec(e);if(!n)return\"an\";var o=(r=n[0]).toLowerCase(),s=[\"honest\",\"hour\",\"hono\"];for(t in s)if(0==o.indexOf(s[t]))return\"an\";if(1==o.length)return\"aedhilmnorsx\".indexOf(o)>=0?\"an\":\"a\";if(r.match(/(?!FJO|[HLMNS]Y.|RY[EO]|SQU|(F[LR]?|[HL]|MN?|N|RH?|S[CHKLMNPTVW]?|X(YL)?)[AEIOU])[FHLMNRSX][A-Z]/))return\"an\";var a=[/^e[uw]/,/^onc?e\\\\b/,/^uni([^nmd]|mo)/,/^u[bcfhjkqrst][aeiou]/];for(t=0;t=0?\"an\":\"a\":\"aeiou\".indexOf(o[0])>=0||o.match(/^y(b[lor]|cl[ea]|fere|gg|p[ios]|rou|tt)/)?\"an\":\"a\"};void 0!==e.exports?e.exports=t:window.indefiniteArticle=t},768:e=>{e.exports=function(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r{var n=r(768);e.exports=function(e){if(Array.isArray(e))return n(e)},e.exports.__esModule=!0,e.exports.default=e.exports},642:e=>{e.exports=function(e){if(\"undefined\"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e[\"@@iterator\"])return Array.from(e)},e.exports.__esModule=!0,e.exports.default=e.exports},344:e=>{e.exports=function(){throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")},e.exports.__esModule=!0,e.exports.default=e.exports},106:(e,t,r)=>{var n=r(907),o=r(642),s=r(906),a=r(344);e.exports=function(e){return n(e)||o(e)||s(e)||a()},e.exports.__esModule=!0,e.exports.default=e.exports},906:(e,t,r)=>{var n=r(768);e.exports=function(e,t){if(e){if(\"string\"==typeof e)return n(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);return\"Object\"===r&&e.constructor&&(r=e.constructor.name),\"Map\"===r||\"Set\"===r?Array.from(e):\"Arguments\"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?n(e,t):void 0}},e.exports.__esModule=!0,e.exports.default=e.exports}},t={};function r(n){var o=t[n];if(void 0!==o)return o.exports;var s=t[n]={exports:{}};return e[n].call(s.exports,s,s.exports,r),s.exports}(()=>{\"use strict\";var e=r(775);const t=-32603,n=-32602,o=-32601,s=(0,e.compile)({message:'The requested method called \"\\${method}\" is not supported.',status:o}),a=(0,e.compile)({message:'The handler of the method called \"\\${method}\" returned no required result.',status:t}),i=(0,e.compile)({message:'The handler of the method called \"\\${method}\" returned an unexpected result.',status:t}),c=(0,e.compile)({message:'The specified parameter called \"portId\" with the given value \"\\${portId}\" does not identify a port connected to this worker.',status:n}),u=(e,t)=>async r=>{let{data:{id:n,method:o,params:c}}=r;const u=t[o];try{if(void 0===u)throw s({method:o});const t=void 0===c?u():u(c);if(void 0===t)throw a({method:o});const r=t instanceof Promise?await t:t;if(null===n){if(void 0!==r.result)throw i({method:o})}else{if(void 0===r.result)throw i({method:o});const{result:t,transferables:s=[]}=r;e.postMessage({id:n,result:t},s)}}catch(t){const{message:r,status:o=-32603}=t;e.postMessage({error:{code:o,message:r},id:n})}};var l=r(107);const d=new Map,f=(e,t,r)=>({...t,connect:r=>{let{port:n}=r;n.start();const o=e(n,t),s=(0,l.generateUniqueNumber)(d);return d.set(s,(()=>{o(),n.close(),d.delete(s)})),{result:s}},disconnect:e=>{let{portId:t}=e;const r=d.get(t);if(void 0===r)throw c({portId:t.toString()});return r(),{result:null}},isSupported:async()=>{if(await new Promise((e=>{const t=new ArrayBuffer(0),{port1:r,port2:n}=new MessageChannel;r.onmessage=t=>{let{data:r}=t;return e(null!==r)},n.postMessage(t,[t])}))){const e=r();return{result:e instanceof Promise?await e:e}}return{result:!1}}}),p=function(e,t){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:()=>!0;const n=f(p,t,r),o=u(e,n);return e.addEventListener(\"message\",o),()=>e.removeEventListener(\"message\",o)},m=e=>{e.onmessage=null,e.close()},h=new WeakMap,g=new WeakMap,v=(e=>{const t=(r=e,{...r,connect:e=>{let{call:t}=e;return async()=>{const{port1:e,port2:r}=new MessageChannel,n=await t(\"connect\",{port:e},[e]);return h.set(r,n),r}},disconnect:e=>{let{call:t}=e;return async e=>{const r=h.get(e);if(void 0===r)throw new Error(\"The given port is not connected.\");await t(\"disconnect\",{portId:r})}},isSupported:e=>{let{call:t}=e;return()=>t(\"isSupported\")}});var r;return e=>{const r=(e=>{if(g.has(e))return g.get(e);const t=new Map;return g.set(e,t),t})(e);e.addEventListener(\"message\",(e=>{let{data:t}=e;const{id:n}=t;if(null!==n&&r.has(n)){const{reject:e,resolve:o}=r.get(n);r.delete(n),void 0===t.error?o(t.result):e(new Error(t.error.message))}})),(e=>\"function\"==typeof e.start)(e)&&e.start();const n=function(t){let n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[];return new Promise(((s,a)=>{const i=(0,l.generateUniqueNumber)(r);r.set(i,{reject:a,resolve:s}),null===n?e.postMessage({id:i,method:t},o):e.postMessage({id:i,method:t,params:n},o)}))},o=function(t,r){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[];e.postMessage({id:null,method:t,params:r},n)};let s={};for(const[e,r]of Object.entries(t))s={...s,[e]:r({call:n,notify:o})};return{...s}}})({characterize:e=>{let{call:t}=e;return()=>t(\"characterize\")},encode:e=>{let{call:t}=e;return(e,r)=>t(\"encode\",{recordingId:e,timeslice:r})},record:e=>{let{call:t}=e;return async(e,r,n)=>{await t(\"record\",{recordingId:e,sampleRate:r,typedArrays:n},n.map((e=>{let{buffer:t}=e;return t})))}}}),w=async(e,t)=>{const r=v(t),n=await r.characterize(),o=n.toString();if(e.has(o))throw new Error(\"There is already an encoder stored which handles exactly the same mime types.\");return e.set(o,[n,r]),n},x=new Map,y=(e=>t=>{const r=e.get(t);if(void 0===r)throw new Error(\"There was no instance of an encoder stored with the given id.\");return r})(x),M=((e,t)=>r=>{const n=t(r);return e.delete(r),n})(x,y),E=new Map,b=((e,t)=>r=>{const[n,o,s,a]=t(r);return s?new Promise((t=>{o.onmessage=s=>{let{data:i}=s;0===i.length?(e(o),t(n.encode(r,null))):n.record(r,a,i)}})):n.encode(r,null)})(m,M),A=(e=>t=>{for(const[r,n]of Array.from(e.values()))if(r.test(t))return n;throw new Error(\"There is no encoder registered which could handle the given mimeType.\")})(E),I=((e,t,r)=>(n,o,s)=>{if(t.has(n))throw new Error('There is already an encoder registered with an id called \"'.concat(n,'\".'));const a=r(o),{port1:i,port2:c}=new MessageChannel,u=[a,i,!0,s];return t.set(n,u),i.onmessage=t=>{let{data:r}=t;0===r.length?(e(i),u[2]=!1):a.record(n,s,r)},c})(m,x,A),S=(e=>(t,r)=>{const[n]=e(t);return n.encode(t,r)})(y);p(self,{encode:async e=>{let{encoderId:t,timeslice:r}=e;const n=null===r?await b(t):await S(t,r);return{result:n,transferables:n}},instantiate:e=>{let{encoderId:t,mimeType:r,sampleRate:n}=e;const o=I(t,r,n);return{result:o,transferables:[o]}},register:async e=>{let{port:t}=e;return{result:await w(E,t)}}})})()})();`; // tslint:disable-line:max-line-length\n","import objectWithoutPropertiesLoose from \"./objectWithoutPropertiesLoose.js\";\nexport default function _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n var target = objectWithoutPropertiesLoose(source, excluded);\n var key, i;\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n return target;\n}","export default function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n return target;\n}","import { TInvalidModificationErrorFactory } from '../types';\n\nexport const createInvalidModificationError: TInvalidModificationErrorFactory = (message = '') => {\n try {\n return new DOMException(message, 'InvalidModificationError');\n } catch (err) {\n // @todo Edge is the only browser that does not yet allow to construct a DOMException.\n err.code = 13;\n err.message = message;\n err.name = 'InvalidModificationError';\n\n return err;\n }\n};\n","export default function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return self;\n}","import _typeof from \"./typeof.js\";\nimport assertThisInitialized from \"./assertThisInitialized.js\";\nexport default function _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n } else if (call !== void 0) {\n throw new TypeError(\"Derived constructors may only return object or undefined\");\n }\n return assertThisInitialized(self);\n}","export default function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n return _setPrototypeOf(o, p);\n}","import setPrototypeOf from \"./setPrototypeOf.js\";\nexport default function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n Object.defineProperty(subClass, \"prototype\", {\n writable: false\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}","export default function _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}","import getPrototypeOf from \"./getPrototypeOf.js\";\nimport isNativeReflectConstruct from \"./isNativeReflectConstruct.js\";\nimport possibleConstructorReturn from \"./possibleConstructorReturn.js\";\nexport default function _createSuper(Derived) {\n var hasNativeReflectConstruct = isNativeReflectConstruct();\n return function _createSuperInternal() {\n var Super = getPrototypeOf(Derived),\n result;\n if (hasNativeReflectConstruct) {\n var NewTarget = getPrototypeOf(this).constructor;\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n return possibleConstructorReturn(this, result);\n };\n}","export default function _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}","import { IMediaRecorder, IMediaRecorderEventMap, IMediaRecorderOptions } from '../interfaces';\nimport {\n TBlobEventHandler,\n TErrorEventHandler,\n TEventHandler,\n TMediaRecorderConstructorFactory,\n TNativeEventTarget,\n TRecordingState\n} from '../types';\n\nexport const createMediaRecorderConstructor: TMediaRecorderConstructorFactory = (\n createNativeMediaRecorder,\n createNotSupportedError,\n createWebAudioMediaRecorder,\n createWebmPcmMediaRecorder,\n encoderRegexes,\n eventTargetConstructor,\n nativeMediaRecorderConstructor\n) => {\n return class MediaRecorder extends eventTargetConstructor implements IMediaRecorder {\n private _internalMediaRecorder: Omit<\n IMediaRecorder,\n 'ondataavailable' | 'onerror' | 'onpause' | 'onresume' | 'onstart' | 'onstop' | keyof TNativeEventTarget\n >;\n\n private _ondataavailable: null | [TBlobEventHandler, TBlobEventHandler];\n\n private _onerror: null | [TErrorEventHandler, TErrorEventHandler];\n\n private _onpause: null | [TEventHandler, TEventHandler];\n\n private _onresume: null | [TEventHandler, TEventHandler];\n\n private _onstart: null | [TEventHandler, TEventHandler];\n\n private _onstop: null | [TEventHandler, TEventHandler];\n\n constructor(stream: MediaStream, options: IMediaRecorderOptions = {}) {\n const { mimeType } = options;\n\n if (\n nativeMediaRecorderConstructor !== null &&\n // Bug #10: Safari does not yet implement the isTypeSupported() method.\n (mimeType === undefined ||\n (nativeMediaRecorderConstructor.isTypeSupported !== undefined &&\n nativeMediaRecorderConstructor.isTypeSupported(mimeType)))\n ) {\n const internalMediaRecorder = createNativeMediaRecorder(nativeMediaRecorderConstructor, stream, options);\n\n super(internalMediaRecorder);\n\n this._internalMediaRecorder = internalMediaRecorder;\n } else if (mimeType !== undefined && encoderRegexes.some((regex) => regex.test(mimeType))) {\n super();\n\n // Bug #10: Safari does not yet implement the isTypeSupported() method.\n if (\n nativeMediaRecorderConstructor !== null &&\n nativeMediaRecorderConstructor.isTypeSupported !== undefined &&\n nativeMediaRecorderConstructor.isTypeSupported('audio/webm;codecs=pcm')\n ) {\n this._internalMediaRecorder = createWebmPcmMediaRecorder(this, nativeMediaRecorderConstructor, stream, mimeType);\n } else {\n this._internalMediaRecorder = createWebAudioMediaRecorder(this, stream, mimeType);\n }\n } else {\n // This is creating a native MediaRecorder just to provoke it to throw an error.\n if (nativeMediaRecorderConstructor !== null) {\n createNativeMediaRecorder(nativeMediaRecorderConstructor, stream, options);\n }\n\n throw createNotSupportedError();\n }\n\n this._ondataavailable = null;\n this._onerror = null;\n this._onpause = null;\n this._onresume = null;\n this._onstart = null;\n this._onstop = null;\n }\n\n get mimeType(): string {\n return this._internalMediaRecorder.mimeType;\n }\n\n get ondataavailable(): null | TBlobEventHandler {\n return this._ondataavailable === null ? this._ondataavailable : this._ondataavailable[0];\n }\n\n set ondataavailable(value) {\n if (this._ondataavailable !== null) {\n this.removeEventListener('dataavailable', this._ondataavailable[1]);\n }\n\n if (typeof value === 'function') {\n const boundListener = value.bind(this);\n\n this.addEventListener('dataavailable', boundListener);\n\n this._ondataavailable = [value, boundListener];\n } else {\n this._ondataavailable = null;\n }\n }\n\n get onerror(): null | TErrorEventHandler {\n return this._onerror === null ? this._onerror : this._onerror[0];\n }\n\n set onerror(value) {\n if (this._onerror !== null) {\n this.removeEventListener('error', this._onerror[1]);\n }\n\n if (typeof value === 'function') {\n const boundListener = value.bind(this);\n\n this.addEventListener('error', boundListener);\n\n this._onerror = [value, boundListener];\n } else {\n this._onerror = null;\n }\n }\n\n get onpause(): null | TEventHandler {\n return this._onpause === null ? this._onpause : this._onpause[0];\n }\n\n set onpause(value) {\n if (this._onpause !== null) {\n this.removeEventListener('pause', this._onpause[1]);\n }\n\n if (typeof value === 'function') {\n const boundListener = value.bind(this);\n\n this.addEventListener('pause', boundListener);\n\n this._onpause = [value, boundListener];\n } else {\n this._onpause = null;\n }\n }\n\n get onresume(): null | TEventHandler {\n return this._onresume === null ? this._onresume : this._onresume[0];\n }\n\n set onresume(value) {\n if (this._onresume !== null) {\n this.removeEventListener('resume', this._onresume[1]);\n }\n\n if (typeof value === 'function') {\n const boundListener = value.bind(this);\n\n this.addEventListener('resume', boundListener);\n\n this._onresume = [value, boundListener];\n } else {\n this._onresume = null;\n }\n }\n\n get onstart(): null | TEventHandler {\n return this._onstart === null ? this._onstart : this._onstart[0];\n }\n\n set onstart(value) {\n if (this._onstart !== null) {\n this.removeEventListener('start', this._onstart[1]);\n }\n\n if (typeof value === 'function') {\n const boundListener = value.bind(this);\n\n this.addEventListener('start', boundListener);\n\n this._onstart = [value, boundListener];\n } else {\n this._onstart = null;\n }\n }\n\n get onstop(): null | TEventHandler {\n return this._onstop === null ? this._onstop : this._onstop[0];\n }\n\n set onstop(value) {\n if (this._onstop !== null) {\n this.removeEventListener('stop', this._onstop[1]);\n }\n\n if (typeof value === 'function') {\n const boundListener = value.bind(this);\n\n this.addEventListener('stop', boundListener);\n\n this._onstop = [value, boundListener];\n } else {\n this._onstop = null;\n }\n }\n\n get state(): TRecordingState {\n return this._internalMediaRecorder.state;\n }\n\n public pause(): void {\n return this._internalMediaRecorder.pause();\n }\n\n public resume(): void {\n return this._internalMediaRecorder.resume();\n }\n\n public start(timeslice?: number): void {\n return this._internalMediaRecorder.start(timeslice);\n }\n\n public stop(): void {\n return this._internalMediaRecorder.stop();\n }\n\n public static isTypeSupported(mimeType: string): boolean {\n return (\n (nativeMediaRecorderConstructor !== null &&\n // Bug #10: Safari does not yet implement the isTypeSupported() method.\n nativeMediaRecorderConstructor.isTypeSupported !== undefined &&\n nativeMediaRecorderConstructor.isTypeSupported(mimeType)) ||\n encoderRegexes.some((regex) => regex.test(mimeType))\n );\n }\n };\n};\n","import { TNotSupportedErrorFactory } from '../types';\n\nexport const createNotSupportedError: TNotSupportedErrorFactory = () => {\n try {\n return new DOMException('', 'NotSupportedError');\n } catch (err) {\n // @todo Edge is the only browser that does not yet allow to construct a DOMException.\n err.code = 9;\n err.name = 'NotSupportedError';\n\n return err;\n }\n};\n","/**\n * @license Use of this source code is governed by an MIT-style license that\n * can be found in the LICENSE file at https://github.com/cartant/rxjs-interop\n */\n\ndeclare global {\n interface SymbolConstructor {\n readonly observable: symbol;\n }\n}\n\nexport const observable = Symbol.observable || \"@@observable\";\n","/**\n * @license Use of this source code is governed by an MIT-style license that\n * can be found in the LICENSE file at https://github.com/cartant/rxjs-interop\n */\n\nimport { Observer, PartialObserver } from \"./types\";\n\nconst noop = () => {};\nconst rethrow = (error: unknown) => {\n /* eslint-disable-next-line etc/throw-error */\n throw error;\n};\n\nexport function toObserver(observer?: PartialObserver): Observer {\n if (observer) {\n if (observer.next && observer.error && observer.complete) {\n return observer as Observer;\n }\n return {\n complete: (observer.complete ?? noop).bind(observer),\n error: (observer.error ?? rethrow).bind(observer),\n next: (observer.next ?? noop).bind(observer),\n };\n }\n return {\n complete: noop,\n error: rethrow,\n next: noop,\n };\n}\n","import { TAnimationFrameFactory } from '../types';\n\nexport const createAnimationFrame: TAnimationFrameFactory = (emitNotSupportedError, window, wrapSubscribeFunction) => {\n return () =>\n wrapSubscribeFunction((observer) => {\n if (window === null || window.cancelAnimationFrame === undefined || window.requestAnimationFrame === undefined) {\n return emitNotSupportedError(observer);\n }\n\n let animationFrameHandle = window.requestAnimationFrame(function animationFrameCallback(timestamp): void {\n animationFrameHandle = window.requestAnimationFrame(animationFrameCallback);\n\n observer.next(timestamp);\n });\n\n return () => window.cancelAnimationFrame(animationFrameHandle);\n });\n};\n","import { TEmitNotSupportedErrorFunction } from '../types';\n\nexport const emitNotSupportedError: TEmitNotSupportedErrorFunction = (observer) => {\n observer.error(new Error('The required browser API seems to be not supported.'));\n\n return () => {}; // tslint:disable-line:no-empty\n};\n","import { patch, toObserver } from 'rxjs-interop';\nimport { createAnimationFrame } from './factories/animation-frame';\nimport { createAttribute } from './factories/attribute';\nimport { createGeolocation } from './factories/geolocation';\nimport { createIntersections } from './factories/intersections';\nimport { createMapSubscribableThing } from './factories/map-subscribable-thing';\nimport { createMediaDevices } from './factories/media-devices';\nimport { createMediaQueryMatch } from './factories/media-query-match';\nimport { createMetrics } from './factories/metrics';\nimport { createMidiInputs } from './factories/midi-inputs';\nimport { createMidiOutputs } from './factories/midi-outputs';\nimport { createMutations } from './factories/mutations';\nimport { createOn } from './factories/on';\nimport { createOnline } from './factories/online';\nimport { createPermissionState } from './factories/permission-state';\nimport { createPrependSubscribableThing } from './factories/prepend-subscribable-thing';\nimport { createReports } from './factories/reports';\nimport { createResizes } from './factories/resizes';\nimport { createUnhandledRejection } from './factories/unhandled-rejection';\nimport { createVideoFrame } from './factories/video-frame';\nimport { createWakeLock } from './factories/wake-lock';\nimport { createWindow } from './factories/window';\nimport { createWrapSubscribeFunction } from './factories/wrap-subscribe-function';\nimport { emitNotSupportedError } from './functions/emit-not-supported-error';\n\n/*\n * @todo Explicitly referencing the barrel file seems to be necessary when enabling the\n * isolatedModules compiler option.\n */\nexport * from './interfaces/index';\nexport * from './types/index';\n\nconst window = createWindow();\nconst wrapSubscribeFunction = createWrapSubscribeFunction(patch, toObserver);\n\nexport const animationFrame = createAnimationFrame(emitNotSupportedError, window, wrapSubscribeFunction);\n\nexport const mutations = createMutations(emitNotSupportedError, window, wrapSubscribeFunction);\n\nconst mapSubscribableThing = createMapSubscribableThing(wrapSubscribeFunction);\nconst prependSubscribableThing = createPrependSubscribableThing(wrapSubscribeFunction);\n\nexport const attribute = createAttribute(mapSubscribableThing, mutations, prependSubscribableThing);\n\nexport const geolocation = createGeolocation(emitNotSupportedError, window, wrapSubscribeFunction);\n\nexport const intersections = createIntersections(emitNotSupportedError, window, wrapSubscribeFunction);\n\nexport const mediaDevices = createMediaDevices(emitNotSupportedError, window, wrapSubscribeFunction);\n\nexport const mediaQueryMatch = createMediaQueryMatch(emitNotSupportedError, window, wrapSubscribeFunction);\n\nexport const metrics = createMetrics(emitNotSupportedError, window, wrapSubscribeFunction);\n\nexport const midiInputs = createMidiInputs(wrapSubscribeFunction);\n\nexport const midiOutputs = createMidiOutputs(wrapSubscribeFunction);\n\nexport const on = createOn(wrapSubscribeFunction);\n\nexport const online = createOnline(emitNotSupportedError, window, wrapSubscribeFunction);\n\nexport const permissionState = createPermissionState(emitNotSupportedError, window, wrapSubscribeFunction);\n\nexport const reports = createReports(emitNotSupportedError, window, wrapSubscribeFunction);\n\nexport const resizes = createResizes(emitNotSupportedError, window, wrapSubscribeFunction);\n\nexport const unhandledRejection = createUnhandledRejection(emitNotSupportedError, window, wrapSubscribeFunction);\n\nexport const videoFrame = createVideoFrame(emitNotSupportedError, wrapSubscribeFunction);\n\nexport const wakeLock = createWakeLock(emitNotSupportedError, window, wrapSubscribeFunction);\n","import { TWindow, TWindowFactory } from '../types';\n\n// @todo TypeScript does not include type definitions for the Reporting API yet.\nexport const createWindow: TWindowFactory = () => (typeof window === 'undefined' ? null : window);\n","import { Observer, Subscribable } from 'rxjs-interop';\nimport { TObserverParameters, TSubscribableThing, TSubscribeFunction, TWrapSubscribeFunctionFactory } from '../types';\n\nexport const createWrapSubscribeFunction: TWrapSubscribeFunctionFactory = (patch, toObserver) => {\n const emptyFunction = () => {}; // tslint:disable-line:no-empty\n const isNextFunction = (args: TObserverParameters): args is [Observer['next']] => typeof args[0] === 'function';\n\n return (innerSubscribe: TSubscribeFunction) => {\n const subscribe = >((...args: TObserverParameters) => {\n const unsubscribe = innerSubscribe(isNextFunction(args) ? toObserver({ next: args[0] }) : toObserver(...args));\n\n if (unsubscribe !== undefined) {\n return unsubscribe;\n }\n\n return emptyFunction;\n });\n\n subscribe[Symbol.observable] = () => ({\n subscribe: (...args: Parameters['subscribe']>) => ({ unsubscribe: subscribe(...args) })\n });\n\n return patch(subscribe);\n };\n};\n","/**\n * @license Use of this source code is governed by an MIT-style license that\n * can be found in the LICENSE file at https://github.com/cartant/rxjs-interop\n */\n\nimport { observable } from \"./symbols\";\nimport { InteropObservable } from \"./types\";\n\nexport function patch>(instance: T): T;\nexport function patch InteropObservable>(\n constructor: T\n): T;\nexport function patch(\n arg: InteropObservable | (new (...args: any[]) => InteropObservable)\n): InteropObservable | (new (...args: any[]) => InteropObservable) {\n if (!Symbol.observable) {\n if (\n typeof arg === \"function\" &&\n arg.prototype &&\n arg.prototype[Symbol.observable]\n ) {\n (arg.prototype as any)[observable] = arg.prototype[Symbol.observable];\n delete arg.prototype[Symbol.observable];\n } else {\n (arg as any)[observable] = arg[Symbol.observable];\n delete arg[Symbol.observable];\n }\n }\n return arg;\n}\n","import { TMutationsFactory } from '../types';\n\nexport const createMutations: TMutationsFactory = (emitNotSupportedError, window, wrapSubscribeFunction) => {\n return (htmlElement, options) =>\n wrapSubscribeFunction((observer) => {\n if (window === null || window.MutationObserver === undefined) {\n return emitNotSupportedError(observer);\n }\n\n const mutationObserver = new window.MutationObserver((records) => observer.next(records));\n\n try {\n mutationObserver.observe(htmlElement, options);\n } catch (err) {\n observer.error(err);\n }\n\n return () => mutationObserver.disconnect();\n });\n};\n","import { TSubscribableThing, TWrapSubscribeFunctionFunction } from '../types';\n\nexport const createMapSubscribableThing =\n (wrapSubscribeFunction: TWrapSubscribeFunctionFunction) =>\n (\n subscribableThing: TSubscribableThing,\n map: (value: TValue) => TMappedValue\n ): TSubscribableThing =>\n wrapSubscribeFunction((observer) => subscribableThing({ ...observer, next: (value) => observer.next(map(value)) }));\n","import { TSubscribableThing, TWrapSubscribeFunctionFunction } from '../types';\n\nexport const createPrependSubscribableThing =\n (wrapSubscribeFunction: TWrapSubscribeFunctionFunction) =>\n (\n subscribableThing: TSubscribableThing,\n prependedValue: TPrependedValue\n ): TSubscribableThing =>\n wrapSubscribeFunction((observer) => {\n observer.next(prependedValue);\n\n return subscribableThing(observer);\n });\n","import { TSubscribableThing } from '../types';\nimport type { createMapSubscribableThing } from './map-subscribable-thing';\nimport type { createMutations } from './mutations';\nimport type { createPrependSubscribableThing } from './prepend-subscribable-thing';\n\nexport const createAttribute = (\n mapSubscribableThing: ReturnType,\n mutations: ReturnType,\n prependSubscribableThing: ReturnType\n) => {\n return (htmlElement: HTMLElement, name: string): TSubscribableThing => {\n const getAttribute = () => htmlElement.getAttribute(name);\n\n return prependSubscribableThing(\n mapSubscribableThing(\n mutations(htmlElement, {\n attributeFilter: [name],\n childList: false,\n subtree: false\n }),\n () => getAttribute()\n ),\n getAttribute()\n );\n };\n};\n","import { TEmitNotSupportedErrorFunction, TSubscribableThing, TWindow, TWrapSubscribeFunctionFunction } from '../types';\n\nexport const createGeolocation = (\n emitNotSupportedError: TEmitNotSupportedErrorFunction,\n window: null | TWindow,\n wrapSubscribeFunction: TWrapSubscribeFunctionFunction\n) => {\n return (options?: PositionOptions): TSubscribableThing =>\n wrapSubscribeFunction((observer) => {\n if (\n window === null ||\n window.navigator === undefined ||\n window.navigator.geolocation === undefined ||\n window.navigator.geolocation.clearWatch === undefined ||\n window.navigator.geolocation.watchPosition === undefined\n ) {\n return emitNotSupportedError(observer);\n }\n\n const watchId = window.navigator.geolocation.watchPosition(\n (position) => observer.next(position),\n (err) => observer.error(err),\n options\n );\n\n return () => window.navigator.geolocation.clearWatch(watchId);\n });\n};\n","import { TIntersectionsFactory } from '../types';\n\nexport const createIntersections: TIntersectionsFactory = (emitNotSupportedError, window, wrapSubscribeFunction) => {\n return (htmlElement, options) =>\n wrapSubscribeFunction((observer) => {\n if (window === null || window.IntersectionObserver === undefined) {\n return emitNotSupportedError(observer);\n }\n\n const intersectionObserverObserver = new window.IntersectionObserver((entries) => observer.next(entries), options);\n\n try {\n intersectionObserverObserver.observe(htmlElement);\n } catch (err) {\n observer.error(err);\n }\n\n return () => intersectionObserverObserver.disconnect();\n });\n};\n","import { TMediaDevicesFactory } from '../types';\n\nexport const createMediaDevices: TMediaDevicesFactory = (emitNotSupportedError, window, wrapSubscribeFunction) => {\n return () =>\n wrapSubscribeFunction((observer) => {\n if (\n window === null ||\n window.navigator === undefined ||\n window.navigator.mediaDevices === undefined ||\n window.navigator.mediaDevices.enumerateDevices === undefined\n ) {\n return emitNotSupportedError(observer);\n }\n\n let isActive = true;\n\n const enumerateDevices = () => {\n window.navigator.mediaDevices.enumerateDevices().then(\n (mediaDevices) => {\n if (isActive) {\n observer.next(mediaDevices);\n }\n },\n (err) => {\n if (isActive) {\n unsubscribe();\n\n observer.error(err);\n }\n }\n );\n };\n const unsubscribe = () => {\n isActive = false;\n window.navigator.mediaDevices.removeEventListener('devicechange', enumerateDevices);\n };\n\n enumerateDevices();\n window.navigator.mediaDevices.addEventListener('devicechange', enumerateDevices);\n\n return unsubscribe;\n });\n};\n","import { TMediaQueryMatchFactory } from '../types';\n\nexport const createMediaQueryMatch: TMediaQueryMatchFactory = (emitNotSupportedError, window, wrapSubscribeFunction) => {\n return (mediaQueryString) =>\n wrapSubscribeFunction((observer) => {\n if (window === null || window.matchMedia === undefined) {\n return emitNotSupportedError(observer);\n }\n\n const mediaQueryList = window.matchMedia(mediaQueryString);\n\n observer.next(mediaQueryList.matches);\n\n mediaQueryList.onchange = () => observer.next(mediaQueryList.matches);\n\n return () => {\n mediaQueryList.onchange = null;\n };\n });\n};\n","import { TMetricsFactory } from '../types';\n\nexport const createMetrics: TMetricsFactory = (emitNotSupportedError, window, wrapSubscribeFunction) => {\n return (options) =>\n wrapSubscribeFunction((observer) => {\n if (window === null || window.PerformanceObserver === undefined) {\n return emitNotSupportedError(observer);\n }\n\n const performanceObserver = new window.PerformanceObserver((entryList) => observer.next(entryList.getEntries()));\n\n try {\n performanceObserver.observe(options);\n } catch (err) {\n observer.error(err);\n }\n\n return () => performanceObserver.disconnect();\n });\n};\n","import { TMidiInputsFactory } from '../types';\n\nexport const createMidiInputs: TMidiInputsFactory = (wrapSubscribeFunction) => {\n return (midiAccess) =>\n wrapSubscribeFunction((observer) => {\n let midiInputs = Array.from(midiAccess.inputs.values());\n\n const emitMidiInputs = () => {\n const midiAccessInputs = midiAccess.inputs;\n\n if (midiInputs.length !== midiAccessInputs.size || midiInputs.some(({ id }) => !midiAccessInputs.has(id))) {\n midiInputs = Array.from(midiAccessInputs.values());\n\n observer.next(midiInputs);\n }\n };\n\n observer.next(midiInputs);\n midiAccess.addEventListener('statechange', emitMidiInputs);\n\n return () => midiAccess.removeEventListener('statechange', emitMidiInputs);\n });\n};\n","import { TMidiOutputsFactory } from '../types';\n\nexport const createMidiOutputs: TMidiOutputsFactory = (wrapSubscribeFunction) => {\n return (midiAccess) =>\n wrapSubscribeFunction((observer) => {\n let midiOutputs = Array.from(midiAccess.outputs.values());\n\n const emitMidiOutputs = () => {\n const midiAccessOutputs = midiAccess.outputs;\n\n if (midiOutputs.length !== midiAccessOutputs.size || midiOutputs.some(({ id }) => !midiAccessOutputs.has(id))) {\n midiOutputs = Array.from(midiAccessOutputs.values());\n\n observer.next(midiOutputs);\n }\n };\n\n observer.next(midiOutputs);\n midiAccess.addEventListener('statechange', emitMidiOutputs);\n\n return () => midiAccess.removeEventListener('statechange', emitMidiOutputs);\n });\n};\n","import { TEventHandler, TEventType, TOnFactory } from '../types';\n\nexport const createOn: TOnFactory = (wrapSubscribeFunction) => {\n return (target, type, options) =>\n wrapSubscribeFunction((observer) => {\n const listener: TEventHandler = (event) => observer.next(>event);\n\n target.addEventListener(type, listener, options);\n\n return () => target.removeEventListener(type, listener, options);\n });\n};\n","import { TOnlineFactory } from '../types';\n\nexport const createOnline: TOnlineFactory = (emitNotSupportedError, window, wrapSubscribeFunction) => {\n return () =>\n wrapSubscribeFunction((observer) => {\n if (window === null || window.navigator === undefined || window.navigator.onLine === undefined) {\n return emitNotSupportedError(observer);\n }\n\n const emitFalse = () => observer.next(false);\n const emitTrue = () => observer.next(true);\n\n window.addEventListener('offline', emitFalse);\n window.addEventListener('online', emitTrue);\n\n observer.next(window.navigator.onLine);\n\n return () => {\n window.removeEventListener('offline', emitFalse);\n window.removeEventListener('online', emitTrue);\n };\n });\n};\n","import { TPermissionStateFactory } from '../types';\n\nexport const createPermissionState: TPermissionStateFactory = (emitNotSupportedError, window, wrapSubscribeFunction) => {\n return (permissionDescriptor) =>\n wrapSubscribeFunction((observer) => {\n if (\n window === null ||\n window.navigator === undefined ||\n window.navigator.permissions === undefined ||\n window.navigator.permissions.query === undefined\n ) {\n return emitNotSupportedError(observer);\n }\n\n let isActive = true;\n let unsubscribe = () => {\n isActive = false;\n };\n\n window.navigator.permissions.query(permissionDescriptor).then(\n (permissionStatus) => {\n if (isActive) {\n observer.next(permissionStatus.state);\n }\n\n if (isActive) {\n permissionStatus.onchange = () => observer.next(permissionStatus.state);\n\n unsubscribe = () => {\n permissionStatus.onchange = null;\n };\n }\n },\n (err) => {\n if (isActive) {\n observer.error(err);\n }\n }\n );\n\n return () => unsubscribe();\n });\n};\n","import { TReportsFactory } from '../types';\n\nexport const createReports: TReportsFactory = (emitNotSupportedError, window, wrapSubscribeFunction) => {\n return (options) =>\n wrapSubscribeFunction((observer) => {\n if (window === null || window.ReportingObserver === undefined) {\n return emitNotSupportedError(observer);\n }\n\n const reportingObserver = new window.ReportingObserver((reportList) => observer.next(reportList), options);\n\n reportingObserver.observe();\n\n return () => reportingObserver.disconnect();\n });\n};\n","import { IResizeObserverEntry } from '../interfaces';\nimport { TResizesFactory } from '../types';\n\nexport const createResizes: TResizesFactory = (emitNotSupportedError, window, wrapSubscribeFunction) => {\n return (htmlElement, options) =>\n wrapSubscribeFunction((observer) => {\n if (window === null || window.ResizeObserver === undefined) {\n return emitNotSupportedError(observer);\n }\n\n const resizeObserver = new window.ResizeObserver((entries) => observer.next(entries));\n\n try {\n resizeObserver.observe(htmlElement, options);\n } catch (err) {\n observer.error(err);\n }\n\n return () => resizeObserver.disconnect();\n });\n};\n","import { TUnhandledRejectionFactory } from '../types';\n\nexport const createUnhandledRejection: TUnhandledRejectionFactory = (emitNotSupportedError, window, wrapSubscribeFunction) => {\n return (coolingOffPeriod) =>\n wrapSubscribeFunction((observer) => {\n if (window === null || window.clearInterval === undefined || window.setInterval === undefined) {\n return emitNotSupportedError(observer);\n }\n\n const possiblyUnhandledRejections = new Map, { reason: any; timestamp: number }>();\n\n let intervalId: null | number = null;\n\n const deletePossiblyUnhandledRejection = ({ promise }: PromiseRejectionEvent) => possiblyUnhandledRejections.delete(promise);\n const emitUnhandledRejection = () => {\n const latestTimestampToEmit = Date.now() - coolingOffPeriod;\n\n possiblyUnhandledRejections.forEach(({ reason, timestamp }, promise) => {\n if (timestamp > latestTimestampToEmit) {\n return;\n }\n\n possiblyUnhandledRejections.delete(promise);\n observer.next(reason);\n });\n\n if (intervalId !== null && possiblyUnhandledRejections.size === 0) {\n window.clearInterval(intervalId);\n intervalId = null;\n }\n };\n const registerPossiblyUnhandledRejection = (event: PromiseRejectionEvent) => {\n event.preventDefault();\n\n possiblyUnhandledRejections.set(event.promise, {\n reason: event.reason,\n timestamp: Date.now()\n });\n\n if (intervalId === null) {\n intervalId = window.setInterval(emitUnhandledRejection, coolingOffPeriod / 2);\n }\n };\n\n window.addEventListener('rejectionhandled', deletePossiblyUnhandledRejection);\n window.addEventListener('unhandledrejection', registerPossiblyUnhandledRejection);\n\n return () => {\n if (intervalId !== null) {\n window.clearInterval(intervalId);\n }\n\n window.removeEventListener('rejectionhandled', deletePossiblyUnhandledRejection);\n window.removeEventListener('unhandledrejection', registerPossiblyUnhandledRejection);\n };\n });\n};\n","import { TVideoFrameFactory } from '../types';\n\nexport const createVideoFrame: TVideoFrameFactory = (emitNotSupportedError, wrapSubscribeFunction) => {\n return (videoElement) =>\n wrapSubscribeFunction((observer) => {\n if (videoElement.cancelVideoFrameCallback === undefined || videoElement.requestVideoFrameCallback === undefined) {\n return emitNotSupportedError(observer);\n }\n\n let videoFrameHandle = videoElement.requestVideoFrameCallback(function videoFrameCallback(now, metadata): void {\n videoFrameHandle = videoElement.requestVideoFrameCallback(videoFrameCallback);\n\n observer.next({ ...metadata, now });\n });\n\n return () => videoElement.cancelVideoFrameCallback(videoFrameHandle);\n });\n};\n","import { IWakeLockSentinel } from '../interfaces';\nimport { TWakeLockFactory } from '../types';\n\nexport const createWakeLock: TWakeLockFactory = (emitNotSupportedError, window, wrapSubscribeFunction) => {\n return (type) =>\n wrapSubscribeFunction((observer) => {\n if (window === null || window.navigator === undefined || window.navigator.wakeLock === undefined) {\n return emitNotSupportedError(observer);\n }\n\n const releaseWakeLock = (wakeLockSentinel: IWakeLockSentinel) =>\n wakeLockSentinel.release().catch(() => {\n // Ignore errors.\n });\n const removeReleaseEventListener = (wakeLockSentinel: IWakeLockSentinel) => {\n wakeLockSentinel.onrelease = null;\n };\n\n let isActive = true;\n\n const unsubscribeWhileRequesting = () => {\n isActive = false;\n };\n\n let unsubscribe = unsubscribeWhileRequesting;\n\n const requestWakeLock = () =>\n window.navigator.wakeLock.request(type).then(\n (wakeLockSentinel) => {\n if (isActive) {\n observer.next(true);\n }\n\n if (isActive) {\n wakeLockSentinel.onrelease = () => {\n observer.next(false);\n\n unsubscribe = unsubscribeWhileRequesting;\n\n removeReleaseEventListener(wakeLockSentinel);\n requestWakeLock();\n };\n\n unsubscribe = () => {\n removeReleaseEventListener(wakeLockSentinel);\n releaseWakeLock(wakeLockSentinel);\n };\n } else {\n releaseWakeLock(wakeLockSentinel);\n }\n },\n (err) => {\n if (isActive) {\n observer.error(err);\n }\n }\n );\n\n requestWakeLock();\n\n return () => unsubscribe();\n });\n};\n","import { IAugmentedError, IParameterObject, compile } from 'compilerr';\n\nconst JSON_RPC_ERROR_CODES = { INTERNAL_ERROR: -32603, INVALID_PARAMS: -32602, METHOD_NOT_FOUND: -32601 };\n\nexport const renderMethodNotFoundError: (missingParameters: IParameterObject) => IAugmentedError = compile({\n message: 'The requested method called \"${method}\" is not supported.',\n status: JSON_RPC_ERROR_CODES.METHOD_NOT_FOUND\n});\n\nexport const renderMissingResponseError: (missingParameters: IParameterObject) => IAugmentedError = compile({\n message: 'The handler of the method called \"${method}\" returned no required result.',\n status: JSON_RPC_ERROR_CODES.INTERNAL_ERROR\n});\n\nexport const renderUnexpectedResultError: (missingParameters: IParameterObject) => IAugmentedError = compile({\n message: 'The handler of the method called \"${method}\" returned an unexpected result.',\n status: JSON_RPC_ERROR_CODES.INTERNAL_ERROR\n});\n\nexport const renderUnknownPortIdError: (missingParameters: IParameterObject) => IAugmentedError = compile({\n message: 'The specified parameter called \"portId\" with the given value \"${portId}\" does not identify a port connected to this worker.',\n status: JSON_RPC_ERROR_CODES.INVALID_PARAMS\n});\n","import { generateUniqueNumber } from 'fast-unique-numbers';\nimport { on } from 'subscribable-things';\nimport { isSupported } from 'worker-factory';\nimport { createAddRecorderAudioWorkletModule } from './factories/add-recorder-audio-worklet-module';\nimport { createListener } from './factories/listener';\nimport { createPostMessageFactory } from './factories/post-message-factory';\nimport { createRecorderAudioWorkletNodeFactory } from './factories/recorder-audio-worklet-node-factory';\nimport { validateState } from './functions/validate-state';\nimport { worklet } from './worklet/worklet';\n\n/*\n * @todo Explicitly referencing the barrel file seems to be necessary when enabling the\n * isolatedModules compiler option.\n */\nexport * from './interfaces/index';\nexport * from './types/index';\n\nexport const addRecorderAudioWorkletModule = createAddRecorderAudioWorkletModule(Blob, URL, worklet);\n\nexport const createRecorderAudioWorkletNode = createRecorderAudioWorkletNodeFactory(\n createListener,\n createPostMessageFactory(generateUniqueNumber),\n on,\n validateState\n);\n\nexport { isSupported };\n","import { generateUniqueNumber } from 'fast-unique-numbers';\nimport { IDefaultWorkerDefinition, IReceiver, IWorkerDefinition } from '../interfaces';\nimport { TDestroyWorkerFunction, TWorkerImplementation } from '../types';\nimport { renderUnknownPortIdError } from './error-renderers';\nimport { isSupportingTransferables } from './is-supporting-transferables';\n\nconst DESTROY_WORKER_FUNCTIONS: Map = new Map();\n\nexport const extendWorkerImplementation = (\n createWorker: (receiver: IReceiver, workerImplementation: TWorkerImplementation) => TDestroyWorkerFunction,\n partialWorkerImplementation: TWorkerImplementation,\n isSupportedFunction: () => boolean | Promise\n): TWorkerImplementation & TWorkerImplementation => ({\n ...partialWorkerImplementation,\n connect: ({ port }) => {\n port.start();\n\n const destroyWorker = createWorker(port, partialWorkerImplementation);\n const portId = generateUniqueNumber(DESTROY_WORKER_FUNCTIONS);\n\n DESTROY_WORKER_FUNCTIONS.set(portId, () => {\n destroyWorker();\n port.close();\n DESTROY_WORKER_FUNCTIONS.delete(portId);\n });\n\n return { result: portId };\n },\n disconnect: ({ portId }) => {\n const destroyWorker = DESTROY_WORKER_FUNCTIONS.get(portId);\n\n if (destroyWorker === undefined) {\n throw renderUnknownPortIdError({ portId: portId.toString() });\n }\n\n destroyWorker();\n\n return { result: null };\n },\n isSupported: async () => {\n const isSelfSupported = await isSupportingTransferables();\n\n if (isSelfSupported) {\n const result = isSupportedFunction();\n const synchronousResult = result instanceof Promise ? await result : result;\n\n return { result: synchronousResult };\n }\n\n return { result: false };\n }\n});\n","export const createAddRecorderAudioWorkletModule = (blobConstructor: typeof Blob, urlConstructor: typeof URL, worklet: string) => {\n return async (addAudioWorkletModule: (url: string) => Promise) => {\n const blob = new blobConstructor([worklet], { type: 'application/javascript; charset=utf-8' });\n const url = urlConstructor.createObjectURL(blob);\n\n try {\n await addAudioWorkletModule(url);\n } finally {\n urlConstructor.revokeObjectURL(url);\n }\n };\n};\n","// This is the minified and stringified code of the recorder-audio-worklet-processor package.\nexport const worklet = `(()=>{\"use strict\";class e extends AudioWorkletProcessor{constructor(){super(),this._encoderPort=null,this._state=\"inactive\",this.port.onmessage=e=>{let{data:t}=e;\"pause\"===t.method?\"active\"===this._state||\"recording\"===this._state?(this._state=\"paused\",this._sendAcknowledgement(t.id)):this._sendUnexpectedStateError(t.id):\"record\"===t.method?\"inactive\"===this._state?(this._encoderPort=t.params.encoderPort,this._state=\"active\",this._sendAcknowledgement(t.id)):this._sendUnexpectedStateError(t.id):\"resume\"===t.method?\"paused\"===this._state?(this._state=\"active\",this._sendAcknowledgement(t.id)):this._sendUnexpectedStateError(t.id):\"stop\"===t.method?\"active\"!==this._state&&\"paused\"!==this._state&&\"recording\"!==this._state||null===this._encoderPort?this._sendUnexpectedStateError(t.id):(this._stop(this._encoderPort),this._sendAcknowledgement(t.id)):\"number\"==typeof t.id&&this.port.postMessage({error:{code:-32601,message:\"The requested method is not supported.\"},id:t.id})}}process(e){let[t]=e;if(\"inactive\"===this._state||\"paused\"===this._state)return!0;if(\"active\"===this._state){if(void 0===t)throw new Error(\"No channelData was received for the first input.\");if(0===t.length)return!0;this._state=\"recording\"}if(\"recording\"===this._state&&null!==this._encoderPort){if(void 0===t)throw new Error(\"No channelData was received for the first input.\");if(0!==t.length)return this._encoderPort.postMessage(t,t.map((e=>{let{buffer:t}=e;return t}))),!0;this._stop(this._encoderPort)}return!1}_sendAcknowledgement(e){this.port.postMessage({id:e,result:null})}_sendUnexpectedStateError(e){this.port.postMessage({error:{code:-32603,message:\"The internal state does not allow to process the given message.\"},id:e})}_stop(e){e.postMessage([]),e.close(),this._encoderPort=null,this._state=\"stopped\"}}e.parameterDescriptors=[],registerProcessor(\"recorder-audio-worklet-processor\",e)})();`; // tslint:disable-line:max-line-length\n","import type {\n IAudioWorkletNode,\n TAudioWorkletNodeConstructor,\n TContext,\n TNativeAudioWorkletNode,\n TNativeAudioWorkletNodeConstructor,\n TNativeContext\n} from 'standardized-audio-context';\nimport type { on as onFunction } from 'subscribable-things';\nimport type { validateState as validateStateFunction } from '../functions/validate-state';\nimport { INativeRecorderAudioWorkletNode, IRecorderAudioWorkletNode } from '../interfaces';\nimport { TAnyRecorderAudioWorkletNodeOptions, TState } from '../types';\nimport type { createListener as createListenerFunction } from './listener';\nimport type { createPostMessageFactory } from './post-message-factory';\n\nexport const createRecorderAudioWorkletNodeFactory = (\n createListener: typeof createListenerFunction,\n createPostMessage: ReturnType,\n on: typeof onFunction,\n validateState: typeof validateStateFunction\n) => {\n return (\n audioWorkletNodeConstructor: T extends TContext ? TAudioWorkletNodeConstructor : TNativeAudioWorkletNodeConstructor,\n context: T,\n options: Partial> = {}\n ): T extends TContext ? IRecorderAudioWorkletNode : INativeRecorderAudioWorkletNode => {\n type TAnyAudioWorkletNode = T extends TContext ? IAudioWorkletNode : TNativeAudioWorkletNode;\n type TAnyRecorderAudioWorkletNode = T extends TContext ? IRecorderAudioWorkletNode : INativeRecorderAudioWorkletNode;\n\n const audioWorkletNode: TAnyAudioWorkletNode = new (audioWorkletNodeConstructor)(context, 'recorder-audio-worklet-processor', {\n ...options,\n channelCountMode: 'explicit',\n numberOfInputs: 1,\n numberOfOutputs: 0\n });\n const ongoingRequests: Map = new Map();\n const postMessage = createPostMessage(ongoingRequests, audioWorkletNode.port);\n const unsubscribe = on(audioWorkletNode.port, 'message')(createListener(ongoingRequests));\n\n audioWorkletNode.port.start();\n\n let state: TState = 'inactive';\n\n Object.defineProperties(audioWorkletNode, {\n pause: {\n get(): TAnyRecorderAudioWorkletNode['pause'] {\n return async () => {\n validateState(['recording'], state);\n\n state = 'paused';\n\n return postMessage({\n method: 'pause'\n });\n };\n }\n },\n port: {\n get(): TAnyRecorderAudioWorkletNode['port'] {\n throw new Error(\"The port of a RecorderAudioWorkletNode can't be accessed.\");\n }\n },\n record: {\n get(): TAnyRecorderAudioWorkletNode['record'] {\n return async (encoderPort: MessagePort) => {\n validateState(['inactive'], state);\n\n state = 'recording';\n\n return postMessage(\n {\n method: 'record',\n params: { encoderPort }\n },\n [encoderPort]\n );\n };\n }\n },\n resume: {\n get(): TAnyRecorderAudioWorkletNode['resume'] {\n return async () => {\n validateState(['paused'], state);\n\n state = 'recording';\n\n return postMessage({\n method: 'resume'\n });\n };\n }\n },\n stop: {\n get(): TAnyRecorderAudioWorkletNode['stop'] {\n return async () => {\n validateState(['paused', 'recording'], state);\n\n state = 'stopped';\n\n try {\n await postMessage({ method: 'stop' });\n } finally {\n unsubscribe();\n }\n };\n }\n }\n });\n\n return audioWorkletNode;\n };\n};\n","import type { IWorkerEvent } from 'broker-factory';\nimport type { IWorkerErrorMessage, IWorkerResultMessage } from 'worker-factory';\n\nexport const createListener = (ongoingRequests: Map) => {\n return ({ data: message }: IWorkerEvent) => {\n const { id } = message;\n\n if (id !== null) {\n const ongoingRequest = ongoingRequests.get(id);\n\n if (ongoingRequest !== undefined) {\n const { reject, resolve } = ongoingRequest;\n\n ongoingRequests.delete(id);\n\n if ((message).error === undefined) {\n resolve((message).result);\n } else {\n reject(new Error((message).error.message));\n }\n }\n }\n };\n};\n","import type { generateUniqueNumber as generateUniqueNumberFunction } from 'fast-unique-numbers';\n\nexport const createPostMessageFactory = (generateUniqueNumber: typeof generateUniqueNumberFunction) => {\n return (ongoingRequests: Map, port: MessagePort) => {\n return (message: { method: string; params?: object }, transferables: Transferable[] = []): Promise => {\n return new Promise((resolve, reject) => {\n const id = generateUniqueNumber(ongoingRequests);\n\n ongoingRequests.set(id, { reject, resolve });\n\n port.postMessage({ id, ...message }, transferables);\n });\n };\n };\n};\n","import { TState } from '../types';\n\nexport const validateState = (expectedStates: TState[], currentState: TState): void => {\n if (!expectedStates.includes(currentState)) {\n throw new Error(\n `Expected the state to be ${expectedStates\n .map((expectedState) => `\"${expectedState}\"`)\n .join(' or ')} but it was \"${currentState}\".`\n );\n }\n};\n","import { IAudioNode, IAudioWorkletProcessor, IAudioWorkletProcessorConstructor } from './interfaces';\nimport {\n TAudioNodeConnectionsStore,\n TAudioNodeStore,\n TAudioParamConnectionsStore,\n TAudioParamStore,\n TContext,\n TContextStore,\n TCycleCounters,\n TInternalStateEventListener,\n TNativeAudioWorkletNode,\n TNativeContext\n} from './types';\n\nexport const ACTIVE_AUDIO_NODE_STORE: WeakSet> = new WeakSet();\n\nexport const AUDIO_NODE_CONNECTIONS_STORE: TAudioNodeConnectionsStore = new WeakMap();\n\nexport const AUDIO_NODE_STORE: TAudioNodeStore = new WeakMap();\n\nexport const AUDIO_PARAM_CONNECTIONS_STORE: TAudioParamConnectionsStore = new WeakMap();\n\nexport const AUDIO_PARAM_STORE: TAudioParamStore = new WeakMap();\n\nexport const CONTEXT_STORE: TContextStore = new WeakMap();\n\nexport const EVENT_LISTENERS: WeakMap, Set> = new WeakMap();\n\nexport const CYCLE_COUNTERS: TCycleCounters = new WeakMap();\n\n// This clunky name is borrowed from the spec. :-)\nexport const NODE_NAME_TO_PROCESSOR_CONSTRUCTOR_MAPS: WeakMap<\n TNativeContext,\n Map\n> = new WeakMap();\n\nexport const NODE_TO_PROCESSOR_MAPS: WeakMap<\n TNativeContext,\n WeakMap>\n> = new WeakMap();\n","import { TConstructor } from '../types';\n\nconst handler = {\n construct(): any {\n return handler;\n }\n};\n\nexport const isConstructible = (constructible: TConstructor): boolean => {\n try {\n const proxy = new Proxy(constructible, handler);\n\n new proxy(); // tslint:disable-line:no-unused-expression\n } catch {\n return false;\n }\n\n return true;\n};\n","/*\n * This massive regex tries to cover all the following cases.\n *\n * import './path';\n * import defaultImport from './path';\n * import { namedImport } from './path';\n * import { namedImport as renamendImport } from './path';\n * import * as namespaceImport from './path';\n * import defaultImport, { namedImport } from './path';\n * import defaultImport, { namedImport as renamendImport } from './path';\n * import defaultImport, * as namespaceImport from './path';\n */\nconst IMPORT_STATEMENT_REGEX = /^import(?:(?:[\\s]+[\\w]+|(?:[\\s]+[\\w]+[\\s]*,)?[\\s]*\\{[\\s]*[\\w]+(?:[\\s]+as[\\s]+[\\w]+)?(?:[\\s]*,[\\s]*[\\w]+(?:[\\s]+as[\\s]+[\\w]+)?)*[\\s]*}|(?:[\\s]+[\\w]+[\\s]*,)?[\\s]*\\*[\\s]+as[\\s]+[\\w]+)[\\s]+from)?(?:[\\s]*)(\"([^\"\\\\]|\\\\.)+\"|'([^'\\\\]|\\\\.)+')(?:[\\s]*);?/; // tslint:disable-line:max-line-length\n\nexport const splitImportStatements = (source: string, url: string): [string, string] => {\n const importStatements = [];\n\n let sourceWithoutImportStatements = source.replace(/^[\\s]+/, '');\n let result = sourceWithoutImportStatements.match(IMPORT_STATEMENT_REGEX);\n\n while (result !== null) {\n const unresolvedUrl = result[1].slice(1, -1);\n\n const importStatementWithResolvedUrl = result[0]\n .replace(/([\\s]+)?;?$/, '')\n .replace(unresolvedUrl, new URL(unresolvedUrl, url).toString());\n importStatements.push(importStatementWithResolvedUrl);\n\n sourceWithoutImportStatements = sourceWithoutImportStatements.slice(result[0].length).replace(/^[\\s]+/, '');\n result = sourceWithoutImportStatements.match(IMPORT_STATEMENT_REGEX);\n }\n\n return [importStatements.join(';'), sourceWithoutImportStatements];\n};\n","import { NODE_NAME_TO_PROCESSOR_CONSTRUCTOR_MAPS } from '../globals';\nimport { isConstructible } from '../helpers/is-constructible';\nimport { splitImportStatements } from '../helpers/split-import-statements';\nimport { IAudioWorkletProcessorConstructor } from '../interfaces';\nimport { TAddAudioWorkletModuleFactory, TEvaluateAudioWorkletGlobalScopeFunction } from '../types';\n\nconst verifyParameterDescriptors = (parameterDescriptors: IAudioWorkletProcessorConstructor['parameterDescriptors']) => {\n if (parameterDescriptors !== undefined && !Array.isArray(parameterDescriptors)) {\n throw new TypeError('The parameterDescriptors property of given value for processorCtor is not an array.');\n }\n};\n\nconst verifyProcessorCtor = (processorCtor: T) => {\n if (!isConstructible(processorCtor)) {\n throw new TypeError('The given value for processorCtor should be a constructor.');\n }\n\n if (processorCtor.prototype === null || typeof processorCtor.prototype !== 'object') {\n throw new TypeError('The given value for processorCtor should have a prototype.');\n }\n};\n\nexport const createAddAudioWorkletModule: TAddAudioWorkletModuleFactory = (\n cacheTestResult,\n createNotSupportedError,\n evaluateSource,\n exposeCurrentFrameAndCurrentTime,\n fetchSource,\n getNativeContext,\n getOrCreateBackupOfflineAudioContext,\n isNativeOfflineAudioContext,\n nativeAudioWorkletNodeConstructor,\n ongoingRequests,\n resolvedRequests,\n testAudioWorkletProcessorPostMessageSupport,\n window\n) => {\n let index = 0;\n\n return (context, moduleURL, options = { credentials: 'omit' }) => {\n const resolvedRequestsOfContext = resolvedRequests.get(context);\n\n if (resolvedRequestsOfContext !== undefined && resolvedRequestsOfContext.has(moduleURL)) {\n return Promise.resolve();\n }\n\n const ongoingRequestsOfContext = ongoingRequests.get(context);\n\n if (ongoingRequestsOfContext !== undefined) {\n const promiseOfOngoingRequest = ongoingRequestsOfContext.get(moduleURL);\n\n if (promiseOfOngoingRequest !== undefined) {\n return promiseOfOngoingRequest;\n }\n }\n\n const nativeContext = getNativeContext(context);\n\n // Bug #59: Safari does not implement the audioWorklet property.\n const promise =\n nativeContext.audioWorklet === undefined\n ? fetchSource(moduleURL)\n .then(([source, absoluteUrl]) => {\n const [importStatements, sourceWithoutImportStatements] = splitImportStatements(source, absoluteUrl);\n\n /*\n * This is the unminified version of the code used below:\n *\n * ```js\n * ${ importStatements };\n * ((a, b) => {\n * (a[b] = a[b] || [ ]).push(\n * (AudioWorkletProcessor, global, registerProcessor, sampleRate, self, window) => {\n * ${ sourceWithoutImportStatements }\n * }\n * );\n * })(window, '_AWGS');\n * ```\n */\n // tslint:disable-next-line:max-line-length\n const wrappedSource = `${importStatements};((a,b)=>{(a[b]=a[b]||[]).push((AudioWorkletProcessor,global,registerProcessor,sampleRate,self,window)=>{${sourceWithoutImportStatements}\n})})(window,'_AWGS')`;\n\n // @todo Evaluating the given source code is a possible security problem.\n return evaluateSource(wrappedSource);\n })\n .then(() => {\n const evaluateAudioWorkletGlobalScope = ((window)._AWGS).pop();\n\n if (evaluateAudioWorkletGlobalScope === undefined) {\n // Bug #182 Chrome and Edge do throw an instance of a SyntaxError instead of a DOMException.\n throw new SyntaxError();\n }\n\n exposeCurrentFrameAndCurrentTime(nativeContext.currentTime, nativeContext.sampleRate, () =>\n evaluateAudioWorkletGlobalScope(\n class AudioWorkletProcessor {},\n undefined,\n (name, processorCtor) => {\n if (name.trim() === '') {\n throw createNotSupportedError();\n }\n\n const nodeNameToProcessorConstructorMap = NODE_NAME_TO_PROCESSOR_CONSTRUCTOR_MAPS.get(nativeContext);\n\n if (nodeNameToProcessorConstructorMap !== undefined) {\n if (nodeNameToProcessorConstructorMap.has(name)) {\n throw createNotSupportedError();\n }\n\n verifyProcessorCtor(processorCtor);\n verifyParameterDescriptors(processorCtor.parameterDescriptors);\n\n nodeNameToProcessorConstructorMap.set(name, processorCtor);\n } else {\n verifyProcessorCtor(processorCtor);\n verifyParameterDescriptors(processorCtor.parameterDescriptors);\n\n NODE_NAME_TO_PROCESSOR_CONSTRUCTOR_MAPS.set(nativeContext, new Map([[name, processorCtor]]));\n }\n },\n nativeContext.sampleRate,\n undefined,\n undefined\n )\n );\n })\n : Promise.all([\n fetchSource(moduleURL),\n Promise.resolve(\n cacheTestResult(testAudioWorkletProcessorPostMessageSupport, testAudioWorkletProcessorPostMessageSupport)\n )\n ]).then(([[source, absoluteUrl], isSupportingPostMessage]) => {\n const currentIndex = index + 1;\n\n index = currentIndex;\n\n const [importStatements, sourceWithoutImportStatements] = splitImportStatements(source, absoluteUrl);\n /*\n * Bug #179: Firefox does not allow to transfer any buffer which has been passed to the process() method as an argument.\n *\n * This is the unminified version of the code used below.\n *\n * ```js\n * class extends AudioWorkletProcessor {\n *\n * __buffers = new WeakSet();\n *\n * constructor () {\n * super();\n *\n * this.port.postMessage = ((postMessage) => {\n * return (message, transferables) => {\n * const filteredTransferables = (transferables)\n * ? transferables.filter((transferable) => !this.__buffers.has(transferable))\n * : transferables;\n *\n * return postMessage.call(this.port, message, filteredTransferables);\n * };\n * })(this.port.postMessage);\n * }\n * }\n * ```\n */\n const patchedAudioWorkletProcessor = isSupportingPostMessage\n ? 'AudioWorkletProcessor'\n : 'class extends AudioWorkletProcessor {__b=new WeakSet();constructor(){super();(p=>p.postMessage=(q=>(m,t)=>q.call(p,m,t?t.filter(u=>!this.__b.has(u)):t))(p.postMessage))(this.port)}}';\n /*\n * Bug #170: Chrome and Edge do call process() with an array with empty channelData for each input if no input is connected.\n *\n * Bug #179: Firefox does not allow to transfer any buffer which has been passed to the process() method as an argument.\n *\n * Bug #190: Safari doesn't throw an error when loading an unparsable module.\n *\n * This is the unminified version of the code used below:\n *\n * ```js\n * `${ importStatements };\n * ((AudioWorkletProcessor, registerProcessor) => {${ sourceWithoutImportStatements }\n * })(\n * ${ patchedAudioWorkletProcessor },\n * (name, processorCtor) => registerProcessor(name, class extends processorCtor {\n *\n * __collectBuffers = (array) => {\n * array.forEach((element) => this.__buffers.add(element.buffer));\n * };\n *\n * process (inputs, outputs, parameters) {\n * inputs.forEach(this.__collectBuffers);\n * outputs.forEach(this.__collectBuffers);\n * this.__collectBuffers(Object.values(parameters));\n *\n * return super.process(\n * (inputs.map((input) => input.some((channelData) => channelData.length === 0)) ? [ ] : input),\n * outputs,\n * parameters\n * );\n * }\n *\n * })\n * );\n *\n * registerProcessor(`__sac${currentIndex}`, class extends AudioWorkletProcessor{\n *\n * process () {\n * return false;\n * }\n *\n * })`\n * ```\n */\n const memberDefinition = isSupportingPostMessage ? '' : '__c = (a) => a.forEach(e=>this.__b.add(e.buffer));';\n const bufferRegistration = isSupportingPostMessage\n ? ''\n : 'i.forEach(this.__c);o.forEach(this.__c);this.__c(Object.values(p));';\n const wrappedSource = `${importStatements};((AudioWorkletProcessor,registerProcessor)=>{${sourceWithoutImportStatements}\n})(${patchedAudioWorkletProcessor},(n,p)=>registerProcessor(n,class extends p{${memberDefinition}process(i,o,p){${bufferRegistration}return super.process(i.map(j=>j.some(k=>k.length===0)?[]:j),o,p)}}));registerProcessor('__sac${currentIndex}',class extends AudioWorkletProcessor{process(){return !1}})`;\n const blob = new Blob([wrappedSource], { type: 'application/javascript; charset=utf-8' });\n const url = URL.createObjectURL(blob);\n\n return nativeContext.audioWorklet\n .addModule(url, options)\n .then(() => {\n if (isNativeOfflineAudioContext(nativeContext)) {\n return nativeContext;\n }\n\n // Bug #186: Chrome and Edge do not allow to create an AudioWorkletNode on a closed AudioContext.\n const backupOfflineAudioContext = getOrCreateBackupOfflineAudioContext(nativeContext);\n\n return backupOfflineAudioContext.audioWorklet.addModule(url, options).then(() => backupOfflineAudioContext);\n })\n .then((nativeContextOrBackupOfflineAudioContext) => {\n if (nativeAudioWorkletNodeConstructor === null) {\n throw new SyntaxError();\n }\n\n try {\n // Bug #190: Safari doesn't throw an error when loading an unparsable module.\n new nativeAudioWorkletNodeConstructor(nativeContextOrBackupOfflineAudioContext, `__sac${currentIndex}`); // tslint:disable-line:no-unused-expression\n } catch {\n throw new SyntaxError();\n }\n })\n .finally(() => URL.revokeObjectURL(url));\n });\n\n if (ongoingRequestsOfContext === undefined) {\n ongoingRequests.set(context, new Map([[moduleURL, promise]]));\n } else {\n ongoingRequestsOfContext.set(moduleURL, promise);\n }\n\n promise\n .then(() => {\n const updatedResolvedRequestsOfContext = resolvedRequests.get(context);\n\n if (updatedResolvedRequestsOfContext === undefined) {\n resolvedRequests.set(context, new Set([moduleURL]));\n } else {\n updatedResolvedRequestsOfContext.add(moduleURL);\n }\n })\n .finally(() => {\n const updatedOngoingRequestsOfContext = ongoingRequests.get(context);\n\n if (updatedOngoingRequestsOfContext !== undefined) {\n updatedOngoingRequestsOfContext.delete(moduleURL);\n }\n });\n\n return promise;\n };\n};\n","import { TGetValueForKeyFunction } from '../types';\n\nexport const getValueForKey: TGetValueForKeyFunction = (map, key) => {\n const value = map.get(key);\n\n if (value === undefined) {\n throw new Error('A value with the given key could not be found.');\n }\n\n return value;\n};\n","import { TPickElementFromSetFunction } from '../types';\n\nexport const pickElementFromSet: TPickElementFromSetFunction = (set, predicate) => {\n const matchingElements = Array.from(set).filter(predicate);\n\n if (matchingElements.length > 1) {\n throw Error('More than one element was found.');\n }\n\n if (matchingElements.length === 0) {\n throw Error('No element was found.');\n }\n\n const [matchingElement] = matchingElements;\n\n set.delete(matchingElement);\n\n return matchingElement;\n};\n","import { IAudioNode } from '../interfaces';\nimport { TContext, TPassiveAudioNodeInputConnection } from '../types';\nimport { getValueForKey } from './get-value-for-key';\nimport { pickElementFromSet } from './pick-element-from-set';\n\nexport const deletePassiveInputConnectionToAudioNode = (\n passiveInputs: WeakMap, Set>,\n source: IAudioNode,\n output: number,\n input: number\n) => {\n const passiveInputConnections = getValueForKey(passiveInputs, source);\n const matchingConnection = pickElementFromSet(\n passiveInputConnections,\n (passiveInputConnection) => passiveInputConnection[0] === output && passiveInputConnection[1] === input\n );\n\n if (passiveInputConnections.size === 0) {\n passiveInputs.delete(source);\n }\n\n return matchingConnection;\n};\n","import { EVENT_LISTENERS } from '../globals';\nimport { TGetEventListenersOfAudioNodeFunction } from '../types';\nimport { getValueForKey } from './get-value-for-key';\n\nexport const getEventListenersOfAudioNode: TGetEventListenersOfAudioNodeFunction = (audioNode) => {\n return getValueForKey(EVENT_LISTENERS, audioNode);\n};\n","import { ACTIVE_AUDIO_NODE_STORE } from '../globals';\nimport { IAudioNode } from '../interfaces';\nimport { TContext } from '../types';\nimport { getEventListenersOfAudioNode } from './get-event-listeners-of-audio-node';\n\nexport const setInternalStateToActive = (audioNode: IAudioNode) => {\n if (ACTIVE_AUDIO_NODE_STORE.has(audioNode)) {\n throw new Error('The AudioNode is already stored.');\n }\n\n ACTIVE_AUDIO_NODE_STORE.add(audioNode);\n\n getEventListenersOfAudioNode(audioNode).forEach((eventListener) => eventListener(true));\n};\n","import { IAudioNode, IAudioWorkletNode } from '../interfaces';\nimport { TContext } from '../types';\n\nexport const isAudioWorkletNode = (audioNode: IAudioNode): audioNode is IAudioWorkletNode => {\n return 'port' in audioNode;\n};\n","import { ACTIVE_AUDIO_NODE_STORE } from '../globals';\nimport { IAudioNode } from '../interfaces';\nimport { TContext } from '../types';\nimport { getEventListenersOfAudioNode } from './get-event-listeners-of-audio-node';\n\nexport const setInternalStateToPassive = (audioNode: IAudioNode) => {\n if (!ACTIVE_AUDIO_NODE_STORE.has(audioNode)) {\n throw new Error('The AudioNode is not stored.');\n }\n\n ACTIVE_AUDIO_NODE_STORE.delete(audioNode);\n\n getEventListenersOfAudioNode(audioNode).forEach((eventListener) => eventListener(false));\n};\n","import { isAudioWorkletNode } from '../guards/audio-worklet-node';\nimport { IAudioNode } from '../interfaces';\nimport { TActiveInputConnection, TContext } from '../types';\nimport { setInternalStateToPassive } from './set-internal-state-to-passive';\n\n// Set the internalState of the audioNode to 'passive' if it is not an AudioWorkletNode and if it has no 'active' input connections.\nexport const setInternalStateToPassiveWhenNecessary = (\n audioNode: IAudioNode,\n activeInputs: Set>[]\n) => {\n if (!isAudioWorkletNode(audioNode) && activeInputs.every((connections) => connections.size === 0)) {\n setInternalStateToPassive(audioNode);\n }\n};\n","import { IAnalyserNode, IAnalyserOptions } from '../interfaces';\nimport { TAnalyserNodeConstructorFactory, TAudioNodeRenderer, TContext, TNativeAnalyserNode } from '../types';\n\nconst DEFAULT_OPTIONS = {\n channelCount: 2,\n channelCountMode: 'max',\n channelInterpretation: 'speakers',\n fftSize: 2048,\n maxDecibels: -30,\n minDecibels: -100,\n smoothingTimeConstant: 0.8\n} as const;\n\nexport const createAnalyserNodeConstructor: TAnalyserNodeConstructorFactory = (\n audionNodeConstructor,\n createAnalyserNodeRenderer,\n createIndexSizeError,\n createNativeAnalyserNode,\n getNativeContext,\n isNativeOfflineAudioContext\n) => {\n return class AnalyserNode extends audionNodeConstructor implements IAnalyserNode {\n private _nativeAnalyserNode: TNativeAnalyserNode;\n\n constructor(context: T, options?: Partial) {\n const nativeContext = getNativeContext(context);\n const mergedOptions = { ...DEFAULT_OPTIONS, ...options };\n const nativeAnalyserNode = createNativeAnalyserNode(nativeContext, mergedOptions);\n const analyserNodeRenderer = >(\n (isNativeOfflineAudioContext(nativeContext) ? createAnalyserNodeRenderer() : null)\n );\n\n super(context, false, nativeAnalyserNode, analyserNodeRenderer);\n\n this._nativeAnalyserNode = nativeAnalyserNode;\n }\n\n get fftSize(): number {\n return this._nativeAnalyserNode.fftSize;\n }\n\n set fftSize(value) {\n this._nativeAnalyserNode.fftSize = value;\n }\n\n get frequencyBinCount(): number {\n return this._nativeAnalyserNode.frequencyBinCount;\n }\n\n get maxDecibels(): number {\n return this._nativeAnalyserNode.maxDecibels;\n }\n\n set maxDecibels(value) {\n // Bug #118: Safari does not throw an error if maxDecibels is not more than minDecibels.\n const maxDecibels = this._nativeAnalyserNode.maxDecibels;\n\n this._nativeAnalyserNode.maxDecibels = value;\n\n if (!(value > this._nativeAnalyserNode.minDecibels)) {\n this._nativeAnalyserNode.maxDecibels = maxDecibels;\n\n throw createIndexSizeError();\n }\n }\n\n get minDecibels(): number {\n return this._nativeAnalyserNode.minDecibels;\n }\n\n set minDecibels(value) {\n // Bug #118: Safari does not throw an error if maxDecibels is not more than minDecibels.\n const minDecibels = this._nativeAnalyserNode.minDecibels;\n\n this._nativeAnalyserNode.minDecibels = value;\n\n if (!(this._nativeAnalyserNode.maxDecibels > value)) {\n this._nativeAnalyserNode.minDecibels = minDecibels;\n\n throw createIndexSizeError();\n }\n }\n\n get smoothingTimeConstant(): number {\n return this._nativeAnalyserNode.smoothingTimeConstant;\n }\n\n set smoothingTimeConstant(value) {\n this._nativeAnalyserNode.smoothingTimeConstant = value;\n }\n\n public getByteFrequencyData(array: Uint8Array): void {\n this._nativeAnalyserNode.getByteFrequencyData(array);\n }\n\n public getByteTimeDomainData(array: Uint8Array): void {\n this._nativeAnalyserNode.getByteTimeDomainData(array);\n }\n\n public getFloatFrequencyData(array: Float32Array): void {\n this._nativeAnalyserNode.getFloatFrequencyData(array);\n }\n\n public getFloatTimeDomainData(array: Float32Array): void {\n this._nativeAnalyserNode.getFloatTimeDomainData(array);\n }\n };\n};\n","import { TNativeAudioNode, TNativeContext } from '../types';\n\nexport const isOwnedByContext = (nativeAudioNode: TNativeAudioNode, nativeContext: TNativeContext): boolean => {\n return nativeAudioNode.context === nativeContext;\n};\n","import { TNativeAudioBuffer } from '../types';\n\nexport const testAudioBufferCopyChannelMethodsOutOfBoundsSupport = (nativeAudioBuffer: TNativeAudioBuffer): boolean => {\n try {\n nativeAudioBuffer.copyToChannel(new Float32Array(1), 0, -1);\n } catch {\n return false;\n }\n\n return true;\n};\n","import { TIndexSizeErrorFactory } from '../types';\n\nexport const createIndexSizeError: TIndexSizeErrorFactory = () => new DOMException('', 'IndexSizeError');\n","import { createIndexSizeError } from '../factories/index-size-error';\nimport { TNativeAudioBuffer } from '../types';\n\nexport const wrapAudioBufferGetChannelDataMethod = (audioBuffer: TNativeAudioBuffer): void => {\n audioBuffer.getChannelData = ((getChannelData) => {\n return (channel: number) => {\n try {\n return getChannelData.call(audioBuffer, channel);\n } catch (err) {\n if (err.code === 12) {\n throw createIndexSizeError();\n }\n\n throw err;\n }\n };\n })(audioBuffer.getChannelData);\n};\n","import { testAudioBufferCopyChannelMethodsOutOfBoundsSupport } from '../helpers/test-audio-buffer-copy-channel-methods-out-of-bounds-support';\nimport { wrapAudioBufferGetChannelDataMethod } from '../helpers/wrap-audio-buffer-get-channel-data-method';\nimport { IAudioBuffer, IAudioBufferOptions } from '../interfaces';\nimport { TAudioBufferConstructorFactory, TNativeOfflineAudioContext } from '../types';\n\nconst DEFAULT_OPTIONS = {\n numberOfChannels: 1\n} as const;\n\nexport const createAudioBufferConstructor: TAudioBufferConstructorFactory = (\n audioBufferStore,\n cacheTestResult,\n createNotSupportedError,\n nativeAudioBufferConstructor,\n nativeOfflineAudioContextConstructor,\n testNativeAudioBufferConstructorSupport,\n wrapAudioBufferCopyChannelMethods,\n wrapAudioBufferCopyChannelMethodsOutOfBounds\n) => {\n let nativeOfflineAudioContext: null | TNativeOfflineAudioContext = null;\n\n return class AudioBuffer implements IAudioBuffer {\n // This field needs to be defined to convince TypeScript that the IAudioBuffer will be implemented.\n public copyFromChannel!: (destination: Float32Array, channelNumber: number, bufferOffset?: number) => void;\n\n // This field needs to be defined to convince TypeScript that the IAudioBuffer will be implemented.\n public copyToChannel!: (source: Float32Array, channelNumber: number, bufferOffset?: number) => void;\n\n // This field needs to be defined to convince TypeScript that the IAudioBuffer will be implemented.\n public duration!: number;\n\n // This field needs to be defined to convince TypeScript that the IAudioBuffer will be implemented.\n public getChannelData!: (channel: number) => Float32Array;\n\n // This field needs to be defined to convince TypeScript that the IAudioBuffer will be implemented.\n public length!: number;\n\n // This field needs to be defined to convince TypeScript that the IAudioBuffer will be implemented.\n public numberOfChannels!: number;\n\n // This field needs to be defined to convince TypeScript that the IAudioBuffer will be implemented.\n public sampleRate!: number;\n\n constructor(options: IAudioBufferOptions) {\n if (nativeOfflineAudioContextConstructor === null) {\n throw new Error('Missing the native OfflineAudioContext constructor.');\n }\n\n const { length, numberOfChannels, sampleRate } = { ...DEFAULT_OPTIONS, ...options };\n\n if (nativeOfflineAudioContext === null) {\n nativeOfflineAudioContext = new nativeOfflineAudioContextConstructor(1, 1, 44100);\n }\n\n /*\n * Bug #99: Firefox does not throw a NotSupportedError when the numberOfChannels is zero. But it only does it when using the\n * factory function. But since Firefox also supports the constructor everything should be fine.\n */\n const audioBuffer =\n nativeAudioBufferConstructor !== null &&\n cacheTestResult(testNativeAudioBufferConstructorSupport, testNativeAudioBufferConstructorSupport)\n ? new nativeAudioBufferConstructor({ length, numberOfChannels, sampleRate })\n : nativeOfflineAudioContext.createBuffer(numberOfChannels, length, sampleRate);\n\n // Bug #99: Safari does not throw an error when the numberOfChannels is zero.\n if (audioBuffer.numberOfChannels === 0) {\n throw createNotSupportedError();\n }\n\n // Bug #5: Safari does not support copyFromChannel() and copyToChannel().\n // Bug #100: Safari does throw a wrong error when calling getChannelData() with an out-of-bounds value.\n if (typeof audioBuffer.copyFromChannel !== 'function') {\n wrapAudioBufferCopyChannelMethods(audioBuffer);\n wrapAudioBufferGetChannelDataMethod(audioBuffer);\n // Bug #157: Firefox does not allow the bufferOffset to be out-of-bounds.\n } else if (\n !cacheTestResult(testAudioBufferCopyChannelMethodsOutOfBoundsSupport, () =>\n testAudioBufferCopyChannelMethodsOutOfBoundsSupport(audioBuffer)\n )\n ) {\n wrapAudioBufferCopyChannelMethodsOutOfBounds(audioBuffer);\n }\n\n audioBufferStore.add(audioBuffer);\n\n /*\n * This does violate all good pratices but it is necessary to allow this AudioBuffer to be used with native\n * (Offline)AudioContexts.\n */\n return audioBuffer;\n }\n\n public static [Symbol.hasInstance](instance: unknown): boolean {\n return (\n (instance !== null && typeof instance === 'object' && Object.getPrototypeOf(instance) === AudioBuffer.prototype) ||\n audioBufferStore.has(instance)\n );\n }\n };\n};\n","export const MOST_NEGATIVE_SINGLE_FLOAT = -3.4028234663852886e38;\n\nexport const MOST_POSITIVE_SINGLE_FLOAT = -MOST_NEGATIVE_SINGLE_FLOAT;\n","import { ACTIVE_AUDIO_NODE_STORE } from '../globals';\nimport { TIsActiveAudioNodeFunction } from '../types';\n\nexport const isActiveAudioNode: TIsActiveAudioNodeFunction = (audioNode) => ACTIVE_AUDIO_NODE_STORE.has(audioNode);\n","import { MOST_NEGATIVE_SINGLE_FLOAT, MOST_POSITIVE_SINGLE_FLOAT } from '../constants';\nimport { isActiveAudioNode } from '../helpers/is-active-audio-node';\nimport { setInternalStateToActive } from '../helpers/set-internal-state-to-active';\nimport { setInternalStateToPassive } from '../helpers/set-internal-state-to-passive';\nimport { IAudioBufferSourceNode, IAudioBufferSourceOptions, IAudioParam, IAudioScheduledSourceNodeEventMap } from '../interfaces';\nimport {\n TAnyAudioBuffer,\n TAudioBufferSourceNodeConstructorFactory,\n TAudioBufferSourceNodeRenderer,\n TContext,\n TEventHandler,\n TNativeAudioBufferSourceNode\n} from '../types';\n\nconst DEFAULT_OPTIONS = {\n buffer: null,\n channelCount: 2,\n channelCountMode: 'max',\n channelInterpretation: 'speakers',\n // Bug #149: Safari does not yet support the detune AudioParam.\n loop: false,\n loopEnd: 0,\n loopStart: 0,\n playbackRate: 1\n} as const;\n\nexport const createAudioBufferSourceNodeConstructor: TAudioBufferSourceNodeConstructorFactory = (\n audioNodeConstructor,\n createAudioBufferSourceNodeRenderer,\n createAudioParam,\n createInvalidStateError,\n createNativeAudioBufferSourceNode,\n getNativeContext,\n isNativeOfflineAudioContext,\n wrapEventListener\n) => {\n return class AudioBufferSourceNode\n extends audioNodeConstructor\n implements IAudioBufferSourceNode\n {\n private _audioBufferSourceNodeRenderer: TAudioBufferSourceNodeRenderer;\n\n private _isBufferNullified: boolean;\n\n private _isBufferSet: boolean;\n\n private _nativeAudioBufferSourceNode: TNativeAudioBufferSourceNode;\n\n private _onended: null | TEventHandler;\n\n private _playbackRate: IAudioParam;\n\n constructor(context: T, options?: Partial) {\n const nativeContext = getNativeContext(context);\n const mergedOptions = { ...DEFAULT_OPTIONS, ...options };\n const nativeAudioBufferSourceNode = createNativeAudioBufferSourceNode(nativeContext, mergedOptions);\n const isOffline = isNativeOfflineAudioContext(nativeContext);\n const audioBufferSourceNodeRenderer = >(\n (isOffline ? createAudioBufferSourceNodeRenderer() : null)\n );\n\n super(context, false, nativeAudioBufferSourceNode, audioBufferSourceNodeRenderer);\n\n this._audioBufferSourceNodeRenderer = audioBufferSourceNodeRenderer;\n this._isBufferNullified = false;\n this._isBufferSet = mergedOptions.buffer !== null;\n this._nativeAudioBufferSourceNode = nativeAudioBufferSourceNode;\n this._onended = null;\n // Bug #73: Safari does not export the correct values for maxValue and minValue.\n this._playbackRate = createAudioParam(\n this,\n isOffline,\n nativeAudioBufferSourceNode.playbackRate,\n MOST_POSITIVE_SINGLE_FLOAT,\n MOST_NEGATIVE_SINGLE_FLOAT\n );\n }\n\n get buffer(): null | TAnyAudioBuffer {\n if (this._isBufferNullified) {\n return null;\n }\n\n return this._nativeAudioBufferSourceNode.buffer;\n }\n\n set buffer(value) {\n this._nativeAudioBufferSourceNode.buffer = value;\n\n // Bug #72: Only Chrome & Edge do not allow to reassign the buffer yet.\n if (value !== null) {\n if (this._isBufferSet) {\n throw createInvalidStateError();\n }\n\n this._isBufferSet = true;\n }\n }\n\n get loop(): boolean {\n return this._nativeAudioBufferSourceNode.loop;\n }\n\n set loop(value) {\n this._nativeAudioBufferSourceNode.loop = value;\n }\n\n get loopEnd(): number {\n return this._nativeAudioBufferSourceNode.loopEnd;\n }\n\n set loopEnd(value) {\n this._nativeAudioBufferSourceNode.loopEnd = value;\n }\n\n get loopStart(): number {\n return this._nativeAudioBufferSourceNode.loopStart;\n }\n\n set loopStart(value) {\n this._nativeAudioBufferSourceNode.loopStart = value;\n }\n\n get onended(): null | TEventHandler {\n return this._onended;\n }\n\n set onended(value) {\n const wrappedListener = typeof value === 'function' ? wrapEventListener(this, value) : null;\n\n this._nativeAudioBufferSourceNode.onended = wrappedListener;\n\n const nativeOnEnded = this._nativeAudioBufferSourceNode.onended;\n\n this._onended = nativeOnEnded !== null && nativeOnEnded === wrappedListener ? value : nativeOnEnded;\n }\n\n get playbackRate(): IAudioParam {\n return this._playbackRate;\n }\n\n public start(when = 0, offset = 0, duration?: number): void {\n this._nativeAudioBufferSourceNode.start(when, offset, duration);\n\n if (this._audioBufferSourceNodeRenderer !== null) {\n this._audioBufferSourceNodeRenderer.start = duration === undefined ? [when, offset] : [when, offset, duration];\n }\n\n if (this.context.state !== 'closed') {\n setInternalStateToActive(this);\n\n const resetInternalStateToPassive = () => {\n this._nativeAudioBufferSourceNode.removeEventListener('ended', resetInternalStateToPassive);\n\n if (isActiveAudioNode(this)) {\n setInternalStateToPassive(this);\n }\n };\n\n this._nativeAudioBufferSourceNode.addEventListener('ended', resetInternalStateToPassive);\n }\n }\n\n public stop(when = 0): void {\n this._nativeAudioBufferSourceNode.stop(when);\n\n if (this._audioBufferSourceNodeRenderer !== null) {\n this._audioBufferSourceNodeRenderer.stop = when;\n }\n }\n };\n};\n","import unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nexport default function _createForOfIteratorHelper(o, allowArrayLike) {\n var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"];\n if (!it) {\n if (Array.isArray(o) || (it = unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n var i = 0;\n var F = function F() {};\n return {\n s: F,\n n: function n() {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n },\n e: function e(_e) {\n throw _e;\n },\n f: F\n };\n }\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n var normalCompletion = true,\n didErr = false,\n err;\n return {\n s: function s() {\n it = it.call(o);\n },\n n: function n() {\n var step = it.next();\n normalCompletion = step.done;\n return step;\n },\n e: function e(_e2) {\n didErr = true;\n err = _e2;\n },\n f: function f() {\n try {\n if (!normalCompletion && it[\"return\"] != null) it[\"return\"]();\n } finally {\n if (didErr) throw err;\n }\n }\n };\n}","import { IAudioBufferSourceNode, IAudioNode } from '../interfaces';\nimport { TContext } from '../types';\n\nexport const isAudioBufferSourceNode = (audioNode: IAudioNode): audioNode is IAudioBufferSourceNode => {\n return 'playbackRate' in audioNode;\n};\n","import { AUDIO_NODE_CONNECTIONS_STORE } from '../globals';\nimport { IAudioNode } from '../interfaces';\nimport { TAudioNodeConnections, TContext, TGetAudioNodeConnectionsFunction } from '../types';\nimport { getValueForKey } from './get-value-for-key';\n\nexport const getAudioNodeConnections: TGetAudioNodeConnectionsFunction = (\n audioNode: IAudioNode\n): TAudioNodeConnections => {\n return >getValueForKey(AUDIO_NODE_CONNECTIONS_STORE, audioNode);\n};\n","import { AUDIO_PARAM_CONNECTIONS_STORE } from '../globals';\nimport { IAudioParam } from '../interfaces';\nimport { TAudioParamConnections, TContext, TGetAudioParamConnectionsFunction } from '../types';\nimport { getValueForKey } from './get-value-for-key';\n\nexport const getAudioParamConnections: TGetAudioParamConnectionsFunction = (\n audioParam: IAudioParam\n): TAudioParamConnections => {\n return >getValueForKey(AUDIO_PARAM_CONNECTIONS_STORE, audioParam);\n};\n","import { isAudioBufferSourceNode } from '../guards/audio-buffer-source-node';\nimport { isAudioWorkletNode } from '../guards/audio-worklet-node';\nimport { isBiquadFilterNode } from '../guards/biquad-filter-node';\nimport { isConstantSourceNode } from '../guards/constant-source-node';\nimport { isGainNode } from '../guards/gain-node';\nimport { isOscillatorNode } from '../guards/oscillator-node';\nimport { isStereoPannerNode } from '../guards/stereo-panner-node';\nimport { IAudioNode } from '../interfaces';\nimport { TContext } from '../types';\nimport { getAudioNodeConnections } from './get-audio-node-connections';\nimport { getAudioParamConnections } from './get-audio-param-connections';\nimport { isActiveAudioNode } from './is-active-audio-node';\nimport { setInternalStateToPassive } from './set-internal-state-to-passive';\n\nexport const deactivateActiveAudioNodeInputConnections = (\n audioNode: IAudioNode,\n trace: readonly IAudioNode[]\n) => {\n const { activeInputs } = getAudioNodeConnections(audioNode);\n\n activeInputs.forEach((connections) =>\n connections.forEach(([source]) => {\n if (!trace.includes(audioNode)) {\n deactivateActiveAudioNodeInputConnections(source, [...trace, audioNode]);\n }\n })\n );\n\n const audioParams = isAudioBufferSourceNode(audioNode)\n ? [\n // Bug #149: Safari does not yet support the detune AudioParam.\n audioNode.playbackRate\n ]\n : isAudioWorkletNode(audioNode)\n ? Array.from(audioNode.parameters.values())\n : isBiquadFilterNode(audioNode)\n ? [audioNode.Q, audioNode.detune, audioNode.frequency, audioNode.gain]\n : isConstantSourceNode(audioNode)\n ? [audioNode.offset]\n : isGainNode(audioNode)\n ? [audioNode.gain]\n : isOscillatorNode(audioNode)\n ? [audioNode.detune, audioNode.frequency]\n : isStereoPannerNode(audioNode)\n ? [audioNode.pan]\n : [];\n\n for (const audioParam of audioParams) {\n const audioParamConnections = getAudioParamConnections(audioParam);\n\n if (audioParamConnections !== undefined) {\n audioParamConnections.activeInputs.forEach(([source]) => deactivateActiveAudioNodeInputConnections(source, trace));\n }\n }\n\n if (isActiveAudioNode(audioNode)) {\n setInternalStateToPassive(audioNode);\n }\n};\n","import { IAudioNode, IBiquadFilterNode } from '../interfaces';\nimport { TContext } from '../types';\n\nexport const isBiquadFilterNode = (audioNode: IAudioNode): audioNode is IBiquadFilterNode => {\n return 'frequency' in audioNode && 'gain' in audioNode;\n};\n","import { IAudioNode, IConstantSourceNode } from '../interfaces';\nimport { TContext } from '../types';\n\nexport const isConstantSourceNode = (audioNode: IAudioNode): audioNode is IConstantSourceNode => {\n return 'offset' in audioNode;\n};\n","import { IAudioNode, IGainNode } from '../interfaces';\nimport { TContext } from '../types';\n\nexport const isGainNode = (audioNode: IAudioNode): audioNode is IGainNode => {\n return !('frequency' in audioNode) && 'gain' in audioNode;\n};\n","import { IAudioNode, IOscillatorNode } from '../interfaces';\nimport { TContext } from '../types';\n\nexport const isOscillatorNode = (audioNode: IAudioNode): audioNode is IOscillatorNode => {\n return 'detune' in audioNode && 'frequency' in audioNode;\n};\n","import { IAudioNode, IStereoPannerNode } from '../interfaces';\nimport { TContext } from '../types';\n\nexport const isStereoPannerNode = (audioNode: IAudioNode): audioNode is IStereoPannerNode => {\n return 'pan' in audioNode;\n};\n","import { IAudioDestinationNode } from '../interfaces';\nimport { TContext } from '../types';\nimport { deactivateActiveAudioNodeInputConnections } from './deactivate-active-audio-node-input-connections';\n\nexport const deactivateAudioGraph = (context: T): void => {\n deactivateActiveAudioNodeInputConnections(>context.destination, []);\n};\n","import { IAudioContextOptions } from '../interfaces';\n\nexport const isValidLatencyHint = (latencyHint: IAudioContextOptions['latencyHint']) => {\n return (\n latencyHint === undefined ||\n typeof latencyHint === 'number' ||\n (typeof latencyHint === 'string' && (latencyHint === 'balanced' || latencyHint === 'interactive' || latencyHint === 'playback'))\n );\n};\n","import { IAudioNode, IAudioParam } from '../interfaces';\nimport { TContext } from '../types';\n\nexport const isAudioNode = (\n audioNodeOrAudioParam: IAudioNode | IAudioParam\n): audioNodeOrAudioParam is IAudioNode => {\n return 'context' in audioNodeOrAudioParam;\n};\n","import { TAudioNodeOutputConnection, TContext, TOutputConnection } from '../types';\nimport { isAudioNode } from './audio-node';\n\nexport const isAudioNodeOutputConnection = (\n outputConnection: TOutputConnection\n): outputConnection is TAudioNodeOutputConnection => {\n return isAudioNode(outputConnection[0]);\n};\n","import { TInsertElementInSetFunction } from '../types';\n\nexport const insertElementInSet: TInsertElementInSetFunction = (set, element, predicate, ignoreDuplicates) => {\n for (const lmnt of set) {\n if (predicate(lmnt)) {\n if (ignoreDuplicates) {\n return false;\n }\n\n throw Error('The set contains at least one similar element.');\n }\n }\n\n set.add(element);\n\n return true;\n};\n","import { IAudioNode } from '../interfaces';\nimport { TActiveInputConnection, TContext, TPassiveAudioParamInputConnection } from '../types';\nimport { insertElementInSet } from './insert-element-in-set';\n\nexport const addActiveInputConnectionToAudioParam = (\n activeInputs: Set>,\n source: IAudioNode,\n [output, eventListener]: TPassiveAudioParamInputConnection,\n ignoreDuplicates: boolean\n) => {\n insertElementInSet(\n activeInputs,\n [source, output, eventListener],\n (activeInputConnection) => activeInputConnection[0] === source && activeInputConnection[1] === output,\n ignoreDuplicates\n );\n};\n","import { IAudioNode } from '../interfaces';\nimport { TActiveInputConnection, TContext, TPassiveAudioParamInputConnection } from '../types';\nimport { insertElementInSet } from './insert-element-in-set';\n\nexport const addPassiveInputConnectionToAudioParam = (\n passiveInputs: WeakMap, Set>,\n [source, output, eventListener]: TActiveInputConnection,\n ignoreDuplicates: boolean\n) => {\n const passiveInputConnections = passiveInputs.get(source);\n\n if (passiveInputConnections === undefined) {\n passiveInputs.set(source, new Set([[output, eventListener]]));\n } else {\n insertElementInSet(\n passiveInputConnections,\n [output, eventListener],\n (passiveInputConnection) => passiveInputConnection[0] === output,\n ignoreDuplicates\n );\n }\n};\n","import { INativeAudioNodeFaker } from '../interfaces';\nimport { TNativeAudioNode } from '../types';\n\nexport const isNativeAudioNodeFaker = (\n nativeAudioNodeOrNativeAudioNodeFaker: TNativeAudioNode | INativeAudioNodeFaker\n): nativeAudioNodeOrNativeAudioNodeFaker is INativeAudioNodeFaker => {\n return 'inputs' in nativeAudioNodeOrNativeAudioNodeFaker;\n};\n","import { isNativeAudioNodeFaker } from '../guards/native-audio-node-faker';\nimport { INativeAudioNodeFaker } from '../interfaces';\nimport { TConnectNativeAudioNodeToNativeAudioNodeFunction, TNativeAudioNode } from '../types';\n\nexport const connectNativeAudioNodeToNativeAudioNode: TConnectNativeAudioNodeToNativeAudioNodeFunction = (\n nativeSourceAudioNode: INativeAudioNodeFaker | TNativeAudioNode,\n nativeDestinationAudioNode: INativeAudioNodeFaker | TNativeAudioNode,\n output: number,\n input: number\n): [TNativeAudioNode, number, number] => {\n if (isNativeAudioNodeFaker(nativeDestinationAudioNode)) {\n const fakeNativeDestinationAudioNode = nativeDestinationAudioNode.inputs[input];\n\n nativeSourceAudioNode.connect(fakeNativeDestinationAudioNode, output, 0);\n\n return [fakeNativeDestinationAudioNode, output, 0];\n }\n\n nativeSourceAudioNode.connect(nativeDestinationAudioNode, output, input);\n\n return [nativeDestinationAudioNode, output, input];\n};\n","import { IAudioNode } from '../interfaces';\nimport { TActiveInputConnection, TContext } from '../types';\n\nexport const deleteActiveInputConnection = (\n activeInputConnections: Set>,\n source: IAudioNode,\n output: number\n): null | TActiveInputConnection => {\n for (const activeInputConnection of activeInputConnections) {\n if (activeInputConnection[0] === source && activeInputConnection[1] === output) {\n activeInputConnections.delete(activeInputConnection);\n\n return activeInputConnection;\n }\n }\n\n return null;\n};\n","import { IAudioNode } from '../interfaces';\nimport { TContext, TInternalStateEventListener } from '../types';\nimport { getEventListenersOfAudioNode } from './get-event-listeners-of-audio-node';\n\nexport const deleteEventListenerOfAudioNode = (\n audioNode: IAudioNode,\n eventListener: TInternalStateEventListener\n) => {\n const eventListeners = getEventListenersOfAudioNode(audioNode);\n\n if (!eventListeners.delete(eventListener)) {\n throw new Error('Missing the expected event listener.');\n }\n};\n","import { IAudioNode } from '../interfaces';\nimport { TContext, TPassiveAudioParamInputConnection } from '../types';\nimport { getValueForKey } from './get-value-for-key';\nimport { pickElementFromSet } from './pick-element-from-set';\n\nexport const deletePassiveInputConnectionToAudioParam = (\n passiveInputs: WeakMap, Set>,\n source: IAudioNode,\n output: number\n) => {\n const passiveInputConnections = getValueForKey(passiveInputs, source);\n const matchingConnection = pickElementFromSet(\n passiveInputConnections,\n (passiveInputConnection) => passiveInputConnection[0] === output\n );\n\n if (passiveInputConnections.size === 0) {\n passiveInputs.delete(source);\n }\n\n return matchingConnection;\n};\n","import { isNativeAudioNodeFaker } from '../guards/native-audio-node-faker';\nimport { TDisconnectNativeAudioNodeFromNativeAudioNodeFunction } from '../types';\n\nexport const disconnectNativeAudioNodeFromNativeAudioNode: TDisconnectNativeAudioNodeFromNativeAudioNodeFunction = (\n nativeSourceAudioNode,\n nativeDestinationAudioNode,\n output,\n input\n) => {\n if (isNativeAudioNodeFaker(nativeDestinationAudioNode)) {\n nativeSourceAudioNode.disconnect(nativeDestinationAudioNode.inputs[input], output, 0);\n } else {\n nativeSourceAudioNode.disconnect(nativeDestinationAudioNode, output, input);\n }\n};\n","import { AUDIO_NODE_STORE } from '../globals';\nimport { IAudioNode, INativeAudioNodeFaker } from '../interfaces';\nimport { TContext, TGetNativeAudioNodeFunction, TNativeAudioNode } from '../types';\nimport { getValueForKey } from './get-value-for-key';\n\nexport const getNativeAudioNode: TGetNativeAudioNodeFunction = (\n audioNode: IAudioNode\n): U => {\n return getValueForKey(AUDIO_NODE_STORE, audioNode);\n};\n","import { AUDIO_PARAM_STORE } from '../globals';\nimport { IAudioParam } from '../interfaces';\nimport { TNativeAudioParam } from '../types';\nimport { getValueForKey } from './get-value-for-key';\n\nexport const getNativeAudioParam = (audioParam: IAudioParam): TNativeAudioParam => {\n return getValueForKey(AUDIO_PARAM_STORE, audioParam);\n};\n","import { CYCLE_COUNTERS } from '../globals';\nimport { TIsPartOfACycleFunction } from '../types';\n\nexport const isPartOfACycle: TIsPartOfACycleFunction = (audioNode) => {\n return CYCLE_COUNTERS.has(audioNode);\n};\n","import { ACTIVE_AUDIO_NODE_STORE } from '../globals';\nimport { TIsPassiveAudioNodeFunction } from '../types';\n\nexport const isPassiveAudioNode: TIsPassiveAudioNodeFunction = (audioNode) => {\n return !ACTIVE_AUDIO_NODE_STORE.has(audioNode);\n};\n","import { TNativeAudioContext, TNativeAudioWorkletNodeConstructor } from '../types';\n\nexport const testAudioNodeDisconnectMethodSupport = (\n nativeAudioContext: TNativeAudioContext,\n nativeAudioWorkletNodeConstructor: null | TNativeAudioWorkletNodeConstructor\n): Promise => {\n return new Promise((resolve) => {\n /*\n * This bug existed in Safari up until v14.0.2. Since AudioWorklets were not supported in Safari until v14.1 the presence of the\n * constructor for an AudioWorkletNode can be used here to skip the test.\n */\n if (nativeAudioWorkletNodeConstructor !== null) {\n resolve(true);\n } else {\n const analyzer = nativeAudioContext.createScriptProcessor(256, 1, 1); // tslint:disable-line deprecation\n const dummy = nativeAudioContext.createGain();\n // Bug #95: Safari does not play one sample buffers.\n const ones = nativeAudioContext.createBuffer(1, 2, 44100);\n const channelData = ones.getChannelData(0);\n\n channelData[0] = 1;\n channelData[1] = 1;\n\n const source = nativeAudioContext.createBufferSource();\n\n source.buffer = ones;\n source.loop = true;\n\n source.connect(analyzer).connect(nativeAudioContext.destination);\n source.connect(dummy);\n source.disconnect(dummy);\n\n // tslint:disable-next-line:deprecation\n analyzer.onaudioprocess = (event) => {\n const chnnlDt = event.inputBuffer.getChannelData(0); // tslint:disable-line deprecation\n\n if (Array.prototype.some.call(chnnlDt, (sample: number) => sample === 1)) {\n resolve(true);\n } else {\n resolve(false);\n }\n\n source.stop();\n\n analyzer.onaudioprocess = null; // tslint:disable-line:deprecation\n\n source.disconnect(analyzer);\n analyzer.disconnect(nativeAudioContext.destination);\n };\n\n source.start();\n }\n });\n};\n","import { IAudioNode } from '../interfaces';\nimport { TContext } from '../types';\n\nexport const visitEachAudioNodeOnce = (\n cycles: IAudioNode[][],\n visitor: (audioNode: IAudioNode, count: number) => void\n): void => {\n const counts = new Map, number>();\n\n for (const cycle of cycles) {\n for (const audioNode of cycle) {\n const count = counts.get(audioNode);\n\n counts.set(audioNode, count === undefined ? 1 : count + 1);\n }\n }\n\n counts.forEach((count, audioNode) => visitor(audioNode, count));\n};\n","import { TNativeAudioNode, TNativeAudioParam } from '../types';\n\nexport const isNativeAudioNode = (\n nativeAudioNodeOrAudioParam: TNativeAudioNode | TNativeAudioParam\n): nativeAudioNodeOrAudioParam is TNativeAudioNode => {\n return 'context' in nativeAudioNodeOrAudioParam;\n};\n","import { isNativeAudioNode } from '../guards/native-audio-node';\nimport { TNativeAudioNode, TNativeAudioParam } from '../types';\n\nexport const wrapAudioNodeDisconnectMethod = (nativeAudioNode: TNativeAudioNode): void => {\n const connections = new Map();\n\n nativeAudioNode.connect = ((connect) => {\n // tslint:disable-next-line:invalid-void no-inferrable-types\n return (destination: TNativeAudioNode | TNativeAudioParam, output = 0, input: number = 0): void | TNativeAudioNode => {\n const returnValue = isNativeAudioNode(destination) ? connect(destination, output, input) : connect(destination, output);\n\n // Save the new connection only if the calls to connect above didn't throw an error.\n const connectionsToDestination = connections.get(destination);\n\n if (connectionsToDestination === undefined) {\n connections.set(destination, [{ input, output }]);\n } else {\n if (connectionsToDestination.every((connection) => connection.input !== input || connection.output !== output)) {\n connectionsToDestination.push({ input, output });\n }\n }\n\n return returnValue;\n };\n })(nativeAudioNode.connect.bind(nativeAudioNode));\n\n nativeAudioNode.disconnect = ((disconnect) => {\n return (destinationOrOutput?: number | TNativeAudioNode | TNativeAudioParam, output?: number, input?: number): void => {\n disconnect.apply(nativeAudioNode);\n\n if (destinationOrOutput === undefined) {\n connections.clear();\n } else if (typeof destinationOrOutput === 'number') {\n for (const [destination, connectionsToDestination] of connections) {\n const filteredConnections = connectionsToDestination.filter((connection) => connection.output !== destinationOrOutput);\n\n if (filteredConnections.length === 0) {\n connections.delete(destination);\n } else {\n connections.set(destination, filteredConnections);\n }\n }\n } else if (connections.has(destinationOrOutput)) {\n if (output === undefined) {\n connections.delete(destinationOrOutput);\n } else {\n const connectionsToDestination = connections.get(destinationOrOutput);\n\n if (connectionsToDestination !== undefined) {\n const filteredConnections = connectionsToDestination.filter(\n (connection) => connection.output !== output && (connection.input !== input || input === undefined)\n );\n\n if (filteredConnections.length === 0) {\n connections.delete(destinationOrOutput);\n } else {\n connections.set(destinationOrOutput, filteredConnections);\n }\n }\n }\n }\n\n for (const [destination, connectionsToDestination] of connections) {\n connectionsToDestination.forEach((connection) => {\n if (isNativeAudioNode(destination)) {\n nativeAudioNode.connect(destination, connection.output, connection.input);\n } else {\n nativeAudioNode.connect(destination, connection.output);\n }\n });\n }\n };\n })(nativeAudioNode.disconnect);\n};\n","import { AUDIO_NODE_STORE, EVENT_LISTENERS } from '../globals';\nimport { isAudioNode } from '../guards/audio-node';\nimport { isAudioNodeOutputConnection } from '../guards/audio-node-output-connection';\nimport { addActiveInputConnectionToAudioParam } from '../helpers/add-active-input-connection-to-audio-param';\nimport { addPassiveInputConnectionToAudioParam } from '../helpers/add-passive-input-connection-to-audio-param';\nimport { connectNativeAudioNodeToNativeAudioNode } from '../helpers/connect-native-audio-node-to-native-audio-node';\nimport { deleteActiveInputConnection } from '../helpers/delete-active-input-connection';\nimport { deleteActiveInputConnectionToAudioParam } from '../helpers/delete-active-input-connection-to-audio-param';\nimport { deleteEventListenerOfAudioNode } from '../helpers/delete-event-listeners-of-audio-node';\nimport { deletePassiveInputConnectionToAudioNode } from '../helpers/delete-passive-input-connection-to-audio-node';\nimport { deletePassiveInputConnectionToAudioParam } from '../helpers/delete-passive-input-connection-to-audio-param';\nimport { disconnectNativeAudioNodeFromNativeAudioNode } from '../helpers/disconnect-native-audio-node-from-native-audio-node';\nimport { getAudioNodeConnections } from '../helpers/get-audio-node-connections';\nimport { getAudioParamConnections } from '../helpers/get-audio-param-connections';\nimport { getEventListenersOfAudioNode } from '../helpers/get-event-listeners-of-audio-node';\nimport { getNativeAudioNode } from '../helpers/get-native-audio-node';\nimport { getNativeAudioParam } from '../helpers/get-native-audio-param';\nimport { insertElementInSet } from '../helpers/insert-element-in-set';\nimport { isActiveAudioNode } from '../helpers/is-active-audio-node';\nimport { isPartOfACycle } from '../helpers/is-part-of-a-cycle';\nimport { isPassiveAudioNode } from '../helpers/is-passive-audio-node';\nimport { setInternalStateToActive } from '../helpers/set-internal-state-to-active';\nimport { setInternalStateToPassiveWhenNecessary } from '../helpers/set-internal-state-to-passive-when-necessary';\nimport { testAudioNodeDisconnectMethodSupport } from '../helpers/test-audio-node-disconnect-method-support';\nimport { visitEachAudioNodeOnce } from '../helpers/visit-each-audio-node-once';\nimport { wrapAudioNodeDisconnectMethod } from '../helpers/wrap-audio-node-disconnect-method';\nimport {\n IAudioNode,\n IAudioNodeRenderer,\n IAudioParam,\n IMinimalOfflineAudioContext,\n INativeAudioNodeFaker,\n IOfflineAudioContext\n} from '../interfaces';\nimport {\n TAudioNodeConstructorFactory,\n TChannelCountMode,\n TChannelInterpretation,\n TContext,\n TInternalStateEventListener,\n TNativeAudioNode,\n TNativeAudioParam\n} from '../types';\n\nconst addConnectionToAudioParamOfAudioContext = (\n source: IAudioNode,\n destination: IAudioParam,\n output: number,\n isOffline: boolean\n): boolean => {\n const { activeInputs, passiveInputs } = getAudioParamConnections(destination);\n const { outputs } = getAudioNodeConnections(source);\n const eventListeners = getEventListenersOfAudioNode(source);\n\n const eventListener: TInternalStateEventListener = (isActive) => {\n const nativeAudioNode = getNativeAudioNode(source);\n const nativeAudioParam = getNativeAudioParam(destination);\n\n if (isActive) {\n const partialConnection = deletePassiveInputConnectionToAudioParam(passiveInputs, source, output);\n\n addActiveInputConnectionToAudioParam(activeInputs, source, partialConnection, false);\n\n if (!isOffline && !isPartOfACycle(source)) {\n nativeAudioNode.connect(nativeAudioParam, output);\n }\n } else {\n const partialConnection = deleteActiveInputConnectionToAudioParam(activeInputs, source, output);\n\n addPassiveInputConnectionToAudioParam(passiveInputs, partialConnection, false);\n\n if (!isOffline && !isPartOfACycle(source)) {\n nativeAudioNode.disconnect(nativeAudioParam, output);\n }\n }\n };\n\n if (\n insertElementInSet(\n outputs,\n [destination, output],\n (outputConnection) => outputConnection[0] === destination && outputConnection[1] === output,\n true\n )\n ) {\n eventListeners.add(eventListener);\n\n if (isActiveAudioNode(source)) {\n addActiveInputConnectionToAudioParam(activeInputs, source, [output, eventListener], true);\n } else {\n addPassiveInputConnectionToAudioParam(passiveInputs, [source, output, eventListener], true);\n }\n\n return true;\n }\n\n return false;\n};\n\nconst deleteInputConnectionOfAudioNode = (\n source: IAudioNode,\n destination: IAudioNode,\n output: number,\n input: number\n): [null | TInternalStateEventListener, boolean] => {\n const { activeInputs, passiveInputs } = getAudioNodeConnections(destination);\n\n const activeInputConnection = deleteActiveInputConnection(activeInputs[input], source, output);\n\n if (activeInputConnection === null) {\n const passiveInputConnection = deletePassiveInputConnectionToAudioNode(passiveInputs, source, output, input);\n\n return [passiveInputConnection[2], false];\n }\n\n return [activeInputConnection[2], true];\n};\n\nconst deleteInputConnectionOfAudioParam = (\n source: IAudioNode,\n destination: IAudioParam,\n output: number\n): [null | TInternalStateEventListener, boolean] => {\n const { activeInputs, passiveInputs } = getAudioParamConnections(destination);\n\n const activeInputConnection = deleteActiveInputConnection(activeInputs, source, output);\n\n if (activeInputConnection === null) {\n const passiveInputConnection = deletePassiveInputConnectionToAudioParam(passiveInputs, source, output);\n\n return [passiveInputConnection[1], false];\n }\n\n return [activeInputConnection[2], true];\n};\n\nconst deleteInputsOfAudioNode = (\n source: IAudioNode,\n isOffline: boolean,\n destination: IAudioNode,\n output: number,\n input: number\n) => {\n const [listener, isActive] = deleteInputConnectionOfAudioNode(source, destination, output, input);\n\n if (listener !== null) {\n deleteEventListenerOfAudioNode(source, listener);\n\n if (isActive && !isOffline && !isPartOfACycle(source)) {\n disconnectNativeAudioNodeFromNativeAudioNode(getNativeAudioNode(source), getNativeAudioNode(destination), output, input);\n }\n }\n\n if (isActiveAudioNode(destination)) {\n const { activeInputs } = getAudioNodeConnections(destination);\n\n setInternalStateToPassiveWhenNecessary(destination, activeInputs);\n }\n};\n\nconst deleteInputsOfAudioParam = (\n source: IAudioNode,\n isOffline: boolean,\n destination: IAudioParam,\n output: number\n) => {\n const [listener, isActive] = deleteInputConnectionOfAudioParam(source, destination, output);\n\n if (listener !== null) {\n deleteEventListenerOfAudioNode(source, listener);\n\n if (isActive && !isOffline && !isPartOfACycle(source)) {\n getNativeAudioNode(source).disconnect(getNativeAudioParam(destination), output);\n }\n }\n};\n\nconst deleteAnyConnection = (source: IAudioNode, isOffline: boolean): (IAudioNode | IAudioParam)[] => {\n const audioNodeConnectionsOfSource = getAudioNodeConnections(source);\n const destinations = [];\n\n for (const outputConnection of audioNodeConnectionsOfSource.outputs) {\n if (isAudioNodeOutputConnection(outputConnection)) {\n deleteInputsOfAudioNode(source, isOffline, ...outputConnection);\n } else {\n deleteInputsOfAudioParam(source, isOffline, ...outputConnection);\n }\n\n destinations.push(outputConnection[0]);\n }\n\n audioNodeConnectionsOfSource.outputs.clear();\n\n return destinations;\n};\n\nconst deleteConnectionAtOutput = (\n source: IAudioNode,\n isOffline: boolean,\n output: number\n): (IAudioNode | IAudioParam)[] => {\n const audioNodeConnectionsOfSource = getAudioNodeConnections(source);\n const destinations = [];\n\n for (const outputConnection of audioNodeConnectionsOfSource.outputs) {\n if (outputConnection[1] === output) {\n if (isAudioNodeOutputConnection(outputConnection)) {\n deleteInputsOfAudioNode(source, isOffline, ...outputConnection);\n } else {\n deleteInputsOfAudioParam(source, isOffline, ...outputConnection);\n }\n\n destinations.push(outputConnection[0]);\n audioNodeConnectionsOfSource.outputs.delete(outputConnection);\n }\n }\n\n return destinations;\n};\n\nconst deleteConnectionToDestination = (\n source: IAudioNode,\n isOffline: boolean,\n destination: IAudioNode | IAudioParam,\n output?: number,\n input?: number\n): (IAudioNode | IAudioParam)[] => {\n const audioNodeConnectionsOfSource = getAudioNodeConnections(source);\n\n return Array.from(audioNodeConnectionsOfSource.outputs)\n .filter(\n (outputConnection) =>\n outputConnection[0] === destination &&\n (output === undefined || outputConnection[1] === output) &&\n (input === undefined || outputConnection[2] === input)\n )\n .map((outputConnection) => {\n if (isAudioNodeOutputConnection(outputConnection)) {\n deleteInputsOfAudioNode(source, isOffline, ...outputConnection);\n } else {\n deleteInputsOfAudioParam(source, isOffline, ...outputConnection);\n }\n\n audioNodeConnectionsOfSource.outputs.delete(outputConnection);\n\n return outputConnection[0];\n });\n};\n\nexport const createAudioNodeConstructor: TAudioNodeConstructorFactory = (\n addAudioNodeConnections,\n addConnectionToAudioNode,\n cacheTestResult,\n createIncrementCycleCounter,\n createIndexSizeError,\n createInvalidAccessError,\n createNotSupportedError,\n decrementCycleCounter,\n detectCycles,\n eventTargetConstructor,\n getNativeContext,\n isNativeAudioContext,\n isNativeAudioNode,\n isNativeAudioParam,\n isNativeOfflineAudioContext,\n nativeAudioWorkletNodeConstructor\n) => {\n return class AudioNode = {}>\n extends eventTargetConstructor\n implements IAudioNode\n {\n private _context: T;\n\n private _nativeAudioNode: INativeAudioNodeFaker | TNativeAudioNode;\n\n constructor(\n context: T,\n isActive: boolean,\n nativeAudioNode: INativeAudioNodeFaker | TNativeAudioNode,\n audioNodeRenderer: T extends IMinimalOfflineAudioContext | IOfflineAudioContext ? IAudioNodeRenderer> : null\n ) {\n super(nativeAudioNode);\n\n this._context = context;\n this._nativeAudioNode = nativeAudioNode;\n\n const nativeContext = getNativeContext(context);\n\n // Bug #12: Safari does not support to disconnect a specific destination.\n if (\n isNativeAudioContext(nativeContext) &&\n true !==\n cacheTestResult(testAudioNodeDisconnectMethodSupport, () => {\n return testAudioNodeDisconnectMethodSupport(nativeContext, nativeAudioWorkletNodeConstructor);\n })\n ) {\n wrapAudioNodeDisconnectMethod(nativeAudioNode);\n }\n\n AUDIO_NODE_STORE.set(this, nativeAudioNode);\n EVENT_LISTENERS.set(this, new Set());\n\n if (context.state !== 'closed' && isActive) {\n setInternalStateToActive(this);\n }\n\n addAudioNodeConnections(this, audioNodeRenderer, nativeAudioNode);\n }\n\n get channelCount(): number {\n return this._nativeAudioNode.channelCount;\n }\n\n set channelCount(value) {\n this._nativeAudioNode.channelCount = value;\n }\n\n get channelCountMode(): TChannelCountMode {\n return this._nativeAudioNode.channelCountMode;\n }\n\n set channelCountMode(value) {\n this._nativeAudioNode.channelCountMode = value;\n }\n\n get channelInterpretation(): TChannelInterpretation {\n return this._nativeAudioNode.channelInterpretation;\n }\n\n set channelInterpretation(value) {\n this._nativeAudioNode.channelInterpretation = value;\n }\n\n get context(): T {\n return this._context;\n }\n\n get numberOfInputs(): number {\n return this._nativeAudioNode.numberOfInputs;\n }\n\n get numberOfOutputs(): number {\n return this._nativeAudioNode.numberOfOutputs;\n }\n\n public connect>(destinationNode: V, output?: number, input?: number): V;\n public connect(destinationParam: IAudioParam, output?: number): void;\n // tslint:disable-next-line:invalid-void\n public connect>(destination: V | IAudioParam, output = 0, input = 0): void | V {\n // Bug #174: Safari does expose a wrong numberOfOutputs for MediaStreamAudioDestinationNodes.\n if (output < 0 || output >= this._nativeAudioNode.numberOfOutputs) {\n throw createIndexSizeError();\n }\n\n const nativeContext = getNativeContext(this._context);\n const isOffline = isNativeOfflineAudioContext(nativeContext);\n\n if (isNativeAudioNode(destination) || isNativeAudioParam(destination)) {\n throw createInvalidAccessError();\n }\n\n if (isAudioNode(destination)) {\n const nativeDestinationAudioNode = getNativeAudioNode(destination);\n\n try {\n const connection = connectNativeAudioNodeToNativeAudioNode(\n this._nativeAudioNode,\n nativeDestinationAudioNode,\n output,\n input\n );\n\n const isPassive = isPassiveAudioNode(this);\n\n if (isOffline || isPassive) {\n this._nativeAudioNode.disconnect(...connection);\n }\n\n if (this.context.state !== 'closed' && !isPassive && isPassiveAudioNode(destination)) {\n setInternalStateToActive(destination);\n }\n } catch (err) {\n // Bug #41: Safari does not throw the correct exception so far.\n if (err.code === 12) {\n throw createInvalidAccessError();\n }\n\n throw err;\n }\n\n const isNewConnectionToAudioNode = addConnectionToAudioNode(\n this,\n >destination,\n output,\n input,\n isOffline\n );\n\n // Bug #164: Only Firefox detects cycles so far.\n if (isNewConnectionToAudioNode) {\n const cycles = detectCycles([this], >(destination));\n\n visitEachAudioNodeOnce(cycles, createIncrementCycleCounter(isOffline));\n }\n\n return destination;\n }\n\n const nativeAudioParam = getNativeAudioParam(destination);\n\n /*\n * Bug #73, #147 & #153: Safari does not support to connect an input signal to the playbackRate AudioParam of an\n * AudioBufferSourceNode. This can't be easily detected and that's why the outdated name property is used here to identify\n * Safari. In addition to that the maxValue property is used to only detect the affected versions below v14.0.2.\n */\n if ((nativeAudioParam).name === 'playbackRate' && nativeAudioParam.maxValue === 1024) {\n throw createNotSupportedError();\n }\n\n try {\n this._nativeAudioNode.connect(nativeAudioParam, output);\n\n if (isOffline || isPassiveAudioNode(this)) {\n this._nativeAudioNode.disconnect(nativeAudioParam, output);\n }\n } catch (err) {\n // Bug #58: Safari doesn't throw an InvalidAccessError yet.\n if (err.code === 12) {\n throw createInvalidAccessError();\n }\n\n throw err;\n }\n\n const isNewConnectionToAudioParam = addConnectionToAudioParamOfAudioContext(this, destination, output, isOffline);\n\n // Bug #164: Only Firefox detects cycles so far.\n if (isNewConnectionToAudioParam) {\n const cycles = detectCycles([this], destination);\n\n visitEachAudioNodeOnce(cycles, createIncrementCycleCounter(isOffline));\n }\n }\n\n public disconnect(output?: number): void;\n public disconnect(destinationNode: IAudioNode, output?: number, input?: number): void;\n public disconnect(destinationParam: IAudioParam, output?: number): void;\n public disconnect(\n destinationOrOutput?: number | IAudioNode | IAudioParam,\n output?: number,\n input?: number\n ): void {\n let destinations: (IAudioNode | IAudioParam)[];\n\n const nativeContext = getNativeContext(this._context);\n const isOffline = isNativeOfflineAudioContext(nativeContext);\n\n if (destinationOrOutput === undefined) {\n destinations = deleteAnyConnection(this, isOffline);\n } else if (typeof destinationOrOutput === 'number') {\n if (destinationOrOutput < 0 || destinationOrOutput >= this.numberOfOutputs) {\n throw createIndexSizeError();\n }\n\n destinations = deleteConnectionAtOutput(this, isOffline, destinationOrOutput);\n } else {\n if (output !== undefined && (output < 0 || output >= this.numberOfOutputs)) {\n throw createIndexSizeError();\n }\n\n if (isAudioNode(destinationOrOutput) && input !== undefined && (input < 0 || input >= destinationOrOutput.numberOfInputs)) {\n throw createIndexSizeError();\n }\n\n destinations = deleteConnectionToDestination(this, isOffline, destinationOrOutput, output, input);\n\n if (destinations.length === 0) {\n throw createInvalidAccessError();\n }\n }\n\n // Bug #164: Only Firefox detects cycles so far.\n for (const destination of destinations) {\n const cycles = detectCycles([this], destination);\n\n visitEachAudioNodeOnce(cycles, decrementCycleCounter);\n }\n }\n };\n};\n","import { IAudioNode } from '../interfaces';\nimport { TActiveInputConnection, TContext } from '../types';\nimport { pickElementFromSet } from './pick-element-from-set';\n\nexport const deleteActiveInputConnectionToAudioParam = (\n activeInputs: Set>,\n source: IAudioNode,\n output: number\n) => {\n return pickElementFromSet(\n activeInputs,\n (activeInputConnection) => activeInputConnection[0] === source && activeInputConnection[1] === output\n );\n};\n","import { IReadOnlyMap } from './interfaces';\n\nexport class ReadOnlyMap implements IReadOnlyMap {\n private _map: Map;\n\n constructor(parameters: [T, U][]) {\n this._map = new Map(parameters);\n }\n\n get size(): number {\n return this._map.size;\n }\n\n public entries(): IterableIterator<[T, U]> {\n return this._map.entries();\n }\n\n public forEach(callback: (audioParam: U, name: T, map: ReadOnlyMap) => void, thisArg: any = null): void {\n return this._map.forEach((value: U, key: T) => callback.call(thisArg, value, key, this));\n }\n\n public get(name: T): undefined | U {\n return this._map.get(name);\n }\n\n public has(name: T): boolean {\n return this._map.has(name);\n }\n\n public keys(): IterableIterator {\n return this._map.keys();\n }\n\n public values(): IterableIterator {\n return this._map.values();\n }\n}\n","import { NODE_NAME_TO_PROCESSOR_CONSTRUCTOR_MAPS } from '../globals';\nimport {\n IAudioParam,\n IAudioWorkletNode,\n IAudioWorkletNodeEventMap,\n IAudioWorkletNodeOptions,\n IMinimalAudioContext,\n IMinimalOfflineAudioContext,\n IOfflineAudioContext,\n IReadOnlyMap\n} from '../interfaces';\nimport { ReadOnlyMap } from '../read-only-map';\nimport {\n TAudioNodeRenderer,\n TAudioParamMap,\n TAudioWorkletNodeConstructorFactory,\n TContext,\n TErrorEventHandler,\n TNativeAudioContext,\n TNativeAudioParam,\n TNativeAudioWorkletNode\n} from '../types';\n\nconst DEFAULT_OPTIONS = {\n channelCount: 2,\n // Bug #61: The channelCountMode should be 'max' according to the spec but is set to 'explicit' to achieve consistent behavior.\n channelCountMode: 'explicit',\n channelInterpretation: 'speakers',\n numberOfInputs: 1,\n numberOfOutputs: 1,\n parameterData: {},\n processorOptions: {}\n} as const;\n\nexport const createAudioWorkletNodeConstructor: TAudioWorkletNodeConstructorFactory = (\n addUnrenderedAudioWorkletNode,\n audioNodeConstructor,\n createAudioParam,\n createAudioWorkletNodeRenderer,\n createNativeAudioWorkletNode,\n getAudioNodeConnections,\n getBackupOfflineAudioContext,\n getNativeContext,\n isNativeOfflineAudioContext,\n nativeAudioWorkletNodeConstructor,\n sanitizeAudioWorkletNodeOptions,\n setActiveAudioWorkletNodeInputs,\n testAudioWorkletNodeOptionsClonability,\n wrapEventListener\n) => {\n return class AudioWorkletNode\n extends audioNodeConstructor\n implements IAudioWorkletNode\n {\n private _nativeAudioWorkletNode: TNativeAudioWorkletNode;\n\n private _onprocessorerror: null | TErrorEventHandler;\n\n private _parameters: null | TAudioParamMap;\n\n constructor(context: T, name: string, options?: Partial) {\n const nativeContext = getNativeContext(context);\n const isOffline = isNativeOfflineAudioContext(nativeContext);\n const mergedOptions = sanitizeAudioWorkletNodeOptions({ ...DEFAULT_OPTIONS, ...options });\n\n // Bug #191: Safari doesn't throw an error if the options aren't clonable.\n testAudioWorkletNodeOptionsClonability(mergedOptions);\n\n const nodeNameToProcessorConstructorMap = NODE_NAME_TO_PROCESSOR_CONSTRUCTOR_MAPS.get(nativeContext);\n const processorConstructor = nodeNameToProcessorConstructorMap?.get(name);\n // Bug #186: Chrome and Edge do not allow to create an AudioWorkletNode on a closed AudioContext.\n const nativeContextOrBackupOfflineAudioContext =\n isOffline || nativeContext.state !== 'closed'\n ? nativeContext\n : getBackupOfflineAudioContext(nativeContext) ?? nativeContext;\n const nativeAudioWorkletNode = createNativeAudioWorkletNode(\n nativeContextOrBackupOfflineAudioContext,\n isOffline ? null : ((context)).baseLatency,\n nativeAudioWorkletNodeConstructor,\n name,\n processorConstructor,\n mergedOptions\n );\n const audioWorkletNodeRenderer = >(\n (isOffline ? createAudioWorkletNodeRenderer(name, mergedOptions, processorConstructor) : null)\n );\n\n /*\n * @todo Add a mechanism to switch an AudioWorkletNode to passive once the process() function of the AudioWorkletProcessor\n * returns false.\n */\n super(context, true, nativeAudioWorkletNode, audioWorkletNodeRenderer);\n\n const parameters: [string, IAudioParam][] = [];\n\n nativeAudioWorkletNode.parameters.forEach((nativeAudioParam, nm) => {\n const audioParam = createAudioParam(this, isOffline, nativeAudioParam);\n\n parameters.push([nm, audioParam]);\n });\n\n this._nativeAudioWorkletNode = nativeAudioWorkletNode;\n this._onprocessorerror = null;\n this._parameters = new ReadOnlyMap(parameters);\n\n /*\n * Bug #86 & #87: Invoking the renderer of an AudioWorkletNode might be necessary if it has no direct or indirect connection to\n * the destination.\n */\n if (isOffline) {\n addUnrenderedAudioWorkletNode(nativeContext, >this);\n }\n\n const { activeInputs } = getAudioNodeConnections(this);\n\n setActiveAudioWorkletNodeInputs(nativeAudioWorkletNode, activeInputs);\n }\n\n get onprocessorerror(): null | TErrorEventHandler {\n return this._onprocessorerror;\n }\n\n set onprocessorerror(value) {\n const wrappedListener = typeof value === 'function' ? wrapEventListener(this, value) : null;\n\n this._nativeAudioWorkletNode.onprocessorerror = wrappedListener;\n\n const nativeOnProcessorError = this._nativeAudioWorkletNode.onprocessorerror;\n\n this._onprocessorerror =\n nativeOnProcessorError !== null && nativeOnProcessorError === wrappedListener\n ? value\n : >nativeOnProcessorError;\n }\n\n get parameters(): TAudioParamMap {\n if (this._parameters === null) {\n // @todo The definition that TypeScript uses of the AudioParamMap is lacking many methods.\n return >this._nativeAudioWorkletNode.parameters;\n }\n\n return this._parameters;\n }\n\n get port(): MessagePort {\n return this._nativeAudioWorkletNode.port;\n }\n };\n};\n","import { TNativeAudioBuffer } from '../types';\n\nexport function copyFromChannel(\n audioBuffer: TNativeAudioBuffer,\n parent: { [key: number]: Float32Array },\n key: number,\n channelNumber: number,\n bufferOffset: number\n): void;\nexport function copyFromChannel(\n audioBuffer: TNativeAudioBuffer,\n parent: { [key: string]: Float32Array },\n key: string,\n channelNumber: number,\n bufferOffset: number\n): void;\nexport function copyFromChannel(\n audioBuffer: TNativeAudioBuffer,\n // @todo There is currently no way to define something like { [ key: number | string ]: Float32Array }\n parent: any,\n key: number | string,\n channelNumber: number,\n bufferOffset: number\n): void {\n if (typeof audioBuffer.copyFromChannel === 'function') {\n // The byteLength will be 0 when the ArrayBuffer was transferred.\n if (parent[key].byteLength === 0) {\n parent[key] = new Float32Array(128);\n }\n\n audioBuffer.copyFromChannel(parent[key], channelNumber, bufferOffset);\n\n // Bug #5: Safari does not support copyFromChannel().\n } else {\n const channelData = audioBuffer.getChannelData(channelNumber);\n\n // The byteLength will be 0 when the ArrayBuffer was transferred.\n if (parent[key].byteLength === 0) {\n parent[key] = channelData.slice(bufferOffset, bufferOffset + 128);\n } else {\n const slicedInput = new Float32Array(channelData.buffer, bufferOffset * Float32Array.BYTES_PER_ELEMENT, 128);\n\n parent[key].set(slicedInput);\n }\n }\n}\n","import { TNativeAudioBuffer } from '../types';\n\nexport const copyToChannel = (\n audioBuffer: TNativeAudioBuffer,\n parent: { [key: number]: Float32Array },\n key: number,\n channelNumber: number,\n bufferOffset: number\n): void => {\n if (typeof audioBuffer.copyToChannel === 'function') {\n // The byteLength will be 0 when the ArrayBuffer was transferred.\n if (parent[key].byteLength !== 0) {\n audioBuffer.copyToChannel(parent[key], channelNumber, bufferOffset);\n }\n\n // Bug #5: Safari does not support copyToChannel().\n } else {\n // The byteLength will be 0 when the ArrayBuffer was transferred.\n if (parent[key].byteLength !== 0) {\n audioBuffer.getChannelData(channelNumber).set(parent[key], bufferOffset);\n }\n }\n};\n","export const createNestedArrays = (x: number, y: number | number[]): Float32Array[][] => {\n const arrays: Float32Array[][] = [];\n\n for (let i = 0; i < x; i += 1) {\n const array = [];\n\n const length = typeof y === 'number' ? y : y[i];\n\n for (let j = 0; j < length; j += 1) {\n array.push(new Float32Array(128));\n }\n\n arrays.push(array);\n }\n\n return arrays;\n};\n","import { NODE_TO_PROCESSOR_MAPS } from '../globals';\nimport { IAudioNode, IAudioWorkletProcessor } from '../interfaces';\nimport { TContext, TNativeAudioWorkletNode, TNativeOfflineAudioContext } from '../types';\nimport { getNativeAudioNode } from './get-native-audio-node';\nimport { getValueForKey } from './get-value-for-key';\n\nexport const getAudioWorkletProcessor = (\n nativeOfflineAudioContext: TNativeOfflineAudioContext,\n proxy: IAudioNode\n): Promise => {\n const nodeToProcessorMap = getValueForKey(NODE_TO_PROCESSOR_MAPS, nativeOfflineAudioContext);\n const nativeAudioWorkletNode = getNativeAudioNode(proxy);\n\n return getValueForKey(nodeToProcessorMap, nativeAudioWorkletNode);\n};\n","import { copyFromChannel } from '../helpers/copy-from-channel';\nimport { copyToChannel } from '../helpers/copy-to-channel';\nimport { createNestedArrays } from '../helpers/create-nested-arrays';\nimport { getAudioNodeConnections } from '../helpers/get-audio-node-connections';\nimport { getAudioWorkletProcessor } from '../helpers/get-audio-worklet-processor';\nimport { isOwnedByContext } from '../helpers/is-owned-by-context';\nimport {\n IAudioWorkletNode,\n IAudioWorkletNodeOptions,\n IAudioWorkletProcessorConstructor,\n IMinimalOfflineAudioContext,\n IOfflineAudioContext,\n IReadOnlyMap\n} from '../interfaces';\nimport {\n TAudioWorkletNodeRendererFactoryFactory,\n TExposeCurrentFrameAndCurrentTimeFunction,\n TNativeAudioBuffer,\n TNativeAudioNode,\n TNativeAudioParam,\n TNativeAudioWorkletNode,\n TNativeChannelMergerNode,\n TNativeChannelSplitterNode,\n TNativeGainNode,\n TNativeOfflineAudioContext\n} from '../types';\n\nconst processBuffer = async (\n proxy: IAudioWorkletNode,\n renderedBuffer: null | TNativeAudioBuffer,\n nativeOfflineAudioContext: TNativeOfflineAudioContext,\n options: IAudioWorkletNodeOptions,\n outputChannelCount: number[],\n processorConstructor: undefined | IAudioWorkletProcessorConstructor,\n exposeCurrentFrameAndCurrentTime: TExposeCurrentFrameAndCurrentTimeFunction\n): Promise => {\n // Ceil the length to the next full render quantum.\n // Bug #17: Safari does not yet expose the length.\n const length = renderedBuffer === null ? Math.ceil(proxy.context.length / 128) * 128 : renderedBuffer.length;\n const numberOfInputChannels = options.channelCount * options.numberOfInputs;\n const numberOfOutputChannels = outputChannelCount.reduce((sum, value) => sum + value, 0);\n const processedBuffer =\n numberOfOutputChannels === 0\n ? null\n : nativeOfflineAudioContext.createBuffer(numberOfOutputChannels, length, nativeOfflineAudioContext.sampleRate);\n\n if (processorConstructor === undefined) {\n throw new Error('Missing the processor constructor.');\n }\n\n const audioNodeConnections = getAudioNodeConnections(proxy);\n const audioWorkletProcessor = await getAudioWorkletProcessor(nativeOfflineAudioContext, proxy);\n const inputs = createNestedArrays(options.numberOfInputs, options.channelCount);\n const outputs = createNestedArrays(options.numberOfOutputs, outputChannelCount);\n const parameters: { [name: string]: Float32Array } = Array.from(proxy.parameters.keys()).reduce(\n (prmtrs, name) => ({ ...prmtrs, [name]: new Float32Array(128) }),\n {}\n );\n\n for (let i = 0; i < length; i += 128) {\n if (options.numberOfInputs > 0 && renderedBuffer !== null) {\n for (let j = 0; j < options.numberOfInputs; j += 1) {\n for (let k = 0; k < options.channelCount; k += 1) {\n copyFromChannel(renderedBuffer, inputs[j], k, k, i);\n }\n }\n }\n\n if (processorConstructor.parameterDescriptors !== undefined && renderedBuffer !== null) {\n processorConstructor.parameterDescriptors.forEach(({ name }, index) => {\n copyFromChannel(renderedBuffer, parameters, name, numberOfInputChannels + index, i);\n });\n }\n\n for (let j = 0; j < options.numberOfInputs; j += 1) {\n for (let k = 0; k < outputChannelCount[j]; k += 1) {\n // The byteLength will be 0 when the ArrayBuffer was transferred.\n if (outputs[j][k].byteLength === 0) {\n outputs[j][k] = new Float32Array(128);\n }\n }\n }\n\n try {\n const potentiallyEmptyInputs = inputs.map((input, index) => {\n if (audioNodeConnections.activeInputs[index].size === 0) {\n return [];\n }\n\n return input;\n });\n const activeSourceFlag = exposeCurrentFrameAndCurrentTime(\n i / nativeOfflineAudioContext.sampleRate,\n nativeOfflineAudioContext.sampleRate,\n () => audioWorkletProcessor.process(potentiallyEmptyInputs, outputs, parameters)\n );\n\n if (processedBuffer !== null) {\n for (let j = 0, outputChannelSplitterNodeOutput = 0; j < options.numberOfOutputs; j += 1) {\n for (let k = 0; k < outputChannelCount[j]; k += 1) {\n copyToChannel(processedBuffer, outputs[j], k, outputChannelSplitterNodeOutput + k, i);\n }\n\n outputChannelSplitterNodeOutput += outputChannelCount[j];\n }\n }\n\n if (!activeSourceFlag) {\n break;\n }\n } catch (error) {\n proxy.dispatchEvent(\n new ErrorEvent('processorerror', {\n colno: error.colno,\n filename: error.filename,\n lineno: error.lineno,\n message: error.message\n })\n );\n\n break;\n }\n }\n\n return processedBuffer;\n};\n\nexport const createAudioWorkletNodeRendererFactory: TAudioWorkletNodeRendererFactoryFactory = (\n connectAudioParam,\n connectMultipleOutputs,\n createNativeAudioBufferSourceNode,\n createNativeChannelMergerNode,\n createNativeChannelSplitterNode,\n createNativeConstantSourceNode,\n createNativeGainNode,\n deleteUnrenderedAudioWorkletNode,\n disconnectMultipleOutputs,\n exposeCurrentFrameAndCurrentTime,\n getNativeAudioNode,\n nativeAudioWorkletNodeConstructor,\n nativeOfflineAudioContextConstructor,\n renderAutomation,\n renderInputsOfAudioNode,\n renderNativeOfflineAudioContext\n) => {\n return (\n name: string,\n options: IAudioWorkletNodeOptions,\n processorConstructor: undefined | IAudioWorkletProcessorConstructor\n ) => {\n const renderedNativeAudioNodes = new WeakMap();\n\n let processedBufferPromise: null | Promise = null;\n\n const createAudioNode = async (proxy: IAudioWorkletNode, nativeOfflineAudioContext: TNativeOfflineAudioContext) => {\n let nativeAudioWorkletNode = getNativeAudioNode(proxy);\n let nativeOutputNodes: null | [TNativeChannelSplitterNode, TNativeChannelMergerNode[], TNativeGainNode] = null;\n\n const nativeAudioWorkletNodeIsOwnedByContext = isOwnedByContext(nativeAudioWorkletNode, nativeOfflineAudioContext);\n const outputChannelCount = Array.isArray(options.outputChannelCount)\n ? options.outputChannelCount\n : Array.from(options.outputChannelCount);\n\n // Bug #61: Only Chrome, Edge & Firefox have an implementation of the AudioWorkletNode yet.\n if (nativeAudioWorkletNodeConstructor === null) {\n const numberOfOutputChannels = outputChannelCount.reduce((sum, value) => sum + value, 0);\n const outputChannelSplitterNode = createNativeChannelSplitterNode(nativeOfflineAudioContext, {\n channelCount: Math.max(1, numberOfOutputChannels),\n channelCountMode: 'explicit',\n channelInterpretation: 'discrete',\n numberOfOutputs: Math.max(1, numberOfOutputChannels)\n });\n const outputChannelMergerNodes: TNativeChannelMergerNode[] = [];\n\n for (let i = 0; i < proxy.numberOfOutputs; i += 1) {\n outputChannelMergerNodes.push(\n createNativeChannelMergerNode(nativeOfflineAudioContext, {\n channelCount: 1,\n channelCountMode: 'explicit',\n channelInterpretation: 'speakers',\n numberOfInputs: outputChannelCount[i]\n })\n );\n }\n\n const outputGainNode = createNativeGainNode(nativeOfflineAudioContext, {\n channelCount: options.channelCount,\n channelCountMode: options.channelCountMode,\n channelInterpretation: options.channelInterpretation,\n gain: 1\n });\n\n outputGainNode.connect = connectMultipleOutputs.bind(null, outputChannelMergerNodes);\n outputGainNode.disconnect = disconnectMultipleOutputs.bind(null, outputChannelMergerNodes);\n\n nativeOutputNodes = [outputChannelSplitterNode, outputChannelMergerNodes, outputGainNode];\n } else if (!nativeAudioWorkletNodeIsOwnedByContext) {\n nativeAudioWorkletNode = new nativeAudioWorkletNodeConstructor(nativeOfflineAudioContext, name);\n }\n\n renderedNativeAudioNodes.set(\n nativeOfflineAudioContext,\n nativeOutputNodes === null ? nativeAudioWorkletNode : nativeOutputNodes[2]\n );\n\n if (nativeOutputNodes !== null) {\n if (processedBufferPromise === null) {\n if (processorConstructor === undefined) {\n throw new Error('Missing the processor constructor.');\n }\n\n if (nativeOfflineAudioContextConstructor === null) {\n throw new Error('Missing the native OfflineAudioContext constructor.');\n }\n\n // Bug #47: The AudioDestinationNode in Safari gets not initialized correctly.\n const numberOfInputChannels = proxy.channelCount * proxy.numberOfInputs;\n const numberOfParameters =\n processorConstructor.parameterDescriptors === undefined ? 0 : processorConstructor.parameterDescriptors.length;\n const numberOfChannels = numberOfInputChannels + numberOfParameters;\n\n const renderBuffer = async () => {\n const partialOfflineAudioContext = new nativeOfflineAudioContextConstructor(\n numberOfChannels,\n // Ceil the length to the next full render quantum.\n // Bug #17: Safari does not yet expose the length.\n Math.ceil(proxy.context.length / 128) * 128,\n nativeOfflineAudioContext.sampleRate\n );\n const gainNodes: TNativeGainNode[] = [];\n const inputChannelSplitterNodes = [];\n\n for (let i = 0; i < options.numberOfInputs; i += 1) {\n gainNodes.push(\n createNativeGainNode(partialOfflineAudioContext, {\n channelCount: options.channelCount,\n channelCountMode: options.channelCountMode,\n channelInterpretation: options.channelInterpretation,\n gain: 1\n })\n );\n inputChannelSplitterNodes.push(\n createNativeChannelSplitterNode(partialOfflineAudioContext, {\n channelCount: options.channelCount,\n channelCountMode: 'explicit',\n channelInterpretation: 'discrete',\n numberOfOutputs: options.channelCount\n })\n );\n }\n\n const constantSourceNodes = await Promise.all(\n Array.from(proxy.parameters.values()).map(async (audioParam) => {\n const constantSourceNode = createNativeConstantSourceNode(partialOfflineAudioContext, {\n channelCount: 1,\n channelCountMode: 'explicit',\n channelInterpretation: 'discrete',\n offset: audioParam.value\n });\n\n await renderAutomation(partialOfflineAudioContext, audioParam, constantSourceNode.offset);\n\n return constantSourceNode;\n })\n );\n\n const inputChannelMergerNode = createNativeChannelMergerNode(partialOfflineAudioContext, {\n channelCount: 1,\n channelCountMode: 'explicit',\n channelInterpretation: 'speakers',\n numberOfInputs: Math.max(1, numberOfInputChannels + numberOfParameters)\n });\n\n for (let i = 0; i < options.numberOfInputs; i += 1) {\n gainNodes[i].connect(inputChannelSplitterNodes[i]);\n\n for (let j = 0; j < options.channelCount; j += 1) {\n inputChannelSplitterNodes[i].connect(inputChannelMergerNode, j, i * options.channelCount + j);\n }\n }\n\n for (const [index, constantSourceNode] of constantSourceNodes.entries()) {\n constantSourceNode.connect(inputChannelMergerNode, 0, numberOfInputChannels + index);\n constantSourceNode.start(0);\n }\n\n inputChannelMergerNode.connect(partialOfflineAudioContext.destination);\n\n await Promise.all(\n gainNodes.map((gainNode) => renderInputsOfAudioNode(proxy, partialOfflineAudioContext, gainNode))\n );\n\n return renderNativeOfflineAudioContext(partialOfflineAudioContext);\n };\n\n processedBufferPromise = processBuffer(\n proxy,\n numberOfChannels === 0 ? null : await renderBuffer(),\n nativeOfflineAudioContext,\n options,\n outputChannelCount,\n processorConstructor,\n exposeCurrentFrameAndCurrentTime\n );\n }\n\n const processedBuffer = await processedBufferPromise;\n const audioBufferSourceNode = createNativeAudioBufferSourceNode(nativeOfflineAudioContext, {\n buffer: null,\n channelCount: 2,\n channelCountMode: 'max',\n channelInterpretation: 'speakers',\n loop: false,\n loopEnd: 0,\n loopStart: 0,\n playbackRate: 1\n });\n const [outputChannelSplitterNode, outputChannelMergerNodes, outputGainNode] = nativeOutputNodes;\n\n if (processedBuffer !== null) {\n audioBufferSourceNode.buffer = processedBuffer;\n audioBufferSourceNode.start(0);\n }\n\n audioBufferSourceNode.connect(outputChannelSplitterNode);\n\n for (let i = 0, outputChannelSplitterNodeOutput = 0; i < proxy.numberOfOutputs; i += 1) {\n const outputChannelMergerNode = outputChannelMergerNodes[i];\n\n for (let j = 0; j < outputChannelCount[i]; j += 1) {\n outputChannelSplitterNode.connect(outputChannelMergerNode, outputChannelSplitterNodeOutput + j, j);\n }\n\n outputChannelSplitterNodeOutput += outputChannelCount[i];\n }\n\n return outputGainNode;\n }\n\n if (!nativeAudioWorkletNodeIsOwnedByContext) {\n for (const [nm, audioParam] of proxy.parameters.entries()) {\n await renderAutomation(\n nativeOfflineAudioContext,\n audioParam,\n // @todo The definition that TypeScript uses of the AudioParamMap is lacking many methods.\n (>nativeAudioWorkletNode.parameters).get(nm)\n );\n }\n } else {\n for (const [nm, audioParam] of proxy.parameters.entries()) {\n await connectAudioParam(\n nativeOfflineAudioContext,\n audioParam,\n // @todo The definition that TypeScript uses of the AudioParamMap is lacking many methods.\n (>nativeAudioWorkletNode.parameters).get(nm)\n );\n }\n }\n\n await renderInputsOfAudioNode(proxy, nativeOfflineAudioContext, nativeAudioWorkletNode);\n\n return nativeAudioWorkletNode;\n };\n\n return {\n render(\n proxy: IAudioWorkletNode,\n nativeOfflineAudioContext: TNativeOfflineAudioContext\n ): Promise {\n deleteUnrenderedAudioWorkletNode(nativeOfflineAudioContext, proxy);\n\n const renderedNativeAudioWorkletNodeOrGainNode = renderedNativeAudioNodes.get(nativeOfflineAudioContext);\n\n if (renderedNativeAudioWorkletNodeOrGainNode !== undefined) {\n return Promise.resolve(renderedNativeAudioWorkletNodeOrGainNode);\n }\n\n return createAudioNode(proxy, nativeOfflineAudioContext);\n }\n };\n };\n};\n","import { MOST_NEGATIVE_SINGLE_FLOAT, MOST_POSITIVE_SINGLE_FLOAT } from '../constants';\nimport { IAudioParam, IBiquadFilterNode, IBiquadFilterOptions } from '../interfaces';\nimport { TAudioNodeRenderer, TBiquadFilterNodeConstructorFactory, TBiquadFilterType, TContext, TNativeBiquadFilterNode } from '../types';\n\nconst DEFAULT_OPTIONS = {\n Q: 1,\n channelCount: 2,\n channelCountMode: 'max',\n channelInterpretation: 'speakers',\n detune: 0,\n frequency: 350,\n gain: 0,\n type: 'lowpass'\n} as const;\n\nexport const createBiquadFilterNodeConstructor: TBiquadFilterNodeConstructorFactory = (\n audioNodeConstructor,\n createAudioParam,\n createBiquadFilterNodeRenderer,\n createInvalidAccessError,\n createNativeBiquadFilterNode,\n getNativeContext,\n isNativeOfflineAudioContext,\n setAudioNodeTailTime\n) => {\n return class BiquadFilterNode extends audioNodeConstructor implements IBiquadFilterNode {\n private _detune: IAudioParam;\n\n private _frequency: IAudioParam;\n\n private _gain: IAudioParam;\n\n private _nativeBiquadFilterNode: TNativeBiquadFilterNode;\n\n private _Q: IAudioParam;\n\n constructor(context: T, options?: Partial) {\n const nativeContext = getNativeContext(context);\n const mergedOptions = { ...DEFAULT_OPTIONS, ...options };\n const nativeBiquadFilterNode = createNativeBiquadFilterNode(nativeContext, mergedOptions);\n const isOffline = isNativeOfflineAudioContext(nativeContext);\n const biquadFilterNodeRenderer = >(isOffline ? createBiquadFilterNodeRenderer() : null);\n\n super(context, false, nativeBiquadFilterNode, biquadFilterNodeRenderer);\n\n // Bug #80: Safari does not export the correct values for maxValue and minValue.\n this._Q = createAudioParam(this, isOffline, nativeBiquadFilterNode.Q, MOST_POSITIVE_SINGLE_FLOAT, MOST_NEGATIVE_SINGLE_FLOAT);\n // Bug #78: Firefox & Safari do not export the correct values for maxValue and minValue.\n this._detune = createAudioParam(\n this,\n isOffline,\n nativeBiquadFilterNode.detune,\n 1200 * Math.log2(MOST_POSITIVE_SINGLE_FLOAT),\n -1200 * Math.log2(MOST_POSITIVE_SINGLE_FLOAT)\n );\n // Bug #77: Firefox & Safari do not export the correct value for minValue.\n this._frequency = createAudioParam(this, isOffline, nativeBiquadFilterNode.frequency, context.sampleRate / 2, 0);\n // Bug #79: Firefox & Safari do not export the correct values for maxValue and minValue.\n this._gain = createAudioParam(\n this,\n isOffline,\n nativeBiquadFilterNode.gain,\n 40 * Math.log10(MOST_POSITIVE_SINGLE_FLOAT),\n MOST_NEGATIVE_SINGLE_FLOAT\n );\n this._nativeBiquadFilterNode = nativeBiquadFilterNode;\n\n // @todo Determine a meaningful tail-time instead of just using one second.\n setAudioNodeTailTime(this, 1);\n }\n\n get detune(): IAudioParam {\n return this._detune;\n }\n\n get frequency(): IAudioParam {\n return this._frequency;\n }\n\n get gain(): IAudioParam {\n return this._gain;\n }\n\n get Q(): IAudioParam {\n return this._Q;\n }\n\n get type(): TBiquadFilterType {\n return this._nativeBiquadFilterNode.type;\n }\n\n set type(value) {\n this._nativeBiquadFilterNode.type = value;\n }\n\n public getFrequencyResponse(frequencyHz: Float32Array, magResponse: Float32Array, phaseResponse: Float32Array): void {\n // Bug #189: Safari does throw an InvalidStateError.\n try {\n this._nativeBiquadFilterNode.getFrequencyResponse(frequencyHz, magResponse, phaseResponse);\n } catch (err) {\n if (err.code === 11) {\n throw createInvalidAccessError();\n }\n\n throw err;\n }\n\n // Bug #68: Safari does not throw an error if the parameters differ in their length.\n if (frequencyHz.length !== magResponse.length || magResponse.length !== phaseResponse.length) {\n throw createInvalidAccessError();\n }\n }\n };\n};\n","import { IChannelMergerOptions } from '../interfaces';\nimport { TAudioNodeRenderer, TChannelMergerNodeConstructorFactory, TContext } from '../types';\n\nconst DEFAULT_OPTIONS = {\n channelCount: 1,\n channelCountMode: 'explicit',\n channelInterpretation: 'speakers',\n numberOfInputs: 6\n} as const;\n\nexport const createChannelMergerNodeConstructor: TChannelMergerNodeConstructorFactory = (\n audioNodeConstructor,\n createChannelMergerNodeRenderer,\n createNativeChannelMergerNode,\n getNativeContext,\n isNativeOfflineAudioContext\n) => {\n return class ChannelMergerNode extends audioNodeConstructor {\n constructor(context: T, options?: Partial) {\n const nativeContext = getNativeContext(context);\n const mergedOptions = { ...DEFAULT_OPTIONS, ...options };\n const nativeChannelMergerNode = createNativeChannelMergerNode(nativeContext, mergedOptions);\n const channelMergerNodeRenderer = >(\n (isNativeOfflineAudioContext(nativeContext) ? createChannelMergerNodeRenderer() : null)\n );\n\n super(context, false, nativeChannelMergerNode, channelMergerNodeRenderer);\n }\n };\n};\n","import { IChannelSplitterOptions } from '../interfaces';\nimport { TAudioNodeRenderer, TChannelSplitterNodeConstructorFactory, TContext } from '../types';\n\nconst DEFAULT_OPTIONS = {\n channelCount: 6,\n channelCountMode: 'explicit',\n channelInterpretation: 'discrete',\n numberOfOutputs: 6\n} as const;\n\nexport const createChannelSplitterNodeConstructor: TChannelSplitterNodeConstructorFactory = (\n audioNodeConstructor,\n createChannelSplitterNodeRenderer,\n createNativeChannelSplitterNode,\n getNativeContext,\n isNativeOfflineAudioContext,\n sanitizeChannelSplitterOptions\n) => {\n return class ChannelSplitterNode extends audioNodeConstructor {\n constructor(context: T, options?: Partial) {\n const nativeContext = getNativeContext(context);\n const mergedOptions = sanitizeChannelSplitterOptions({ ...DEFAULT_OPTIONS, ...options });\n const nativeChannelSplitterNode = createNativeChannelSplitterNode(nativeContext, mergedOptions);\n const channelSplitterNodeRenderer = >(\n (isNativeOfflineAudioContext(nativeContext) ? createChannelSplitterNodeRenderer() : null)\n );\n\n super(context, false, nativeChannelSplitterNode, channelSplitterNodeRenderer);\n }\n };\n};\n","import { MOST_NEGATIVE_SINGLE_FLOAT, MOST_POSITIVE_SINGLE_FLOAT } from '../constants';\nimport { isActiveAudioNode } from '../helpers/is-active-audio-node';\nimport { setInternalStateToActive } from '../helpers/set-internal-state-to-active';\nimport { setInternalStateToPassive } from '../helpers/set-internal-state-to-passive';\nimport { IAudioParam, IAudioScheduledSourceNodeEventMap, IConstantSourceNode, IConstantSourceOptions } from '../interfaces';\nimport {\n TConstantSourceNodeConstructorFactory,\n TConstantSourceNodeRenderer,\n TContext,\n TEventHandler,\n TNativeConstantSourceNode\n} from '../types';\n\nconst DEFAULT_OPTIONS = {\n channelCount: 2,\n channelCountMode: 'max',\n channelInterpretation: 'speakers',\n offset: 1\n} as const;\n\nexport const createConstantSourceNodeConstructor: TConstantSourceNodeConstructorFactory = (\n audioNodeConstructor,\n createAudioParam,\n createConstantSourceNodeRendererFactory,\n createNativeConstantSourceNode,\n getNativeContext,\n isNativeOfflineAudioContext,\n wrapEventListener\n) => {\n return class ConstantSourceNode\n extends audioNodeConstructor\n implements IConstantSourceNode\n {\n private _constantSourceNodeRenderer: TConstantSourceNodeRenderer;\n\n private _nativeConstantSourceNode: TNativeConstantSourceNode;\n\n private _offset: IAudioParam;\n\n private _onended: null | TEventHandler;\n\n constructor(context: T, options?: Partial) {\n const nativeContext = getNativeContext(context);\n const mergedOptions = { ...DEFAULT_OPTIONS, ...options };\n const nativeConstantSourceNode = createNativeConstantSourceNode(nativeContext, mergedOptions);\n const isOffline = isNativeOfflineAudioContext(nativeContext);\n const constantSourceNodeRenderer = >(\n (isOffline ? createConstantSourceNodeRendererFactory() : null)\n );\n\n super(context, false, nativeConstantSourceNode, constantSourceNodeRenderer);\n\n this._constantSourceNodeRenderer = constantSourceNodeRenderer;\n this._nativeConstantSourceNode = nativeConstantSourceNode;\n /*\n * Bug #62 & #74: Safari does not support ConstantSourceNodes and does not export the correct values for maxValue and minValue\n * for GainNodes.\n */\n this._offset = createAudioParam(\n this,\n isOffline,\n nativeConstantSourceNode.offset,\n MOST_POSITIVE_SINGLE_FLOAT,\n MOST_NEGATIVE_SINGLE_FLOAT\n );\n this._onended = null;\n }\n\n get offset(): IAudioParam {\n return this._offset;\n }\n\n get onended(): null | TEventHandler {\n return this._onended;\n }\n\n set onended(value) {\n const wrappedListener = typeof value === 'function' ? wrapEventListener(this, value) : null;\n\n this._nativeConstantSourceNode.onended = wrappedListener;\n\n const nativeOnEnded = this._nativeConstantSourceNode.onended;\n\n this._onended = nativeOnEnded !== null && nativeOnEnded === wrappedListener ? value : nativeOnEnded;\n }\n\n public start(when = 0): void {\n this._nativeConstantSourceNode.start(when);\n\n if (this._constantSourceNodeRenderer !== null) {\n this._constantSourceNodeRenderer.start = when;\n }\n\n if (this.context.state !== 'closed') {\n setInternalStateToActive(this);\n\n const resetInternalStateToPassive = () => {\n this._nativeConstantSourceNode.removeEventListener('ended', resetInternalStateToPassive);\n\n if (isActiveAudioNode(this)) {\n setInternalStateToPassive(this);\n }\n };\n\n this._nativeConstantSourceNode.addEventListener('ended', resetInternalStateToPassive);\n }\n }\n\n public stop(when = 0): void {\n this._nativeConstantSourceNode.stop(when);\n\n if (this._constantSourceNodeRenderer !== null) {\n this._constantSourceNodeRenderer.stop = when;\n }\n }\n };\n};\n","import { IConvolverNode, IConvolverOptions } from '../interfaces';\nimport { TAnyAudioBuffer, TAudioNodeRenderer, TContext, TConvolverNodeConstructorFactory, TNativeConvolverNode } from '../types';\n\nconst DEFAULT_OPTIONS = {\n buffer: null,\n channelCount: 2,\n channelCountMode: 'clamped-max',\n channelInterpretation: 'speakers',\n disableNormalization: false\n} as const;\n\nexport const createConvolverNodeConstructor: TConvolverNodeConstructorFactory = (\n audioNodeConstructor,\n createConvolverNodeRenderer,\n createNativeConvolverNode,\n getNativeContext,\n isNativeOfflineAudioContext,\n setAudioNodeTailTime\n) => {\n return class ConvolverNode extends audioNodeConstructor implements IConvolverNode {\n private _isBufferNullified: boolean;\n\n private _nativeConvolverNode: TNativeConvolverNode;\n\n constructor(context: T, options?: Partial) {\n const nativeContext = getNativeContext(context);\n const mergedOptions = { ...DEFAULT_OPTIONS, ...options };\n const nativeConvolverNode = createNativeConvolverNode(nativeContext, mergedOptions);\n const isOffline = isNativeOfflineAudioContext(nativeContext);\n const convolverNodeRenderer = >(isOffline ? createConvolverNodeRenderer() : null);\n\n super(context, false, nativeConvolverNode, convolverNodeRenderer);\n\n this._isBufferNullified = false;\n this._nativeConvolverNode = nativeConvolverNode;\n\n if (mergedOptions.buffer !== null) {\n setAudioNodeTailTime(this, mergedOptions.buffer.duration);\n }\n }\n\n get buffer(): null | TAnyAudioBuffer {\n if (this._isBufferNullified) {\n return null;\n }\n\n return this._nativeConvolverNode.buffer;\n }\n\n set buffer(value) {\n this._nativeConvolverNode.buffer = value;\n\n // Bug #115: Safari does not allow to set the buffer to null.\n if (value === null && this._nativeConvolverNode.buffer !== null) {\n const nativeContext = this._nativeConvolverNode.context;\n\n this._nativeConvolverNode.buffer = nativeContext.createBuffer(1, 1, nativeContext.sampleRate);\n this._isBufferNullified = true;\n\n setAudioNodeTailTime(this, 0);\n } else {\n this._isBufferNullified = false;\n\n setAudioNodeTailTime(this, this._nativeConvolverNode.buffer === null ? 0 : this._nativeConvolverNode.buffer.duration);\n }\n }\n\n get normalize(): boolean {\n return this._nativeConvolverNode.normalize;\n }\n\n set normalize(value) {\n this._nativeConvolverNode.normalize = value;\n }\n };\n};\n","export const detachArrayBuffer = (arrayBuffer: ArrayBuffer): Promise => {\n const { port1, port2 } = new MessageChannel();\n\n return new Promise((resolve) => {\n const closeAndResolve = () => {\n port2.onmessage = null;\n\n port1.close();\n port2.close();\n\n resolve();\n };\n\n port2.onmessage = () => closeAndResolve();\n\n try {\n port1.postMessage(arrayBuffer, [arrayBuffer]);\n } finally {\n closeAndResolve();\n }\n });\n};\n","import { IAudioParam, IDelayNode, IDelayOptions } from '../interfaces';\nimport { TAudioNodeRenderer, TContext, TDelayNodeConstructorFactory } from '../types';\n\nconst DEFAULT_OPTIONS = {\n channelCount: 2,\n channelCountMode: 'max',\n channelInterpretation: 'speakers',\n delayTime: 0,\n maxDelayTime: 1\n} as const;\n\nexport const createDelayNodeConstructor: TDelayNodeConstructorFactory = (\n audioNodeConstructor,\n createAudioParam,\n createDelayNodeRenderer,\n createNativeDelayNode,\n getNativeContext,\n isNativeOfflineAudioContext,\n setAudioNodeTailTime\n) => {\n return class DelayNode extends audioNodeConstructor implements IDelayNode {\n private _delayTime: IAudioParam;\n\n constructor(context: T, options?: Partial) {\n const nativeContext = getNativeContext(context);\n const mergedOptions = { ...DEFAULT_OPTIONS, ...options };\n const nativeDelayNode = createNativeDelayNode(nativeContext, mergedOptions);\n const isOffline = isNativeOfflineAudioContext(nativeContext);\n const delayNodeRenderer = >(isOffline ? createDelayNodeRenderer(mergedOptions.maxDelayTime) : null);\n\n super(context, false, nativeDelayNode, delayNodeRenderer);\n\n this._delayTime = createAudioParam(this, isOffline, nativeDelayNode.delayTime);\n\n setAudioNodeTailTime(this, mergedOptions.maxDelayTime);\n }\n\n get delayTime(): IAudioParam {\n return this._delayTime;\n }\n };\n};\n","import { isNativeAudioNode } from '../guards/native-audio-node';\nimport { TDisconnectMultipleOutputsFactory, TIndexSizeErrorFactory, TNativeAudioNode } from '../types';\n\nconst getOutputAudioNodeAtIndex = (\n createIndexSizeError: TIndexSizeErrorFactory,\n outputAudioNodes: TNativeAudioNode[],\n output: number\n): TNativeAudioNode => {\n const outputAudioNode = outputAudioNodes[output];\n\n if (outputAudioNode === undefined) {\n throw createIndexSizeError();\n }\n\n return outputAudioNode;\n};\n\nexport const createDisconnectMultipleOutputs: TDisconnectMultipleOutputsFactory = (createIndexSizeError) => {\n return (outputAudioNodes, destinationOrOutput = undefined, output = undefined, input = 0) => {\n if (destinationOrOutput === undefined) {\n return outputAudioNodes.forEach((outputAudioNode) => outputAudioNode.disconnect());\n }\n\n if (typeof destinationOrOutput === 'number') {\n return getOutputAudioNodeAtIndex(createIndexSizeError, outputAudioNodes, destinationOrOutput).disconnect();\n }\n\n if (isNativeAudioNode(destinationOrOutput)) {\n if (output === undefined) {\n return outputAudioNodes.forEach((outputAudioNode) => outputAudioNode.disconnect(destinationOrOutput));\n }\n\n if (input === undefined) {\n return getOutputAudioNodeAtIndex(createIndexSizeError, outputAudioNodes, output).disconnect(destinationOrOutput, 0);\n }\n\n return getOutputAudioNodeAtIndex(createIndexSizeError, outputAudioNodes, output).disconnect(destinationOrOutput, 0, input);\n }\n\n if (output === undefined) {\n return outputAudioNodes.forEach((outputAudioNode) => outputAudioNode.disconnect(destinationOrOutput));\n }\n\n return getOutputAudioNodeAtIndex(createIndexSizeError, outputAudioNodes, output).disconnect(destinationOrOutput, 0);\n };\n};\n","import { IAudioParam, IDynamicsCompressorNode, IDynamicsCompressorOptions } from '../interfaces';\nimport {\n TAudioNodeRenderer,\n TChannelCountMode,\n TContext,\n TDynamicsCompressorNodeConstructorFactory,\n TNativeAudioParam,\n TNativeDynamicsCompressorNode\n} from '../types';\n\nconst DEFAULT_OPTIONS = {\n attack: 0.003,\n channelCount: 2,\n channelCountMode: 'clamped-max',\n channelInterpretation: 'speakers',\n knee: 30,\n ratio: 12,\n release: 0.25,\n threshold: -24\n} as const;\n\nexport const createDynamicsCompressorNodeConstructor: TDynamicsCompressorNodeConstructorFactory = (\n audioNodeConstructor,\n createAudioParam,\n createDynamicsCompressorNodeRenderer,\n createNativeDynamicsCompressorNode,\n createNotSupportedError,\n getNativeContext,\n isNativeOfflineAudioContext,\n setAudioNodeTailTime\n) => {\n return class DynamicsCompressorNode extends audioNodeConstructor implements IDynamicsCompressorNode {\n private _attack: IAudioParam;\n\n private _knee: IAudioParam;\n\n private _nativeDynamicsCompressorNode: TNativeDynamicsCompressorNode;\n\n private _ratio: IAudioParam;\n\n private _release: IAudioParam;\n\n private _threshold: IAudioParam;\n\n constructor(context: T, options?: Partial) {\n const nativeContext = getNativeContext(context);\n const mergedOptions = { ...DEFAULT_OPTIONS, ...options };\n const nativeDynamicsCompressorNode = createNativeDynamicsCompressorNode(nativeContext, mergedOptions);\n const isOffline = isNativeOfflineAudioContext(nativeContext);\n const dynamicsCompressorNodeRenderer = >(isOffline ? createDynamicsCompressorNodeRenderer() : null);\n\n super(context, false, nativeDynamicsCompressorNode, dynamicsCompressorNodeRenderer);\n\n this._attack = createAudioParam(this, isOffline, nativeDynamicsCompressorNode.attack);\n this._knee = createAudioParam(this, isOffline, nativeDynamicsCompressorNode.knee);\n this._nativeDynamicsCompressorNode = nativeDynamicsCompressorNode;\n this._ratio = createAudioParam(this, isOffline, nativeDynamicsCompressorNode.ratio);\n this._release = createAudioParam(this, isOffline, nativeDynamicsCompressorNode.release);\n this._threshold = createAudioParam(this, isOffline, nativeDynamicsCompressorNode.threshold);\n\n setAudioNodeTailTime(this, 0.006);\n }\n\n get attack(): IAudioParam {\n return this._attack;\n }\n\n // Bug #108: Safari allows a channelCount of three and above which is why the getter and setter needs to be overwritten here.\n get channelCount(): number {\n return this._nativeDynamicsCompressorNode.channelCount;\n }\n\n set channelCount(value) {\n const previousChannelCount = this._nativeDynamicsCompressorNode.channelCount;\n\n this._nativeDynamicsCompressorNode.channelCount = value;\n\n if (value > 2) {\n this._nativeDynamicsCompressorNode.channelCount = previousChannelCount;\n\n throw createNotSupportedError();\n }\n }\n\n /*\n * Bug #109: Only Chrome and Firefox disallow a channelCountMode of 'max' yet which is why the getter and setter needs to be\n * overwritten here.\n */\n get channelCountMode(): TChannelCountMode {\n return this._nativeDynamicsCompressorNode.channelCountMode;\n }\n\n set channelCountMode(value) {\n const previousChannelCount = this._nativeDynamicsCompressorNode.channelCountMode;\n\n this._nativeDynamicsCompressorNode.channelCountMode = value;\n\n if (value === 'max') {\n this._nativeDynamicsCompressorNode.channelCountMode = previousChannelCount;\n\n throw createNotSupportedError();\n }\n }\n\n get knee(): IAudioParam {\n return this._knee;\n }\n\n get ratio(): IAudioParam {\n return this._ratio;\n }\n\n get reduction(): number {\n // Bug #111: Safari returns an AudioParam instead of a number.\n if (typeof ((this._nativeDynamicsCompressorNode.reduction)).value === 'number') {\n return ((this._nativeDynamicsCompressorNode.reduction)).value;\n }\n\n return this._nativeDynamicsCompressorNode.reduction;\n }\n\n get release(): IAudioParam {\n return this._release;\n }\n\n get threshold(): IAudioParam {\n return this._threshold;\n }\n };\n};\n","import { MOST_NEGATIVE_SINGLE_FLOAT, MOST_POSITIVE_SINGLE_FLOAT } from '../constants';\nimport { IAudioParam, IGainNode, IGainOptions } from '../interfaces';\nimport { TAudioNodeRenderer, TContext, TGainNodeConstructorFactory } from '../types';\n\nconst DEFAULT_OPTIONS = {\n channelCount: 2,\n channelCountMode: 'max',\n channelInterpretation: 'speakers',\n gain: 1\n} as const;\n\nexport const createGainNodeConstructor: TGainNodeConstructorFactory = (\n audioNodeConstructor,\n createAudioParam,\n createGainNodeRenderer,\n createNativeGainNode,\n getNativeContext,\n isNativeOfflineAudioContext\n) => {\n return class GainNode extends audioNodeConstructor implements IGainNode {\n private _gain: IAudioParam;\n\n constructor(context: T, options?: Partial) {\n const nativeContext = getNativeContext(context);\n const mergedOptions = { ...DEFAULT_OPTIONS, ...options };\n const nativeGainNode = createNativeGainNode(nativeContext, mergedOptions);\n const isOffline = isNativeOfflineAudioContext(nativeContext);\n const gainNodeRenderer = >(isOffline ? createGainNodeRenderer() : null);\n\n super(context, false, nativeGainNode, gainNodeRenderer);\n\n // Bug #74: Safari does not export the correct values for maxValue and minValue.\n this._gain = createAudioParam(this, isOffline, nativeGainNode.gain, MOST_POSITIVE_SINGLE_FLOAT, MOST_NEGATIVE_SINGLE_FLOAT);\n }\n\n get gain(): IAudioParam {\n return this._gain;\n }\n };\n};\n","import { TInvalidStateErrorFactory } from '../types';\n\nexport const createInvalidStateError: TInvalidStateErrorFactory = () => new DOMException('', 'InvalidStateError');\n","import { TInvalidAccessErrorFactory } from '../types';\n\nexport const createInvalidAccessError: TInvalidAccessErrorFactory = () => new DOMException('', 'InvalidAccessError');\n","import { wrapIIRFilterNodeGetFrequencyResponseMethod } from '../helpers/wrap-iir-filter-node-get-frequency-response-method';\nimport { IIIRFilterNode, IIIRFilterOptions, IMinimalAudioContext } from '../interfaces';\nimport { TAudioNodeRenderer, TContext, TIIRFilterNodeConstructorFactory, TNativeIIRFilterNode } from '../types';\n\nconst DEFAULT_OPTIONS = {\n channelCount: 2,\n channelCountMode: 'max',\n channelInterpretation: 'speakers'\n} as const;\n\nexport const createIIRFilterNodeConstructor: TIIRFilterNodeConstructorFactory = (\n audioNodeConstructor,\n createNativeIIRFilterNode,\n createIIRFilterNodeRenderer,\n getNativeContext,\n isNativeOfflineAudioContext,\n setAudioNodeTailTime\n) => {\n return class IIRFilterNode extends audioNodeConstructor implements IIIRFilterNode {\n private _nativeIIRFilterNode: TNativeIIRFilterNode;\n\n constructor(\n context: T,\n options: { feedback: IIIRFilterOptions['feedback']; feedforward: IIIRFilterOptions['feedforward'] } & Partial\n ) {\n const nativeContext = getNativeContext(context);\n const isOffline = isNativeOfflineAudioContext(nativeContext);\n const mergedOptions = { ...DEFAULT_OPTIONS, ...options };\n const nativeIIRFilterNode = createNativeIIRFilterNode(\n nativeContext,\n isOffline ? null : ((context)).baseLatency,\n mergedOptions\n );\n const iirFilterNodeRenderer = >(\n (isOffline ? createIIRFilterNodeRenderer(mergedOptions.feedback, mergedOptions.feedforward) : null)\n );\n\n super(context, false, nativeIIRFilterNode, iirFilterNodeRenderer);\n\n // Bug #23 & #24: FirefoxDeveloper does not throw an InvalidAccessError.\n // @todo Write a test which allows other browsers to remain unpatched.\n wrapIIRFilterNodeGetFrequencyResponseMethod(nativeIIRFilterNode);\n\n this._nativeIIRFilterNode = nativeIIRFilterNode;\n\n // @todo Determine a meaningful tail-time instead of just using one second.\n setAudioNodeTailTime(this, 1);\n }\n\n public getFrequencyResponse(frequencyHz: Float32Array, magResponse: Float32Array, phaseResponse: Float32Array): void {\n return this._nativeIIRFilterNode.getFrequencyResponse(frequencyHz, magResponse, phaseResponse);\n }\n };\n};\n","// This implementation as shamelessly inspired by source code of\n// tslint:disable-next-line:max-line-length\n// {@link https://chromium.googlesource.com/chromium/src.git/+/master/third_party/WebKit/Source/platform/audio/IIRFilter.cpp|Chromium's IIRFilter}.\nexport const filterBuffer = (\n feedback: Float64Array,\n feedbackLength: number,\n feedforward: Float64Array,\n feedforwardLength: number,\n minLength: number,\n xBuffer: Float32Array,\n yBuffer: Float32Array,\n bufferIndex: number,\n bufferLength: number,\n input: Float32Array,\n output: Float32Array\n) => {\n const inputLength = input.length;\n\n let i = bufferIndex;\n\n for (let j = 0; j < inputLength; j += 1) {\n let y = feedforward[0] * input[j];\n\n for (let k = 1; k < minLength; k += 1) {\n const x = (i - k) & (bufferLength - 1); // tslint:disable-line:no-bitwise\n\n y += feedforward[k] * xBuffer[x];\n y -= feedback[k] * yBuffer[x];\n }\n\n for (let k = minLength; k < feedforwardLength; k += 1) {\n y += feedforward[k] * xBuffer[(i - k) & (bufferLength - 1)]; // tslint:disable-line:no-bitwise\n }\n\n for (let k = minLength; k < feedbackLength; k += 1) {\n y -= feedback[k] * yBuffer[(i - k) & (bufferLength - 1)]; // tslint:disable-line:no-bitwise\n }\n\n xBuffer[i] = input[j];\n yBuffer[i] = y;\n\n i = (i + 1) & (bufferLength - 1); // tslint:disable-line:no-bitwise\n\n output[j] = y;\n }\n\n return i;\n};\n","import { filterBuffer } from '../helpers/filter-buffer';\nimport { isOwnedByContext } from '../helpers/is-owned-by-context';\nimport { IIIRFilterNode, IMinimalOfflineAudioContext, IOfflineAudioContext } from '../interfaces';\nimport {\n TIIRFilterNodeRendererFactoryFactory,\n TNativeAudioBuffer,\n TNativeAudioBufferSourceNode,\n TNativeIIRFilterNode,\n TNativeOfflineAudioContext\n} from '../types';\n\nconst filterFullBuffer = (\n renderedBuffer: TNativeAudioBuffer,\n nativeOfflineAudioContext: TNativeOfflineAudioContext,\n feedback: Iterable,\n feedforward: Iterable\n) => {\n const convertedFeedback = feedback instanceof Float64Array ? feedback : new Float64Array(feedback);\n const convertedFeedforward = feedforward instanceof Float64Array ? feedforward : new Float64Array(feedforward);\n const feedbackLength = convertedFeedback.length;\n const feedforwardLength = convertedFeedforward.length;\n const minLength = Math.min(feedbackLength, feedforwardLength);\n\n if (convertedFeedback[0] !== 1) {\n for (let i = 0; i < feedbackLength; i += 1) {\n convertedFeedforward[i] /= convertedFeedback[0];\n }\n\n for (let i = 1; i < feedforwardLength; i += 1) {\n convertedFeedback[i] /= convertedFeedback[0];\n }\n }\n\n const bufferLength = 32;\n const xBuffer = new Float32Array(bufferLength);\n const yBuffer = new Float32Array(bufferLength);\n\n const filteredBuffer = nativeOfflineAudioContext.createBuffer(\n renderedBuffer.numberOfChannels,\n renderedBuffer.length,\n renderedBuffer.sampleRate\n );\n\n const numberOfChannels = renderedBuffer.numberOfChannels;\n\n for (let i = 0; i < numberOfChannels; i += 1) {\n const input = renderedBuffer.getChannelData(i);\n const output = filteredBuffer.getChannelData(i);\n\n xBuffer.fill(0);\n yBuffer.fill(0);\n\n filterBuffer(\n convertedFeedback,\n feedbackLength,\n convertedFeedforward,\n feedforwardLength,\n minLength,\n xBuffer,\n yBuffer,\n 0,\n bufferLength,\n input,\n output\n );\n }\n\n return filteredBuffer;\n};\n\nexport const createIIRFilterNodeRendererFactory: TIIRFilterNodeRendererFactoryFactory = (\n createNativeAudioBufferSourceNode,\n getNativeAudioNode,\n nativeOfflineAudioContextConstructor,\n renderInputsOfAudioNode,\n renderNativeOfflineAudioContext\n) => {\n return (feedback: Iterable, feedforward: Iterable) => {\n const renderedNativeAudioNodes = new WeakMap();\n\n let filteredBufferPromise: null | Promise = null;\n\n const createAudioNode = async (proxy: IIIRFilterNode, nativeOfflineAudioContext: TNativeOfflineAudioContext) => {\n let nativeAudioBufferSourceNode: null | TNativeAudioBufferSourceNode = null;\n let nativeIIRFilterNode = getNativeAudioNode(proxy);\n\n // If the initially used nativeIIRFilterNode was not constructed on the same OfflineAudioContext it needs to be created again.\n const nativeIIRFilterNodeIsOwnedByContext = isOwnedByContext(nativeIIRFilterNode, nativeOfflineAudioContext);\n\n // Bug #9: Safari does not support IIRFilterNodes.\n if (nativeOfflineAudioContext.createIIRFilter === undefined) {\n nativeAudioBufferSourceNode = createNativeAudioBufferSourceNode(nativeOfflineAudioContext, {\n buffer: null,\n channelCount: 2,\n channelCountMode: 'max',\n channelInterpretation: 'speakers',\n loop: false,\n loopEnd: 0,\n loopStart: 0,\n playbackRate: 1\n });\n } else if (!nativeIIRFilterNodeIsOwnedByContext) {\n // @todo TypeScript defines the parameters of createIIRFilter() as arrays of numbers.\n nativeIIRFilterNode = nativeOfflineAudioContext.createIIRFilter(feedforward, feedback);\n }\n\n renderedNativeAudioNodes.set(\n nativeOfflineAudioContext,\n nativeAudioBufferSourceNode === null ? nativeIIRFilterNode : nativeAudioBufferSourceNode\n );\n\n if (nativeAudioBufferSourceNode !== null) {\n if (filteredBufferPromise === null) {\n if (nativeOfflineAudioContextConstructor === null) {\n throw new Error('Missing the native OfflineAudioContext constructor.');\n }\n\n const partialOfflineAudioContext = new nativeOfflineAudioContextConstructor(\n // Bug #47: The AudioDestinationNode in Safari gets not initialized correctly.\n proxy.context.destination.channelCount,\n // Bug #17: Safari does not yet expose the length.\n proxy.context.length,\n nativeOfflineAudioContext.sampleRate\n );\n\n filteredBufferPromise = (async () => {\n await renderInputsOfAudioNode(proxy, partialOfflineAudioContext, partialOfflineAudioContext.destination);\n\n const renderedBuffer = await renderNativeOfflineAudioContext(partialOfflineAudioContext);\n\n return filterFullBuffer(renderedBuffer, nativeOfflineAudioContext, feedback, feedforward);\n })();\n }\n\n const filteredBuffer = await filteredBufferPromise;\n\n nativeAudioBufferSourceNode.buffer = filteredBuffer;\n nativeAudioBufferSourceNode.start(0);\n\n return nativeAudioBufferSourceNode;\n }\n\n await renderInputsOfAudioNode(proxy, nativeOfflineAudioContext, nativeIIRFilterNode);\n\n return nativeIIRFilterNode;\n };\n\n return {\n render(\n proxy: IIIRFilterNode,\n nativeOfflineAudioContext: TNativeOfflineAudioContext\n ): Promise {\n const renderedNativeAudioNode = renderedNativeAudioNodes.get(nativeOfflineAudioContext);\n\n if (renderedNativeAudioNode !== undefined) {\n return Promise.resolve(renderedNativeAudioNode);\n }\n\n return createAudioNode(proxy, nativeOfflineAudioContext);\n }\n };\n };\n};\n","import { IAudioContext, IAudioNodeOptions, IMediaStreamAudioDestinationNode, IMinimalAudioContext } from '../interfaces';\nimport { TAudioNodeRenderer, TMediaStreamAudioDestinationNodeConstructorFactory, TNativeMediaStreamAudioDestinationNode } from '../types';\n\nconst DEFAULT_OPTIONS = {\n channelCount: 2,\n channelCountMode: 'explicit',\n channelInterpretation: 'speakers'\n} as const;\n\nexport const createMediaStreamAudioDestinationNodeConstructor: TMediaStreamAudioDestinationNodeConstructorFactory = (\n audioNodeConstructor,\n createNativeMediaStreamAudioDestinationNode,\n getNativeContext,\n isNativeOfflineAudioContext\n) => {\n return class MediaStreamAudioDestinationNode extends audioNodeConstructor\n implements IMediaStreamAudioDestinationNode {\n private _nativeMediaStreamAudioDestinationNode: TNativeMediaStreamAudioDestinationNode;\n\n constructor(context: T, options?: Partial) {\n const nativeContext = getNativeContext(context);\n\n // Bug #173: Safari allows to create a MediaStreamAudioDestinationNode with an OfflineAudioContext.\n if (isNativeOfflineAudioContext(nativeContext)) {\n throw new TypeError();\n }\n\n const mergedOptions = { ...DEFAULT_OPTIONS, ...options };\n const nativeMediaStreamAudioDestinationNode = createNativeMediaStreamAudioDestinationNode(nativeContext, mergedOptions);\n\n super(context, false, nativeMediaStreamAudioDestinationNode, >null);\n\n this._nativeMediaStreamAudioDestinationNode = nativeMediaStreamAudioDestinationNode;\n }\n\n get stream(): MediaStream {\n return this._nativeMediaStreamAudioDestinationNode.stream;\n }\n };\n};\n","import { TNativeContext } from '../types';\n\nexport const testPromiseSupport = (nativeContext: TNativeContext): boolean => {\n // This 12 numbers represent the 48 bytes of an empty WAVE file with a single sample.\n const uint32Array = new Uint32Array([1179011410, 40, 1163280727, 544501094, 16, 131073, 44100, 176400, 1048580, 1635017060, 4, 0]);\n\n try {\n // Bug #1: Safari requires a successCallback.\n const promise = nativeContext.decodeAudioData(uint32Array.buffer, () => {\n // Ignore the success callback.\n });\n\n if (promise === undefined) {\n return false;\n }\n\n promise.catch(() => {\n // Ignore rejected errors.\n });\n\n return true;\n } catch {\n // Ignore errors.\n }\n\n return false;\n};\n","import { deactivateAudioGraph } from '../helpers/deactivate-audio-graph';\nimport { testPromiseSupport } from '../helpers/test-promise-support';\nimport { IAudioBuffer, IMinimalOfflineAudioContext, IOfflineAudioContextOptions } from '../interfaces';\nimport { TAudioContextState, TMinimalOfflineAudioContextConstructorFactory, TNativeOfflineAudioContext } from '../types';\n\nconst DEFAULT_OPTIONS = {\n numberOfChannels: 1\n} as const;\n\nexport const createMinimalOfflineAudioContextConstructor: TMinimalOfflineAudioContextConstructorFactory = (\n cacheTestResult,\n createInvalidStateError,\n createNativeOfflineAudioContext,\n minimalBaseAudioContextConstructor,\n startRendering\n) => {\n return class MinimalOfflineAudioContext extends minimalBaseAudioContextConstructor\n implements IMinimalOfflineAudioContext {\n private _length: number;\n\n private _nativeOfflineAudioContext: TNativeOfflineAudioContext;\n\n private _state: null | TAudioContextState;\n\n constructor(options: IOfflineAudioContextOptions) {\n const { length, numberOfChannels, sampleRate } = { ...DEFAULT_OPTIONS, ...options };\n\n const nativeOfflineAudioContext = createNativeOfflineAudioContext(numberOfChannels, length, sampleRate);\n\n // #21 Safari does not support promises and therefore would fire the statechange event before the promise can be resolved.\n if (!cacheTestResult(testPromiseSupport, () => testPromiseSupport(nativeOfflineAudioContext))) {\n nativeOfflineAudioContext.addEventListener(\n 'statechange',\n (() => {\n let i = 0;\n\n const delayStateChangeEvent = (event: Event) => {\n if (this._state === 'running') {\n if (i > 0) {\n nativeOfflineAudioContext.removeEventListener('statechange', delayStateChangeEvent);\n event.stopImmediatePropagation();\n\n this._waitForThePromiseToSettle(event);\n } else {\n i += 1;\n }\n }\n };\n\n return delayStateChangeEvent;\n })()\n );\n }\n\n super(nativeOfflineAudioContext, numberOfChannels);\n\n this._length = length;\n this._nativeOfflineAudioContext = nativeOfflineAudioContext;\n this._state = null;\n }\n\n get length(): number {\n // Bug #17: Safari does not yet expose the length.\n if (this._nativeOfflineAudioContext.length === undefined) {\n return this._length;\n }\n\n return this._nativeOfflineAudioContext.length;\n }\n\n get state(): TAudioContextState {\n return this._state === null ? this._nativeOfflineAudioContext.state : this._state;\n }\n\n public startRendering(): Promise {\n /*\n * Bug #9 & #59: It is theoretically possible that startRendering() will first render a partialOfflineAudioContext. Therefore\n * the state of the nativeOfflineAudioContext might no transition to running immediately.\n */\n if (this._state === 'running') {\n return Promise.reject(createInvalidStateError());\n }\n\n this._state = 'running';\n\n return startRendering(this.destination, this._nativeOfflineAudioContext).finally(() => {\n this._state = null;\n\n deactivateAudioGraph(this);\n });\n }\n\n private _waitForThePromiseToSettle(event: Event): void {\n if (this._state === null) {\n this._nativeOfflineAudioContext.dispatchEvent(event);\n } else {\n setTimeout(() => this._waitForThePromiseToSettle(event));\n }\n }\n };\n};\n","export const assignNativeAudioNodeOption = (\n nativeAudioNode: Record,\n options: Record,\n option: T\n) => {\n const value = options[option];\n\n if (value !== undefined && value !== nativeAudioNode[option]) {\n nativeAudioNode[option] = value;\n }\n};\n","import { IAudioNodeOptions } from '../interfaces';\nimport { TNativeAudioNode } from '../types';\nimport { assignNativeAudioNodeOption } from './assign-native-audio-node-option';\n\nexport const assignNativeAudioNodeOptions = (nativeAudioNode: TNativeAudioNode, options: IAudioNodeOptions): void => {\n assignNativeAudioNodeOption(nativeAudioNode, options, 'channelCount');\n assignNativeAudioNodeOption(nativeAudioNode, options, 'channelCountMode');\n assignNativeAudioNodeOption(nativeAudioNode, options, 'channelInterpretation');\n};\n","import { TNativeAnalyserNode } from '../types';\n\nexport const testAnalyserNodeGetFloatTimeDomainDataMethodSupport = (nativeAnalyserNode: TNativeAnalyserNode): boolean => {\n return typeof nativeAnalyserNode.getFloatTimeDomainData === 'function';\n};\n","export const assignNativeAudioNodeAudioParamValue = (\n nativeAudioNode: T,\n options: U,\n audioParam: keyof T & keyof U\n) => {\n const value = options[audioParam];\n\n if (value !== undefined && value !== nativeAudioNode[audioParam].value) {\n nativeAudioNode[audioParam].value = value;\n }\n};\n","import { TNativeAudioBufferSourceNode, TNativeConstantSourceNode, TNativeOscillatorNode } from '../types';\n\nexport const wrapAudioScheduledSourceNodeStartMethodNegativeParameters = (\n nativeAudioScheduledSourceNode: TNativeAudioBufferSourceNode | TNativeConstantSourceNode | TNativeOscillatorNode\n): void => {\n nativeAudioScheduledSourceNode.start = ((start) => {\n return (when = 0, offset = 0, duration?: number) => {\n if ((typeof duration === 'number' && duration < 0) || offset < 0 || when < 0) {\n throw new RangeError(\"The parameters can't be negative.\");\n }\n\n // @todo TypeScript cannot infer the overloaded signature with 3 arguments yet.\n (<(when: number, offset: number, duration?: number) => void>start).call(nativeAudioScheduledSourceNode, when, offset, duration);\n };\n })(nativeAudioScheduledSourceNode.start);\n};\n","import { TNativeAudioBufferSourceNode, TNativeConstantSourceNode, TNativeOscillatorNode } from '../types';\n\nexport const wrapAudioScheduledSourceNodeStopMethodNegativeParameters = (\n nativeAudioScheduledSourceNode: TNativeAudioBufferSourceNode | TNativeConstantSourceNode | TNativeOscillatorNode\n): void => {\n nativeAudioScheduledSourceNode.stop = ((stop) => {\n return (when = 0) => {\n if (when < 0) {\n throw new RangeError(\"The parameter can't be negative.\");\n }\n\n stop.call(nativeAudioScheduledSourceNode, when);\n };\n })(nativeAudioScheduledSourceNode.stop);\n};\n","export const computeBufferSize = (baseLatency: null | number, sampleRate: number) => {\n if (baseLatency === null) {\n return 512;\n }\n\n return Math.max(512, Math.min(16384, Math.pow(2, Math.round(Math.log2(baseLatency * sampleRate)))));\n};\n","import { IAudioWorkletNodeOptions } from '../interfaces';\n\nexport const cloneAudioWorkletNodeOptions = (audioWorkletNodeOptions: IAudioWorkletNodeOptions): Promise => {\n return new Promise((resolve, reject) => {\n const { port1, port2 } = new MessageChannel();\n\n port1.onmessage = ({ data }) => {\n port1.close();\n port2.close();\n\n resolve(data);\n };\n port1.onmessageerror = ({ data }) => {\n port1.close();\n port2.close();\n\n reject(data);\n };\n\n // This will throw an error if the audioWorkletNodeOptions are not clonable.\n port2.postMessage(audioWorkletNodeOptions);\n });\n};\n","import { IAudioWorkletNodeOptions, IAudioWorkletProcessor, IAudioWorkletProcessorConstructor } from '../interfaces';\nimport { cloneAudioWorkletNodeOptions } from './clone-audio-worklet-node-options';\n\nexport const createAudioWorkletProcessorPromise = async (\n processorConstructor: IAudioWorkletProcessorConstructor,\n audioWorkletNodeOptions: IAudioWorkletNodeOptions\n): Promise => {\n const clonedAudioWorkletNodeOptions = await cloneAudioWorkletNodeOptions(audioWorkletNodeOptions);\n\n return new processorConstructor(clonedAudioWorkletNodeOptions);\n};\n","import { assignNativeAudioNodeAudioParamValue } from '../helpers/assign-native-audio-node-audio-param-value';\nimport { assignNativeAudioNodeOption } from '../helpers/assign-native-audio-node-option';\nimport { assignNativeAudioNodeOptions } from '../helpers/assign-native-audio-node-options';\nimport { TNativeBiquadFilterNodeFactory } from '../types';\n\nexport const createNativeBiquadFilterNode: TNativeBiquadFilterNodeFactory = (nativeContext, options) => {\n const nativeBiquadFilterNode = nativeContext.createBiquadFilter();\n\n assignNativeAudioNodeOptions(nativeBiquadFilterNode, options);\n\n assignNativeAudioNodeAudioParamValue(nativeBiquadFilterNode, options, 'Q');\n assignNativeAudioNodeAudioParamValue(nativeBiquadFilterNode, options, 'detune');\n assignNativeAudioNodeAudioParamValue(nativeBiquadFilterNode, options, 'frequency');\n assignNativeAudioNodeAudioParamValue(nativeBiquadFilterNode, options, 'gain');\n\n assignNativeAudioNodeOption(nativeBiquadFilterNode, options, 'type');\n\n return nativeBiquadFilterNode;\n};\n","import { assignNativeAudioNodeOptions } from '../helpers/assign-native-audio-node-options';\nimport { wrapChannelSplitterNode } from '../helpers/wrap-channel-splitter-node';\nimport { TNativeChannelSplitterNodeFactory } from '../types';\n\nexport const createNativeChannelSplitterNode: TNativeChannelSplitterNodeFactory = (nativeContext, options) => {\n const nativeChannelSplitterNode = nativeContext.createChannelSplitter(options.numberOfOutputs);\n\n // Bug #96: Safari does not have the correct channelCount.\n // Bug #29: Safari does not have the correct channelCountMode.\n // Bug #31: Safari does not have the correct channelInterpretation.\n assignNativeAudioNodeOptions(nativeChannelSplitterNode, options);\n\n // Bug #29, #30, #31, #32, #96 & #97: Only Chrome, Edge & Firefox partially support the spec yet.\n wrapChannelSplitterNode(nativeChannelSplitterNode);\n\n return nativeChannelSplitterNode;\n};\n","import { createInvalidStateError } from '../factories/invalid-state-error';\nimport { TNativeChannelSplitterNode } from '../types';\n\nexport const wrapChannelSplitterNode = (channelSplitterNode: TNativeChannelSplitterNode): void => {\n const channelCount = channelSplitterNode.numberOfOutputs;\n\n // Bug #97: Safari does not throw an error when attempting to change the channelCount to something other than its initial value.\n Object.defineProperty(channelSplitterNode, 'channelCount', {\n get: () => channelCount,\n set: (value) => {\n if (value !== channelCount) {\n throw createInvalidStateError();\n }\n }\n });\n\n // Bug #30: Safari does not throw an error when attempting to change the channelCountMode to something other than explicit.\n Object.defineProperty(channelSplitterNode, 'channelCountMode', {\n get: () => 'explicit',\n set: (value) => {\n if (value !== 'explicit') {\n throw createInvalidStateError();\n }\n }\n });\n\n // Bug #32: Safari does not throw an error when attempting to change the channelInterpretation to something other than discrete.\n Object.defineProperty(channelSplitterNode, 'channelInterpretation', {\n get: () => 'discrete',\n set: (value) => {\n if (value !== 'discrete') {\n throw createInvalidStateError();\n }\n }\n });\n};\n","import { TNativeAudioNode } from '../types';\n\nexport const interceptConnections = (\n original: T,\n interceptor: TNativeAudioNode\n): T & { connect: TNativeAudioNode['connect']; disconnect: TNativeAudioNode['disconnect'] } => {\n (original).connect = interceptor.connect.bind(interceptor);\n\n (original).disconnect = interceptor.disconnect.bind(interceptor);\n\n return original;\n};\n","import { assignNativeAudioNodeAudioParamValue } from '../helpers/assign-native-audio-node-audio-param-value';\nimport { assignNativeAudioNodeOptions } from '../helpers/assign-native-audio-node-options';\nimport { TNativeDelayNodeFactory } from '../types';\n\nexport const createNativeDelayNode: TNativeDelayNodeFactory = (nativeContext, options) => {\n const nativeDelayNode = nativeContext.createDelay(options.maxDelayTime);\n\n assignNativeAudioNodeOptions(nativeDelayNode, options);\n\n assignNativeAudioNodeAudioParamValue(nativeDelayNode, options, 'delayTime');\n\n return nativeDelayNode;\n};\n","import { assignNativeAudioNodeAudioParamValue } from '../helpers/assign-native-audio-node-audio-param-value';\nimport { assignNativeAudioNodeOptions } from '../helpers/assign-native-audio-node-options';\nimport { TNativeGainNodeFactory } from '../types';\n\nexport const createNativeGainNode: TNativeGainNodeFactory = (nativeContext, options) => {\n const nativeGainNode = nativeContext.createGain();\n\n assignNativeAudioNodeOptions(nativeGainNode, options);\n\n assignNativeAudioNodeAudioParamValue(nativeGainNode, options, 'gain');\n\n return nativeGainNode;\n};\n","import { computeBufferSize } from '../helpers/compute-buffer-size';\nimport { filterBuffer } from '../helpers/filter-buffer';\nimport { interceptConnections } from '../helpers/intercept-connections';\nimport { TNativeAudioNode, TNativeIIRFilterNode, TNativeIIRFilterNodeFakerFactoryFactory } from '../types';\n\nfunction divide(a: [number, number], b: [number, number]): [number, number] {\n const denominator = b[0] * b[0] + b[1] * b[1];\n\n return [(a[0] * b[0] + a[1] * b[1]) / denominator, (a[1] * b[0] - a[0] * b[1]) / denominator];\n}\n\nfunction multiply(a: [number, number], b: [number, number]): [number, number] {\n return [a[0] * b[0] - a[1] * b[1], a[0] * b[1] + a[1] * b[0]];\n}\n\nfunction evaluatePolynomial(coefficient: Float64Array, z: [number, number]): [number, number] {\n let result: [number, number] = [0, 0];\n\n for (let i = coefficient.length - 1; i >= 0; i -= 1) {\n result = multiply(result, z);\n\n result[0] += coefficient[i];\n }\n\n return result;\n}\n\nexport const createNativeIIRFilterNodeFakerFactory: TNativeIIRFilterNodeFakerFactoryFactory = (\n createInvalidAccessError,\n createInvalidStateError,\n createNativeScriptProcessorNode,\n createNotSupportedError\n) => {\n return (nativeContext, baseLatency, { channelCount, channelCountMode, channelInterpretation, feedback, feedforward }) => {\n const bufferSize = computeBufferSize(baseLatency, nativeContext.sampleRate);\n const convertedFeedback = feedback instanceof Float64Array ? feedback : new Float64Array(feedback);\n const convertedFeedforward = feedforward instanceof Float64Array ? feedforward : new Float64Array(feedforward);\n const feedbackLength = convertedFeedback.length;\n const feedforwardLength = convertedFeedforward.length;\n const minLength = Math.min(feedbackLength, feedforwardLength);\n\n if (feedbackLength === 0 || feedbackLength > 20) {\n throw createNotSupportedError();\n }\n\n if (convertedFeedback[0] === 0) {\n throw createInvalidStateError();\n }\n\n if (feedforwardLength === 0 || feedforwardLength > 20) {\n throw createNotSupportedError();\n }\n\n if (convertedFeedforward[0] === 0) {\n throw createInvalidStateError();\n }\n\n if (convertedFeedback[0] !== 1) {\n for (let i = 0; i < feedforwardLength; i += 1) {\n convertedFeedforward[i] /= convertedFeedback[0];\n }\n\n for (let i = 1; i < feedbackLength; i += 1) {\n convertedFeedback[i] /= convertedFeedback[0];\n }\n }\n\n const scriptProcessorNode = createNativeScriptProcessorNode(nativeContext, bufferSize, channelCount, channelCount);\n\n scriptProcessorNode.channelCount = channelCount;\n scriptProcessorNode.channelCountMode = channelCountMode;\n scriptProcessorNode.channelInterpretation = channelInterpretation;\n\n const bufferLength = 32;\n const bufferIndexes: number[] = [];\n const xBuffers: Float32Array[] = [];\n const yBuffers: Float32Array[] = [];\n\n for (let i = 0; i < channelCount; i += 1) {\n bufferIndexes.push(0);\n\n const xBuffer = new Float32Array(bufferLength);\n const yBuffer = new Float32Array(bufferLength);\n\n xBuffer.fill(0);\n yBuffer.fill(0);\n\n xBuffers.push(xBuffer);\n yBuffers.push(yBuffer);\n }\n\n // tslint:disable-next-line:deprecation\n scriptProcessorNode.onaudioprocess = (event: AudioProcessingEvent) => {\n const inputBuffer = event.inputBuffer;\n const outputBuffer = event.outputBuffer;\n\n const numberOfChannels = inputBuffer.numberOfChannels;\n\n for (let i = 0; i < numberOfChannels; i += 1) {\n const input = inputBuffer.getChannelData(i);\n const output = outputBuffer.getChannelData(i);\n\n bufferIndexes[i] = filterBuffer(\n convertedFeedback,\n feedbackLength,\n convertedFeedforward,\n feedforwardLength,\n minLength,\n xBuffers[i],\n yBuffers[i],\n bufferIndexes[i],\n bufferLength,\n input,\n output\n );\n }\n };\n\n const nyquist = nativeContext.sampleRate / 2;\n\n const nativeIIRFilterNodeFaker = {\n get bufferSize(): number {\n return bufferSize;\n },\n get channelCount(): number {\n return scriptProcessorNode.channelCount;\n },\n set channelCount(value) {\n scriptProcessorNode.channelCount = value;\n },\n get channelCountMode(): TNativeIIRFilterNode['channelCountMode'] {\n return scriptProcessorNode.channelCountMode;\n },\n set channelCountMode(value) {\n scriptProcessorNode.channelCountMode = value;\n },\n get channelInterpretation(): TNativeIIRFilterNode['channelInterpretation'] {\n return scriptProcessorNode.channelInterpretation;\n },\n set channelInterpretation(value) {\n scriptProcessorNode.channelInterpretation = value;\n },\n get context(): TNativeIIRFilterNode['context'] {\n return scriptProcessorNode.context;\n },\n get inputs(): TNativeAudioNode[] {\n return [scriptProcessorNode];\n },\n get numberOfInputs(): number {\n return scriptProcessorNode.numberOfInputs;\n },\n get numberOfOutputs(): number {\n return scriptProcessorNode.numberOfOutputs;\n },\n addEventListener(...args: any[]): void {\n // @todo Dissallow adding an audioprocess listener.\n return scriptProcessorNode.addEventListener(args[0], args[1], args[2]);\n },\n dispatchEvent(...args: any[]): boolean {\n return scriptProcessorNode.dispatchEvent(args[0]);\n },\n getFrequencyResponse(frequencyHz: Float32Array, magResponse: Float32Array, phaseResponse: Float32Array): void {\n if (frequencyHz.length !== magResponse.length || magResponse.length !== phaseResponse.length) {\n throw createInvalidAccessError();\n }\n\n const length = frequencyHz.length;\n\n for (let i = 0; i < length; i += 1) {\n const omega = -Math.PI * (frequencyHz[i] / nyquist);\n const z: [number, number] = [Math.cos(omega), Math.sin(omega)];\n const numerator = evaluatePolynomial(convertedFeedforward, z);\n const denominator = evaluatePolynomial(convertedFeedback, z);\n const response = divide(numerator, denominator);\n\n magResponse[i] = Math.sqrt(response[0] * response[0] + response[1] * response[1]);\n phaseResponse[i] = Math.atan2(response[1], response[0]);\n }\n },\n removeEventListener(...args: any[]): void {\n return scriptProcessorNode.removeEventListener(args[0], args[1], args[2]);\n }\n };\n\n return interceptConnections(nativeIIRFilterNodeFaker, scriptProcessorNode);\n };\n};\n","import { TCacheTestResultFactory } from '../types';\n\nexport const createCacheTestResult: TCacheTestResultFactory = (ongoingTests, testResults) => {\n return (tester, test) => {\n const cachedTestResult = testResults.get(tester);\n\n if (cachedTestResult !== undefined) {\n return cachedTestResult;\n }\n\n const ongoingTest = ongoingTests.get(tester);\n\n if (ongoingTest !== undefined) {\n return ongoingTest;\n }\n\n try {\n const synchronousTestResult = test();\n\n if (synchronousTestResult instanceof Promise) {\n ongoingTests.set(tester, synchronousTestResult);\n\n return synchronousTestResult\n .catch(() => false)\n .then((finalTestResult) => {\n ongoingTests.delete(tester);\n testResults.set(tester, finalTestResult);\n\n return finalTestResult;\n });\n }\n\n testResults.set(tester, synchronousTestResult);\n\n return synchronousTestResult;\n } catch {\n testResults.set(tester, false);\n\n return false;\n }\n };\n};\n","import { IMinimalOfflineAudioContext, IOfflineAudioContext } from '../interfaces';\nimport { TContext, TGetNativeContextFactory, TNativeAudioContext, TNativeOfflineAudioContext } from '../types';\nimport { createInvalidStateError } from './invalid-state-error';\n\nexport const createGetNativeContext: TGetNativeContextFactory = (contextStore) => {\n return (\n context: T\n ): T extends IMinimalOfflineAudioContext | IOfflineAudioContext ? TNativeOfflineAudioContext : TNativeAudioContext => {\n const nativeContext = contextStore.get(context);\n\n if (nativeContext === undefined) {\n throw createInvalidStateError();\n }\n\n return (\n nativeContext\n );\n };\n};\n","import { IAudioNode, IAudioNodeRenderer, IMinimalOfflineAudioContext, IOfflineAudioContext } from '../interfaces';\nimport { TActiveInputConnection, TAddAudioNodeConnectionsFactory, TContext, TNativeAudioNode } from '../types';\n\nexport const createAddAudioNodeConnections: TAddAudioNodeConnectionsFactory = (audioNodeConnectionsStore) => {\n return (\n audioNode: IAudioNode,\n audioNodeRenderer: T extends IMinimalOfflineAudioContext | IOfflineAudioContext ? IAudioNodeRenderer> : null,\n nativeAudioNode: TNativeAudioNode\n ) => {\n const activeInputs = [];\n\n for (let i = 0; i < nativeAudioNode.numberOfInputs; i += 1) {\n activeInputs.push(new Set>());\n }\n\n audioNodeConnectionsStore.set(audioNode, {\n activeInputs,\n outputs: new Set(),\n passiveInputs: new WeakMap(),\n renderer: audioNodeRenderer\n });\n };\n};\n","import { TConvertNumberToUnsignedLongFactory } from '../types';\n\nexport const createConvertNumberToUnsignedLong: TConvertNumberToUnsignedLongFactory = (unit32Array) => {\n return (value) => {\n unit32Array[0] = value;\n\n return unit32Array[0];\n };\n};\n","import { IAudioParam, IAudioParamRenderer, IMinimalOfflineAudioContext, IOfflineAudioContext } from '../interfaces';\nimport { TAddAudioParamConnectionsFactory, TContext } from '../types';\n\nexport const createAddAudioParamConnections: TAddAudioParamConnectionsFactory = (audioParamConnectionsStore) => {\n return (\n audioParam: IAudioParam,\n audioParamRenderer: T extends IMinimalOfflineAudioContext | IOfflineAudioContext ? IAudioParamRenderer : null\n ) => {\n audioParamConnectionsStore.set(audioParam, { activeInputs: new Set(), passiveInputs: new WeakMap(), renderer: audioParamRenderer });\n };\n};\n","import { TNativeScriptProcessorNodeFactory } from '../types';\n\nexport const createNativeScriptProcessorNode: TNativeScriptProcessorNodeFactory = (\n nativeContext,\n bufferSize,\n numberOfInputChannels,\n numberOfOutputChannels\n) => {\n return nativeContext.createScriptProcessor(bufferSize, numberOfInputChannels, numberOfOutputChannels); // tslint:disable-line deprecation\n};\n","import { TNotSupportedErrorFactory } from '../types';\n\nexport const createNotSupportedError: TNotSupportedErrorFactory = () => new DOMException('', 'NotSupportedError');\n","import { deactivateAudioGraph } from '../helpers/deactivate-audio-graph';\nimport { testPromiseSupport } from '../helpers/test-promise-support';\nimport { IAudioBuffer, IOfflineAudioContext, IOfflineAudioContextOptions } from '../interfaces';\nimport { TAudioContextState, TNativeOfflineAudioContext, TOfflineAudioContextConstructorFactory } from '../types';\n\nconst DEFAULT_OPTIONS = {\n numberOfChannels: 1\n} as const;\n\nexport const createOfflineAudioContextConstructor: TOfflineAudioContextConstructorFactory = (\n baseAudioContextConstructor,\n cacheTestResult,\n createInvalidStateError,\n createNativeOfflineAudioContext,\n startRendering\n) => {\n return class OfflineAudioContext extends baseAudioContextConstructor implements IOfflineAudioContext {\n private _length: number;\n\n private _nativeOfflineAudioContext: TNativeOfflineAudioContext;\n\n private _state: null | TAudioContextState;\n\n constructor(options: IOfflineAudioContextOptions);\n constructor(numberOfChannels: number, length: number, sampleRate: number);\n constructor(a: number | IOfflineAudioContextOptions, b?: number, c?: number) {\n let options: IOfflineAudioContextOptions;\n\n if (typeof a === 'number' && b !== undefined && c !== undefined) {\n options = { length: b, numberOfChannels: a, sampleRate: c };\n } else if (typeof a === 'object') {\n options = a;\n } else {\n throw new Error('The given parameters are not valid.');\n }\n\n const { length, numberOfChannels, sampleRate } = { ...DEFAULT_OPTIONS, ...options };\n\n const nativeOfflineAudioContext = createNativeOfflineAudioContext(numberOfChannels, length, sampleRate);\n\n // #21 Safari does not support promises and therefore would fire the statechange event before the promise can be resolved.\n if (!cacheTestResult(testPromiseSupport, () => testPromiseSupport(nativeOfflineAudioContext))) {\n nativeOfflineAudioContext.addEventListener(\n 'statechange',\n (() => {\n let i = 0;\n\n const delayStateChangeEvent = (event: Event) => {\n if (this._state === 'running') {\n if (i > 0) {\n nativeOfflineAudioContext.removeEventListener('statechange', delayStateChangeEvent);\n event.stopImmediatePropagation();\n\n this._waitForThePromiseToSettle(event);\n } else {\n i += 1;\n }\n }\n };\n\n return delayStateChangeEvent;\n })()\n );\n }\n\n super(nativeOfflineAudioContext, numberOfChannels);\n\n this._length = length;\n this._nativeOfflineAudioContext = nativeOfflineAudioContext;\n this._state = null;\n }\n\n get length(): number {\n // Bug #17: Safari does not yet expose the length.\n if (this._nativeOfflineAudioContext.length === undefined) {\n return this._length;\n }\n\n return this._nativeOfflineAudioContext.length;\n }\n\n get state(): TAudioContextState {\n return this._state === null ? this._nativeOfflineAudioContext.state : this._state;\n }\n\n public startRendering(): Promise {\n /*\n * Bug #9 & #59: It is theoretically possible that startRendering() will first render a partialOfflineAudioContext. Therefore\n * the state of the nativeOfflineAudioContext might no transition to running immediately.\n */\n if (this._state === 'running') {\n return Promise.reject(createInvalidStateError());\n }\n\n this._state = 'running';\n\n return startRendering(this.destination, this._nativeOfflineAudioContext).finally(() => {\n this._state = null;\n\n deactivateAudioGraph(this);\n });\n }\n\n private _waitForThePromiseToSettle(event: Event): void {\n if (this._state === null) {\n this._nativeOfflineAudioContext.dispatchEvent(event);\n } else {\n setTimeout(() => this._waitForThePromiseToSettle(event));\n }\n }\n };\n};\n","import { isActiveAudioNode } from '../helpers/is-active-audio-node';\nimport { setInternalStateToActive } from '../helpers/set-internal-state-to-active';\nimport { setInternalStateToPassive } from '../helpers/set-internal-state-to-passive';\nimport {\n IAudioParam,\n IAudioScheduledSourceNodeEventMap,\n IMinimalOfflineAudioContext,\n IOscillatorNode,\n IOscillatorNodeRenderer,\n IOscillatorOptions\n} from '../interfaces';\nimport {\n TContext,\n TEventHandler,\n TNativeOscillatorNode,\n TOscillatorNodeConstructorFactory,\n TOscillatorNodeRenderer,\n TOscillatorType\n} from '../types';\n\nconst DEFAULT_OPTIONS = {\n channelCount: 2,\n channelCountMode: 'max', // This attribute has no effect for nodes with no inputs.\n channelInterpretation: 'speakers', // This attribute has no effect for nodes with no inputs.\n detune: 0,\n frequency: 440,\n periodicWave: undefined,\n type: 'sine'\n} as const;\n\nexport const createOscillatorNodeConstructor: TOscillatorNodeConstructorFactory = (\n audioNodeConstructor,\n createAudioParam,\n createNativeOscillatorNode,\n createOscillatorNodeRenderer,\n getNativeContext,\n isNativeOfflineAudioContext,\n wrapEventListener\n) => {\n return class OscillatorNode\n extends audioNodeConstructor\n implements IOscillatorNode\n {\n private _detune: IAudioParam;\n\n private _frequency: IAudioParam;\n\n private _nativeOscillatorNode: TNativeOscillatorNode;\n\n private _onended: null | TEventHandler;\n\n private _oscillatorNodeRenderer: TOscillatorNodeRenderer;\n\n constructor(context: T, options?: Partial) {\n const nativeContext = getNativeContext(context);\n const mergedOptions = { ...DEFAULT_OPTIONS, ...options };\n const nativeOscillatorNode = createNativeOscillatorNode(nativeContext, mergedOptions);\n const isOffline = isNativeOfflineAudioContext(nativeContext);\n const oscillatorNodeRenderer = >(isOffline ? createOscillatorNodeRenderer() : null);\n const nyquist = context.sampleRate / 2;\n\n super(context, false, nativeOscillatorNode, oscillatorNodeRenderer);\n\n // Bug #81: Firefox & Safari do not export the correct values for maxValue and minValue.\n this._detune = createAudioParam(this, isOffline, nativeOscillatorNode.detune, 153600, -153600);\n // Bug #76: Safari does not export the correct values for maxValue and minValue.\n this._frequency = createAudioParam(this, isOffline, nativeOscillatorNode.frequency, nyquist, -nyquist);\n this._nativeOscillatorNode = nativeOscillatorNode;\n this._onended = null;\n this._oscillatorNodeRenderer = oscillatorNodeRenderer;\n\n if (this._oscillatorNodeRenderer !== null && mergedOptions.periodicWave !== undefined) {\n (>this._oscillatorNodeRenderer).periodicWave =\n mergedOptions.periodicWave;\n }\n }\n\n get detune(): IAudioParam {\n return this._detune;\n }\n\n get frequency(): IAudioParam {\n return this._frequency;\n }\n\n get onended(): null | TEventHandler {\n return this._onended;\n }\n\n set onended(value) {\n const wrappedListener = typeof value === 'function' ? wrapEventListener(this, value) : null;\n\n this._nativeOscillatorNode.onended = wrappedListener;\n\n const nativeOnEnded = this._nativeOscillatorNode.onended;\n\n this._onended = nativeOnEnded !== null && nativeOnEnded === wrappedListener ? value : nativeOnEnded;\n }\n\n get type(): TOscillatorType {\n return this._nativeOscillatorNode.type;\n }\n\n set type(value) {\n this._nativeOscillatorNode.type = value;\n\n if (this._oscillatorNodeRenderer !== null) {\n this._oscillatorNodeRenderer.periodicWave = null;\n }\n }\n\n public setPeriodicWave(periodicWave: PeriodicWave): void {\n this._nativeOscillatorNode.setPeriodicWave(periodicWave);\n\n if (this._oscillatorNodeRenderer !== null) {\n this._oscillatorNodeRenderer.periodicWave = periodicWave;\n }\n }\n\n public start(when = 0): void {\n this._nativeOscillatorNode.start(when);\n\n if (this._oscillatorNodeRenderer !== null) {\n this._oscillatorNodeRenderer.start = when;\n }\n\n if (this.context.state !== 'closed') {\n setInternalStateToActive(this);\n\n const resetInternalStateToPassive = () => {\n this._nativeOscillatorNode.removeEventListener('ended', resetInternalStateToPassive);\n\n if (isActiveAudioNode(this)) {\n setInternalStateToPassive(this);\n }\n };\n\n this._nativeOscillatorNode.addEventListener('ended', resetInternalStateToPassive);\n }\n }\n\n public stop(when = 0): void {\n this._nativeOscillatorNode.stop(when);\n\n if (this._oscillatorNodeRenderer !== null) {\n this._oscillatorNodeRenderer.stop = when;\n }\n }\n };\n};\n","import { MOST_NEGATIVE_SINGLE_FLOAT, MOST_POSITIVE_SINGLE_FLOAT } from '../constants';\nimport { IAudioParam, IPannerNode, IPannerOptions } from '../interfaces';\nimport {\n TAudioNodeRenderer,\n TContext,\n TDistanceModelType,\n TNativePannerNode,\n TPannerNodeConstructorFactory,\n TPanningModelType\n} from '../types';\n\nconst DEFAULT_OPTIONS = {\n channelCount: 2,\n channelCountMode: 'clamped-max',\n channelInterpretation: 'speakers',\n coneInnerAngle: 360,\n coneOuterAngle: 360,\n coneOuterGain: 0,\n distanceModel: 'inverse',\n maxDistance: 10000,\n orientationX: 1,\n orientationY: 0,\n orientationZ: 0,\n panningModel: 'equalpower',\n positionX: 0,\n positionY: 0,\n positionZ: 0,\n refDistance: 1,\n rolloffFactor: 1\n} as const;\n\nexport const createPannerNodeConstructor: TPannerNodeConstructorFactory = (\n audioNodeConstructor,\n createAudioParam,\n createNativePannerNode,\n createPannerNodeRenderer,\n getNativeContext,\n isNativeOfflineAudioContext,\n setAudioNodeTailTime\n) => {\n return class PannerNode extends audioNodeConstructor implements IPannerNode {\n private _nativePannerNode: TNativePannerNode;\n\n private _orientationX: IAudioParam;\n\n private _orientationY: IAudioParam;\n\n private _orientationZ: IAudioParam;\n\n private _positionX: IAudioParam;\n\n private _positionY: IAudioParam;\n\n private _positionZ: IAudioParam;\n\n constructor(context: T, options?: Partial) {\n const nativeContext = getNativeContext(context);\n const mergedOptions = { ...DEFAULT_OPTIONS, ...options };\n const nativePannerNode = createNativePannerNode(nativeContext, mergedOptions);\n const isOffline = isNativeOfflineAudioContext(nativeContext);\n const pannerNodeRenderer = >(isOffline ? createPannerNodeRenderer() : null);\n\n super(context, false, nativePannerNode, pannerNodeRenderer);\n\n this._nativePannerNode = nativePannerNode;\n // Bug #74: Safari does not export the correct values for maxValue and minValue.\n this._orientationX = createAudioParam(\n this,\n isOffline,\n nativePannerNode.orientationX,\n MOST_POSITIVE_SINGLE_FLOAT,\n MOST_NEGATIVE_SINGLE_FLOAT\n );\n this._orientationY = createAudioParam(\n this,\n isOffline,\n nativePannerNode.orientationY,\n MOST_POSITIVE_SINGLE_FLOAT,\n MOST_NEGATIVE_SINGLE_FLOAT\n );\n this._orientationZ = createAudioParam(\n this,\n isOffline,\n nativePannerNode.orientationZ,\n MOST_POSITIVE_SINGLE_FLOAT,\n MOST_NEGATIVE_SINGLE_FLOAT\n );\n this._positionX = createAudioParam(\n this,\n isOffline,\n nativePannerNode.positionX,\n MOST_POSITIVE_SINGLE_FLOAT,\n MOST_NEGATIVE_SINGLE_FLOAT\n );\n this._positionY = createAudioParam(\n this,\n isOffline,\n nativePannerNode.positionY,\n MOST_POSITIVE_SINGLE_FLOAT,\n MOST_NEGATIVE_SINGLE_FLOAT\n );\n this._positionZ = createAudioParam(\n this,\n isOffline,\n nativePannerNode.positionZ,\n MOST_POSITIVE_SINGLE_FLOAT,\n MOST_NEGATIVE_SINGLE_FLOAT\n );\n\n // @todo Determine a meaningful tail-time instead of just using one second.\n setAudioNodeTailTime(this, 1);\n }\n\n get coneInnerAngle(): number {\n return this._nativePannerNode.coneInnerAngle;\n }\n\n set coneInnerAngle(value) {\n this._nativePannerNode.coneInnerAngle = value;\n }\n\n get coneOuterAngle(): number {\n return this._nativePannerNode.coneOuterAngle;\n }\n\n set coneOuterAngle(value) {\n this._nativePannerNode.coneOuterAngle = value;\n }\n\n get coneOuterGain(): number {\n return this._nativePannerNode.coneOuterGain;\n }\n\n set coneOuterGain(value) {\n this._nativePannerNode.coneOuterGain = value;\n }\n\n get distanceModel(): TDistanceModelType {\n return this._nativePannerNode.distanceModel;\n }\n\n set distanceModel(value) {\n this._nativePannerNode.distanceModel = value;\n }\n\n get maxDistance(): number {\n return this._nativePannerNode.maxDistance;\n }\n\n set maxDistance(value) {\n this._nativePannerNode.maxDistance = value;\n }\n\n get orientationX(): IAudioParam {\n return this._orientationX;\n }\n\n get orientationY(): IAudioParam {\n return this._orientationY;\n }\n\n get orientationZ(): IAudioParam {\n return this._orientationZ;\n }\n\n get panningModel(): TPanningModelType {\n return this._nativePannerNode.panningModel;\n }\n\n set panningModel(value) {\n this._nativePannerNode.panningModel = value;\n }\n\n get positionX(): IAudioParam {\n return this._positionX;\n }\n\n get positionY(): IAudioParam {\n return this._positionY;\n }\n\n get positionZ(): IAudioParam {\n return this._positionZ;\n }\n\n get refDistance(): number {\n return this._nativePannerNode.refDistance;\n }\n\n set refDistance(value) {\n this._nativePannerNode.refDistance = value;\n }\n\n get rolloffFactor(): number {\n return this._nativePannerNode.rolloffFactor;\n }\n\n set rolloffFactor(value) {\n this._nativePannerNode.rolloffFactor = value;\n }\n };\n};\n","import { IPeriodicWave, IPeriodicWaveOptions } from '../interfaces';\nimport { TContext, TPeriodicWaveConstructorFactory } from '../types';\n\nconst DEFAULT_OPTIONS = {\n disableNormalization: false\n} as const;\n\nexport const createPeriodicWaveConstructor: TPeriodicWaveConstructorFactory = (\n createNativePeriodicWave,\n getNativeContext,\n periodicWaveStore,\n sanitizePeriodicWaveOptions\n) => {\n return class PeriodicWave implements IPeriodicWave {\n constructor(context: T, options?: Partial) {\n const nativeContext = getNativeContext(context);\n const mergedOptions = sanitizePeriodicWaveOptions({ ...DEFAULT_OPTIONS, ...options });\n const periodicWave = createNativePeriodicWave(nativeContext, mergedOptions);\n\n periodicWaveStore.add(periodicWave);\n\n // This does violate all good pratices but it is used here to simplify the handling of periodic waves.\n return periodicWave;\n }\n\n public static [Symbol.hasInstance](instance: unknown): boolean {\n return (\n (instance !== null && typeof instance === 'object' && Object.getPrototypeOf(instance) === PeriodicWave.prototype) ||\n periodicWaveStore.has(instance)\n );\n }\n };\n};\n","import { IAudioParam, IStereoPannerNode, IStereoPannerOptions } from '../interfaces';\nimport { TAudioNodeRenderer, TContext, TStereoPannerNodeConstructorFactory } from '../types';\n\nconst DEFAULT_OPTIONS = {\n channelCount: 2,\n /*\n * Bug #105: The channelCountMode should be 'clamped-max' according to the spec but is set to 'explicit' to achieve consistent\n * behavior.\n */\n channelCountMode: 'explicit',\n channelInterpretation: 'speakers',\n pan: 0\n} as const;\n\nexport const createStereoPannerNodeConstructor: TStereoPannerNodeConstructorFactory = (\n audioNodeConstructor,\n createAudioParam,\n createNativeStereoPannerNode,\n createStereoPannerNodeRenderer,\n getNativeContext,\n isNativeOfflineAudioContext\n) => {\n return class StereoPannerNode extends audioNodeConstructor implements IStereoPannerNode {\n private _pan: IAudioParam;\n\n constructor(context: T, options?: Partial) {\n const nativeContext = getNativeContext(context);\n const mergedOptions = { ...DEFAULT_OPTIONS, ...options };\n const nativeStereoPannerNode = createNativeStereoPannerNode(nativeContext, mergedOptions);\n const isOffline = isNativeOfflineAudioContext(nativeContext);\n const stereoPannerNodeRenderer = >(isOffline ? createStereoPannerNodeRenderer() : null);\n\n super(context, false, nativeStereoPannerNode, stereoPannerNodeRenderer);\n\n this._pan = createAudioParam(this, isOffline, nativeStereoPannerNode.pan);\n }\n\n get pan(): IAudioParam {\n return this._pan;\n }\n };\n};\n","import { TUnknownErrorFactory } from '../types';\n\nexport const createUnknownError: TUnknownErrorFactory = () => new DOMException('', 'UnknownError');\n","import { IWaveShaperNode, IWaveShaperOptions } from '../interfaces';\nimport { TAudioNodeRenderer, TContext, TNativeWaveShaperNode, TOverSampleType, TWaveShaperNodeConstructorFactory } from '../types';\n\nconst DEFAULT_OPTIONS = {\n channelCount: 2,\n channelCountMode: 'max',\n channelInterpretation: 'speakers',\n curve: null,\n oversample: 'none'\n} as const;\n\nexport const createWaveShaperNodeConstructor: TWaveShaperNodeConstructorFactory = (\n audioNodeConstructor,\n createInvalidStateError,\n createNativeWaveShaperNode,\n createWaveShaperNodeRenderer,\n getNativeContext,\n isNativeOfflineAudioContext,\n setAudioNodeTailTime\n) => {\n return class WaveShaperNode extends audioNodeConstructor implements IWaveShaperNode {\n private _isCurveNullified: boolean;\n\n private _nativeWaveShaperNode: TNativeWaveShaperNode;\n\n constructor(context: T, options?: Partial) {\n const nativeContext = getNativeContext(context);\n const mergedOptions = { ...DEFAULT_OPTIONS, ...options };\n const nativeWaveShaperNode = createNativeWaveShaperNode(nativeContext, mergedOptions);\n const isOffline = isNativeOfflineAudioContext(nativeContext);\n const waveShaperNodeRenderer = >(isOffline ? createWaveShaperNodeRenderer() : null);\n\n // @todo Add a mechanism to only switch a WaveShaperNode to active while it is connected.\n super(context, true, nativeWaveShaperNode, waveShaperNodeRenderer);\n\n this._isCurveNullified = false;\n this._nativeWaveShaperNode = nativeWaveShaperNode;\n\n // @todo Determine a meaningful tail-time instead of just using one second.\n setAudioNodeTailTime(this, 1);\n }\n\n get curve(): null | Float32Array {\n if (this._isCurveNullified) {\n return null;\n }\n\n return this._nativeWaveShaperNode.curve;\n }\n\n set curve(value) {\n // Bug #103: Safari does not allow to set the curve to null.\n if (value === null) {\n this._isCurveNullified = true;\n this._nativeWaveShaperNode.curve = new Float32Array([0, 0]);\n } else {\n // Bug #102: Safari does not throw an InvalidStateError when the curve has less than two samples.\n // Bug #104: Chrome and Edge will throw an InvalidAccessError when the curve has less than two samples.\n if (value.length < 2) {\n throw createInvalidStateError();\n }\n\n this._isCurveNullified = false;\n this._nativeWaveShaperNode.curve = value;\n }\n }\n\n get oversample(): TOverSampleType {\n return this._nativeWaveShaperNode.oversample;\n }\n\n set oversample(value) {\n this._nativeWaveShaperNode.oversample = value;\n }\n };\n};\n","import { TGetFirstSampleFunction } from '../types';\n\nexport const getFirstSample: TGetFirstSampleFunction = (audioBuffer, buffer, channelNumber) => {\n // Bug #5: Safari does not support copyFromChannel() and copyToChannel().\n if (audioBuffer.copyFromChannel === undefined) {\n return audioBuffer.getChannelData(channelNumber)[0];\n }\n\n audioBuffer.copyFromChannel(buffer, channelNumber);\n\n return buffer[0];\n};\n","import { TIsDCCurveFunction } from '../types';\n\nexport const isDCCurve: TIsDCCurveFunction = (curve) => {\n if (curve === null) {\n return false;\n }\n\n const length = curve.length;\n\n if (length % 2 !== 0) {\n return curve[Math.floor(length / 2)] !== 0;\n }\n\n return curve[length / 2 - 1] + curve[length / 2] !== 0;\n};\n","import { TOverwriteAccessorsFunction } from '../types';\n\nexport const overwriteAccessors: TOverwriteAccessorsFunction = (object, property, createGetter, createSetter) => {\n let prototype = object;\n\n while (!prototype.hasOwnProperty(property)) {\n prototype = Object.getPrototypeOf(prototype);\n }\n\n const { get, set } = >Object.getOwnPropertyDescriptor(prototype, property);\n\n Object.defineProperty(object, property, { get: createGetter(get), set: createSetter(set) });\n};\n","import { TNativeContext } from '../types';\n\nexport const testAudioScheduledSourceNodeStartMethodNegativeParametersSupport = (nativeContext: TNativeContext) => {\n const nativeAudioBufferSourceNode = nativeContext.createOscillator();\n\n try {\n nativeAudioBufferSourceNode.start(-1);\n } catch (err) {\n return err instanceof RangeError;\n }\n\n return false;\n};\n","import { TNativeContext } from '../types';\n\nexport const testAudioScheduledSourceNodeStopMethodConsecutiveCallsSupport = (nativeContext: TNativeContext) => {\n const nativeAudioBuffer = nativeContext.createBuffer(1, 1, 44100);\n const nativeAudioBufferSourceNode = nativeContext.createBufferSource();\n\n nativeAudioBufferSourceNode.buffer = nativeAudioBuffer;\n nativeAudioBufferSourceNode.start();\n nativeAudioBufferSourceNode.stop();\n\n try {\n nativeAudioBufferSourceNode.stop();\n\n return true;\n } catch {\n return false;\n }\n};\n","import { TNativeContext } from '../types';\n\nexport const testAudioScheduledSourceNodeStopMethodNegativeParametersSupport = (nativeContext: TNativeContext) => {\n const nativeAudioBufferSourceNode = nativeContext.createOscillator();\n\n try {\n nativeAudioBufferSourceNode.stop(-1);\n } catch (err) {\n return err instanceof RangeError;\n }\n\n return false;\n};\n","import { TNativeAudioNode, TWrapAudioScheduledSourceNodeStopMethodConsecutiveCallsFunction } from '../types';\nimport { interceptConnections } from './intercept-connections';\n\nexport const wrapAudioScheduledSourceNodeStopMethodConsecutiveCalls: TWrapAudioScheduledSourceNodeStopMethodConsecutiveCallsFunction = (\n nativeAudioScheduledSourceNode,\n nativeContext\n) => {\n const nativeGainNode = nativeContext.createGain();\n\n nativeAudioScheduledSourceNode.connect(nativeGainNode);\n\n const disconnectGainNode = ((disconnect) => {\n return () => {\n // @todo TypeScript cannot infer the overloaded signature with 1 argument yet.\n (<(destinaton: TNativeAudioNode) => void>disconnect).call(nativeAudioScheduledSourceNode, nativeGainNode);\n nativeAudioScheduledSourceNode.removeEventListener('ended', disconnectGainNode);\n };\n })(nativeAudioScheduledSourceNode.disconnect);\n\n nativeAudioScheduledSourceNode.addEventListener('ended', disconnectGainNode);\n\n interceptConnections(nativeAudioScheduledSourceNode, nativeGainNode);\n\n nativeAudioScheduledSourceNode.stop = ((stop) => {\n let isStopped = false;\n\n return (when = 0) => {\n if (isStopped) {\n try {\n stop.call(nativeAudioScheduledSourceNode, when);\n } catch {\n nativeGainNode.gain.setValueAtTime(0, when);\n }\n } else {\n stop.call(nativeAudioScheduledSourceNode, when);\n\n isStopped = true;\n }\n };\n })(nativeAudioScheduledSourceNode.stop);\n};\n","import { TWrapEventListenerFunction } from '../types';\n\nexport const wrapEventListener: TWrapEventListenerFunction = (target, eventListener) => {\n return (event) => {\n const descriptor = { value: target };\n\n Object.defineProperties(event, {\n currentTarget: descriptor,\n target: descriptor\n });\n\n if (typeof eventListener === 'function') {\n return eventListener.call(target, event);\n }\n\n return eventListener.handleEvent.call(target, event);\n };\n};\n","import {\n createCancelAndHoldAutomationEvent,\n createCancelScheduledValuesAutomationEvent,\n createExponentialRampToValueAutomationEvent,\n createLinearRampToValueAutomationEvent,\n createSetTargetAutomationEvent,\n createSetValueAutomationEvent,\n createSetValueCurveAutomationEvent\n} from 'automation-events';\nimport { createAbortError } from './factories/abort-error';\nimport { createAddActiveInputConnectionToAudioNode } from './factories/add-active-input-connection-to-audio-node';\nimport { createAddAudioNodeConnections } from './factories/add-audio-node-connections';\nimport { createAddAudioParamConnections } from './factories/add-audio-param-connections';\nimport { createAddAudioWorkletModule } from './factories/add-audio-worklet-module';\nimport { createAddConnectionToAudioNode } from './factories/add-connection-to-audio-node';\nimport { createAddPassiveInputConnectionToAudioNode } from './factories/add-passive-input-connection-to-audio-node';\nimport { createAddSilentConnection } from './factories/add-silent-connection';\nimport { createAddUnrenderedAudioWorkletNode } from './factories/add-unrendered-audio-worklet-node';\nimport { createAnalyserNodeConstructor } from './factories/analyser-node-constructor';\nimport { createAnalyserNodeRendererFactory } from './factories/analyser-node-renderer-factory';\nimport { createAudioBufferConstructor } from './factories/audio-buffer-constructor';\nimport { createAudioBufferSourceNodeConstructor } from './factories/audio-buffer-source-node-constructor';\nimport { createAudioBufferSourceNodeRendererFactory } from './factories/audio-buffer-source-node-renderer-factory';\nimport { createAudioContextConstructor } from './factories/audio-context-constructor';\nimport { createAudioDestinationNodeConstructor } from './factories/audio-destination-node-constructor';\nimport { createAudioDestinationNodeRenderer } from './factories/audio-destination-node-renderer-factory';\nimport { createAudioListenerFactory } from './factories/audio-listener-factory';\nimport { createAudioNodeConstructor } from './factories/audio-node-constructor';\nimport { createAudioParamFactory } from './factories/audio-param-factory';\nimport { createAudioParamRenderer } from './factories/audio-param-renderer';\nimport { createAudioWorkletNodeConstructor } from './factories/audio-worklet-node-constructor';\nimport { createAudioWorkletNodeRendererFactory } from './factories/audio-worklet-node-renderer-factory';\nimport { createBaseAudioContextConstructor } from './factories/base-audio-context-constructor';\nimport { createBiquadFilterNodeConstructor } from './factories/biquad-filter-node-constructor';\nimport { createBiquadFilterNodeRendererFactory } from './factories/biquad-filter-node-renderer-factory';\nimport { createCacheTestResult } from './factories/cache-test-result';\nimport { createChannelMergerNodeConstructor } from './factories/channel-merger-node-constructor';\nimport { createChannelMergerNodeRendererFactory } from './factories/channel-merger-node-renderer-factory';\nimport { createChannelSplitterNodeConstructor } from './factories/channel-splitter-node-constructor';\nimport { createChannelSplitterNodeRendererFactory } from './factories/channel-splitter-node-renderer-factory';\nimport { createConnectAudioParam } from './factories/connect-audio-param';\nimport { createConnectMultipleOutputs } from './factories/connect-multiple-outputs';\nimport { createConnectedNativeAudioBufferSourceNodeFactory } from './factories/connected-native-audio-buffer-source-node-factory';\nimport { createConstantSourceNodeConstructor } from './factories/constant-source-node-constructor';\nimport { createConstantSourceNodeRendererFactory } from './factories/constant-source-node-renderer-factory';\nimport { createConvertNumberToUnsignedLong } from './factories/convert-number-to-unsigned-long';\nimport { createConvolverNodeConstructor } from './factories/convolver-node-constructor';\nimport { createConvolverNodeRendererFactory } from './factories/convolver-node-renderer-factory';\nimport { createCreateNativeOfflineAudioContext } from './factories/create-native-offline-audio-context';\nimport { createDataCloneError } from './factories/data-clone-error';\nimport { createDecodeAudioData } from './factories/decode-audio-data';\nimport { createDecrementCycleCounter } from './factories/decrement-cycle-counter';\nimport { createDelayNodeConstructor } from './factories/delay-node-constructor';\nimport { createDelayNodeRendererFactory } from './factories/delay-node-renderer-factory';\nimport { createDeleteActiveInputConnectionToAudioNode } from './factories/delete-active-input-connection-to-audio-node';\nimport { createDeleteUnrenderedAudioWorkletNode } from './factories/delete-unrendered-audio-worklet-node';\nimport { createDetectCycles } from './factories/detect-cycles';\nimport { createDisconnectMultipleOutputs } from './factories/disconnect-multiple-outputs';\nimport { createDynamicsCompressorNodeConstructor } from './factories/dynamics-compressor-node-constructor';\nimport { createDynamicsCompressorNodeRendererFactory } from './factories/dynamics-compressor-node-renderer-factory';\nimport { createEncodingError } from './factories/encoding-error';\nimport { createEvaluateSource } from './factories/evaluate-source';\nimport { createEventTargetConstructor } from './factories/event-target-constructor';\nimport { createExposeCurrentFrameAndCurrentTime } from './factories/expose-current-frame-and-current-time';\nimport { createFetchSource } from './factories/fetch-source';\nimport { createGainNodeConstructor } from './factories/gain-node-constructor';\nimport { createGainNodeRendererFactory } from './factories/gain-node-renderer-factory';\nimport { createGetActiveAudioWorkletNodeInputs } from './factories/get-active-audio-worklet-node-inputs';\nimport { createGetAudioNodeRenderer } from './factories/get-audio-node-renderer';\nimport { createGetAudioNodeTailTime } from './factories/get-audio-node-tail-time';\nimport { createGetAudioParamRenderer } from './factories/get-audio-param-renderer';\nimport { createGetBackupOfflineAudioContext } from './factories/get-backup-offline-audio-context';\nimport { createGetNativeContext } from './factories/get-native-context';\nimport { createGetOrCreateBackupOfflineAudioContext } from './factories/get-or-create-backup-offline-audio-context';\nimport { createGetUnrenderedAudioWorkletNodes } from './factories/get-unrendered-audio-worklet-nodes';\nimport { createIIRFilterNodeConstructor } from './factories/iir-filter-node-constructor';\nimport { createIIRFilterNodeRendererFactory } from './factories/iir-filter-node-renderer-factory';\nimport { createIncrementCycleCounterFactory } from './factories/increment-cycle-counter-factory';\nimport { createIndexSizeError } from './factories/index-size-error';\nimport { createInvalidAccessError } from './factories/invalid-access-error';\nimport { createInvalidStateError } from './factories/invalid-state-error';\nimport { createIsAnyAudioContext } from './factories/is-any-audio-context';\nimport { createIsAnyAudioNode } from './factories/is-any-audio-node';\nimport { createIsAnyAudioParam } from './factories/is-any-audio-param';\nimport { createIsAnyOfflineAudioContext } from './factories/is-any-offline-audio-context';\nimport { createIsNativeAudioContext } from './factories/is-native-audio-context';\nimport { createIsNativeAudioNode } from './factories/is-native-audio-node';\nimport { createIsNativeAudioParam } from './factories/is-native-audio-param';\nimport { createIsNativeContext } from './factories/is-native-context';\nimport { createIsNativeOfflineAudioContext } from './factories/is-native-offline-audio-context';\nimport { createIsSecureContext } from './factories/is-secure-context';\nimport { createIsSupportedPromise } from './factories/is-supported-promise';\nimport { createMediaElementAudioSourceNodeConstructor } from './factories/media-element-audio-source-node-constructor';\nimport { createMediaStreamAudioDestinationNodeConstructor } from './factories/media-stream-audio-destination-node-constructor';\nimport { createMediaStreamAudioSourceNodeConstructor } from './factories/media-stream-audio-source-node-constructor';\nimport { createMediaStreamTrackAudioSourceNodeConstructor } from './factories/media-stream-track-audio-source-node-constructor';\nimport { createMinimalAudioContextConstructor } from './factories/minimal-audio-context-constructor';\nimport { createMinimalBaseAudioContextConstructor } from './factories/minimal-base-audio-context-constructor';\nimport { createMinimalOfflineAudioContextConstructor } from './factories/minimal-offline-audio-context-constructor';\nimport { createMonitorConnections } from './factories/monitor-connections';\nimport { createNativeAnalyserNodeFactory } from './factories/native-analyser-node-factory';\nimport { createNativeAudioBufferConstructor } from './factories/native-audio-buffer-constructor';\nimport { createNativeAudioBufferSourceNodeFactory } from './factories/native-audio-buffer-source-node-factory';\nimport { createNativeAudioContextConstructor } from './factories/native-audio-context-constructor';\nimport { createNativeAudioDestinationNodeFactory } from './factories/native-audio-destination-node';\nimport { createNativeAudioWorkletNodeConstructor } from './factories/native-audio-worklet-node-constructor';\nimport { createNativeAudioWorkletNodeFactory } from './factories/native-audio-worklet-node-factory';\nimport { createNativeAudioWorkletNodeFakerFactory } from './factories/native-audio-worklet-node-faker-factory';\nimport { createNativeBiquadFilterNode } from './factories/native-biquad-filter-node';\nimport { createNativeChannelMergerNodeFactory } from './factories/native-channel-merger-node-factory';\nimport { createNativeChannelSplitterNode } from './factories/native-channel-splitter-node';\nimport { createNativeConstantSourceNodeFactory } from './factories/native-constant-source-node-factory';\nimport { createNativeConstantSourceNodeFakerFactory } from './factories/native-constant-source-node-faker-factory';\nimport { createNativeConvolverNodeFactory } from './factories/native-convolver-node-factory';\nimport { createNativeDelayNode } from './factories/native-delay-node';\nimport { createNativeDynamicsCompressorNodeFactory } from './factories/native-dynamics-compressor-node-factory';\nimport { createNativeGainNode } from './factories/native-gain-node';\nimport { createNativeIIRFilterNodeFactory } from './factories/native-iir-filter-node-factory';\nimport { createNativeIIRFilterNodeFakerFactory } from './factories/native-iir-filter-node-faker-factory';\nimport { createNativeMediaElementAudioSourceNode } from './factories/native-media-element-audio-source-node';\nimport { createNativeMediaStreamAudioDestinationNode } from './factories/native-media-stream-audio-destination-node';\nimport { createNativeMediaStreamAudioSourceNode } from './factories/native-media-stream-audio-source-node';\nimport { createNativeMediaStreamTrackAudioSourceNodeFactory } from './factories/native-media-stream-track-audio-source-node-factory';\nimport { createNativeOfflineAudioContextConstructor } from './factories/native-offline-audio-context-constructor';\nimport { createNativeOscillatorNodeFactory } from './factories/native-oscillator-node-factory';\nimport { createNativePannerNodeFactory } from './factories/native-panner-node-factory';\nimport { createNativePannerNodeFakerFactory } from './factories/native-panner-node-faker-factory';\nimport { createNativePeriodicWaveFactory } from './factories/native-periodic-wave-factory';\nimport { createNativeScriptProcessorNode } from './factories/native-script-processor-node';\nimport { createNativeStereoPannerNodeFactory } from './factories/native-stereo-panner-node-factory';\nimport { createNativeStereoPannerNodeFakerFactory } from './factories/native-stereo-panner-node-faker-factory';\nimport { createNativeWaveShaperNodeFactory } from './factories/native-wave-shaper-node-factory';\nimport { createNativeWaveShaperNodeFakerFactory } from './factories/native-wave-shaper-node-faker-factory';\nimport { createNotSupportedError } from './factories/not-supported-error';\nimport { createOfflineAudioContextConstructor } from './factories/offline-audio-context-constructor';\nimport { createOscillatorNodeConstructor } from './factories/oscillator-node-constructor';\nimport { createOscillatorNodeRendererFactory } from './factories/oscillator-node-renderer-factory';\nimport { createPannerNodeConstructor } from './factories/panner-node-constructor';\nimport { createPannerNodeRendererFactory } from './factories/panner-node-renderer-factory';\nimport { createPeriodicWaveConstructor } from './factories/periodic-wave-constructor';\nimport { createRenderAutomation } from './factories/render-automation';\nimport { createRenderInputsOfAudioNode } from './factories/render-inputs-of-audio-node';\nimport { createRenderInputsOfAudioParam } from './factories/render-inputs-of-audio-param';\nimport { createRenderNativeOfflineAudioContext } from './factories/render-native-offline-audio-context';\nimport { createSetActiveAudioWorkletNodeInputs } from './factories/set-active-audio-worklet-node-inputs';\nimport { createSetAudioNodeTailTime } from './factories/set-audio-node-tail-time';\nimport { createStartRendering } from './factories/start-rendering';\nimport { createStereoPannerNodeConstructor } from './factories/stereo-panner-node-constructor';\nimport { createStereoPannerNodeRendererFactory } from './factories/stereo-panner-node-renderer-factory';\nimport { createTestAudioBufferConstructorSupport } from './factories/test-audio-buffer-constructor-support';\nimport { createTestAudioBufferCopyChannelMethodsSubarraySupport } from './factories/test-audio-buffer-copy-channel-methods-subarray-support';\nimport { createTestAudioContextCloseMethodSupport } from './factories/test-audio-context-close-method-support';\nimport { createTestAudioContextDecodeAudioDataMethodTypeErrorSupport } from './factories/test-audio-context-decode-audio-data-method-type-error-support';\nimport { createTestAudioContextOptionsSupport } from './factories/test-audio-context-options-support';\nimport { createTestAudioNodeConnectMethodSupport } from './factories/test-audio-node-connect-method-support';\nimport { createTestAudioWorkletProcessorNoOutputsSupport } from './factories/test-audio-worklet-processor-no-outputs-support';\nimport { createTestAudioWorkletProcessorPostMessageSupport } from './factories/test-audio-worklet-processor-post-message-support';\nimport { createTestChannelMergerNodeChannelCountSupport } from './factories/test-channel-merger-node-channel-count-support';\nimport { createTestConstantSourceNodeAccurateSchedulingSupport } from './factories/test-constant-source-node-accurate-scheduling-support';\nimport { createTestConvolverNodeBufferReassignabilitySupport } from './factories/test-convolver-node-buffer-reassignability-support';\nimport { createTestConvolverNodeChannelCountSupport } from './factories/test-convolver-node-channel-count-support';\nimport { createTestIsSecureContextSupport } from './factories/test-is-secure-context-support';\nimport { createTestMediaStreamAudioSourceNodeMediaStreamWithoutAudioTrackSupport } from './factories/test-media-stream-audio-source-node-media-stream-without-audio-track-support';\nimport { createTestOfflineAudioContextCurrentTimeSupport } from './factories/test-offline-audio-context-current-time-support';\nimport { createTestStereoPannerNodeDefaultValueSupport } from './factories/test-stereo-panner-node-default-value-support';\nimport { createUnknownError } from './factories/unknown-error';\nimport { createWaveShaperNodeConstructor } from './factories/wave-shaper-node-constructor';\nimport { createWaveShaperNodeRendererFactory } from './factories/wave-shaper-node-renderer-factory';\nimport { createWindow } from './factories/window';\nimport { createWrapAudioBufferCopyChannelMethods } from './factories/wrap-audio-buffer-copy-channel-methods';\nimport { createWrapAudioBufferCopyChannelMethodsOutOfBounds } from './factories/wrap-audio-buffer-copy-channel-methods-out-of-bounds';\nimport { createWrapAudioBufferSourceNodeStopMethodNullifiedBuffer } from './factories/wrap-audio-buffer-source-node-stop-method-nullified-buffer';\nimport { createWrapChannelMergerNode } from './factories/wrap-channel-merger-node';\nimport {\n AUDIO_NODE_CONNECTIONS_STORE,\n AUDIO_NODE_STORE,\n AUDIO_PARAM_CONNECTIONS_STORE,\n AUDIO_PARAM_STORE,\n CONTEXT_STORE,\n CYCLE_COUNTERS\n} from './globals';\nimport { connectNativeAudioNodeToNativeAudioNode } from './helpers/connect-native-audio-node-to-native-audio-node';\nimport { disconnectNativeAudioNodeFromNativeAudioNode } from './helpers/disconnect-native-audio-node-from-native-audio-node';\nimport { getAudioNodeConnections } from './helpers/get-audio-node-connections';\nimport { getAudioParamConnections } from './helpers/get-audio-param-connections';\nimport { getEventListenersOfAudioNode } from './helpers/get-event-listeners-of-audio-node';\nimport { getFirstSample } from './helpers/get-first-sample';\nimport { getNativeAudioNode } from './helpers/get-native-audio-node';\nimport { getNativeAudioParam } from './helpers/get-native-audio-param';\nimport { getValueForKey } from './helpers/get-value-for-key';\nimport { insertElementInSet } from './helpers/insert-element-in-set';\nimport { isActiveAudioNode } from './helpers/is-active-audio-node';\nimport { isDCCurve } from './helpers/is-dc-curve';\nimport { isPartOfACycle } from './helpers/is-part-of-a-cycle';\nimport { isPassiveAudioNode } from './helpers/is-passive-audio-node';\nimport { overwriteAccessors } from './helpers/overwrite-accessors';\nimport { pickElementFromSet } from './helpers/pick-element-from-set';\nimport { sanitizeAudioWorkletNodeOptions } from './helpers/sanitize-audio-worklet-node-options';\nimport { sanitizeChannelSplitterOptions } from './helpers/sanitize-channel-splitter-options';\nimport { sanitizePeriodicWaveOptions } from './helpers/sanitize-periodic-wave-options';\nimport { setValueAtTimeUntilPossible } from './helpers/set-value-at-time-until-possible';\nimport { testAudioBufferCopyChannelMethodsOutOfBoundsSupport } from './helpers/test-audio-buffer-copy-channel-methods-out-of-bounds-support';\nimport { testAudioBufferSourceNodeStartMethodConsecutiveCallsSupport } from './helpers/test-audio-buffer-source-node-start-method-consecutive-calls-support';\nimport { testAudioBufferSourceNodeStartMethodOffsetClampingSupport } from './helpers/test-audio-buffer-source-node-start-method-offset-clamping-support';\nimport { testAudioBufferSourceNodeStopMethodNullifiedBufferSupport } from './helpers/test-audio-buffer-source-node-stop-method-nullified-buffer-support';\nimport { testAudioScheduledSourceNodeStartMethodNegativeParametersSupport } from './helpers/test-audio-scheduled-source-node-start-method-negative-parameters-support';\nimport { testAudioScheduledSourceNodeStopMethodConsecutiveCallsSupport } from './helpers/test-audio-scheduled-source-node-stop-method-consecutive-calls-support';\nimport { testAudioScheduledSourceNodeStopMethodNegativeParametersSupport } from './helpers/test-audio-scheduled-source-node-stop-method-negative-parameters-support';\nimport { testAudioWorkletNodeOptionsClonability } from './helpers/test-audio-worklet-node-options-clonability';\nimport { testDomExceptionConstructorSupport } from './helpers/test-dom-exception-constructor-support';\nimport { testPromiseSupport } from './helpers/test-promise-support';\nimport { testTransferablesSupport } from './helpers/test-transferables-support';\nimport { wrapAudioBufferSourceNodeStartMethodOffsetClamping } from './helpers/wrap-audio-buffer-source-node-start-method-offset-clamping';\nimport { wrapAudioScheduledSourceNodeStopMethodConsecutiveCalls } from './helpers/wrap-audio-scheduled-source-node-stop-method-consecutive-calls';\nimport { wrapEventListener } from './helpers/wrap-event-listener';\nimport {\n IAnalyserNode,\n IAudioBuffer,\n IAudioBufferSourceNode,\n IAudioContext,\n IAudioNode,\n IAudioWorkletNode,\n IBiquadFilterNode,\n IConstantSourceNode,\n IConvolverNode,\n IDelayNode,\n IDynamicsCompressorNode,\n IGainNode,\n IIIRFilterNode,\n IMediaElementAudioSourceNode,\n IMediaStreamAudioDestinationNode,\n IMediaStreamAudioSourceNode,\n IMediaStreamTrackAudioSourceNode,\n IMinimalAudioContext,\n IMinimalOfflineAudioContext,\n IOfflineAudioContext,\n IOfflineAudioContextConstructor,\n IOscillatorNode,\n IPannerNode,\n IPeriodicWave,\n IStereoPannerNode,\n IWaveShaperNode\n} from './interfaces';\nimport {\n TActiveAudioWorkletNodeInputsStore,\n TAddAudioWorkletModuleFunction,\n TAnalyserNodeConstructor,\n TAudioBufferConstructor,\n TAudioBufferSourceNodeConstructor,\n TAudioBufferStore,\n TAudioContextConstructor,\n TAudioParamAudioNodeStore,\n TAudioWorkletNodeConstructor,\n TBackupOfflineAudioContextStore,\n TBiquadFilterNodeConstructor,\n TChannelMergerNodeConstructor,\n TChannelSplitterNodeConstructor,\n TConstantSourceNodeConstructor,\n TContext,\n TConvolverNodeConstructor,\n TDecodeAudioDataFunction,\n TDelayNodeConstructor,\n TDynamicsCompressorNodeConstructor,\n TGainNodeConstructor,\n TIIRFilterNodeConstructor,\n TMediaElementAudioSourceNodeConstructor,\n TMediaStreamAudioDestinationNodeConstructor,\n TMediaStreamAudioSourceNodeConstructor,\n TMediaStreamTrackAudioSourceNodeConstructor,\n TMinimalAudioContextConstructor,\n TMinimalOfflineAudioContextConstructor,\n TOscillatorNodeConstructor,\n TPannerNodeConstructor,\n TPeriodicWaveConstructor,\n TStereoPannerNodeConstructor,\n TUnrenderedAudioWorkletNodeStore,\n TWaveShaperNodeConstructor\n} from './types';\n\n/*\n * @todo Explicitly referencing the barrel file seems to be necessary when enabling the\n * isolatedModules compiler option.\n */\nexport * from './interfaces/index';\nexport * from './types/index';\n\nconst addActiveInputConnectionToAudioNode = createAddActiveInputConnectionToAudioNode(insertElementInSet);\nconst addPassiveInputConnectionToAudioNode = createAddPassiveInputConnectionToAudioNode(insertElementInSet);\nconst deleteActiveInputConnectionToAudioNode = createDeleteActiveInputConnectionToAudioNode(pickElementFromSet);\nconst audioNodeTailTimeStore = new WeakMap();\nconst getAudioNodeTailTime = createGetAudioNodeTailTime(audioNodeTailTimeStore);\nconst cacheTestResult = createCacheTestResult(new Map(), new WeakMap());\nconst window = createWindow();\nconst createNativeAnalyserNode = createNativeAnalyserNodeFactory(cacheTestResult, createIndexSizeError);\nconst getAudioNodeRenderer = createGetAudioNodeRenderer(getAudioNodeConnections);\nconst renderInputsOfAudioNode = createRenderInputsOfAudioNode(getAudioNodeConnections, getAudioNodeRenderer, isPartOfACycle);\nconst createAnalyserNodeRenderer = createAnalyserNodeRendererFactory(createNativeAnalyserNode, getNativeAudioNode, renderInputsOfAudioNode);\nconst getNativeContext = createGetNativeContext(CONTEXT_STORE);\nconst nativeOfflineAudioContextConstructor = createNativeOfflineAudioContextConstructor(window);\nconst isNativeOfflineAudioContext = createIsNativeOfflineAudioContext(nativeOfflineAudioContextConstructor);\nconst audioParamAudioNodeStore: TAudioParamAudioNodeStore = new WeakMap();\nconst eventTargetConstructor = createEventTargetConstructor(wrapEventListener);\nconst nativeAudioContextConstructor = createNativeAudioContextConstructor(window);\nconst isNativeAudioContext = createIsNativeAudioContext(nativeAudioContextConstructor);\nconst isNativeAudioNode = createIsNativeAudioNode(window);\nconst isNativeAudioParam = createIsNativeAudioParam(window);\nconst nativeAudioWorkletNodeConstructor = createNativeAudioWorkletNodeConstructor(window);\nconst audioNodeConstructor = createAudioNodeConstructor(\n createAddAudioNodeConnections(AUDIO_NODE_CONNECTIONS_STORE),\n createAddConnectionToAudioNode(\n addActiveInputConnectionToAudioNode,\n addPassiveInputConnectionToAudioNode,\n connectNativeAudioNodeToNativeAudioNode,\n deleteActiveInputConnectionToAudioNode,\n disconnectNativeAudioNodeFromNativeAudioNode,\n getAudioNodeConnections,\n getAudioNodeTailTime,\n getEventListenersOfAudioNode,\n getNativeAudioNode,\n insertElementInSet,\n isActiveAudioNode,\n isPartOfACycle,\n isPassiveAudioNode\n ),\n cacheTestResult,\n createIncrementCycleCounterFactory(\n CYCLE_COUNTERS,\n disconnectNativeAudioNodeFromNativeAudioNode,\n getAudioNodeConnections,\n getNativeAudioNode,\n getNativeAudioParam,\n isActiveAudioNode\n ),\n createIndexSizeError,\n createInvalidAccessError,\n createNotSupportedError,\n createDecrementCycleCounter(\n connectNativeAudioNodeToNativeAudioNode,\n CYCLE_COUNTERS,\n getAudioNodeConnections,\n getNativeAudioNode,\n getNativeAudioParam,\n getNativeContext,\n isActiveAudioNode,\n isNativeOfflineAudioContext\n ),\n createDetectCycles(audioParamAudioNodeStore, getAudioNodeConnections, getValueForKey),\n eventTargetConstructor,\n getNativeContext,\n isNativeAudioContext,\n isNativeAudioNode,\n isNativeAudioParam,\n isNativeOfflineAudioContext,\n nativeAudioWorkletNodeConstructor\n);\nconst analyserNodeConstructor: TAnalyserNodeConstructor = createAnalyserNodeConstructor(\n audioNodeConstructor,\n createAnalyserNodeRenderer,\n createIndexSizeError,\n createNativeAnalyserNode,\n getNativeContext,\n isNativeOfflineAudioContext\n);\n\ntype analyserNodeConstructor = IAnalyserNode;\n\nexport { analyserNodeConstructor as AnalyserNode };\n\nconst audioBufferStore: TAudioBufferStore = new WeakSet();\nconst nativeAudioBufferConstructor = createNativeAudioBufferConstructor(window);\nconst convertNumberToUnsignedLong = createConvertNumberToUnsignedLong(new Uint32Array(1));\nconst wrapAudioBufferCopyChannelMethods = createWrapAudioBufferCopyChannelMethods(convertNumberToUnsignedLong, createIndexSizeError);\nconst wrapAudioBufferCopyChannelMethodsOutOfBounds = createWrapAudioBufferCopyChannelMethodsOutOfBounds(convertNumberToUnsignedLong);\nconst audioBufferConstructor: TAudioBufferConstructor = createAudioBufferConstructor(\n audioBufferStore,\n cacheTestResult,\n createNotSupportedError,\n nativeAudioBufferConstructor,\n nativeOfflineAudioContextConstructor,\n createTestAudioBufferConstructorSupport(nativeAudioBufferConstructor),\n wrapAudioBufferCopyChannelMethods,\n wrapAudioBufferCopyChannelMethodsOutOfBounds\n);\n\ntype audioBufferConstructor = IAudioBuffer;\n\nexport { audioBufferConstructor as AudioBuffer };\n\nconst addSilentConnection = createAddSilentConnection(createNativeGainNode);\nconst renderInputsOfAudioParam = createRenderInputsOfAudioParam(getAudioNodeRenderer, getAudioParamConnections, isPartOfACycle);\nconst connectAudioParam = createConnectAudioParam(renderInputsOfAudioParam);\nconst createNativeAudioBufferSourceNode = createNativeAudioBufferSourceNodeFactory(\n addSilentConnection,\n cacheTestResult,\n testAudioBufferSourceNodeStartMethodConsecutiveCallsSupport,\n testAudioBufferSourceNodeStartMethodOffsetClampingSupport,\n testAudioBufferSourceNodeStopMethodNullifiedBufferSupport,\n testAudioScheduledSourceNodeStartMethodNegativeParametersSupport,\n testAudioScheduledSourceNodeStopMethodConsecutiveCallsSupport,\n testAudioScheduledSourceNodeStopMethodNegativeParametersSupport,\n wrapAudioBufferSourceNodeStartMethodOffsetClamping,\n createWrapAudioBufferSourceNodeStopMethodNullifiedBuffer(overwriteAccessors),\n wrapAudioScheduledSourceNodeStopMethodConsecutiveCalls\n);\nconst renderAutomation = createRenderAutomation(createGetAudioParamRenderer(getAudioParamConnections), renderInputsOfAudioParam);\nconst createAudioBufferSourceNodeRenderer = createAudioBufferSourceNodeRendererFactory(\n connectAudioParam,\n createNativeAudioBufferSourceNode,\n getNativeAudioNode,\n renderAutomation,\n renderInputsOfAudioNode\n);\nconst createAudioParam = createAudioParamFactory(\n createAddAudioParamConnections(AUDIO_PARAM_CONNECTIONS_STORE),\n audioParamAudioNodeStore,\n AUDIO_PARAM_STORE,\n createAudioParamRenderer,\n createCancelAndHoldAutomationEvent,\n createCancelScheduledValuesAutomationEvent,\n createExponentialRampToValueAutomationEvent,\n createLinearRampToValueAutomationEvent,\n createSetTargetAutomationEvent,\n createSetValueAutomationEvent,\n createSetValueCurveAutomationEvent,\n nativeAudioContextConstructor,\n setValueAtTimeUntilPossible\n);\nconst audioBufferSourceNodeConstructor: TAudioBufferSourceNodeConstructor = createAudioBufferSourceNodeConstructor(\n audioNodeConstructor,\n createAudioBufferSourceNodeRenderer,\n createAudioParam,\n createInvalidStateError,\n createNativeAudioBufferSourceNode,\n getNativeContext,\n isNativeOfflineAudioContext,\n wrapEventListener\n);\n\ntype audioBufferSourceNodeConstructor = IAudioBufferSourceNode;\n\nexport { audioBufferSourceNodeConstructor as AudioBufferSourceNode };\n\nconst audioDestinationNodeConstructor = createAudioDestinationNodeConstructor(\n audioNodeConstructor,\n createAudioDestinationNodeRenderer,\n createIndexSizeError,\n createInvalidStateError,\n createNativeAudioDestinationNodeFactory(createNativeGainNode, overwriteAccessors),\n getNativeContext,\n isNativeOfflineAudioContext,\n renderInputsOfAudioNode\n);\nconst createBiquadFilterNodeRenderer = createBiquadFilterNodeRendererFactory(\n connectAudioParam,\n createNativeBiquadFilterNode,\n getNativeAudioNode,\n renderAutomation,\n renderInputsOfAudioNode\n);\nconst setAudioNodeTailTime = createSetAudioNodeTailTime(audioNodeTailTimeStore);\nconst biquadFilterNodeConstructor: TBiquadFilterNodeConstructor = createBiquadFilterNodeConstructor(\n audioNodeConstructor,\n createAudioParam,\n createBiquadFilterNodeRenderer,\n createInvalidAccessError,\n createNativeBiquadFilterNode,\n getNativeContext,\n isNativeOfflineAudioContext,\n setAudioNodeTailTime\n);\nconst monitorConnections = createMonitorConnections(insertElementInSet, isNativeAudioNode);\nconst wrapChannelMergerNode = createWrapChannelMergerNode(createInvalidStateError, monitorConnections);\nconst createNativeChannelMergerNode = createNativeChannelMergerNodeFactory(nativeAudioContextConstructor, wrapChannelMergerNode);\nconst createChannelMergerNodeRenderer = createChannelMergerNodeRendererFactory(\n createNativeChannelMergerNode,\n getNativeAudioNode,\n renderInputsOfAudioNode\n);\nconst channelMergerNodeConstructor: TChannelMergerNodeConstructor = createChannelMergerNodeConstructor(\n audioNodeConstructor,\n createChannelMergerNodeRenderer,\n createNativeChannelMergerNode,\n getNativeContext,\n isNativeOfflineAudioContext\n);\nconst createChannelSplitterNodeRenderer = createChannelSplitterNodeRendererFactory(\n createNativeChannelSplitterNode,\n getNativeAudioNode,\n renderInputsOfAudioNode\n);\nconst channelSplitterNodeConstructor: TChannelSplitterNodeConstructor = createChannelSplitterNodeConstructor(\n audioNodeConstructor,\n createChannelSplitterNodeRenderer,\n createNativeChannelSplitterNode,\n getNativeContext,\n isNativeOfflineAudioContext,\n sanitizeChannelSplitterOptions\n);\nconst createNativeConstantSourceNodeFaker = createNativeConstantSourceNodeFakerFactory(\n addSilentConnection,\n createNativeAudioBufferSourceNode,\n createNativeGainNode,\n monitorConnections\n);\nconst createNativeConstantSourceNode = createNativeConstantSourceNodeFactory(\n addSilentConnection,\n cacheTestResult,\n createNativeConstantSourceNodeFaker,\n testAudioScheduledSourceNodeStartMethodNegativeParametersSupport,\n testAudioScheduledSourceNodeStopMethodNegativeParametersSupport\n);\nconst createConstantSourceNodeRenderer = createConstantSourceNodeRendererFactory(\n connectAudioParam,\n createNativeConstantSourceNode,\n getNativeAudioNode,\n renderAutomation,\n renderInputsOfAudioNode\n);\nconst constantSourceNodeConstructor: TConstantSourceNodeConstructor = createConstantSourceNodeConstructor(\n audioNodeConstructor,\n createAudioParam,\n createConstantSourceNodeRenderer,\n createNativeConstantSourceNode,\n getNativeContext,\n isNativeOfflineAudioContext,\n wrapEventListener\n);\nconst createNativeConvolverNode = createNativeConvolverNodeFactory(createNotSupportedError, overwriteAccessors);\nconst createConvolverNodeRenderer = createConvolverNodeRendererFactory(\n createNativeConvolverNode,\n getNativeAudioNode,\n renderInputsOfAudioNode\n);\nconst convolverNodeConstructor: TConvolverNodeConstructor = createConvolverNodeConstructor(\n audioNodeConstructor,\n createConvolverNodeRenderer,\n createNativeConvolverNode,\n getNativeContext,\n isNativeOfflineAudioContext,\n setAudioNodeTailTime\n);\nconst createDelayNodeRenderer = createDelayNodeRendererFactory(\n connectAudioParam,\n createNativeDelayNode,\n getNativeAudioNode,\n renderAutomation,\n renderInputsOfAudioNode\n);\nconst delayNodeConstructor: TDelayNodeConstructor = createDelayNodeConstructor(\n audioNodeConstructor,\n createAudioParam,\n createDelayNodeRenderer,\n createNativeDelayNode,\n getNativeContext,\n isNativeOfflineAudioContext,\n setAudioNodeTailTime\n);\nconst createNativeDynamicsCompressorNode = createNativeDynamicsCompressorNodeFactory(createNotSupportedError);\nconst createDynamicsCompressorNodeRenderer = createDynamicsCompressorNodeRendererFactory(\n connectAudioParam,\n createNativeDynamicsCompressorNode,\n getNativeAudioNode,\n renderAutomation,\n renderInputsOfAudioNode\n);\nconst dynamicsCompressorNodeConstructor: TDynamicsCompressorNodeConstructor = createDynamicsCompressorNodeConstructor(\n audioNodeConstructor,\n createAudioParam,\n createDynamicsCompressorNodeRenderer,\n createNativeDynamicsCompressorNode,\n createNotSupportedError,\n getNativeContext,\n isNativeOfflineAudioContext,\n setAudioNodeTailTime\n);\nconst createGainNodeRenderer = createGainNodeRendererFactory(\n connectAudioParam,\n createNativeGainNode,\n getNativeAudioNode,\n renderAutomation,\n renderInputsOfAudioNode\n);\nconst gainNodeConstructor: TGainNodeConstructor = createGainNodeConstructor(\n audioNodeConstructor,\n createAudioParam,\n createGainNodeRenderer,\n createNativeGainNode,\n getNativeContext,\n isNativeOfflineAudioContext\n);\nconst createNativeIIRFilterNodeFaker = createNativeIIRFilterNodeFakerFactory(\n createInvalidAccessError,\n createInvalidStateError,\n createNativeScriptProcessorNode,\n createNotSupportedError\n);\nconst renderNativeOfflineAudioContext = createRenderNativeOfflineAudioContext(\n cacheTestResult,\n createNativeGainNode,\n createNativeScriptProcessorNode,\n createTestOfflineAudioContextCurrentTimeSupport(createNativeGainNode, nativeOfflineAudioContextConstructor)\n);\nconst createIIRFilterNodeRenderer = createIIRFilterNodeRendererFactory(\n createNativeAudioBufferSourceNode,\n getNativeAudioNode,\n nativeOfflineAudioContextConstructor,\n renderInputsOfAudioNode,\n renderNativeOfflineAudioContext\n);\nconst createNativeIIRFilterNode = createNativeIIRFilterNodeFactory(createNativeIIRFilterNodeFaker);\nconst iIRFilterNodeConstructor: TIIRFilterNodeConstructor = createIIRFilterNodeConstructor(\n audioNodeConstructor,\n createNativeIIRFilterNode,\n createIIRFilterNodeRenderer,\n getNativeContext,\n isNativeOfflineAudioContext,\n setAudioNodeTailTime\n);\nconst createAudioListener = createAudioListenerFactory(\n createAudioParam,\n createNativeChannelMergerNode,\n createNativeConstantSourceNode,\n createNativeScriptProcessorNode,\n createNotSupportedError,\n getFirstSample,\n isNativeOfflineAudioContext,\n overwriteAccessors\n);\nconst unrenderedAudioWorkletNodeStore: TUnrenderedAudioWorkletNodeStore = new WeakMap();\nconst minimalBaseAudioContextConstructor = createMinimalBaseAudioContextConstructor(\n audioDestinationNodeConstructor,\n createAudioListener,\n eventTargetConstructor,\n isNativeOfflineAudioContext,\n unrenderedAudioWorkletNodeStore,\n wrapEventListener\n);\nconst createNativeOscillatorNode = createNativeOscillatorNodeFactory(\n addSilentConnection,\n cacheTestResult,\n testAudioScheduledSourceNodeStartMethodNegativeParametersSupport,\n testAudioScheduledSourceNodeStopMethodConsecutiveCallsSupport,\n testAudioScheduledSourceNodeStopMethodNegativeParametersSupport,\n wrapAudioScheduledSourceNodeStopMethodConsecutiveCalls\n);\nconst createOscillatorNodeRenderer = createOscillatorNodeRendererFactory(\n connectAudioParam,\n createNativeOscillatorNode,\n getNativeAudioNode,\n renderAutomation,\n renderInputsOfAudioNode\n);\nconst oscillatorNodeConstructor: TOscillatorNodeConstructor = createOscillatorNodeConstructor(\n audioNodeConstructor,\n createAudioParam,\n createNativeOscillatorNode,\n createOscillatorNodeRenderer,\n getNativeContext,\n isNativeOfflineAudioContext,\n wrapEventListener\n);\nconst createConnectedNativeAudioBufferSourceNode = createConnectedNativeAudioBufferSourceNodeFactory(createNativeAudioBufferSourceNode);\nconst createNativeWaveShaperNodeFaker = createNativeWaveShaperNodeFakerFactory(\n createConnectedNativeAudioBufferSourceNode,\n createInvalidStateError,\n createNativeGainNode,\n isDCCurve,\n monitorConnections\n);\nconst createNativeWaveShaperNode = createNativeWaveShaperNodeFactory(\n createConnectedNativeAudioBufferSourceNode,\n createInvalidStateError,\n createNativeWaveShaperNodeFaker,\n isDCCurve,\n monitorConnections,\n nativeAudioContextConstructor,\n overwriteAccessors\n);\nconst createNativePannerNodeFaker = createNativePannerNodeFakerFactory(\n connectNativeAudioNodeToNativeAudioNode,\n createInvalidStateError,\n createNativeChannelMergerNode,\n createNativeGainNode,\n createNativeScriptProcessorNode,\n createNativeWaveShaperNode,\n createNotSupportedError,\n disconnectNativeAudioNodeFromNativeAudioNode,\n getFirstSample,\n monitorConnections\n);\nconst createNativePannerNode = createNativePannerNodeFactory(createNativePannerNodeFaker);\nconst createPannerNodeRenderer = createPannerNodeRendererFactory(\n connectAudioParam,\n createNativeChannelMergerNode,\n createNativeConstantSourceNode,\n createNativeGainNode,\n createNativePannerNode,\n getNativeAudioNode,\n nativeOfflineAudioContextConstructor,\n renderAutomation,\n renderInputsOfAudioNode,\n renderNativeOfflineAudioContext\n);\nconst pannerNodeConstructor: TPannerNodeConstructor = createPannerNodeConstructor(\n audioNodeConstructor,\n createAudioParam,\n createNativePannerNode,\n createPannerNodeRenderer,\n getNativeContext,\n isNativeOfflineAudioContext,\n setAudioNodeTailTime\n);\nconst createNativePeriodicWave = createNativePeriodicWaveFactory(createIndexSizeError);\nconst periodicWaveConstructor: TPeriodicWaveConstructor = createPeriodicWaveConstructor(\n createNativePeriodicWave,\n getNativeContext,\n new WeakSet(),\n sanitizePeriodicWaveOptions\n);\nconst nativeStereoPannerNodeFakerFactory = createNativeStereoPannerNodeFakerFactory(\n createNativeChannelMergerNode,\n createNativeChannelSplitterNode,\n createNativeGainNode,\n createNativeWaveShaperNode,\n createNotSupportedError,\n monitorConnections\n);\nconst createNativeStereoPannerNode = createNativeStereoPannerNodeFactory(nativeStereoPannerNodeFakerFactory, createNotSupportedError);\nconst createStereoPannerNodeRenderer = createStereoPannerNodeRendererFactory(\n connectAudioParam,\n createNativeStereoPannerNode,\n getNativeAudioNode,\n renderAutomation,\n renderInputsOfAudioNode\n);\nconst stereoPannerNodeConstructor: TStereoPannerNodeConstructor = createStereoPannerNodeConstructor(\n audioNodeConstructor,\n createAudioParam,\n createNativeStereoPannerNode,\n createStereoPannerNodeRenderer,\n getNativeContext,\n isNativeOfflineAudioContext\n);\nconst createWaveShaperNodeRenderer = createWaveShaperNodeRendererFactory(\n createNativeWaveShaperNode,\n getNativeAudioNode,\n renderInputsOfAudioNode\n);\nconst waveShaperNodeConstructor: TWaveShaperNodeConstructor = createWaveShaperNodeConstructor(\n audioNodeConstructor,\n createInvalidStateError,\n createNativeWaveShaperNode,\n createWaveShaperNodeRenderer,\n getNativeContext,\n isNativeOfflineAudioContext,\n setAudioNodeTailTime\n);\nconst isSecureContext = createIsSecureContext(window);\nconst exposeCurrentFrameAndCurrentTime = createExposeCurrentFrameAndCurrentTime(window);\nconst backupOfflineAudioContextStore: TBackupOfflineAudioContextStore = new WeakMap();\nconst getOrCreateBackupOfflineAudioContext = createGetOrCreateBackupOfflineAudioContext(\n backupOfflineAudioContextStore,\n nativeOfflineAudioContextConstructor\n);\n\n// The addAudioWorkletModule() function is only available in a SecureContext.\nexport const addAudioWorkletModule: undefined | TAddAudioWorkletModuleFunction = isSecureContext\n ? createAddAudioWorkletModule(\n cacheTestResult,\n createNotSupportedError,\n createEvaluateSource(window),\n exposeCurrentFrameAndCurrentTime,\n createFetchSource(createAbortError),\n getNativeContext,\n getOrCreateBackupOfflineAudioContext,\n isNativeOfflineAudioContext,\n nativeAudioWorkletNodeConstructor,\n new WeakMap(),\n new WeakMap(),\n createTestAudioWorkletProcessorPostMessageSupport(nativeAudioWorkletNodeConstructor, nativeOfflineAudioContextConstructor),\n // @todo window is guaranteed to be defined because isSecureContext checks that as well.\n >window\n )\n : undefined;\n\nconst isNativeContext = createIsNativeContext(isNativeAudioContext, isNativeOfflineAudioContext);\n\nexport const decodeAudioData: TDecodeAudioDataFunction = createDecodeAudioData(\n audioBufferStore,\n cacheTestResult,\n createDataCloneError,\n createEncodingError,\n new WeakSet(),\n getNativeContext,\n isNativeContext,\n testAudioBufferCopyChannelMethodsOutOfBoundsSupport,\n testPromiseSupport,\n wrapAudioBufferCopyChannelMethods,\n wrapAudioBufferCopyChannelMethodsOutOfBounds\n);\n\nconst baseAudioContextConstructor = createBaseAudioContextConstructor(\n addAudioWorkletModule,\n analyserNodeConstructor,\n audioBufferConstructor,\n audioBufferSourceNodeConstructor,\n biquadFilterNodeConstructor,\n channelMergerNodeConstructor,\n channelSplitterNodeConstructor,\n constantSourceNodeConstructor,\n convolverNodeConstructor,\n decodeAudioData,\n delayNodeConstructor,\n dynamicsCompressorNodeConstructor,\n gainNodeConstructor,\n iIRFilterNodeConstructor,\n minimalBaseAudioContextConstructor,\n oscillatorNodeConstructor,\n pannerNodeConstructor,\n periodicWaveConstructor,\n stereoPannerNodeConstructor,\n waveShaperNodeConstructor\n);\nconst mediaElementAudioSourceNodeConstructor: TMediaElementAudioSourceNodeConstructor = createMediaElementAudioSourceNodeConstructor(\n audioNodeConstructor,\n createNativeMediaElementAudioSourceNode,\n getNativeContext,\n isNativeOfflineAudioContext\n);\nconst mediaStreamAudioDestinationNodeConstructor: TMediaStreamAudioDestinationNodeConstructor =\n createMediaStreamAudioDestinationNodeConstructor(\n audioNodeConstructor,\n createNativeMediaStreamAudioDestinationNode,\n getNativeContext,\n isNativeOfflineAudioContext\n );\nconst mediaStreamAudioSourceNodeConstructor: TMediaStreamAudioSourceNodeConstructor = createMediaStreamAudioSourceNodeConstructor(\n audioNodeConstructor,\n createNativeMediaStreamAudioSourceNode,\n getNativeContext,\n isNativeOfflineAudioContext\n);\nconst createNativeMediaStreamTrackAudioSourceNode = createNativeMediaStreamTrackAudioSourceNodeFactory(\n createInvalidStateError,\n isNativeOfflineAudioContext\n);\nconst mediaStreamTrackAudioSourceNodeConstructor: TMediaStreamTrackAudioSourceNodeConstructor =\n createMediaStreamTrackAudioSourceNodeConstructor(audioNodeConstructor, createNativeMediaStreamTrackAudioSourceNode, getNativeContext);\nconst audioContextConstructor: TAudioContextConstructor = createAudioContextConstructor(\n baseAudioContextConstructor,\n createInvalidStateError,\n createNotSupportedError,\n createUnknownError,\n mediaElementAudioSourceNodeConstructor,\n mediaStreamAudioDestinationNodeConstructor,\n mediaStreamAudioSourceNodeConstructor,\n mediaStreamTrackAudioSourceNodeConstructor,\n nativeAudioContextConstructor\n);\n\ntype audioContextConstructor = IAudioContext;\n\nexport { audioContextConstructor as AudioContext };\n\nconst getUnrenderedAudioWorkletNodes = createGetUnrenderedAudioWorkletNodes(unrenderedAudioWorkletNodeStore);\nconst addUnrenderedAudioWorkletNode = createAddUnrenderedAudioWorkletNode(getUnrenderedAudioWorkletNodes);\nconst connectMultipleOutputs = createConnectMultipleOutputs(createIndexSizeError);\nconst deleteUnrenderedAudioWorkletNode = createDeleteUnrenderedAudioWorkletNode(getUnrenderedAudioWorkletNodes);\nconst disconnectMultipleOutputs = createDisconnectMultipleOutputs(createIndexSizeError);\nconst activeAudioWorkletNodeInputsStore: TActiveAudioWorkletNodeInputsStore = new WeakMap();\nconst getActiveAudioWorkletNodeInputs = createGetActiveAudioWorkletNodeInputs(activeAudioWorkletNodeInputsStore, getValueForKey);\nconst createNativeAudioWorkletNodeFaker = createNativeAudioWorkletNodeFakerFactory(\n connectMultipleOutputs,\n createIndexSizeError,\n createInvalidStateError,\n createNativeChannelMergerNode,\n createNativeChannelSplitterNode,\n createNativeConstantSourceNode,\n createNativeGainNode,\n createNativeScriptProcessorNode,\n createNotSupportedError,\n disconnectMultipleOutputs,\n exposeCurrentFrameAndCurrentTime,\n getActiveAudioWorkletNodeInputs,\n monitorConnections\n);\nconst createNativeAudioWorkletNode = createNativeAudioWorkletNodeFactory(\n createInvalidStateError,\n createNativeAudioWorkletNodeFaker,\n createNativeGainNode,\n createNotSupportedError,\n monitorConnections\n);\nconst createAudioWorkletNodeRenderer = createAudioWorkletNodeRendererFactory(\n connectAudioParam,\n connectMultipleOutputs,\n createNativeAudioBufferSourceNode,\n createNativeChannelMergerNode,\n createNativeChannelSplitterNode,\n createNativeConstantSourceNode,\n createNativeGainNode,\n deleteUnrenderedAudioWorkletNode,\n disconnectMultipleOutputs,\n exposeCurrentFrameAndCurrentTime,\n getNativeAudioNode,\n nativeAudioWorkletNodeConstructor,\n nativeOfflineAudioContextConstructor,\n renderAutomation,\n renderInputsOfAudioNode,\n renderNativeOfflineAudioContext\n);\nconst getBackupOfflineAudioContext = createGetBackupOfflineAudioContext(backupOfflineAudioContextStore);\nconst setActiveAudioWorkletNodeInputs = createSetActiveAudioWorkletNodeInputs(activeAudioWorkletNodeInputsStore);\n\n// The AudioWorkletNode constructor is only available in a SecureContext.\nconst audioWorkletNodeConstructor: undefined | TAudioWorkletNodeConstructor = isSecureContext\n ? createAudioWorkletNodeConstructor(\n addUnrenderedAudioWorkletNode,\n audioNodeConstructor,\n createAudioParam,\n createAudioWorkletNodeRenderer,\n createNativeAudioWorkletNode,\n getAudioNodeConnections,\n getBackupOfflineAudioContext,\n getNativeContext,\n isNativeOfflineAudioContext,\n nativeAudioWorkletNodeConstructor,\n sanitizeAudioWorkletNodeOptions,\n setActiveAudioWorkletNodeInputs,\n testAudioWorkletNodeOptionsClonability,\n wrapEventListener\n )\n : undefined;\n\ntype audioWorkletNodeConstructor = undefined | IAudioWorkletNode;\n\nexport { audioWorkletNodeConstructor as AudioWorkletNode };\n\ntype biquadFilterNodeConstructor = IBiquadFilterNode;\n\nexport { biquadFilterNodeConstructor as BiquadFilterNode };\n\ntype channelMergerNodeConstructor = IAudioNode;\n\nexport { channelMergerNodeConstructor as ChannelMergerNode };\n\ntype channelSplitterNodeConstructor = IAudioNode;\n\nexport { channelSplitterNodeConstructor as ChannelSplitterNode };\n\ntype constantSourceNodeConstructor = IConstantSourceNode;\n\nexport { convolverNodeConstructor as ConvolverNode };\n\ntype convolverNodeConstructor = IConvolverNode;\n\nexport { constantSourceNodeConstructor as ConstantSourceNode };\n\ntype delayNodeConstructor = IDelayNode;\n\nexport { delayNodeConstructor as DelayNode };\n\ntype dynamicsCompressorNodeConstructor = IDynamicsCompressorNode;\n\nexport { dynamicsCompressorNodeConstructor as DynamicsCompressorNode };\n\ntype gainNodeConstructor = IGainNode;\n\nexport { gainNodeConstructor as GainNode };\n\ntype iIRFilterNodeConstructor = IIIRFilterNode;\n\nexport { iIRFilterNodeConstructor as IIRFilterNode };\n\ntype mediaElementAudioSourceNodeConstructor = IMediaElementAudioSourceNode;\n\nexport { mediaElementAudioSourceNodeConstructor as MediaElementAudioSourceNode };\n\ntype mediaStreamAudioDestinationNodeConstructor = IMediaStreamAudioDestinationNode;\n\nexport { mediaStreamAudioDestinationNodeConstructor as MediaStreamAudioDestinationNode };\n\ntype mediaStreamAudioSourceNodeConstructor = IMediaStreamAudioSourceNode;\n\nexport { mediaStreamAudioSourceNodeConstructor as MediaStreamAudioSourceNode };\n\ntype mediaStreamTrackAudioSourceNodeConstructor = IMediaStreamTrackAudioSourceNode;\n\nexport { mediaStreamTrackAudioSourceNodeConstructor as MediaStreamTrackAudioSourceNode };\n\nconst minimalAudioContextConstructor: TMinimalAudioContextConstructor = createMinimalAudioContextConstructor(\n createInvalidStateError,\n createNotSupportedError,\n createUnknownError,\n minimalBaseAudioContextConstructor,\n nativeAudioContextConstructor\n);\n\ntype minimalAudioContextConstructor = IMinimalAudioContext;\n\nexport { minimalAudioContextConstructor as MinimalAudioContext };\n\nconst createNativeOfflineAudioContext = createCreateNativeOfflineAudioContext(\n createNotSupportedError,\n nativeOfflineAudioContextConstructor\n);\nconst startRendering = createStartRendering(\n audioBufferStore,\n cacheTestResult,\n getAudioNodeRenderer,\n getUnrenderedAudioWorkletNodes,\n renderNativeOfflineAudioContext,\n testAudioBufferCopyChannelMethodsOutOfBoundsSupport,\n wrapAudioBufferCopyChannelMethods,\n wrapAudioBufferCopyChannelMethodsOutOfBounds\n);\nconst minimalOfflineAudioContextConstructor: TMinimalOfflineAudioContextConstructor = createMinimalOfflineAudioContextConstructor(\n cacheTestResult,\n createInvalidStateError,\n createNativeOfflineAudioContext,\n minimalBaseAudioContextConstructor,\n startRendering\n);\n\ntype minimalOfflineAudioContextConstructor = IMinimalOfflineAudioContext;\n\nexport { minimalOfflineAudioContextConstructor as MinimalOfflineAudioContext };\n\nconst offlineAudioContextConstructor: IOfflineAudioContextConstructor = createOfflineAudioContextConstructor(\n baseAudioContextConstructor,\n cacheTestResult,\n createInvalidStateError,\n createNativeOfflineAudioContext,\n startRendering\n);\n\ntype offlineAudioContextConstructor = IOfflineAudioContext;\n\nexport { offlineAudioContextConstructor as OfflineAudioContext };\n\ntype oscillatorNodeConstructor = IOscillatorNode;\n\nexport { oscillatorNodeConstructor as OscillatorNode };\n\ntype pannerNodeConstructor = IPannerNode;\n\nexport { pannerNodeConstructor as PannerNode };\n\ntype periodicWaveConstructor = IPeriodicWave;\n\nexport { periodicWaveConstructor as PeriodicWave };\n\ntype stereoPannerNodeConstructor = IStereoPannerNode;\n\nexport { stereoPannerNodeConstructor as StereoPannerNode };\n\ntype waveShaperNodeConstructor = IWaveShaperNode;\n\nexport { waveShaperNodeConstructor as WaveShaperNode };\n\nexport const isAnyAudioContext = createIsAnyAudioContext(CONTEXT_STORE, isNativeAudioContext);\n\nexport const isAnyAudioNode = createIsAnyAudioNode(AUDIO_NODE_STORE, isNativeAudioNode);\n\nexport const isAnyAudioParam = createIsAnyAudioParam(AUDIO_PARAM_STORE, isNativeAudioParam);\n\nexport const isAnyOfflineAudioContext = createIsAnyOfflineAudioContext(CONTEXT_STORE, isNativeOfflineAudioContext);\n\nexport const isSupported = () =>\n createIsSupportedPromise(\n cacheTestResult,\n createTestAudioBufferCopyChannelMethodsSubarraySupport(nativeOfflineAudioContextConstructor),\n createTestAudioContextCloseMethodSupport(nativeAudioContextConstructor),\n createTestAudioContextDecodeAudioDataMethodTypeErrorSupport(nativeOfflineAudioContextConstructor),\n createTestAudioContextOptionsSupport(nativeAudioContextConstructor),\n createTestAudioNodeConnectMethodSupport(nativeOfflineAudioContextConstructor),\n createTestAudioWorkletProcessorNoOutputsSupport(nativeAudioWorkletNodeConstructor, nativeOfflineAudioContextConstructor),\n createTestChannelMergerNodeChannelCountSupport(nativeOfflineAudioContextConstructor),\n createTestConstantSourceNodeAccurateSchedulingSupport(nativeOfflineAudioContextConstructor),\n createTestConvolverNodeBufferReassignabilitySupport(nativeOfflineAudioContextConstructor),\n createTestConvolverNodeChannelCountSupport(nativeOfflineAudioContextConstructor),\n testDomExceptionConstructorSupport,\n createTestIsSecureContextSupport(window),\n createTestMediaStreamAudioSourceNodeMediaStreamWithoutAudioTrackSupport(nativeAudioContextConstructor),\n createTestStereoPannerNodeDefaultValueSupport(nativeOfflineAudioContextConstructor),\n testTransferablesSupport\n );\n","import { TAddActiveInputConnectionToAudioNodeFactory } from '../types/add-active-input-connection-to-audio-node-factory';\n\nexport const createAddActiveInputConnectionToAudioNode: TAddActiveInputConnectionToAudioNodeFactory = (insertElementInSet) => {\n return (activeInputs, source, [output, input, eventListener], ignoreDuplicates) => {\n insertElementInSet(\n activeInputs[input],\n [source, output, eventListener],\n (activeInputConnection) => activeInputConnection[0] === source && activeInputConnection[1] === output,\n ignoreDuplicates\n );\n };\n};\n","import { TAddPassiveInputConnectionToAudioNodeFactory } from '../types';\n\nexport const createAddPassiveInputConnectionToAudioNode: TAddPassiveInputConnectionToAudioNodeFactory = (insertElementInSet) => {\n return (passiveInputs, input, [source, output, eventListener], ignoreDuplicates) => {\n const passiveInputConnections = passiveInputs.get(source);\n\n if (passiveInputConnections === undefined) {\n passiveInputs.set(source, new Set([[output, input, eventListener]]));\n } else {\n insertElementInSet(\n passiveInputConnections,\n [output, input, eventListener],\n (passiveInputConnection) => passiveInputConnection[0] === output && passiveInputConnection[1] === input,\n ignoreDuplicates\n );\n }\n };\n};\n","import { TDeleteActiveInputConnectionToAudioNodeFactory } from '../types';\n\nexport const createDeleteActiveInputConnectionToAudioNode: TDeleteActiveInputConnectionToAudioNodeFactory = (pickElementFromSet) => {\n return (activeInputs, source, output, input) => {\n return pickElementFromSet(\n activeInputs[input],\n (activeInputConnection) => activeInputConnection[0] === source && activeInputConnection[1] === output\n );\n };\n};\n","import { TGetAudioNodeTailTimeFactory } from '../types';\n\nexport const createGetAudioNodeTailTime: TGetAudioNodeTailTimeFactory = (audioNodeTailTimeStore) => {\n return (audioNode) => audioNodeTailTimeStore.get(audioNode) ?? 0;\n};\n","import { TWindow, TWindowFactory } from '../types';\n\nexport const createWindow: TWindowFactory = () => (typeof window === 'undefined' ? null : window);\n","import { assignNativeAudioNodeOption } from '../helpers/assign-native-audio-node-option';\nimport { assignNativeAudioNodeOptions } from '../helpers/assign-native-audio-node-options';\nimport { testAnalyserNodeGetFloatTimeDomainDataMethodSupport } from '../helpers/test-analyser-node-get-float-time-domain-data-method-support';\nimport { wrapAnalyserNodeGetFloatTimeDomainDataMethod } from '../helpers/wrap-analyser-node-get-float-time-domain-data-method';\nimport { TNativeAnalyserNodeFactoryFactory } from '../types';\n\nexport const createNativeAnalyserNodeFactory: TNativeAnalyserNodeFactoryFactory = (cacheTestResult, createIndexSizeError) => {\n return (nativeContext, options) => {\n const nativeAnalyserNode = nativeContext.createAnalyser();\n\n // Bug #37: Firefox does not create an AnalyserNode with the default properties.\n assignNativeAudioNodeOptions(nativeAnalyserNode, options);\n\n // Bug #118: Safari does not throw an error if maxDecibels is not more than minDecibels.\n if (!(options.maxDecibels > options.minDecibels)) {\n throw createIndexSizeError();\n }\n\n assignNativeAudioNodeOption(nativeAnalyserNode, options, 'fftSize');\n assignNativeAudioNodeOption(nativeAnalyserNode, options, 'maxDecibels');\n assignNativeAudioNodeOption(nativeAnalyserNode, options, 'minDecibels');\n assignNativeAudioNodeOption(nativeAnalyserNode, options, 'smoothingTimeConstant');\n\n // Bug #36: Safari does not support getFloatTimeDomainData() yet.\n if (\n !cacheTestResult(testAnalyserNodeGetFloatTimeDomainDataMethodSupport, () =>\n testAnalyserNodeGetFloatTimeDomainDataMethodSupport(nativeAnalyserNode)\n )\n ) {\n wrapAnalyserNodeGetFloatTimeDomainDataMethod(nativeAnalyserNode);\n }\n\n return nativeAnalyserNode;\n };\n};\n","import { TNativeAnalyserNode } from '../types';\n\nexport const wrapAnalyserNodeGetFloatTimeDomainDataMethod = (nativeAnalyserNode: TNativeAnalyserNode): void => {\n nativeAnalyserNode.getFloatTimeDomainData = (array: Float32Array) => {\n const byteTimeDomainData = new Uint8Array(array.length);\n\n nativeAnalyserNode.getByteTimeDomainData(byteTimeDomainData);\n\n const length = Math.max(byteTimeDomainData.length, nativeAnalyserNode.fftSize);\n\n for (let i = 0; i < length; i += 1) {\n array[i] = (byteTimeDomainData[i] - 128) * 0.0078125;\n }\n\n return array;\n };\n};\n","import { IAudioNode, IAudioNodeRenderer, IMinimalOfflineAudioContext, IOfflineAudioContext } from '../interfaces';\nimport { TGetAudioNodeRendererFactory } from '../types';\n\nexport const createGetAudioNodeRenderer: TGetAudioNodeRendererFactory = (getAudioNodeConnections) => {\n return (\n audioNode: IAudioNode\n ): IAudioNodeRenderer> => {\n const audioNodeConnections = getAudioNodeConnections(audioNode);\n\n if (audioNodeConnections.renderer === null) {\n throw new Error('Missing the renderer of the given AudioNode in the audio graph.');\n }\n\n return >>audioNodeConnections.renderer;\n };\n};\n","import { IAudioDestinationNode } from '../interfaces';\nimport { TRenderInputsOfAudioNodeFactory } from '../types';\n\nexport const createRenderInputsOfAudioNode: TRenderInputsOfAudioNodeFactory = (\n getAudioNodeConnections,\n getAudioNodeRenderer,\n isPartOfACycle\n) => {\n return async (audioNode, nativeOfflineAudioContext, nativeAudioNode) => {\n const audioNodeConnections = getAudioNodeConnections(audioNode);\n\n await Promise.all(\n audioNodeConnections.activeInputs\n .map((connections, input) =>\n Array.from(connections).map(async ([source, output]) => {\n const audioNodeRenderer = getAudioNodeRenderer(source);\n const renderedNativeAudioNode = await audioNodeRenderer.render(source, nativeOfflineAudioContext);\n const destination = >audioNode.context.destination;\n\n if (!isPartOfACycle(source) && (audioNode !== destination || !isPartOfACycle(audioNode))) {\n renderedNativeAudioNode.connect(nativeAudioNode, output, input);\n }\n })\n )\n .reduce((allRenderingPromises, renderingPromises) => [...allRenderingPromises, ...renderingPromises], [])\n );\n };\n};\n","import { isOwnedByContext } from '../helpers/is-owned-by-context';\nimport { IAnalyserNode, IMinimalOfflineAudioContext, IOfflineAudioContext } from '../interfaces';\nimport { TAnalyserNodeRendererFactoryFactory, TNativeAnalyserNode, TNativeOfflineAudioContext } from '../types';\n\nexport const createAnalyserNodeRendererFactory: TAnalyserNodeRendererFactoryFactory = (\n createNativeAnalyserNode,\n getNativeAudioNode,\n renderInputsOfAudioNode\n) => {\n return () => {\n const renderedNativeAnalyserNodes = new WeakMap();\n\n const createAnalyserNode = async (proxy: IAnalyserNode, nativeOfflineAudioContext: TNativeOfflineAudioContext) => {\n let nativeAnalyserNode = getNativeAudioNode(proxy);\n\n // If the initially used nativeAnalyserNode was not constructed on the same OfflineAudioContext it needs to be created again.\n const nativeAnalyserNodeIsOwnedByContext = isOwnedByContext(nativeAnalyserNode, nativeOfflineAudioContext);\n\n if (!nativeAnalyserNodeIsOwnedByContext) {\n const options = {\n channelCount: nativeAnalyserNode.channelCount,\n channelCountMode: nativeAnalyserNode.channelCountMode,\n channelInterpretation: nativeAnalyserNode.channelInterpretation,\n fftSize: nativeAnalyserNode.fftSize,\n maxDecibels: nativeAnalyserNode.maxDecibels,\n minDecibels: nativeAnalyserNode.minDecibels,\n smoothingTimeConstant: nativeAnalyserNode.smoothingTimeConstant\n };\n\n nativeAnalyserNode = createNativeAnalyserNode(nativeOfflineAudioContext, options);\n }\n\n renderedNativeAnalyserNodes.set(nativeOfflineAudioContext, nativeAnalyserNode);\n\n await renderInputsOfAudioNode(proxy, nativeOfflineAudioContext, nativeAnalyserNode);\n\n return nativeAnalyserNode;\n };\n\n return {\n render(proxy: IAnalyserNode, nativeOfflineAudioContext: TNativeOfflineAudioContext): Promise {\n const renderedNativeAnalyserNode = renderedNativeAnalyserNodes.get(nativeOfflineAudioContext);\n\n if (renderedNativeAnalyserNode !== undefined) {\n return Promise.resolve(renderedNativeAnalyserNode);\n }\n\n return createAnalyserNode(proxy, nativeOfflineAudioContext);\n }\n };\n };\n};\n","import { TNativeOfflineAudioContextConstructorFactory } from '../types';\n\nexport const createNativeOfflineAudioContextConstructor: TNativeOfflineAudioContextConstructorFactory = (window) => {\n if (window === null) {\n return null;\n }\n\n if (window.hasOwnProperty('OfflineAudioContext')) {\n return window.OfflineAudioContext;\n }\n\n return window.hasOwnProperty('webkitOfflineAudioContext') ? (window).webkitOfflineAudioContext : null;\n};\n","import { TIsNativeOfflineAudioContextFactory, TNativeOfflineAudioContext } from '../types';\n\nexport const createIsNativeOfflineAudioContext: TIsNativeOfflineAudioContextFactory = (nativeOfflineAudioContextConstructor) => {\n return (anything): anything is TNativeOfflineAudioContext => {\n return nativeOfflineAudioContextConstructor !== null && anything instanceof nativeOfflineAudioContextConstructor;\n };\n};\n","import { IEventTarget } from '../interfaces';\nimport { TEventHandler, TEventTargetConstructorFactory, TNativeEventTarget } from '../types';\n\nexport const createEventTargetConstructor: TEventTargetConstructorFactory = (wrapEventListener) => {\n return class EventTarget> implements IEventTarget {\n private _listeners: WeakMap;\n\n constructor(private _nativeEventTarget: TNativeEventTarget) {\n this._listeners = new WeakMap();\n }\n\n public addEventListener(\n type: string,\n listener: null | TEventHandler | EventListenerOrEventListenerObject,\n options?: boolean | AddEventListenerOptions\n ): void {\n if (listener !== null) {\n let wrappedEventListener = this._listeners.get(listener);\n\n if (wrappedEventListener === undefined) {\n wrappedEventListener = wrapEventListener(this, listener);\n\n if (typeof listener === 'function') {\n this._listeners.set(listener, wrappedEventListener);\n }\n }\n\n this._nativeEventTarget.addEventListener(type, wrappedEventListener, options);\n }\n }\n\n public dispatchEvent(event: Event): boolean {\n return this._nativeEventTarget.dispatchEvent(event);\n }\n\n public removeEventListener(\n type: string,\n listener: null | TEventHandler | EventListenerOrEventListenerObject,\n options?: boolean | EventListenerOptions\n ): void {\n const wrappedEventListener = listener === null ? undefined : this._listeners.get(listener);\n\n this._nativeEventTarget.removeEventListener(type, wrappedEventListener === undefined ? null : wrappedEventListener, options);\n }\n };\n};\n","import { TNativeAudioContextConstructorFactory } from '../types';\n\nexport const createNativeAudioContextConstructor: TNativeAudioContextConstructorFactory = (window) => {\n if (window === null) {\n return null;\n }\n\n if (window.hasOwnProperty('AudioContext')) {\n return window.AudioContext;\n }\n\n return window.hasOwnProperty('webkitAudioContext') ? (window).webkitAudioContext : null;\n};\n","import { TIsNativeAudioContextFactory, TNativeAudioContext } from '../types';\n\nexport const createIsNativeAudioContext: TIsNativeAudioContextFactory = (nativeAudioContextConstructor) => {\n return (anything): anything is TNativeAudioContext => {\n return nativeAudioContextConstructor !== null && anything instanceof nativeAudioContextConstructor;\n };\n};\n","import { TIsNativeAudioNodeFactory, TNativeAudioNode } from '../types';\n\nexport const createIsNativeAudioNode: TIsNativeAudioNodeFactory = (window) => {\n return (anything): anything is TNativeAudioNode => {\n return window !== null && typeof window.AudioNode === 'function' && anything instanceof window.AudioNode;\n };\n};\n","import { TIsNativeAudioParamFactory, TNativeAudioParam } from '../types';\n\nexport const createIsNativeAudioParam: TIsNativeAudioParamFactory = (window) => {\n return (anything): anything is TNativeAudioParam => {\n return window !== null && typeof window.AudioParam === 'function' && anything instanceof window.AudioParam;\n };\n};\n","import { TNativeAudioWorkletNodeConstructorFactory } from '../types';\n\nexport const createNativeAudioWorkletNodeConstructor: TNativeAudioWorkletNodeConstructorFactory = (window) => {\n if (window === null) {\n return null;\n }\n\n return window.hasOwnProperty('AudioWorkletNode') ? window.AudioWorkletNode : null;\n};\n","import { deletePassiveInputConnectionToAudioNode } from '../helpers/delete-passive-input-connection-to-audio-node';\nimport { setInternalStateToActive } from '../helpers/set-internal-state-to-active';\nimport { setInternalStateToPassiveWhenNecessary } from '../helpers/set-internal-state-to-passive-when-necessary';\nimport { IAudioNode } from '../interfaces';\nimport { TAddConnectionToAudioNodeFactory, TContext, TInternalStateEventListener } from '../types';\n\nexport const createAddConnectionToAudioNode: TAddConnectionToAudioNodeFactory = (\n addActiveInputConnectionToAudioNode,\n addPassiveInputConnectionToAudioNode,\n connectNativeAudioNodeToNativeAudioNode,\n deleteActiveInputConnectionToAudioNode,\n disconnectNativeAudioNodeFromNativeAudioNode,\n getAudioNodeConnections,\n getAudioNodeTailTime,\n getEventListenersOfAudioNode,\n getNativeAudioNode,\n insertElementInSet,\n isActiveAudioNode,\n isPartOfACycle,\n isPassiveAudioNode\n) => {\n const tailTimeTimeoutIds = new WeakMap, number>();\n\n return (source, destination, output, input, isOffline) => {\n const { activeInputs, passiveInputs } = getAudioNodeConnections(destination);\n const { outputs } = getAudioNodeConnections(source);\n const eventListeners = getEventListenersOfAudioNode(source);\n\n const eventListener: TInternalStateEventListener = (isActive) => {\n const nativeDestinationAudioNode = getNativeAudioNode(destination);\n const nativeSourceAudioNode = getNativeAudioNode(source);\n\n if (isActive) {\n const partialConnection = deletePassiveInputConnectionToAudioNode(passiveInputs, source, output, input);\n\n addActiveInputConnectionToAudioNode(activeInputs, source, partialConnection, false);\n\n if (!isOffline && !isPartOfACycle(source)) {\n connectNativeAudioNodeToNativeAudioNode(nativeSourceAudioNode, nativeDestinationAudioNode, output, input);\n }\n\n if (isPassiveAudioNode(destination)) {\n setInternalStateToActive(destination);\n }\n } else {\n const partialConnection = deleteActiveInputConnectionToAudioNode(activeInputs, source, output, input);\n\n addPassiveInputConnectionToAudioNode(passiveInputs, input, partialConnection, false);\n\n if (!isOffline && !isPartOfACycle(source)) {\n disconnectNativeAudioNodeFromNativeAudioNode(nativeSourceAudioNode, nativeDestinationAudioNode, output, input);\n }\n\n const tailTime = getAudioNodeTailTime(destination);\n\n if (tailTime === 0) {\n if (isActiveAudioNode(destination)) {\n setInternalStateToPassiveWhenNecessary(destination, activeInputs);\n }\n } else {\n const tailTimeTimeoutId = tailTimeTimeoutIds.get(destination);\n\n if (tailTimeTimeoutId !== undefined) {\n clearTimeout(tailTimeTimeoutId);\n }\n\n tailTimeTimeoutIds.set(\n destination,\n setTimeout(() => {\n if (isActiveAudioNode(destination)) {\n setInternalStateToPassiveWhenNecessary(destination, activeInputs);\n }\n }, tailTime * 1000)\n );\n }\n }\n };\n\n if (\n insertElementInSet(\n outputs,\n [destination, output, input],\n (outputConnection) =>\n outputConnection[0] === destination && outputConnection[1] === output && outputConnection[2] === input,\n true\n )\n ) {\n eventListeners.add(eventListener);\n\n if (isActiveAudioNode(source)) {\n addActiveInputConnectionToAudioNode(activeInputs, source, [output, input, eventListener], true);\n } else {\n addPassiveInputConnectionToAudioNode(passiveInputs, input, [source, output, eventListener], true);\n }\n\n return true;\n }\n\n return false;\n };\n};\n","import { isAudioNodeOutputConnection } from '../guards/audio-node-output-connection';\nimport { TIncrementCycleCounterFactoryFactory } from '../types';\n\nexport const createIncrementCycleCounterFactory: TIncrementCycleCounterFactoryFactory = (\n cycleCounters,\n disconnectNativeAudioNodeFromNativeAudioNode,\n getAudioNodeConnections,\n getNativeAudioNode,\n getNativeAudioParam,\n isActiveAudioNode\n) => {\n return (isOffline) => {\n return (audioNode, count) => {\n const cycleCounter = cycleCounters.get(audioNode);\n\n if (cycleCounter === undefined) {\n if (!isOffline && isActiveAudioNode(audioNode)) {\n const nativeSourceAudioNode = getNativeAudioNode(audioNode);\n const { outputs } = getAudioNodeConnections(audioNode);\n\n for (const output of outputs) {\n if (isAudioNodeOutputConnection(output)) {\n const nativeDestinationAudioNode = getNativeAudioNode(output[0]);\n\n disconnectNativeAudioNodeFromNativeAudioNode(\n nativeSourceAudioNode,\n nativeDestinationAudioNode,\n output[1],\n output[2]\n );\n } else {\n const nativeDestinationAudioParam = getNativeAudioParam(output[0]);\n\n nativeSourceAudioNode.disconnect(nativeDestinationAudioParam, output[1]);\n }\n }\n }\n\n cycleCounters.set(audioNode, count);\n } else {\n cycleCounters.set(audioNode, cycleCounter + count);\n }\n };\n };\n};\n","import { isAudioNodeOutputConnection } from '../guards/audio-node-output-connection';\nimport { TDecrementCycleCounterFactory } from '../types';\n\nexport const createDecrementCycleCounter: TDecrementCycleCounterFactory = (\n connectNativeAudioNodeToNativeAudioNode,\n cycleCounters,\n getAudioNodeConnections,\n getNativeAudioNode,\n getNativeAudioParam,\n getNativeContext,\n isActiveAudioNode,\n isNativeOfflineAudioContext\n) => {\n return (audioNode, count) => {\n const cycleCounter = cycleCounters.get(audioNode);\n\n if (cycleCounter === undefined) {\n throw new Error('Missing the expected cycle count.');\n }\n\n const nativeContext = getNativeContext(audioNode.context);\n const isOffline = isNativeOfflineAudioContext(nativeContext);\n\n if (cycleCounter === count) {\n cycleCounters.delete(audioNode);\n\n if (!isOffline && isActiveAudioNode(audioNode)) {\n const nativeSourceAudioNode = getNativeAudioNode(audioNode);\n const { outputs } = getAudioNodeConnections(audioNode);\n\n for (const output of outputs) {\n if (isAudioNodeOutputConnection(output)) {\n const nativeDestinationAudioNode = getNativeAudioNode(output[0]);\n\n connectNativeAudioNodeToNativeAudioNode(nativeSourceAudioNode, nativeDestinationAudioNode, output[1], output[2]);\n } else {\n const nativeDestinationAudioParam = getNativeAudioParam(output[0]);\n\n nativeSourceAudioNode.connect(nativeDestinationAudioParam, output[1]);\n }\n }\n }\n } else {\n cycleCounters.set(audioNode, cycleCounter - count);\n }\n };\n};\n","import { isAudioNode } from '../guards/audio-node';\nimport { isDelayNode } from '../guards/delay-node';\nimport { IAudioNode, IAudioParam } from '../interfaces';\nimport { TContext, TDetectCyclesFactory } from '../types';\n\nexport const createDetectCycles: TDetectCyclesFactory = (audioParamAudioNodeStore, getAudioNodeConnections, getValueForKey) => {\n return function detectCycles(chain: IAudioNode[], nextLink: IAudioNode | IAudioParam): IAudioNode[][] {\n const audioNode = isAudioNode(nextLink) ? nextLink : >getValueForKey(audioParamAudioNodeStore, nextLink);\n\n if (isDelayNode(audioNode)) {\n return [];\n }\n\n if (chain[0] === audioNode) {\n return [chain];\n }\n\n if (chain.includes(audioNode)) {\n return [];\n }\n\n const { outputs } = getAudioNodeConnections(audioNode);\n\n return Array.from(outputs)\n .map((outputConnection) => detectCycles([...chain, audioNode], outputConnection[0]))\n .reduce((mergedCycles, nestedCycles) => mergedCycles.concat(nestedCycles), []);\n };\n};\n","import { IAudioNode, IDelayNode } from '../interfaces';\nimport { TContext } from '../types';\n\nexport const isDelayNode = (audioNode: IAudioNode): audioNode is IDelayNode => {\n return 'delayTime' in audioNode;\n};\n","import { TNativeAudioBufferConstructorFactory } from '../types';\n\nexport const createNativeAudioBufferConstructor: TNativeAudioBufferConstructorFactory = (window) => {\n if (window === null) {\n return null;\n }\n\n if (window.hasOwnProperty('AudioBuffer')) {\n return window.AudioBuffer;\n }\n\n return null;\n};\n","import { TNativeAudioBuffer, TWrapAudioBufferCopyChannelMethodsFactory } from '../types';\n\nexport const createWrapAudioBufferCopyChannelMethods: TWrapAudioBufferCopyChannelMethodsFactory = (\n convertNumberToUnsignedLong,\n createIndexSizeError\n) => {\n return (audioBuffer: TNativeAudioBuffer): void => {\n audioBuffer.copyFromChannel = (destination, channelNumberAsNumber, bufferOffsetAsNumber = 0) => {\n const bufferOffset = convertNumberToUnsignedLong(bufferOffsetAsNumber);\n const channelNumber = convertNumberToUnsignedLong(channelNumberAsNumber);\n\n if (channelNumber >= audioBuffer.numberOfChannels) {\n throw createIndexSizeError();\n }\n\n const audioBufferLength = audioBuffer.length;\n const channelData = audioBuffer.getChannelData(channelNumber);\n const destinationLength = destination.length;\n\n for (let i = bufferOffset < 0 ? -bufferOffset : 0; i + bufferOffset < audioBufferLength && i < destinationLength; i += 1) {\n destination[i] = channelData[i + bufferOffset];\n }\n };\n\n audioBuffer.copyToChannel = (source, channelNumberAsNumber, bufferOffsetAsNumber = 0) => {\n const bufferOffset = convertNumberToUnsignedLong(bufferOffsetAsNumber);\n const channelNumber = convertNumberToUnsignedLong(channelNumberAsNumber);\n\n if (channelNumber >= audioBuffer.numberOfChannels) {\n throw createIndexSizeError();\n }\n\n const audioBufferLength = audioBuffer.length;\n const channelData = audioBuffer.getChannelData(channelNumber);\n const sourceLength = source.length;\n\n for (let i = bufferOffset < 0 ? -bufferOffset : 0; i + bufferOffset < audioBufferLength && i < sourceLength; i += 1) {\n channelData[i + bufferOffset] = source[i];\n }\n };\n };\n};\n","import { TNativeAudioBuffer, TWrapAudioBufferCopyChannelMethodsOutOfBoundsFactory } from '../types';\n\nexport const createWrapAudioBufferCopyChannelMethodsOutOfBounds: TWrapAudioBufferCopyChannelMethodsOutOfBoundsFactory = (\n convertNumberToUnsignedLong\n) => {\n return (audioBuffer: TNativeAudioBuffer): void => {\n audioBuffer.copyFromChannel = ((copyFromChannel) => {\n return (destination: Float32Array, channelNumberAsNumber: number, bufferOffsetAsNumber = 0) => {\n const bufferOffset = convertNumberToUnsignedLong(bufferOffsetAsNumber);\n const channelNumber = convertNumberToUnsignedLong(channelNumberAsNumber);\n\n if (bufferOffset < audioBuffer.length) {\n return copyFromChannel.call(audioBuffer, destination, channelNumber, bufferOffset);\n }\n };\n })(audioBuffer.copyFromChannel);\n\n audioBuffer.copyToChannel = ((copyToChannel) => {\n return (source: Float32Array, channelNumberAsNumber: number, bufferOffsetAsNumber = 0) => {\n const bufferOffset = convertNumberToUnsignedLong(bufferOffsetAsNumber);\n const channelNumber = convertNumberToUnsignedLong(channelNumberAsNumber);\n\n if (bufferOffset < audioBuffer.length) {\n return copyToChannel.call(audioBuffer, source, channelNumber, bufferOffset);\n }\n };\n })(audioBuffer.copyToChannel);\n };\n};\n","import { TTestAudioBufferConstructorSupportFactory } from '../types';\n\n// Bug #33: Safari exposes an AudioBuffer but it can't be used as a constructor.\nexport const createTestAudioBufferConstructorSupport: TTestAudioBufferConstructorSupportFactory = (nativeAudioBufferConstructor) => {\n return () => {\n if (nativeAudioBufferConstructor === null) {\n return false;\n }\n\n try {\n new nativeAudioBufferConstructor({ length: 1, sampleRate: 44100 }); // tslint:disable-line:no-unused-expression\n } catch {\n return false;\n }\n\n return true;\n };\n};\n","import { TAddSilentConnectionFactory } from '../types';\n\nexport const createAddSilentConnection: TAddSilentConnectionFactory = (createNativeGainNode) => {\n return (nativeContext, nativeAudioScheduledSourceNode) => {\n const nativeGainNode = createNativeGainNode(nativeContext, {\n channelCount: 1,\n channelCountMode: 'explicit',\n channelInterpretation: 'discrete',\n gain: 0\n });\n\n nativeAudioScheduledSourceNode.connect(nativeGainNode).connect(nativeContext.destination);\n\n const disconnect = () => {\n nativeAudioScheduledSourceNode.removeEventListener('ended', disconnect);\n nativeAudioScheduledSourceNode.disconnect(nativeGainNode);\n nativeGainNode.disconnect();\n };\n\n nativeAudioScheduledSourceNode.addEventListener('ended', disconnect);\n };\n};\n","import { IAudioParam, IMinimalOfflineAudioContext, IOfflineAudioContext } from '../interfaces';\nimport { TNativeAudioParam, TNativeOfflineAudioContext, TRenderInputsOfAudioParamFactory } from '../types';\n\nexport const createRenderInputsOfAudioParam: TRenderInputsOfAudioParamFactory = (\n getAudioNodeRenderer,\n getAudioParamConnections,\n isPartOfACycle\n) => {\n return async (\n audioParam: IAudioParam,\n nativeOfflineAudioContext: TNativeOfflineAudioContext,\n nativeAudioParam: TNativeAudioParam\n ): Promise => {\n const audioParamConnections = getAudioParamConnections(audioParam);\n\n await Promise.all(\n Array.from(audioParamConnections.activeInputs).map(async ([source, output]) => {\n const audioNodeRenderer = getAudioNodeRenderer(source);\n const renderedNativeAudioNode = await audioNodeRenderer.render(source, nativeOfflineAudioContext);\n\n if (!isPartOfACycle(source)) {\n renderedNativeAudioNode.connect(nativeAudioParam, output);\n }\n })\n );\n };\n};\n","import { TConnectAudioParamFactory } from '../types';\n\nexport const createConnectAudioParam: TConnectAudioParamFactory = (renderInputsOfAudioParam) => {\n return (nativeOfflineAudioContext, audioParam, nativeAudioParam) => {\n return renderInputsOfAudioParam(audioParam, nativeOfflineAudioContext, nativeAudioParam);\n };\n};\n","import { assignNativeAudioNodeAudioParamValue } from '../helpers/assign-native-audio-node-audio-param-value';\nimport { assignNativeAudioNodeOption } from '../helpers/assign-native-audio-node-option';\nimport { assignNativeAudioNodeOptions } from '../helpers/assign-native-audio-node-options';\nimport { wrapAudioBufferSourceNodeStartMethodConsecutiveCalls } from '../helpers/wrap-audio-buffer-source-node-start-method-consecutive-calls';\nimport { wrapAudioScheduledSourceNodeStartMethodNegativeParameters } from '../helpers/wrap-audio-scheduled-source-node-start-method-negative-parameters';\nimport { wrapAudioScheduledSourceNodeStopMethodNegativeParameters } from '../helpers/wrap-audio-scheduled-source-node-stop-method-negative-parameters';\nimport { TNativeAudioBufferSourceNodeFactoryFactory } from '../types';\n\nexport const createNativeAudioBufferSourceNodeFactory: TNativeAudioBufferSourceNodeFactoryFactory = (\n addSilentConnection,\n cacheTestResult,\n testAudioBufferSourceNodeStartMethodConsecutiveCallsSupport,\n testAudioBufferSourceNodeStartMethodOffsetClampingSupport,\n testAudioBufferSourceNodeStopMethodNullifiedBufferSupport,\n testAudioScheduledSourceNodeStartMethodNegativeParametersSupport,\n testAudioScheduledSourceNodeStopMethodConsecutiveCallsSupport,\n testAudioScheduledSourceNodeStopMethodNegativeParametersSupport,\n wrapAudioBufferSourceNodeStartMethodOffsetClampling,\n wrapAudioBufferSourceNodeStopMethodNullifiedBuffer,\n wrapAudioScheduledSourceNodeStopMethodConsecutiveCalls\n) => {\n return (nativeContext, options) => {\n const nativeAudioBufferSourceNode = nativeContext.createBufferSource();\n\n assignNativeAudioNodeOptions(nativeAudioBufferSourceNode, options);\n\n assignNativeAudioNodeAudioParamValue(nativeAudioBufferSourceNode, options, 'playbackRate');\n\n assignNativeAudioNodeOption(nativeAudioBufferSourceNode, options, 'buffer');\n\n // Bug #149: Safari does not yet support the detune AudioParam.\n\n assignNativeAudioNodeOption(nativeAudioBufferSourceNode, options, 'loop');\n assignNativeAudioNodeOption(nativeAudioBufferSourceNode, options, 'loopEnd');\n assignNativeAudioNodeOption(nativeAudioBufferSourceNode, options, 'loopStart');\n\n // Bug #69: Safari does allow calls to start() of an already scheduled AudioBufferSourceNode.\n if (\n !cacheTestResult(testAudioBufferSourceNodeStartMethodConsecutiveCallsSupport, () =>\n testAudioBufferSourceNodeStartMethodConsecutiveCallsSupport(nativeContext)\n )\n ) {\n wrapAudioBufferSourceNodeStartMethodConsecutiveCalls(nativeAudioBufferSourceNode);\n }\n\n // Bug #154 & #155: Safari does not handle offsets which are equal to or greater than the duration of the buffer.\n if (\n !cacheTestResult(testAudioBufferSourceNodeStartMethodOffsetClampingSupport, () =>\n testAudioBufferSourceNodeStartMethodOffsetClampingSupport(nativeContext)\n )\n ) {\n wrapAudioBufferSourceNodeStartMethodOffsetClampling(nativeAudioBufferSourceNode);\n }\n\n // Bug #162: Safari does throw an error when stop() is called on an AudioBufferSourceNode which has no buffer assigned to it.\n if (\n !cacheTestResult(testAudioBufferSourceNodeStopMethodNullifiedBufferSupport, () =>\n testAudioBufferSourceNodeStopMethodNullifiedBufferSupport(nativeContext)\n )\n ) {\n wrapAudioBufferSourceNodeStopMethodNullifiedBuffer(nativeAudioBufferSourceNode, nativeContext);\n }\n\n // Bug #44: Safari does not throw a RangeError yet.\n if (\n !cacheTestResult(testAudioScheduledSourceNodeStartMethodNegativeParametersSupport, () =>\n testAudioScheduledSourceNodeStartMethodNegativeParametersSupport(nativeContext)\n )\n ) {\n wrapAudioScheduledSourceNodeStartMethodNegativeParameters(nativeAudioBufferSourceNode);\n }\n\n // Bug #19: Safari does not ignore calls to stop() of an already stopped AudioBufferSourceNode.\n if (\n !cacheTestResult(testAudioScheduledSourceNodeStopMethodConsecutiveCallsSupport, () =>\n testAudioScheduledSourceNodeStopMethodConsecutiveCallsSupport(nativeContext)\n )\n ) {\n wrapAudioScheduledSourceNodeStopMethodConsecutiveCalls(nativeAudioBufferSourceNode, nativeContext);\n }\n\n // Bug #44: Only Firefox does not throw a RangeError yet.\n if (\n !cacheTestResult(testAudioScheduledSourceNodeStopMethodNegativeParametersSupport, () =>\n testAudioScheduledSourceNodeStopMethodNegativeParametersSupport(nativeContext)\n )\n ) {\n wrapAudioScheduledSourceNodeStopMethodNegativeParameters(nativeAudioBufferSourceNode);\n }\n\n // Bug #175: Safari will not fire an ended event if the AudioBufferSourceNode is unconnected.\n addSilentConnection(nativeContext, nativeAudioBufferSourceNode);\n\n return nativeAudioBufferSourceNode;\n };\n};\n","import { createInvalidStateError } from '../factories/invalid-state-error';\nimport { TNativeAudioBufferSourceNode } from '../types';\n\nexport const wrapAudioBufferSourceNodeStartMethodConsecutiveCalls = (nativeAudioBufferSourceNode: TNativeAudioBufferSourceNode): void => {\n nativeAudioBufferSourceNode.start = ((start) => {\n let isScheduled = false;\n\n return (when = 0, offset = 0, duration?: number) => {\n if (isScheduled) {\n throw createInvalidStateError();\n }\n\n start.call(nativeAudioBufferSourceNode, when, offset, duration);\n\n isScheduled = true;\n };\n })(nativeAudioBufferSourceNode.start);\n};\n","import { TNativeContext } from '../types';\n\nexport const testAudioBufferSourceNodeStartMethodConsecutiveCallsSupport = (nativeContext: TNativeContext) => {\n const nativeAudioBufferSourceNode = nativeContext.createBufferSource();\n\n nativeAudioBufferSourceNode.start();\n\n try {\n nativeAudioBufferSourceNode.start();\n } catch {\n return true;\n }\n\n return false;\n};\n","import { TNativeContext } from '../types';\n\nexport const testAudioBufferSourceNodeStartMethodOffsetClampingSupport = (nativeContext: TNativeContext) => {\n const nativeAudioBufferSourceNode = nativeContext.createBufferSource();\n const nativeAudioBuffer = nativeContext.createBuffer(1, 1, 44100);\n\n nativeAudioBufferSourceNode.buffer = nativeAudioBuffer;\n\n try {\n nativeAudioBufferSourceNode.start(0, 1);\n } catch {\n return false;\n }\n\n return true;\n};\n","import { TNativeContext } from '../types';\n\nexport const testAudioBufferSourceNodeStopMethodNullifiedBufferSupport = (nativeContext: TNativeContext) => {\n const nativeAudioBufferSourceNode = nativeContext.createBufferSource();\n\n nativeAudioBufferSourceNode.start();\n\n try {\n nativeAudioBufferSourceNode.stop();\n } catch {\n return false;\n }\n\n return true;\n};\n","import { TNativeAudioBufferSourceNode } from '../types';\n\nexport const wrapAudioBufferSourceNodeStartMethodOffsetClamping = (nativeAudioBufferSourceNode: TNativeAudioBufferSourceNode): void => {\n nativeAudioBufferSourceNode.start = ((start) => {\n return (when = 0, offset = 0, duration?: number) => {\n const buffer = nativeAudioBufferSourceNode.buffer;\n // Bug #154: Safari does not clamp the offset if it is equal to or greater than the duration of the buffer.\n const clampedOffset = buffer === null ? offset : Math.min(buffer.duration, offset);\n\n // Bug #155: Safari does not handle the offset correctly if it would cause the buffer to be not be played at all.\n if (buffer !== null && clampedOffset > buffer.duration - 0.5 / nativeAudioBufferSourceNode.context.sampleRate) {\n start.call(nativeAudioBufferSourceNode, when, 0, 0);\n } else {\n start.call(nativeAudioBufferSourceNode, when, clampedOffset, duration);\n }\n };\n })(nativeAudioBufferSourceNode.start);\n};\n","import { TWrapAudioBufferSourceNodeStopMethodNullifiedBufferFactory } from '../types';\n\nexport const createWrapAudioBufferSourceNodeStopMethodNullifiedBuffer: TWrapAudioBufferSourceNodeStopMethodNullifiedBufferFactory = (\n overwriteAccessors\n) => {\n return (nativeAudioBufferSourceNode, nativeContext) => {\n const nullifiedBuffer = nativeContext.createBuffer(1, 1, 44100);\n\n if (nativeAudioBufferSourceNode.buffer === null) {\n nativeAudioBufferSourceNode.buffer = nullifiedBuffer;\n }\n\n overwriteAccessors(\n nativeAudioBufferSourceNode,\n 'buffer',\n (get) => () => {\n const value = get.call(nativeAudioBufferSourceNode);\n\n return value === nullifiedBuffer ? null : value;\n },\n (set) => (value) => {\n return set.call(nativeAudioBufferSourceNode, value === null ? nullifiedBuffer : value);\n }\n );\n };\n};\n","import { TRenderAutomationFactory } from '../types';\n\nexport const createRenderAutomation: TRenderAutomationFactory = (getAudioParamRenderer, renderInputsOfAudioParam) => {\n return (nativeOfflineAudioContext, audioParam, nativeAudioParam) => {\n const audioParamRenderer = getAudioParamRenderer(audioParam);\n\n audioParamRenderer.replay(nativeAudioParam);\n\n return renderInputsOfAudioParam(audioParam, nativeOfflineAudioContext, nativeAudioParam);\n };\n};\n","import { IMinimalOfflineAudioContext } from '../interfaces';\nimport { TGetAudioParamRendererFactory } from '../types';\n\nexport const createGetAudioParamRenderer: TGetAudioParamRendererFactory = (getAudioParamConnections) => {\n return (audioParam) => {\n const audioParamConnections = getAudioParamConnections(audioParam);\n\n if (audioParamConnections.renderer === null) {\n throw new Error('Missing the renderer of the given AudioParam in the audio graph.');\n }\n\n return audioParamConnections.renderer;\n };\n};\n","import { isOwnedByContext } from '../helpers/is-owned-by-context';\nimport { IAudioBufferSourceNode, IMinimalOfflineAudioContext, IOfflineAudioContext } from '../interfaces';\nimport { TAudioBufferSourceNodeRendererFactoryFactory, TNativeAudioBufferSourceNode, TNativeOfflineAudioContext } from '../types';\n\nexport const createAudioBufferSourceNodeRendererFactory: TAudioBufferSourceNodeRendererFactoryFactory = (\n connectAudioParam,\n createNativeAudioBufferSourceNode,\n getNativeAudioNode,\n renderAutomation,\n renderInputsOfAudioNode\n) => {\n return () => {\n const renderedNativeAudioBufferSourceNodes = new WeakMap();\n\n let start: null | [number, number] | [number, number, number] = null;\n let stop: null | number = null;\n\n const createAudioBufferSourceNode = async (\n proxy: IAudioBufferSourceNode,\n nativeOfflineAudioContext: TNativeOfflineAudioContext\n ) => {\n let nativeAudioBufferSourceNode = getNativeAudioNode(proxy);\n\n /*\n * If the initially used nativeAudioBufferSourceNode was not constructed on the same OfflineAudioContext it needs to be created\n * again.\n */\n const nativeAudioBufferSourceNodeIsOwnedByContext = isOwnedByContext(nativeAudioBufferSourceNode, nativeOfflineAudioContext);\n\n if (!nativeAudioBufferSourceNodeIsOwnedByContext) {\n const options = {\n buffer: nativeAudioBufferSourceNode.buffer,\n channelCount: nativeAudioBufferSourceNode.channelCount,\n channelCountMode: nativeAudioBufferSourceNode.channelCountMode,\n channelInterpretation: nativeAudioBufferSourceNode.channelInterpretation,\n // Bug #149: Safari does not yet support the detune AudioParam.\n loop: nativeAudioBufferSourceNode.loop,\n loopEnd: nativeAudioBufferSourceNode.loopEnd,\n loopStart: nativeAudioBufferSourceNode.loopStart,\n playbackRate: nativeAudioBufferSourceNode.playbackRate.value\n };\n\n nativeAudioBufferSourceNode = createNativeAudioBufferSourceNode(nativeOfflineAudioContext, options);\n\n if (start !== null) {\n nativeAudioBufferSourceNode.start(...start);\n }\n\n if (stop !== null) {\n nativeAudioBufferSourceNode.stop(stop);\n }\n }\n\n renderedNativeAudioBufferSourceNodes.set(nativeOfflineAudioContext, nativeAudioBufferSourceNode);\n\n if (!nativeAudioBufferSourceNodeIsOwnedByContext) {\n // Bug #149: Safari does not yet support the detune AudioParam.\n await renderAutomation(nativeOfflineAudioContext, proxy.playbackRate, nativeAudioBufferSourceNode.playbackRate);\n } else {\n // Bug #149: Safari does not yet support the detune AudioParam.\n await connectAudioParam(nativeOfflineAudioContext, proxy.playbackRate, nativeAudioBufferSourceNode.playbackRate);\n }\n\n await renderInputsOfAudioNode(proxy, nativeOfflineAudioContext, nativeAudioBufferSourceNode);\n\n return nativeAudioBufferSourceNode;\n };\n\n return {\n set start(value: [number, number] | [number, number, number]) {\n start = value;\n },\n set stop(value: number) {\n stop = value;\n },\n render(\n proxy: IAudioBufferSourceNode,\n nativeOfflineAudioContext: TNativeOfflineAudioContext\n ): Promise {\n const renderedNativeAudioBufferSourceNode = renderedNativeAudioBufferSourceNodes.get(nativeOfflineAudioContext);\n\n if (renderedNativeAudioBufferSourceNode !== undefined) {\n return Promise.resolve(renderedNativeAudioBufferSourceNode);\n }\n\n return createAudioBufferSourceNode(proxy, nativeOfflineAudioContext);\n }\n };\n };\n};\n","import { AutomationEventList } from 'automation-events';\nimport { IAudioNode, IAudioParam, IAudioParamRenderer, IMinimalOfflineAudioContext, IOfflineAudioContext } from '../interfaces';\nimport { TAudioParamFactoryFactory, TContext, TNativeAudioParam } from '../types';\n\nexport const createAudioParamFactory: TAudioParamFactoryFactory = (\n addAudioParamConnections,\n audioParamAudioNodeStore,\n audioParamStore,\n createAudioParamRenderer,\n createCancelAndHoldAutomationEvent,\n createCancelScheduledValuesAutomationEvent,\n createExponentialRampToValueAutomationEvent,\n createLinearRampToValueAutomationEvent,\n createSetTargetAutomationEvent,\n createSetValueAutomationEvent,\n createSetValueCurveAutomationEvent,\n nativeAudioContextConstructor,\n setValueAtTimeUntilPossible\n) => {\n return (\n audioNode: IAudioNode,\n isAudioParamOfOfflineAudioContext: boolean,\n nativeAudioParam: TNativeAudioParam,\n maxValue: null | number = null,\n minValue: null | number = null\n ): IAudioParam => {\n const automationEventList = new AutomationEventList(nativeAudioParam.defaultValue);\n const audioParamRenderer = isAudioParamOfOfflineAudioContext ? createAudioParamRenderer(automationEventList) : null;\n const audioParam = {\n get defaultValue(): number {\n return nativeAudioParam.defaultValue;\n },\n get maxValue(): number {\n return maxValue === null ? nativeAudioParam.maxValue : maxValue;\n },\n get minValue(): number {\n return minValue === null ? nativeAudioParam.minValue : minValue;\n },\n get value(): number {\n return nativeAudioParam.value;\n },\n set value(value) {\n nativeAudioParam.value = value;\n\n // Bug #98: Firefox & Safari do not yet treat the value setter like a call to setValueAtTime().\n audioParam.setValueAtTime(value, audioNode.context.currentTime);\n },\n cancelAndHoldAtTime(cancelTime: number): IAudioParam {\n // Bug #28: Firefox & Safari do not yet implement cancelAndHoldAtTime().\n if (typeof nativeAudioParam.cancelAndHoldAtTime === 'function') {\n if (audioParamRenderer === null) {\n automationEventList.flush(audioNode.context.currentTime);\n }\n\n automationEventList.add(createCancelAndHoldAutomationEvent(cancelTime));\n nativeAudioParam.cancelAndHoldAtTime(cancelTime);\n } else {\n const previousLastEvent = Array.from(automationEventList).pop();\n\n if (audioParamRenderer === null) {\n automationEventList.flush(audioNode.context.currentTime);\n }\n\n automationEventList.add(createCancelAndHoldAutomationEvent(cancelTime));\n\n const currentLastEvent = Array.from(automationEventList).pop();\n\n nativeAudioParam.cancelScheduledValues(cancelTime);\n\n if (previousLastEvent !== currentLastEvent && currentLastEvent !== undefined) {\n if (currentLastEvent.type === 'exponentialRampToValue') {\n nativeAudioParam.exponentialRampToValueAtTime(currentLastEvent.value, currentLastEvent.endTime);\n } else if (currentLastEvent.type === 'linearRampToValue') {\n nativeAudioParam.linearRampToValueAtTime(currentLastEvent.value, currentLastEvent.endTime);\n } else if (currentLastEvent.type === 'setValue') {\n nativeAudioParam.setValueAtTime(currentLastEvent.value, currentLastEvent.startTime);\n } else if (currentLastEvent.type === 'setValueCurve') {\n nativeAudioParam.setValueCurveAtTime(\n currentLastEvent.values,\n currentLastEvent.startTime,\n currentLastEvent.duration\n );\n }\n }\n }\n\n return audioParam;\n },\n cancelScheduledValues(cancelTime: number): IAudioParam {\n if (audioParamRenderer === null) {\n automationEventList.flush(audioNode.context.currentTime);\n }\n\n automationEventList.add(createCancelScheduledValuesAutomationEvent(cancelTime));\n nativeAudioParam.cancelScheduledValues(cancelTime);\n\n return audioParam;\n },\n exponentialRampToValueAtTime(value: number, endTime: number): IAudioParam {\n // Bug #45: Safari does not throw an error yet.\n if (value === 0) {\n throw new RangeError();\n }\n\n // Bug #187: Safari does not throw an error yet.\n if (!Number.isFinite(endTime) || endTime < 0) {\n throw new RangeError();\n }\n\n if (audioParamRenderer === null) {\n automationEventList.flush(audioNode.context.currentTime);\n }\n\n automationEventList.add(createExponentialRampToValueAutomationEvent(value, endTime));\n nativeAudioParam.exponentialRampToValueAtTime(value, endTime);\n\n return audioParam;\n },\n linearRampToValueAtTime(value: number, endTime: number): IAudioParam {\n if (audioParamRenderer === null) {\n automationEventList.flush(audioNode.context.currentTime);\n }\n\n automationEventList.add(createLinearRampToValueAutomationEvent(value, endTime));\n nativeAudioParam.linearRampToValueAtTime(value, endTime);\n\n return audioParam;\n },\n setTargetAtTime(target: number, startTime: number, timeConstant: number): IAudioParam {\n if (audioParamRenderer === null) {\n automationEventList.flush(audioNode.context.currentTime);\n }\n\n automationEventList.add(createSetTargetAutomationEvent(target, startTime, timeConstant));\n nativeAudioParam.setTargetAtTime(target, startTime, timeConstant);\n\n return audioParam;\n },\n setValueAtTime(value: number, startTime: number): IAudioParam {\n if (audioParamRenderer === null) {\n automationEventList.flush(audioNode.context.currentTime);\n }\n\n automationEventList.add(createSetValueAutomationEvent(value, startTime));\n nativeAudioParam.setValueAtTime(value, startTime);\n\n return audioParam;\n },\n setValueCurveAtTime(values: Iterable, startTime: number, duration: number): IAudioParam {\n // Bug 183: Safari only accepts a Float32Array.\n const convertedValues = values instanceof Float32Array ? values : new Float32Array(values);\n /*\n * Bug #152: Safari does not correctly interpolate the values of the curve.\n * @todo Unfortunately there is no way to test for this behavior in a synchronous fashion which is why testing for the\n * existence of the webkitAudioContext is used as a workaround here.\n */\n if (nativeAudioContextConstructor !== null && nativeAudioContextConstructor.name === 'webkitAudioContext') {\n const endTime = startTime + duration;\n const sampleRate = audioNode.context.sampleRate;\n const firstSample = Math.ceil(startTime * sampleRate);\n const lastSample = Math.floor(endTime * sampleRate);\n const numberOfInterpolatedValues = lastSample - firstSample;\n const interpolatedValues = new Float32Array(numberOfInterpolatedValues);\n\n for (let i = 0; i < numberOfInterpolatedValues; i += 1) {\n const theoreticIndex = ((convertedValues.length - 1) / duration) * ((firstSample + i) / sampleRate - startTime);\n const lowerIndex = Math.floor(theoreticIndex);\n const upperIndex = Math.ceil(theoreticIndex);\n\n interpolatedValues[i] =\n lowerIndex === upperIndex\n ? convertedValues[lowerIndex]\n : (1 - (theoreticIndex - lowerIndex)) * convertedValues[lowerIndex] +\n (1 - (upperIndex - theoreticIndex)) * convertedValues[upperIndex];\n }\n\n if (audioParamRenderer === null) {\n automationEventList.flush(audioNode.context.currentTime);\n }\n\n automationEventList.add(createSetValueCurveAutomationEvent(interpolatedValues, startTime, duration));\n nativeAudioParam.setValueCurveAtTime(interpolatedValues, startTime, duration);\n\n const timeOfLastSample = lastSample / sampleRate;\n\n if (timeOfLastSample < endTime) {\n setValueAtTimeUntilPossible(audioParam, interpolatedValues[interpolatedValues.length - 1], timeOfLastSample);\n }\n\n setValueAtTimeUntilPossible(audioParam, convertedValues[convertedValues.length - 1], endTime);\n } else {\n if (audioParamRenderer === null) {\n automationEventList.flush(audioNode.context.currentTime);\n }\n\n automationEventList.add(createSetValueCurveAutomationEvent(convertedValues, startTime, duration));\n nativeAudioParam.setValueCurveAtTime(convertedValues, startTime, duration);\n }\n\n return audioParam;\n }\n };\n\n audioParamStore.set(audioParam, nativeAudioParam);\n audioParamAudioNodeStore.set(audioParam, audioNode);\n\n addAudioParamConnections(\n audioParam,\n audioParamRenderer\n );\n\n return audioParam;\n };\n};\n","import { TAudioParamRendererFactory, TNativeAudioParam } from '../types';\n\nexport const createAudioParamRenderer: TAudioParamRendererFactory = (automationEventList) => {\n return {\n replay(audioParam: TNativeAudioParam): void {\n for (const automationEvent of automationEventList) {\n if (automationEvent.type === 'exponentialRampToValue') {\n const { endTime, value } = automationEvent;\n\n audioParam.exponentialRampToValueAtTime(value, endTime);\n } else if (automationEvent.type === 'linearRampToValue') {\n const { endTime, value } = automationEvent;\n\n audioParam.linearRampToValueAtTime(value, endTime);\n } else if (automationEvent.type === 'setTarget') {\n const { startTime, target, timeConstant } = automationEvent;\n\n audioParam.setTargetAtTime(target, startTime, timeConstant);\n } else if (automationEvent.type === 'setValue') {\n const { startTime, value } = automationEvent;\n\n audioParam.setValueAtTime(value, startTime);\n } else if (automationEvent.type === 'setValueCurve') {\n const { duration, startTime, values } = automationEvent;\n\n audioParam.setValueCurveAtTime(values, startTime, duration);\n } else {\n throw new Error(\"Can't apply an unknown automation.\");\n }\n }\n }\n };\n};\n","import { TSetValueAtTimeUntilPossibleFunction } from '../types';\n\nexport const setValueAtTimeUntilPossible: TSetValueAtTimeUntilPossibleFunction = (audioParam, value, startTime) => {\n try {\n audioParam.setValueAtTime(value, startTime);\n } catch (err) {\n if (err.code !== 9) {\n throw err;\n }\n\n setValueAtTimeUntilPossible(audioParam, value, startTime + 1e-7);\n }\n};\n","import { IAudioDestinationNode } from '../interfaces';\nimport {\n TAudioDestinationNodeConstructorFactory,\n TAudioNodeRenderer,\n TChannelCountMode,\n TContext,\n TNativeAudioDestinationNode\n} from '../types';\n\nexport const createAudioDestinationNodeConstructor: TAudioDestinationNodeConstructorFactory = (\n audioNodeConstructor,\n createAudioDestinationNodeRenderer,\n createIndexSizeError,\n createInvalidStateError,\n createNativeAudioDestinationNode,\n getNativeContext,\n isNativeOfflineAudioContext,\n renderInputsOfAudioNode\n) => {\n return class AudioDestinationNode extends audioNodeConstructor implements IAudioDestinationNode {\n private _isNodeOfNativeOfflineAudioContext: boolean;\n\n private _nativeAudioDestinationNode: TNativeAudioDestinationNode;\n\n constructor(context: T, channelCount: number) {\n const nativeContext = getNativeContext(context);\n const isOffline = isNativeOfflineAudioContext(nativeContext);\n const nativeAudioDestinationNode = createNativeAudioDestinationNode(nativeContext, channelCount, isOffline);\n const audioDestinationNodeRenderer = >(\n (isOffline ? createAudioDestinationNodeRenderer(renderInputsOfAudioNode) : null)\n );\n\n super(context, false, nativeAudioDestinationNode, audioDestinationNodeRenderer);\n\n this._isNodeOfNativeOfflineAudioContext = isOffline;\n this._nativeAudioDestinationNode = nativeAudioDestinationNode;\n }\n\n get channelCount(): number {\n return this._nativeAudioDestinationNode.channelCount;\n }\n\n set channelCount(value) {\n // Bug #52: Chrome, Edge & Safari do not throw an exception at all.\n // Bug #54: Firefox does throw an IndexSizeError.\n if (this._isNodeOfNativeOfflineAudioContext) {\n throw createInvalidStateError();\n }\n\n // Bug #47: The AudioDestinationNode in Safari does not initialize the maxChannelCount property correctly.\n if (value > this._nativeAudioDestinationNode.maxChannelCount) {\n throw createIndexSizeError();\n }\n\n this._nativeAudioDestinationNode.channelCount = value;\n }\n\n get channelCountMode(): TChannelCountMode {\n return this._nativeAudioDestinationNode.channelCountMode;\n }\n\n set channelCountMode(value) {\n // Bug #53: No browser does throw an exception yet.\n if (this._isNodeOfNativeOfflineAudioContext) {\n throw createInvalidStateError();\n }\n\n this._nativeAudioDestinationNode.channelCountMode = value;\n }\n\n get maxChannelCount(): number {\n return this._nativeAudioDestinationNode.maxChannelCount;\n }\n };\n};\n","import { IAudioDestinationNode, IMinimalOfflineAudioContext, IOfflineAudioContext } from '../interfaces';\nimport {\n TAudioDestinationNodeRendererFactory,\n TNativeAudioDestinationNode,\n TNativeOfflineAudioContext,\n TRenderInputsOfAudioNodeFunction\n} from '../types';\n\nexport const createAudioDestinationNodeRenderer: TAudioDestinationNodeRendererFactory = <\n T extends IMinimalOfflineAudioContext | IOfflineAudioContext\n>(\n renderInputsOfAudioNode: TRenderInputsOfAudioNodeFunction\n) => {\n const renderedNativeAudioDestinationNodes = new WeakMap();\n\n const createAudioDestinationNode = async (proxy: IAudioDestinationNode, nativeOfflineAudioContext: TNativeOfflineAudioContext) => {\n const nativeAudioDestinationNode = nativeOfflineAudioContext.destination;\n\n renderedNativeAudioDestinationNodes.set(nativeOfflineAudioContext, nativeAudioDestinationNode);\n\n await renderInputsOfAudioNode(proxy, nativeOfflineAudioContext, nativeAudioDestinationNode);\n\n return nativeAudioDestinationNode;\n };\n\n return {\n render(\n proxy: IAudioDestinationNode,\n nativeOfflineAudioContext: TNativeOfflineAudioContext\n ): Promise {\n const renderedNativeAudioDestinationNode = renderedNativeAudioDestinationNodes.get(nativeOfflineAudioContext);\n\n if (renderedNativeAudioDestinationNode !== undefined) {\n return Promise.resolve(renderedNativeAudioDestinationNode);\n }\n\n return createAudioDestinationNode(proxy, nativeOfflineAudioContext);\n }\n };\n};\n","import { TNativeAudioDestinationNode, TNativeAudioDestinationNodeFactoryFactory, TNativeGainNode } from '../types';\n\nexport const createNativeAudioDestinationNodeFactory: TNativeAudioDestinationNodeFactoryFactory = (\n createNativeGainNode,\n overwriteAccessors\n) => {\n return (nativeContext, channelCount, isNodeOfNativeOfflineAudioContext) => {\n const nativeAudioDestinationNode = nativeContext.destination;\n\n // Bug #132: Safari does not have the correct channelCount.\n if (nativeAudioDestinationNode.channelCount !== channelCount) {\n try {\n nativeAudioDestinationNode.channelCount = channelCount;\n } catch {\n // Bug #169: Safari throws an error on each attempt to change the channelCount.\n }\n }\n\n // Bug #83: Safari does not have the correct channelCountMode.\n if (isNodeOfNativeOfflineAudioContext && nativeAudioDestinationNode.channelCountMode !== 'explicit') {\n nativeAudioDestinationNode.channelCountMode = 'explicit';\n }\n\n // Bug #47: The AudioDestinationNode in Safari does not initialize the maxChannelCount property correctly.\n if (nativeAudioDestinationNode.maxChannelCount === 0) {\n Object.defineProperty(nativeAudioDestinationNode, 'maxChannelCount', {\n value: channelCount\n });\n }\n\n // Bug #168: No browser does yet have an AudioDestinationNode with an output.\n const gainNode = createNativeGainNode(nativeContext, {\n channelCount,\n channelCountMode: nativeAudioDestinationNode.channelCountMode,\n channelInterpretation: nativeAudioDestinationNode.channelInterpretation,\n gain: 1\n });\n\n overwriteAccessors(\n gainNode,\n 'channelCount',\n (get) => () => get.call(gainNode),\n (set) => (value) => {\n set.call(gainNode, value);\n\n try {\n nativeAudioDestinationNode.channelCount = value;\n } catch (err) {\n // Bug #169: Safari throws an error on each attempt to change the channelCount.\n if (value > nativeAudioDestinationNode.maxChannelCount) {\n throw err;\n }\n }\n }\n );\n\n overwriteAccessors(\n gainNode,\n 'channelCountMode',\n (get) => () => get.call(gainNode),\n (set) => (value) => {\n set.call(gainNode, value);\n nativeAudioDestinationNode.channelCountMode = value;\n }\n );\n\n overwriteAccessors(\n gainNode,\n 'channelInterpretation',\n (get) => () => get.call(gainNode),\n (set) => (value) => {\n set.call(gainNode, value);\n nativeAudioDestinationNode.channelInterpretation = value;\n }\n );\n\n Object.defineProperty(gainNode, 'maxChannelCount', {\n get: () => nativeAudioDestinationNode.maxChannelCount\n });\n\n // @todo This should be disconnected when the context is closed.\n gainNode.connect(nativeAudioDestinationNode);\n\n return <{ maxChannelCount: TNativeAudioDestinationNode['maxChannelCount'] } & TNativeGainNode>gainNode;\n };\n};\n","import { isOwnedByContext } from '../helpers/is-owned-by-context';\nimport { IBiquadFilterNode, IMinimalOfflineAudioContext, IOfflineAudioContext } from '../interfaces';\nimport { TBiquadFilterNodeRendererFactoryFactory, TNativeBiquadFilterNode, TNativeOfflineAudioContext } from '../types';\n\nexport const createBiquadFilterNodeRendererFactory: TBiquadFilterNodeRendererFactoryFactory = (\n connectAudioParam,\n createNativeBiquadFilterNode,\n getNativeAudioNode,\n renderAutomation,\n renderInputsOfAudioNode\n) => {\n return () => {\n const renderedNativeBiquadFilterNodes = new WeakMap();\n\n const createBiquadFilterNode = async (proxy: IBiquadFilterNode, nativeOfflineAudioContext: TNativeOfflineAudioContext) => {\n let nativeBiquadFilterNode = getNativeAudioNode(proxy);\n\n /*\n * If the initially used nativeBiquadFilterNode was not constructed on the same OfflineAudioContext it needs to be created\n * again.\n */\n const nativeBiquadFilterNodeIsOwnedByContext = isOwnedByContext(nativeBiquadFilterNode, nativeOfflineAudioContext);\n\n if (!nativeBiquadFilterNodeIsOwnedByContext) {\n const options = {\n Q: nativeBiquadFilterNode.Q.value,\n channelCount: nativeBiquadFilterNode.channelCount,\n channelCountMode: nativeBiquadFilterNode.channelCountMode,\n channelInterpretation: nativeBiquadFilterNode.channelInterpretation,\n detune: nativeBiquadFilterNode.detune.value,\n frequency: nativeBiquadFilterNode.frequency.value,\n gain: nativeBiquadFilterNode.gain.value,\n type: nativeBiquadFilterNode.type\n };\n\n nativeBiquadFilterNode = createNativeBiquadFilterNode(nativeOfflineAudioContext, options);\n }\n\n renderedNativeBiquadFilterNodes.set(nativeOfflineAudioContext, nativeBiquadFilterNode);\n\n if (!nativeBiquadFilterNodeIsOwnedByContext) {\n await renderAutomation(nativeOfflineAudioContext, proxy.Q, nativeBiquadFilterNode.Q);\n await renderAutomation(nativeOfflineAudioContext, proxy.detune, nativeBiquadFilterNode.detune);\n await renderAutomation(nativeOfflineAudioContext, proxy.frequency, nativeBiquadFilterNode.frequency);\n await renderAutomation(nativeOfflineAudioContext, proxy.gain, nativeBiquadFilterNode.gain);\n } else {\n await connectAudioParam(nativeOfflineAudioContext, proxy.Q, nativeBiquadFilterNode.Q);\n await connectAudioParam(nativeOfflineAudioContext, proxy.detune, nativeBiquadFilterNode.detune);\n await connectAudioParam(nativeOfflineAudioContext, proxy.frequency, nativeBiquadFilterNode.frequency);\n await connectAudioParam(nativeOfflineAudioContext, proxy.gain, nativeBiquadFilterNode.gain);\n }\n\n await renderInputsOfAudioNode(proxy, nativeOfflineAudioContext, nativeBiquadFilterNode);\n\n return nativeBiquadFilterNode;\n };\n\n return {\n render(proxy: IBiquadFilterNode, nativeOfflineAudioContext: TNativeOfflineAudioContext): Promise {\n const renderedNativeBiquadFilterNode = renderedNativeBiquadFilterNodes.get(nativeOfflineAudioContext);\n\n if (renderedNativeBiquadFilterNode !== undefined) {\n return Promise.resolve(renderedNativeBiquadFilterNode);\n }\n\n return createBiquadFilterNode(proxy, nativeOfflineAudioContext);\n }\n };\n };\n};\n","import { TSetAudioNodeTailTimeFactory } from '../types';\n\nexport const createSetAudioNodeTailTime: TSetAudioNodeTailTimeFactory = (audioNodeTailTimeStore) => {\n return (audioNode, tailTime) => audioNodeTailTimeStore.set(audioNode, tailTime);\n};\n","import { TMonitorConnectionsFactory, TNativeAudioNode, TNativeAudioParam } from '../types';\n\nexport const createMonitorConnections: TMonitorConnectionsFactory = (insertElementInSet, isNativeAudioNode) => {\n return (nativeAudioNode, whenConnected, whenDisconnected) => {\n const connections = new Set<[TNativeAudioNode, number, number] | [TNativeAudioParam, number]>();\n\n nativeAudioNode.connect = ((connect) => {\n // tslint:disable-next-line:invalid-void no-inferrable-types\n return (destination: TNativeAudioNode | TNativeAudioParam, output = 0, input: number = 0): void | TNativeAudioNode => {\n const wasDisconnected = connections.size === 0;\n\n if (isNativeAudioNode(destination)) {\n // @todo TypeScript cannot infer the overloaded signature with 3 arguments yet.\n (<(destination: TNativeAudioNode, output?: number, input?: number) => TNativeAudioNode>connect).call(\n nativeAudioNode,\n destination,\n output,\n input\n );\n\n insertElementInSet(\n connections,\n [destination, output, input],\n (connection) => connection[0] === destination && connection[1] === output && connection[2] === input,\n true\n );\n\n if (wasDisconnected) {\n whenConnected();\n }\n\n return destination;\n }\n\n connect.call(nativeAudioNode, destination, output);\n\n insertElementInSet(\n connections,\n [destination, output],\n (connection) => connection[0] === destination && connection[1] === output,\n true\n );\n\n if (wasDisconnected) {\n whenConnected();\n }\n\n return;\n };\n })(nativeAudioNode.connect);\n\n nativeAudioNode.disconnect = ((disconnect) => {\n return (destinationOrOutput?: number | TNativeAudioNode | TNativeAudioParam, output?: number, input?: number): void => {\n const wasConnected = connections.size > 0;\n\n if (destinationOrOutput === undefined) {\n disconnect.apply(nativeAudioNode);\n\n connections.clear();\n } else if (typeof destinationOrOutput === 'number') {\n // @todo TypeScript cannot infer the overloaded signature with 1 argument yet.\n (<(output: number) => void>disconnect).call(nativeAudioNode, destinationOrOutput);\n\n for (const connection of connections) {\n if (connection[1] === destinationOrOutput) {\n connections.delete(connection);\n }\n }\n } else {\n if (isNativeAudioNode(destinationOrOutput)) {\n // @todo TypeScript cannot infer the overloaded signature with 3 arguments yet.\n (<(destination: TNativeAudioNode, output?: number, input?: number) => void>disconnect).call(\n nativeAudioNode,\n destinationOrOutput,\n output,\n input\n );\n } else {\n // @todo TypeScript cannot infer the overloaded signature with 2 arguments yet.\n (<(destination: TNativeAudioParam, output?: number) => void>disconnect).call(\n nativeAudioNode,\n destinationOrOutput,\n output\n );\n }\n\n for (const connection of connections) {\n if (\n connection[0] === destinationOrOutput &&\n (output === undefined || connection[1] === output) &&\n (input === undefined || connection[2] === input)\n ) {\n connections.delete(connection);\n }\n }\n }\n\n const isDisconnected = connections.size === 0;\n\n if (wasConnected && isDisconnected) {\n whenDisconnected();\n }\n };\n })(nativeAudioNode.disconnect);\n\n return nativeAudioNode;\n };\n};\n","import { TWrapChannelMergerNodeFactory } from '../types';\n\nexport const createWrapChannelMergerNode: TWrapChannelMergerNodeFactory = (createInvalidStateError, monitorConnections) => {\n return (nativeContext, channelMergerNode) => {\n // Bug #15: Safari does not return the default properties.\n channelMergerNode.channelCount = 1;\n channelMergerNode.channelCountMode = 'explicit';\n\n // Bug #16: Safari does not throw an error when setting a different channelCount or channelCountMode.\n Object.defineProperty(channelMergerNode, 'channelCount', {\n get: () => 1,\n set: () => {\n throw createInvalidStateError();\n }\n });\n\n Object.defineProperty(channelMergerNode, 'channelCountMode', {\n get: () => 'explicit',\n set: () => {\n throw createInvalidStateError();\n }\n });\n\n // Bug #20: Safari requires a connection of any kind to treat the input signal correctly.\n const audioBufferSourceNode = nativeContext.createBufferSource();\n\n const whenConnected = () => {\n const length = channelMergerNode.numberOfInputs;\n\n for (let i = 0; i < length; i += 1) {\n audioBufferSourceNode.connect(channelMergerNode, 0, i);\n }\n };\n const whenDisconnected = () => audioBufferSourceNode.disconnect(channelMergerNode);\n\n monitorConnections(channelMergerNode, whenConnected, whenDisconnected);\n };\n};\n","import { assignNativeAudioNodeOptions } from '../helpers/assign-native-audio-node-options';\nimport { TNativeChannelMergerNodeFactoryFactory } from '../types';\n\nexport const createNativeChannelMergerNodeFactory: TNativeChannelMergerNodeFactoryFactory = (\n nativeAudioContextConstructor,\n wrapChannelMergerNode\n) => {\n return (nativeContext, options) => {\n const nativeChannelMergerNode = nativeContext.createChannelMerger(options.numberOfInputs);\n\n /*\n * Bug #20: Safari requires a connection of any kind to treat the input signal correctly.\n * @todo Unfortunately there is no way to test for this behavior in a synchronous fashion which is why testing for the existence of\n * the webkitAudioContext is used as a workaround here.\n */\n if (nativeAudioContextConstructor !== null && nativeAudioContextConstructor.name === 'webkitAudioContext') {\n wrapChannelMergerNode(nativeContext, nativeChannelMergerNode);\n }\n\n assignNativeAudioNodeOptions(nativeChannelMergerNode, options);\n\n return nativeChannelMergerNode;\n };\n};\n","import { isOwnedByContext } from '../helpers/is-owned-by-context';\nimport { IAudioNode, IMinimalOfflineAudioContext, IOfflineAudioContext } from '../interfaces';\nimport { TChannelMergerNodeRendererFactoryFactory, TNativeAudioNode, TNativeOfflineAudioContext } from '../types';\n\nexport const createChannelMergerNodeRendererFactory: TChannelMergerNodeRendererFactoryFactory = (\n createNativeChannelMergerNode,\n getNativeAudioNode,\n renderInputsOfAudioNode\n) => {\n return () => {\n const renderedNativeAudioNodes = new WeakMap();\n\n const createAudioNode = async (proxy: IAudioNode, nativeOfflineAudioContext: TNativeOfflineAudioContext) => {\n let nativeAudioNode = getNativeAudioNode(proxy);\n\n // If the initially used nativeAudioNode was not constructed on the same OfflineAudioContext it needs to be created again.\n const nativeAudioNodeIsOwnedByContext = isOwnedByContext(nativeAudioNode, nativeOfflineAudioContext);\n\n if (!nativeAudioNodeIsOwnedByContext) {\n const options = {\n channelCount: nativeAudioNode.channelCount,\n channelCountMode: nativeAudioNode.channelCountMode,\n channelInterpretation: nativeAudioNode.channelInterpretation,\n numberOfInputs: nativeAudioNode.numberOfInputs\n };\n\n nativeAudioNode = createNativeChannelMergerNode(nativeOfflineAudioContext, options);\n }\n\n renderedNativeAudioNodes.set(nativeOfflineAudioContext, nativeAudioNode);\n\n await renderInputsOfAudioNode(proxy, nativeOfflineAudioContext, nativeAudioNode);\n\n return nativeAudioNode;\n };\n\n return {\n render(proxy: IAudioNode, nativeOfflineAudioContext: TNativeOfflineAudioContext): Promise {\n const renderedNativeAudioNode = renderedNativeAudioNodes.get(nativeOfflineAudioContext);\n\n if (renderedNativeAudioNode !== undefined) {\n return Promise.resolve(renderedNativeAudioNode);\n }\n\n return createAudioNode(proxy, nativeOfflineAudioContext);\n }\n };\n };\n};\n","import { isOwnedByContext } from '../helpers/is-owned-by-context';\nimport { IAudioNode, IMinimalOfflineAudioContext, IOfflineAudioContext } from '../interfaces';\nimport { TChannelSplitterNodeRendererFactoryFactory, TNativeAudioNode, TNativeOfflineAudioContext } from '../types';\n\nexport const createChannelSplitterNodeRendererFactory: TChannelSplitterNodeRendererFactoryFactory = (\n createNativeChannelSplitterNode,\n getNativeAudioNode,\n renderInputsOfAudioNode\n) => {\n return () => {\n const renderedNativeAudioNodes = new WeakMap();\n\n const createAudioNode = async (proxy: IAudioNode, nativeOfflineAudioContext: TNativeOfflineAudioContext) => {\n let nativeAudioNode = getNativeAudioNode(proxy);\n\n // If the initially used nativeAudioNode was not constructed on the same OfflineAudioContext it needs to be created again.\n const nativeAudioNodeIsOwnedByContext = isOwnedByContext(nativeAudioNode, nativeOfflineAudioContext);\n\n if (!nativeAudioNodeIsOwnedByContext) {\n const options = {\n channelCount: nativeAudioNode.channelCount,\n channelCountMode: nativeAudioNode.channelCountMode,\n channelInterpretation: nativeAudioNode.channelInterpretation,\n numberOfOutputs: nativeAudioNode.numberOfOutputs\n };\n\n nativeAudioNode = createNativeChannelSplitterNode(nativeOfflineAudioContext, options);\n }\n\n renderedNativeAudioNodes.set(nativeOfflineAudioContext, nativeAudioNode);\n\n await renderInputsOfAudioNode(proxy, nativeOfflineAudioContext, nativeAudioNode);\n\n return nativeAudioNode;\n };\n\n return {\n render(proxy: IAudioNode, nativeOfflineAudioContext: TNativeOfflineAudioContext): Promise {\n const renderedNativeAudioNode = renderedNativeAudioNodes.get(nativeOfflineAudioContext);\n\n if (renderedNativeAudioNode !== undefined) {\n return Promise.resolve(renderedNativeAudioNode);\n }\n\n return createAudioNode(proxy, nativeOfflineAudioContext);\n }\n };\n };\n};\n","import { TSanitizeChannelSplitterOptionsFunction } from '../types';\n\nexport const sanitizeChannelSplitterOptions: TSanitizeChannelSplitterOptionsFunction = (options) => {\n return { ...options, channelCount: options.numberOfOutputs };\n};\n","import { interceptConnections } from '../helpers/intercept-connections';\nimport {\n TNativeAudioBufferSourceNode,\n TNativeAudioNode,\n TNativeConstantSourceNode,\n TNativeConstantSourceNodeFakerFactoryFactory\n} from '../types';\n\nexport const createNativeConstantSourceNodeFakerFactory: TNativeConstantSourceNodeFakerFactoryFactory = (\n addSilentConnection,\n createNativeAudioBufferSourceNode,\n createNativeGainNode,\n monitorConnections\n) => {\n return (nativeContext, { offset, ...audioNodeOptions }) => {\n const audioBuffer = nativeContext.createBuffer(1, 2, 44100);\n const audioBufferSourceNode = createNativeAudioBufferSourceNode(nativeContext, {\n buffer: null,\n channelCount: 2,\n channelCountMode: 'max',\n channelInterpretation: 'speakers',\n loop: false,\n loopEnd: 0,\n loopStart: 0,\n playbackRate: 1\n });\n const gainNode = createNativeGainNode(nativeContext, { ...audioNodeOptions, gain: offset });\n\n // Bug #5: Safari does not support copyFromChannel() and copyToChannel().\n const channelData = audioBuffer.getChannelData(0);\n\n // Bug #95: Safari does not play or loop one sample buffers.\n channelData[0] = 1;\n channelData[1] = 1;\n\n audioBufferSourceNode.buffer = audioBuffer;\n audioBufferSourceNode.loop = true;\n\n const nativeConstantSourceNodeFaker = {\n get bufferSize(): undefined {\n return undefined;\n },\n get channelCount(): number {\n return gainNode.channelCount;\n },\n set channelCount(value) {\n gainNode.channelCount = value;\n },\n get channelCountMode(): TNativeConstantSourceNode['channelCountMode'] {\n return gainNode.channelCountMode;\n },\n set channelCountMode(value) {\n gainNode.channelCountMode = value;\n },\n get channelInterpretation(): TNativeConstantSourceNode['channelInterpretation'] {\n return gainNode.channelInterpretation;\n },\n set channelInterpretation(value) {\n gainNode.channelInterpretation = value;\n },\n get context(): TNativeConstantSourceNode['context'] {\n return gainNode.context;\n },\n get inputs(): TNativeAudioNode[] {\n return [];\n },\n get numberOfInputs(): number {\n return audioBufferSourceNode.numberOfInputs;\n },\n get numberOfOutputs(): number {\n return gainNode.numberOfOutputs;\n },\n get offset(): TNativeConstantSourceNode['offset'] {\n return gainNode.gain;\n },\n get onended(): TNativeConstantSourceNode['onended'] {\n return audioBufferSourceNode.onended;\n },\n set onended(value) {\n audioBufferSourceNode.onended = value;\n },\n addEventListener(...args: any[]): void {\n return audioBufferSourceNode.addEventListener(args[0], args[1], args[2]);\n },\n dispatchEvent(...args: any[]): boolean {\n return audioBufferSourceNode.dispatchEvent(args[0]);\n },\n removeEventListener(...args: any[]): void {\n return audioBufferSourceNode.removeEventListener(args[0], args[1], args[2]);\n },\n start(when = 0): void {\n audioBufferSourceNode.start.call(audioBufferSourceNode, when);\n },\n stop(when = 0): void {\n audioBufferSourceNode.stop.call(audioBufferSourceNode, when);\n }\n };\n\n const whenConnected = () => audioBufferSourceNode.connect(gainNode);\n const whenDisconnected = () => audioBufferSourceNode.disconnect(gainNode);\n\n // Bug #175: Safari will not fire an ended event if the AudioBufferSourceNode is unconnected.\n addSilentConnection(nativeContext, audioBufferSourceNode);\n\n return monitorConnections(interceptConnections(nativeConstantSourceNodeFaker, gainNode), whenConnected, whenDisconnected);\n };\n};\n","import { assignNativeAudioNodeAudioParamValue } from '../helpers/assign-native-audio-node-audio-param-value';\nimport { assignNativeAudioNodeOptions } from '../helpers/assign-native-audio-node-options';\nimport { wrapAudioScheduledSourceNodeStartMethodNegativeParameters } from '../helpers/wrap-audio-scheduled-source-node-start-method-negative-parameters';\nimport { wrapAudioScheduledSourceNodeStopMethodNegativeParameters } from '../helpers/wrap-audio-scheduled-source-node-stop-method-negative-parameters';\nimport { TNativeConstantSourceNodeFactoryFactory } from '../types';\n\nexport const createNativeConstantSourceNodeFactory: TNativeConstantSourceNodeFactoryFactory = (\n addSilentConnection,\n cacheTestResult,\n createNativeConstantSourceNodeFaker,\n testAudioScheduledSourceNodeStartMethodNegativeParametersSupport,\n testAudioScheduledSourceNodeStopMethodNegativeParametersSupport\n) => {\n return (nativeContext, options) => {\n // Bug #62: Safari does not support ConstantSourceNodes.\n if (nativeContext.createConstantSource === undefined) {\n return createNativeConstantSourceNodeFaker(nativeContext, options);\n }\n\n const nativeConstantSourceNode = nativeContext.createConstantSource();\n\n assignNativeAudioNodeOptions(nativeConstantSourceNode, options);\n\n assignNativeAudioNodeAudioParamValue(nativeConstantSourceNode, options, 'offset');\n\n // Bug #44: Safari does not throw a RangeError yet.\n if (\n !cacheTestResult(testAudioScheduledSourceNodeStartMethodNegativeParametersSupport, () =>\n testAudioScheduledSourceNodeStartMethodNegativeParametersSupport(nativeContext)\n )\n ) {\n wrapAudioScheduledSourceNodeStartMethodNegativeParameters(nativeConstantSourceNode);\n }\n\n // Bug #44: Only Firefox does not throw a RangeError yet.\n if (\n !cacheTestResult(testAudioScheduledSourceNodeStopMethodNegativeParametersSupport, () =>\n testAudioScheduledSourceNodeStopMethodNegativeParametersSupport(nativeContext)\n )\n ) {\n wrapAudioScheduledSourceNodeStopMethodNegativeParameters(nativeConstantSourceNode);\n }\n\n // Bug #175: Safari will not fire an ended event if the ConstantSourceNode is unconnected.\n addSilentConnection(nativeContext, nativeConstantSourceNode);\n\n return nativeConstantSourceNode;\n };\n};\n","import { isOwnedByContext } from '../helpers/is-owned-by-context';\nimport { IConstantSourceNode, IMinimalOfflineAudioContext, IOfflineAudioContext } from '../interfaces';\nimport { TConstantSourceNodeRendererFactoryFactory, TNativeConstantSourceNode, TNativeOfflineAudioContext } from '../types';\n\nexport const createConstantSourceNodeRendererFactory: TConstantSourceNodeRendererFactoryFactory = (\n connectAudioParam,\n createNativeConstantSourceNode,\n getNativeAudioNode,\n renderAutomation,\n renderInputsOfAudioNode\n) => {\n return () => {\n const renderedNativeConstantSourceNodes = new WeakMap();\n\n let start: null | number = null;\n let stop: null | number = null;\n\n const createConstantSourceNode = async (proxy: IConstantSourceNode, nativeOfflineAudioContext: TNativeOfflineAudioContext) => {\n let nativeConstantSourceNode = getNativeAudioNode(proxy);\n\n /*\n * If the initially used nativeConstantSourceNode was not constructed on the same OfflineAudioContext it needs to be created\n * again.\n */\n const nativeConstantSourceNodeIsOwnedByContext = isOwnedByContext(nativeConstantSourceNode, nativeOfflineAudioContext);\n\n if (!nativeConstantSourceNodeIsOwnedByContext) {\n const options = {\n channelCount: nativeConstantSourceNode.channelCount,\n channelCountMode: nativeConstantSourceNode.channelCountMode,\n channelInterpretation: nativeConstantSourceNode.channelInterpretation,\n offset: nativeConstantSourceNode.offset.value\n };\n\n nativeConstantSourceNode = createNativeConstantSourceNode(nativeOfflineAudioContext, options);\n\n if (start !== null) {\n nativeConstantSourceNode.start(start);\n }\n\n if (stop !== null) {\n nativeConstantSourceNode.stop(stop);\n }\n }\n\n renderedNativeConstantSourceNodes.set(nativeOfflineAudioContext, nativeConstantSourceNode);\n\n if (!nativeConstantSourceNodeIsOwnedByContext) {\n await renderAutomation(nativeOfflineAudioContext, proxy.offset, nativeConstantSourceNode.offset);\n } else {\n await connectAudioParam(nativeOfflineAudioContext, proxy.offset, nativeConstantSourceNode.offset);\n }\n\n await renderInputsOfAudioNode(proxy, nativeOfflineAudioContext, nativeConstantSourceNode);\n\n return nativeConstantSourceNode;\n };\n\n return {\n set start(value: number) {\n start = value;\n },\n set stop(value: number) {\n stop = value;\n },\n render(\n proxy: IConstantSourceNode,\n nativeOfflineAudioContext: TNativeOfflineAudioContext\n ): Promise {\n const renderedNativeConstantSourceNode = renderedNativeConstantSourceNodes.get(nativeOfflineAudioContext);\n\n if (renderedNativeConstantSourceNode !== undefined) {\n return Promise.resolve(renderedNativeConstantSourceNode);\n }\n\n return createConstantSourceNode(proxy, nativeOfflineAudioContext);\n }\n };\n };\n};\n","import { assignNativeAudioNodeOption } from '../helpers/assign-native-audio-node-option';\nimport { assignNativeAudioNodeOptions } from '../helpers/assign-native-audio-node-options';\nimport { TNativeConvolverNodeFactoryFactory } from '../types';\n\nexport const createNativeConvolverNodeFactory: TNativeConvolverNodeFactoryFactory = (createNotSupportedError, overwriteAccessors) => {\n return (nativeContext, options) => {\n const nativeConvolverNode = nativeContext.createConvolver();\n\n assignNativeAudioNodeOptions(nativeConvolverNode, options);\n\n // The normalize property needs to be set before setting the buffer.\n if (options.disableNormalization === nativeConvolverNode.normalize) {\n nativeConvolverNode.normalize = !options.disableNormalization;\n }\n\n assignNativeAudioNodeOption(nativeConvolverNode, options, 'buffer');\n\n // Bug #113: Safari does allow to set the channelCount to a value larger than 2.\n if (options.channelCount > 2) {\n throw createNotSupportedError();\n }\n\n overwriteAccessors(\n nativeConvolverNode,\n 'channelCount',\n (get) => () => get.call(nativeConvolverNode),\n (set) => (value) => {\n if (value > 2) {\n throw createNotSupportedError();\n }\n\n return set.call(nativeConvolverNode, value);\n }\n );\n\n // Bug #114: Safari allows to set the channelCountMode to 'max'.\n if (options.channelCountMode === 'max') {\n throw createNotSupportedError();\n }\n\n overwriteAccessors(\n nativeConvolverNode,\n 'channelCountMode',\n (get) => () => get.call(nativeConvolverNode),\n (set) => (value) => {\n if (value === 'max') {\n throw createNotSupportedError();\n }\n\n return set.call(nativeConvolverNode, value);\n }\n );\n\n return nativeConvolverNode;\n };\n};\n","import { isNativeAudioNodeFaker } from '../guards/native-audio-node-faker';\nimport { isOwnedByContext } from '../helpers/is-owned-by-context';\nimport { IConvolverNode, IMinimalOfflineAudioContext, IOfflineAudioContext } from '../interfaces';\nimport { TConvolverNodeRendererFactoryFactory, TNativeConvolverNode, TNativeOfflineAudioContext } from '../types';\n\nexport const createConvolverNodeRendererFactory: TConvolverNodeRendererFactoryFactory = (\n createNativeConvolverNode,\n getNativeAudioNode,\n renderInputsOfAudioNode\n) => {\n return () => {\n const renderedNativeConvolverNodes = new WeakMap();\n\n const createConvolverNode = async (proxy: IConvolverNode, nativeOfflineAudioContext: TNativeOfflineAudioContext) => {\n let nativeConvolverNode = getNativeAudioNode(proxy);\n\n // If the initially used nativeConvolverNode was not constructed on the same OfflineAudioContext it needs to be created again.\n const nativeConvolverNodeIsOwnedByContext = isOwnedByContext(nativeConvolverNode, nativeOfflineAudioContext);\n\n if (!nativeConvolverNodeIsOwnedByContext) {\n const options = {\n buffer: nativeConvolverNode.buffer,\n channelCount: nativeConvolverNode.channelCount,\n channelCountMode: nativeConvolverNode.channelCountMode,\n channelInterpretation: nativeConvolverNode.channelInterpretation,\n disableNormalization: !nativeConvolverNode.normalize\n };\n\n nativeConvolverNode = createNativeConvolverNode(nativeOfflineAudioContext, options);\n }\n\n renderedNativeConvolverNodes.set(nativeOfflineAudioContext, nativeConvolverNode);\n\n if (isNativeAudioNodeFaker(nativeConvolverNode)) {\n await renderInputsOfAudioNode(proxy, nativeOfflineAudioContext, nativeConvolverNode.inputs[0]);\n } else {\n await renderInputsOfAudioNode(proxy, nativeOfflineAudioContext, nativeConvolverNode);\n }\n\n return nativeConvolverNode;\n };\n\n return {\n render(proxy: IConvolverNode, nativeOfflineAudioContext: TNativeOfflineAudioContext): Promise {\n const renderedNativeConvolverNode = renderedNativeConvolverNodes.get(nativeOfflineAudioContext);\n\n if (renderedNativeConvolverNode !== undefined) {\n return Promise.resolve(renderedNativeConvolverNode);\n }\n\n return createConvolverNode(proxy, nativeOfflineAudioContext);\n }\n };\n };\n};\n","import { isOwnedByContext } from '../helpers/is-owned-by-context';\nimport { IDelayNode, IMinimalOfflineAudioContext, IOfflineAudioContext } from '../interfaces';\nimport { TDelayNodeRendererFactoryFactory, TNativeDelayNode, TNativeOfflineAudioContext } from '../types';\n\nexport const createDelayNodeRendererFactory: TDelayNodeRendererFactoryFactory = (\n connectAudioParam,\n createNativeDelayNode,\n getNativeAudioNode,\n renderAutomation,\n renderInputsOfAudioNode\n) => {\n return (maxDelayTime: number) => {\n const renderedNativeDelayNodes = new WeakMap();\n\n const createDelayNode = async (proxy: IDelayNode, nativeOfflineAudioContext: TNativeOfflineAudioContext) => {\n let nativeDelayNode = getNativeAudioNode(proxy);\n\n // If the initially used nativeDelayNode was not constructed on the same OfflineAudioContext it needs to be created again.\n const nativeDelayNodeIsOwnedByContext = isOwnedByContext(nativeDelayNode, nativeOfflineAudioContext);\n\n if (!nativeDelayNodeIsOwnedByContext) {\n const options = {\n channelCount: nativeDelayNode.channelCount,\n channelCountMode: nativeDelayNode.channelCountMode,\n channelInterpretation: nativeDelayNode.channelInterpretation,\n delayTime: nativeDelayNode.delayTime.value,\n maxDelayTime\n };\n\n nativeDelayNode = createNativeDelayNode(nativeOfflineAudioContext, options);\n }\n\n renderedNativeDelayNodes.set(nativeOfflineAudioContext, nativeDelayNode);\n\n if (!nativeDelayNodeIsOwnedByContext) {\n await renderAutomation(nativeOfflineAudioContext, proxy.delayTime, nativeDelayNode.delayTime);\n } else {\n await connectAudioParam(nativeOfflineAudioContext, proxy.delayTime, nativeDelayNode.delayTime);\n }\n\n await renderInputsOfAudioNode(proxy, nativeOfflineAudioContext, nativeDelayNode);\n\n return nativeDelayNode;\n };\n\n return {\n render(proxy: IDelayNode, nativeOfflineAudioContext: TNativeOfflineAudioContext): Promise {\n const renderedNativeDelayNode = renderedNativeDelayNodes.get(nativeOfflineAudioContext);\n\n if (renderedNativeDelayNode !== undefined) {\n return Promise.resolve(renderedNativeDelayNode);\n }\n\n return createDelayNode(proxy, nativeOfflineAudioContext);\n }\n };\n };\n};\n","import { assignNativeAudioNodeAudioParamValue } from '../helpers/assign-native-audio-node-audio-param-value';\nimport { assignNativeAudioNodeOptions } from '../helpers/assign-native-audio-node-options';\nimport { TNativeDynamicsCompressorNodeFactoryFactory } from '../types';\n\nexport const createNativeDynamicsCompressorNodeFactory: TNativeDynamicsCompressorNodeFactoryFactory = (createNotSupportedError) => {\n return (nativeContext, options) => {\n const nativeDynamicsCompressorNode = nativeContext.createDynamicsCompressor();\n\n assignNativeAudioNodeOptions(nativeDynamicsCompressorNode, options);\n\n // Bug #108: Safari allows a channelCount of three and above.\n if (options.channelCount > 2) {\n throw createNotSupportedError();\n }\n\n // Bug #109: Only Chrome and Firefox disallow a channelCountMode of 'max'.\n if (options.channelCountMode === 'max') {\n throw createNotSupportedError();\n }\n\n assignNativeAudioNodeAudioParamValue(nativeDynamicsCompressorNode, options, 'attack');\n assignNativeAudioNodeAudioParamValue(nativeDynamicsCompressorNode, options, 'knee');\n assignNativeAudioNodeAudioParamValue(nativeDynamicsCompressorNode, options, 'ratio');\n assignNativeAudioNodeAudioParamValue(nativeDynamicsCompressorNode, options, 'release');\n assignNativeAudioNodeAudioParamValue(nativeDynamicsCompressorNode, options, 'threshold');\n\n return nativeDynamicsCompressorNode;\n };\n};\n","import { isOwnedByContext } from '../helpers/is-owned-by-context';\nimport { IDynamicsCompressorNode, IMinimalOfflineAudioContext, IOfflineAudioContext } from '../interfaces';\nimport { TDynamicsCompressorNodeRendererFactoryFactory, TNativeDynamicsCompressorNode, TNativeOfflineAudioContext } from '../types';\n\nexport const createDynamicsCompressorNodeRendererFactory: TDynamicsCompressorNodeRendererFactoryFactory = (\n connectAudioParam,\n createNativeDynamicsCompressorNode,\n getNativeAudioNode,\n renderAutomation,\n renderInputsOfAudioNode\n) => {\n return () => {\n const renderedNativeDynamicsCompressorNodes = new WeakMap();\n\n const createDynamicsCompressorNode = async (\n proxy: IDynamicsCompressorNode,\n nativeOfflineAudioContext: TNativeOfflineAudioContext\n ) => {\n let nativeDynamicsCompressorNode = getNativeAudioNode(proxy);\n\n /*\n * If the initially used nativeDynamicsCompressorNode was not constructed on the same OfflineAudioContext it needs to be\n * created again.\n */\n const nativeDynamicsCompressorNodeIsOwnedByContext = isOwnedByContext(nativeDynamicsCompressorNode, nativeOfflineAudioContext);\n\n if (!nativeDynamicsCompressorNodeIsOwnedByContext) {\n const options = {\n attack: nativeDynamicsCompressorNode.attack.value,\n channelCount: nativeDynamicsCompressorNode.channelCount,\n channelCountMode: nativeDynamicsCompressorNode.channelCountMode,\n channelInterpretation: nativeDynamicsCompressorNode.channelInterpretation,\n knee: nativeDynamicsCompressorNode.knee.value,\n ratio: nativeDynamicsCompressorNode.ratio.value,\n release: nativeDynamicsCompressorNode.release.value,\n threshold: nativeDynamicsCompressorNode.threshold.value\n };\n\n nativeDynamicsCompressorNode = createNativeDynamicsCompressorNode(nativeOfflineAudioContext, options);\n }\n\n renderedNativeDynamicsCompressorNodes.set(nativeOfflineAudioContext, nativeDynamicsCompressorNode);\n\n if (!nativeDynamicsCompressorNodeIsOwnedByContext) {\n await renderAutomation(nativeOfflineAudioContext, proxy.attack, nativeDynamicsCompressorNode.attack);\n await renderAutomation(nativeOfflineAudioContext, proxy.knee, nativeDynamicsCompressorNode.knee);\n await renderAutomation(nativeOfflineAudioContext, proxy.ratio, nativeDynamicsCompressorNode.ratio);\n await renderAutomation(nativeOfflineAudioContext, proxy.release, nativeDynamicsCompressorNode.release);\n await renderAutomation(nativeOfflineAudioContext, proxy.threshold, nativeDynamicsCompressorNode.threshold);\n } else {\n await connectAudioParam(nativeOfflineAudioContext, proxy.attack, nativeDynamicsCompressorNode.attack);\n await connectAudioParam(nativeOfflineAudioContext, proxy.knee, nativeDynamicsCompressorNode.knee);\n await connectAudioParam(nativeOfflineAudioContext, proxy.ratio, nativeDynamicsCompressorNode.ratio);\n await connectAudioParam(nativeOfflineAudioContext, proxy.release, nativeDynamicsCompressorNode.release);\n await connectAudioParam(nativeOfflineAudioContext, proxy.threshold, nativeDynamicsCompressorNode.threshold);\n }\n\n await renderInputsOfAudioNode(proxy, nativeOfflineAudioContext, nativeDynamicsCompressorNode);\n\n return nativeDynamicsCompressorNode;\n };\n\n return {\n render(\n proxy: IDynamicsCompressorNode,\n nativeOfflineAudioContext: TNativeOfflineAudioContext\n ): Promise {\n const renderedNativeDynamicsCompressorNode = renderedNativeDynamicsCompressorNodes.get(nativeOfflineAudioContext);\n\n if (renderedNativeDynamicsCompressorNode !== undefined) {\n return Promise.resolve(renderedNativeDynamicsCompressorNode);\n }\n\n return createDynamicsCompressorNode(proxy, nativeOfflineAudioContext);\n }\n };\n };\n};\n","import { isOwnedByContext } from '../helpers/is-owned-by-context';\nimport { IGainNode, IMinimalOfflineAudioContext, IOfflineAudioContext } from '../interfaces';\nimport { TGainNodeRendererFactoryFactory, TNativeGainNode, TNativeOfflineAudioContext } from '../types';\n\nexport const createGainNodeRendererFactory: TGainNodeRendererFactoryFactory = (\n connectAudioParam,\n createNativeGainNode,\n getNativeAudioNode,\n renderAutomation,\n renderInputsOfAudioNode\n) => {\n return () => {\n const renderedNativeGainNodes = new WeakMap();\n\n const createGainNode = async (proxy: IGainNode, nativeOfflineAudioContext: TNativeOfflineAudioContext) => {\n let nativeGainNode = getNativeAudioNode(proxy);\n\n // If the initially used nativeGainNode was not constructed on the same OfflineAudioContext it needs to be created again.\n const nativeGainNodeIsOwnedByContext = isOwnedByContext(nativeGainNode, nativeOfflineAudioContext);\n\n if (!nativeGainNodeIsOwnedByContext) {\n const options = {\n channelCount: nativeGainNode.channelCount,\n channelCountMode: nativeGainNode.channelCountMode,\n channelInterpretation: nativeGainNode.channelInterpretation,\n gain: nativeGainNode.gain.value\n };\n\n nativeGainNode = createNativeGainNode(nativeOfflineAudioContext, options);\n }\n\n renderedNativeGainNodes.set(nativeOfflineAudioContext, nativeGainNode);\n\n if (!nativeGainNodeIsOwnedByContext) {\n await renderAutomation(nativeOfflineAudioContext, proxy.gain, nativeGainNode.gain);\n } else {\n await connectAudioParam(nativeOfflineAudioContext, proxy.gain, nativeGainNode.gain);\n }\n\n await renderInputsOfAudioNode(proxy, nativeOfflineAudioContext, nativeGainNode);\n\n return nativeGainNode;\n };\n\n return {\n render(proxy: IGainNode, nativeOfflineAudioContext: TNativeOfflineAudioContext): Promise {\n const renderedNativeGainNode = renderedNativeGainNodes.get(nativeOfflineAudioContext);\n\n if (renderedNativeGainNode !== undefined) {\n return Promise.resolve(renderedNativeGainNode);\n }\n\n return createGainNode(proxy, nativeOfflineAudioContext);\n }\n };\n };\n};\n","import { testPromiseSupport } from '../helpers/test-promise-support';\nimport { IOfflineAudioCompletionEvent } from '../interfaces';\nimport { TNativeAudioBuffer, TRenderNativeOfflineAudioContextFactory } from '../types';\n\nexport const createRenderNativeOfflineAudioContext: TRenderNativeOfflineAudioContextFactory = (\n cacheTestResult,\n createNativeGainNode,\n createNativeScriptProcessorNode,\n testOfflineAudioContextCurrentTimeSupport\n) => {\n return (nativeOfflineAudioContext) => {\n // Bug #21: Safari does not support promises yet.\n if (cacheTestResult(testPromiseSupport, () => testPromiseSupport(nativeOfflineAudioContext))) {\n // Bug #158: Chrome and Edge do not advance currentTime if it is not accessed while rendering the audio.\n return Promise.resolve(\n cacheTestResult(testOfflineAudioContextCurrentTimeSupport, testOfflineAudioContextCurrentTimeSupport)\n ).then((isOfflineAudioContextCurrentTimeSupported) => {\n if (!isOfflineAudioContextCurrentTimeSupported) {\n const scriptProcessorNode = createNativeScriptProcessorNode(nativeOfflineAudioContext, 512, 0, 1);\n\n nativeOfflineAudioContext.oncomplete = () => {\n scriptProcessorNode.onaudioprocess = null; // tslint:disable-line:deprecation\n scriptProcessorNode.disconnect();\n };\n scriptProcessorNode.onaudioprocess = () => nativeOfflineAudioContext.currentTime; // tslint:disable-line:deprecation\n\n scriptProcessorNode.connect(nativeOfflineAudioContext.destination);\n }\n\n return nativeOfflineAudioContext.startRendering();\n });\n }\n\n return new Promise((resolve) => {\n // Bug #48: Safari does not render an OfflineAudioContext without any connected node.\n const gainNode = createNativeGainNode(nativeOfflineAudioContext, {\n channelCount: 1,\n channelCountMode: 'explicit',\n channelInterpretation: 'discrete',\n gain: 0\n });\n\n nativeOfflineAudioContext.oncomplete = (event: IOfflineAudioCompletionEvent) => {\n gainNode.disconnect();\n\n resolve(event.renderedBuffer);\n };\n\n gainNode.connect(nativeOfflineAudioContext.destination);\n\n nativeOfflineAudioContext.startRendering();\n });\n };\n};\n","import { TTestOfflineAudioContextCurrentTimeSupportFactory } from '../types';\n\nexport const createTestOfflineAudioContextCurrentTimeSupport: TTestOfflineAudioContextCurrentTimeSupportFactory = (\n createNativeGainNode,\n nativeOfflineAudioContextConstructor\n) => {\n return () => {\n if (nativeOfflineAudioContextConstructor === null) {\n return Promise.resolve(false);\n }\n\n const nativeOfflineAudioContext = new nativeOfflineAudioContextConstructor(1, 1, 44100);\n\n // Bug #48: Safari does not render an OfflineAudioContext without any connected node.\n const gainNode = createNativeGainNode(nativeOfflineAudioContext, {\n channelCount: 1,\n channelCountMode: 'explicit',\n channelInterpretation: 'discrete',\n gain: 0\n });\n\n // Bug #21: Safari does not support promises yet.\n return new Promise((resolve) => {\n nativeOfflineAudioContext.oncomplete = () => {\n gainNode.disconnect();\n\n resolve(nativeOfflineAudioContext.currentTime !== 0);\n };\n nativeOfflineAudioContext.startRendering();\n });\n };\n};\n","import { assignNativeAudioNodeOptions } from '../helpers/assign-native-audio-node-options';\nimport { TNativeIIRFilterNodeFactoryFactory } from '../types';\n\nexport const createNativeIIRFilterNodeFactory: TNativeIIRFilterNodeFactoryFactory = (createNativeIIRFilterNodeFaker) => {\n return (nativeContext, baseLatency, options) => {\n // Bug #9: Safari does not support IIRFilterNodes.\n if (nativeContext.createIIRFilter === undefined) {\n return createNativeIIRFilterNodeFaker(nativeContext, baseLatency, options);\n }\n\n // @todo TypeScript defines the parameters of createIIRFilter() as arrays of numbers.\n const nativeIIRFilterNode = nativeContext.createIIRFilter(options.feedforward, options.feedback);\n\n assignNativeAudioNodeOptions(nativeIIRFilterNode, options);\n\n return nativeIIRFilterNode;\n };\n};\n","import { createInvalidAccessError } from '../factories/invalid-access-error';\nimport { TNativeIIRFilterNode } from '../types';\n\nexport const wrapIIRFilterNodeGetFrequencyResponseMethod = (nativeIIRFilterNode: TNativeIIRFilterNode): void => {\n nativeIIRFilterNode.getFrequencyResponse = ((getFrequencyResponse) => {\n return (frequencyHz: Float32Array, magResponse: Float32Array, phaseResponse: Float32Array) => {\n if (frequencyHz.length !== magResponse.length || magResponse.length !== phaseResponse.length) {\n throw createInvalidAccessError();\n }\n\n return getFrequencyResponse.call(nativeIIRFilterNode, frequencyHz, magResponse, phaseResponse);\n };\n })(nativeIIRFilterNode.getFrequencyResponse);\n};\n","import { MOST_NEGATIVE_SINGLE_FLOAT, MOST_POSITIVE_SINGLE_FLOAT } from '../constants';\nimport { IAudioParam } from '../interfaces';\nimport { TAudioListenerFactoryFactory } from '../types';\n\nexport const createAudioListenerFactory: TAudioListenerFactoryFactory = (\n createAudioParam,\n createNativeChannelMergerNode,\n createNativeConstantSourceNode,\n createNativeScriptProcessorNode,\n createNotSupportedError,\n getFirstSample,\n isNativeOfflineAudioContext,\n overwriteAccessors\n) => {\n return (context, nativeContext) => {\n const nativeListener = nativeContext.listener;\n\n // Bug #117: Only Chrome & Edge support the new interface already.\n const createFakeAudioParams = () => {\n const buffer = new Float32Array(1);\n const channelMergerNode = createNativeChannelMergerNode(nativeContext, {\n channelCount: 1,\n channelCountMode: 'explicit',\n channelInterpretation: 'speakers',\n numberOfInputs: 9\n });\n const isOffline = isNativeOfflineAudioContext(nativeContext);\n\n let isScriptProcessorNodeCreated = false;\n let lastOrientation: [number, number, number, number, number, number] = [0, 0, -1, 0, 1, 0];\n let lastPosition: [number, number, number] = [0, 0, 0];\n\n const createScriptProcessorNode = () => {\n if (isScriptProcessorNodeCreated) {\n return;\n }\n\n isScriptProcessorNodeCreated = true;\n\n const scriptProcessorNode = createNativeScriptProcessorNode(nativeContext, 256, 9, 0);\n\n // tslint:disable-next-line:deprecation\n scriptProcessorNode.onaudioprocess = ({ inputBuffer }) => {\n const orientation: [number, number, number, number, number, number] = [\n getFirstSample(inputBuffer, buffer, 0),\n getFirstSample(inputBuffer, buffer, 1),\n getFirstSample(inputBuffer, buffer, 2),\n getFirstSample(inputBuffer, buffer, 3),\n getFirstSample(inputBuffer, buffer, 4),\n getFirstSample(inputBuffer, buffer, 5)\n ];\n\n if (orientation.some((value, index) => value !== lastOrientation[index])) {\n nativeListener.setOrientation(...orientation); // tslint:disable-line:deprecation\n\n lastOrientation = orientation;\n }\n\n const positon: [number, number, number] = [\n getFirstSample(inputBuffer, buffer, 6),\n getFirstSample(inputBuffer, buffer, 7),\n getFirstSample(inputBuffer, buffer, 8)\n ];\n\n if (positon.some((value, index) => value !== lastPosition[index])) {\n nativeListener.setPosition(...positon); // tslint:disable-line:deprecation\n\n lastPosition = positon;\n }\n };\n\n channelMergerNode.connect(scriptProcessorNode);\n };\n const createSetOrientation = (index: number) => (value: number) => {\n if (value !== lastOrientation[index]) {\n lastOrientation[index] = value;\n\n nativeListener.setOrientation(...lastOrientation); // tslint:disable-line:deprecation\n }\n };\n const createSetPosition = (index: number) => (value: number) => {\n if (value !== lastPosition[index]) {\n lastPosition[index] = value;\n\n nativeListener.setPosition(...lastPosition); // tslint:disable-line:deprecation\n }\n };\n const createFakeAudioParam = (input: number, initialValue: number, setValue: (value: number) => void) => {\n const constantSourceNode = createNativeConstantSourceNode(nativeContext, {\n channelCount: 1,\n channelCountMode: 'explicit',\n channelInterpretation: 'discrete',\n offset: initialValue\n });\n\n constantSourceNode.connect(channelMergerNode, 0, input);\n\n // @todo This should be stopped when the context is closed.\n constantSourceNode.start();\n\n Object.defineProperty(constantSourceNode.offset, 'defaultValue', {\n get(): number {\n return initialValue;\n }\n });\n\n /*\n * Bug #62 & #74: Safari does not support ConstantSourceNodes and does not export the correct values for maxValue and\n * minValue for GainNodes.\n */\n const audioParam = createAudioParam(\n { context },\n isOffline,\n constantSourceNode.offset,\n MOST_POSITIVE_SINGLE_FLOAT,\n MOST_NEGATIVE_SINGLE_FLOAT\n );\n\n overwriteAccessors(\n audioParam,\n 'value',\n (get) => () => get.call(audioParam),\n (set) => (value) => {\n try {\n set.call(audioParam, value);\n } catch (err) {\n if (err.code !== 9) {\n throw err;\n }\n }\n\n createScriptProcessorNode();\n\n if (isOffline) {\n // Bug #117: Using setOrientation() and setPosition() doesn't work with an OfflineAudioContext.\n setValue(value);\n }\n }\n );\n\n audioParam.cancelAndHoldAtTime = ((cancelAndHoldAtTime) => {\n if (isOffline) {\n return () => {\n throw createNotSupportedError();\n };\n }\n\n return (...args: Parameters) => {\n const value = cancelAndHoldAtTime.apply(audioParam, args);\n\n createScriptProcessorNode();\n\n return value;\n };\n })(audioParam.cancelAndHoldAtTime);\n audioParam.cancelScheduledValues = ((cancelScheduledValues) => {\n if (isOffline) {\n return () => {\n throw createNotSupportedError();\n };\n }\n\n return (...args: Parameters) => {\n const value = cancelScheduledValues.apply(audioParam, args);\n\n createScriptProcessorNode();\n\n return value;\n };\n })(audioParam.cancelScheduledValues);\n audioParam.exponentialRampToValueAtTime = ((exponentialRampToValueAtTime) => {\n if (isOffline) {\n return () => {\n throw createNotSupportedError();\n };\n }\n\n return (...args: Parameters) => {\n const value = exponentialRampToValueAtTime.apply(audioParam, args);\n\n createScriptProcessorNode();\n\n return value;\n };\n })(audioParam.exponentialRampToValueAtTime);\n audioParam.linearRampToValueAtTime = ((linearRampToValueAtTime) => {\n if (isOffline) {\n return () => {\n throw createNotSupportedError();\n };\n }\n\n return (...args: Parameters) => {\n const value = linearRampToValueAtTime.apply(audioParam, args);\n\n createScriptProcessorNode();\n\n return value;\n };\n })(audioParam.linearRampToValueAtTime);\n audioParam.setTargetAtTime = ((setTargetAtTime) => {\n if (isOffline) {\n return () => {\n throw createNotSupportedError();\n };\n }\n\n return (...args: Parameters) => {\n const value = setTargetAtTime.apply(audioParam, args);\n\n createScriptProcessorNode();\n\n return value;\n };\n })(audioParam.setTargetAtTime);\n audioParam.setValueAtTime = ((setValueAtTime) => {\n if (isOffline) {\n return () => {\n throw createNotSupportedError();\n };\n }\n\n return (...args: Parameters) => {\n const value = setValueAtTime.apply(audioParam, args);\n\n createScriptProcessorNode();\n\n return value;\n };\n })(audioParam.setValueAtTime);\n audioParam.setValueCurveAtTime = ((setValueCurveAtTime) => {\n if (isOffline) {\n return () => {\n throw createNotSupportedError();\n };\n }\n\n return (...args: Parameters) => {\n const value = setValueCurveAtTime.apply(audioParam, args);\n\n createScriptProcessorNode();\n\n return value;\n };\n })(audioParam.setValueCurveAtTime);\n\n return audioParam;\n };\n\n return {\n forwardX: createFakeAudioParam(0, 0, createSetOrientation(0)),\n forwardY: createFakeAudioParam(1, 0, createSetOrientation(1)),\n forwardZ: createFakeAudioParam(2, -1, createSetOrientation(2)),\n positionX: createFakeAudioParam(6, 0, createSetPosition(0)),\n positionY: createFakeAudioParam(7, 0, createSetPosition(1)),\n positionZ: createFakeAudioParam(8, 0, createSetPosition(2)),\n upX: createFakeAudioParam(3, 0, createSetOrientation(3)),\n upY: createFakeAudioParam(4, 1, createSetOrientation(4)),\n upZ: createFakeAudioParam(5, 0, createSetOrientation(5))\n };\n };\n\n const { forwardX, forwardY, forwardZ, positionX, positionY, positionZ, upX, upY, upZ } =\n nativeListener.forwardX === undefined ? createFakeAudioParams() : nativeListener;\n\n return {\n get forwardX(): IAudioParam {\n return forwardX;\n },\n get forwardY(): IAudioParam {\n return forwardY;\n },\n get forwardZ(): IAudioParam {\n return forwardZ;\n },\n get positionX(): IAudioParam {\n return positionX;\n },\n get positionY(): IAudioParam {\n return positionY;\n },\n get positionZ(): IAudioParam {\n return positionZ;\n },\n get upX(): IAudioParam {\n return upX;\n },\n get upY(): IAudioParam {\n return upY;\n },\n get upZ(): IAudioParam {\n return upZ;\n }\n };\n };\n};\n","import { CONTEXT_STORE } from '../globals';\nimport { IAudioDestinationNode, IAudioListener, IMinimalBaseAudioContext, IMinimalBaseAudioContextEventMap } from '../interfaces';\nimport { TAudioContextState, TContext, TEventHandler, TMinimalBaseAudioContextConstructorFactory, TNativeContext } from '../types';\n\nexport const createMinimalBaseAudioContextConstructor: TMinimalBaseAudioContextConstructorFactory = (\n audioDestinationNodeConstructor,\n createAudioListener,\n eventTargetConstructor,\n isNativeOfflineAudioContext,\n unrenderedAudioWorkletNodeStore,\n wrapEventListener\n) => {\n return class MinimalBaseAudioContext\n extends eventTargetConstructor\n implements IMinimalBaseAudioContext\n {\n private _destination: IAudioDestinationNode;\n\n private _listener: IAudioListener;\n\n private _onstatechange: null | TEventHandler;\n\n constructor(private _nativeContext: TNativeContext, numberOfChannels: number) {\n super(_nativeContext);\n\n CONTEXT_STORE.set((this), _nativeContext);\n\n if (isNativeOfflineAudioContext(_nativeContext)) {\n unrenderedAudioWorkletNodeStore.set(_nativeContext, new Set());\n }\n\n this._destination = new audioDestinationNodeConstructor((this), numberOfChannels);\n this._listener = createAudioListener((this), _nativeContext);\n this._onstatechange = null;\n }\n\n get currentTime(): number {\n return this._nativeContext.currentTime;\n }\n\n get destination(): IAudioDestinationNode {\n return this._destination;\n }\n\n get listener(): IAudioListener {\n return this._listener;\n }\n\n get onstatechange(): null | TEventHandler {\n return this._onstatechange;\n }\n\n set onstatechange(value) {\n const wrappedListener = typeof value === 'function' ? wrapEventListener(this, value) : null;\n\n this._nativeContext.onstatechange = wrappedListener;\n\n const nativeOnStateChange = this._nativeContext.onstatechange;\n\n this._onstatechange = nativeOnStateChange !== null && nativeOnStateChange === wrappedListener ? value : nativeOnStateChange;\n }\n\n get sampleRate(): number {\n return this._nativeContext.sampleRate;\n }\n\n get state(): TAudioContextState {\n return this._nativeContext.state;\n }\n };\n};\n","import { assignNativeAudioNodeAudioParamValue } from '../helpers/assign-native-audio-node-audio-param-value';\nimport { assignNativeAudioNodeOption } from '../helpers/assign-native-audio-node-option';\nimport { assignNativeAudioNodeOptions } from '../helpers/assign-native-audio-node-options';\nimport { wrapAudioScheduledSourceNodeStartMethodNegativeParameters } from '../helpers/wrap-audio-scheduled-source-node-start-method-negative-parameters';\nimport { wrapAudioScheduledSourceNodeStopMethodNegativeParameters } from '../helpers/wrap-audio-scheduled-source-node-stop-method-negative-parameters';\nimport { TNativeOscillatorNodeFactoryFactory } from '../types';\n\nexport const createNativeOscillatorNodeFactory: TNativeOscillatorNodeFactoryFactory = (\n addSilentConnection,\n cacheTestResult,\n testAudioScheduledSourceNodeStartMethodNegativeParametersSupport,\n testAudioScheduledSourceNodeStopMethodConsecutiveCallsSupport,\n testAudioScheduledSourceNodeStopMethodNegativeParametersSupport,\n wrapAudioScheduledSourceNodeStopMethodConsecutiveCalls\n) => {\n return (nativeContext, options) => {\n const nativeOscillatorNode = nativeContext.createOscillator();\n\n assignNativeAudioNodeOptions(nativeOscillatorNode, options);\n\n assignNativeAudioNodeAudioParamValue(nativeOscillatorNode, options, 'detune');\n assignNativeAudioNodeAudioParamValue(nativeOscillatorNode, options, 'frequency');\n\n if (options.periodicWave !== undefined) {\n nativeOscillatorNode.setPeriodicWave(options.periodicWave);\n } else {\n assignNativeAudioNodeOption(nativeOscillatorNode, options, 'type');\n }\n\n // Bug #44: Only Chrome & Edge throw a RangeError yet.\n if (\n !cacheTestResult(testAudioScheduledSourceNodeStartMethodNegativeParametersSupport, () =>\n testAudioScheduledSourceNodeStartMethodNegativeParametersSupport(nativeContext)\n )\n ) {\n wrapAudioScheduledSourceNodeStartMethodNegativeParameters(nativeOscillatorNode);\n }\n\n // Bug #19: Safari does not ignore calls to stop() of an already stopped AudioBufferSourceNode.\n if (\n !cacheTestResult(testAudioScheduledSourceNodeStopMethodConsecutiveCallsSupport, () =>\n testAudioScheduledSourceNodeStopMethodConsecutiveCallsSupport(nativeContext)\n )\n ) {\n wrapAudioScheduledSourceNodeStopMethodConsecutiveCalls(nativeOscillatorNode, nativeContext);\n }\n\n // Bug #44: Only Firefox does not throw a RangeError yet.\n if (\n !cacheTestResult(testAudioScheduledSourceNodeStopMethodNegativeParametersSupport, () =>\n testAudioScheduledSourceNodeStopMethodNegativeParametersSupport(nativeContext)\n )\n ) {\n wrapAudioScheduledSourceNodeStopMethodNegativeParameters(nativeOscillatorNode);\n }\n\n // Bug #175: Safari will not fire an ended event if the OscillatorNode is unconnected.\n addSilentConnection(nativeContext, nativeOscillatorNode);\n\n return nativeOscillatorNode;\n };\n};\n","import { isOwnedByContext } from '../helpers/is-owned-by-context';\nimport { IMinimalOfflineAudioContext, IOfflineAudioContext, IOscillatorNode, IPeriodicWave } from '../interfaces';\nimport { TNativeOfflineAudioContext, TNativeOscillatorNode, TOscillatorNodeRendererFactoryFactory } from '../types';\n\nexport const createOscillatorNodeRendererFactory: TOscillatorNodeRendererFactoryFactory = (\n connectAudioParam,\n createNativeOscillatorNode,\n getNativeAudioNode,\n renderAutomation,\n renderInputsOfAudioNode\n) => {\n return () => {\n const renderedNativeOscillatorNodes = new WeakMap();\n\n let periodicWave: null | IPeriodicWave = null;\n let start: null | number = null;\n let stop: null | number = null;\n\n const createOscillatorNode = async (proxy: IOscillatorNode, nativeOfflineAudioContext: TNativeOfflineAudioContext) => {\n let nativeOscillatorNode = getNativeAudioNode(proxy);\n\n // If the initially used nativeOscillatorNode was not constructed on the same OfflineAudioContext it needs to be created again.\n const nativeOscillatorNodeIsOwnedByContext = isOwnedByContext(nativeOscillatorNode, nativeOfflineAudioContext);\n\n if (!nativeOscillatorNodeIsOwnedByContext) {\n const options = {\n channelCount: nativeOscillatorNode.channelCount,\n channelCountMode: nativeOscillatorNode.channelCountMode,\n channelInterpretation: nativeOscillatorNode.channelInterpretation,\n detune: nativeOscillatorNode.detune.value,\n frequency: nativeOscillatorNode.frequency.value,\n periodicWave: periodicWave === null ? undefined : periodicWave,\n type: nativeOscillatorNode.type\n };\n\n nativeOscillatorNode = createNativeOscillatorNode(nativeOfflineAudioContext, options);\n\n if (start !== null) {\n nativeOscillatorNode.start(start);\n }\n\n if (stop !== null) {\n nativeOscillatorNode.stop(stop);\n }\n }\n\n renderedNativeOscillatorNodes.set(nativeOfflineAudioContext, nativeOscillatorNode);\n\n if (!nativeOscillatorNodeIsOwnedByContext) {\n await renderAutomation(nativeOfflineAudioContext, proxy.detune, nativeOscillatorNode.detune);\n await renderAutomation(nativeOfflineAudioContext, proxy.frequency, nativeOscillatorNode.frequency);\n } else {\n await connectAudioParam(nativeOfflineAudioContext, proxy.detune, nativeOscillatorNode.detune);\n await connectAudioParam(nativeOfflineAudioContext, proxy.frequency, nativeOscillatorNode.frequency);\n }\n\n await renderInputsOfAudioNode(proxy, nativeOfflineAudioContext, nativeOscillatorNode);\n\n return nativeOscillatorNode;\n };\n\n return {\n set periodicWave(value: null | IPeriodicWave) {\n periodicWave = value;\n },\n set start(value: number) {\n start = value;\n },\n set stop(value: number) {\n stop = value;\n },\n render(proxy: IOscillatorNode, nativeOfflineAudioContext: TNativeOfflineAudioContext): Promise {\n const renderedNativeOscillatorNode = renderedNativeOscillatorNodes.get(nativeOfflineAudioContext);\n\n if (renderedNativeOscillatorNode !== undefined) {\n return Promise.resolve(renderedNativeOscillatorNode);\n }\n\n return createOscillatorNode(proxy, nativeOfflineAudioContext);\n }\n };\n };\n};\n","import { TConnectedNativeAudioBufferSourceNodeFactoryFactory } from '../types';\n\nexport const createConnectedNativeAudioBufferSourceNodeFactory: TConnectedNativeAudioBufferSourceNodeFactoryFactory = (\n createNativeAudioBufferSourceNode\n) => {\n return (nativeContext, nativeAudioNode) => {\n const nativeAudioBufferSourceNode = createNativeAudioBufferSourceNode(nativeContext, {\n buffer: null,\n channelCount: 2,\n channelCountMode: 'max',\n channelInterpretation: 'speakers',\n loop: false,\n loopEnd: 0,\n loopStart: 0,\n playbackRate: 1\n });\n const nativeAudioBuffer = nativeContext.createBuffer(1, 2, 44100);\n\n nativeAudioBufferSourceNode.buffer = nativeAudioBuffer;\n nativeAudioBufferSourceNode.loop = true;\n\n nativeAudioBufferSourceNode.connect(nativeAudioNode);\n nativeAudioBufferSourceNode.start();\n\n return () => {\n nativeAudioBufferSourceNode.stop();\n nativeAudioBufferSourceNode.disconnect(nativeAudioNode);\n };\n };\n};\n","import { assignNativeAudioNodeOptions } from '../helpers/assign-native-audio-node-options';\nimport { interceptConnections } from '../helpers/intercept-connections';\nimport { TNativeAudioNode, TNativeWaveShaperNode, TNativeWaveShaperNodeFakerFactoryFactory } from '../types';\n\nexport const createNativeWaveShaperNodeFakerFactory: TNativeWaveShaperNodeFakerFactoryFactory = (\n createConnectedNativeAudioBufferSourceNode,\n createInvalidStateError,\n createNativeGainNode,\n isDCCurve,\n monitorConnections\n) => {\n return (nativeContext, { curve, oversample, ...audioNodeOptions }) => {\n const negativeWaveShaperNode = nativeContext.createWaveShaper();\n const positiveWaveShaperNode = nativeContext.createWaveShaper();\n\n assignNativeAudioNodeOptions(negativeWaveShaperNode, audioNodeOptions);\n assignNativeAudioNodeOptions(positiveWaveShaperNode, audioNodeOptions);\n\n const inputGainNode = createNativeGainNode(nativeContext, { ...audioNodeOptions, gain: 1 });\n const invertGainNode = createNativeGainNode(nativeContext, { ...audioNodeOptions, gain: -1 });\n const outputGainNode = createNativeGainNode(nativeContext, { ...audioNodeOptions, gain: 1 });\n const revertGainNode = createNativeGainNode(nativeContext, { ...audioNodeOptions, gain: -1 });\n\n let disconnectNativeAudioBufferSourceNode: null | (() => void) = null;\n let isConnected = false;\n let unmodifiedCurve: null | TNativeWaveShaperNode['curve'] = null;\n\n const nativeWaveShaperNodeFaker = {\n get bufferSize(): undefined {\n return undefined;\n },\n get channelCount(): number {\n return negativeWaveShaperNode.channelCount;\n },\n set channelCount(value) {\n inputGainNode.channelCount = value;\n invertGainNode.channelCount = value;\n negativeWaveShaperNode.channelCount = value;\n outputGainNode.channelCount = value;\n positiveWaveShaperNode.channelCount = value;\n revertGainNode.channelCount = value;\n },\n get channelCountMode(): TNativeWaveShaperNode['channelCountMode'] {\n return negativeWaveShaperNode.channelCountMode;\n },\n set channelCountMode(value) {\n inputGainNode.channelCountMode = value;\n invertGainNode.channelCountMode = value;\n negativeWaveShaperNode.channelCountMode = value;\n outputGainNode.channelCountMode = value;\n positiveWaveShaperNode.channelCountMode = value;\n revertGainNode.channelCountMode = value;\n },\n get channelInterpretation(): TNativeWaveShaperNode['channelInterpretation'] {\n return negativeWaveShaperNode.channelInterpretation;\n },\n set channelInterpretation(value) {\n inputGainNode.channelInterpretation = value;\n invertGainNode.channelInterpretation = value;\n negativeWaveShaperNode.channelInterpretation = value;\n outputGainNode.channelInterpretation = value;\n positiveWaveShaperNode.channelInterpretation = value;\n revertGainNode.channelInterpretation = value;\n },\n get context(): TNativeWaveShaperNode['context'] {\n return negativeWaveShaperNode.context;\n },\n get curve(): TNativeWaveShaperNode['curve'] {\n return unmodifiedCurve;\n },\n set curve(value) {\n // Bug #102: Safari does not throw an InvalidStateError when the curve has less than two samples.\n if (value !== null && value.length < 2) {\n throw createInvalidStateError();\n }\n\n if (value === null) {\n negativeWaveShaperNode.curve = value;\n positiveWaveShaperNode.curve = value;\n } else {\n const curveLength = value.length;\n\n const negativeCurve = new Float32Array(curveLength + 2 - (curveLength % 2));\n const positiveCurve = new Float32Array(curveLength + 2 - (curveLength % 2));\n\n negativeCurve[0] = value[0];\n positiveCurve[0] = -value[curveLength - 1];\n\n const length = Math.ceil((curveLength + 1) / 2);\n const centerIndex = (curveLength + 1) / 2 - 1;\n\n for (let i = 1; i < length; i += 1) {\n const theoreticIndex = (i / length) * centerIndex;\n\n const lowerIndex = Math.floor(theoreticIndex);\n const upperIndex = Math.ceil(theoreticIndex);\n\n negativeCurve[i] =\n lowerIndex === upperIndex\n ? value[lowerIndex]\n : (1 - (theoreticIndex - lowerIndex)) * value[lowerIndex] +\n (1 - (upperIndex - theoreticIndex)) * value[upperIndex];\n positiveCurve[i] =\n lowerIndex === upperIndex\n ? -value[curveLength - 1 - lowerIndex]\n : -((1 - (theoreticIndex - lowerIndex)) * value[curveLength - 1 - lowerIndex]) -\n (1 - (upperIndex - theoreticIndex)) * value[curveLength - 1 - upperIndex];\n }\n\n negativeCurve[length] = curveLength % 2 === 1 ? value[length - 1] : (value[length - 2] + value[length - 1]) / 2;\n\n negativeWaveShaperNode.curve = negativeCurve;\n positiveWaveShaperNode.curve = positiveCurve;\n }\n\n unmodifiedCurve = value;\n\n if (isConnected) {\n if (isDCCurve(unmodifiedCurve) && disconnectNativeAudioBufferSourceNode === null) {\n disconnectNativeAudioBufferSourceNode = createConnectedNativeAudioBufferSourceNode(nativeContext, inputGainNode);\n } else if (disconnectNativeAudioBufferSourceNode !== null) {\n disconnectNativeAudioBufferSourceNode();\n disconnectNativeAudioBufferSourceNode = null;\n }\n }\n },\n get inputs(): TNativeAudioNode[] {\n return [inputGainNode];\n },\n get numberOfInputs(): number {\n return negativeWaveShaperNode.numberOfInputs;\n },\n get numberOfOutputs(): number {\n return negativeWaveShaperNode.numberOfOutputs;\n },\n get oversample(): TNativeWaveShaperNode['oversample'] {\n return negativeWaveShaperNode.oversample;\n },\n set oversample(value) {\n negativeWaveShaperNode.oversample = value;\n positiveWaveShaperNode.oversample = value;\n },\n addEventListener(...args: any[]): void {\n return inputGainNode.addEventListener(args[0], args[1], args[2]);\n },\n dispatchEvent(...args: any[]): boolean {\n return inputGainNode.dispatchEvent(args[0]);\n },\n removeEventListener(...args: any[]): void {\n return inputGainNode.removeEventListener(args[0], args[1], args[2]);\n }\n };\n\n if (curve !== null) {\n // Only values of type Float32Array can be assigned to the curve property.\n nativeWaveShaperNodeFaker.curve = curve instanceof Float32Array ? curve : new Float32Array(curve);\n }\n\n if (oversample !== nativeWaveShaperNodeFaker.oversample) {\n nativeWaveShaperNodeFaker.oversample = oversample;\n }\n\n const whenConnected = () => {\n inputGainNode.connect(negativeWaveShaperNode).connect(outputGainNode);\n\n inputGainNode.connect(invertGainNode).connect(positiveWaveShaperNode).connect(revertGainNode).connect(outputGainNode);\n\n isConnected = true;\n\n if (isDCCurve(unmodifiedCurve)) {\n disconnectNativeAudioBufferSourceNode = createConnectedNativeAudioBufferSourceNode(nativeContext, inputGainNode);\n }\n };\n const whenDisconnected = () => {\n inputGainNode.disconnect(negativeWaveShaperNode);\n negativeWaveShaperNode.disconnect(outputGainNode);\n\n inputGainNode.disconnect(invertGainNode);\n invertGainNode.disconnect(positiveWaveShaperNode);\n positiveWaveShaperNode.disconnect(revertGainNode);\n revertGainNode.disconnect(outputGainNode);\n\n isConnected = false;\n\n if (disconnectNativeAudioBufferSourceNode !== null) {\n disconnectNativeAudioBufferSourceNode();\n disconnectNativeAudioBufferSourceNode = null;\n }\n };\n\n return monitorConnections(interceptConnections(nativeWaveShaperNodeFaker, outputGainNode), whenConnected, whenDisconnected);\n };\n};\n","import { assignNativeAudioNodeOption } from '../helpers/assign-native-audio-node-option';\nimport { assignNativeAudioNodeOptions } from '../helpers/assign-native-audio-node-options';\nimport { TNativeWaveShaperNodeFactoryFactory } from '../types';\n\nexport const createNativeWaveShaperNodeFactory: TNativeWaveShaperNodeFactoryFactory = (\n createConnectedNativeAudioBufferSourceNode,\n createInvalidStateError,\n createNativeWaveShaperNodeFaker,\n isDCCurve,\n monitorConnections,\n nativeAudioContextConstructor,\n overwriteAccessors\n) => {\n return (nativeContext, options) => {\n const nativeWaveShaperNode = nativeContext.createWaveShaper();\n\n /*\n * Bug #119: Safari does not correctly map the values.\n * @todo Unfortunately there is no way to test for this behavior in a synchronous fashion which is why testing for the existence of\n * the webkitAudioContext is used as a workaround here. Testing for the automationRate property is necessary because this workaround\n * isn't necessary anymore since v14.0.2 of Safari.\n */\n if (\n nativeAudioContextConstructor !== null &&\n nativeAudioContextConstructor.name === 'webkitAudioContext' &&\n nativeContext.createGain().gain.automationRate === undefined\n ) {\n return createNativeWaveShaperNodeFaker(nativeContext, options);\n }\n\n assignNativeAudioNodeOptions(nativeWaveShaperNode, options);\n\n const curve = options.curve === null || options.curve instanceof Float32Array ? options.curve : new Float32Array(options.curve);\n\n // Bug #104: Chrome and Edge will throw an InvalidAccessError when the curve has less than two samples.\n if (curve !== null && curve.length < 2) {\n throw createInvalidStateError();\n }\n\n // Only values of type Float32Array can be assigned to the curve property.\n assignNativeAudioNodeOption(nativeWaveShaperNode, { curve }, 'curve');\n assignNativeAudioNodeOption(nativeWaveShaperNode, options, 'oversample');\n\n let disconnectNativeAudioBufferSourceNode: null | (() => void) = null;\n let isConnected = false;\n\n overwriteAccessors(\n nativeWaveShaperNode,\n 'curve',\n (get) => () => get.call(nativeWaveShaperNode),\n (set) => (value) => {\n set.call(nativeWaveShaperNode, value);\n\n if (isConnected) {\n if (isDCCurve(value) && disconnectNativeAudioBufferSourceNode === null) {\n disconnectNativeAudioBufferSourceNode = createConnectedNativeAudioBufferSourceNode(\n nativeContext,\n nativeWaveShaperNode\n );\n } else if (!isDCCurve(value) && disconnectNativeAudioBufferSourceNode !== null) {\n disconnectNativeAudioBufferSourceNode();\n disconnectNativeAudioBufferSourceNode = null;\n }\n }\n\n return value;\n }\n );\n\n const whenConnected = () => {\n isConnected = true;\n\n if (isDCCurve(nativeWaveShaperNode.curve)) {\n disconnectNativeAudioBufferSourceNode = createConnectedNativeAudioBufferSourceNode(nativeContext, nativeWaveShaperNode);\n }\n };\n const whenDisconnected = () => {\n isConnected = false;\n\n if (disconnectNativeAudioBufferSourceNode !== null) {\n disconnectNativeAudioBufferSourceNode();\n disconnectNativeAudioBufferSourceNode = null;\n }\n };\n\n return monitorConnections(nativeWaveShaperNode, whenConnected, whenDisconnected);\n };\n};\n","import { assignNativeAudioNodeOptions } from '../helpers/assign-native-audio-node-options';\nimport { interceptConnections } from '../helpers/intercept-connections';\nimport { TNativeAudioNode, TNativePannerNode, TNativePannerNodeFakerFactoryFactory } from '../types';\n\nexport const createNativePannerNodeFakerFactory: TNativePannerNodeFakerFactoryFactory = (\n connectNativeAudioNodeToNativeAudioNode,\n createInvalidStateError,\n createNativeChannelMergerNode,\n createNativeGainNode,\n createNativeScriptProcessorNode,\n createNativeWaveShaperNode,\n createNotSupportedError,\n disconnectNativeAudioNodeFromNativeAudioNode,\n getFirstSample,\n monitorConnections\n) => {\n return (\n nativeContext,\n {\n coneInnerAngle,\n coneOuterAngle,\n coneOuterGain,\n distanceModel,\n maxDistance,\n orientationX,\n orientationY,\n orientationZ,\n panningModel,\n positionX,\n positionY,\n positionZ,\n refDistance,\n rolloffFactor,\n ...audioNodeOptions\n }\n ) => {\n const pannerNode = nativeContext.createPanner();\n\n // Bug #125: Safari does not throw an error yet.\n if (audioNodeOptions.channelCount > 2) {\n throw createNotSupportedError();\n }\n\n // Bug #126: Safari does not throw an error yet.\n if (audioNodeOptions.channelCountMode === 'max') {\n throw createNotSupportedError();\n }\n\n assignNativeAudioNodeOptions(pannerNode, audioNodeOptions);\n\n const SINGLE_CHANNEL_OPTIONS = {\n channelCount: 1,\n channelCountMode: 'explicit',\n channelInterpretation: 'discrete'\n } as const;\n\n const channelMergerNode = createNativeChannelMergerNode(nativeContext, {\n ...SINGLE_CHANNEL_OPTIONS,\n channelInterpretation: 'speakers',\n numberOfInputs: 6\n });\n const inputGainNode = createNativeGainNode(nativeContext, { ...audioNodeOptions, gain: 1 });\n const orientationXGainNode = createNativeGainNode(nativeContext, { ...SINGLE_CHANNEL_OPTIONS, gain: 1 });\n const orientationYGainNode = createNativeGainNode(nativeContext, { ...SINGLE_CHANNEL_OPTIONS, gain: 0 });\n const orientationZGainNode = createNativeGainNode(nativeContext, { ...SINGLE_CHANNEL_OPTIONS, gain: 0 });\n const positionXGainNode = createNativeGainNode(nativeContext, { ...SINGLE_CHANNEL_OPTIONS, gain: 0 });\n const positionYGainNode = createNativeGainNode(nativeContext, { ...SINGLE_CHANNEL_OPTIONS, gain: 0 });\n const positionZGainNode = createNativeGainNode(nativeContext, { ...SINGLE_CHANNEL_OPTIONS, gain: 0 });\n const scriptProcessorNode = createNativeScriptProcessorNode(nativeContext, 256, 6, 1);\n const waveShaperNode = createNativeWaveShaperNode(nativeContext, {\n ...SINGLE_CHANNEL_OPTIONS,\n curve: new Float32Array([1, 1]),\n oversample: 'none'\n });\n\n let lastOrientation: [number, number, number] = [orientationX, orientationY, orientationZ];\n let lastPosition: [number, number, number] = [positionX, positionY, positionZ];\n\n const buffer = new Float32Array(1);\n\n // tslint:disable-next-line:deprecation\n scriptProcessorNode.onaudioprocess = ({ inputBuffer }) => {\n const orientation: [number, number, number] = [\n getFirstSample(inputBuffer, buffer, 0),\n getFirstSample(inputBuffer, buffer, 1),\n getFirstSample(inputBuffer, buffer, 2)\n ];\n\n if (orientation.some((value, index) => value !== lastOrientation[index])) {\n pannerNode.setOrientation(...orientation); // tslint:disable-line:deprecation\n\n lastOrientation = orientation;\n }\n\n const positon: [number, number, number] = [\n getFirstSample(inputBuffer, buffer, 3),\n getFirstSample(inputBuffer, buffer, 4),\n getFirstSample(inputBuffer, buffer, 5)\n ];\n\n if (positon.some((value, index) => value !== lastPosition[index])) {\n pannerNode.setPosition(...positon); // tslint:disable-line:deprecation\n\n lastPosition = positon;\n }\n };\n\n Object.defineProperty(orientationYGainNode.gain, 'defaultValue', { get: () => 0 });\n Object.defineProperty(orientationZGainNode.gain, 'defaultValue', { get: () => 0 });\n Object.defineProperty(positionXGainNode.gain, 'defaultValue', { get: () => 0 });\n Object.defineProperty(positionYGainNode.gain, 'defaultValue', { get: () => 0 });\n Object.defineProperty(positionZGainNode.gain, 'defaultValue', { get: () => 0 });\n\n const nativePannerNodeFaker = {\n get bufferSize(): undefined {\n return undefined;\n },\n get channelCount(): number {\n return pannerNode.channelCount;\n },\n set channelCount(value) {\n // Bug #125: Safari does not throw an error yet.\n if (value > 2) {\n throw createNotSupportedError();\n }\n\n inputGainNode.channelCount = value;\n pannerNode.channelCount = value;\n },\n get channelCountMode(): TNativePannerNode['channelCountMode'] {\n return pannerNode.channelCountMode;\n },\n set channelCountMode(value) {\n // Bug #126: Safari does not throw an error yet.\n if (value === 'max') {\n throw createNotSupportedError();\n }\n\n inputGainNode.channelCountMode = value;\n pannerNode.channelCountMode = value;\n },\n get channelInterpretation(): TNativePannerNode['channelInterpretation'] {\n return pannerNode.channelInterpretation;\n },\n set channelInterpretation(value) {\n inputGainNode.channelInterpretation = value;\n pannerNode.channelInterpretation = value;\n },\n get coneInnerAngle(): TNativePannerNode['coneInnerAngle'] {\n return pannerNode.coneInnerAngle;\n },\n set coneInnerAngle(value) {\n pannerNode.coneInnerAngle = value;\n },\n get coneOuterAngle(): TNativePannerNode['coneOuterAngle'] {\n return pannerNode.coneOuterAngle;\n },\n set coneOuterAngle(value) {\n pannerNode.coneOuterAngle = value;\n },\n get coneOuterGain(): TNativePannerNode['coneOuterGain'] {\n return pannerNode.coneOuterGain;\n },\n set coneOuterGain(value) {\n // Bug #127: Safari does not throw an InvalidStateError yet.\n if (value < 0 || value > 1) {\n throw createInvalidStateError();\n }\n\n pannerNode.coneOuterGain = value;\n },\n get context(): TNativePannerNode['context'] {\n return pannerNode.context;\n },\n get distanceModel(): TNativePannerNode['distanceModel'] {\n return pannerNode.distanceModel;\n },\n set distanceModel(value) {\n pannerNode.distanceModel = value;\n },\n get inputs(): TNativeAudioNode[] {\n return [inputGainNode];\n },\n get maxDistance(): TNativePannerNode['maxDistance'] {\n return pannerNode.maxDistance;\n },\n set maxDistance(value) {\n // Bug #128: Safari does not throw an error yet.\n if (value < 0) {\n throw new RangeError();\n }\n\n pannerNode.maxDistance = value;\n },\n get numberOfInputs(): number {\n return pannerNode.numberOfInputs;\n },\n get numberOfOutputs(): number {\n return pannerNode.numberOfOutputs;\n },\n get orientationX(): TNativePannerNode['orientationX'] {\n return orientationXGainNode.gain;\n },\n get orientationY(): TNativePannerNode['orientationY'] {\n return orientationYGainNode.gain;\n },\n get orientationZ(): TNativePannerNode['orientationZ'] {\n return orientationZGainNode.gain;\n },\n get panningModel(): TNativePannerNode['panningModel'] {\n return pannerNode.panningModel;\n },\n set panningModel(value) {\n pannerNode.panningModel = value;\n },\n get positionX(): TNativePannerNode['positionX'] {\n return positionXGainNode.gain;\n },\n get positionY(): TNativePannerNode['positionY'] {\n return positionYGainNode.gain;\n },\n get positionZ(): TNativePannerNode['positionZ'] {\n return positionZGainNode.gain;\n },\n get refDistance(): TNativePannerNode['refDistance'] {\n return pannerNode.refDistance;\n },\n set refDistance(value) {\n // Bug #129: Safari does not throw an error yet.\n if (value < 0) {\n throw new RangeError();\n }\n\n pannerNode.refDistance = value;\n },\n get rolloffFactor(): TNativePannerNode['rolloffFactor'] {\n return pannerNode.rolloffFactor;\n },\n set rolloffFactor(value) {\n // Bug #130: Safari does not throw an error yet.\n if (value < 0) {\n throw new RangeError();\n }\n\n pannerNode.rolloffFactor = value;\n },\n addEventListener(...args: any[]): void {\n return inputGainNode.addEventListener(args[0], args[1], args[2]);\n },\n dispatchEvent(...args: any[]): boolean {\n return inputGainNode.dispatchEvent(args[0]);\n },\n removeEventListener(...args: any[]): void {\n return inputGainNode.removeEventListener(args[0], args[1], args[2]);\n }\n };\n\n if (coneInnerAngle !== nativePannerNodeFaker.coneInnerAngle) {\n nativePannerNodeFaker.coneInnerAngle = coneInnerAngle;\n }\n\n if (coneOuterAngle !== nativePannerNodeFaker.coneOuterAngle) {\n nativePannerNodeFaker.coneOuterAngle = coneOuterAngle;\n }\n\n if (coneOuterGain !== nativePannerNodeFaker.coneOuterGain) {\n nativePannerNodeFaker.coneOuterGain = coneOuterGain;\n }\n\n if (distanceModel !== nativePannerNodeFaker.distanceModel) {\n nativePannerNodeFaker.distanceModel = distanceModel;\n }\n\n if (maxDistance !== nativePannerNodeFaker.maxDistance) {\n nativePannerNodeFaker.maxDistance = maxDistance;\n }\n\n if (orientationX !== nativePannerNodeFaker.orientationX.value) {\n nativePannerNodeFaker.orientationX.value = orientationX;\n }\n\n if (orientationY !== nativePannerNodeFaker.orientationY.value) {\n nativePannerNodeFaker.orientationY.value = orientationY;\n }\n\n if (orientationZ !== nativePannerNodeFaker.orientationZ.value) {\n nativePannerNodeFaker.orientationZ.value = orientationZ;\n }\n\n if (panningModel !== nativePannerNodeFaker.panningModel) {\n nativePannerNodeFaker.panningModel = panningModel;\n }\n\n if (positionX !== nativePannerNodeFaker.positionX.value) {\n nativePannerNodeFaker.positionX.value = positionX;\n }\n\n if (positionY !== nativePannerNodeFaker.positionY.value) {\n nativePannerNodeFaker.positionY.value = positionY;\n }\n\n if (positionZ !== nativePannerNodeFaker.positionZ.value) {\n nativePannerNodeFaker.positionZ.value = positionZ;\n }\n\n if (refDistance !== nativePannerNodeFaker.refDistance) {\n nativePannerNodeFaker.refDistance = refDistance;\n }\n\n if (rolloffFactor !== nativePannerNodeFaker.rolloffFactor) {\n nativePannerNodeFaker.rolloffFactor = rolloffFactor;\n }\n\n if (lastOrientation[0] !== 1 || lastOrientation[1] !== 0 || lastOrientation[2] !== 0) {\n pannerNode.setOrientation(...lastOrientation); // tslint:disable-line:deprecation\n }\n\n if (lastPosition[0] !== 0 || lastPosition[1] !== 0 || lastPosition[2] !== 0) {\n pannerNode.setPosition(...lastPosition); // tslint:disable-line:deprecation\n }\n\n const whenConnected = () => {\n inputGainNode.connect(pannerNode);\n\n // Bug #119: Safari does not fully support the WaveShaperNode.\n connectNativeAudioNodeToNativeAudioNode(inputGainNode, waveShaperNode, 0, 0);\n\n waveShaperNode.connect(orientationXGainNode).connect(channelMergerNode, 0, 0);\n waveShaperNode.connect(orientationYGainNode).connect(channelMergerNode, 0, 1);\n waveShaperNode.connect(orientationZGainNode).connect(channelMergerNode, 0, 2);\n waveShaperNode.connect(positionXGainNode).connect(channelMergerNode, 0, 3);\n waveShaperNode.connect(positionYGainNode).connect(channelMergerNode, 0, 4);\n waveShaperNode.connect(positionZGainNode).connect(channelMergerNode, 0, 5);\n\n channelMergerNode.connect(scriptProcessorNode).connect(nativeContext.destination);\n };\n const whenDisconnected = () => {\n inputGainNode.disconnect(pannerNode);\n\n // Bug #119: Safari does not fully support the WaveShaperNode.\n disconnectNativeAudioNodeFromNativeAudioNode(inputGainNode, waveShaperNode, 0, 0);\n\n waveShaperNode.disconnect(orientationXGainNode);\n orientationXGainNode.disconnect(channelMergerNode);\n waveShaperNode.disconnect(orientationYGainNode);\n orientationYGainNode.disconnect(channelMergerNode);\n waveShaperNode.disconnect(orientationZGainNode);\n orientationZGainNode.disconnect(channelMergerNode);\n waveShaperNode.disconnect(positionXGainNode);\n positionXGainNode.disconnect(channelMergerNode);\n waveShaperNode.disconnect(positionYGainNode);\n positionYGainNode.disconnect(channelMergerNode);\n waveShaperNode.disconnect(positionZGainNode);\n positionZGainNode.disconnect(channelMergerNode);\n\n channelMergerNode.disconnect(scriptProcessorNode);\n scriptProcessorNode.disconnect(nativeContext.destination);\n };\n\n return monitorConnections(interceptConnections(nativePannerNodeFaker, pannerNode), whenConnected, whenDisconnected);\n };\n};\n","import { assignNativeAudioNodeAudioParamValue } from '../helpers/assign-native-audio-node-audio-param-value';\nimport { assignNativeAudioNodeOption } from '../helpers/assign-native-audio-node-option';\nimport { assignNativeAudioNodeOptions } from '../helpers/assign-native-audio-node-options';\nimport { TNativePannerNodeFactoryFactory } from '../types';\n\nexport const createNativePannerNodeFactory: TNativePannerNodeFactoryFactory = (createNativePannerNodeFaker) => {\n return (nativeContext, options) => {\n const nativePannerNode = nativeContext.createPanner();\n\n // Bug #124: Safari does not support modifying the orientation and the position with AudioParams.\n if (nativePannerNode.orientationX === undefined) {\n return createNativePannerNodeFaker(nativeContext, options);\n }\n\n assignNativeAudioNodeOptions(nativePannerNode, options);\n\n assignNativeAudioNodeAudioParamValue(nativePannerNode, options, 'orientationX');\n assignNativeAudioNodeAudioParamValue(nativePannerNode, options, 'orientationY');\n assignNativeAudioNodeAudioParamValue(nativePannerNode, options, 'orientationZ');\n assignNativeAudioNodeAudioParamValue(nativePannerNode, options, 'positionX');\n assignNativeAudioNodeAudioParamValue(nativePannerNode, options, 'positionY');\n assignNativeAudioNodeAudioParamValue(nativePannerNode, options, 'positionZ');\n\n assignNativeAudioNodeOption(nativePannerNode, options, 'coneInnerAngle');\n assignNativeAudioNodeOption(nativePannerNode, options, 'coneOuterAngle');\n assignNativeAudioNodeOption(nativePannerNode, options, 'coneOuterGain');\n assignNativeAudioNodeOption(nativePannerNode, options, 'distanceModel');\n assignNativeAudioNodeOption(nativePannerNode, options, 'maxDistance');\n assignNativeAudioNodeOption(nativePannerNode, options, 'panningModel');\n assignNativeAudioNodeOption(nativePannerNode, options, 'refDistance');\n assignNativeAudioNodeOption(nativePannerNode, options, 'rolloffFactor');\n\n return nativePannerNode;\n };\n};\n","import { isNativeAudioNodeFaker } from '../guards/native-audio-node-faker';\nimport { isOwnedByContext } from '../helpers/is-owned-by-context';\nimport { IMinimalOfflineAudioContext, INativePannerNodeFaker, IOfflineAudioContext, IPannerNode } from '../interfaces';\nimport {\n TNativeAudioBuffer,\n TNativeGainNode,\n TNativeOfflineAudioContext,\n TNativePannerNode,\n TPannerNodeRendererFactoryFactory\n} from '../types';\n\nexport const createPannerNodeRendererFactory: TPannerNodeRendererFactoryFactory = (\n connectAudioParam,\n createNativeChannelMergerNode,\n createNativeConstantSourceNode,\n createNativeGainNode,\n createNativePannerNode,\n getNativeAudioNode,\n nativeOfflineAudioContextConstructor,\n renderAutomation,\n renderInputsOfAudioNode,\n renderNativeOfflineAudioContext\n) => {\n return () => {\n const renderedNativeAudioNodes = new WeakMap();\n\n let renderedBufferPromise: null | Promise = null;\n\n const createAudioNode = async (proxy: IPannerNode, nativeOfflineAudioContext: TNativeOfflineAudioContext) => {\n let nativeGainNode: null | TNativeGainNode = null;\n let nativePannerNode = getNativeAudioNode(proxy);\n\n const commonAudioNodeOptions = {\n channelCount: nativePannerNode.channelCount,\n channelCountMode: nativePannerNode.channelCountMode,\n channelInterpretation: nativePannerNode.channelInterpretation\n };\n const commonNativePannerNodeOptions = {\n ...commonAudioNodeOptions,\n coneInnerAngle: nativePannerNode.coneInnerAngle,\n coneOuterAngle: nativePannerNode.coneOuterAngle,\n coneOuterGain: nativePannerNode.coneOuterGain,\n distanceModel: nativePannerNode.distanceModel,\n maxDistance: nativePannerNode.maxDistance,\n panningModel: nativePannerNode.panningModel,\n refDistance: nativePannerNode.refDistance,\n rolloffFactor: nativePannerNode.rolloffFactor\n };\n\n // If the initially used nativePannerNode was not constructed on the same OfflineAudioContext it needs to be created again.\n const nativePannerNodeIsOwnedByContext = isOwnedByContext(nativePannerNode, nativeOfflineAudioContext);\n\n // Bug #124: Safari does not support modifying the orientation and the position with AudioParams.\n if ('bufferSize' in nativePannerNode) {\n nativeGainNode = createNativeGainNode(nativeOfflineAudioContext, { ...commonAudioNodeOptions, gain: 1 });\n } else if (!nativePannerNodeIsOwnedByContext) {\n const options = {\n ...commonNativePannerNodeOptions,\n orientationX: nativePannerNode.orientationX.value,\n orientationY: nativePannerNode.orientationY.value,\n orientationZ: nativePannerNode.orientationZ.value,\n positionX: nativePannerNode.positionX.value,\n positionY: nativePannerNode.positionY.value,\n positionZ: nativePannerNode.positionZ.value\n };\n\n nativePannerNode = createNativePannerNode(nativeOfflineAudioContext, options);\n }\n\n renderedNativeAudioNodes.set(nativeOfflineAudioContext, nativeGainNode === null ? nativePannerNode : nativeGainNode);\n\n if (nativeGainNode !== null) {\n if (renderedBufferPromise === null) {\n if (nativeOfflineAudioContextConstructor === null) {\n throw new Error('Missing the native OfflineAudioContext constructor.');\n }\n\n const partialOfflineAudioContext = new nativeOfflineAudioContextConstructor(\n 6,\n // Bug #17: Safari does not yet expose the length.\n proxy.context.length,\n nativeOfflineAudioContext.sampleRate\n );\n const nativeChannelMergerNode = createNativeChannelMergerNode(partialOfflineAudioContext, {\n channelCount: 1,\n channelCountMode: 'explicit',\n channelInterpretation: 'speakers',\n numberOfInputs: 6\n });\n nativeChannelMergerNode.connect(partialOfflineAudioContext.destination);\n\n renderedBufferPromise = (async () => {\n const nativeConstantSourceNodes = await Promise.all(\n [\n proxy.orientationX,\n proxy.orientationY,\n proxy.orientationZ,\n proxy.positionX,\n proxy.positionY,\n proxy.positionZ\n ].map(async (audioParam, index) => {\n const nativeConstantSourceNode = createNativeConstantSourceNode(partialOfflineAudioContext, {\n channelCount: 1,\n channelCountMode: 'explicit',\n channelInterpretation: 'discrete',\n offset: index === 0 ? 1 : 0\n });\n\n await renderAutomation(partialOfflineAudioContext, audioParam, nativeConstantSourceNode.offset);\n\n return nativeConstantSourceNode;\n })\n );\n\n for (let i = 0; i < 6; i += 1) {\n nativeConstantSourceNodes[i].connect(nativeChannelMergerNode, 0, i);\n nativeConstantSourceNodes[i].start(0);\n }\n\n return renderNativeOfflineAudioContext(partialOfflineAudioContext);\n })();\n }\n\n const renderedBuffer = await renderedBufferPromise;\n const inputGainNode = createNativeGainNode(nativeOfflineAudioContext, { ...commonAudioNodeOptions, gain: 1 });\n\n await renderInputsOfAudioNode(proxy, nativeOfflineAudioContext, inputGainNode);\n\n const channelDatas: Float32Array[] = [];\n\n for (let i = 0; i < renderedBuffer.numberOfChannels; i += 1) {\n channelDatas.push(renderedBuffer.getChannelData(i));\n }\n\n let lastOrientation = [channelDatas[0][0], channelDatas[1][0], channelDatas[2][0]];\n let lastPosition = [channelDatas[3][0], channelDatas[4][0], channelDatas[5][0]];\n let gateGainNode = createNativeGainNode(nativeOfflineAudioContext, { ...commonAudioNodeOptions, gain: 1 });\n let partialPannerNode = createNativePannerNode(nativeOfflineAudioContext, {\n ...commonNativePannerNodeOptions,\n orientationX: lastOrientation[0],\n orientationY: lastOrientation[1],\n orientationZ: lastOrientation[2],\n positionX: lastPosition[0],\n positionY: lastPosition[1],\n positionZ: lastPosition[2]\n });\n\n inputGainNode.connect(gateGainNode).connect((partialPannerNode).inputs[0]);\n partialPannerNode.connect(nativeGainNode);\n\n for (let i = 128; i < renderedBuffer.length; i += 128) {\n const orientation: [number, number, number] = [channelDatas[0][i], channelDatas[1][i], channelDatas[2][i]];\n const positon: [number, number, number] = [channelDatas[3][i], channelDatas[4][i], channelDatas[5][i]];\n\n if (\n orientation.some((value, index) => value !== lastOrientation[index]) ||\n positon.some((value, index) => value !== lastPosition[index])\n ) {\n lastOrientation = orientation;\n lastPosition = positon;\n\n const currentTime = i / nativeOfflineAudioContext.sampleRate;\n\n gateGainNode.gain.setValueAtTime(0, currentTime);\n\n gateGainNode = createNativeGainNode(nativeOfflineAudioContext, { ...commonAudioNodeOptions, gain: 0 });\n partialPannerNode = createNativePannerNode(nativeOfflineAudioContext, {\n ...commonNativePannerNodeOptions,\n orientationX: lastOrientation[0],\n orientationY: lastOrientation[1],\n orientationZ: lastOrientation[2],\n positionX: lastPosition[0],\n positionY: lastPosition[1],\n positionZ: lastPosition[2]\n });\n\n gateGainNode.gain.setValueAtTime(1, currentTime);\n\n inputGainNode.connect(gateGainNode).connect((partialPannerNode).inputs[0]);\n partialPannerNode.connect(nativeGainNode);\n }\n }\n\n return nativeGainNode;\n }\n\n if (!nativePannerNodeIsOwnedByContext) {\n await renderAutomation(nativeOfflineAudioContext, proxy.orientationX, nativePannerNode.orientationX);\n await renderAutomation(nativeOfflineAudioContext, proxy.orientationY, nativePannerNode.orientationY);\n await renderAutomation(nativeOfflineAudioContext, proxy.orientationZ, nativePannerNode.orientationZ);\n await renderAutomation(nativeOfflineAudioContext, proxy.positionX, nativePannerNode.positionX);\n await renderAutomation(nativeOfflineAudioContext, proxy.positionY, nativePannerNode.positionY);\n await renderAutomation(nativeOfflineAudioContext, proxy.positionZ, nativePannerNode.positionZ);\n } else {\n await connectAudioParam(nativeOfflineAudioContext, proxy.orientationX, nativePannerNode.orientationX);\n await connectAudioParam(nativeOfflineAudioContext, proxy.orientationY, nativePannerNode.orientationY);\n await connectAudioParam(nativeOfflineAudioContext, proxy.orientationZ, nativePannerNode.orientationZ);\n await connectAudioParam(nativeOfflineAudioContext, proxy.positionX, nativePannerNode.positionX);\n await connectAudioParam(nativeOfflineAudioContext, proxy.positionY, nativePannerNode.positionY);\n await connectAudioParam(nativeOfflineAudioContext, proxy.positionZ, nativePannerNode.positionZ);\n }\n\n if (isNativeAudioNodeFaker(nativePannerNode)) {\n await renderInputsOfAudioNode(proxy, nativeOfflineAudioContext, nativePannerNode.inputs[0]);\n } else {\n await renderInputsOfAudioNode(proxy, nativeOfflineAudioContext, nativePannerNode);\n }\n\n return nativePannerNode;\n };\n\n return {\n render(\n proxy: IPannerNode,\n nativeOfflineAudioContext: TNativeOfflineAudioContext\n ): Promise {\n const renderedNativeGainNodeOrNativePannerNode = renderedNativeAudioNodes.get(nativeOfflineAudioContext);\n\n if (renderedNativeGainNodeOrNativePannerNode !== undefined) {\n return Promise.resolve(renderedNativeGainNodeOrNativePannerNode);\n }\n\n return createAudioNode(proxy, nativeOfflineAudioContext);\n }\n };\n };\n};\n","import { TNativePeriodicWaveFactoryFactory } from '../types';\n\nexport const createNativePeriodicWaveFactory: TNativePeriodicWaveFactoryFactory = (createIndexSizeError) => {\n return (nativeContext, { disableNormalization, imag, real }) => {\n // Bug #180: Safari does not allow to use ordinary arrays.\n const convertedImag = imag instanceof Float32Array ? imag : new Float32Array(imag);\n const convertedReal = real instanceof Float32Array ? real : new Float32Array(real);\n\n const nativePeriodicWave = nativeContext.createPeriodicWave(convertedReal, convertedImag, { disableNormalization });\n\n // Bug #181: Safari does not throw an IndexSizeError so far if the given arrays have less than two values.\n if (Array.from(imag).length < 2) {\n throw createIndexSizeError();\n }\n\n return nativePeriodicWave;\n };\n};\n","import { TSanitizePeriodicWaveOptionsFunction } from '../types';\n\nexport const sanitizePeriodicWaveOptions: TSanitizePeriodicWaveOptionsFunction = (options) => {\n const { imag, real } = options;\n\n if (imag === undefined) {\n if (real === undefined) {\n return { ...options, imag: [0, 0], real: [0, 0] };\n }\n\n return { ...options, imag: Array.from(real, () => 0), real };\n }\n\n if (real === undefined) {\n return { ...options, imag, real: Array.from(imag, () => 0) };\n }\n\n return { ...options, imag, real };\n};\n","import { interceptConnections } from '../helpers/intercept-connections';\nimport { INativeWaveShaperNodeFaker } from '../interfaces';\nimport {\n TNativeAudioNode,\n TNativeChannelMergerNode,\n TNativeContext,\n TNativeGainNode,\n TNativeStereoPannerNode,\n TNativeStereoPannerNodeFakerFactoryFactory\n} from '../types';\n\nexport const createNativeStereoPannerNodeFakerFactory: TNativeStereoPannerNodeFakerFactoryFactory = (\n createNativeChannelMergerNode,\n createNativeChannelSplitterNode,\n createNativeGainNode,\n createNativeWaveShaperNode,\n createNotSupportedError,\n monitorConnections\n) => {\n // The curve has a size of 14bit plus 1 value to have an exact representation for zero. This value has been determined experimentally.\n const CURVE_SIZE = 16385;\n const DC_CURVE = new Float32Array([1, 1]);\n const HALF_PI = Math.PI / 2;\n const SINGLE_CHANNEL_OPTIONS = { channelCount: 1, channelCountMode: 'explicit', channelInterpretation: 'discrete' } as const;\n const SINGLE_CHANNEL_WAVE_SHAPER_OPTIONS = { ...SINGLE_CHANNEL_OPTIONS, oversample: 'none' } as const;\n\n const buildInternalGraphForMono = (\n nativeContext: TNativeContext,\n inputGainNode: TNativeGainNode,\n panGainNode: TNativeGainNode,\n channelMergerNode: TNativeChannelMergerNode\n ) => {\n const leftWaveShaperCurve = new Float32Array(CURVE_SIZE);\n const rightWaveShaperCurve = new Float32Array(CURVE_SIZE);\n\n for (let i = 0; i < CURVE_SIZE; i += 1) {\n const x = (i / (CURVE_SIZE - 1)) * HALF_PI;\n\n leftWaveShaperCurve[i] = Math.cos(x);\n rightWaveShaperCurve[i] = Math.sin(x);\n }\n\n const leftGainNode = createNativeGainNode(nativeContext, { ...SINGLE_CHANNEL_OPTIONS, gain: 0 });\n // Bug #119: Safari does not fully support the WaveShaperNode.\n const leftWaveShaperNode = (\n createNativeWaveShaperNode(nativeContext, { ...SINGLE_CHANNEL_WAVE_SHAPER_OPTIONS, curve: leftWaveShaperCurve })\n );\n // Bug #119: Safari does not fully support the WaveShaperNode.\n const panWaveShaperNode = (\n createNativeWaveShaperNode(nativeContext, { ...SINGLE_CHANNEL_WAVE_SHAPER_OPTIONS, curve: DC_CURVE })\n );\n const rightGainNode = createNativeGainNode(nativeContext, { ...SINGLE_CHANNEL_OPTIONS, gain: 0 });\n // Bug #119: Safari does not fully support the WaveShaperNode.\n const rightWaveShaperNode = (\n createNativeWaveShaperNode(nativeContext, { ...SINGLE_CHANNEL_WAVE_SHAPER_OPTIONS, curve: rightWaveShaperCurve })\n );\n\n return {\n connectGraph(): void {\n inputGainNode.connect(leftGainNode);\n inputGainNode.connect(panWaveShaperNode.inputs === undefined ? panWaveShaperNode : panWaveShaperNode.inputs[0]);\n inputGainNode.connect(rightGainNode);\n\n panWaveShaperNode.connect(panGainNode);\n\n panGainNode.connect(leftWaveShaperNode.inputs === undefined ? leftWaveShaperNode : leftWaveShaperNode.inputs[0]);\n panGainNode.connect(rightWaveShaperNode.inputs === undefined ? rightWaveShaperNode : rightWaveShaperNode.inputs[0]);\n\n leftWaveShaperNode.connect(leftGainNode.gain);\n rightWaveShaperNode.connect(rightGainNode.gain);\n\n leftGainNode.connect(channelMergerNode, 0, 0);\n rightGainNode.connect(channelMergerNode, 0, 1);\n },\n disconnectGraph(): void {\n inputGainNode.disconnect(leftGainNode);\n inputGainNode.disconnect(panWaveShaperNode.inputs === undefined ? panWaveShaperNode : panWaveShaperNode.inputs[0]);\n inputGainNode.disconnect(rightGainNode);\n\n panWaveShaperNode.disconnect(panGainNode);\n\n panGainNode.disconnect(leftWaveShaperNode.inputs === undefined ? leftWaveShaperNode : leftWaveShaperNode.inputs[0]);\n panGainNode.disconnect(rightWaveShaperNode.inputs === undefined ? rightWaveShaperNode : rightWaveShaperNode.inputs[0]);\n\n leftWaveShaperNode.disconnect(leftGainNode.gain);\n rightWaveShaperNode.disconnect(rightGainNode.gain);\n\n leftGainNode.disconnect(channelMergerNode, 0, 0);\n rightGainNode.disconnect(channelMergerNode, 0, 1);\n }\n };\n };\n\n const buildInternalGraphForStereo = (\n nativeContext: TNativeContext,\n inputGainNode: TNativeGainNode,\n panGainNode: TNativeGainNode,\n channelMergerNode: TNativeChannelMergerNode\n ) => {\n const leftInputForLeftOutputWaveShaperCurve = new Float32Array(CURVE_SIZE);\n const leftInputForRightOutputWaveShaperCurve = new Float32Array(CURVE_SIZE);\n const rightInputForLeftOutputWaveShaperCurve = new Float32Array(CURVE_SIZE);\n const rightInputForRightOutputWaveShaperCurve = new Float32Array(CURVE_SIZE);\n\n const centerIndex = Math.floor(CURVE_SIZE / 2);\n\n for (let i = 0; i < CURVE_SIZE; i += 1) {\n if (i > centerIndex) {\n const x = ((i - centerIndex) / (CURVE_SIZE - 1 - centerIndex)) * HALF_PI;\n\n leftInputForLeftOutputWaveShaperCurve[i] = Math.cos(x);\n leftInputForRightOutputWaveShaperCurve[i] = Math.sin(x);\n rightInputForLeftOutputWaveShaperCurve[i] = 0;\n rightInputForRightOutputWaveShaperCurve[i] = 1;\n } else {\n const x = (i / (CURVE_SIZE - 1 - centerIndex)) * HALF_PI;\n\n leftInputForLeftOutputWaveShaperCurve[i] = 1;\n leftInputForRightOutputWaveShaperCurve[i] = 0;\n rightInputForLeftOutputWaveShaperCurve[i] = Math.cos(x);\n rightInputForRightOutputWaveShaperCurve[i] = Math.sin(x);\n }\n }\n\n const channelSplitterNode = createNativeChannelSplitterNode(nativeContext, {\n channelCount: 2,\n channelCountMode: 'explicit',\n channelInterpretation: 'discrete',\n numberOfOutputs: 2\n });\n const leftInputForLeftOutputGainNode = createNativeGainNode(nativeContext, { ...SINGLE_CHANNEL_OPTIONS, gain: 0 });\n // Bug #119: Safari does not fully support the WaveShaperNode.\n const leftInputForLeftOutputWaveShaperNode = createNativeWaveShaperNode(nativeContext, {\n ...SINGLE_CHANNEL_WAVE_SHAPER_OPTIONS,\n curve: leftInputForLeftOutputWaveShaperCurve\n });\n const leftInputForRightOutputGainNode = createNativeGainNode(nativeContext, { ...SINGLE_CHANNEL_OPTIONS, gain: 0 });\n // Bug #119: Safari does not fully support the WaveShaperNode.\n const leftInputForRightOutputWaveShaperNode = createNativeWaveShaperNode(nativeContext, {\n ...SINGLE_CHANNEL_WAVE_SHAPER_OPTIONS,\n curve: leftInputForRightOutputWaveShaperCurve\n });\n // Bug #119: Safari does not fully support the WaveShaperNode.\n const panWaveShaperNode = (\n createNativeWaveShaperNode(nativeContext, { ...SINGLE_CHANNEL_WAVE_SHAPER_OPTIONS, curve: DC_CURVE })\n );\n const rightInputForLeftOutputGainNode = createNativeGainNode(nativeContext, { ...SINGLE_CHANNEL_OPTIONS, gain: 0 });\n // Bug #119: Safari does not fully support the WaveShaperNode.\n const rightInputForLeftOutputWaveShaperNode = createNativeWaveShaperNode(nativeContext, {\n ...SINGLE_CHANNEL_WAVE_SHAPER_OPTIONS,\n curve: rightInputForLeftOutputWaveShaperCurve\n });\n const rightInputForRightOutputGainNode = createNativeGainNode(nativeContext, { ...SINGLE_CHANNEL_OPTIONS, gain: 0 });\n // Bug #119: Safari does not fully support the WaveShaperNode.\n const rightInputForRightOutputWaveShaperNode = createNativeWaveShaperNode(nativeContext, {\n ...SINGLE_CHANNEL_WAVE_SHAPER_OPTIONS,\n curve: rightInputForRightOutputWaveShaperCurve\n });\n\n return {\n connectGraph(): void {\n inputGainNode.connect(channelSplitterNode);\n inputGainNode.connect(panWaveShaperNode.inputs === undefined ? panWaveShaperNode : panWaveShaperNode.inputs[0]);\n\n channelSplitterNode.connect(leftInputForLeftOutputGainNode, 0);\n channelSplitterNode.connect(leftInputForRightOutputGainNode, 0);\n channelSplitterNode.connect(rightInputForLeftOutputGainNode, 1);\n channelSplitterNode.connect(rightInputForRightOutputGainNode, 1);\n\n panWaveShaperNode.connect(panGainNode);\n\n panGainNode.connect(\n leftInputForLeftOutputWaveShaperNode.inputs === undefined\n ? leftInputForLeftOutputWaveShaperNode\n : leftInputForLeftOutputWaveShaperNode.inputs[0]\n );\n panGainNode.connect(\n leftInputForRightOutputWaveShaperNode.inputs === undefined\n ? leftInputForRightOutputWaveShaperNode\n : leftInputForRightOutputWaveShaperNode.inputs[0]\n );\n panGainNode.connect(\n rightInputForLeftOutputWaveShaperNode.inputs === undefined\n ? rightInputForLeftOutputWaveShaperNode\n : rightInputForLeftOutputWaveShaperNode.inputs[0]\n );\n panGainNode.connect(\n rightInputForRightOutputWaveShaperNode.inputs === undefined\n ? rightInputForRightOutputWaveShaperNode\n : rightInputForRightOutputWaveShaperNode.inputs[0]\n );\n\n leftInputForLeftOutputWaveShaperNode.connect(leftInputForLeftOutputGainNode.gain);\n leftInputForRightOutputWaveShaperNode.connect(leftInputForRightOutputGainNode.gain);\n rightInputForLeftOutputWaveShaperNode.connect(rightInputForLeftOutputGainNode.gain);\n rightInputForRightOutputWaveShaperNode.connect(rightInputForRightOutputGainNode.gain);\n\n leftInputForLeftOutputGainNode.connect(channelMergerNode, 0, 0);\n rightInputForLeftOutputGainNode.connect(channelMergerNode, 0, 0);\n\n leftInputForRightOutputGainNode.connect(channelMergerNode, 0, 1);\n rightInputForRightOutputGainNode.connect(channelMergerNode, 0, 1);\n },\n disconnectGraph(): void {\n inputGainNode.disconnect(channelSplitterNode);\n inputGainNode.disconnect(panWaveShaperNode.inputs === undefined ? panWaveShaperNode : panWaveShaperNode.inputs[0]);\n\n channelSplitterNode.disconnect(leftInputForLeftOutputGainNode, 0);\n channelSplitterNode.disconnect(leftInputForRightOutputGainNode, 0);\n channelSplitterNode.disconnect(rightInputForLeftOutputGainNode, 1);\n channelSplitterNode.disconnect(rightInputForRightOutputGainNode, 1);\n\n panWaveShaperNode.disconnect(panGainNode);\n\n panGainNode.disconnect(\n leftInputForLeftOutputWaveShaperNode.inputs === undefined\n ? leftInputForLeftOutputWaveShaperNode\n : leftInputForLeftOutputWaveShaperNode.inputs[0]\n );\n panGainNode.disconnect(\n leftInputForRightOutputWaveShaperNode.inputs === undefined\n ? leftInputForRightOutputWaveShaperNode\n : leftInputForRightOutputWaveShaperNode.inputs[0]\n );\n panGainNode.disconnect(\n rightInputForLeftOutputWaveShaperNode.inputs === undefined\n ? rightInputForLeftOutputWaveShaperNode\n : rightInputForLeftOutputWaveShaperNode.inputs[0]\n );\n panGainNode.disconnect(\n rightInputForRightOutputWaveShaperNode.inputs === undefined\n ? rightInputForRightOutputWaveShaperNode\n : rightInputForRightOutputWaveShaperNode.inputs[0]\n );\n\n leftInputForLeftOutputWaveShaperNode.disconnect(leftInputForLeftOutputGainNode.gain);\n leftInputForRightOutputWaveShaperNode.disconnect(leftInputForRightOutputGainNode.gain);\n rightInputForLeftOutputWaveShaperNode.disconnect(rightInputForLeftOutputGainNode.gain);\n rightInputForRightOutputWaveShaperNode.disconnect(rightInputForRightOutputGainNode.gain);\n\n leftInputForLeftOutputGainNode.disconnect(channelMergerNode, 0, 0);\n rightInputForLeftOutputGainNode.disconnect(channelMergerNode, 0, 0);\n\n leftInputForRightOutputGainNode.disconnect(channelMergerNode, 0, 1);\n rightInputForRightOutputGainNode.disconnect(channelMergerNode, 0, 1);\n }\n };\n };\n\n const buildInternalGraph = (\n nativeContext: TNativeContext,\n channelCount: number,\n inputGainNode: TNativeGainNode,\n panGainNode: TNativeGainNode,\n channelMergerNode: TNativeChannelMergerNode\n ) => {\n if (channelCount === 1) {\n return buildInternalGraphForMono(nativeContext, inputGainNode, panGainNode, channelMergerNode);\n }\n\n if (channelCount === 2) {\n return buildInternalGraphForStereo(nativeContext, inputGainNode, panGainNode, channelMergerNode);\n }\n\n throw createNotSupportedError();\n };\n\n return (nativeContext, { channelCount, channelCountMode, pan, ...audioNodeOptions }) => {\n if (channelCountMode === 'max') {\n throw createNotSupportedError();\n }\n\n const channelMergerNode = createNativeChannelMergerNode(nativeContext, {\n ...audioNodeOptions,\n channelCount: 1,\n channelCountMode,\n numberOfInputs: 2\n });\n const inputGainNode = createNativeGainNode(nativeContext, { ...audioNodeOptions, channelCount, channelCountMode, gain: 1 });\n const panGainNode = createNativeGainNode(nativeContext, {\n channelCount: 1,\n channelCountMode: 'explicit',\n channelInterpretation: 'discrete',\n gain: pan\n });\n\n let { connectGraph, disconnectGraph } = buildInternalGraph(\n nativeContext,\n channelCount,\n inputGainNode,\n panGainNode,\n channelMergerNode\n );\n\n Object.defineProperty(panGainNode.gain, 'defaultValue', { get: () => 0 });\n Object.defineProperty(panGainNode.gain, 'maxValue', { get: () => 1 });\n Object.defineProperty(panGainNode.gain, 'minValue', { get: () => -1 });\n\n const nativeStereoPannerNodeFakerFactory = {\n get bufferSize(): undefined {\n return undefined;\n },\n get channelCount(): number {\n return inputGainNode.channelCount;\n },\n set channelCount(value) {\n if (inputGainNode.channelCount !== value) {\n if (isConnected) {\n disconnectGraph();\n }\n\n ({ connectGraph, disconnectGraph } = buildInternalGraph(\n nativeContext,\n value,\n inputGainNode,\n panGainNode,\n channelMergerNode\n ));\n\n if (isConnected) {\n connectGraph();\n }\n }\n\n inputGainNode.channelCount = value;\n },\n get channelCountMode(): TNativeStereoPannerNode['channelCountMode'] {\n return inputGainNode.channelCountMode;\n },\n set channelCountMode(value) {\n if (value === 'clamped-max' || value === 'max') {\n throw createNotSupportedError();\n }\n\n inputGainNode.channelCountMode = value;\n },\n get channelInterpretation(): TNativeStereoPannerNode['channelInterpretation'] {\n return inputGainNode.channelInterpretation;\n },\n set channelInterpretation(value) {\n inputGainNode.channelInterpretation = value;\n },\n get context(): TNativeStereoPannerNode['context'] {\n return inputGainNode.context;\n },\n get inputs(): TNativeAudioNode[] {\n return [inputGainNode];\n },\n get numberOfInputs(): number {\n return inputGainNode.numberOfInputs;\n },\n get numberOfOutputs(): number {\n return inputGainNode.numberOfOutputs;\n },\n get pan(): TNativeStereoPannerNode['pan'] {\n return panGainNode.gain;\n },\n addEventListener(...args: any[]): void {\n return inputGainNode.addEventListener(args[0], args[1], args[2]);\n },\n dispatchEvent(...args: any[]): boolean {\n return inputGainNode.dispatchEvent(args[0]);\n },\n removeEventListener(...args: any[]): void {\n return inputGainNode.removeEventListener(args[0], args[1], args[2]);\n }\n };\n\n let isConnected = false;\n\n const whenConnected = () => {\n connectGraph();\n\n isConnected = true;\n };\n const whenDisconnected = () => {\n disconnectGraph();\n\n isConnected = false;\n };\n\n return monitorConnections(\n interceptConnections(nativeStereoPannerNodeFakerFactory, channelMergerNode),\n whenConnected,\n whenDisconnected\n );\n };\n};\n","import { assignNativeAudioNodeAudioParamValue } from '../helpers/assign-native-audio-node-audio-param-value';\nimport { assignNativeAudioNodeOptions } from '../helpers/assign-native-audio-node-options';\nimport { TNativeStereoPannerNodeFactoryFactory } from '../types';\n\nexport const createNativeStereoPannerNodeFactory: TNativeStereoPannerNodeFactoryFactory = (\n createNativeStereoPannerNodeFaker,\n createNotSupportedError\n) => {\n return (nativeContext, options) => {\n const channelCountMode = options.channelCountMode;\n\n /*\n * Bug #105: The channelCountMode of 'clamped-max' should be supported. However it is not possible to write a polyfill for Safari\n * which supports it and therefore it can't be supported at all.\n */\n if (channelCountMode === 'clamped-max') {\n throw createNotSupportedError();\n }\n\n // Bug #105: Safari does not support the StereoPannerNode.\n if (nativeContext.createStereoPanner === undefined) {\n return createNativeStereoPannerNodeFaker(nativeContext, options);\n }\n\n const nativeStereoPannerNode = nativeContext.createStereoPanner();\n\n assignNativeAudioNodeOptions(nativeStereoPannerNode, options);\n\n assignNativeAudioNodeAudioParamValue(nativeStereoPannerNode, options, 'pan');\n\n /*\n * Bug #105: The channelCountMode of 'clamped-max' should be supported. However it is not possible to write a polyfill for Safari\n * which supports it and therefore it can't be supported at all.\n */\n Object.defineProperty(nativeStereoPannerNode, 'channelCountMode', {\n get: () => channelCountMode,\n set: (value) => {\n if (value !== channelCountMode) {\n throw createNotSupportedError();\n }\n }\n });\n\n return nativeStereoPannerNode;\n };\n};\n","import { isNativeAudioNodeFaker } from '../guards/native-audio-node-faker';\nimport { isOwnedByContext } from '../helpers/is-owned-by-context';\nimport { IMinimalOfflineAudioContext, IOfflineAudioContext, IStereoPannerNode } from '../interfaces';\nimport { TNativeOfflineAudioContext, TNativeStereoPannerNode, TStereoPannerNodeRendererFactoryFactory } from '../types';\n\nexport const createStereoPannerNodeRendererFactory: TStereoPannerNodeRendererFactoryFactory = (\n connectAudioParam,\n createNativeStereoPannerNode,\n getNativeAudioNode,\n renderAutomation,\n renderInputsOfAudioNode\n) => {\n return () => {\n const renderedNativeStereoPannerNodes = new WeakMap();\n\n const createStereoPannerNode = async (proxy: IStereoPannerNode, nativeOfflineAudioContext: TNativeOfflineAudioContext) => {\n let nativeStereoPannerNode = getNativeAudioNode(proxy);\n\n /*\n * If the initially used nativeStereoPannerNode was not constructed on the same OfflineAudioContext it needs to be created\n * again.\n */\n const nativeStereoPannerNodeIsOwnedByContext = isOwnedByContext(nativeStereoPannerNode, nativeOfflineAudioContext);\n\n if (!nativeStereoPannerNodeIsOwnedByContext) {\n const options = {\n channelCount: nativeStereoPannerNode.channelCount,\n channelCountMode: nativeStereoPannerNode.channelCountMode,\n channelInterpretation: nativeStereoPannerNode.channelInterpretation,\n pan: nativeStereoPannerNode.pan.value\n };\n\n nativeStereoPannerNode = createNativeStereoPannerNode(nativeOfflineAudioContext, options);\n }\n\n renderedNativeStereoPannerNodes.set(nativeOfflineAudioContext, nativeStereoPannerNode);\n\n if (!nativeStereoPannerNodeIsOwnedByContext) {\n await renderAutomation(nativeOfflineAudioContext, proxy.pan, nativeStereoPannerNode.pan);\n } else {\n await connectAudioParam(nativeOfflineAudioContext, proxy.pan, nativeStereoPannerNode.pan);\n }\n\n if (isNativeAudioNodeFaker(nativeStereoPannerNode)) {\n await renderInputsOfAudioNode(proxy, nativeOfflineAudioContext, nativeStereoPannerNode.inputs[0]);\n } else {\n await renderInputsOfAudioNode(proxy, nativeOfflineAudioContext, nativeStereoPannerNode);\n }\n\n return nativeStereoPannerNode;\n };\n\n return {\n render(proxy: IStereoPannerNode, nativeOfflineAudioContext: TNativeOfflineAudioContext): Promise {\n const renderedNativeStereoPannerNode = renderedNativeStereoPannerNodes.get(nativeOfflineAudioContext);\n\n if (renderedNativeStereoPannerNode !== undefined) {\n return Promise.resolve(renderedNativeStereoPannerNode);\n }\n\n return createStereoPannerNode(proxy, nativeOfflineAudioContext);\n }\n };\n };\n};\n","import { isNativeAudioNodeFaker } from '../guards/native-audio-node-faker';\nimport { isOwnedByContext } from '../helpers/is-owned-by-context';\nimport { IMinimalOfflineAudioContext, IOfflineAudioContext, IWaveShaperNode } from '../interfaces';\nimport { TNativeOfflineAudioContext, TNativeWaveShaperNode, TWaveShaperNodeRendererFactoryFactory } from '../types';\n\nexport const createWaveShaperNodeRendererFactory: TWaveShaperNodeRendererFactoryFactory = (\n createNativeWaveShaperNode,\n getNativeAudioNode,\n renderInputsOfAudioNode\n) => {\n return () => {\n const renderedNativeWaveShaperNodes = new WeakMap();\n\n const createWaveShaperNode = async (proxy: IWaveShaperNode, nativeOfflineAudioContext: TNativeOfflineAudioContext) => {\n let nativeWaveShaperNode = getNativeAudioNode(proxy);\n\n // If the initially used nativeWaveShaperNode was not constructed on the same OfflineAudioContext it needs to be created again.\n const nativeWaveShaperNodeIsOwnedByContext = isOwnedByContext(nativeWaveShaperNode, nativeOfflineAudioContext);\n\n if (!nativeWaveShaperNodeIsOwnedByContext) {\n const options = {\n channelCount: nativeWaveShaperNode.channelCount,\n channelCountMode: nativeWaveShaperNode.channelCountMode,\n channelInterpretation: nativeWaveShaperNode.channelInterpretation,\n curve: nativeWaveShaperNode.curve,\n oversample: nativeWaveShaperNode.oversample\n };\n\n nativeWaveShaperNode = createNativeWaveShaperNode(nativeOfflineAudioContext, options);\n }\n\n renderedNativeWaveShaperNodes.set(nativeOfflineAudioContext, nativeWaveShaperNode);\n\n if (isNativeAudioNodeFaker(nativeWaveShaperNode)) {\n await renderInputsOfAudioNode(proxy, nativeOfflineAudioContext, nativeWaveShaperNode.inputs[0]);\n } else {\n await renderInputsOfAudioNode(proxy, nativeOfflineAudioContext, nativeWaveShaperNode);\n }\n\n return nativeWaveShaperNode;\n };\n\n return {\n render(proxy: IWaveShaperNode, nativeOfflineAudioContext: TNativeOfflineAudioContext): Promise {\n const renderedNativeWaveShaperNode = renderedNativeWaveShaperNodes.get(nativeOfflineAudioContext);\n\n if (renderedNativeWaveShaperNode !== undefined) {\n return Promise.resolve(renderedNativeWaveShaperNode);\n }\n\n return createWaveShaperNode(proxy, nativeOfflineAudioContext);\n }\n };\n };\n};\n","import { TIsSecureContextFactory } from '../types';\n\nexport const createIsSecureContext: TIsSecureContextFactory = (window) => window !== null && window.isSecureContext;\n","import { TExposeCurrentFrameAndCurrentTimeFactory } from '../types';\n\nexport const createExposeCurrentFrameAndCurrentTime: TExposeCurrentFrameAndCurrentTimeFactory = (window) => {\n return (currentTime, sampleRate, fn) => {\n Object.defineProperties(window, {\n currentFrame: {\n configurable: true,\n get(): number {\n return Math.round(currentTime * sampleRate);\n }\n },\n currentTime: {\n configurable: true,\n get(): number {\n return currentTime;\n }\n }\n });\n\n try {\n return fn();\n } finally {\n if (window !== null) {\n delete (window).currentFrame;\n delete (window).currentTime;\n }\n }\n };\n};\n","import { TGetOrCreateBackupOfflineAudioContextFactory } from '../types';\n\nexport const createGetOrCreateBackupOfflineAudioContext: TGetOrCreateBackupOfflineAudioContextFactory = (\n backupOfflineAudioContextStore,\n nativeOfflineAudioContextConstructor\n) => {\n return (nativeContext) => {\n let backupOfflineAudioContext = backupOfflineAudioContextStore.get(nativeContext);\n\n if (backupOfflineAudioContext !== undefined) {\n return backupOfflineAudioContext;\n }\n\n if (nativeOfflineAudioContextConstructor === null) {\n throw new Error('Missing the native OfflineAudioContext constructor.');\n }\n\n // Bug #141: Safari does not support creating an OfflineAudioContext with less than 44100 Hz.\n backupOfflineAudioContext = new nativeOfflineAudioContextConstructor(1, 1, 44100);\n\n backupOfflineAudioContextStore.set(nativeContext, backupOfflineAudioContext);\n\n return backupOfflineAudioContext;\n };\n};\n","import { TEvaluateSourceFactory } from '../types';\n\nexport const createEvaluateSource: TEvaluateSourceFactory = (window) => {\n return (source) =>\n new Promise((resolve, reject) => {\n if (window === null) {\n // Bug #182 Chrome and Edge do throw an instance of a SyntaxError instead of a DOMException.\n reject(new SyntaxError());\n\n return;\n }\n\n const head = window.document.head;\n\n if (head === null) {\n // Bug #182 Chrome and Edge do throw an instance of a SyntaxError instead of a DOMException.\n reject(new SyntaxError());\n } else {\n const script = window.document.createElement('script');\n // @todo Safari doesn't like URLs with a type of 'application/javascript; charset=utf-8'.\n const blob = new Blob([source], { type: 'application/javascript' });\n const url = URL.createObjectURL(blob);\n\n const originalOnErrorHandler = window.onerror;\n\n const removeErrorEventListenerAndRevokeUrl = () => {\n window.onerror = originalOnErrorHandler;\n\n URL.revokeObjectURL(url);\n };\n\n window.onerror = (message, src, lineno, colno, error) => {\n // @todo Edge thinks the source is the one of the html document.\n if (src === url || (src === window.location.href && lineno === 1 && colno === 1)) {\n removeErrorEventListenerAndRevokeUrl();\n reject(error);\n\n return false;\n }\n\n if (originalOnErrorHandler !== null) {\n return originalOnErrorHandler(message, src, lineno, colno, error);\n }\n };\n\n script.onerror = () => {\n removeErrorEventListenerAndRevokeUrl();\n // Bug #182 Chrome and Edge do throw an instance of a SyntaxError instead of a DOMException.\n reject(new SyntaxError());\n };\n script.onload = () => {\n removeErrorEventListenerAndRevokeUrl();\n resolve();\n };\n script.src = url;\n script.type = 'module';\n\n head.appendChild(script);\n }\n });\n};\n","import { TFetchSourceFactory } from '../types';\n\nexport const createFetchSource: TFetchSourceFactory = (createAbortError) => {\n return async (url) => {\n try {\n const response = await fetch(url);\n\n if (response.ok) {\n return [await response.text(), response.url];\n }\n } catch {\n // Ignore errors.\n } // tslint:disable-line:no-empty\n\n throw createAbortError();\n };\n};\n","import { TAbortErrorFactory } from '../types';\n\nexport const createAbortError: TAbortErrorFactory = () => new DOMException('', 'AbortError');\n","import { TTestAudioWorkletProcessorPostMessageSupportFactory } from '../types';\n\n// Bug #179: Firefox does not allow to transfer any buffer which has been passed to the process() method as an argument.\nexport const createTestAudioWorkletProcessorPostMessageSupport: TTestAudioWorkletProcessorPostMessageSupportFactory = (\n nativeAudioWorkletNodeConstructor,\n nativeOfflineAudioContextConstructor\n) => {\n return async () => {\n // Bug #61: If there is no native AudioWorkletNode it gets faked and therefore it is no problem if the it doesn't exist.\n if (nativeAudioWorkletNodeConstructor === null) {\n return true;\n }\n\n if (nativeOfflineAudioContextConstructor === null) {\n return false;\n }\n\n const blob = new Blob(\n ['class A extends AudioWorkletProcessor{process(i){this.port.postMessage(i,[i[0][0].buffer])}}registerProcessor(\"a\",A)'],\n {\n type: 'application/javascript; charset=utf-8'\n }\n );\n // Bug #141: Safari does not support creating an OfflineAudioContext with less than 44100 Hz.\n const offlineAudioContext = new nativeOfflineAudioContextConstructor(1, 128, 44100);\n const url = URL.createObjectURL(blob);\n\n let isEmittingMessageEvents = false;\n let isEmittingProcessorErrorEvents = false;\n\n try {\n await offlineAudioContext.audioWorklet.addModule(url);\n\n const audioWorkletNode = new nativeAudioWorkletNodeConstructor(offlineAudioContext, 'a', { numberOfOutputs: 0 });\n const oscillator = offlineAudioContext.createOscillator();\n\n audioWorkletNode.port.onmessage = () => (isEmittingMessageEvents = true);\n audioWorkletNode.onprocessorerror = () => (isEmittingProcessorErrorEvents = true);\n\n oscillator.connect(audioWorkletNode);\n oscillator.start(0);\n\n await offlineAudioContext.startRendering();\n } catch {\n // Ignore errors.\n } finally {\n URL.revokeObjectURL(url);\n }\n\n return isEmittingMessageEvents && !isEmittingProcessorErrorEvents;\n };\n};\n","import { TIsNativeContextFactory, TNativeAudioContext } from '../types';\n\nexport const createIsNativeContext: TIsNativeContextFactory = (isNativeAudioContext, isNativeOfflineAudioContext) => {\n return (anything): anything is TNativeAudioContext => {\n return isNativeAudioContext(anything) || isNativeOfflineAudioContext(anything);\n };\n};\n","import { detachArrayBuffer } from '../helpers/detach-array-buffer';\nimport { wrapAudioBufferGetChannelDataMethod } from '../helpers/wrap-audio-buffer-get-channel-data-method';\nimport { TDecodeAudioDataFactory } from '../types';\n\nexport const createDecodeAudioData: TDecodeAudioDataFactory = (\n audioBufferStore,\n cacheTestResult,\n createDataCloneError,\n createEncodingError,\n detachedArrayBuffers,\n getNativeContext,\n isNativeContext,\n testAudioBufferCopyChannelMethodsOutOfBoundsSupport,\n testPromiseSupport,\n wrapAudioBufferCopyChannelMethods,\n wrapAudioBufferCopyChannelMethodsOutOfBounds\n) => {\n return (anyContext, audioData) => {\n const nativeContext = isNativeContext(anyContext) ? anyContext : getNativeContext(anyContext);\n\n // Bug #43: Only Chrome and Edge do throw a DataCloneError.\n if (detachedArrayBuffers.has(audioData)) {\n const err = createDataCloneError();\n\n return Promise.reject(err);\n }\n\n // The audioData parameter maybe of a type which can't be added to a WeakSet.\n try {\n detachedArrayBuffers.add(audioData);\n } catch {\n // Ignore errors.\n }\n\n // Bug #21: Safari does not support promises yet.\n if (cacheTestResult(testPromiseSupport, () => testPromiseSupport(nativeContext))) {\n return nativeContext.decodeAudioData(audioData).then((audioBuffer) => {\n // Bug #133: Safari does neuter the ArrayBuffer.\n detachArrayBuffer(audioData).catch(() => {\n // Ignore errors.\n });\n\n // Bug #157: Firefox does not allow the bufferOffset to be out-of-bounds.\n if (\n !cacheTestResult(testAudioBufferCopyChannelMethodsOutOfBoundsSupport, () =>\n testAudioBufferCopyChannelMethodsOutOfBoundsSupport(audioBuffer)\n )\n ) {\n wrapAudioBufferCopyChannelMethodsOutOfBounds(audioBuffer);\n }\n\n audioBufferStore.add(audioBuffer);\n\n return audioBuffer;\n });\n }\n\n // Bug #21: Safari does not return a Promise yet.\n return new Promise((resolve, reject) => {\n const complete = async () => {\n // Bug #133: Safari does neuter the ArrayBuffer.\n try {\n await detachArrayBuffer(audioData);\n } catch {\n // Ignore errors.\n }\n };\n\n const fail = (err: DOMException | Error) => {\n reject(err);\n complete();\n };\n\n // Bug #26: Safari throws a synchronous error.\n try {\n // Bug #1: Safari requires a successCallback.\n nativeContext.decodeAudioData(\n audioData,\n (audioBuffer) => {\n // Bug #5: Safari does not support copyFromChannel() and copyToChannel().\n // Bug #100: Safari does throw a wrong error when calling getChannelData() with an out-of-bounds value.\n if (typeof audioBuffer.copyFromChannel !== 'function') {\n wrapAudioBufferCopyChannelMethods(audioBuffer);\n wrapAudioBufferGetChannelDataMethod(audioBuffer);\n }\n\n audioBufferStore.add(audioBuffer);\n\n complete().then(() => resolve(audioBuffer));\n },\n (err: DOMException | Error) => {\n // Bug #4: Safari returns null instead of an error.\n if (err === null) {\n fail(createEncodingError());\n } else {\n fail(err);\n }\n }\n );\n } catch (err) {\n fail(err);\n }\n });\n };\n};\n","import { TDataCloneErrorFactory } from '../types';\n\nexport const createDataCloneError: TDataCloneErrorFactory = () => new DOMException('', 'DataCloneError');\n","import { TEncodingErrorFactory } from '../types';\n\nexport const createEncodingError: TEncodingErrorFactory = () => new DOMException('', 'EncodingError');\n","import {\n IAnalyserNode,\n IAudioBuffer,\n IAudioBufferSourceNode,\n IAudioNode,\n IAudioWorklet,\n IBaseAudioContext,\n IBiquadFilterNode,\n IConstantSourceNode,\n IConvolverNode,\n IDelayNode,\n IDynamicsCompressorNode,\n IGainNode,\n IIIRFilterNode,\n IOscillatorNode,\n IPannerNode,\n IPeriodicWave,\n IPeriodicWaveConstraints,\n IStereoPannerNode,\n IWaveShaperNode,\n IWorkletOptions\n} from '../interfaces';\nimport { TBaseAudioContextConstructorFactory, TContext, TDecodeErrorCallback, TDecodeSuccessCallback, TNativeContext } from '../types';\n\nexport const createBaseAudioContextConstructor: TBaseAudioContextConstructorFactory = (\n addAudioWorkletModule,\n analyserNodeConstructor,\n audioBufferConstructor,\n audioBufferSourceNodeConstructor,\n biquadFilterNodeConstructor,\n channelMergerNodeConstructor,\n channelSplitterNodeConstructor,\n constantSourceNodeConstructor,\n convolverNodeConstructor,\n decodeAudioData,\n delayNodeConstructor,\n dynamicsCompressorNodeConstructor,\n gainNodeConstructor,\n iIRFilterNodeConstructor,\n minimalBaseAudioContextConstructor,\n oscillatorNodeConstructor,\n pannerNodeConstructor,\n periodicWaveConstructor,\n stereoPannerNodeConstructor,\n waveShaperNodeConstructor\n) => {\n return class BaseAudioContext extends minimalBaseAudioContextConstructor implements IBaseAudioContext {\n private _audioWorklet: undefined | IAudioWorklet;\n\n constructor(private _nativeContext: TNativeContext, numberOfChannels: number) {\n super(_nativeContext, numberOfChannels);\n\n this._audioWorklet =\n addAudioWorkletModule === undefined\n ? undefined\n : {\n addModule: (moduleURL: string, options?: IWorkletOptions) => {\n return addAudioWorkletModule((this), moduleURL, options);\n }\n };\n }\n\n get audioWorklet(): undefined | IAudioWorklet {\n return this._audioWorklet;\n }\n\n public createAnalyser(): IAnalyserNode {\n return new analyserNodeConstructor((this));\n }\n\n public createBiquadFilter(): IBiquadFilterNode {\n return new biquadFilterNodeConstructor((this));\n }\n\n public createBuffer(numberOfChannels: number, length: number, sampleRate: number): IAudioBuffer {\n return new audioBufferConstructor({ length, numberOfChannels, sampleRate });\n }\n\n public createBufferSource(): IAudioBufferSourceNode {\n return new audioBufferSourceNodeConstructor((this));\n }\n\n public createChannelMerger(numberOfInputs = 6): IAudioNode {\n return new channelMergerNodeConstructor((this), { numberOfInputs });\n }\n\n public createChannelSplitter(numberOfOutputs = 6): IAudioNode {\n return new channelSplitterNodeConstructor((this), { numberOfOutputs });\n }\n\n public createConstantSource(): IConstantSourceNode {\n return new constantSourceNodeConstructor((this));\n }\n\n public createConvolver(): IConvolverNode {\n return new convolverNodeConstructor((this));\n }\n\n public createDelay(maxDelayTime = 1): IDelayNode {\n return new delayNodeConstructor((this), { maxDelayTime });\n }\n\n public createDynamicsCompressor(): IDynamicsCompressorNode {\n return new dynamicsCompressorNodeConstructor((this));\n }\n\n public createGain(): IGainNode {\n return new gainNodeConstructor((this));\n }\n\n public createIIRFilter(feedforward: Iterable, feedback: Iterable): IIIRFilterNode {\n return new iIRFilterNodeConstructor((this), { feedback, feedforward });\n }\n\n public createOscillator(): IOscillatorNode {\n return new oscillatorNodeConstructor((this));\n }\n\n public createPanner(): IPannerNode {\n return new pannerNodeConstructor((this));\n }\n\n public createPeriodicWave(\n real: Iterable,\n imag: Iterable,\n constraints: Partial = { disableNormalization: false }\n ): IPeriodicWave {\n return new periodicWaveConstructor((this), { ...constraints, imag, real });\n }\n\n public createStereoPanner(): IStereoPannerNode {\n return new stereoPannerNodeConstructor((this));\n }\n\n public createWaveShaper(): IWaveShaperNode {\n return new waveShaperNodeConstructor((this));\n }\n\n public decodeAudioData(\n audioData: ArrayBuffer,\n successCallback?: TDecodeSuccessCallback,\n errorCallback?: TDecodeErrorCallback\n ): Promise {\n return decodeAudioData(this._nativeContext, audioData).then(\n (audioBuffer) => {\n if (typeof successCallback === 'function') {\n successCallback(audioBuffer);\n }\n\n return audioBuffer;\n },\n (err) => {\n if (typeof errorCallback === 'function') {\n errorCallback(err);\n }\n\n throw err;\n }\n );\n }\n };\n};\n","import { IAudioContext, IMediaElementAudioSourceNode, IMediaElementAudioSourceOptions, IMinimalAudioContext } from '../interfaces';\nimport { TAudioNodeRenderer, TMediaElementAudioSourceNodeConstructorFactory, TNativeMediaElementAudioSourceNode } from '../types';\n\nexport const createMediaElementAudioSourceNodeConstructor: TMediaElementAudioSourceNodeConstructorFactory = (\n audioNodeConstructor,\n createNativeMediaElementAudioSourceNode,\n getNativeContext,\n isNativeOfflineAudioContext\n) => {\n return class MediaElementAudioSourceNode extends audioNodeConstructor\n implements IMediaElementAudioSourceNode {\n private _nativeMediaElementAudioSourceNode: TNativeMediaElementAudioSourceNode;\n\n constructor(context: T, options: IMediaElementAudioSourceOptions) {\n const nativeContext = getNativeContext(context);\n const nativeMediaElementAudioSourceNode = createNativeMediaElementAudioSourceNode(nativeContext, options);\n\n // Bug #171: Safari allows to create a MediaElementAudioSourceNode with an OfflineAudioContext.\n if (isNativeOfflineAudioContext(nativeContext)) {\n throw TypeError();\n }\n\n super(context, true, nativeMediaElementAudioSourceNode, >null);\n\n this._nativeMediaElementAudioSourceNode = nativeMediaElementAudioSourceNode;\n }\n\n get mediaElement(): HTMLMediaElement {\n return this._nativeMediaElementAudioSourceNode.mediaElement;\n }\n };\n};\n","import { TNativeMediaElementAudioSourceNodeFactory } from '../types';\n\nexport const createNativeMediaElementAudioSourceNode: TNativeMediaElementAudioSourceNodeFactory = (nativeAudioContext, options) => {\n return nativeAudioContext.createMediaElementSource(options.mediaElement);\n};\n","import { assignNativeAudioNodeOptions } from '../helpers/assign-native-audio-node-options';\nimport { TNativeMediaStreamAudioDestinationNodeFactory } from '../types';\n\nexport const createNativeMediaStreamAudioDestinationNode: TNativeMediaStreamAudioDestinationNodeFactory = (nativeAudioContext, options) => {\n const nativeMediaStreamAudioDestinationNode = nativeAudioContext.createMediaStreamDestination();\n\n assignNativeAudioNodeOptions(nativeMediaStreamAudioDestinationNode, options);\n\n // Bug #174: Safari does expose a wrong numberOfOutputs.\n if (nativeMediaStreamAudioDestinationNode.numberOfOutputs === 1) {\n Object.defineProperty(nativeMediaStreamAudioDestinationNode, 'numberOfOutputs', { get: () => 0 });\n }\n\n return nativeMediaStreamAudioDestinationNode;\n};\n","import { IAudioContext, IMediaStreamAudioSourceNode, IMediaStreamAudioSourceOptions, IMinimalAudioContext } from '../interfaces';\nimport { TAudioNodeRenderer, TMediaStreamAudioSourceNodeConstructorFactory, TNativeMediaStreamAudioSourceNode } from '../types';\n\nexport const createMediaStreamAudioSourceNodeConstructor: TMediaStreamAudioSourceNodeConstructorFactory = (\n audioNodeConstructor,\n createNativeMediaStreamAudioSourceNode,\n getNativeContext,\n isNativeOfflineAudioContext\n) => {\n return class MediaStreamAudioSourceNode extends audioNodeConstructor\n implements IMediaStreamAudioSourceNode {\n private _nativeMediaStreamAudioSourceNode: TNativeMediaStreamAudioSourceNode;\n\n constructor(context: T, options: IMediaStreamAudioSourceOptions) {\n const nativeContext = getNativeContext(context);\n const nativeMediaStreamAudioSourceNode = createNativeMediaStreamAudioSourceNode(nativeContext, options);\n\n // Bug #172: Safari allows to create a MediaStreamAudioSourceNode with an OfflineAudioContext.\n if (isNativeOfflineAudioContext(nativeContext)) {\n throw new TypeError();\n }\n\n super(context, true, nativeMediaStreamAudioSourceNode, >null);\n\n this._nativeMediaStreamAudioSourceNode = nativeMediaStreamAudioSourceNode;\n }\n\n get mediaStream(): MediaStream {\n return this._nativeMediaStreamAudioSourceNode.mediaStream;\n }\n };\n};\n","import { TNativeMediaStreamAudioSourceNodeFactory } from '../types';\n\nexport const createNativeMediaStreamAudioSourceNode: TNativeMediaStreamAudioSourceNodeFactory = (nativeAudioContext, { mediaStream }) => {\n const audioStreamTracks = mediaStream.getAudioTracks();\n /*\n * Bug #151: Safari does not use the audio track as input anymore if it gets removed from the mediaStream after construction.\n * Bug #159: Safari picks the first audio track if the MediaStream has more than one audio track.\n */\n audioStreamTracks.sort((a, b) => (a.id < b.id ? -1 : a.id > b.id ? 1 : 0));\n\n const filteredAudioStreamTracks = audioStreamTracks.slice(0, 1);\n\n const nativeMediaStreamAudioSourceNode = nativeAudioContext.createMediaStreamSource(new MediaStream(filteredAudioStreamTracks));\n\n /*\n * Bug #151 & #159: The given mediaStream gets reconstructed before it gets passed to the native node which is why the accessor needs\n * to be overwritten as it would otherwise expose the reconstructed version.\n */\n Object.defineProperty(nativeMediaStreamAudioSourceNode, 'mediaStream', { value: mediaStream });\n\n return nativeMediaStreamAudioSourceNode;\n};\n","import { TNativeMediaStreamTrackAudioSourceNodeFactoryFactory } from '../types';\n\nexport const createNativeMediaStreamTrackAudioSourceNodeFactory: TNativeMediaStreamTrackAudioSourceNodeFactoryFactory = (\n createInvalidStateError,\n isNativeOfflineAudioContext\n) => {\n return (nativeAudioContext, { mediaStreamTrack }) => {\n // Bug #121: Only Firefox does yet support the MediaStreamTrackAudioSourceNode.\n if (typeof nativeAudioContext.createMediaStreamTrackSource === 'function') {\n return nativeAudioContext.createMediaStreamTrackSource(mediaStreamTrack);\n }\n\n const mediaStream = new MediaStream([mediaStreamTrack]);\n const nativeMediaStreamAudioSourceNode = nativeAudioContext.createMediaStreamSource(mediaStream);\n\n // Bug #120: Firefox does not throw an error if the mediaStream has no audio track.\n if (mediaStreamTrack.kind !== 'audio') {\n throw createInvalidStateError();\n }\n\n // Bug #172: Safari allows to create a MediaStreamAudioSourceNode with an OfflineAudioContext.\n if (isNativeOfflineAudioContext(nativeAudioContext)) {\n throw new TypeError();\n }\n\n return nativeMediaStreamAudioSourceNode;\n };\n};\n","import { IAudioContext, IMediaStreamTrackAudioSourceNode, IMediaStreamTrackAudioSourceOptions, IMinimalAudioContext } from '../interfaces';\nimport { TAudioNodeRenderer, TMediaStreamTrackAudioSourceNodeConstructorFactory } from '../types';\n\nexport const createMediaStreamTrackAudioSourceNodeConstructor: TMediaStreamTrackAudioSourceNodeConstructorFactory = (\n audioNodeConstructor,\n createNativeMediaStreamTrackAudioSourceNode,\n getNativeContext\n) => {\n return class MediaStreamTrackAudioSourceNode extends audioNodeConstructor\n implements IMediaStreamTrackAudioSourceNode {\n constructor(context: T, options: IMediaStreamTrackAudioSourceOptions) {\n const nativeContext = getNativeContext(context);\n const nativeMediaStreamTrackAudioSourceNode = createNativeMediaStreamTrackAudioSourceNode(nativeContext, options);\n\n super(context, true, nativeMediaStreamTrackAudioSourceNode, >null);\n }\n };\n};\n","import { deactivateAudioGraph } from '../helpers/deactivate-audio-graph';\nimport { isValidLatencyHint } from '../helpers/is-valid-latency-hint';\nimport {\n IAudioContext,\n IAudioContextOptions,\n IMediaElementAudioSourceNode,\n IMediaStreamAudioDestinationNode,\n IMediaStreamAudioSourceNode,\n IMediaStreamTrackAudioSourceNode\n} from '../interfaces';\nimport { TAudioContextConstructorFactory, TAudioContextState, TNativeAudioContext, TNativeGainNode, TNativeOscillatorNode } from '../types';\n\nexport const createAudioContextConstructor: TAudioContextConstructorFactory = (\n baseAudioContextConstructor,\n createInvalidStateError,\n createNotSupportedError,\n createUnknownError,\n mediaElementAudioSourceNodeConstructor,\n mediaStreamAudioDestinationNodeConstructor,\n mediaStreamAudioSourceNodeConstructor,\n mediaStreamTrackAudioSourceNodeConstructor,\n nativeAudioContextConstructor\n) => {\n return class AudioContext extends baseAudioContextConstructor implements IAudioContext {\n private _baseLatency: number;\n\n private _nativeAudioContext: TNativeAudioContext;\n\n private _nativeGainNode: null | TNativeGainNode;\n\n private _nativeOscillatorNode: null | TNativeOscillatorNode;\n\n private _state: null | 'suspended';\n\n constructor(options: IAudioContextOptions = {}) {\n if (nativeAudioContextConstructor === null) {\n throw new Error('Missing the native AudioContext constructor.');\n }\n\n let nativeAudioContext: TNativeAudioContext;\n\n try {\n nativeAudioContext = new nativeAudioContextConstructor(options);\n } catch (err) {\n // Bug #192 Safari does throw a SyntaxError if the sampleRate is not supported.\n if (err.code === 12 && err.message === 'sampleRate is not in range') {\n throw createNotSupportedError();\n }\n\n throw err;\n }\n\n // Bug #131 Safari returns null when there are four other AudioContexts running already.\n if (nativeAudioContext === null) {\n throw createUnknownError();\n }\n\n // Bug #51 Only Chrome and Edge throw an error if the given latencyHint is invalid.\n if (!isValidLatencyHint(options.latencyHint)) {\n throw new TypeError(\n `The provided value '${options.latencyHint}' is not a valid enum value of type AudioContextLatencyCategory.`\n );\n }\n\n // Bug #150 Safari does not support setting the sampleRate.\n if (options.sampleRate !== undefined && nativeAudioContext.sampleRate !== options.sampleRate) {\n throw createNotSupportedError();\n }\n\n super(nativeAudioContext, 2);\n\n const { latencyHint } = options;\n const { sampleRate } = nativeAudioContext;\n\n // @todo The values for 'balanced', 'interactive' and 'playback' are just copied from Chrome's implementation.\n this._baseLatency =\n typeof nativeAudioContext.baseLatency === 'number'\n ? nativeAudioContext.baseLatency\n : latencyHint === 'balanced'\n ? 512 / sampleRate\n : latencyHint === 'interactive' || latencyHint === undefined\n ? 256 / sampleRate\n : latencyHint === 'playback'\n ? 1024 / sampleRate\n : /*\n * @todo The min (256) and max (16384) values are taken from the allowed bufferSize values of a\n * ScriptProcessorNode.\n */\n (Math.max(2, Math.min(128, Math.round((latencyHint * sampleRate) / 128))) * 128) / sampleRate;\n this._nativeAudioContext = nativeAudioContext;\n\n // Bug #188: Safari will set the context's state to 'interrupted' in case the user switches tabs.\n if (nativeAudioContextConstructor.name === 'webkitAudioContext') {\n this._nativeGainNode = nativeAudioContext.createGain();\n this._nativeOscillatorNode = nativeAudioContext.createOscillator();\n\n this._nativeGainNode.gain.value = 1e-37;\n\n this._nativeOscillatorNode.connect(this._nativeGainNode).connect(nativeAudioContext.destination);\n this._nativeOscillatorNode.start();\n } else {\n this._nativeGainNode = null;\n this._nativeOscillatorNode = null;\n }\n\n this._state = null;\n\n /*\n * Bug #34: Chrome and Edge pretend to be running right away, but fire an onstatechange event when the state actually changes\n * to 'running'.\n */\n if (nativeAudioContext.state === 'running') {\n this._state = 'suspended';\n\n const revokeState = () => {\n if (this._state === 'suspended') {\n this._state = null;\n }\n\n nativeAudioContext.removeEventListener('statechange', revokeState);\n };\n\n nativeAudioContext.addEventListener('statechange', revokeState);\n }\n }\n\n get baseLatency(): number {\n return this._baseLatency;\n }\n\n get state(): TAudioContextState {\n return this._state !== null ? this._state : this._nativeAudioContext.state;\n }\n\n public close(): Promise {\n // Bug #35: Firefox does not throw an error if the AudioContext was closed before.\n if (this.state === 'closed') {\n return this._nativeAudioContext.close().then(() => {\n throw createInvalidStateError();\n });\n }\n\n // Bug #34: If the state was set to suspended before it should be revoked now.\n if (this._state === 'suspended') {\n this._state = null;\n }\n\n return this._nativeAudioContext.close().then(() => {\n if (this._nativeGainNode !== null && this._nativeOscillatorNode !== null) {\n this._nativeOscillatorNode.stop();\n\n this._nativeGainNode.disconnect();\n this._nativeOscillatorNode.disconnect();\n }\n\n deactivateAudioGraph(this);\n });\n }\n\n public createMediaElementSource(mediaElement: HTMLMediaElement): IMediaElementAudioSourceNode {\n return new mediaElementAudioSourceNodeConstructor(this, { mediaElement });\n }\n\n public createMediaStreamDestination(): IMediaStreamAudioDestinationNode {\n return new mediaStreamAudioDestinationNodeConstructor(this);\n }\n\n public createMediaStreamSource(mediaStream: MediaStream): IMediaStreamAudioSourceNode {\n return new mediaStreamAudioSourceNodeConstructor(this, { mediaStream });\n }\n\n public createMediaStreamTrackSource(mediaStreamTrack: MediaStreamTrack): IMediaStreamTrackAudioSourceNode {\n return new mediaStreamTrackAudioSourceNodeConstructor(this, { mediaStreamTrack });\n }\n\n public resume(): Promise {\n if (this._state === 'suspended') {\n return new Promise((resolve, reject) => {\n const resolvePromise = () => {\n this._nativeAudioContext.removeEventListener('statechange', resolvePromise);\n\n if (this._nativeAudioContext.state === 'running') {\n resolve();\n } else {\n this.resume().then(resolve, reject);\n }\n };\n\n this._nativeAudioContext.addEventListener('statechange', resolvePromise);\n });\n }\n\n return this._nativeAudioContext.resume().catch((err) => {\n // Bug #55: Chrome and Edge do throw an InvalidAccessError instead of an InvalidStateError.\n // Bug #56: Safari invokes the catch handler but without an error.\n if (err === undefined || err.code === 15) {\n throw createInvalidStateError();\n }\n\n throw err;\n });\n }\n\n public suspend(): Promise {\n return this._nativeAudioContext.suspend().catch((err) => {\n // Bug #56: Safari invokes the catch handler but without an error.\n if (err === undefined) {\n throw createInvalidStateError();\n }\n\n throw err;\n });\n }\n };\n};\n","import { TGetUnrenderedAudioWorkletNodesFactory } from '../types';\n\nexport const createGetUnrenderedAudioWorkletNodes: TGetUnrenderedAudioWorkletNodesFactory = (unrenderedAudioWorkletNodeStore) => {\n return (nativeContext) => {\n const unrenderedAudioWorkletNodes = unrenderedAudioWorkletNodeStore.get(nativeContext);\n\n if (unrenderedAudioWorkletNodes === undefined) {\n throw new Error('The context has no set of AudioWorkletNodes.');\n }\n\n return unrenderedAudioWorkletNodes;\n };\n};\n","import { TAddUnrenderedAudioWorkletNodeFactory } from '../types';\n\nexport const createAddUnrenderedAudioWorkletNode: TAddUnrenderedAudioWorkletNodeFactory = (getUnrenderedAudioWorkletNodes) => {\n return (nativeContext, audioWorkletNode) => {\n getUnrenderedAudioWorkletNodes(nativeContext).add(audioWorkletNode);\n };\n};\n","import { isNativeAudioNode } from '../guards/native-audio-node';\nimport { TConnectMultipleOutputsFactory } from '../types';\n\nexport const createConnectMultipleOutputs: TConnectMultipleOutputsFactory = (createIndexSizeError) => {\n return (outputAudioNodes, destination, output = 0, input = 0) => {\n const outputAudioNode = outputAudioNodes[output];\n\n if (outputAudioNode === undefined) {\n throw createIndexSizeError();\n }\n\n if (isNativeAudioNode(destination)) {\n return outputAudioNode.connect(destination, 0, input);\n }\n\n return outputAudioNode.connect(destination, 0);\n };\n};\n","import { TDeleteUnrenderedAudioWorkletNodeFactory } from '../types';\n\nexport const createDeleteUnrenderedAudioWorkletNode: TDeleteUnrenderedAudioWorkletNodeFactory = (getUnrenderedAudioWorkletNodes) => {\n return (nativeContext, audioWorkletNode) => {\n getUnrenderedAudioWorkletNodes(nativeContext).delete(audioWorkletNode);\n };\n};\n","import { TActiveInputConnection, TContext, TGetActiveAudioWorkletNodeInputsFactory, TNativeAudioWorkletNode } from '../types';\n\nexport const createGetActiveAudioWorkletNodeInputs: TGetActiveAudioWorkletNodeInputsFactory = (\n activeAudioWorkletNodeInputsStore,\n getValueForKey\n) => {\n return (nativeAudioWorkletNode: TNativeAudioWorkletNode) =>\n >[]>getValueForKey(activeAudioWorkletNodeInputsStore, nativeAudioWorkletNode);\n};\n","import { MOST_NEGATIVE_SINGLE_FLOAT, MOST_POSITIVE_SINGLE_FLOAT } from '../constants';\nimport { computeBufferSize } from '../helpers/compute-buffer-size';\nimport { copyFromChannel } from '../helpers/copy-from-channel';\nimport { copyToChannel } from '../helpers/copy-to-channel';\nimport { createAudioWorkletProcessor } from '../helpers/create-audio-worklet-processor';\nimport { createNestedArrays } from '../helpers/create-nested-arrays';\nimport { IAudioWorkletProcessor } from '../interfaces';\nimport { ReadOnlyMap } from '../read-only-map';\nimport {\n TNativeAudioNode,\n TNativeAudioParam,\n TNativeAudioWorkletNode,\n TNativeAudioWorkletNodeFakerFactoryFactory,\n TNativeChannelMergerNode,\n TNativeChannelSplitterNode,\n TNativeConstantSourceNode,\n TNativeGainNode\n} from '../types';\n\nexport const createNativeAudioWorkletNodeFakerFactory: TNativeAudioWorkletNodeFakerFactoryFactory = (\n connectMultipleOutputs,\n createIndexSizeError,\n createInvalidStateError,\n createNativeChannelMergerNode,\n createNativeChannelSplitterNode,\n createNativeConstantSourceNode,\n createNativeGainNode,\n createNativeScriptProcessorNode,\n createNotSupportedError,\n disconnectMultipleOutputs,\n exposeCurrentFrameAndCurrentTime,\n getActiveAudioWorkletNodeInputs,\n monitorConnections\n) => {\n return (nativeContext, baseLatency, processorConstructor, options) => {\n if (options.numberOfInputs === 0 && options.numberOfOutputs === 0) {\n throw createNotSupportedError();\n }\n\n const outputChannelCount = Array.isArray(options.outputChannelCount)\n ? options.outputChannelCount\n : Array.from(options.outputChannelCount);\n\n // @todo Check if any of the channelCount values is greater than the implementation's maximum number of channels.\n if (outputChannelCount.some((channelCount) => channelCount < 1)) {\n throw createNotSupportedError();\n }\n\n if (outputChannelCount.length !== options.numberOfOutputs) {\n throw createIndexSizeError();\n }\n\n // Bug #61: This is not part of the standard but required for the faker to work.\n if (options.channelCountMode !== 'explicit') {\n throw createNotSupportedError();\n }\n\n const numberOfInputChannels = options.channelCount * options.numberOfInputs;\n const numberOfOutputChannels = outputChannelCount.reduce((sum, value) => sum + value, 0);\n const numberOfParameters =\n processorConstructor.parameterDescriptors === undefined ? 0 : processorConstructor.parameterDescriptors.length;\n\n // Bug #61: This is not part of the standard but required for the faker to work.\n if (numberOfInputChannels + numberOfParameters > 6 || numberOfOutputChannels > 6) {\n throw createNotSupportedError();\n }\n\n const messageChannel = new MessageChannel();\n const gainNodes: TNativeGainNode[] = [];\n const inputChannelSplitterNodes: TNativeChannelSplitterNode[] = [];\n\n for (let i = 0; i < options.numberOfInputs; i += 1) {\n gainNodes.push(\n createNativeGainNode(nativeContext, {\n channelCount: options.channelCount,\n channelCountMode: options.channelCountMode,\n channelInterpretation: options.channelInterpretation,\n gain: 1\n })\n );\n inputChannelSplitterNodes.push(\n createNativeChannelSplitterNode(nativeContext, {\n channelCount: options.channelCount,\n channelCountMode: 'explicit',\n channelInterpretation: 'discrete',\n numberOfOutputs: options.channelCount\n })\n );\n }\n\n const constantSourceNodes: TNativeConstantSourceNode[] = [];\n\n if (processorConstructor.parameterDescriptors !== undefined) {\n for (const { defaultValue, maxValue, minValue, name } of processorConstructor.parameterDescriptors) {\n const constantSourceNode = createNativeConstantSourceNode(nativeContext, {\n channelCount: 1,\n channelCountMode: 'explicit',\n channelInterpretation: 'discrete',\n offset:\n options.parameterData[name] !== undefined\n ? options.parameterData[name]\n : defaultValue === undefined\n ? 0\n : defaultValue\n });\n\n Object.defineProperties(constantSourceNode.offset, {\n defaultValue: {\n get: () => (defaultValue === undefined ? 0 : defaultValue)\n },\n maxValue: {\n get: () => (maxValue === undefined ? MOST_POSITIVE_SINGLE_FLOAT : maxValue)\n },\n minValue: {\n get: () => (minValue === undefined ? MOST_NEGATIVE_SINGLE_FLOAT : minValue)\n }\n });\n\n constantSourceNodes.push(constantSourceNode);\n }\n }\n\n const inputChannelMergerNode = createNativeChannelMergerNode(nativeContext, {\n channelCount: 1,\n channelCountMode: 'explicit',\n channelInterpretation: 'speakers',\n numberOfInputs: Math.max(1, numberOfInputChannels + numberOfParameters)\n });\n const bufferSize = computeBufferSize(baseLatency, nativeContext.sampleRate);\n const scriptProcessorNode = createNativeScriptProcessorNode(\n nativeContext,\n bufferSize,\n numberOfInputChannels + numberOfParameters,\n // Bug #87: Only Firefox will fire an AudioProcessingEvent if there is no connected output.\n Math.max(1, numberOfOutputChannels)\n );\n const outputChannelSplitterNode = createNativeChannelSplitterNode(nativeContext, {\n channelCount: Math.max(1, numberOfOutputChannels),\n channelCountMode: 'explicit',\n channelInterpretation: 'discrete',\n numberOfOutputs: Math.max(1, numberOfOutputChannels)\n });\n const outputChannelMergerNodes: TNativeChannelMergerNode[] = [];\n\n for (let i = 0; i < options.numberOfOutputs; i += 1) {\n outputChannelMergerNodes.push(\n createNativeChannelMergerNode(nativeContext, {\n channelCount: 1,\n channelCountMode: 'explicit',\n channelInterpretation: 'speakers',\n numberOfInputs: outputChannelCount[i]\n })\n );\n }\n\n for (let i = 0; i < options.numberOfInputs; i += 1) {\n gainNodes[i].connect(inputChannelSplitterNodes[i]);\n\n for (let j = 0; j < options.channelCount; j += 1) {\n inputChannelSplitterNodes[i].connect(inputChannelMergerNode, j, i * options.channelCount + j);\n }\n }\n\n const parameterMap = new ReadOnlyMap(\n processorConstructor.parameterDescriptors === undefined\n ? []\n : processorConstructor.parameterDescriptors.map(({ name }, index) => {\n const constantSourceNode = constantSourceNodes[index];\n\n constantSourceNode.connect(inputChannelMergerNode, 0, numberOfInputChannels + index);\n constantSourceNode.start(0);\n\n return <[string, TNativeAudioParam]>[name, constantSourceNode.offset];\n })\n );\n\n inputChannelMergerNode.connect(scriptProcessorNode);\n\n let channelInterpretation = options.channelInterpretation;\n let onprocessorerror: TNativeAudioWorkletNode['onprocessorerror'] = null;\n\n // Bug #87: Expose at least one output to make this node connectable.\n const outputAudioNodes = options.numberOfOutputs === 0 ? [scriptProcessorNode] : outputChannelMergerNodes;\n const nativeAudioWorkletNodeFaker = {\n get bufferSize(): number {\n return bufferSize;\n },\n get channelCount(): number {\n return options.channelCount;\n },\n set channelCount(_) {\n // Bug #61: This is not part of the standard but required for the faker to work.\n throw createInvalidStateError();\n },\n get channelCountMode(): TNativeAudioWorkletNode['channelCountMode'] {\n return options.channelCountMode;\n },\n set channelCountMode(_) {\n // Bug #61: This is not part of the standard but required for the faker to work.\n throw createInvalidStateError();\n },\n get channelInterpretation(): TNativeAudioWorkletNode['channelInterpretation'] {\n return channelInterpretation;\n },\n set channelInterpretation(value) {\n for (const gainNode of gainNodes) {\n gainNode.channelInterpretation = value;\n }\n\n channelInterpretation = value;\n },\n get context(): TNativeAudioWorkletNode['context'] {\n return scriptProcessorNode.context;\n },\n get inputs(): TNativeAudioNode[] {\n return gainNodes;\n },\n get numberOfInputs(): number {\n return options.numberOfInputs;\n },\n get numberOfOutputs(): number {\n return options.numberOfOutputs;\n },\n get onprocessorerror(): TNativeAudioWorkletNode['onprocessorerror'] {\n return onprocessorerror;\n },\n set onprocessorerror(value) {\n if (typeof onprocessorerror === 'function') {\n nativeAudioWorkletNodeFaker.removeEventListener('processorerror', onprocessorerror);\n }\n\n onprocessorerror = typeof value === 'function' ? value : null;\n\n if (typeof onprocessorerror === 'function') {\n nativeAudioWorkletNodeFaker.addEventListener('processorerror', onprocessorerror);\n }\n },\n get parameters(): TNativeAudioWorkletNode['parameters'] {\n return parameterMap;\n },\n get port(): TNativeAudioWorkletNode['port'] {\n return messageChannel.port2;\n },\n addEventListener(...args: any[]): void {\n return scriptProcessorNode.addEventListener(args[0], args[1], args[2]);\n },\n connect: connectMultipleOutputs.bind(null, outputAudioNodes),\n disconnect: disconnectMultipleOutputs.bind(null, outputAudioNodes),\n dispatchEvent(...args: any[]): boolean {\n return scriptProcessorNode.dispatchEvent(args[0]);\n },\n removeEventListener(...args: any[]): void {\n return scriptProcessorNode.removeEventListener(args[0], args[1], args[2]);\n }\n };\n\n const patchedEventListeners: Map> = new Map();\n\n messageChannel.port1.addEventListener = ((addEventListener) => {\n return (...args: [string, EventListenerOrEventListenerObject, (boolean | AddEventListenerOptions)?]): void => {\n if (args[0] === 'message') {\n const unpatchedEventListener =\n typeof args[1] === 'function'\n ? args[1]\n : typeof args[1] === 'object' && args[1] !== null && typeof args[1].handleEvent === 'function'\n ? args[1].handleEvent\n : null;\n\n if (unpatchedEventListener !== null) {\n const patchedEventListener = patchedEventListeners.get(args[1]);\n\n if (patchedEventListener !== undefined) {\n args[1] = patchedEventListener;\n } else {\n args[1] = (event: Event) => {\n exposeCurrentFrameAndCurrentTime(nativeContext.currentTime, nativeContext.sampleRate, () =>\n unpatchedEventListener(event)\n );\n };\n\n patchedEventListeners.set(unpatchedEventListener, args[1]);\n }\n }\n }\n\n return addEventListener.call(messageChannel.port1, args[0], args[1], args[2]);\n };\n })(messageChannel.port1.addEventListener);\n\n messageChannel.port1.removeEventListener = ((removeEventListener) => {\n return (...args: any[]): void => {\n if (args[0] === 'message') {\n const patchedEventListener = patchedEventListeners.get(args[1]);\n\n if (patchedEventListener !== undefined) {\n patchedEventListeners.delete(args[1]);\n\n args[1] = patchedEventListener;\n }\n }\n\n return removeEventListener.call(messageChannel.port1, args[0], args[1], args[2]);\n };\n })(messageChannel.port1.removeEventListener);\n\n let onmessage: MessagePort['onmessage'] = null;\n\n Object.defineProperty(messageChannel.port1, 'onmessage', {\n get: () => onmessage,\n set: (value) => {\n if (typeof onmessage === 'function') {\n messageChannel.port1.removeEventListener('message', onmessage);\n }\n\n onmessage = typeof value === 'function' ? value : null;\n\n if (typeof onmessage === 'function') {\n messageChannel.port1.addEventListener('message', onmessage);\n messageChannel.port1.start();\n }\n }\n });\n\n processorConstructor.prototype.port = messageChannel.port1;\n\n let audioWorkletProcessor: null | IAudioWorkletProcessor = null;\n\n const audioWorkletProcessorPromise = createAudioWorkletProcessor(\n nativeContext,\n nativeAudioWorkletNodeFaker,\n processorConstructor,\n options\n );\n\n audioWorkletProcessorPromise.then((dWrkltPrcssr) => (audioWorkletProcessor = dWrkltPrcssr));\n\n const inputs = createNestedArrays(options.numberOfInputs, options.channelCount);\n const outputs = createNestedArrays(options.numberOfOutputs, outputChannelCount);\n const parameters: { [name: string]: Float32Array } =\n processorConstructor.parameterDescriptors === undefined\n ? []\n : processorConstructor.parameterDescriptors.reduce(\n (prmtrs, { name }) => ({ ...prmtrs, [name]: new Float32Array(128) }),\n {}\n );\n\n let isActive = true;\n\n const disconnectOutputsGraph = () => {\n if (options.numberOfOutputs > 0) {\n scriptProcessorNode.disconnect(outputChannelSplitterNode);\n }\n\n for (let i = 0, outputChannelSplitterNodeOutput = 0; i < options.numberOfOutputs; i += 1) {\n const outputChannelMergerNode = outputChannelMergerNodes[i];\n\n for (let j = 0; j < outputChannelCount[i]; j += 1) {\n outputChannelSplitterNode.disconnect(outputChannelMergerNode, outputChannelSplitterNodeOutput + j, j);\n }\n\n outputChannelSplitterNodeOutput += outputChannelCount[i];\n }\n };\n\n const activeInputIndexes = new Map();\n\n // tslint:disable-next-line:deprecation\n scriptProcessorNode.onaudioprocess = ({ inputBuffer, outputBuffer }: AudioProcessingEvent) => {\n if (audioWorkletProcessor !== null) {\n const activeInputs = getActiveAudioWorkletNodeInputs(nativeAudioWorkletNodeFaker);\n\n for (let i = 0; i < bufferSize; i += 128) {\n for (let j = 0; j < options.numberOfInputs; j += 1) {\n for (let k = 0; k < options.channelCount; k += 1) {\n copyFromChannel(inputBuffer, inputs[j], k, k, i);\n }\n }\n\n if (processorConstructor.parameterDescriptors !== undefined) {\n processorConstructor.parameterDescriptors.forEach(({ name }, index) => {\n copyFromChannel(inputBuffer, parameters, name, numberOfInputChannels + index, i);\n });\n }\n\n for (let j = 0; j < options.numberOfInputs; j += 1) {\n for (let k = 0; k < outputChannelCount[j]; k += 1) {\n // The byteLength will be 0 when the ArrayBuffer was transferred.\n if (outputs[j][k].byteLength === 0) {\n outputs[j][k] = new Float32Array(128);\n }\n }\n }\n\n try {\n const potentiallyEmptyInputs = inputs.map((input, index) => {\n const activeInput = activeInputs[index];\n\n if (activeInput.size > 0) {\n activeInputIndexes.set(index, bufferSize / 128);\n\n return input;\n }\n\n const count = activeInputIndexes.get(index);\n\n if (count === undefined) {\n return [];\n }\n\n if (input.every((channelData) => channelData.every((sample) => sample === 0))) {\n if (count === 1) {\n activeInputIndexes.delete(index);\n } else {\n activeInputIndexes.set(index, count - 1);\n }\n }\n\n return input;\n });\n\n const activeSourceFlag = exposeCurrentFrameAndCurrentTime(\n nativeContext.currentTime + i / nativeContext.sampleRate,\n nativeContext.sampleRate,\n () => (audioWorkletProcessor).process(potentiallyEmptyInputs, outputs, parameters)\n );\n\n isActive = activeSourceFlag;\n\n for (let j = 0, outputChannelSplitterNodeOutput = 0; j < options.numberOfOutputs; j += 1) {\n for (let k = 0; k < outputChannelCount[j]; k += 1) {\n copyToChannel(outputBuffer, outputs[j], k, outputChannelSplitterNodeOutput + k, i);\n }\n\n outputChannelSplitterNodeOutput += outputChannelCount[j];\n }\n } catch (error) {\n isActive = false;\n\n nativeAudioWorkletNodeFaker.dispatchEvent(\n new ErrorEvent('processorerror', {\n colno: error.colno,\n filename: error.filename,\n lineno: error.lineno,\n message: error.message\n })\n );\n }\n\n if (!isActive) {\n for (let j = 0; j < options.numberOfInputs; j += 1) {\n gainNodes[j].disconnect(inputChannelSplitterNodes[j]);\n\n for (let k = 0; k < options.channelCount; k += 1) {\n inputChannelSplitterNodes[i].disconnect(inputChannelMergerNode, k, j * options.channelCount + k);\n }\n }\n\n if (processorConstructor.parameterDescriptors !== undefined) {\n const length = processorConstructor.parameterDescriptors.length;\n\n for (let j = 0; j < length; j += 1) {\n const constantSourceNode = constantSourceNodes[j];\n\n constantSourceNode.disconnect(inputChannelMergerNode, 0, numberOfInputChannels + j);\n constantSourceNode.stop();\n }\n }\n\n inputChannelMergerNode.disconnect(scriptProcessorNode);\n\n scriptProcessorNode.onaudioprocess = null; // tslint:disable-line:deprecation\n\n if (isConnected) {\n disconnectOutputsGraph();\n } else {\n disconnectFakeGraph();\n }\n\n break;\n }\n }\n }\n };\n\n let isConnected = false;\n\n // Bug #87: Only Firefox will fire an AudioProcessingEvent if there is no connected output.\n const nativeGainNode = createNativeGainNode(nativeContext, {\n channelCount: 1,\n channelCountMode: 'explicit',\n channelInterpretation: 'discrete',\n gain: 0\n });\n\n const connectFakeGraph = () => scriptProcessorNode.connect(nativeGainNode).connect(nativeContext.destination);\n const disconnectFakeGraph = () => {\n scriptProcessorNode.disconnect(nativeGainNode);\n nativeGainNode.disconnect();\n };\n const whenConnected = () => {\n if (isActive) {\n disconnectFakeGraph();\n\n if (options.numberOfOutputs > 0) {\n scriptProcessorNode.connect(outputChannelSplitterNode);\n }\n\n for (let i = 0, outputChannelSplitterNodeOutput = 0; i < options.numberOfOutputs; i += 1) {\n const outputChannelMergerNode = outputChannelMergerNodes[i];\n\n for (let j = 0; j < outputChannelCount[i]; j += 1) {\n outputChannelSplitterNode.connect(outputChannelMergerNode, outputChannelSplitterNodeOutput + j, j);\n }\n\n outputChannelSplitterNodeOutput += outputChannelCount[i];\n }\n }\n\n isConnected = true;\n };\n const whenDisconnected = () => {\n if (isActive) {\n connectFakeGraph();\n disconnectOutputsGraph();\n }\n\n isConnected = false;\n };\n\n connectFakeGraph();\n\n return monitorConnections(nativeAudioWorkletNodeFaker, whenConnected, whenDisconnected);\n };\n};\n","import { NODE_TO_PROCESSOR_MAPS } from '../globals';\nimport { IAudioWorkletNodeOptions, IAudioWorkletProcessor, IAudioWorkletProcessorConstructor } from '../interfaces';\nimport { TNativeAudioWorkletNode, TNativeContext } from '../types';\nimport { createAudioWorkletProcessorPromise } from './create-audio-worklet-processor-promise';\n\nexport const createAudioWorkletProcessor = (\n nativeContext: TNativeContext,\n nativeAudioWorkletNode: TNativeAudioWorkletNode,\n processorConstructor: IAudioWorkletProcessorConstructor,\n audioWorkletNodeOptions: IAudioWorkletNodeOptions\n): Promise => {\n let nodeToProcessorMap = NODE_TO_PROCESSOR_MAPS.get(nativeContext);\n\n if (nodeToProcessorMap === undefined) {\n nodeToProcessorMap = new WeakMap();\n\n NODE_TO_PROCESSOR_MAPS.set(nativeContext, nodeToProcessorMap);\n }\n\n const audioWorkletProcessorPromise = createAudioWorkletProcessorPromise(processorConstructor, audioWorkletNodeOptions);\n\n nodeToProcessorMap.set(nativeAudioWorkletNode, audioWorkletProcessorPromise);\n\n return audioWorkletProcessorPromise;\n};\n","import { testClonabilityOfAudioWorkletNodeOptions } from '../helpers/test-clonability-of-audio-worklet-node-options';\nimport { TNativeAudioWorkletNode, TNativeAudioWorkletNodeFactoryFactory, TNativeAudioWorkletNodeOptions } from '../types';\n\nexport const createNativeAudioWorkletNodeFactory: TNativeAudioWorkletNodeFactoryFactory = (\n createInvalidStateError,\n createNativeAudioWorkletNodeFaker,\n createNativeGainNode,\n createNotSupportedError,\n monitorConnections\n) => {\n return (nativeContext, baseLatency, nativeAudioWorkletNodeConstructor, name, processorConstructor, options) => {\n if (nativeAudioWorkletNodeConstructor !== null) {\n try {\n const nativeAudioWorkletNode = new nativeAudioWorkletNodeConstructor(\n nativeContext,\n name,\n options\n );\n const patchedEventListeners: Map<\n EventListenerOrEventListenerObject,\n NonNullable\n > = new Map();\n\n let onprocessorerror: TNativeAudioWorkletNode['onprocessorerror'] = null;\n\n Object.defineProperties(nativeAudioWorkletNode, {\n /*\n * Bug #61: Overwriting the property accessors for channelCount and channelCountMode is necessary as long as some\n * browsers have no native implementation to achieve a consistent behavior.\n */\n channelCount: {\n get: () => options.channelCount,\n set: () => {\n throw createInvalidStateError();\n }\n },\n channelCountMode: {\n get: () => 'explicit',\n set: () => {\n throw createInvalidStateError();\n }\n },\n // Bug #156: Chrome and Edge do not yet fire an ErrorEvent.\n onprocessorerror: {\n get: () => onprocessorerror,\n set: (value) => {\n if (typeof onprocessorerror === 'function') {\n nativeAudioWorkletNode.removeEventListener('processorerror', onprocessorerror);\n }\n\n onprocessorerror = typeof value === 'function' ? value : null;\n\n if (typeof onprocessorerror === 'function') {\n nativeAudioWorkletNode.addEventListener('processorerror', onprocessorerror);\n }\n }\n }\n });\n\n nativeAudioWorkletNode.addEventListener = ((addEventListener) => {\n return (...args: [string, EventListenerOrEventListenerObject, (boolean | AddEventListenerOptions)?]): void => {\n if (args[0] === 'processorerror') {\n const unpatchedEventListener =\n typeof args[1] === 'function'\n ? args[1]\n : typeof args[1] === 'object' && args[1] !== null && typeof args[1].handleEvent === 'function'\n ? args[1].handleEvent\n : null;\n\n if (unpatchedEventListener !== null) {\n const patchedEventListener = patchedEventListeners.get(args[1]);\n\n if (patchedEventListener !== undefined) {\n args[1] = patchedEventListener;\n } else {\n args[1] = (event: Event) => {\n // Bug #178: Chrome and Edge do fire an event of type error.\n if (event.type === 'error') {\n Object.defineProperties(event, {\n type: { value: 'processorerror' }\n });\n\n unpatchedEventListener(event);\n } else {\n unpatchedEventListener(new ErrorEvent(args[0], { ...event }));\n }\n };\n\n patchedEventListeners.set(unpatchedEventListener, args[1]);\n }\n }\n }\n\n // Bug #178: Chrome and Edge do fire an event of type error.\n addEventListener.call(nativeAudioWorkletNode, 'error', args[1], args[2]);\n\n return addEventListener.call(nativeAudioWorkletNode, ...args);\n };\n })(nativeAudioWorkletNode.addEventListener);\n\n nativeAudioWorkletNode.removeEventListener = ((removeEventListener) => {\n return (...args: any[]): void => {\n if (args[0] === 'processorerror') {\n const patchedEventListener = patchedEventListeners.get(args[1]);\n\n if (patchedEventListener !== undefined) {\n patchedEventListeners.delete(args[1]);\n\n args[1] = patchedEventListener;\n }\n }\n\n // Bug #178: Chrome and Edge do fire an event of type error.\n removeEventListener.call(nativeAudioWorkletNode, 'error', args[1], args[2]);\n\n return removeEventListener.call(nativeAudioWorkletNode, args[0], args[1], args[2]);\n };\n })(nativeAudioWorkletNode.removeEventListener);\n\n /*\n * Bug #86: Chrome and Edge do not invoke the process() function if the corresponding AudioWorkletNode is unconnected but\n * has an output.\n */\n if (options.numberOfOutputs !== 0) {\n const nativeGainNode = createNativeGainNode(nativeContext, {\n channelCount: 1,\n channelCountMode: 'explicit',\n channelInterpretation: 'discrete',\n gain: 0\n });\n\n nativeAudioWorkletNode.connect(nativeGainNode).connect(nativeContext.destination);\n\n const whenConnected = () => nativeGainNode.disconnect();\n const whenDisconnected = () => nativeGainNode.connect(nativeContext.destination);\n\n // @todo Disconnect the connection when the process() function of the AudioWorkletNode returns false.\n return monitorConnections(nativeAudioWorkletNode, whenConnected, whenDisconnected);\n }\n\n return nativeAudioWorkletNode;\n } catch (err) {\n // Bug #60: Chrome & Edge throw an InvalidStateError instead of a NotSupportedError.\n if (err.code === 11) {\n throw createNotSupportedError();\n }\n\n throw err;\n }\n }\n\n // Bug #61: Only Chrome & Edge have an implementation of the AudioWorkletNode yet.\n if (processorConstructor === undefined) {\n throw createNotSupportedError();\n }\n\n testClonabilityOfAudioWorkletNodeOptions(options);\n\n return createNativeAudioWorkletNodeFaker(nativeContext, baseLatency, processorConstructor, options);\n };\n};\n","import { IAudioWorkletNodeOptions } from '../interfaces';\n\nexport const testClonabilityOfAudioWorkletNodeOptions = (audioWorkletNodeOptions: IAudioWorkletNodeOptions): void => {\n const { port1 } = new MessageChannel();\n\n try {\n // This will throw an error if the audioWorkletNodeOptions are not clonable.\n port1.postMessage(audioWorkletNodeOptions);\n } finally {\n port1.close();\n }\n};\n","import { TGetBackupOfflineAudioContextFactory } from '../types';\n\nexport const createGetBackupOfflineAudioContext: TGetBackupOfflineAudioContextFactory = (backupOfflineAudioContextStore) => {\n return (nativeContext) => {\n return backupOfflineAudioContextStore.get(nativeContext);\n };\n};\n","import { TSetActiveAudioWorkletNodeInputsFactory } from '../types';\n\nexport const createSetActiveAudioWorkletNodeInputs: TSetActiveAudioWorkletNodeInputsFactory = (activeAudioWorkletNodeInputsStore) => {\n return (nativeAudioWorkletNode, activeInputs) => {\n activeAudioWorkletNodeInputsStore.set(nativeAudioWorkletNode, activeInputs);\n };\n};\n","import { TSanitizeAudioWorkletNodeOptionsFunction } from '../types';\n\nexport const sanitizeAudioWorkletNodeOptions: TSanitizeAudioWorkletNodeOptionsFunction = (options) => {\n return {\n ...options,\n outputChannelCount:\n options.outputChannelCount !== undefined\n ? options.outputChannelCount\n : options.numberOfInputs === 1 && options.numberOfOutputs === 1\n ? /*\n * Bug #61: This should be the computedNumberOfChannels, but unfortunately that is almost impossible to fake. That's why\n * the channelCountMode is required to be 'explicit' as long as there is not a native implementation in every browser. That\n * makes sure the computedNumberOfChannels is equivilant to the channelCount which makes it much easier to compute.\n */\n [options.channelCount]\n : Array.from({ length: options.numberOfOutputs }, () => 1)\n };\n};\n","import { TTestAudioWorkletNodeOptionsClonabilityFunction } from '../types';\n\nexport const testAudioWorkletNodeOptionsClonability: TTestAudioWorkletNodeOptionsClonabilityFunction = (audioWorkletNodeOptions) => {\n const { port1, port2 } = new MessageChannel();\n\n try {\n // This will throw an error if the audioWorkletNodeOptions are not clonable.\n port1.postMessage(audioWorkletNodeOptions);\n } finally {\n port1.close();\n port2.close();\n }\n};\n","import { deactivateAudioGraph } from '../helpers/deactivate-audio-graph';\nimport { isValidLatencyHint } from '../helpers/is-valid-latency-hint';\nimport { IAudioContextOptions, IMinimalAudioContext } from '../interfaces';\nimport {\n TAudioContextState,\n TMinimalAudioContextConstructorFactory,\n TNativeAudioContext,\n TNativeGainNode,\n TNativeOscillatorNode\n} from '../types';\n\nexport const createMinimalAudioContextConstructor: TMinimalAudioContextConstructorFactory = (\n createInvalidStateError,\n createNotSupportedError,\n createUnknownError,\n minimalBaseAudioContextConstructor,\n nativeAudioContextConstructor\n) => {\n return class MinimalAudioContext extends minimalBaseAudioContextConstructor implements IMinimalAudioContext {\n private _baseLatency: number;\n\n private _nativeAudioContext: TNativeAudioContext;\n\n private _nativeGainNode: null | TNativeGainNode;\n\n private _nativeOscillatorNode: null | TNativeOscillatorNode;\n\n private _state: null | 'suspended';\n\n constructor(options: IAudioContextOptions = {}) {\n if (nativeAudioContextConstructor === null) {\n throw new Error('Missing the native AudioContext constructor.');\n }\n\n let nativeAudioContext: TNativeAudioContext;\n\n try {\n nativeAudioContext = new nativeAudioContextConstructor(options);\n } catch (err) {\n // Bug #192 Safari does throw a SyntaxError if the sampleRate is not supported.\n if (err.code === 12 && err.message === 'sampleRate is not in range') {\n throw createNotSupportedError();\n }\n\n throw err;\n }\n\n // Bug #131 Safari returns null when there are four other AudioContexts running already.\n if (nativeAudioContext === null) {\n throw createUnknownError();\n }\n\n // Bug #51 Only Chrome and Edge throw an error if the given latencyHint is invalid.\n if (!isValidLatencyHint(options.latencyHint)) {\n throw new TypeError(\n `The provided value '${options.latencyHint}' is not a valid enum value of type AudioContextLatencyCategory.`\n );\n }\n\n // Bug #150 Safari does not support setting the sampleRate.\n if (options.sampleRate !== undefined && nativeAudioContext.sampleRate !== options.sampleRate) {\n throw createNotSupportedError();\n }\n\n super(nativeAudioContext, 2);\n\n const { latencyHint } = options;\n const { sampleRate } = nativeAudioContext;\n\n // @todo The values for 'balanced', 'interactive' and 'playback' are just copied from Chrome's implementation.\n this._baseLatency =\n typeof nativeAudioContext.baseLatency === 'number'\n ? nativeAudioContext.baseLatency\n : latencyHint === 'balanced'\n ? 512 / sampleRate\n : latencyHint === 'interactive' || latencyHint === undefined\n ? 256 / sampleRate\n : latencyHint === 'playback'\n ? 1024 / sampleRate\n : /*\n * @todo The min (256) and max (16384) values are taken from the allowed bufferSize values of a\n * ScriptProcessorNode.\n */\n (Math.max(2, Math.min(128, Math.round((latencyHint * sampleRate) / 128))) * 128) / sampleRate;\n this._nativeAudioContext = nativeAudioContext;\n\n // Bug #188: Safari will set the context's state to 'interrupted' in case the user switches tabs.\n if (nativeAudioContextConstructor.name === 'webkitAudioContext') {\n this._nativeGainNode = nativeAudioContext.createGain();\n this._nativeOscillatorNode = nativeAudioContext.createOscillator();\n\n this._nativeGainNode.gain.value = 1e-37;\n\n this._nativeOscillatorNode.connect(this._nativeGainNode).connect(nativeAudioContext.destination);\n this._nativeOscillatorNode.start();\n } else {\n this._nativeGainNode = null;\n this._nativeOscillatorNode = null;\n }\n\n this._state = null;\n\n /*\n * Bug #34: Chrome and Edge pretend to be running right away, but fire an onstatechange event when the state actually changes\n * to 'running'.\n */\n if (nativeAudioContext.state === 'running') {\n this._state = 'suspended';\n\n const revokeState = () => {\n if (this._state === 'suspended') {\n this._state = null;\n }\n\n nativeAudioContext.removeEventListener('statechange', revokeState);\n };\n\n nativeAudioContext.addEventListener('statechange', revokeState);\n }\n }\n\n get baseLatency(): number {\n return this._baseLatency;\n }\n\n get state(): TAudioContextState {\n return this._state !== null ? this._state : this._nativeAudioContext.state;\n }\n\n public close(): Promise {\n // Bug #35: Firefox does not throw an error if the AudioContext was closed before.\n if (this.state === 'closed') {\n return this._nativeAudioContext.close().then(() => {\n throw createInvalidStateError();\n });\n }\n\n // Bug #34: If the state was set to suspended before it should be revoked now.\n if (this._state === 'suspended') {\n this._state = null;\n }\n\n return this._nativeAudioContext.close().then(() => {\n if (this._nativeGainNode !== null && this._nativeOscillatorNode !== null) {\n this._nativeOscillatorNode.stop();\n\n this._nativeGainNode.disconnect();\n this._nativeOscillatorNode.disconnect();\n }\n\n deactivateAudioGraph(this);\n });\n }\n\n public resume(): Promise {\n if (this._state === 'suspended') {\n return new Promise((resolve, reject) => {\n const resolvePromise = () => {\n this._nativeAudioContext.removeEventListener('statechange', resolvePromise);\n\n if (this._nativeAudioContext.state === 'running') {\n resolve();\n } else {\n this.resume().then(resolve, reject);\n }\n };\n\n this._nativeAudioContext.addEventListener('statechange', resolvePromise);\n });\n }\n\n return this._nativeAudioContext.resume().catch((err) => {\n // Bug #55: Chrome and Edge do throw an InvalidAccessError instead of an InvalidStateError.\n // Bug #56: Safari invokes the catch handler but without an error.\n if (err === undefined || err.code === 15) {\n throw createInvalidStateError();\n }\n\n throw err;\n });\n }\n\n public suspend(): Promise {\n return this._nativeAudioContext.suspend().catch((err) => {\n // Bug #56: Safari invokes the catch handler but without an error.\n if (err === undefined) {\n throw createInvalidStateError();\n }\n\n throw err;\n });\n }\n };\n};\n","import { TCreateNativeOfflineAudioContextFactory } from '../types';\n\nexport const createCreateNativeOfflineAudioContext: TCreateNativeOfflineAudioContextFactory = (\n createNotSupportedError,\n nativeOfflineAudioContextConstructor\n) => {\n return (numberOfChannels, length, sampleRate) => {\n if (nativeOfflineAudioContextConstructor === null) {\n throw new Error('Missing the native OfflineAudioContext constructor.');\n }\n\n try {\n return new nativeOfflineAudioContextConstructor(numberOfChannels, length, sampleRate);\n } catch (err) {\n // Bug #143, #144 & #146: Safari throws a SyntaxError when numberOfChannels, length or sampleRate are invalid.\n if (err.name === 'SyntaxError') {\n throw createNotSupportedError();\n }\n\n throw err;\n }\n };\n};\n","import { wrapAudioBufferGetChannelDataMethod } from '../helpers/wrap-audio-buffer-get-channel-data-method';\nimport { TStartRenderingFactory } from '../types';\n\nexport const createStartRendering: TStartRenderingFactory = (\n audioBufferStore,\n cacheTestResult,\n getAudioNodeRenderer,\n getUnrenderedAudioWorkletNodes,\n renderNativeOfflineAudioContext,\n testAudioBufferCopyChannelMethodsOutOfBoundsSupport,\n wrapAudioBufferCopyChannelMethods,\n wrapAudioBufferCopyChannelMethodsOutOfBounds\n) => {\n return (destination, nativeOfflineAudioContext) =>\n getAudioNodeRenderer(destination)\n .render(destination, nativeOfflineAudioContext)\n /*\n * Bug #86 & #87: Invoking the renderer of an AudioWorkletNode might be necessary if it has no direct or indirect connection to the\n * destination.\n */\n .then(() =>\n Promise.all(\n Array.from(getUnrenderedAudioWorkletNodes(nativeOfflineAudioContext)).map((audioWorkletNode) =>\n getAudioNodeRenderer(audioWorkletNode).render(audioWorkletNode, nativeOfflineAudioContext)\n )\n )\n )\n .then(() => renderNativeOfflineAudioContext(nativeOfflineAudioContext))\n .then((audioBuffer) => {\n // Bug #5: Safari does not support copyFromChannel() and copyToChannel().\n // Bug #100: Safari does throw a wrong error when calling getChannelData() with an out-of-bounds value.\n if (typeof audioBuffer.copyFromChannel !== 'function') {\n wrapAudioBufferCopyChannelMethods(audioBuffer);\n wrapAudioBufferGetChannelDataMethod(audioBuffer);\n // Bug #157: Firefox does not allow the bufferOffset to be out-of-bounds.\n } else if (\n !cacheTestResult(testAudioBufferCopyChannelMethodsOutOfBoundsSupport, () =>\n testAudioBufferCopyChannelMethodsOutOfBoundsSupport(audioBuffer)\n )\n ) {\n wrapAudioBufferCopyChannelMethodsOutOfBounds(audioBuffer);\n }\n\n audioBufferStore.add(audioBuffer);\n\n return audioBuffer;\n });\n};\n","import { encode, instantiate } from 'media-encoder-host';\nimport { addRecorderAudioWorkletModule, createRecorderAudioWorkletNode } from 'recorder-audio-worklet';\nimport {\n AudioBuffer,\n AudioBufferSourceNode,\n AudioWorkletNode,\n ConstantSourceNode,\n IAudioBuffer,\n IMinimalAudioContext,\n MediaStreamAudioSourceNode,\n MinimalAudioContext,\n addAudioWorkletModule\n} from 'standardized-audio-context';\nimport { IAudioNodesAndEncoderId } from '../interfaces';\nimport { TRecordingState, TWebAudioMediaRecorderFactoryFactory } from '../types';\n\nconst ERROR_MESSAGE = 'Missing AudioWorklet support. Maybe this is not running in a secure context.';\n\n// @todo This should live in a separate file.\nconst createPromisedAudioNodesEncoderIdAndPort = async (\n audioBuffer: IAudioBuffer,\n audioContext: IMinimalAudioContext,\n channelCount: number,\n mediaStream: MediaStream,\n mimeType: string\n) => {\n const { encoderId, port } = await instantiate(mimeType, audioContext.sampleRate);\n\n if (AudioWorkletNode === undefined) {\n throw new Error(ERROR_MESSAGE);\n }\n\n const audioBufferSourceNode = new AudioBufferSourceNode(audioContext, { buffer: audioBuffer });\n const mediaStreamAudioSourceNode = new MediaStreamAudioSourceNode(audioContext, { mediaStream });\n const recorderAudioWorkletNode = createRecorderAudioWorkletNode(AudioWorkletNode, audioContext, { channelCount });\n\n return { audioBufferSourceNode, encoderId, mediaStreamAudioSourceNode, port, recorderAudioWorkletNode };\n};\n\nexport const createWebAudioMediaRecorderFactory: TWebAudioMediaRecorderFactoryFactory = (\n createBlobEvent,\n createInvalidModificationError,\n createInvalidStateError,\n createNotSupportedError\n) => {\n return (eventTarget, mediaStream, mimeType) => {\n const sampleRate = mediaStream.getAudioTracks()[0]?.getSettings().sampleRate;\n const audioContext = new MinimalAudioContext({ latencyHint: 'playback', sampleRate });\n const length = Math.max(1024, Math.ceil(audioContext.baseLatency * audioContext.sampleRate));\n const audioBuffer = new AudioBuffer({ length, sampleRate: audioContext.sampleRate });\n const bufferedArrayBuffers: ArrayBuffer[] = [];\n const promisedAudioWorkletModule = addRecorderAudioWorkletModule((url: string) => {\n if (addAudioWorkletModule === undefined) {\n throw new Error(ERROR_MESSAGE);\n }\n\n return addAudioWorkletModule(audioContext, url);\n });\n\n let abortRecording: null | (() => void) = null;\n let intervalId: null | number = null;\n let promisedAudioNodesAndEncoderId: null | Promise = null;\n let promisedPartialRecording: null | Promise = null;\n let isAudioContextRunning = true;\n\n const dispatchDataAvailableEvent = (arrayBuffers: ArrayBuffer[]): void => {\n eventTarget.dispatchEvent(createBlobEvent('dataavailable', { data: new Blob(arrayBuffers, { type: mimeType }) }));\n };\n\n const requestNextPartialRecording = async (encoderId: number, timeslice: number): Promise => {\n const arrayBuffers = await encode(encoderId, timeslice);\n\n if (promisedAudioNodesAndEncoderId === null) {\n bufferedArrayBuffers.push(...arrayBuffers);\n } else {\n dispatchDataAvailableEvent(arrayBuffers);\n\n promisedPartialRecording = requestNextPartialRecording(encoderId, timeslice);\n }\n };\n\n const resume = (): Promise => {\n isAudioContextRunning = true;\n\n return audioContext.resume();\n };\n\n const stop = (): void => {\n if (promisedAudioNodesAndEncoderId === null) {\n return;\n }\n\n if (abortRecording !== null) {\n mediaStream.removeEventListener('addtrack', abortRecording);\n mediaStream.removeEventListener('removetrack', abortRecording);\n }\n\n if (intervalId !== null) {\n clearTimeout(intervalId);\n }\n\n promisedAudioNodesAndEncoderId.then(\n async ({ constantSourceNode, encoderId, mediaStreamAudioSourceNode, recorderAudioWorkletNode }) => {\n if (promisedPartialRecording !== null) {\n promisedPartialRecording.catch(() => {\n /* @todo Only catch the errors caused by a duplicate call to encode. */\n });\n promisedPartialRecording = null;\n }\n\n await recorderAudioWorkletNode.stop();\n\n mediaStreamAudioSourceNode.disconnect(recorderAudioWorkletNode);\n constantSourceNode.stop();\n\n const arrayBuffers = await encode(encoderId, null);\n\n if (promisedAudioNodesAndEncoderId === null) {\n await suspend();\n }\n\n dispatchDataAvailableEvent([...bufferedArrayBuffers, ...arrayBuffers]);\n\n bufferedArrayBuffers.length = 0;\n\n eventTarget.dispatchEvent(new Event('stop'));\n }\n );\n\n promisedAudioNodesAndEncoderId = null;\n };\n\n const suspend = (): Promise => {\n isAudioContextRunning = false;\n\n return audioContext.suspend();\n };\n\n suspend();\n\n return {\n get mimeType(): string {\n return mimeType;\n },\n\n get state(): TRecordingState {\n return promisedAudioNodesAndEncoderId === null ? 'inactive' : isAudioContextRunning ? 'recording' : 'paused';\n },\n\n pause(): void {\n if (promisedAudioNodesAndEncoderId === null) {\n throw createInvalidStateError();\n }\n\n if (isAudioContextRunning) {\n suspend();\n eventTarget.dispatchEvent(new Event('pause'));\n }\n },\n\n resume(): void {\n if (promisedAudioNodesAndEncoderId === null) {\n throw createInvalidStateError();\n }\n\n if (!isAudioContextRunning) {\n resume();\n eventTarget.dispatchEvent(new Event('resume'));\n }\n },\n\n start(timeslice?: number): void {\n if (promisedAudioNodesAndEncoderId !== null) {\n throw createInvalidStateError();\n }\n\n if (mediaStream.getVideoTracks().length > 0) {\n throw createNotSupportedError();\n }\n\n eventTarget.dispatchEvent(new Event('start'));\n\n const audioTracks = mediaStream.getAudioTracks();\n // @todo TypeScript v4.4.2 removed the channelCount property from the MediaTrackSettings interface.\n const channelCount =\n audioTracks.length === 0\n ? 2\n : (audioTracks[0].getSettings()).channelCount ?? 2;\n\n promisedAudioNodesAndEncoderId = Promise.all([\n resume(),\n promisedAudioWorkletModule.then(() =>\n createPromisedAudioNodesEncoderIdAndPort(audioBuffer, audioContext, channelCount, mediaStream, mimeType)\n )\n ]).then(async ([, { audioBufferSourceNode, encoderId, mediaStreamAudioSourceNode, port, recorderAudioWorkletNode }]) => {\n mediaStreamAudioSourceNode.connect(recorderAudioWorkletNode);\n\n await new Promise((resolve) => {\n audioBufferSourceNode.onended = resolve;\n audioBufferSourceNode.connect(recorderAudioWorkletNode);\n audioBufferSourceNode.start(audioContext.currentTime + length / audioContext.sampleRate);\n });\n\n audioBufferSourceNode.disconnect(recorderAudioWorkletNode);\n\n // Bug #17: Safari does throttle the processing on hidden tabs if there is no active audio output.\n const constantSourceNode = new ConstantSourceNode(audioContext, { offset: 0 });\n\n constantSourceNode.onended = () => constantSourceNode.disconnect();\n constantSourceNode.connect(audioContext.destination);\n constantSourceNode.start();\n\n await recorderAudioWorkletNode.record(port);\n\n if (timeslice !== undefined) {\n promisedPartialRecording = requestNextPartialRecording(encoderId, timeslice);\n }\n\n return { constantSourceNode, encoderId, mediaStreamAudioSourceNode, recorderAudioWorkletNode };\n });\n\n const tracks = mediaStream.getTracks();\n\n abortRecording = () => {\n stop();\n eventTarget.dispatchEvent(new ErrorEvent('error', { error: createInvalidModificationError() }));\n };\n\n mediaStream.addEventListener('addtrack', abortRecording);\n mediaStream.addEventListener('removetrack', abortRecording);\n\n intervalId = setInterval(() => {\n const currentTracks = mediaStream.getTracks();\n\n if (\n (currentTracks.length !== tracks.length || currentTracks.some((track, index) => track !== tracks[index])) &&\n abortRecording !== null\n ) {\n abortRecording();\n }\n }, 1000);\n },\n\n stop\n };\n };\n};\n","import { IAudioContext, IMinimalAudioContext } from '../interfaces';\nimport { TIsAnyAudioContextFactory, TNativeAudioContext } from '../types';\n\nexport const createIsAnyAudioContext: TIsAnyAudioContextFactory = (contextStore, isNativeAudioContext) => {\n return (anything): anything is IAudioContext | IMinimalAudioContext | TNativeAudioContext => {\n const nativeContext = contextStore.get(anything);\n\n return isNativeAudioContext(nativeContext) || isNativeAudioContext(anything);\n };\n};\n","import { IAudioNode } from '../interfaces';\nimport { TIsAnyAudioNodeFactory, TNativeAudioNode } from '../types';\n\nexport const createIsAnyAudioNode: TIsAnyAudioNodeFactory = (audioNodeStore, isNativeAudioNode) => {\n return (anything): anything is IAudioNode | TNativeAudioNode => audioNodeStore.has(anything) || isNativeAudioNode(anything);\n};\n","import { IAudioParam } from '../interfaces';\nimport { TIsAnyAudioParamFactory, TNativeAudioParam } from '../types';\n\nexport const createIsAnyAudioParam: TIsAnyAudioParamFactory = (audioParamStore, isNativeAudioParam) => {\n return (anything): anything is IAudioParam | TNativeAudioParam => audioParamStore.has(anything) || isNativeAudioParam(anything);\n};\n","import { IMinimalOfflineAudioContext, IOfflineAudioContext } from '../interfaces';\nimport { TIsAnyOfflineAudioContextFactory, TNativeOfflineAudioContext } from '../types';\n\nexport const createIsAnyOfflineAudioContext: TIsAnyOfflineAudioContextFactory = (contextStore, isNativeOfflineAudioContext) => {\n return (anything): anything is IMinimalOfflineAudioContext | IOfflineAudioContext | TNativeOfflineAudioContext => {\n const nativeContext = contextStore.get(anything);\n\n return isNativeOfflineAudioContext(nativeContext) || isNativeOfflineAudioContext(anything);\n };\n};\n","import { register as rgstr } from 'media-encoder-host';\nimport { createBlobEventFactory } from './factories/blob-event-factory';\nimport { createDecodeWebMChunk } from './factories/decode-web-m-chunk';\nimport { createEventTargetConstructor } from './factories/event-target-constructor';\nimport { createEventTargetFactory } from './factories/event-target-factory';\nimport { createInvalidModificationError } from './factories/invalid-modification-error';\nimport { createInvalidStateError } from './factories/invalid-state-error';\nimport { createIsSupportedPromise } from './factories/is-supported-promise';\nimport { createMediaRecorderConstructor } from './factories/media-recorder-constructor';\nimport { createNativeBlobEventConstructor } from './factories/native-blob-event-constructor';\nimport { createNativeMediaRecorderFactory } from './factories/native-media-recorder';\nimport { createNativeMediaRecorderConstructor } from './factories/native-media-recorder-constructor';\nimport { createNotSupportedError } from './factories/not-supported-error';\nimport { createReadElementContent } from './factories/read-element-content';\nimport { createReadElementType } from './factories/read-element-type';\nimport { createReadVariableSizeInteger } from './factories/read-variable-size-integer';\nimport { createWebAudioMediaRecorderFactory } from './factories/web-audio-media-recorder';\nimport { createWebmPcmMediaRecorderFactory } from './factories/webm-pcm-media-recorder';\nimport { createWindow } from './factories/window';\nimport { readVariableSizeIntegerLength } from './functions/read-variable-size-integer-length';\nimport { wrapEventListener } from './functions/wrap-event-listener';\nimport { IMediaRecorderConstructor } from './interfaces';\n\n/*\n * @todo Explicitly referencing the barrel file seems to be necessary when enabling the\n * isolatedModules compiler option.\n */\nexport * from './interfaces/index';\nexport * from './types/index';\n\nconst encoderRegexes: RegExp[] = [];\n\nconst window = createWindow();\nconst nativeBlobEventConstructor = createNativeBlobEventConstructor(window);\nconst createBlobEvent = createBlobEventFactory(nativeBlobEventConstructor);\nconst createWebAudioMediaRecorder = createWebAudioMediaRecorderFactory(\n createBlobEvent,\n createInvalidModificationError,\n createInvalidStateError,\n createNotSupportedError\n);\nconst readVariableSizeInteger = createReadVariableSizeInteger(readVariableSizeIntegerLength);\nconst readElementContent = createReadElementContent(readVariableSizeInteger);\nconst readElementType = createReadElementType(readVariableSizeInteger);\nconst decodeWebMChunk = createDecodeWebMChunk(readElementContent, readElementType);\nconst createWebmPcmMediaRecorder = createWebmPcmMediaRecorderFactory(\n createBlobEvent,\n createInvalidModificationError,\n createNotSupportedError,\n decodeWebMChunk,\n readVariableSizeInteger\n);\nconst createEventTarget = createEventTargetFactory(window);\nconst nativeMediaRecorderConstructor = createNativeMediaRecorderConstructor(window);\n\nconst createNativeMediaRecorder = createNativeMediaRecorderFactory(createInvalidModificationError, createNotSupportedError);\nconst mediaRecorderConstructor: IMediaRecorderConstructor = createMediaRecorderConstructor(\n createNativeMediaRecorder,\n createNotSupportedError,\n createWebAudioMediaRecorder,\n createWebmPcmMediaRecorder,\n encoderRegexes,\n createEventTargetConstructor(createEventTarget, wrapEventListener),\n nativeMediaRecorderConstructor\n);\n\nexport { mediaRecorderConstructor as MediaRecorder };\n\nexport const isSupported = () => createIsSupportedPromise(window);\n\nexport const register = async (port: MessagePort): Promise => {\n encoderRegexes.push(await rgstr(port));\n};\n","import { TWindow, TWindowFactory } from '../types';\n\nexport const createWindow: TWindowFactory = () => (typeof window === 'undefined' ? null : window);\n","import { IBlobEvent } from '../interfaces';\nimport { TBlobEventFactoryFactory } from '../types';\n\nexport const createBlobEventFactory: TBlobEventFactoryFactory = (nativeBlobEventConstructor) => {\n return (type, blobEventInit) => {\n // Bug #14: Safari does not yet support the BlobEvent.\n if (nativeBlobEventConstructor === null) {\n const { data, ...eventInit } = blobEventInit;\n const fakeBlobEvent = new Event(type, eventInit);\n\n ( & { -readonly [P in 'data']: IBlobEvent[P] }>fakeBlobEvent).data = data;\n\n return fakeBlobEvent;\n }\n\n return new nativeBlobEventConstructor(type, blobEventInit);\n };\n};\n","import { TNativeBlobEventConstructorFactory } from '../types';\n\nexport const createNativeBlobEventConstructor: TNativeBlobEventConstructorFactory = (window) => {\n if (window !== null && window.BlobEvent !== undefined) {\n return window.BlobEvent;\n }\n\n return null;\n};\n","import { TInvalidStateErrorFactory } from '../types';\n\nexport const createInvalidStateError: TInvalidStateErrorFactory = () => {\n try {\n return new DOMException('', 'InvalidStateError');\n } catch (err) {\n // Bug #122: Edge is the only browser that does not yet allow to construct a DOMException.\n err.code = 11;\n err.name = 'InvalidStateError';\n\n return err;\n }\n};\n","import { TReadVariableSizeIntegerFactory } from '../types';\n\nexport const createReadVariableSizeInteger: TReadVariableSizeIntegerFactory = (readVariableSizeIntegerLength) => {\n return (dataView, offset) => {\n const length = readVariableSizeIntegerLength(dataView, offset);\n\n if (length === null) {\n return length;\n }\n\n const firstDataByteOffset = offset + Math.floor((length - 1) / 8);\n\n if (firstDataByteOffset + length > dataView.byteLength) {\n return null;\n }\n\n const firstDataByte = dataView.getUint8(firstDataByteOffset);\n\n let value = firstDataByte & ((1 << (8 - (length % 8))) - 1); // tslint:disable-line:no-bitwise\n\n for (let i = 1; i < length; i += 1) {\n value = (value << 8) + dataView.getUint8(firstDataByteOffset + i); // tslint:disable-line:no-bitwise\n }\n\n return { length, value };\n };\n};\n","import { TReadVariableSizeIntegerLengthFunction } from '../types';\n\nexport const readVariableSizeIntegerLength: TReadVariableSizeIntegerLengthFunction = (dataView, offset) => {\n if (offset >= dataView.byteLength) {\n return null;\n }\n\n const byte = dataView.getUint8(offset);\n\n if (byte > 127) {\n return 1;\n }\n\n if (byte > 63) {\n return 2;\n }\n\n if (byte > 31) {\n return 3;\n }\n\n if (byte > 15) {\n return 4;\n }\n\n if (byte > 7) {\n return 5;\n }\n\n if (byte > 3) {\n return 6;\n }\n\n if (byte > 1) {\n return 7;\n }\n\n if (byte > 0) {\n return 8;\n }\n\n const length = readVariableSizeIntegerLength(dataView, offset + 1);\n\n return length === null ? null : length + 8;\n};\n","import { TReadElementContentFactory } from '../types';\n\nexport const createReadElementContent: TReadElementContentFactory = (readVariableSizeInteger) => {\n return (dataView, offset, type, channelCount = 2) => {\n const lengthAndValue = readVariableSizeInteger(dataView, offset);\n\n if (lengthAndValue === null) {\n return lengthAndValue;\n }\n\n const { length, value } = lengthAndValue;\n\n if (type === 'master') {\n return { content: null, length };\n }\n\n if (offset + length + value > dataView.byteLength) {\n return null;\n }\n\n if (type === 'binary') {\n const numberOfSamples = (value / Float32Array.BYTES_PER_ELEMENT - 1) / channelCount;\n const content = Array.from({ length: channelCount }, () => new Float32Array(numberOfSamples));\n\n for (let i = 0; i < numberOfSamples; i += 1) {\n const elementOffset = i * channelCount + 1;\n\n for (let j = 0; j < channelCount; j += 1) {\n content[j][i] = dataView.getFloat32(offset + length + (elementOffset + j) * Float32Array.BYTES_PER_ELEMENT, true);\n }\n }\n\n return { content, length: length + value };\n }\n\n return { content: null, length: length + value };\n };\n};\n","import { TReadElementTypeFactory } from '../types';\n\nexport const createReadElementType: TReadElementTypeFactory = (readVariableSizeInteger) => {\n return (dataView, offset) => {\n const lengthAndValue = readVariableSizeInteger(dataView, offset);\n\n if (lengthAndValue === null) {\n return lengthAndValue;\n }\n\n const { length, value } = lengthAndValue;\n\n if (value === 35) {\n return { length, type: 'binary' };\n }\n\n if (\n value === 46 ||\n value === 97 ||\n value === 88713574 ||\n value === 106212971 ||\n value === 139690087 ||\n value === 172351395 ||\n value === 256095861\n ) {\n return { length, type: 'master' };\n }\n\n return { length, type: 'unknown' };\n };\n};\n","import { TDecodeWebMChunkFactory } from '../types';\n\nexport const createDecodeWebMChunk: TDecodeWebMChunkFactory = (readElementContent, readElementType) => {\n return (dataView, elementType, channelCount) => {\n const contents: (readonly Float32Array[])[] = [];\n\n let currentElementType = elementType;\n let offset = 0;\n\n while (offset < dataView.byteLength) {\n if (currentElementType === null) {\n const lengthAndType = readElementType(dataView, offset);\n\n if (lengthAndType === null) {\n break;\n }\n\n const { length, type } = lengthAndType;\n\n currentElementType = type;\n offset += length;\n } else {\n const contentAndLength = readElementContent(dataView, offset, currentElementType, channelCount);\n\n if (contentAndLength === null) {\n break;\n }\n\n const { content, length } = contentAndLength;\n\n currentElementType = null;\n offset += length;\n\n if (content !== null) {\n contents.push(content);\n }\n }\n }\n\n return { contents, currentElementType, offset };\n };\n};\n","import { encode, instantiate } from 'media-encoder-host';\nimport { MultiBufferDataView } from 'multi-buffer-data-view';\nimport { on } from 'subscribable-things';\nimport { TPromisedDataViewElementTypeEncoderIdAndPort, TRecordingState, TWebmPcmMediaRecorderFactoryFactory } from '../types';\n\nexport const createWebmPcmMediaRecorderFactory: TWebmPcmMediaRecorderFactoryFactory = (\n createBlobEvent,\n createInvalidModificationError,\n createNotSupportedError,\n decodeWebMChunk,\n readVariableSizeInteger\n) => {\n return (eventTarget, nativeMediaRecorderConstructor, mediaStream, mimeType) => {\n const audioTracks = mediaStream.getAudioTracks();\n const bufferedArrayBuffers: ArrayBuffer[] = [];\n // @todo TypeScript v4.4.2 removed the channelCount property from the MediaTrackSettings interface.\n const channelCount =\n audioTracks.length === 0\n ? undefined\n : (audioTracks[0].getSettings()).channelCount;\n const nativeMediaRecorder = new nativeMediaRecorderConstructor(mediaStream, { mimeType: 'audio/webm;codecs=pcm' });\n const sampleRate = audioTracks.length === 0 ? undefined : audioTracks[0].getSettings().sampleRate;\n\n let promisedPartialRecording: null | Promise = null;\n let stopRecording = () => {}; // tslint:disable-line:no-empty\n\n const dispatchDataAvailableEvent = (arrayBuffers: ArrayBuffer[]): void => {\n eventTarget.dispatchEvent(createBlobEvent('dataavailable', { data: new Blob(arrayBuffers, { type: mimeType }) }));\n };\n\n const requestNextPartialRecording = async (encoderId: number, timeslice: number): Promise => {\n const arrayBuffers = await encode(encoderId, timeslice);\n\n if (nativeMediaRecorder.state === 'inactive') {\n bufferedArrayBuffers.push(...arrayBuffers);\n } else {\n dispatchDataAvailableEvent(arrayBuffers);\n\n promisedPartialRecording = requestNextPartialRecording(encoderId, timeslice);\n }\n };\n\n const stop = (): void => {\n if (nativeMediaRecorder.state === 'inactive') {\n return;\n }\n\n if (promisedPartialRecording !== null) {\n promisedPartialRecording.catch(() => {\n /* @todo Only catch the errors caused by a duplicate call to encode. */\n });\n promisedPartialRecording = null;\n }\n\n stopRecording();\n stopRecording = () => {}; // tslint:disable-line:no-empty\n\n nativeMediaRecorder.stop();\n };\n\n nativeMediaRecorder.addEventListener('error', () => {\n stop();\n // Bug #3 & #4: Chrome throws an error event without any error.\n eventTarget.dispatchEvent(new ErrorEvent('error', { error: createInvalidModificationError() }));\n });\n nativeMediaRecorder.addEventListener('start', () => eventTarget.dispatchEvent(new Event('start')));\n\n return {\n get mimeType(): string {\n return mimeType;\n },\n\n get state(): TRecordingState {\n return nativeMediaRecorder.state;\n },\n\n pause(): void {\n return nativeMediaRecorder.pause();\n },\n\n resume(): void {\n return nativeMediaRecorder.resume();\n },\n\n start(timeslice?: number): void {\n /*\n * Bug #6: Chrome will emit a blob without any data when asked to encode a MediaStream with a video track into an audio\n * codec.\n */\n if (mediaStream.getVideoTracks().length > 0) {\n throw createNotSupportedError();\n }\n\n if (nativeMediaRecorder.state === 'inactive') {\n if (sampleRate === undefined) {\n throw new Error('The sampleRate is not defined.');\n }\n\n let isRecording = false;\n let isStopped = false;\n // Bug #9: Chrome sometimes fires more than one dataavailable event while being inactive.\n let pendingInvocations = 0;\n let promisedDataViewElementTypeEncoderIdAndPort: TPromisedDataViewElementTypeEncoderIdAndPort = instantiate(\n mimeType,\n sampleRate\n );\n\n stopRecording = () => {\n isStopped = true;\n };\n\n const removeEventListener = on(\n nativeMediaRecorder,\n 'dataavailable'\n )(({ data }) => {\n pendingInvocations += 1;\n\n promisedDataViewElementTypeEncoderIdAndPort = promisedDataViewElementTypeEncoderIdAndPort.then(\n async ({ dataView = null, elementType = null, encoderId, port }) => {\n const arrayBuffer = await data.arrayBuffer();\n\n pendingInvocations -= 1;\n\n const currentDataView =\n dataView === null\n ? new MultiBufferDataView([arrayBuffer])\n : new MultiBufferDataView([...dataView.buffers, arrayBuffer], dataView.byteOffset);\n\n if (!isRecording && nativeMediaRecorder.state === 'recording' && !isStopped) {\n const lengthAndValue = readVariableSizeInteger(currentDataView, 0);\n\n if (lengthAndValue === null) {\n return { dataView: currentDataView, elementType, encoderId, port };\n }\n\n const { value } = lengthAndValue;\n\n if (value !== 172351395) {\n return { dataView, elementType, encoderId, port };\n }\n\n isRecording = true;\n }\n\n const { currentElementType, offset, contents } = decodeWebMChunk(\n currentDataView,\n elementType,\n channelCount\n );\n const remainingDataView =\n offset < currentDataView.byteLength\n ? new MultiBufferDataView(currentDataView.buffers, currentDataView.byteOffset + offset)\n : null;\n\n contents.forEach((content) =>\n port.postMessage(\n content,\n content.map(({ buffer }) => buffer)\n )\n );\n\n if (pendingInvocations === 0 && (nativeMediaRecorder.state === 'inactive' || isStopped)) {\n encode(encoderId, null).then((arrayBuffers) => {\n dispatchDataAvailableEvent([...bufferedArrayBuffers, ...arrayBuffers]);\n\n bufferedArrayBuffers.length = 0;\n\n eventTarget.dispatchEvent(new Event('stop'));\n });\n\n port.postMessage([]);\n port.close();\n\n removeEventListener();\n }\n\n return { dataView: remainingDataView, elementType: currentElementType, encoderId, port };\n }\n );\n });\n\n if (timeslice !== undefined) {\n promisedDataViewElementTypeEncoderIdAndPort.then(\n ({ encoderId }) => (promisedPartialRecording = requestNextPartialRecording(encoderId, timeslice))\n );\n }\n }\n\n nativeMediaRecorder.start(100);\n },\n\n stop\n };\n };\n};\n","import { TEventTargetFactoryFactory } from '../types';\n\nexport const createEventTargetFactory: TEventTargetFactoryFactory = (window) => {\n return () => {\n if (window === null) {\n throw new Error('A native EventTarget could not be created.');\n }\n\n return window.document.createElement('p');\n };\n};\n","import { TNativeMediaRecorderConstructorFactory } from '../types';\n\nexport const createNativeMediaRecorderConstructor: TNativeMediaRecorderConstructorFactory = (window) => {\n if (window === null) {\n return null;\n }\n\n return window.MediaRecorder === undefined ? null : window.MediaRecorder;\n};\n","import { IBlobEvent, IMediaRecorder } from '../interfaces';\nimport { TEventHandler, TNativeMediaRecorderFactoryFactory } from '../types';\n\nexport const createNativeMediaRecorderFactory: TNativeMediaRecorderFactoryFactory = (\n createInvalidModificationError,\n createNotSupportedError\n) => {\n return (nativeMediaRecorderConstructor, stream, mediaRecorderOptions) => {\n const bufferedBlobs: Blob[] = [];\n const dataAvailableListeners = new WeakMap void>();\n const errorListeners = new WeakMap void>();\n const nativeMediaRecorder = new nativeMediaRecorderConstructor(stream, mediaRecorderOptions);\n const stopListeners = new WeakMap void>();\n\n let isActive = true;\n\n nativeMediaRecorder.addEventListener = ((addEventListener) => {\n return (\n type: string,\n listener: null | TEventHandler | EventListenerOrEventListenerObject,\n options?: boolean | AddEventListenerOptions\n ) => {\n let patchedEventListener = listener;\n\n if (typeof listener === 'function') {\n if (type === 'dataavailable') {\n // Bug #7 & #8: Chrome fires the dataavailable and stop events before it fires the error event.\n patchedEventListener = (event: IBlobEvent) => {\n setTimeout(() => {\n if (isActive && nativeMediaRecorder.state === 'inactive') {\n bufferedBlobs.push(event.data);\n } else {\n if (bufferedBlobs.length > 0) {\n const blob = event.data;\n\n Object.defineProperty(event, 'data', {\n value: new Blob([...bufferedBlobs, blob], { type: blob.type })\n });\n\n bufferedBlobs.length = 0;\n }\n\n listener.call(nativeMediaRecorder, event);\n }\n });\n };\n\n dataAvailableListeners.set(listener, patchedEventListener);\n } else if (type === 'error') {\n // Bug #12 & #13: Firefox fires a regular event with an error property.\n patchedEventListener = (event: ErrorEvent | (Event & { error?: Error })) => {\n // Bug #3 & #4: Chrome throws an error event without any error.\n if (event.error === undefined) {\n listener.call(nativeMediaRecorder, new ErrorEvent('error', { error: createInvalidModificationError() }));\n // Bug #1 & #2: Firefox throws an error event with an UnknownError.\n } else if (event.error.name === 'UnknownError') {\n const message = event.error.message;\n\n listener.call(\n nativeMediaRecorder,\n new ErrorEvent('error', { error: createInvalidModificationError(message) })\n );\n } else if (event instanceof ErrorEvent) {\n listener.call(nativeMediaRecorder, event);\n } else {\n listener.call(nativeMediaRecorder, new ErrorEvent('error', { error: event.error }));\n }\n };\n\n errorListeners.set(listener, patchedEventListener);\n } else if (type === 'stop') {\n // Bug #7 & #8: Chrome fires the dataavailable and stop events before it fires the error event.\n patchedEventListener = (event: Event) => {\n isActive = false;\n\n setTimeout(() => listener.call(nativeMediaRecorder, event));\n };\n\n stopListeners.set(listener, patchedEventListener);\n }\n }\n\n return addEventListener.call(nativeMediaRecorder, type, patchedEventListener, options);\n };\n })(nativeMediaRecorder.addEventListener);\n\n nativeMediaRecorder.dispatchEvent = ((dispatchEvent) => {\n // Bug #7 & #8: Chrome fires the dataavailable and stop events before it fires the error event.\n return (event: Event) => {\n let wasActive: boolean;\n\n setTimeout(() => {\n wasActive = isActive;\n isActive = false;\n });\n\n const returnValue = dispatchEvent.call(nativeMediaRecorder, event);\n\n setTimeout(() => (isActive = wasActive));\n\n return returnValue;\n };\n })(nativeMediaRecorder.dispatchEvent);\n\n nativeMediaRecorder.removeEventListener = ((removeEventListener) => {\n return (\n type: string,\n listener: null | TEventHandler | EventListenerOrEventListenerObject,\n options?: boolean | EventListenerOptions\n ) => {\n let patchedEventListener = listener;\n\n if (typeof listener === 'function') {\n if (type === 'dataavailable') {\n const dataAvailableListener = dataAvailableListeners.get(listener);\n\n if (dataAvailableListener !== undefined) {\n patchedEventListener = dataAvailableListener;\n }\n } else if (type === 'error') {\n const errorListener = errorListeners.get(listener);\n\n if (errorListener !== undefined) {\n patchedEventListener = errorListener;\n }\n } else if (type === 'stop') {\n const stopListener = stopListeners.get(listener);\n\n if (stopListener !== undefined) {\n patchedEventListener = stopListener;\n }\n }\n }\n\n return removeEventListener.call(nativeMediaRecorder, type, patchedEventListener, options);\n };\n })(nativeMediaRecorder.removeEventListener);\n\n nativeMediaRecorder.start = ((start) => {\n return (timeslice?: number) => {\n /*\n * Bug #6: Chrome will emit a blob without any data when asked to encode a MediaStream with a video track into an audio\n * codec.\n */\n if (\n mediaRecorderOptions.mimeType !== undefined &&\n mediaRecorderOptions.mimeType.startsWith('audio/') &&\n stream.getVideoTracks().length > 0\n ) {\n throw createNotSupportedError();\n }\n\n isActive = timeslice !== undefined;\n\n return timeslice === undefined ? start.call(nativeMediaRecorder) : start.call(nativeMediaRecorder, timeslice);\n };\n })(nativeMediaRecorder.start);\n\n return nativeMediaRecorder;\n };\n};\n","import { IEventTarget } from '../interfaces';\nimport { TEventHandler, TEventTargetConstructorFactory, TNativeEventTarget } from '../types';\n\nexport const createEventTargetConstructor: TEventTargetConstructorFactory = (createEventTarget, wrapEventListener) => {\n return class EventTarget> implements IEventTarget {\n private _listeners: WeakMap;\n\n private _nativeEventTarget: TNativeEventTarget;\n\n constructor(nativeEventTarget: null | TNativeEventTarget = null) {\n this._listeners = new WeakMap();\n this._nativeEventTarget = nativeEventTarget === null ? createEventTarget() : nativeEventTarget;\n }\n\n public addEventListener(\n type: string,\n listener: null | TEventHandler | EventListenerOrEventListenerObject,\n options?: boolean | AddEventListenerOptions\n ): void {\n if (listener !== null) {\n let wrappedEventListener = this._listeners.get(listener);\n\n if (wrappedEventListener === undefined) {\n wrappedEventListener = wrapEventListener(this, listener);\n\n if (typeof listener === 'function') {\n this._listeners.set(listener, wrappedEventListener);\n }\n }\n\n this._nativeEventTarget.addEventListener(type, wrappedEventListener, options);\n }\n }\n\n public dispatchEvent(event: Event): boolean {\n return this._nativeEventTarget.dispatchEvent(event);\n }\n\n public removeEventListener(\n type: string,\n listener: null | TEventHandler | EventListenerOrEventListenerObject,\n options?: boolean | EventListenerOptions\n ): void {\n const wrappedEventListener = listener === null ? undefined : this._listeners.get(listener);\n\n this._nativeEventTarget.removeEventListener(type, wrappedEventListener === undefined ? null : wrappedEventListener, options);\n }\n };\n};\n","import { TWrapEventListenerFunction } from '../types';\n\nexport const wrapEventListener: TWrapEventListenerFunction = (target, eventListener) => {\n return (event) => {\n const descriptor = { value: target };\n\n Object.defineProperties(event, {\n currentTarget: descriptor,\n target: descriptor\n });\n\n if (typeof eventListener === 'function') {\n return eventListener.call(target, event);\n }\n\n return eventListener.handleEvent.call(target, event);\n };\n};\n","import { TIsSupportedPromiseFactory } from '../types';\n\nexport const createIsSupportedPromise: TIsSupportedPromiseFactory = (window) => {\n if (\n window !== null &&\n window.MediaStream !== undefined &&\n /*\n * Bug #10: An early experimental implemenation in Safari did not provide the isTypeSupported() function.\n */\n (window.MediaRecorder === undefined || window.MediaRecorder.isTypeSupported !== undefined)\n ) {\n /*\n * Bug #5: Up until v70 Firefox did emit a blob of type video/webm when asked to encode a MediaStream with a video track into an\n * audio codec.\n */\n return new Promise((resolve) => {\n // Bug #11 Safari does not yet support the MediaRecorder but that isn't tested here.\n if (window.MediaRecorder === undefined) {\n return resolve(true);\n }\n\n // @todo captureStream() is not defined yet.\n const canvasElement: HTMLCanvasElement & { captureStream?(): MediaStream } = document.createElement('canvas');\n\n // @todo https://bugzilla.mozilla.org/show_bug.cgi?id=1388974\n canvasElement.getContext('2d');\n\n if (typeof canvasElement.captureStream !== 'function') {\n return resolve(false);\n }\n\n const mediaStream = canvasElement.captureStream();\n const mimeType = 'audio/webm';\n\n try {\n const mediaRecorder = new window.MediaRecorder(mediaStream, { mimeType });\n\n mediaRecorder.addEventListener('dataavailable', ({ data }) => resolve(data.type === mimeType));\n mediaRecorder.start();\n\n setTimeout(() => mediaRecorder.stop(), 10);\n } catch (err) {\n resolve(err.name === 'NotSupportedError');\n }\n });\n }\n\n return Promise.resolve(false);\n};\n","(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :\n typeof define === 'function' && define.amd ? define(['exports'], factory) :\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.fastUniqueNumbers = {}));\n})(this, (function (exports) { 'use strict';\n\n var createAddUniqueNumber = function createAddUniqueNumber(generateUniqueNumber) {\n return function (set) {\n var number = generateUniqueNumber(set);\n set.add(number);\n return number;\n };\n };\n\n var createCache = function createCache(lastNumberWeakMap) {\n return function (collection, nextNumber) {\n lastNumberWeakMap.set(collection, nextNumber);\n return nextNumber;\n };\n };\n\n /*\n * The value of the constant Number.MAX_SAFE_INTEGER equals (2 ** 53 - 1) but it\n * is fairly new.\n */\n var MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER === undefined ? 9007199254740991 : Number.MAX_SAFE_INTEGER;\n var TWO_TO_THE_POWER_OF_TWENTY_NINE = 536870912;\n var TWO_TO_THE_POWER_OF_THIRTY = TWO_TO_THE_POWER_OF_TWENTY_NINE * 2;\n var createGenerateUniqueNumber = function createGenerateUniqueNumber(cache, lastNumberWeakMap) {\n return function (collection) {\n var lastNumber = lastNumberWeakMap.get(collection);\n /*\n * Let's try the cheapest algorithm first. It might fail to produce a new\n * number, but it is so cheap that it is okay to take the risk. Just\n * increase the last number by one or reset it to 0 if we reached the upper\n * bound of SMIs (which stands for small integers). When the last number is\n * unknown it is assumed that the collection contains zero based consecutive\n * numbers.\n */\n var nextNumber = lastNumber === undefined ? collection.size : lastNumber < TWO_TO_THE_POWER_OF_THIRTY ? lastNumber + 1 : 0;\n if (!collection.has(nextNumber)) {\n return cache(collection, nextNumber);\n }\n /*\n * If there are less than half of 2 ** 30 numbers stored in the collection,\n * the chance to generate a new random number in the range from 0 to 2 ** 30\n * is at least 50%. It's benifitial to use only SMIs because they perform\n * much better in any environment based on V8.\n */\n if (collection.size < TWO_TO_THE_POWER_OF_TWENTY_NINE) {\n while (collection.has(nextNumber)) {\n nextNumber = Math.floor(Math.random() * TWO_TO_THE_POWER_OF_THIRTY);\n }\n return cache(collection, nextNumber);\n }\n // Quickly check if there is a theoretical chance to generate a new number.\n if (collection.size > MAX_SAFE_INTEGER) {\n throw new Error('Congratulations, you created a collection of unique numbers which uses all available integers!');\n }\n // Otherwise use the full scale of safely usable integers.\n while (collection.has(nextNumber)) {\n nextNumber = Math.floor(Math.random() * MAX_SAFE_INTEGER);\n }\n return cache(collection, nextNumber);\n };\n };\n\n var LAST_NUMBER_WEAK_MAP = new WeakMap();\n var cache = createCache(LAST_NUMBER_WEAK_MAP);\n var generateUniqueNumber = createGenerateUniqueNumber(cache, LAST_NUMBER_WEAK_MAP);\n var addUniqueNumber = createAddUniqueNumber(generateUniqueNumber);\n\n exports.addUniqueNumber = addUniqueNumber;\n exports.generateUniqueNumber = generateUniqueNumber;\n\n}));\n","/*\n * indefinite-article.js v1.0.0, 12-18-2011\n *\n * @author: Rodrigo Neri (@rigoneri)\n *\n * (The MIT License)\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nvar indefiniteArticle = function(phrase) {\n var i, word;\n\n // Getting the first word\n var match = /\\w+/.exec(phrase);\n if (match)\n word = match[0];\n else\n return \"an\";\n\n var l_word = word.toLowerCase();\n // Specific start of words that should be preceeded by 'an'\n var alt_cases = [\"honest\", \"hour\", \"hono\"];\n for (i in alt_cases) {\n if (l_word.indexOf(alt_cases[i]) == 0)\n return \"an\";\n }\n\n // Single letter word which should be preceeded by 'an'\n if (l_word.length == 1) {\n if (\"aedhilmnorsx\".indexOf(l_word) >= 0)\n return \"an\";\n else\n return \"a\";\n }\n\n // Capital words which should likely be preceeded by 'an'\n if (word.match(/(?!FJO|[HLMNS]Y.|RY[EO]|SQU|(F[LR]?|[HL]|MN?|N|RH?|S[CHKLMNPTVW]?|X(YL)?)[AEIOU])[FHLMNRSX][A-Z]/)) {\n return \"an\";\n }\n\n // Special cases where a word that begins with a vowel should be preceeded by 'a'\n var regexes = [/^e[uw]/, /^onc?e\\b/, /^uni([^nmd]|mo)/, /^u[bcfhjkqrst][aeiou]/];\n for (i = 0; i < regexes.length; i++) {\n if (l_word.match(regexes[i]))\n return \"a\"\n }\n\n // Special capital words (UK, UN)\n if (word.match(/^U[NK][AIEO]/)) {\n return \"a\";\n }\n else if (word == word.toUpperCase()) {\n if (\"aedhilmnorsx\".indexOf(l_word[0]) >= 0)\n return \"an\";\n else\n return \"a\";\n }\n\n // Basic method of words that begin with a vowel being preceeded by 'an'\n if (\"aeiou\".indexOf(l_word[0]) >= 0)\n return \"an\";\n\n // Instances where y follwed by specific letters is preceeded by 'an'\n if (l_word.match(/^y(b[lor]|cl[ea]|fere|gg|p[ios]|rou|tt)/))\n return \"an\";\n\n return \"a\";\n};\n\nif ((typeof module !== 'undefined') && (typeof module.exports !== 'undefined')) {\n module.exports = indefiniteArticle;\n} else {\n window.indefiniteArticle = indefiniteArticle;\n}\n","(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@babel/runtime/helpers/slicedToArray'), require('@babel/runtime/helpers/classCallCheck'), require('@babel/runtime/helpers/createClass')) :\n typeof define === 'function' && define.amd ? define(['exports', '@babel/runtime/helpers/slicedToArray', '@babel/runtime/helpers/classCallCheck', '@babel/runtime/helpers/createClass'], factory) :\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.multiBufferDataView = {}, global._slicedToArray, global._classCallCheck, global._createClass));\n})(this, (function (exports, _slicedToArray, _classCallCheck, _createClass) { 'use strict';\n\n function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }\n\n var _slicedToArray__default = /*#__PURE__*/_interopDefaultLegacy(_slicedToArray);\n var _classCallCheck__default = /*#__PURE__*/_interopDefaultLegacy(_classCallCheck);\n var _createClass__default = /*#__PURE__*/_interopDefaultLegacy(_createClass);\n\n function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it[\"return\"] != null) it[\"return\"](); } finally { if (didErr) throw err; } } }; }\n function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n var MultiBufferDataView = /*#__PURE__*/function () {\n function MultiBufferDataView(buffers) {\n var byteOffset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n var byteLength = arguments.length > 2 ? arguments[2] : undefined;\n _classCallCheck__default[\"default\"](this, MultiBufferDataView);\n if (byteOffset < 0 || byteLength !== undefined && byteLength < 0) {\n throw new RangeError();\n }\n var availableBytes = buffers.reduce(function (length, buffer) {\n return length + buffer.byteLength;\n }, 0);\n if (byteOffset > availableBytes || byteLength !== undefined && byteOffset + byteLength > availableBytes) {\n throw new RangeError();\n }\n var dataViews = [];\n var effectiveByteLength = byteLength === undefined ? availableBytes - byteOffset : byteLength;\n var truncatedBuffers = [];\n var consumedByteLength = 0;\n var truncatedByteOffset = byteOffset;\n var _iterator = _createForOfIteratorHelper(buffers),\n _step;\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var buffer = _step.value;\n if (truncatedBuffers.length === 0) {\n if (buffer.byteLength > truncatedByteOffset) {\n consumedByteLength = buffer.byteLength - truncatedByteOffset;\n var byteLengthOfDataView = consumedByteLength > effectiveByteLength ? effectiveByteLength : consumedByteLength;\n dataViews.push(new DataView(buffer, truncatedByteOffset, byteLengthOfDataView));\n truncatedBuffers.push(buffer);\n } else {\n truncatedByteOffset -= buffer.byteLength;\n }\n } else if (consumedByteLength < effectiveByteLength) {\n consumedByteLength += buffer.byteLength;\n var _byteLengthOfDataView = consumedByteLength > effectiveByteLength ? buffer.byteLength - consumedByteLength + effectiveByteLength : buffer.byteLength;\n dataViews.push(new DataView(buffer, 0, _byteLengthOfDataView));\n truncatedBuffers.push(buffer);\n }\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n this._buffers = truncatedBuffers;\n this._byteLength = effectiveByteLength;\n this._byteOffset = truncatedByteOffset;\n this._dataViews = dataViews;\n this._internalBuffer = new DataView(new ArrayBuffer(8));\n }\n _createClass__default[\"default\"](MultiBufferDataView, [{\n key: \"buffers\",\n get: function get() {\n return this._buffers;\n }\n }, {\n key: \"byteLength\",\n get: function get() {\n return this._byteLength;\n }\n }, {\n key: \"byteOffset\",\n get: function get() {\n return this._byteOffset;\n }\n }, {\n key: \"getFloat32\",\n value: function getFloat32(byteOffset, littleEndian) {\n this._internalBuffer.setUint8(0, this.getUint8(byteOffset + 0));\n this._internalBuffer.setUint8(1, this.getUint8(byteOffset + 1));\n this._internalBuffer.setUint8(2, this.getUint8(byteOffset + 2));\n this._internalBuffer.setUint8(3, this.getUint8(byteOffset + 3));\n return this._internalBuffer.getFloat32(0, littleEndian);\n }\n }, {\n key: \"getFloat64\",\n value: function getFloat64(byteOffset, littleEndian) {\n this._internalBuffer.setUint8(0, this.getUint8(byteOffset + 0));\n this._internalBuffer.setUint8(1, this.getUint8(byteOffset + 1));\n this._internalBuffer.setUint8(2, this.getUint8(byteOffset + 2));\n this._internalBuffer.setUint8(3, this.getUint8(byteOffset + 3));\n this._internalBuffer.setUint8(4, this.getUint8(byteOffset + 4));\n this._internalBuffer.setUint8(5, this.getUint8(byteOffset + 5));\n this._internalBuffer.setUint8(6, this.getUint8(byteOffset + 6));\n this._internalBuffer.setUint8(7, this.getUint8(byteOffset + 7));\n return this._internalBuffer.getFloat64(0, littleEndian);\n }\n }, {\n key: \"getInt16\",\n value: function getInt16(byteOffset, littleEndian) {\n this._internalBuffer.setUint8(0, this.getUint8(byteOffset + 0));\n this._internalBuffer.setUint8(1, this.getUint8(byteOffset + 1));\n return this._internalBuffer.getInt16(0, littleEndian);\n }\n }, {\n key: \"getInt32\",\n value: function getInt32(byteOffset, littleEndian) {\n this._internalBuffer.setUint8(0, this.getUint8(byteOffset + 0));\n this._internalBuffer.setUint8(1, this.getUint8(byteOffset + 1));\n this._internalBuffer.setUint8(2, this.getUint8(byteOffset + 2));\n this._internalBuffer.setUint8(3, this.getUint8(byteOffset + 3));\n return this._internalBuffer.getInt32(0, littleEndian);\n }\n }, {\n key: \"getInt8\",\n value: function getInt8(byteOffset) {\n var _this$_findDataViewWi = this._findDataViewWithOffset(byteOffset),\n _this$_findDataViewWi2 = _slicedToArray__default[\"default\"](_this$_findDataViewWi, 2),\n dataView = _this$_findDataViewWi2[0],\n byteOffsetOfDataView = _this$_findDataViewWi2[1];\n return dataView.getInt8(byteOffset - byteOffsetOfDataView);\n }\n }, {\n key: \"getUint16\",\n value: function getUint16(byteOffset, littleEndian) {\n this._internalBuffer.setUint8(0, this.getUint8(byteOffset + 0));\n this._internalBuffer.setUint8(1, this.getUint8(byteOffset + 1));\n return this._internalBuffer.getUint16(0, littleEndian);\n }\n }, {\n key: \"getUint32\",\n value: function getUint32(byteOffset, littleEndian) {\n this._internalBuffer.setUint8(0, this.getUint8(byteOffset + 0));\n this._internalBuffer.setUint8(1, this.getUint8(byteOffset + 1));\n this._internalBuffer.setUint8(2, this.getUint8(byteOffset + 2));\n this._internalBuffer.setUint8(3, this.getUint8(byteOffset + 3));\n return this._internalBuffer.getUint32(0, littleEndian);\n }\n }, {\n key: \"getUint8\",\n value: function getUint8(byteOffset) {\n var _this$_findDataViewWi3 = this._findDataViewWithOffset(byteOffset),\n _this$_findDataViewWi4 = _slicedToArray__default[\"default\"](_this$_findDataViewWi3, 2),\n dataView = _this$_findDataViewWi4[0],\n byteOffsetOfDataView = _this$_findDataViewWi4[1];\n return dataView.getUint8(byteOffset - byteOffsetOfDataView);\n }\n }, {\n key: \"setFloat32\",\n value: function setFloat32(byteOffset, value, littleEndian) {\n this._internalBuffer.setFloat32(0, value, littleEndian);\n this.setUint8(byteOffset, this._internalBuffer.getUint8(0));\n this.setUint8(byteOffset + 1, this._internalBuffer.getUint8(1));\n this.setUint8(byteOffset + 2, this._internalBuffer.getUint8(2));\n this.setUint8(byteOffset + 3, this._internalBuffer.getUint8(3));\n }\n }, {\n key: \"setFloat64\",\n value: function setFloat64(byteOffset, value, littleEndian) {\n this._internalBuffer.setFloat64(0, value, littleEndian);\n this.setUint8(byteOffset, this._internalBuffer.getUint8(0));\n this.setUint8(byteOffset + 1, this._internalBuffer.getUint8(1));\n this.setUint8(byteOffset + 2, this._internalBuffer.getUint8(2));\n this.setUint8(byteOffset + 3, this._internalBuffer.getUint8(3));\n this.setUint8(byteOffset + 4, this._internalBuffer.getUint8(4));\n this.setUint8(byteOffset + 5, this._internalBuffer.getUint8(5));\n this.setUint8(byteOffset + 6, this._internalBuffer.getUint8(6));\n this.setUint8(byteOffset + 7, this._internalBuffer.getUint8(7));\n }\n }, {\n key: \"setInt16\",\n value: function setInt16(byteOffset, value, littleEndian) {\n this._internalBuffer.setInt16(0, value, littleEndian);\n this.setUint8(byteOffset, this._internalBuffer.getUint8(0));\n this.setUint8(byteOffset + 1, this._internalBuffer.getUint8(1));\n }\n }, {\n key: \"setInt32\",\n value: function setInt32(byteOffset, value, littleEndian) {\n this._internalBuffer.setInt32(0, value, littleEndian);\n this.setUint8(byteOffset, this._internalBuffer.getUint8(0));\n this.setUint8(byteOffset + 1, this._internalBuffer.getUint8(1));\n this.setUint8(byteOffset + 2, this._internalBuffer.getUint8(2));\n this.setUint8(byteOffset + 3, this._internalBuffer.getUint8(3));\n }\n }, {\n key: \"setInt8\",\n value: function setInt8(byteOffset, value) {\n var _this$_findDataViewWi5 = this._findDataViewWithOffset(byteOffset),\n _this$_findDataViewWi6 = _slicedToArray__default[\"default\"](_this$_findDataViewWi5, 2),\n dataView = _this$_findDataViewWi6[0],\n byteOffsetOfDataView = _this$_findDataViewWi6[1];\n dataView.setInt8(byteOffset - byteOffsetOfDataView, value);\n }\n }, {\n key: \"setUint16\",\n value: function setUint16(byteOffset, value, littleEndian) {\n this._internalBuffer.setUint16(0, value, littleEndian);\n this.setUint8(byteOffset, this._internalBuffer.getUint8(0));\n this.setUint8(byteOffset + 1, this._internalBuffer.getUint8(1));\n }\n }, {\n key: \"setUint32\",\n value: function setUint32(byteOffset, value, littleEndian) {\n this._internalBuffer.setUint32(0, value, littleEndian);\n this.setUint8(byteOffset, this._internalBuffer.getUint8(0));\n this.setUint8(byteOffset + 1, this._internalBuffer.getUint8(1));\n this.setUint8(byteOffset + 2, this._internalBuffer.getUint8(2));\n this.setUint8(byteOffset + 3, this._internalBuffer.getUint8(3));\n }\n }, {\n key: \"setUint8\",\n value: function setUint8(byteOffset, value) {\n var _this$_findDataViewWi7 = this._findDataViewWithOffset(byteOffset),\n _this$_findDataViewWi8 = _slicedToArray__default[\"default\"](_this$_findDataViewWi7, 2),\n dataView = _this$_findDataViewWi8[0],\n byteOffsetOfDataView = _this$_findDataViewWi8[1];\n dataView.setUint8(byteOffset - byteOffsetOfDataView, value);\n }\n }, {\n key: \"_findDataViewWithOffset\",\n value: function _findDataViewWithOffset(byteOffset) {\n var byteOffsetOfDataView = 0;\n var _iterator2 = _createForOfIteratorHelper(this._dataViews),\n _step2;\n try {\n for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n var dataView = _step2.value;\n var byteOffsetOfNextDataView = byteOffsetOfDataView + dataView.byteLength;\n if (byteOffset >= byteOffsetOfDataView && byteOffset < byteOffsetOfNextDataView) {\n return [dataView, byteOffsetOfDataView];\n }\n byteOffsetOfDataView = byteOffsetOfNextDataView;\n }\n } catch (err) {\n _iterator2.e(err);\n } finally {\n _iterator2.f();\n }\n throw new RangeError();\n }\n }]);\n return MultiBufferDataView;\n }();\n\n exports.MultiBufferDataView = MultiBufferDataView;\n\n Object.defineProperty(exports, '__esModule', { value: true });\n\n}));\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bigint: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","/**\n * @license React\n * react-dom.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n/*\n Modernizr 3.0.0pre (Custom Build) | MIT\n*/\n'use strict';var aa=require(\"react\"),ca=require(\"scheduler\");function p(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;cb}return!1}function v(a,b,c,d,e,f,g){this.acceptsBooleans=2===b||3===b||4===b;this.attributeName=d;this.attributeNamespace=e;this.mustUseProperty=c;this.propertyName=a;this.type=b;this.sanitizeURL=f;this.removeEmptyString=g}var z={};\n\"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style\".split(\" \").forEach(function(a){z[a]=new v(a,0,!1,a,null,!1,!1)});[[\"acceptCharset\",\"accept-charset\"],[\"className\",\"class\"],[\"htmlFor\",\"for\"],[\"httpEquiv\",\"http-equiv\"]].forEach(function(a){var b=a[0];z[b]=new v(b,1,!1,a[1],null,!1,!1)});[\"contentEditable\",\"draggable\",\"spellCheck\",\"value\"].forEach(function(a){z[a]=new v(a,2,!1,a.toLowerCase(),null,!1,!1)});\n[\"autoReverse\",\"externalResourcesRequired\",\"focusable\",\"preserveAlpha\"].forEach(function(a){z[a]=new v(a,2,!1,a,null,!1,!1)});\"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope\".split(\" \").forEach(function(a){z[a]=new v(a,3,!1,a.toLowerCase(),null,!1,!1)});\n[\"checked\",\"multiple\",\"muted\",\"selected\"].forEach(function(a){z[a]=new v(a,3,!0,a,null,!1,!1)});[\"capture\",\"download\"].forEach(function(a){z[a]=new v(a,4,!1,a,null,!1,!1)});[\"cols\",\"rows\",\"size\",\"span\"].forEach(function(a){z[a]=new v(a,6,!1,a,null,!1,!1)});[\"rowSpan\",\"start\"].forEach(function(a){z[a]=new v(a,5,!1,a.toLowerCase(),null,!1,!1)});var ra=/[\\-:]([a-z])/g;function sa(a){return a[1].toUpperCase()}\n\"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height\".split(\" \").forEach(function(a){var b=a.replace(ra,\nsa);z[b]=new v(b,1,!1,a,null,!1,!1)});\"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type\".split(\" \").forEach(function(a){var b=a.replace(ra,sa);z[b]=new v(b,1,!1,a,\"http://www.w3.org/1999/xlink\",!1,!1)});[\"xml:base\",\"xml:lang\",\"xml:space\"].forEach(function(a){var b=a.replace(ra,sa);z[b]=new v(b,1,!1,a,\"http://www.w3.org/XML/1998/namespace\",!1,!1)});[\"tabIndex\",\"crossOrigin\"].forEach(function(a){z[a]=new v(a,1,!1,a.toLowerCase(),null,!1,!1)});\nz.xlinkHref=new v(\"xlinkHref\",1,!1,\"xlink:href\",\"http://www.w3.org/1999/xlink\",!0,!1);[\"src\",\"href\",\"action\",\"formAction\"].forEach(function(a){z[a]=new v(a,1,!1,a.toLowerCase(),null,!0,!0)});\nfunction ta(a,b,c,d){var e=z.hasOwnProperty(b)?z[b]:null;if(null!==e?0!==e.type:d||!(2h||e[g]!==f[h]){var k=\"\\n\"+e[g].replace(\" at new \",\" at \");a.displayName&&k.includes(\"\")&&(k=k.replace(\"\",a.displayName));return k}while(1<=g&&0<=h)}break}}}finally{Na=!1,Error.prepareStackTrace=c}return(a=a?a.displayName||a.name:\"\")?Ma(a):\"\"}\nfunction Pa(a){switch(a.tag){case 5:return Ma(a.type);case 16:return Ma(\"Lazy\");case 13:return Ma(\"Suspense\");case 19:return Ma(\"SuspenseList\");case 0:case 2:case 15:return a=Oa(a.type,!1),a;case 11:return a=Oa(a.type.render,!1),a;case 1:return a=Oa(a.type,!0),a;default:return\"\"}}\nfunction Qa(a){if(null==a)return null;if(\"function\"===typeof a)return a.displayName||a.name||null;if(\"string\"===typeof a)return a;switch(a){case ya:return\"Fragment\";case wa:return\"Portal\";case Aa:return\"Profiler\";case za:return\"StrictMode\";case Ea:return\"Suspense\";case Fa:return\"SuspenseList\"}if(\"object\"===typeof a)switch(a.$$typeof){case Ca:return(a.displayName||\"Context\")+\".Consumer\";case Ba:return(a._context.displayName||\"Context\")+\".Provider\";case Da:var b=a.render;a=a.displayName;a||(a=b.displayName||\nb.name||\"\",a=\"\"!==a?\"ForwardRef(\"+a+\")\":\"ForwardRef\");return a;case Ga:return b=a.displayName||null,null!==b?b:Qa(a.type)||\"Memo\";case Ha:b=a._payload;a=a._init;try{return Qa(a(b))}catch(c){}}return null}\nfunction Ra(a){var b=a.type;switch(a.tag){case 24:return\"Cache\";case 9:return(b.displayName||\"Context\")+\".Consumer\";case 10:return(b._context.displayName||\"Context\")+\".Provider\";case 18:return\"DehydratedFragment\";case 11:return a=b.render,a=a.displayName||a.name||\"\",b.displayName||(\"\"!==a?\"ForwardRef(\"+a+\")\":\"ForwardRef\");case 7:return\"Fragment\";case 5:return b;case 4:return\"Portal\";case 3:return\"Root\";case 6:return\"Text\";case 16:return Qa(b);case 8:return b===za?\"StrictMode\":\"Mode\";case 22:return\"Offscreen\";\ncase 12:return\"Profiler\";case 21:return\"Scope\";case 13:return\"Suspense\";case 19:return\"SuspenseList\";case 25:return\"TracingMarker\";case 1:case 0:case 17:case 2:case 14:case 15:if(\"function\"===typeof b)return b.displayName||b.name||null;if(\"string\"===typeof b)return b}return null}function Sa(a){switch(typeof a){case \"boolean\":case \"number\":case \"string\":case \"undefined\":return a;case \"object\":return a;default:return\"\"}}\nfunction Ta(a){var b=a.type;return(a=a.nodeName)&&\"input\"===a.toLowerCase()&&(\"checkbox\"===b||\"radio\"===b)}\nfunction Ua(a){var b=Ta(a)?\"checked\":\"value\",c=Object.getOwnPropertyDescriptor(a.constructor.prototype,b),d=\"\"+a[b];if(!a.hasOwnProperty(b)&&\"undefined\"!==typeof c&&\"function\"===typeof c.get&&\"function\"===typeof c.set){var e=c.get,f=c.set;Object.defineProperty(a,b,{configurable:!0,get:function(){return e.call(this)},set:function(a){d=\"\"+a;f.call(this,a)}});Object.defineProperty(a,b,{enumerable:c.enumerable});return{getValue:function(){return d},setValue:function(a){d=\"\"+a},stopTracking:function(){a._valueTracker=\nnull;delete a[b]}}}}function Va(a){a._valueTracker||(a._valueTracker=Ua(a))}function Wa(a){if(!a)return!1;var b=a._valueTracker;if(!b)return!0;var c=b.getValue();var d=\"\";a&&(d=Ta(a)?a.checked?\"true\":\"false\":a.value);a=d;return a!==c?(b.setValue(a),!0):!1}function Xa(a){a=a||(\"undefined\"!==typeof document?document:void 0);if(\"undefined\"===typeof a)return null;try{return a.activeElement||a.body}catch(b){return a.body}}\nfunction Ya(a,b){var c=b.checked;return A({},b,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=c?c:a._wrapperState.initialChecked})}function Za(a,b){var c=null==b.defaultValue?\"\":b.defaultValue,d=null!=b.checked?b.checked:b.defaultChecked;c=Sa(null!=b.value?b.value:c);a._wrapperState={initialChecked:d,initialValue:c,controlled:\"checkbox\"===b.type||\"radio\"===b.type?null!=b.checked:null!=b.value}}function ab(a,b){b=b.checked;null!=b&&ta(a,\"checked\",b,!1)}\nfunction bb(a,b){ab(a,b);var c=Sa(b.value),d=b.type;if(null!=c)if(\"number\"===d){if(0===c&&\"\"===a.value||a.value!=c)a.value=\"\"+c}else a.value!==\"\"+c&&(a.value=\"\"+c);else if(\"submit\"===d||\"reset\"===d){a.removeAttribute(\"value\");return}b.hasOwnProperty(\"value\")?cb(a,b.type,c):b.hasOwnProperty(\"defaultValue\")&&cb(a,b.type,Sa(b.defaultValue));null==b.checked&&null!=b.defaultChecked&&(a.defaultChecked=!!b.defaultChecked)}\nfunction db(a,b,c){if(b.hasOwnProperty(\"value\")||b.hasOwnProperty(\"defaultValue\")){var d=b.type;if(!(\"submit\"!==d&&\"reset\"!==d||void 0!==b.value&&null!==b.value))return;b=\"\"+a._wrapperState.initialValue;c||b===a.value||(a.value=b);a.defaultValue=b}c=a.name;\"\"!==c&&(a.name=\"\");a.defaultChecked=!!a._wrapperState.initialChecked;\"\"!==c&&(a.name=c)}\nfunction cb(a,b,c){if(\"number\"!==b||Xa(a.ownerDocument)!==a)null==c?a.defaultValue=\"\"+a._wrapperState.initialValue:a.defaultValue!==\"\"+c&&(a.defaultValue=\"\"+c)}var eb=Array.isArray;\nfunction fb(a,b,c,d){a=a.options;if(b){b={};for(var e=0;e\"+b.valueOf().toString()+\"\";for(b=mb.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;b.firstChild;)a.appendChild(b.firstChild)}});\nfunction ob(a,b){if(b){var c=a.firstChild;if(c&&c===a.lastChild&&3===c.nodeType){c.nodeValue=b;return}}a.textContent=b}\nvar pb={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,\nzoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},qb=[\"Webkit\",\"ms\",\"Moz\",\"O\"];Object.keys(pb).forEach(function(a){qb.forEach(function(b){b=b+a.charAt(0).toUpperCase()+a.substring(1);pb[b]=pb[a]})});function rb(a,b,c){return null==b||\"boolean\"===typeof b||\"\"===b?\"\":c||\"number\"!==typeof b||0===b||pb.hasOwnProperty(a)&&pb[a]?(\"\"+b).trim():b+\"px\"}\nfunction sb(a,b){a=a.style;for(var c in b)if(b.hasOwnProperty(c)){var d=0===c.indexOf(\"--\"),e=rb(c,b[c],d);\"float\"===c&&(c=\"cssFloat\");d?a.setProperty(c,e):a[c]=e}}var tb=A({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});\nfunction ub(a,b){if(b){if(tb[a]&&(null!=b.children||null!=b.dangerouslySetInnerHTML))throw Error(p(137,a));if(null!=b.dangerouslySetInnerHTML){if(null!=b.children)throw Error(p(60));if(\"object\"!==typeof b.dangerouslySetInnerHTML||!(\"__html\"in b.dangerouslySetInnerHTML))throw Error(p(61));}if(null!=b.style&&\"object\"!==typeof b.style)throw Error(p(62));}}\nfunction vb(a,b){if(-1===a.indexOf(\"-\"))return\"string\"===typeof b.is;switch(a){case \"annotation-xml\":case \"color-profile\":case \"font-face\":case \"font-face-src\":case \"font-face-uri\":case \"font-face-format\":case \"font-face-name\":case \"missing-glyph\":return!1;default:return!0}}var wb=null;function xb(a){a=a.target||a.srcElement||window;a.correspondingUseElement&&(a=a.correspondingUseElement);return 3===a.nodeType?a.parentNode:a}var yb=null,zb=null,Ab=null;\nfunction Bb(a){if(a=Cb(a)){if(\"function\"!==typeof yb)throw Error(p(280));var b=a.stateNode;b&&(b=Db(b),yb(a.stateNode,a.type,b))}}function Eb(a){zb?Ab?Ab.push(a):Ab=[a]:zb=a}function Fb(){if(zb){var a=zb,b=Ab;Ab=zb=null;Bb(a);if(b)for(a=0;a>>=0;return 0===a?32:31-(pc(a)/qc|0)|0}var rc=64,sc=4194304;\nfunction tc(a){switch(a&-a){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return a&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return a&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;\ndefault:return a}}function uc(a,b){var c=a.pendingLanes;if(0===c)return 0;var d=0,e=a.suspendedLanes,f=a.pingedLanes,g=c&268435455;if(0!==g){var h=g&~e;0!==h?d=tc(h):(f&=g,0!==f&&(d=tc(f)))}else g=c&~e,0!==g?d=tc(g):0!==f&&(d=tc(f));if(0===d)return 0;if(0!==b&&b!==d&&0===(b&e)&&(e=d&-d,f=b&-b,e>=f||16===e&&0!==(f&4194240)))return b;0!==(d&4)&&(d|=c&16);b=a.entangledLanes;if(0!==b)for(a=a.entanglements,b&=d;0c;c++)b.push(a);return b}\nfunction Ac(a,b,c){a.pendingLanes|=b;536870912!==b&&(a.suspendedLanes=0,a.pingedLanes=0);a=a.eventTimes;b=31-oc(b);a[b]=c}function Bc(a,b){var c=a.pendingLanes&~b;a.pendingLanes=b;a.suspendedLanes=0;a.pingedLanes=0;a.expiredLanes&=b;a.mutableReadLanes&=b;a.entangledLanes&=b;b=a.entanglements;var d=a.eventTimes;for(a=a.expirationTimes;0=be),ee=String.fromCharCode(32),fe=!1;\nfunction ge(a,b){switch(a){case \"keyup\":return-1!==$d.indexOf(b.keyCode);case \"keydown\":return 229!==b.keyCode;case \"keypress\":case \"mousedown\":case \"focusout\":return!0;default:return!1}}function he(a){a=a.detail;return\"object\"===typeof a&&\"data\"in a?a.data:null}var ie=!1;function je(a,b){switch(a){case \"compositionend\":return he(b);case \"keypress\":if(32!==b.which)return null;fe=!0;return ee;case \"textInput\":return a=b.data,a===ee&&fe?null:a;default:return null}}\nfunction ke(a,b){if(ie)return\"compositionend\"===a||!ae&&ge(a,b)?(a=nd(),md=ld=kd=null,ie=!1,a):null;switch(a){case \"paste\":return null;case \"keypress\":if(!(b.ctrlKey||b.altKey||b.metaKey)||b.ctrlKey&&b.altKey){if(b.char&&1=b)return{node:c,offset:b-a};a=d}a:{for(;c;){if(c.nextSibling){c=c.nextSibling;break a}c=c.parentNode}c=void 0}c=Je(c)}}function Le(a,b){return a&&b?a===b?!0:a&&3===a.nodeType?!1:b&&3===b.nodeType?Le(a,b.parentNode):\"contains\"in a?a.contains(b):a.compareDocumentPosition?!!(a.compareDocumentPosition(b)&16):!1:!1}\nfunction Me(){for(var a=window,b=Xa();b instanceof a.HTMLIFrameElement;){try{var c=\"string\"===typeof b.contentWindow.location.href}catch(d){c=!1}if(c)a=b.contentWindow;else break;b=Xa(a.document)}return b}function Ne(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return b&&(\"input\"===b&&(\"text\"===a.type||\"search\"===a.type||\"tel\"===a.type||\"url\"===a.type||\"password\"===a.type)||\"textarea\"===b||\"true\"===a.contentEditable)}\nfunction Oe(a){var b=Me(),c=a.focusedElem,d=a.selectionRange;if(b!==c&&c&&c.ownerDocument&&Le(c.ownerDocument.documentElement,c)){if(null!==d&&Ne(c))if(b=d.start,a=d.end,void 0===a&&(a=b),\"selectionStart\"in c)c.selectionStart=b,c.selectionEnd=Math.min(a,c.value.length);else if(a=(b=c.ownerDocument||document)&&b.defaultView||window,a.getSelection){a=a.getSelection();var e=c.textContent.length,f=Math.min(d.start,e);d=void 0===d.end?f:Math.min(d.end,e);!a.extend&&f>d&&(e=d,d=f,f=e);e=Ke(c,f);var g=Ke(c,\nd);e&&g&&(1!==a.rangeCount||a.anchorNode!==e.node||a.anchorOffset!==e.offset||a.focusNode!==g.node||a.focusOffset!==g.offset)&&(b=b.createRange(),b.setStart(e.node,e.offset),a.removeAllRanges(),f>d?(a.addRange(b),a.extend(g.node,g.offset)):(b.setEnd(g.node,g.offset),a.addRange(b)))}b=[];for(a=c;a=a.parentNode;)1===a.nodeType&&b.push({element:a,left:a.scrollLeft,top:a.scrollTop});\"function\"===typeof c.focus&&c.focus();for(c=0;c=document.documentMode,Qe=null,Re=null,Se=null,Te=!1;\nfunction Ue(a,b,c){var d=c.window===c?c.document:9===c.nodeType?c:c.ownerDocument;Te||null==Qe||Qe!==Xa(d)||(d=Qe,\"selectionStart\"in d&&Ne(d)?d={start:d.selectionStart,end:d.selectionEnd}:(d=(d.ownerDocument&&d.ownerDocument.defaultView||window).getSelection(),d={anchorNode:d.anchorNode,anchorOffset:d.anchorOffset,focusNode:d.focusNode,focusOffset:d.focusOffset}),Se&&Ie(Se,d)||(Se=d,d=oe(Re,\"onSelect\"),0Tf||(a.current=Sf[Tf],Sf[Tf]=null,Tf--)}function G(a,b){Tf++;Sf[Tf]=a.current;a.current=b}var Vf={},H=Uf(Vf),Wf=Uf(!1),Xf=Vf;function Yf(a,b){var c=a.type.contextTypes;if(!c)return Vf;var d=a.stateNode;if(d&&d.__reactInternalMemoizedUnmaskedChildContext===b)return d.__reactInternalMemoizedMaskedChildContext;var e={},f;for(f in c)e[f]=b[f];d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=b,a.__reactInternalMemoizedMaskedChildContext=e);return e}\nfunction Zf(a){a=a.childContextTypes;return null!==a&&void 0!==a}function $f(){E(Wf);E(H)}function ag(a,b,c){if(H.current!==Vf)throw Error(p(168));G(H,b);G(Wf,c)}function bg(a,b,c){var d=a.stateNode;b=b.childContextTypes;if(\"function\"!==typeof d.getChildContext)return c;d=d.getChildContext();for(var e in d)if(!(e in b))throw Error(p(108,Ra(a)||\"Unknown\",e));return A({},c,d)}\nfunction cg(a){a=(a=a.stateNode)&&a.__reactInternalMemoizedMergedChildContext||Vf;Xf=H.current;G(H,a);G(Wf,Wf.current);return!0}function dg(a,b,c){var d=a.stateNode;if(!d)throw Error(p(169));c?(a=bg(a,b,Xf),d.__reactInternalMemoizedMergedChildContext=a,E(Wf),E(H),G(H,a)):E(Wf);G(Wf,c)}var eg=null,fg=!1,gg=!1;function hg(a){null===eg?eg=[a]:eg.push(a)}function ig(a){fg=!0;hg(a)}\nfunction jg(){if(!gg&&null!==eg){gg=!0;var a=0,b=C;try{var c=eg;for(C=1;a>=g;e-=g;rg=1<<32-oc(b)+e|c<w?(x=u,u=null):x=u.sibling;var n=r(e,u,h[w],k);if(null===n){null===u&&(u=x);break}a&&u&&null===n.alternate&&b(e,u);g=f(n,g,w);null===m?l=n:m.sibling=n;m=n;u=x}if(w===h.length)return c(e,u),I&&tg(e,w),l;if(null===u){for(;ww?(x=m,m=null):x=m.sibling;var t=r(e,m,n.value,k);if(null===t){null===m&&(m=x);break}a&&m&&null===t.alternate&&b(e,m);g=f(t,g,w);null===u?l=t:u.sibling=t;u=t;m=x}if(n.done)return c(e,\nm),I&&tg(e,w),l;if(null===m){for(;!n.done;w++,n=h.next())n=q(e,n.value,k),null!==n&&(g=f(n,g,w),null===u?l=n:u.sibling=n,u=n);I&&tg(e,w);return l}for(m=d(e,m);!n.done;w++,n=h.next())n=y(m,e,w,n.value,k),null!==n&&(a&&null!==n.alternate&&m.delete(null===n.key?w:n.key),g=f(n,g,w),null===u?l=n:u.sibling=n,u=n);a&&m.forEach(function(a){return b(e,a)});I&&tg(e,w);return l}function J(a,d,f,h){\"object\"===typeof f&&null!==f&&f.type===ya&&null===f.key&&(f=f.props.children);if(\"object\"===typeof f&&null!==f){switch(f.$$typeof){case va:a:{for(var k=\nf.key,l=d;null!==l;){if(l.key===k){k=f.type;if(k===ya){if(7===l.tag){c(a,l.sibling);d=e(l,f.props.children);d.return=a;a=d;break a}}else if(l.elementType===k||\"object\"===typeof k&&null!==k&&k.$$typeof===Ha&&uh(k)===l.type){c(a,l.sibling);d=e(l,f.props);d.ref=sh(a,l,f);d.return=a;a=d;break a}c(a,l);break}else b(a,l);l=l.sibling}f.type===ya?(d=Ah(f.props.children,a.mode,h,f.key),d.return=a,a=d):(h=yh(f.type,f.key,f.props,null,a.mode,h),h.ref=sh(a,d,f),h.return=a,a=h)}return g(a);case wa:a:{for(l=f.key;null!==\nd;){if(d.key===l)if(4===d.tag&&d.stateNode.containerInfo===f.containerInfo&&d.stateNode.implementation===f.implementation){c(a,d.sibling);d=e(d,f.children||[]);d.return=a;a=d;break a}else{c(a,d);break}else b(a,d);d=d.sibling}d=zh(f,a.mode,h);d.return=a;a=d}return g(a);case Ha:return l=f._init,J(a,d,l(f._payload),h)}if(eb(f))return n(a,d,f,h);if(Ka(f))return t(a,d,f,h);th(a,f)}return\"string\"===typeof f&&\"\"!==f||\"number\"===typeof f?(f=\"\"+f,null!==d&&6===d.tag?(c(a,d.sibling),d=e(d,f),d.return=a,a=d):\n(c(a,d),d=xh(f,a.mode,h),d.return=a,a=d),g(a)):c(a,d)}return J}var Bh=vh(!0),Ch=vh(!1),Dh={},Eh=Uf(Dh),Fh=Uf(Dh),Gh=Uf(Dh);function Hh(a){if(a===Dh)throw Error(p(174));return a}function Ih(a,b){G(Gh,b);G(Fh,a);G(Eh,Dh);a=b.nodeType;switch(a){case 9:case 11:b=(b=b.documentElement)?b.namespaceURI:lb(null,\"\");break;default:a=8===a?b.parentNode:b,b=a.namespaceURI||null,a=a.tagName,b=lb(b,a)}E(Eh);G(Eh,b)}function Jh(){E(Eh);E(Fh);E(Gh)}\nfunction Kh(a){Hh(Gh.current);var b=Hh(Eh.current);var c=lb(b,a.type);b!==c&&(G(Fh,a),G(Eh,c))}function Lh(a){Fh.current===a&&(E(Eh),E(Fh))}var M=Uf(0);\nfunction Mh(a){for(var b=a;null!==b;){if(13===b.tag){var c=b.memoizedState;if(null!==c&&(c=c.dehydrated,null===c||\"$?\"===c.data||\"$!\"===c.data))return b}else if(19===b.tag&&void 0!==b.memoizedProps.revealOrder){if(0!==(b.flags&128))return b}else if(null!==b.child){b.child.return=b;b=b.child;continue}if(b===a)break;for(;null===b.sibling;){if(null===b.return||b.return===a)return null;b=b.return}b.sibling.return=b.return;b=b.sibling}return null}var Nh=[];\nfunction Oh(){for(var a=0;ac?c:4;a(!0);var d=Qh.transition;Qh.transition={};try{a(!1),b()}finally{C=c,Qh.transition=d}}function Fi(){return di().memoizedState}\nfunction Gi(a,b,c){var d=lh(a);c={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(Hi(a))Ii(b,c);else if(c=Yg(a,b,c,d),null!==c){var e=L();mh(c,a,d,e);Ji(c,b,d)}}\nfunction ri(a,b,c){var d=lh(a),e={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(Hi(a))Ii(b,e);else{var f=a.alternate;if(0===a.lanes&&(null===f||0===f.lanes)&&(f=b.lastRenderedReducer,null!==f))try{var g=b.lastRenderedState,h=f(g,c);e.hasEagerState=!0;e.eagerState=h;if(He(h,g)){var k=b.interleaved;null===k?(e.next=e,Xg(b)):(e.next=k.next,k.next=e);b.interleaved=e;return}}catch(l){}finally{}c=Yg(a,b,e,d);null!==c&&(e=L(),mh(c,a,d,e),Ji(c,b,d))}}\nfunction Hi(a){var b=a.alternate;return a===N||null!==b&&b===N}function Ii(a,b){Th=Sh=!0;var c=a.pending;null===c?b.next=b:(b.next=c.next,c.next=b);a.pending=b}function Ji(a,b,c){if(0!==(c&4194240)){var d=b.lanes;d&=a.pendingLanes;c|=d;b.lanes=c;Cc(a,c)}}\nvar ai={readContext:Vg,useCallback:Q,useContext:Q,useEffect:Q,useImperativeHandle:Q,useInsertionEffect:Q,useLayoutEffect:Q,useMemo:Q,useReducer:Q,useRef:Q,useState:Q,useDebugValue:Q,useDeferredValue:Q,useTransition:Q,useMutableSource:Q,useSyncExternalStore:Q,useId:Q,unstable_isNewReconciler:!1},Yh={readContext:Vg,useCallback:function(a,b){ci().memoizedState=[a,void 0===b?null:b];return a},useContext:Vg,useEffect:vi,useImperativeHandle:function(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return ti(4194308,\n4,yi.bind(null,b,a),c)},useLayoutEffect:function(a,b){return ti(4194308,4,a,b)},useInsertionEffect:function(a,b){return ti(4,2,a,b)},useMemo:function(a,b){var c=ci();b=void 0===b?null:b;a=a();c.memoizedState=[a,b];return a},useReducer:function(a,b,c){var d=ci();b=void 0!==c?c(b):b;d.memoizedState=d.baseState=b;a={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:a,lastRenderedState:b};d.queue=a;a=a.dispatch=Gi.bind(null,N,a);return[d.memoizedState,a]},useRef:function(a){var b=\nci();a={current:a};return b.memoizedState=a},useState:qi,useDebugValue:Ai,useDeferredValue:function(a){return ci().memoizedState=a},useTransition:function(){var a=qi(!1),b=a[0];a=Ei.bind(null,a[1]);ci().memoizedState=a;return[b,a]},useMutableSource:function(){},useSyncExternalStore:function(a,b,c){var d=N,e=ci();if(I){if(void 0===c)throw Error(p(407));c=c()}else{c=b();if(null===R)throw Error(p(349));0!==(Rh&30)||ni(d,b,c)}e.memoizedState=c;var f={value:c,getSnapshot:b};e.queue=f;vi(ki.bind(null,d,\nf,a),[a]);d.flags|=2048;li(9,mi.bind(null,d,f,c,b),void 0,null);return c},useId:function(){var a=ci(),b=R.identifierPrefix;if(I){var c=sg;var d=rg;c=(d&~(1<<32-oc(d)-1)).toString(32)+c;b=\":\"+b+\"R\"+c;c=Uh++;0\\x3c/script>\",a=a.removeChild(a.firstChild)):\n\"string\"===typeof d.is?a=g.createElement(c,{is:d.is}):(a=g.createElement(c),\"select\"===c&&(g=a,d.multiple?g.multiple=!0:d.size&&(g.size=d.size))):a=g.createElementNS(a,c);a[Of]=b;a[Pf]=d;Aj(a,b,!1,!1);b.stateNode=a;a:{g=vb(c,d);switch(c){case \"dialog\":D(\"cancel\",a);D(\"close\",a);e=d;break;case \"iframe\":case \"object\":case \"embed\":D(\"load\",a);e=d;break;case \"video\":case \"audio\":for(e=0;eHj&&(b.flags|=128,d=!0,Ej(f,!1),b.lanes=4194304)}else{if(!d)if(a=Mh(g),null!==a){if(b.flags|=128,d=!0,c=a.updateQueue,null!==c&&(b.updateQueue=c,b.flags|=4),Ej(f,!0),null===f.tail&&\"hidden\"===f.tailMode&&!g.alternate&&!I)return S(b),null}else 2*B()-f.renderingStartTime>Hj&&1073741824!==c&&(b.flags|=128,d=!0,Ej(f,!1),b.lanes=4194304);f.isBackwards?(g.sibling=b.child,b.child=g):(c=f.last,null!==c?c.sibling=g:b.child=g,f.last=g)}if(null!==f.tail)return b=f.tail,f.rendering=\nb,f.tail=b.sibling,f.renderingStartTime=B(),b.sibling=null,c=M.current,G(M,d?c&1|2:c&1),b;S(b);return null;case 22:case 23:return Ij(),d=null!==b.memoizedState,null!==a&&null!==a.memoizedState!==d&&(b.flags|=8192),d&&0!==(b.mode&1)?0!==(gj&1073741824)&&(S(b),b.subtreeFlags&6&&(b.flags|=8192)):S(b),null;case 24:return null;case 25:return null}throw Error(p(156,b.tag));}\nfunction Jj(a,b){wg(b);switch(b.tag){case 1:return Zf(b.type)&&$f(),a=b.flags,a&65536?(b.flags=a&-65537|128,b):null;case 3:return Jh(),E(Wf),E(H),Oh(),a=b.flags,0!==(a&65536)&&0===(a&128)?(b.flags=a&-65537|128,b):null;case 5:return Lh(b),null;case 13:E(M);a=b.memoizedState;if(null!==a&&null!==a.dehydrated){if(null===b.alternate)throw Error(p(340));Ig()}a=b.flags;return a&65536?(b.flags=a&-65537|128,b):null;case 19:return E(M),null;case 4:return Jh(),null;case 10:return Rg(b.type._context),null;case 22:case 23:return Ij(),\nnull;case 24:return null;default:return null}}var Kj=!1,U=!1,Lj=\"function\"===typeof WeakSet?WeakSet:Set,V=null;function Mj(a,b){var c=a.ref;if(null!==c)if(\"function\"===typeof c)try{c(null)}catch(d){W(a,b,d)}else c.current=null}function Nj(a,b,c){try{c()}catch(d){W(a,b,d)}}var Oj=!1;\nfunction Pj(a,b){Cf=dd;a=Me();if(Ne(a)){if(\"selectionStart\"in a)var c={start:a.selectionStart,end:a.selectionEnd};else a:{c=(c=a.ownerDocument)&&c.defaultView||window;var d=c.getSelection&&c.getSelection();if(d&&0!==d.rangeCount){c=d.anchorNode;var e=d.anchorOffset,f=d.focusNode;d=d.focusOffset;try{c.nodeType,f.nodeType}catch(F){c=null;break a}var g=0,h=-1,k=-1,l=0,m=0,q=a,r=null;b:for(;;){for(var y;;){q!==c||0!==e&&3!==q.nodeType||(h=g+e);q!==f||0!==d&&3!==q.nodeType||(k=g+d);3===q.nodeType&&(g+=\nq.nodeValue.length);if(null===(y=q.firstChild))break;r=q;q=y}for(;;){if(q===a)break b;r===c&&++l===e&&(h=g);r===f&&++m===d&&(k=g);if(null!==(y=q.nextSibling))break;q=r;r=q.parentNode}q=y}c=-1===h||-1===k?null:{start:h,end:k}}else c=null}c=c||{start:0,end:0}}else c=null;Df={focusedElem:a,selectionRange:c};dd=!1;for(V=b;null!==V;)if(b=V,a=b.child,0!==(b.subtreeFlags&1028)&&null!==a)a.return=b,V=a;else for(;null!==V;){b=V;try{var n=b.alternate;if(0!==(b.flags&1024))switch(b.tag){case 0:case 11:case 15:break;\ncase 1:if(null!==n){var t=n.memoizedProps,J=n.memoizedState,x=b.stateNode,w=x.getSnapshotBeforeUpdate(b.elementType===b.type?t:Lg(b.type,t),J);x.__reactInternalSnapshotBeforeUpdate=w}break;case 3:var u=b.stateNode.containerInfo;1===u.nodeType?u.textContent=\"\":9===u.nodeType&&u.documentElement&&u.removeChild(u.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(p(163));}}catch(F){W(b,b.return,F)}a=b.sibling;if(null!==a){a.return=b.return;V=a;break}V=b.return}n=Oj;Oj=!1;return n}\nfunction Qj(a,b,c){var d=b.updateQueue;d=null!==d?d.lastEffect:null;if(null!==d){var e=d=d.next;do{if((e.tag&a)===a){var f=e.destroy;e.destroy=void 0;void 0!==f&&Nj(b,c,f)}e=e.next}while(e!==d)}}function Rj(a,b){b=b.updateQueue;b=null!==b?b.lastEffect:null;if(null!==b){var c=b=b.next;do{if((c.tag&a)===a){var d=c.create;c.destroy=d()}c=c.next}while(c!==b)}}function Sj(a){var b=a.ref;if(null!==b){var c=a.stateNode;switch(a.tag){case 5:a=c;break;default:a=c}\"function\"===typeof b?b(a):b.current=a}}\nfunction Tj(a){var b=a.alternate;null!==b&&(a.alternate=null,Tj(b));a.child=null;a.deletions=null;a.sibling=null;5===a.tag&&(b=a.stateNode,null!==b&&(delete b[Of],delete b[Pf],delete b[of],delete b[Qf],delete b[Rf]));a.stateNode=null;a.return=null;a.dependencies=null;a.memoizedProps=null;a.memoizedState=null;a.pendingProps=null;a.stateNode=null;a.updateQueue=null}function Uj(a){return 5===a.tag||3===a.tag||4===a.tag}\nfunction Vj(a){a:for(;;){for(;null===a.sibling;){if(null===a.return||Uj(a.return))return null;a=a.return}a.sibling.return=a.return;for(a=a.sibling;5!==a.tag&&6!==a.tag&&18!==a.tag;){if(a.flags&2)continue a;if(null===a.child||4===a.tag)continue a;else a.child.return=a,a=a.child}if(!(a.flags&2))return a.stateNode}}\nfunction Wj(a,b,c){var d=a.tag;if(5===d||6===d)a=a.stateNode,b?8===c.nodeType?c.parentNode.insertBefore(a,b):c.insertBefore(a,b):(8===c.nodeType?(b=c.parentNode,b.insertBefore(a,c)):(b=c,b.appendChild(a)),c=c._reactRootContainer,null!==c&&void 0!==c||null!==b.onclick||(b.onclick=Bf));else if(4!==d&&(a=a.child,null!==a))for(Wj(a,b,c),a=a.sibling;null!==a;)Wj(a,b,c),a=a.sibling}\nfunction Xj(a,b,c){var d=a.tag;if(5===d||6===d)a=a.stateNode,b?c.insertBefore(a,b):c.appendChild(a);else if(4!==d&&(a=a.child,null!==a))for(Xj(a,b,c),a=a.sibling;null!==a;)Xj(a,b,c),a=a.sibling}var X=null,Yj=!1;function Zj(a,b,c){for(c=c.child;null!==c;)ak(a,b,c),c=c.sibling}\nfunction ak(a,b,c){if(lc&&\"function\"===typeof lc.onCommitFiberUnmount)try{lc.onCommitFiberUnmount(kc,c)}catch(h){}switch(c.tag){case 5:U||Mj(c,b);case 6:var d=X,e=Yj;X=null;Zj(a,b,c);X=d;Yj=e;null!==X&&(Yj?(a=X,c=c.stateNode,8===a.nodeType?a.parentNode.removeChild(c):a.removeChild(c)):X.removeChild(c.stateNode));break;case 18:null!==X&&(Yj?(a=X,c=c.stateNode,8===a.nodeType?Kf(a.parentNode,c):1===a.nodeType&&Kf(a,c),bd(a)):Kf(X,c.stateNode));break;case 4:d=X;e=Yj;X=c.stateNode.containerInfo;Yj=!0;\nZj(a,b,c);X=d;Yj=e;break;case 0:case 11:case 14:case 15:if(!U&&(d=c.updateQueue,null!==d&&(d=d.lastEffect,null!==d))){e=d=d.next;do{var f=e,g=f.destroy;f=f.tag;void 0!==g&&(0!==(f&2)?Nj(c,b,g):0!==(f&4)&&Nj(c,b,g));e=e.next}while(e!==d)}Zj(a,b,c);break;case 1:if(!U&&(Mj(c,b),d=c.stateNode,\"function\"===typeof d.componentWillUnmount))try{d.props=c.memoizedProps,d.state=c.memoizedState,d.componentWillUnmount()}catch(h){W(c,b,h)}Zj(a,b,c);break;case 21:Zj(a,b,c);break;case 22:c.mode&1?(U=(d=U)||null!==\nc.memoizedState,Zj(a,b,c),U=d):Zj(a,b,c);break;default:Zj(a,b,c)}}function bk(a){var b=a.updateQueue;if(null!==b){a.updateQueue=null;var c=a.stateNode;null===c&&(c=a.stateNode=new Lj);b.forEach(function(b){var d=ck.bind(null,a,b);c.has(b)||(c.add(b),b.then(d,d))})}}\nfunction dk(a,b){var c=b.deletions;if(null!==c)for(var d=0;de&&(e=g);d&=~f}d=e;d=B()-d;d=(120>d?120:480>d?480:1080>d?1080:1920>d?1920:3E3>d?3E3:4320>d?4320:1960*mk(d/1960))-d;if(10a?16:a;if(null===xk)var d=!1;else{a=xk;xk=null;yk=0;if(0!==(K&6))throw Error(p(331));var e=K;K|=4;for(V=a.current;null!==V;){var f=V,g=f.child;if(0!==(V.flags&16)){var h=f.deletions;if(null!==h){for(var k=0;kB()-gk?Lk(a,0):sk|=c);Ek(a,b)}function Zk(a,b){0===b&&(0===(a.mode&1)?b=1:(b=sc,sc<<=1,0===(sc&130023424)&&(sc=4194304)));var c=L();a=Zg(a,b);null!==a&&(Ac(a,b,c),Ek(a,c))}function vj(a){var b=a.memoizedState,c=0;null!==b&&(c=b.retryLane);Zk(a,c)}\nfunction ck(a,b){var c=0;switch(a.tag){case 13:var d=a.stateNode;var e=a.memoizedState;null!==e&&(c=e.retryLane);break;case 19:d=a.stateNode;break;default:throw Error(p(314));}null!==d&&d.delete(b);Zk(a,c)}var Wk;\nWk=function(a,b,c){if(null!==a)if(a.memoizedProps!==b.pendingProps||Wf.current)Ug=!0;else{if(0===(a.lanes&c)&&0===(b.flags&128))return Ug=!1,zj(a,b,c);Ug=0!==(a.flags&131072)?!0:!1}else Ug=!1,I&&0!==(b.flags&1048576)&&ug(b,ng,b.index);b.lanes=0;switch(b.tag){case 2:var d=b.type;jj(a,b);a=b.pendingProps;var e=Yf(b,H.current);Tg(b,c);e=Xh(null,b,d,a,e,c);var f=bi();b.flags|=1;\"object\"===typeof e&&null!==e&&\"function\"===typeof e.render&&void 0===e.$$typeof?(b.tag=1,b.memoizedState=null,b.updateQueue=\nnull,Zf(d)?(f=!0,cg(b)):f=!1,b.memoizedState=null!==e.state&&void 0!==e.state?e.state:null,ah(b),e.updater=nh,b.stateNode=e,e._reactInternals=b,rh(b,d,a,c),b=kj(null,b,d,!0,f,c)):(b.tag=0,I&&f&&vg(b),Yi(null,b,e,c),b=b.child);return b;case 16:d=b.elementType;a:{jj(a,b);a=b.pendingProps;e=d._init;d=e(d._payload);b.type=d;e=b.tag=$k(d);a=Lg(d,a);switch(e){case 0:b=dj(null,b,d,a,c);break a;case 1:b=ij(null,b,d,a,c);break a;case 11:b=Zi(null,b,d,a,c);break a;case 14:b=aj(null,b,d,Lg(d.type,a),c);break a}throw Error(p(306,\nd,\"\"));}return b;case 0:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),dj(a,b,d,e,c);case 1:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),ij(a,b,d,e,c);case 3:a:{lj(b);if(null===a)throw Error(p(387));d=b.pendingProps;f=b.memoizedState;e=f.element;bh(a,b);gh(b,d,null,c);var g=b.memoizedState;d=g.element;if(f.isDehydrated)if(f={element:d,isDehydrated:!1,cache:g.cache,pendingSuspenseBoundaries:g.pendingSuspenseBoundaries,transitions:g.transitions},b.updateQueue.baseState=\nf,b.memoizedState=f,b.flags&256){e=Ki(Error(p(423)),b);b=mj(a,b,d,c,e);break a}else if(d!==e){e=Ki(Error(p(424)),b);b=mj(a,b,d,c,e);break a}else for(yg=Lf(b.stateNode.containerInfo.firstChild),xg=b,I=!0,zg=null,c=Ch(b,null,d,c),b.child=c;c;)c.flags=c.flags&-3|4096,c=c.sibling;else{Ig();if(d===e){b=$i(a,b,c);break a}Yi(a,b,d,c)}b=b.child}return b;case 5:return Kh(b),null===a&&Eg(b),d=b.type,e=b.pendingProps,f=null!==a?a.memoizedProps:null,g=e.children,Ef(d,e)?g=null:null!==f&&Ef(d,f)&&(b.flags|=32),\nhj(a,b),Yi(a,b,g,c),b.child;case 6:return null===a&&Eg(b),null;case 13:return pj(a,b,c);case 4:return Ih(b,b.stateNode.containerInfo),d=b.pendingProps,null===a?b.child=Bh(b,null,d,c):Yi(a,b,d,c),b.child;case 11:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),Zi(a,b,d,e,c);case 7:return Yi(a,b,b.pendingProps,c),b.child;case 8:return Yi(a,b,b.pendingProps.children,c),b.child;case 12:return Yi(a,b,b.pendingProps.children,c),b.child;case 10:a:{d=b.type._context;e=b.pendingProps;f=b.memoizedProps;\ng=e.value;G(Mg,d._currentValue);d._currentValue=g;if(null!==f)if(He(f.value,g)){if(f.children===e.children&&!Wf.current){b=$i(a,b,c);break a}}else for(f=b.child,null!==f&&(f.return=b);null!==f;){var h=f.dependencies;if(null!==h){g=f.child;for(var k=h.firstContext;null!==k;){if(k.context===d){if(1===f.tag){k=ch(-1,c&-c);k.tag=2;var l=f.updateQueue;if(null!==l){l=l.shared;var m=l.pending;null===m?k.next=k:(k.next=m.next,m.next=k);l.pending=k}}f.lanes|=c;k=f.alternate;null!==k&&(k.lanes|=c);Sg(f.return,\nc,b);h.lanes|=c;break}k=k.next}}else if(10===f.tag)g=f.type===b.type?null:f.child;else if(18===f.tag){g=f.return;if(null===g)throw Error(p(341));g.lanes|=c;h=g.alternate;null!==h&&(h.lanes|=c);Sg(g,c,b);g=f.sibling}else g=f.child;if(null!==g)g.return=f;else for(g=f;null!==g;){if(g===b){g=null;break}f=g.sibling;if(null!==f){f.return=g.return;g=f;break}g=g.return}f=g}Yi(a,b,e.children,c);b=b.child}return b;case 9:return e=b.type,d=b.pendingProps.children,Tg(b,c),e=Vg(e),d=d(e),b.flags|=1,Yi(a,b,d,c),\nb.child;case 14:return d=b.type,e=Lg(d,b.pendingProps),e=Lg(d.type,e),aj(a,b,d,e,c);case 15:return cj(a,b,b.type,b.pendingProps,c);case 17:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),jj(a,b),b.tag=1,Zf(d)?(a=!0,cg(b)):a=!1,Tg(b,c),ph(b,d,e),rh(b,d,e,c),kj(null,b,d,!0,a,c);case 19:return yj(a,b,c);case 22:return ej(a,b,c)}throw Error(p(156,b.tag));};function Gk(a,b){return ac(a,b)}\nfunction al(a,b,c,d){this.tag=a;this.key=c;this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null;this.index=0;this.ref=null;this.pendingProps=b;this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null;this.mode=d;this.subtreeFlags=this.flags=0;this.deletions=null;this.childLanes=this.lanes=0;this.alternate=null}function Bg(a,b,c,d){return new al(a,b,c,d)}function bj(a){a=a.prototype;return!(!a||!a.isReactComponent)}\nfunction $k(a){if(\"function\"===typeof a)return bj(a)?1:0;if(void 0!==a&&null!==a){a=a.$$typeof;if(a===Da)return 11;if(a===Ga)return 14}return 2}\nfunction wh(a,b){var c=a.alternate;null===c?(c=Bg(a.tag,b,a.key,a.mode),c.elementType=a.elementType,c.type=a.type,c.stateNode=a.stateNode,c.alternate=a,a.alternate=c):(c.pendingProps=b,c.type=a.type,c.flags=0,c.subtreeFlags=0,c.deletions=null);c.flags=a.flags&14680064;c.childLanes=a.childLanes;c.lanes=a.lanes;c.child=a.child;c.memoizedProps=a.memoizedProps;c.memoizedState=a.memoizedState;c.updateQueue=a.updateQueue;b=a.dependencies;c.dependencies=null===b?null:{lanes:b.lanes,firstContext:b.firstContext};\nc.sibling=a.sibling;c.index=a.index;c.ref=a.ref;return c}\nfunction yh(a,b,c,d,e,f){var g=2;d=a;if(\"function\"===typeof a)bj(a)&&(g=1);else if(\"string\"===typeof a)g=5;else a:switch(a){case ya:return Ah(c.children,e,f,b);case za:g=8;e|=8;break;case Aa:return a=Bg(12,c,b,e|2),a.elementType=Aa,a.lanes=f,a;case Ea:return a=Bg(13,c,b,e),a.elementType=Ea,a.lanes=f,a;case Fa:return a=Bg(19,c,b,e),a.elementType=Fa,a.lanes=f,a;case Ia:return qj(c,e,f,b);default:if(\"object\"===typeof a&&null!==a)switch(a.$$typeof){case Ba:g=10;break a;case Ca:g=9;break a;case Da:g=11;\nbreak a;case Ga:g=14;break a;case Ha:g=16;d=null;break a}throw Error(p(130,null==a?a:typeof a,\"\"));}b=Bg(g,c,b,e);b.elementType=a;b.type=d;b.lanes=f;return b}function Ah(a,b,c,d){a=Bg(7,a,d,b);a.lanes=c;return a}function qj(a,b,c,d){a=Bg(22,a,d,b);a.elementType=Ia;a.lanes=c;a.stateNode={isHidden:!1};return a}function xh(a,b,c){a=Bg(6,a,null,b);a.lanes=c;return a}\nfunction zh(a,b,c){b=Bg(4,null!==a.children?a.children:[],a.key,b);b.lanes=c;b.stateNode={containerInfo:a.containerInfo,pendingChildren:null,implementation:a.implementation};return b}\nfunction bl(a,b,c,d,e){this.tag=b;this.containerInfo=a;this.finishedWork=this.pingCache=this.current=this.pendingChildren=null;this.timeoutHandle=-1;this.callbackNode=this.pendingContext=this.context=null;this.callbackPriority=0;this.eventTimes=zc(0);this.expirationTimes=zc(-1);this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0;this.entanglements=zc(0);this.identifierPrefix=d;this.onRecoverableError=e;this.mutableSourceEagerHydrationData=\nnull}function cl(a,b,c,d,e,f,g,h,k){a=new bl(a,b,c,h,k);1===b?(b=1,!0===f&&(b|=8)):b=0;f=Bg(3,null,null,b);a.current=f;f.stateNode=a;f.memoizedState={element:d,isDehydrated:c,cache:null,transitions:null,pendingSuspenseBoundaries:null};ah(f);return a}function dl(a,b,c){var d=30&&t[t.length-1])&&(op[0]===6||op[0]===2)){_=0;continue;}\nif(op[0]===3&&(!t||(op[1]>t[0]&&op[1]0){console.error(\"The constraints \".concat(unSupportedConstraints.join(\",\"),\" doesn't support on this browser. Please check your ReactMediaRecorder component.\"));}};if(typeof audio===\"object\"){checkConstraints(audio);}\nif(typeof video===\"object\"){checkConstraints(video);}\nif(mediaRecorderOptions&&mediaRecorderOptions.mimeType){if(!MediaRecorder.isTypeSupported(mediaRecorderOptions.mimeType)){console.error(\"The specified MIME type you supplied for MediaRecorder doesn't support this browser\");}}\nif(!mediaStream.current&&askPermissionOnMount){getMediaStream();}\nreturn function(){if(mediaStream.current){var tracks=mediaStream.current.getTracks();tracks.forEach(function(track){return track.clone().stop();});}};},[audio,screen,video,getMediaStream,mediaRecorderOptions,askPermissionOnMount,]);var startRecording=function(){return __awaiter(_this,void 0,void 0,function(){var isStreamEnded;return __generator(this,function(_a){switch(_a.label){case 0:setError(\"NONE\");if(!!mediaStream.current)return[3,2];return[4,getMediaStream()];case 1:_a.sent();_a.label=2;case 2:if(!mediaStream.current)return[3,5];isStreamEnded=mediaStream.current.getTracks().some(function(track){return track.readyState===\"ended\";});if(!isStreamEnded)return[3,4];return[4,getMediaStream()];case 3:_a.sent();_a.label=4;case 4:if(!mediaStream.current.active){return[2];}\nmediaRecorder.current=new extendable_media_recorder_1.MediaRecorder(mediaStream.current,mediaRecorderOptions||undefined);mediaRecorder.current.ondataavailable=onRecordingActive;mediaRecorder.current.onstop=onRecordingStop;mediaRecorder.current.onstart=onRecordingStart;mediaRecorder.current.onerror=function(){setError(\"NO_RECORDER\");setStatus(\"idle\");};mediaRecorder.current.start();setStatus(\"recording\");_a.label=5;case 5:return[2];}});});};var onRecordingActive=function(_a){var data=_a.data;mediaChunks.current.push(data);};var onRecordingStart=function(){onStart();};var onRecordingStop=function(){var chunk=mediaChunks.current[0];var blobProperty=Object.assign({type:chunk.type},blobPropertyBag||(video?{type:\"video/mp4\"}:{type:\"audio/wav\"}));var blob=new Blob(mediaChunks.current,blobProperty);var url=URL.createObjectURL(blob);setStatus(\"stopped\");setMediaBlobUrl(url);onStop(url,blob);};var muteAudio=function(mute){setIsAudioMuted(mute);if(mediaStream.current){mediaStream.current.getAudioTracks().forEach(function(audioTrack){return(audioTrack.enabled=!mute);});}};var pauseRecording=function(){if(mediaRecorder.current&&mediaRecorder.current.state===\"recording\"){setStatus(\"paused\");mediaRecorder.current.pause();}};var resumeRecording=function(){if(mediaRecorder.current&&mediaRecorder.current.state===\"paused\"){setStatus(\"recording\");mediaRecorder.current.resume();}};var stopRecording=function(){if(mediaRecorder.current){if(mediaRecorder.current.state!==\"inactive\"){setStatus(\"stopping\");mediaRecorder.current.stop();if(stopStreamsOnStop){mediaStream.current&&mediaStream.current.getTracks().forEach(function(track){return track.stop();});}\nmediaChunks.current=[];}}};return{error:RecorderErrors[error],muteAudio:function(){return muteAudio(true);},unMuteAudio:function(){return muteAudio(false);},startRecording:startRecording,pauseRecording:pauseRecording,resumeRecording:resumeRecording,stopRecording:stopRecording,mediaBlobUrl:mediaBlobUrl,status:status,isAudioMuted:isAudioMuted,previewStream:mediaStream.current?new MediaStream(mediaStream.current.getVideoTracks()):null,previewAudioStream:mediaStream.current?new MediaStream(mediaStream.current.getAudioTracks()):null,clearBlobUrl:function(){if(mediaBlobUrl){URL.revokeObjectURL(mediaBlobUrl);}\nsetMediaBlobUrl(undefined);setStatus(\"idle\");},};}\nexports.useReactMediaRecorder=useReactMediaRecorder;var ReactMediaRecorder=function(props){return props.render(useReactMediaRecorder(props));};exports.ReactMediaRecorder=ReactMediaRecorder;","/**\n * @license React\n * react-jsx-runtime.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var f=require(\"react\"),k=Symbol.for(\"react.element\"),l=Symbol.for(\"react.fragment\"),m=Object.prototype.hasOwnProperty,n=f.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,p={key:!0,ref:!0,__self:!0,__source:!0};\nfunction q(c,a,g){var b,d={},e=null,h=null;void 0!==g&&(e=\"\"+g);void 0!==a.key&&(e=\"\"+a.key);void 0!==a.ref&&(h=a.ref);for(b in a)m.call(a,b)&&!p.hasOwnProperty(b)&&(d[b]=a[b]);if(c&&c.defaultProps)for(b in a=c.defaultProps,a)void 0===d[b]&&(d[b]=a[b]);return{$$typeof:k,type:c,key:e,ref:h,props:d,_owner:n.current}}exports.Fragment=l;exports.jsx=q;exports.jsxs=q;\n","/**\n * @license React\n * react.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var l=Symbol.for(\"react.element\"),n=Symbol.for(\"react.portal\"),p=Symbol.for(\"react.fragment\"),q=Symbol.for(\"react.strict_mode\"),r=Symbol.for(\"react.profiler\"),t=Symbol.for(\"react.provider\"),u=Symbol.for(\"react.context\"),v=Symbol.for(\"react.forward_ref\"),w=Symbol.for(\"react.suspense\"),x=Symbol.for(\"react.memo\"),y=Symbol.for(\"react.lazy\"),z=Symbol.iterator;function A(a){if(null===a||\"object\"!==typeof a)return null;a=z&&a[z]||a[\"@@iterator\"];return\"function\"===typeof a?a:null}\nvar B={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},C=Object.assign,D={};function E(a,b,e){this.props=a;this.context=b;this.refs=D;this.updater=e||B}E.prototype.isReactComponent={};\nE.prototype.setState=function(a,b){if(\"object\"!==typeof a&&\"function\"!==typeof a&&null!=a)throw Error(\"setState(...): takes an object of state variables to update or a function which returns an object of state variables.\");this.updater.enqueueSetState(this,a,b,\"setState\")};E.prototype.forceUpdate=function(a){this.updater.enqueueForceUpdate(this,a,\"forceUpdate\")};function F(){}F.prototype=E.prototype;function G(a,b,e){this.props=a;this.context=b;this.refs=D;this.updater=e||B}var H=G.prototype=new F;\nH.constructor=G;C(H,E.prototype);H.isPureReactComponent=!0;var I=Array.isArray,J=Object.prototype.hasOwnProperty,K={current:null},L={key:!0,ref:!0,__self:!0,__source:!0};\nfunction M(a,b,e){var d,c={},k=null,h=null;if(null!=b)for(d in void 0!==b.ref&&(h=b.ref),void 0!==b.key&&(k=\"\"+b.key),b)J.call(b,d)&&!L.hasOwnProperty(d)&&(c[d]=b[d]);var g=arguments.length-2;if(1===g)c.children=e;else if(1>>1,e=a[d];if(0>>1;dg(C,c))ng(x,C)?(a[d]=x,a[n]=c,d=n):(a[d]=C,a[m]=c,d=m);else if(ng(x,c))a[d]=x,a[n]=c,d=n;else break a}}return b}\nfunction g(a,b){var c=a.sortIndex-b.sortIndex;return 0!==c?c:a.id-b.id}if(\"object\"===typeof performance&&\"function\"===typeof performance.now){var l=performance;exports.unstable_now=function(){return l.now()}}else{var p=Date,q=p.now();exports.unstable_now=function(){return p.now()-q}}var r=[],t=[],u=1,v=null,y=3,z=!1,A=!1,B=!1,D=\"function\"===typeof setTimeout?setTimeout:null,E=\"function\"===typeof clearTimeout?clearTimeout:null,F=\"undefined\"!==typeof setImmediate?setImmediate:null;\n\"undefined\"!==typeof navigator&&void 0!==navigator.scheduling&&void 0!==navigator.scheduling.isInputPending&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function G(a){for(var b=h(t);null!==b;){if(null===b.callback)k(t);else if(b.startTime<=a)k(t),b.sortIndex=b.expirationTime,f(r,b);else break;b=h(t)}}function H(a){B=!1;G(a);if(!A)if(null!==h(r))A=!0,I(J);else{var b=h(t);null!==b&&K(H,b.startTime-a)}}\nfunction J(a,b){A=!1;B&&(B=!1,E(L),L=-1);z=!0;var c=y;try{G(b);for(v=h(r);null!==v&&(!(v.expirationTime>b)||a&&!M());){var d=v.callback;if(\"function\"===typeof d){v.callback=null;y=v.priorityLevel;var e=d(v.expirationTime<=b);b=exports.unstable_now();\"function\"===typeof e?v.callback=e:v===h(r)&&k(r);G(b)}else k(r);v=h(r)}if(null!==v)var w=!0;else{var m=h(t);null!==m&&K(H,m.startTime-b);w=!1}return w}finally{v=null,y=c,z=!1}}var N=!1,O=null,L=-1,P=5,Q=-1;\nfunction M(){return exports.unstable_now()-Qa||125d?(a.sortIndex=c,f(t,a),null===h(r)&&a===h(t)&&(B?(E(L),L=-1):B=!0,K(H,c-d))):(a.sortIndex=e,f(r,a),A||z||(A=!0,I(J)));return a};\nexports.unstable_shouldYield=M;exports.unstable_wrapCallback=function(a){var b=y;return function(){var c=y;y=b;try{return a.apply(this,arguments)}finally{y=c}}};\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/scheduler.production.min.js');\n} else {\n module.exports = require('./cjs/scheduler.development.js');\n}\n","function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n return arr2;\n}\nmodule.exports = _arrayLikeToArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\nmodule.exports = _arrayWithHoles, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var arrayLikeToArray = require(\"./arrayLikeToArray.js\");\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}\nmodule.exports = _arrayWithoutHoles, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\nmodule.exports = _classCallCheck, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var toPropertyKey = require(\"./toPropertyKey.js\");\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, toPropertyKey(descriptor.key), descriptor);\n }\n}\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n}\nmodule.exports = _createClass, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}\nmodule.exports = _iterableToArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _iterableToArrayLimit(arr, i) {\n var _i = null == arr ? null : \"undefined\" != typeof Symbol && arr[Symbol.iterator] || arr[\"@@iterator\"];\n if (null != _i) {\n var _s,\n _e,\n _x,\n _r,\n _arr = [],\n _n = !0,\n _d = !1;\n try {\n if (_x = (_i = _i.call(arr)).next, 0 === i) {\n if (Object(_i) !== _i) return;\n _n = !1;\n } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0);\n } catch (err) {\n _d = !0, _e = err;\n } finally {\n try {\n if (!_n && null != _i[\"return\"] && (_r = _i[\"return\"](), Object(_r) !== _r)) return;\n } finally {\n if (_d) throw _e;\n }\n }\n return _arr;\n }\n}\nmodule.exports = _iterableToArrayLimit, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nmodule.exports = _nonIterableRest, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nmodule.exports = _nonIterableSpread, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var arrayWithHoles = require(\"./arrayWithHoles.js\");\nvar iterableToArrayLimit = require(\"./iterableToArrayLimit.js\");\nvar unsupportedIterableToArray = require(\"./unsupportedIterableToArray.js\");\nvar nonIterableRest = require(\"./nonIterableRest.js\");\nfunction _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}\nmodule.exports = _slicedToArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var arrayWithoutHoles = require(\"./arrayWithoutHoles.js\");\nvar iterableToArray = require(\"./iterableToArray.js\");\nvar unsupportedIterableToArray = require(\"./unsupportedIterableToArray.js\");\nvar nonIterableSpread = require(\"./nonIterableSpread.js\");\nfunction _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}\nmodule.exports = _toConsumableArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var _typeof = require(\"./typeof.js\")[\"default\"];\nfunction _toPrimitive(input, hint) {\n if (_typeof(input) !== \"object\" || input === null) return input;\n var prim = input[Symbol.toPrimitive];\n if (prim !== undefined) {\n var res = prim.call(input, hint || \"default\");\n if (_typeof(res) !== \"object\") return res;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (hint === \"string\" ? String : Number)(input);\n}\nmodule.exports = _toPrimitive, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var _typeof = require(\"./typeof.js\")[\"default\"];\nvar toPrimitive = require(\"./toPrimitive.js\");\nfunction _toPropertyKey(arg) {\n var key = toPrimitive(arg, \"string\");\n return _typeof(key) === \"symbol\" ? key : String(key);\n}\nmodule.exports = _toPropertyKey, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return (module.exports = _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports), _typeof(obj);\n}\nmodule.exports = _typeof, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var arrayLikeToArray = require(\"./arrayLikeToArray.js\");\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}\nmodule.exports = _unsupportedIterableToArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","export default function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n return arr2;\n}","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\nexport default function _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n _next(undefined);\n });\n };\n}","export default function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}","import toPropertyKey from \"./toPropertyKey.js\";\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, toPropertyKey(descriptor.key), descriptor);\n }\n}\nexport default function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n}","import toPropertyKey from \"./toPropertyKey.js\";\nexport default function _defineProperty(obj, key, value) {\n key = toPropertyKey(key);\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}","import defineProperty from \"./defineProperty.js\";\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n enumerableOnly && (symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n })), keys.push.apply(keys, symbols);\n }\n return keys;\n}\nexport default function _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = null != arguments[i] ? arguments[i] : {};\n i % 2 ? ownKeys(Object(source), !0).forEach(function (key) {\n defineProperty(target, key, source[key]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n return target;\n}","import _typeof from \"./typeof.js\";\nexport default function _regeneratorRuntime() {\n \"use strict\"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */\n _regeneratorRuntime = function _regeneratorRuntime() {\n return exports;\n };\n var exports = {},\n Op = Object.prototype,\n hasOwn = Op.hasOwnProperty,\n defineProperty = Object.defineProperty || function (obj, key, desc) {\n obj[key] = desc.value;\n },\n $Symbol = \"function\" == typeof Symbol ? Symbol : {},\n iteratorSymbol = $Symbol.iterator || \"@@iterator\",\n asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\",\n toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n function define(obj, key, value) {\n return Object.defineProperty(obj, key, {\n value: value,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }), obj[key];\n }\n try {\n define({}, \"\");\n } catch (err) {\n define = function define(obj, key, value) {\n return obj[key] = value;\n };\n }\n function wrap(innerFn, outerFn, self, tryLocsList) {\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator,\n generator = Object.create(protoGenerator.prototype),\n context = new Context(tryLocsList || []);\n return defineProperty(generator, \"_invoke\", {\n value: makeInvokeMethod(innerFn, self, context)\n }), generator;\n }\n function tryCatch(fn, obj, arg) {\n try {\n return {\n type: \"normal\",\n arg: fn.call(obj, arg)\n };\n } catch (err) {\n return {\n type: \"throw\",\n arg: err\n };\n }\n }\n exports.wrap = wrap;\n var ContinueSentinel = {};\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n var IteratorPrototype = {};\n define(IteratorPrototype, iteratorSymbol, function () {\n return this;\n });\n var getProto = Object.getPrototypeOf,\n NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol) && (IteratorPrototype = NativeIteratorPrototype);\n var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype);\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function (method) {\n define(prototype, method, function (arg) {\n return this._invoke(method, arg);\n });\n });\n }\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (\"throw\" !== record.type) {\n var result = record.arg,\n value = result.value;\n return value && \"object\" == _typeof(value) && hasOwn.call(value, \"__await\") ? PromiseImpl.resolve(value.__await).then(function (value) {\n invoke(\"next\", value, resolve, reject);\n }, function (err) {\n invoke(\"throw\", err, resolve, reject);\n }) : PromiseImpl.resolve(value).then(function (unwrapped) {\n result.value = unwrapped, resolve(result);\n }, function (error) {\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n reject(record.arg);\n }\n var previousPromise;\n defineProperty(this, \"_invoke\", {\n value: function value(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function (resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n return previousPromise = previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg();\n }\n });\n }\n function makeInvokeMethod(innerFn, self, context) {\n var state = \"suspendedStart\";\n return function (method, arg) {\n if (\"executing\" === state) throw new Error(\"Generator is already running\");\n if (\"completed\" === state) {\n if (\"throw\" === method) throw arg;\n return doneResult();\n }\n for (context.method = method, context.arg = arg;;) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n if (\"next\" === context.method) context.sent = context._sent = context.arg;else if (\"throw\" === context.method) {\n if (\"suspendedStart\" === state) throw state = \"completed\", context.arg;\n context.dispatchException(context.arg);\n } else \"return\" === context.method && context.abrupt(\"return\", context.arg);\n state = \"executing\";\n var record = tryCatch(innerFn, self, context);\n if (\"normal\" === record.type) {\n if (state = context.done ? \"completed\" : \"suspendedYield\", record.arg === ContinueSentinel) continue;\n return {\n value: record.arg,\n done: context.done\n };\n }\n \"throw\" === record.type && (state = \"completed\", context.method = \"throw\", context.arg = record.arg);\n }\n };\n }\n function maybeInvokeDelegate(delegate, context) {\n var methodName = context.method,\n method = delegate.iterator[methodName];\n if (undefined === method) return context.delegate = null, \"throw\" === methodName && delegate.iterator[\"return\"] && (context.method = \"return\", context.arg = undefined, maybeInvokeDelegate(delegate, context), \"throw\" === context.method) || \"return\" !== methodName && (context.method = \"throw\", context.arg = new TypeError(\"The iterator does not provide a '\" + methodName + \"' method\")), ContinueSentinel;\n var record = tryCatch(method, delegate.iterator, context.arg);\n if (\"throw\" === record.type) return context.method = \"throw\", context.arg = record.arg, context.delegate = null, ContinueSentinel;\n var info = record.arg;\n return info ? info.done ? (context[delegate.resultName] = info.value, context.next = delegate.nextLoc, \"return\" !== context.method && (context.method = \"next\", context.arg = undefined), context.delegate = null, ContinueSentinel) : info : (context.method = \"throw\", context.arg = new TypeError(\"iterator result is not an object\"), context.delegate = null, ContinueSentinel);\n }\n function pushTryEntry(locs) {\n var entry = {\n tryLoc: locs[0]\n };\n 1 in locs && (entry.catchLoc = locs[1]), 2 in locs && (entry.finallyLoc = locs[2], entry.afterLoc = locs[3]), this.tryEntries.push(entry);\n }\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\", delete record.arg, entry.completion = record;\n }\n function Context(tryLocsList) {\n this.tryEntries = [{\n tryLoc: \"root\"\n }], tryLocsList.forEach(pushTryEntry, this), this.reset(!0);\n }\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) return iteratorMethod.call(iterable);\n if (\"function\" == typeof iterable.next) return iterable;\n if (!isNaN(iterable.length)) {\n var i = -1,\n next = function next() {\n for (; ++i < iterable.length;) if (hasOwn.call(iterable, i)) return next.value = iterable[i], next.done = !1, next;\n return next.value = undefined, next.done = !0, next;\n };\n return next.next = next;\n }\n }\n return {\n next: doneResult\n };\n }\n function doneResult() {\n return {\n value: undefined,\n done: !0\n };\n }\n return GeneratorFunction.prototype = GeneratorFunctionPrototype, defineProperty(Gp, \"constructor\", {\n value: GeneratorFunctionPrototype,\n configurable: !0\n }), defineProperty(GeneratorFunctionPrototype, \"constructor\", {\n value: GeneratorFunction,\n configurable: !0\n }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, toStringTagSymbol, \"GeneratorFunction\"), exports.isGeneratorFunction = function (genFun) {\n var ctor = \"function\" == typeof genFun && genFun.constructor;\n return !!ctor && (ctor === GeneratorFunction || \"GeneratorFunction\" === (ctor.displayName || ctor.name));\n }, exports.mark = function (genFun) {\n return Object.setPrototypeOf ? Object.setPrototypeOf(genFun, GeneratorFunctionPrototype) : (genFun.__proto__ = GeneratorFunctionPrototype, define(genFun, toStringTagSymbol, \"GeneratorFunction\")), genFun.prototype = Object.create(Gp), genFun;\n }, exports.awrap = function (arg) {\n return {\n __await: arg\n };\n }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, asyncIteratorSymbol, function () {\n return this;\n }), exports.AsyncIterator = AsyncIterator, exports.async = function (innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n void 0 === PromiseImpl && (PromiseImpl = Promise);\n var iter = new AsyncIterator(wrap(innerFn, outerFn, self, tryLocsList), PromiseImpl);\n return exports.isGeneratorFunction(outerFn) ? iter : iter.next().then(function (result) {\n return result.done ? result.value : iter.next();\n });\n }, defineIteratorMethods(Gp), define(Gp, toStringTagSymbol, \"Generator\"), define(Gp, iteratorSymbol, function () {\n return this;\n }), define(Gp, \"toString\", function () {\n return \"[object Generator]\";\n }), exports.keys = function (val) {\n var object = Object(val),\n keys = [];\n for (var key in object) keys.push(key);\n return keys.reverse(), function next() {\n for (; keys.length;) {\n var key = keys.pop();\n if (key in object) return next.value = key, next.done = !1, next;\n }\n return next.done = !0, next;\n };\n }, exports.values = values, Context.prototype = {\n constructor: Context,\n reset: function reset(skipTempReset) {\n if (this.prev = 0, this.next = 0, this.sent = this._sent = undefined, this.done = !1, this.delegate = null, this.method = \"next\", this.arg = undefined, this.tryEntries.forEach(resetTryEntry), !skipTempReset) for (var name in this) \"t\" === name.charAt(0) && hasOwn.call(this, name) && !isNaN(+name.slice(1)) && (this[name] = undefined);\n },\n stop: function stop() {\n this.done = !0;\n var rootRecord = this.tryEntries[0].completion;\n if (\"throw\" === rootRecord.type) throw rootRecord.arg;\n return this.rval;\n },\n dispatchException: function dispatchException(exception) {\n if (this.done) throw exception;\n var context = this;\n function handle(loc, caught) {\n return record.type = \"throw\", record.arg = exception, context.next = loc, caught && (context.method = \"next\", context.arg = undefined), !!caught;\n }\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i],\n record = entry.completion;\n if (\"root\" === entry.tryLoc) return handle(\"end\");\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\"),\n hasFinally = hasOwn.call(entry, \"finallyLoc\");\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0);\n if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc);\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0);\n } else {\n if (!hasFinally) throw new Error(\"try statement without catch or finally\");\n if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc);\n }\n }\n }\n },\n abrupt: function abrupt(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev && hasOwn.call(entry, \"finallyLoc\") && this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n finallyEntry && (\"break\" === type || \"continue\" === type) && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc && (finallyEntry = null);\n var record = finallyEntry ? finallyEntry.completion : {};\n return record.type = type, record.arg = arg, finallyEntry ? (this.method = \"next\", this.next = finallyEntry.finallyLoc, ContinueSentinel) : this.complete(record);\n },\n complete: function complete(record, afterLoc) {\n if (\"throw\" === record.type) throw record.arg;\n return \"break\" === record.type || \"continue\" === record.type ? this.next = record.arg : \"return\" === record.type ? (this.rval = this.arg = record.arg, this.method = \"return\", this.next = \"end\") : \"normal\" === record.type && afterLoc && (this.next = afterLoc), ContinueSentinel;\n },\n finish: function finish(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) return this.complete(entry.completion, entry.afterLoc), resetTryEntry(entry), ContinueSentinel;\n }\n },\n \"catch\": function _catch(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (\"throw\" === record.type) {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n throw new Error(\"illegal catch attempt\");\n },\n delegateYield: function delegateYield(iterable, resultName, nextLoc) {\n return this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n }, \"next\" === this.method && (this.arg = undefined), ContinueSentinel;\n }\n }, exports;\n}","import arrayWithHoles from \"./arrayWithHoles.js\";\nimport iterableToArrayLimit from \"./iterableToArrayLimit.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableRest from \"./nonIterableRest.js\";\nexport default function _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}","export default function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}","export default function _iterableToArrayLimit(arr, i) {\n var _i = null == arr ? null : \"undefined\" != typeof Symbol && arr[Symbol.iterator] || arr[\"@@iterator\"];\n if (null != _i) {\n var _s,\n _e,\n _x,\n _r,\n _arr = [],\n _n = !0,\n _d = !1;\n try {\n if (_x = (_i = _i.call(arr)).next, 0 === i) {\n if (Object(_i) !== _i) return;\n _n = !1;\n } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0);\n } catch (err) {\n _d = !0, _e = err;\n } finally {\n try {\n if (!_n && null != _i[\"return\"] && (_r = _i[\"return\"](), Object(_r) !== _r)) return;\n } finally {\n if (_d) throw _e;\n }\n }\n return _arr;\n }\n}","export default function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","import arrayWithoutHoles from \"./arrayWithoutHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableSpread from \"./nonIterableSpread.js\";\nexport default function _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}","export default function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}","export default function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","import _typeof from \"./typeof.js\";\nimport toPrimitive from \"./toPrimitive.js\";\nexport default function _toPropertyKey(arg) {\n var key = toPrimitive(arg, \"string\");\n return _typeof(key) === \"symbol\" ? key : String(key);\n}","import _typeof from \"./typeof.js\";\nexport default function _toPrimitive(input, hint) {\n if (_typeof(input) !== \"object\" || input === null) return input;\n var prim = input[Symbol.toPrimitive];\n if (prim !== undefined) {\n var res = prim.call(input, hint || \"default\");\n if (_typeof(res) !== \"object\") return res;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (hint === \"string\" ? String : Number)(input);\n}","export default function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, _typeof(obj);\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","import React from 'react'\n\nconst FooterText = () => {\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n )\n}\n\nconst Yes = () => {\n return \n \n \n \n \n \n \n \n \n \n \n \n \n \n}\n\nconst No = () => {\n return \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n}\n\nconst FaceHappy = () => {\n return \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n}\nconst FaceSatisfied = () => {\n return \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n}\nconst FaceSad = () => {\n return \n \n \n \n \n \n \n \n \n \n \n \n \n \n}\n\nconst Service = () => {\n return \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n}\n\nconst Cleanliness = () => {\n return \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n}\n\n\n\nconst Male = () => {\n return \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n}\n\nconst Female = () => {\n return \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n}\n\nconst Camera = () => {\n return \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n}\n\nconst Mic = () => {\n return \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n}\n\nexport default {\n FooterText,\n Camera,\n Mic,\n Male,\n Female,\n No,\n FaceHappy,\n FaceSatisfied,\n FaceSad,\n Service,\n Yes,\n Cleanliness,\n}","import React, { useEffect } from 'react'\nimport Svgs from './Svgs'\n\n\n\n\nconst AppWrapper = (props) => {\n useEffect(() => {\n function resizeHandler() {\n let main_bg_cover = document.querySelector('.main-bg-cover');\n main_bg_cover.style.cssText = `min-height:${window.innerHeight}px;`;\n }\n resizeHandler();\n window.addEventListener('resize', resizeHandler);\n }, [])\n\n return (\n
\n
\n
\n
\n \n
\n
\n {props.children}\n
\n
\n \n
\n
\n
\n
\n )\n}\n\nexport default AppWrapper","'use strict';\n\nexport default function bind(fn, thisArg) {\n return function wrap() {\n return fn.apply(thisArg, arguments);\n };\n}\n","'use strict';\n\nimport bind from './helpers/bind.js';\n\n// utils is a library of generic helper functions non-specific to axios\n\nconst {toString} = Object.prototype;\nconst {getPrototypeOf} = Object;\n\nconst kindOf = (cache => thing => {\n const str = toString.call(thing);\n return cache[str] || (cache[str] = str.slice(8, -1).toLowerCase());\n})(Object.create(null));\n\nconst kindOfTest = (type) => {\n type = type.toLowerCase();\n return (thing) => kindOf(thing) === type\n}\n\nconst typeOfTest = type => thing => typeof thing === type;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n *\n * @returns {boolean} True if value is an Array, otherwise false\n */\nconst {isArray} = Array;\n\n/**\n * Determine if a value is undefined\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nconst isUndefined = typeOfTest('undefined');\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)\n && isFunction(val.constructor.isBuffer) && val.constructor.isBuffer(val);\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nconst isArrayBuffer = kindOfTest('ArrayBuffer');\n\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n let result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (isArrayBuffer(val.buffer));\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a String, otherwise false\n */\nconst isString = typeOfTest('string');\n\n/**\n * Determine if a value is a Function\n *\n * @param {*} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nconst isFunction = typeOfTest('function');\n\n/**\n * Determine if a value is a Number\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Number, otherwise false\n */\nconst isNumber = typeOfTest('number');\n\n/**\n * Determine if a value is an Object\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an Object, otherwise false\n */\nconst isObject = (thing) => thing !== null && typeof thing === 'object';\n\n/**\n * Determine if a value is a Boolean\n *\n * @param {*} thing The value to test\n * @returns {boolean} True if value is a Boolean, otherwise false\n */\nconst isBoolean = thing => thing === true || thing === false;\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a plain Object, otherwise false\n */\nconst isPlainObject = (val) => {\n if (kindOf(val) !== 'object') {\n return false;\n }\n\n const prototype = getPrototypeOf(val);\n return (prototype === null || prototype === Object.prototype || Object.getPrototypeOf(prototype) === null) && !(Symbol.toStringTag in val) && !(Symbol.iterator in val);\n}\n\n/**\n * Determine if a value is a Date\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Date, otherwise false\n */\nconst isDate = kindOfTest('Date');\n\n/**\n * Determine if a value is a File\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFile = kindOfTest('File');\n\n/**\n * Determine if a value is a Blob\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nconst isBlob = kindOfTest('Blob');\n\n/**\n * Determine if a value is a FileList\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFileList = kindOfTest('FileList');\n\n/**\n * Determine if a value is a Stream\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nconst isStream = (val) => isObject(val) && isFunction(val.pipe);\n\n/**\n * Determine if a value is a FormData\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nconst isFormData = (thing) => {\n const pattern = '[object FormData]';\n return thing && (\n (typeof FormData === 'function' && thing instanceof FormData) ||\n toString.call(thing) === pattern ||\n (isFunction(thing.toString) && thing.toString() === pattern)\n );\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nconst isURLSearchParams = kindOfTest('URLSearchParams');\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n *\n * @returns {String} The String freed of excess whitespace\n */\nconst trim = (str) => str.trim ?\n str.trim() : str.replace(/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g, '');\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n *\n * @param {Boolean} [allOwnKeys = false]\n * @returns {any}\n */\nfunction forEach(obj, fn, {allOwnKeys = false} = {}) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n let i;\n let l;\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n const keys = allOwnKeys ? Object.getOwnPropertyNames(obj) : Object.keys(obj);\n const len = keys.length;\n let key;\n\n for (i = 0; i < len; i++) {\n key = keys[i];\n fn.call(null, obj[key], key, obj);\n }\n }\n}\n\nfunction findKey(obj, key) {\n key = key.toLowerCase();\n const keys = Object.keys(obj);\n let i = keys.length;\n let _key;\n while (i-- > 0) {\n _key = keys[i];\n if (key === _key.toLowerCase()) {\n return _key;\n }\n }\n return null;\n}\n\nconst _global = typeof self === \"undefined\" ? typeof global === \"undefined\" ? this : global : self;\n\nconst isContextDefined = (context) => !isUndefined(context) && context !== _global;\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n *\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n const {caseless} = isContextDefined(this) && this || {};\n const result = {};\n const assignValue = (val, key) => {\n const targetKey = caseless && findKey(result, key) || key;\n if (isPlainObject(result[targetKey]) && isPlainObject(val)) {\n result[targetKey] = merge(result[targetKey], val);\n } else if (isPlainObject(val)) {\n result[targetKey] = merge({}, val);\n } else if (isArray(val)) {\n result[targetKey] = val.slice();\n } else {\n result[targetKey] = val;\n }\n }\n\n for (let i = 0, l = arguments.length; i < l; i++) {\n arguments[i] && forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n *\n * @param {Boolean} [allOwnKeys]\n * @returns {Object} The resulting value of object a\n */\nconst extend = (a, b, thisArg, {allOwnKeys}= {}) => {\n forEach(b, (val, key) => {\n if (thisArg && isFunction(val)) {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n }, {allOwnKeys});\n return a;\n}\n\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n *\n * @returns {string} content value without BOM\n */\nconst stripBOM = (content) => {\n if (content.charCodeAt(0) === 0xFEFF) {\n content = content.slice(1);\n }\n return content;\n}\n\n/**\n * Inherit the prototype methods from one constructor into another\n * @param {function} constructor\n * @param {function} superConstructor\n * @param {object} [props]\n * @param {object} [descriptors]\n *\n * @returns {void}\n */\nconst inherits = (constructor, superConstructor, props, descriptors) => {\n constructor.prototype = Object.create(superConstructor.prototype, descriptors);\n constructor.prototype.constructor = constructor;\n Object.defineProperty(constructor, 'super', {\n value: superConstructor.prototype\n });\n props && Object.assign(constructor.prototype, props);\n}\n\n/**\n * Resolve object with deep prototype chain to a flat object\n * @param {Object} sourceObj source object\n * @param {Object} [destObj]\n * @param {Function|Boolean} [filter]\n * @param {Function} [propFilter]\n *\n * @returns {Object}\n */\nconst toFlatObject = (sourceObj, destObj, filter, propFilter) => {\n let props;\n let i;\n let prop;\n const merged = {};\n\n destObj = destObj || {};\n // eslint-disable-next-line no-eq-null,eqeqeq\n if (sourceObj == null) return destObj;\n\n do {\n props = Object.getOwnPropertyNames(sourceObj);\n i = props.length;\n while (i-- > 0) {\n prop = props[i];\n if ((!propFilter || propFilter(prop, sourceObj, destObj)) && !merged[prop]) {\n destObj[prop] = sourceObj[prop];\n merged[prop] = true;\n }\n }\n sourceObj = filter !== false && getPrototypeOf(sourceObj);\n } while (sourceObj && (!filter || filter(sourceObj, destObj)) && sourceObj !== Object.prototype);\n\n return destObj;\n}\n\n/**\n * Determines whether a string ends with the characters of a specified string\n *\n * @param {String} str\n * @param {String} searchString\n * @param {Number} [position= 0]\n *\n * @returns {boolean}\n */\nconst endsWith = (str, searchString, position) => {\n str = String(str);\n if (position === undefined || position > str.length) {\n position = str.length;\n }\n position -= searchString.length;\n const lastIndex = str.indexOf(searchString, position);\n return lastIndex !== -1 && lastIndex === position;\n}\n\n\n/**\n * Returns new array from array like object or null if failed\n *\n * @param {*} [thing]\n *\n * @returns {?Array}\n */\nconst toArray = (thing) => {\n if (!thing) return null;\n if (isArray(thing)) return thing;\n let i = thing.length;\n if (!isNumber(i)) return null;\n const arr = new Array(i);\n while (i-- > 0) {\n arr[i] = thing[i];\n }\n return arr;\n}\n\n/**\n * Checking if the Uint8Array exists and if it does, it returns a function that checks if the\n * thing passed in is an instance of Uint8Array\n *\n * @param {TypedArray}\n *\n * @returns {Array}\n */\n// eslint-disable-next-line func-names\nconst isTypedArray = (TypedArray => {\n // eslint-disable-next-line func-names\n return thing => {\n return TypedArray && thing instanceof TypedArray;\n };\n})(typeof Uint8Array !== 'undefined' && getPrototypeOf(Uint8Array));\n\n/**\n * For each entry in the object, call the function with the key and value.\n *\n * @param {Object} obj - The object to iterate over.\n * @param {Function} fn - The function to call for each entry.\n *\n * @returns {void}\n */\nconst forEachEntry = (obj, fn) => {\n const generator = obj && obj[Symbol.iterator];\n\n const iterator = generator.call(obj);\n\n let result;\n\n while ((result = iterator.next()) && !result.done) {\n const pair = result.value;\n fn.call(obj, pair[0], pair[1]);\n }\n}\n\n/**\n * It takes a regular expression and a string, and returns an array of all the matches\n *\n * @param {string} regExp - The regular expression to match against.\n * @param {string} str - The string to search.\n *\n * @returns {Array}\n */\nconst matchAll = (regExp, str) => {\n let matches;\n const arr = [];\n\n while ((matches = regExp.exec(str)) !== null) {\n arr.push(matches);\n }\n\n return arr;\n}\n\n/* Checking if the kindOfTest function returns true when passed an HTMLFormElement. */\nconst isHTMLForm = kindOfTest('HTMLFormElement');\n\nconst toCamelCase = str => {\n return str.toLowerCase().replace(/[_-\\s]([a-z\\d])(\\w*)/g,\n function replacer(m, p1, p2) {\n return p1.toUpperCase() + p2;\n }\n );\n};\n\n/* Creating a function that will check if an object has a property. */\nconst hasOwnProperty = (({hasOwnProperty}) => (obj, prop) => hasOwnProperty.call(obj, prop))(Object.prototype);\n\n/**\n * Determine if a value is a RegExp object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a RegExp object, otherwise false\n */\nconst isRegExp = kindOfTest('RegExp');\n\nconst reduceDescriptors = (obj, reducer) => {\n const descriptors = Object.getOwnPropertyDescriptors(obj);\n const reducedDescriptors = {};\n\n forEach(descriptors, (descriptor, name) => {\n if (reducer(descriptor, name, obj) !== false) {\n reducedDescriptors[name] = descriptor;\n }\n });\n\n Object.defineProperties(obj, reducedDescriptors);\n}\n\n/**\n * Makes all methods read-only\n * @param {Object} obj\n */\n\nconst freezeMethods = (obj) => {\n reduceDescriptors(obj, (descriptor, name) => {\n // skip restricted props in strict mode\n if (isFunction(obj) && ['arguments', 'caller', 'callee'].indexOf(name) !== -1) {\n return false;\n }\n\n const value = obj[name];\n\n if (!isFunction(value)) return;\n\n descriptor.enumerable = false;\n\n if ('writable' in descriptor) {\n descriptor.writable = false;\n return;\n }\n\n if (!descriptor.set) {\n descriptor.set = () => {\n throw Error('Can not rewrite read-only method \\'' + name + '\\'');\n };\n }\n });\n}\n\nconst toObjectSet = (arrayOrString, delimiter) => {\n const obj = {};\n\n const define = (arr) => {\n arr.forEach(value => {\n obj[value] = true;\n });\n }\n\n isArray(arrayOrString) ? define(arrayOrString) : define(String(arrayOrString).split(delimiter));\n\n return obj;\n}\n\nconst noop = () => {}\n\nconst toFiniteNumber = (value, defaultValue) => {\n value = +value;\n return Number.isFinite(value) ? value : defaultValue;\n}\n\nconst toJSONObject = (obj) => {\n const stack = new Array(10);\n\n const visit = (source, i) => {\n\n if (isObject(source)) {\n if (stack.indexOf(source) >= 0) {\n return;\n }\n\n if(!('toJSON' in source)) {\n stack[i] = source;\n const target = isArray(source) ? [] : {};\n\n forEach(source, (value, key) => {\n const reducedValue = visit(value, i + 1);\n !isUndefined(reducedValue) && (target[key] = reducedValue);\n });\n\n stack[i] = undefined;\n\n return target;\n }\n }\n\n return source;\n }\n\n return visit(obj, 0);\n}\n\nexport default {\n isArray,\n isArrayBuffer,\n isBuffer,\n isFormData,\n isArrayBufferView,\n isString,\n isNumber,\n isBoolean,\n isObject,\n isPlainObject,\n isUndefined,\n isDate,\n isFile,\n isBlob,\n isRegExp,\n isFunction,\n isStream,\n isURLSearchParams,\n isTypedArray,\n isFileList,\n forEach,\n merge,\n extend,\n trim,\n stripBOM,\n inherits,\n toFlatObject,\n kindOf,\n kindOfTest,\n endsWith,\n toArray,\n forEachEntry,\n matchAll,\n isHTMLForm,\n hasOwnProperty,\n hasOwnProp: hasOwnProperty, // an alias to avoid ESLint no-prototype-builtins detection\n reduceDescriptors,\n freezeMethods,\n toObjectSet,\n toCamelCase,\n noop,\n toFiniteNumber,\n findKey,\n global: _global,\n isContextDefined,\n toJSONObject\n};\n","'use strict';\n\nimport utils from '../utils.js';\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [config] The config.\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n *\n * @returns {Error} The created error.\n */\nfunction AxiosError(message, code, config, request, response) {\n Error.call(this);\n\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor);\n } else {\n this.stack = (new Error()).stack;\n }\n\n this.message = message;\n this.name = 'AxiosError';\n code && (this.code = code);\n config && (this.config = config);\n request && (this.request = request);\n response && (this.response = response);\n}\n\nutils.inherits(AxiosError, Error, {\n toJSON: function toJSON() {\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: utils.toJSONObject(this.config),\n code: this.code,\n status: this.response && this.response.status ? this.response.status : null\n };\n }\n});\n\nconst prototype = AxiosError.prototype;\nconst descriptors = {};\n\n[\n 'ERR_BAD_OPTION_VALUE',\n 'ERR_BAD_OPTION',\n 'ECONNABORTED',\n 'ETIMEDOUT',\n 'ERR_NETWORK',\n 'ERR_FR_TOO_MANY_REDIRECTS',\n 'ERR_DEPRECATED',\n 'ERR_BAD_RESPONSE',\n 'ERR_BAD_REQUEST',\n 'ERR_CANCELED',\n 'ERR_NOT_SUPPORT',\n 'ERR_INVALID_URL'\n// eslint-disable-next-line func-names\n].forEach(code => {\n descriptors[code] = {value: code};\n});\n\nObject.defineProperties(AxiosError, descriptors);\nObject.defineProperty(prototype, 'isAxiosError', {value: true});\n\n// eslint-disable-next-line func-names\nAxiosError.from = (error, code, config, request, response, customProps) => {\n const axiosError = Object.create(prototype);\n\n utils.toFlatObject(error, axiosError, function filter(obj) {\n return obj !== Error.prototype;\n }, prop => {\n return prop !== 'isAxiosError';\n });\n\n AxiosError.call(axiosError, error.message, code, config, request, response);\n\n axiosError.cause = error;\n\n axiosError.name = error.name;\n\n customProps && Object.assign(axiosError, customProps);\n\n return axiosError;\n};\n\nexport default AxiosError;\n","import FormData from 'form-data';\nexport default FormData;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\nimport envFormData from '../env/classes/FormData.js';\n\n/**\n * Determines if the given thing is a array or js object.\n *\n * @param {string} thing - The object or array to be visited.\n *\n * @returns {boolean}\n */\nfunction isVisitable(thing) {\n return utils.isPlainObject(thing) || utils.isArray(thing);\n}\n\n/**\n * It removes the brackets from the end of a string\n *\n * @param {string} key - The key of the parameter.\n *\n * @returns {string} the key without the brackets.\n */\nfunction removeBrackets(key) {\n return utils.endsWith(key, '[]') ? key.slice(0, -2) : key;\n}\n\n/**\n * It takes a path, a key, and a boolean, and returns a string\n *\n * @param {string} path - The path to the current key.\n * @param {string} key - The key of the current object being iterated over.\n * @param {string} dots - If true, the key will be rendered with dots instead of brackets.\n *\n * @returns {string} The path to the current key.\n */\nfunction renderKey(path, key, dots) {\n if (!path) return key;\n return path.concat(key).map(function each(token, i) {\n // eslint-disable-next-line no-param-reassign\n token = removeBrackets(token);\n return !dots && i ? '[' + token + ']' : token;\n }).join(dots ? '.' : '');\n}\n\n/**\n * If the array is an array and none of its elements are visitable, then it's a flat array.\n *\n * @param {Array} arr - The array to check\n *\n * @returns {boolean}\n */\nfunction isFlatArray(arr) {\n return utils.isArray(arr) && !arr.some(isVisitable);\n}\n\nconst predicates = utils.toFlatObject(utils, {}, null, function filter(prop) {\n return /^is[A-Z]/.test(prop);\n});\n\n/**\n * If the thing is a FormData object, return true, otherwise return false.\n *\n * @param {unknown} thing - The thing to check.\n *\n * @returns {boolean}\n */\nfunction isSpecCompliant(thing) {\n return thing && utils.isFunction(thing.append) && thing[Symbol.toStringTag] === 'FormData' && thing[Symbol.iterator];\n}\n\n/**\n * Convert a data object to FormData\n *\n * @param {Object} obj\n * @param {?Object} [formData]\n * @param {?Object} [options]\n * @param {Function} [options.visitor]\n * @param {Boolean} [options.metaTokens = true]\n * @param {Boolean} [options.dots = false]\n * @param {?Boolean} [options.indexes = false]\n *\n * @returns {Object}\n **/\n\n/**\n * It converts an object into a FormData object\n *\n * @param {Object} obj - The object to convert to form data.\n * @param {string} formData - The FormData object to append to.\n * @param {Object} options\n *\n * @returns\n */\nfunction toFormData(obj, formData, options) {\n if (!utils.isObject(obj)) {\n throw new TypeError('target must be an object');\n }\n\n // eslint-disable-next-line no-param-reassign\n formData = formData || new (envFormData || FormData)();\n\n // eslint-disable-next-line no-param-reassign\n options = utils.toFlatObject(options, {\n metaTokens: true,\n dots: false,\n indexes: false\n }, false, function defined(option, source) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n return !utils.isUndefined(source[option]);\n });\n\n const metaTokens = options.metaTokens;\n // eslint-disable-next-line no-use-before-define\n const visitor = options.visitor || defaultVisitor;\n const dots = options.dots;\n const indexes = options.indexes;\n const _Blob = options.Blob || typeof Blob !== 'undefined' && Blob;\n const useBlob = _Blob && isSpecCompliant(formData);\n\n if (!utils.isFunction(visitor)) {\n throw new TypeError('visitor must be a function');\n }\n\n function convertValue(value) {\n if (value === null) return '';\n\n if (utils.isDate(value)) {\n return value.toISOString();\n }\n\n if (!useBlob && utils.isBlob(value)) {\n throw new AxiosError('Blob is not supported. Use a Buffer instead.');\n }\n\n if (utils.isArrayBuffer(value) || utils.isTypedArray(value)) {\n return useBlob && typeof Blob === 'function' ? new Blob([value]) : Buffer.from(value);\n }\n\n return value;\n }\n\n /**\n * Default visitor.\n *\n * @param {*} value\n * @param {String|Number} key\n * @param {Array} path\n * @this {FormData}\n *\n * @returns {boolean} return true to visit the each prop of the value recursively\n */\n function defaultVisitor(value, key, path) {\n let arr = value;\n\n if (value && !path && typeof value === 'object') {\n if (utils.endsWith(key, '{}')) {\n // eslint-disable-next-line no-param-reassign\n key = metaTokens ? key : key.slice(0, -2);\n // eslint-disable-next-line no-param-reassign\n value = JSON.stringify(value);\n } else if (\n (utils.isArray(value) && isFlatArray(value)) ||\n (utils.isFileList(value) || utils.endsWith(key, '[]') && (arr = utils.toArray(value))\n )) {\n // eslint-disable-next-line no-param-reassign\n key = removeBrackets(key);\n\n arr.forEach(function each(el, index) {\n !(utils.isUndefined(el) || el === null) && formData.append(\n // eslint-disable-next-line no-nested-ternary\n indexes === true ? renderKey([key], index, dots) : (indexes === null ? key : key + '[]'),\n convertValue(el)\n );\n });\n return false;\n }\n }\n\n if (isVisitable(value)) {\n return true;\n }\n\n formData.append(renderKey(path, key, dots), convertValue(value));\n\n return false;\n }\n\n const stack = [];\n\n const exposedHelpers = Object.assign(predicates, {\n defaultVisitor,\n convertValue,\n isVisitable\n });\n\n function build(value, path) {\n if (utils.isUndefined(value)) return;\n\n if (stack.indexOf(value) !== -1) {\n throw Error('Circular reference detected in ' + path.join('.'));\n }\n\n stack.push(value);\n\n utils.forEach(value, function each(el, key) {\n const result = !(utils.isUndefined(el) || el === null) && visitor.call(\n formData, el, utils.isString(key) ? key.trim() : key, path, exposedHelpers\n );\n\n if (result === true) {\n build(el, path ? path.concat(key) : [key]);\n }\n });\n\n stack.pop();\n }\n\n if (!utils.isObject(obj)) {\n throw new TypeError('data must be an object');\n }\n\n build(obj);\n\n return formData;\n}\n\nexport default toFormData;\n","'use strict';\n\nimport toFormData from './toFormData.js';\n\n/**\n * It encodes a string by replacing all characters that are not in the unreserved set with\n * their percent-encoded equivalents\n *\n * @param {string} str - The string to encode.\n *\n * @returns {string} The encoded string.\n */\nfunction encode(str) {\n const charMap = {\n '!': '%21',\n \"'\": '%27',\n '(': '%28',\n ')': '%29',\n '~': '%7E',\n '%20': '+',\n '%00': '\\x00'\n };\n return encodeURIComponent(str).replace(/[!'()~]|%20|%00/g, function replacer(match) {\n return charMap[match];\n });\n}\n\n/**\n * It takes a params object and converts it to a FormData object\n *\n * @param {Object} params - The parameters to be converted to a FormData object.\n * @param {Object} options - The options object passed to the Axios constructor.\n *\n * @returns {void}\n */\nfunction AxiosURLSearchParams(params, options) {\n this._pairs = [];\n\n params && toFormData(params, this, options);\n}\n\nconst prototype = AxiosURLSearchParams.prototype;\n\nprototype.append = function append(name, value) {\n this._pairs.push([name, value]);\n};\n\nprototype.toString = function toString(encoder) {\n const _encode = encoder ? function(value) {\n return encoder.call(this, value, encode);\n } : encode;\n\n return this._pairs.map(function each(pair) {\n return _encode(pair[0]) + '=' + _encode(pair[1]);\n }, '').join('&');\n};\n\nexport default AxiosURLSearchParams;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosURLSearchParams from '../helpers/AxiosURLSearchParams.js';\n\n/**\n * It replaces all instances of the characters `:`, `$`, `,`, `+`, `[`, and `]` with their\n * URI encoded counterparts\n *\n * @param {string} val The value to be encoded.\n *\n * @returns {string} The encoded value.\n */\nfunction encode(val) {\n return encodeURIComponent(val).\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+').\n replace(/%5B/gi, '[').\n replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @param {?object} options\n *\n * @returns {string} The formatted url\n */\nexport default function buildURL(url, params, options) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n \n const _encode = options && options.encode || encode;\n\n const serializeFn = options && options.serialize;\n\n let serializedParams;\n\n if (serializeFn) {\n serializedParams = serializeFn(params, options);\n } else {\n serializedParams = utils.isURLSearchParams(params) ?\n params.toString() :\n new AxiosURLSearchParams(params, options).toString(_encode);\n }\n\n if (serializedParams) {\n const hashmarkIndex = url.indexOf(\"#\");\n\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n}\n","'use strict';\n\nimport utils from './../utils.js';\n\nclass InterceptorManager {\n constructor() {\n this.handlers = [];\n }\n\n /**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\n use(fulfilled, rejected, options) {\n this.handlers.push({\n fulfilled,\n rejected,\n synchronous: options ? options.synchronous : false,\n runWhen: options ? options.runWhen : null\n });\n return this.handlers.length - 1;\n }\n\n /**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n *\n * @returns {Boolean} `true` if the interceptor was removed, `false` otherwise\n */\n eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n }\n\n /**\n * Clear all interceptors from the stack\n *\n * @returns {void}\n */\n clear() {\n if (this.handlers) {\n this.handlers = [];\n }\n }\n\n /**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n *\n * @returns {void}\n */\n forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n }\n}\n\nexport default InterceptorManager;\n","'use strict';\n\nexport default {\n silentJSONParsing: true,\n forcedJSONParsing: true,\n clarifyTimeoutError: false\n};\n","'use strict';\n\nimport AxiosURLSearchParams from '../../../helpers/AxiosURLSearchParams.js';\nexport default typeof URLSearchParams !== 'undefined' ? URLSearchParams : AxiosURLSearchParams;\n","'use strict';\n\nexport default FormData;\n","import URLSearchParams from './classes/URLSearchParams.js'\nimport FormData from './classes/FormData.js'\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n *\n * @returns {boolean}\n */\nconst isStandardBrowserEnv = (() => {\n let product;\n if (typeof navigator !== 'undefined' && (\n (product = navigator.product) === 'ReactNative' ||\n product === 'NativeScript' ||\n product === 'NS')\n ) {\n return false;\n }\n\n return typeof window !== 'undefined' && typeof document !== 'undefined';\n})();\n\nexport default {\n isBrowser: true,\n classes: {\n URLSearchParams,\n FormData,\n Blob\n },\n isStandardBrowserEnv,\n protocols: ['http', 'https', 'file', 'blob', 'url', 'data']\n};\n","'use strict';\n\nimport utils from '../utils.js';\n\n/**\n * It takes a string like `foo[x][y][z]` and returns an array like `['foo', 'x', 'y', 'z']\n *\n * @param {string} name - The name of the property to get.\n *\n * @returns An array of strings.\n */\nfunction parsePropPath(name) {\n // foo[x][y][z]\n // foo.x.y.z\n // foo-x-y-z\n // foo x y z\n return utils.matchAll(/\\w+|\\[(\\w*)]/g, name).map(match => {\n return match[0] === '[]' ? '' : match[1] || match[0];\n });\n}\n\n/**\n * Convert an array to an object.\n *\n * @param {Array} arr - The array to convert to an object.\n *\n * @returns An object with the same keys and values as the array.\n */\nfunction arrayToObject(arr) {\n const obj = {};\n const keys = Object.keys(arr);\n let i;\n const len = keys.length;\n let key;\n for (i = 0; i < len; i++) {\n key = keys[i];\n obj[key] = arr[key];\n }\n return obj;\n}\n\n/**\n * It takes a FormData object and returns a JavaScript object\n *\n * @param {string} formData The FormData object to convert to JSON.\n *\n * @returns {Object | null} The converted object.\n */\nfunction formDataToJSON(formData) {\n function buildPath(path, value, target, index) {\n let name = path[index++];\n const isNumericKey = Number.isFinite(+name);\n const isLast = index >= path.length;\n name = !name && utils.isArray(target) ? target.length : name;\n\n if (isLast) {\n if (utils.hasOwnProp(target, name)) {\n target[name] = [target[name], value];\n } else {\n target[name] = value;\n }\n\n return !isNumericKey;\n }\n\n if (!target[name] || !utils.isObject(target[name])) {\n target[name] = [];\n }\n\n const result = buildPath(path, value, target[name], index);\n\n if (result && utils.isArray(target[name])) {\n target[name] = arrayToObject(target[name]);\n }\n\n return !isNumericKey;\n }\n\n if (utils.isFormData(formData) && utils.isFunction(formData.entries)) {\n const obj = {};\n\n utils.forEachEntry(formData, (name, value) => {\n buildPath(parsePropPath(name), value, obj, 0);\n });\n\n return obj;\n }\n\n return null;\n}\n\nexport default formDataToJSON;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\nimport transitionalDefaults from './transitional.js';\nimport toFormData from '../helpers/toFormData.js';\nimport toURLEncodedForm from '../helpers/toURLEncodedForm.js';\nimport platform from '../platform/index.js';\nimport formDataToJSON from '../helpers/formDataToJSON.js';\n\nconst DEFAULT_CONTENT_TYPE = {\n 'Content-Type': undefined\n};\n\n/**\n * It takes a string, tries to parse it, and if it fails, it returns the stringified version\n * of the input\n *\n * @param {any} rawValue - The value to be stringified.\n * @param {Function} parser - A function that parses a string into a JavaScript object.\n * @param {Function} encoder - A function that takes a value and returns a string.\n *\n * @returns {string} A stringified version of the rawValue.\n */\nfunction stringifySafely(rawValue, parser, encoder) {\n if (utils.isString(rawValue)) {\n try {\n (parser || JSON.parse)(rawValue);\n return utils.trim(rawValue);\n } catch (e) {\n if (e.name !== 'SyntaxError') {\n throw e;\n }\n }\n }\n\n return (encoder || JSON.stringify)(rawValue);\n}\n\nconst defaults = {\n\n transitional: transitionalDefaults,\n\n adapter: ['xhr', 'http'],\n\n transformRequest: [function transformRequest(data, headers) {\n const contentType = headers.getContentType() || '';\n const hasJSONContentType = contentType.indexOf('application/json') > -1;\n const isObjectPayload = utils.isObject(data);\n\n if (isObjectPayload && utils.isHTMLForm(data)) {\n data = new FormData(data);\n }\n\n const isFormData = utils.isFormData(data);\n\n if (isFormData) {\n if (!hasJSONContentType) {\n return data;\n }\n return hasJSONContentType ? JSON.stringify(formDataToJSON(data)) : data;\n }\n\n if (utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n headers.setContentType('application/x-www-form-urlencoded;charset=utf-8', false);\n return data.toString();\n }\n\n let isFileList;\n\n if (isObjectPayload) {\n if (contentType.indexOf('application/x-www-form-urlencoded') > -1) {\n return toURLEncodedForm(data, this.formSerializer).toString();\n }\n\n if ((isFileList = utils.isFileList(data)) || contentType.indexOf('multipart/form-data') > -1) {\n const _FormData = this.env && this.env.FormData;\n\n return toFormData(\n isFileList ? {'files[]': data} : data,\n _FormData && new _FormData(),\n this.formSerializer\n );\n }\n }\n\n if (isObjectPayload || hasJSONContentType ) {\n headers.setContentType('application/json', false);\n return stringifySafely(data);\n }\n\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n const transitional = this.transitional || defaults.transitional;\n const forcedJSONParsing = transitional && transitional.forcedJSONParsing;\n const JSONRequested = this.responseType === 'json';\n\n if (data && utils.isString(data) && ((forcedJSONParsing && !this.responseType) || JSONRequested)) {\n const silentJSONParsing = transitional && transitional.silentJSONParsing;\n const strictJSONParsing = !silentJSONParsing && JSONRequested;\n\n try {\n return JSON.parse(data);\n } catch (e) {\n if (strictJSONParsing) {\n if (e.name === 'SyntaxError') {\n throw AxiosError.from(e, AxiosError.ERR_BAD_RESPONSE, this, null, this.response);\n }\n throw e;\n }\n }\n }\n\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n maxBodyLength: -1,\n\n env: {\n FormData: platform.classes.FormData,\n Blob: platform.classes.Blob\n },\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n },\n\n headers: {\n common: {\n 'Accept': 'application/json, text/plain, */*'\n }\n }\n};\n\nutils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) {\n defaults.headers[method] = {};\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE);\n});\n\nexport default defaults;\n","'use strict';\n\nimport utils from '../utils.js';\nimport toFormData from './toFormData.js';\nimport platform from '../platform/index.js';\n\nexport default function toURLEncodedForm(data, options) {\n return toFormData(data, new platform.classes.URLSearchParams(), Object.assign({\n visitor: function(value, key, path, helpers) {\n if (platform.isNode && utils.isBuffer(value)) {\n this.append(key, value.toString('base64'));\n return false;\n }\n\n return helpers.defaultVisitor.apply(this, arguments);\n }\n }, options));\n}\n","'use strict';\n\nimport utils from './../utils.js';\n\n// RawAxiosHeaders whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nconst ignoreDuplicateOf = utils.toObjectSet([\n 'age', 'authorization', 'content-length', 'content-type', 'etag',\n 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n 'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n 'referer', 'retry-after', 'user-agent'\n]);\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} rawHeaders Headers needing to be parsed\n *\n * @returns {Object} Headers parsed into an object\n */\nexport default rawHeaders => {\n const parsed = {};\n let key;\n let val;\n let i;\n\n rawHeaders && rawHeaders.split('\\n').forEach(function parser(line) {\n i = line.indexOf(':');\n key = line.substring(0, i).trim().toLowerCase();\n val = line.substring(i + 1).trim();\n\n if (!key || (parsed[key] && ignoreDuplicateOf[key])) {\n return;\n }\n\n if (key === 'set-cookie') {\n if (parsed[key]) {\n parsed[key].push(val);\n } else {\n parsed[key] = [val];\n }\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n });\n\n return parsed;\n};\n","'use strict';\n\nimport utils from '../utils.js';\nimport parseHeaders from '../helpers/parseHeaders.js';\n\nconst $internals = Symbol('internals');\n\nfunction normalizeHeader(header) {\n return header && String(header).trim().toLowerCase();\n}\n\nfunction normalizeValue(value) {\n if (value === false || value == null) {\n return value;\n }\n\n return utils.isArray(value) ? value.map(normalizeValue) : String(value);\n}\n\nfunction parseTokens(str) {\n const tokens = Object.create(null);\n const tokensRE = /([^\\s,;=]+)\\s*(?:=\\s*([^,;]+))?/g;\n let match;\n\n while ((match = tokensRE.exec(str))) {\n tokens[match[1]] = match[2];\n }\n\n return tokens;\n}\n\nfunction isValidHeaderName(str) {\n return /^[-_a-zA-Z]+$/.test(str.trim());\n}\n\nfunction matchHeaderValue(context, value, header, filter) {\n if (utils.isFunction(filter)) {\n return filter.call(this, value, header);\n }\n\n if (!utils.isString(value)) return;\n\n if (utils.isString(filter)) {\n return value.indexOf(filter) !== -1;\n }\n\n if (utils.isRegExp(filter)) {\n return filter.test(value);\n }\n}\n\nfunction formatHeader(header) {\n return header.trim()\n .toLowerCase().replace(/([a-z\\d])(\\w*)/g, (w, char, str) => {\n return char.toUpperCase() + str;\n });\n}\n\nfunction buildAccessors(obj, header) {\n const accessorName = utils.toCamelCase(' ' + header);\n\n ['get', 'set', 'has'].forEach(methodName => {\n Object.defineProperty(obj, methodName + accessorName, {\n value: function(arg1, arg2, arg3) {\n return this[methodName].call(this, header, arg1, arg2, arg3);\n },\n configurable: true\n });\n });\n}\n\nclass AxiosHeaders {\n constructor(headers) {\n headers && this.set(headers);\n }\n\n set(header, valueOrRewrite, rewrite) {\n const self = this;\n\n function setHeader(_value, _header, _rewrite) {\n const lHeader = normalizeHeader(_header);\n\n if (!lHeader) {\n throw new Error('header name must be a non-empty string');\n }\n\n const key = utils.findKey(self, lHeader);\n\n if(!key || self[key] === undefined || _rewrite === true || (_rewrite === undefined && self[key] !== false)) {\n self[key || _header] = normalizeValue(_value);\n }\n }\n\n const setHeaders = (headers, _rewrite) =>\n utils.forEach(headers, (_value, _header) => setHeader(_value, _header, _rewrite));\n\n if (utils.isPlainObject(header) || header instanceof this.constructor) {\n setHeaders(header, valueOrRewrite)\n } else if(utils.isString(header) && (header = header.trim()) && !isValidHeaderName(header)) {\n setHeaders(parseHeaders(header), valueOrRewrite);\n } else {\n header != null && setHeader(valueOrRewrite, header, rewrite);\n }\n\n return this;\n }\n\n get(header, parser) {\n header = normalizeHeader(header);\n\n if (header) {\n const key = utils.findKey(this, header);\n\n if (key) {\n const value = this[key];\n\n if (!parser) {\n return value;\n }\n\n if (parser === true) {\n return parseTokens(value);\n }\n\n if (utils.isFunction(parser)) {\n return parser.call(this, value, key);\n }\n\n if (utils.isRegExp(parser)) {\n return parser.exec(value);\n }\n\n throw new TypeError('parser must be boolean|regexp|function');\n }\n }\n }\n\n has(header, matcher) {\n header = normalizeHeader(header);\n\n if (header) {\n const key = utils.findKey(this, header);\n\n return !!(key && (!matcher || matchHeaderValue(this, this[key], key, matcher)));\n }\n\n return false;\n }\n\n delete(header, matcher) {\n const self = this;\n let deleted = false;\n\n function deleteHeader(_header) {\n _header = normalizeHeader(_header);\n\n if (_header) {\n const key = utils.findKey(self, _header);\n\n if (key && (!matcher || matchHeaderValue(self, self[key], key, matcher))) {\n delete self[key];\n\n deleted = true;\n }\n }\n }\n\n if (utils.isArray(header)) {\n header.forEach(deleteHeader);\n } else {\n deleteHeader(header);\n }\n\n return deleted;\n }\n\n clear() {\n return Object.keys(this).forEach(this.delete.bind(this));\n }\n\n normalize(format) {\n const self = this;\n const headers = {};\n\n utils.forEach(this, (value, header) => {\n const key = utils.findKey(headers, header);\n\n if (key) {\n self[key] = normalizeValue(value);\n delete self[header];\n return;\n }\n\n const normalized = format ? formatHeader(header) : String(header).trim();\n\n if (normalized !== header) {\n delete self[header];\n }\n\n self[normalized] = normalizeValue(value);\n\n headers[normalized] = true;\n });\n\n return this;\n }\n\n concat(...targets) {\n return this.constructor.concat(this, ...targets);\n }\n\n toJSON(asStrings) {\n const obj = Object.create(null);\n\n utils.forEach(this, (value, header) => {\n value != null && value !== false && (obj[header] = asStrings && utils.isArray(value) ? value.join(', ') : value);\n });\n\n return obj;\n }\n\n [Symbol.iterator]() {\n return Object.entries(this.toJSON())[Symbol.iterator]();\n }\n\n toString() {\n return Object.entries(this.toJSON()).map(([header, value]) => header + ': ' + value).join('\\n');\n }\n\n get [Symbol.toStringTag]() {\n return 'AxiosHeaders';\n }\n\n static from(thing) {\n return thing instanceof this ? thing : new this(thing);\n }\n\n static concat(first, ...targets) {\n const computed = new this(first);\n\n targets.forEach((target) => computed.set(target));\n\n return computed;\n }\n\n static accessor(header) {\n const internals = this[$internals] = (this[$internals] = {\n accessors: {}\n });\n\n const accessors = internals.accessors;\n const prototype = this.prototype;\n\n function defineAccessor(_header) {\n const lHeader = normalizeHeader(_header);\n\n if (!accessors[lHeader]) {\n buildAccessors(prototype, _header);\n accessors[lHeader] = true;\n }\n }\n\n utils.isArray(header) ? header.forEach(defineAccessor) : defineAccessor(header);\n\n return this;\n }\n}\n\nAxiosHeaders.accessor(['Content-Type', 'Content-Length', 'Accept', 'Accept-Encoding', 'User-Agent']);\n\nutils.freezeMethods(AxiosHeaders.prototype);\nutils.freezeMethods(AxiosHeaders);\n\nexport default AxiosHeaders;\n","'use strict';\n\nimport utils from './../utils.js';\nimport defaults from '../defaults/index.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Array|Function} fns A single function or Array of functions\n * @param {?Object} response The response object\n *\n * @returns {*} The resulting transformed data\n */\nexport default function transformData(fns, response) {\n const config = this || defaults;\n const context = response || config;\n const headers = AxiosHeaders.from(context.headers);\n let data = context.data;\n\n utils.forEach(fns, function transform(fn) {\n data = fn.call(config, data, headers.normalize(), response ? response.status : undefined);\n });\n\n headers.normalize();\n\n return data;\n}\n","'use strict';\n\nexport default function isCancel(value) {\n return !!(value && value.__CANCEL__);\n}\n","'use strict';\n\nimport AxiosError from '../core/AxiosError.js';\nimport utils from '../utils.js';\n\n/**\n * A `CanceledError` is an object that is thrown when an operation is canceled.\n *\n * @param {string=} message The message.\n * @param {Object=} config The config.\n * @param {Object=} request The request.\n *\n * @returns {CanceledError} The created error.\n */\nfunction CanceledError(message, config, request) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n AxiosError.call(this, message == null ? 'canceled' : message, AxiosError.ERR_CANCELED, config, request);\n this.name = 'CanceledError';\n}\n\nutils.inherits(CanceledError, AxiosError, {\n __CANCEL__: true\n});\n\nexport default CanceledError;\n","'use strict';\n\nimport utils from './../utils.js';\nimport platform from '../platform/index.js';\n\nexport default platform.isStandardBrowserEnv ?\n\n// Standard browser envs support document.cookie\n (function standardBrowserEnv() {\n return {\n write: function write(name, value, expires, path, domain, secure) {\n const cookie = [];\n cookie.push(name + '=' + encodeURIComponent(value));\n\n if (utils.isNumber(expires)) {\n cookie.push('expires=' + new Date(expires).toGMTString());\n }\n\n if (utils.isString(path)) {\n cookie.push('path=' + path);\n }\n\n if (utils.isString(domain)) {\n cookie.push('domain=' + domain);\n }\n\n if (secure === true) {\n cookie.push('secure');\n }\n\n document.cookie = cookie.join('; ');\n },\n\n read: function read(name) {\n const match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : null);\n },\n\n remove: function remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n };\n })() :\n\n// Non standard browser env (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return {\n write: function write() {},\n read: function read() { return null; },\n remove: function remove() {}\n };\n })();\n","'use strict';\n\nimport isAbsoluteURL from '../helpers/isAbsoluteURL.js';\nimport combineURLs from '../helpers/combineURLs.js';\n\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n *\n * @returns {string} The combined full path\n */\nexport default function buildFullPath(baseURL, requestedURL) {\n if (baseURL && !isAbsoluteURL(requestedURL)) {\n return combineURLs(baseURL, requestedURL);\n }\n return requestedURL;\n}\n","'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n *\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nexport default function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d+\\-.]*:)?\\/\\//i.test(url);\n}\n","'use strict';\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n *\n * @returns {string} The combined URL\n */\nexport default function combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/+$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n}\n","'use strict';\n\nimport utils from './../utils.js';\nimport platform from '../platform/index.js';\n\nexport default platform.isStandardBrowserEnv ?\n\n// Standard browser envs have full support of the APIs needed to test\n// whether the request URL is of the same origin as current location.\n (function standardBrowserEnv() {\n const msie = /(msie|trident)/i.test(navigator.userAgent);\n const urlParsingNode = document.createElement('a');\n let originURL;\n\n /**\n * Parse a URL to discover it's components\n *\n * @param {String} url The URL to be parsed\n * @returns {Object}\n */\n function resolveURL(url) {\n let href = url;\n\n if (msie) {\n // IE needs attribute set twice to normalize properties\n urlParsingNode.setAttribute('href', href);\n href = urlParsingNode.href;\n }\n\n urlParsingNode.setAttribute('href', href);\n\n // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n return {\n href: urlParsingNode.href,\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n host: urlParsingNode.host,\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n hostname: urlParsingNode.hostname,\n port: urlParsingNode.port,\n pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\n urlParsingNode.pathname :\n '/' + urlParsingNode.pathname\n };\n }\n\n originURL = resolveURL(window.location.href);\n\n /**\n * Determine if a URL shares the same origin as the current location\n *\n * @param {String} requestURL The URL to test\n * @returns {boolean} True if URL shares the same origin, otherwise false\n */\n return function isURLSameOrigin(requestURL) {\n const parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\n return (parsed.protocol === originURL.protocol &&\n parsed.host === originURL.host);\n };\n })() :\n\n // Non standard browser envs (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return function isURLSameOrigin() {\n return true;\n };\n })();\n","'use strict';\n\n/**\n * Calculate data maxRate\n * @param {Number} [samplesCount= 10]\n * @param {Number} [min= 1000]\n * @returns {Function}\n */\nfunction speedometer(samplesCount, min) {\n samplesCount = samplesCount || 10;\n const bytes = new Array(samplesCount);\n const timestamps = new Array(samplesCount);\n let head = 0;\n let tail = 0;\n let firstSampleTS;\n\n min = min !== undefined ? min : 1000;\n\n return function push(chunkLength) {\n const now = Date.now();\n\n const startedAt = timestamps[tail];\n\n if (!firstSampleTS) {\n firstSampleTS = now;\n }\n\n bytes[head] = chunkLength;\n timestamps[head] = now;\n\n let i = tail;\n let bytesCount = 0;\n\n while (i !== head) {\n bytesCount += bytes[i++];\n i = i % samplesCount;\n }\n\n head = (head + 1) % samplesCount;\n\n if (head === tail) {\n tail = (tail + 1) % samplesCount;\n }\n\n if (now - firstSampleTS < min) {\n return;\n }\n\n const passed = startedAt && now - startedAt;\n\n return passed ? Math.round(bytesCount * 1000 / passed) : undefined;\n };\n}\n\nexport default speedometer;\n","'use strict';\n\nimport utils from './../utils.js';\nimport settle from './../core/settle.js';\nimport cookies from './../helpers/cookies.js';\nimport buildURL from './../helpers/buildURL.js';\nimport buildFullPath from '../core/buildFullPath.js';\nimport isURLSameOrigin from './../helpers/isURLSameOrigin.js';\nimport transitionalDefaults from '../defaults/transitional.js';\nimport AxiosError from '../core/AxiosError.js';\nimport CanceledError from '../cancel/CanceledError.js';\nimport parseProtocol from '../helpers/parseProtocol.js';\nimport platform from '../platform/index.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport speedometer from '../helpers/speedometer.js';\n\nfunction progressEventReducer(listener, isDownloadStream) {\n let bytesNotified = 0;\n const _speedometer = speedometer(50, 250);\n\n return e => {\n const loaded = e.loaded;\n const total = e.lengthComputable ? e.total : undefined;\n const progressBytes = loaded - bytesNotified;\n const rate = _speedometer(progressBytes);\n const inRange = loaded <= total;\n\n bytesNotified = loaded;\n\n const data = {\n loaded,\n total,\n progress: total ? (loaded / total) : undefined,\n bytes: progressBytes,\n rate: rate ? rate : undefined,\n estimated: rate && total && inRange ? (total - loaded) / rate : undefined,\n event: e\n };\n\n data[isDownloadStream ? 'download' : 'upload'] = true;\n\n listener(data);\n };\n}\n\nconst isXHRAdapterSupported = typeof XMLHttpRequest !== 'undefined';\n\nexport default isXHRAdapterSupported && function (config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n let requestData = config.data;\n const requestHeaders = AxiosHeaders.from(config.headers).normalize();\n const responseType = config.responseType;\n let onCanceled;\n function done() {\n if (config.cancelToken) {\n config.cancelToken.unsubscribe(onCanceled);\n }\n\n if (config.signal) {\n config.signal.removeEventListener('abort', onCanceled);\n }\n }\n\n if (utils.isFormData(requestData) && platform.isStandardBrowserEnv) {\n requestHeaders.setContentType(false); // Let the browser set it\n }\n\n let request = new XMLHttpRequest();\n\n // HTTP basic authentication\n if (config.auth) {\n const username = config.auth.username || '';\n const password = config.auth.password ? unescape(encodeURIComponent(config.auth.password)) : '';\n requestHeaders.set('Authorization', 'Basic ' + btoa(username + ':' + password));\n }\n\n const fullPath = buildFullPath(config.baseURL, config.url);\n\n request.open(config.method.toUpperCase(), buildURL(fullPath, config.params, config.paramsSerializer), true);\n\n // Set the request timeout in MS\n request.timeout = config.timeout;\n\n function onloadend() {\n if (!request) {\n return;\n }\n // Prepare the response\n const responseHeaders = AxiosHeaders.from(\n 'getAllResponseHeaders' in request && request.getAllResponseHeaders()\n );\n const responseData = !responseType || responseType === 'text' || responseType === 'json' ?\n request.responseText : request.response;\n const response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config,\n request\n };\n\n settle(function _resolve(value) {\n resolve(value);\n done();\n }, function _reject(err) {\n reject(err);\n done();\n }, response);\n\n // Clean up request\n request = null;\n }\n\n if ('onloadend' in request) {\n // Use onloadend if available\n request.onloadend = onloadend;\n } else {\n // Listen for ready state to emulate onloadend\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n }\n // readystate handler is calling before onerror or ontimeout handlers,\n // so we should call onloadend on the next 'tick'\n setTimeout(onloadend);\n };\n }\n\n // Handle browser request cancellation (as opposed to a manual cancellation)\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(new AxiosError('Request aborted', AxiosError.ECONNABORTED, config, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(new AxiosError('Network Error', AxiosError.ERR_NETWORK, config, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n let timeoutErrorMessage = config.timeout ? 'timeout of ' + config.timeout + 'ms exceeded' : 'timeout exceeded';\n const transitional = config.transitional || transitionalDefaults;\n if (config.timeoutErrorMessage) {\n timeoutErrorMessage = config.timeoutErrorMessage;\n }\n reject(new AxiosError(\n timeoutErrorMessage,\n transitional.clarifyTimeoutError ? AxiosError.ETIMEDOUT : AxiosError.ECONNABORTED,\n config,\n request));\n\n // Clean up request\n request = null;\n };\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n if (platform.isStandardBrowserEnv) {\n // Add xsrf header\n const xsrfValue = (config.withCredentials || isURLSameOrigin(fullPath))\n && config.xsrfCookieName && cookies.read(config.xsrfCookieName);\n\n if (xsrfValue) {\n requestHeaders.set(config.xsrfHeaderName, xsrfValue);\n }\n }\n\n // Remove Content-Type if data is undefined\n requestData === undefined && requestHeaders.setContentType(null);\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders.toJSON(), function setRequestHeader(val, key) {\n request.setRequestHeader(key, val);\n });\n }\n\n // Add withCredentials to request if needed\n if (!utils.isUndefined(config.withCredentials)) {\n request.withCredentials = !!config.withCredentials;\n }\n\n // Add responseType to request if needed\n if (responseType && responseType !== 'json') {\n request.responseType = config.responseType;\n }\n\n // Handle progress if needed\n if (typeof config.onDownloadProgress === 'function') {\n request.addEventListener('progress', progressEventReducer(config.onDownloadProgress, true));\n }\n\n // Not all browsers support upload events\n if (typeof config.onUploadProgress === 'function' && request.upload) {\n request.upload.addEventListener('progress', progressEventReducer(config.onUploadProgress));\n }\n\n if (config.cancelToken || config.signal) {\n // Handle cancellation\n // eslint-disable-next-line func-names\n onCanceled = cancel => {\n if (!request) {\n return;\n }\n reject(!cancel || cancel.type ? new CanceledError(null, config, request) : cancel);\n request.abort();\n request = null;\n };\n\n config.cancelToken && config.cancelToken.subscribe(onCanceled);\n if (config.signal) {\n config.signal.aborted ? onCanceled() : config.signal.addEventListener('abort', onCanceled);\n }\n }\n\n const protocol = parseProtocol(fullPath);\n\n if (protocol && platform.protocols.indexOf(protocol) === -1) {\n reject(new AxiosError('Unsupported protocol ' + protocol + ':', AxiosError.ERR_BAD_REQUEST, config));\n return;\n }\n\n\n // Send the request\n request.send(requestData || null);\n });\n}\n","'use strict';\n\nimport AxiosError from './AxiosError.js';\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n *\n * @returns {object} The response.\n */\nexport default function settle(resolve, reject, response) {\n const validateStatus = response.config.validateStatus;\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(new AxiosError(\n 'Request failed with status code ' + response.status,\n [AxiosError.ERR_BAD_REQUEST, AxiosError.ERR_BAD_RESPONSE][Math.floor(response.status / 100) - 4],\n response.config,\n response.request,\n response\n ));\n }\n}\n","'use strict';\n\nexport default function parseProtocol(url) {\n const match = /^([-+\\w]{1,25})(:?\\/\\/|:)/.exec(url);\n return match && match[1] || '';\n}\n","import utils from '../utils.js';\nimport httpAdapter from './http.js';\nimport xhrAdapter from './xhr.js';\nimport AxiosError from \"../core/AxiosError.js\";\n\nconst knownAdapters = {\n http: httpAdapter,\n xhr: xhrAdapter\n}\n\nutils.forEach(knownAdapters, (fn, value) => {\n if(fn) {\n try {\n Object.defineProperty(fn, 'name', {value});\n } catch (e) {\n // eslint-disable-next-line no-empty\n }\n Object.defineProperty(fn, 'adapterName', {value});\n }\n});\n\nexport default {\n getAdapter: (adapters) => {\n adapters = utils.isArray(adapters) ? adapters : [adapters];\n\n const {length} = adapters;\n let nameOrAdapter;\n let adapter;\n\n for (let i = 0; i < length; i++) {\n nameOrAdapter = adapters[i];\n if((adapter = utils.isString(nameOrAdapter) ? knownAdapters[nameOrAdapter.toLowerCase()] : nameOrAdapter)) {\n break;\n }\n }\n\n if (!adapter) {\n if (adapter === false) {\n throw new AxiosError(\n `Adapter ${nameOrAdapter} is not supported by the environment`,\n 'ERR_NOT_SUPPORT'\n );\n }\n\n throw new Error(\n utils.hasOwnProp(knownAdapters, nameOrAdapter) ?\n `Adapter '${nameOrAdapter}' is not available in the build` :\n `Unknown adapter '${nameOrAdapter}'`\n );\n }\n\n if (!utils.isFunction(adapter)) {\n throw new TypeError('adapter is not a function');\n }\n\n return adapter;\n },\n adapters: knownAdapters\n}\n","// eslint-disable-next-line strict\nexport default null;\n","'use strict';\n\nimport transformData from './transformData.js';\nimport isCancel from '../cancel/isCancel.js';\nimport defaults from '../defaults/index.js';\nimport CanceledError from '../cancel/CanceledError.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport adapters from \"../adapters/adapters.js\";\n\n/**\n * Throws a `CanceledError` if cancellation has been requested.\n *\n * @param {Object} config The config that is to be used for the request\n *\n * @returns {void}\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n\n if (config.signal && config.signal.aborted) {\n throw new CanceledError();\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n *\n * @returns {Promise} The Promise to be fulfilled\n */\nexport default function dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n config.headers = AxiosHeaders.from(config.headers);\n\n // Transform request data\n config.data = transformData.call(\n config,\n config.transformRequest\n );\n\n if (['post', 'put', 'patch'].indexOf(config.method) !== -1) {\n config.headers.setContentType('application/x-www-form-urlencoded', false);\n }\n\n const adapter = adapters.getAdapter(config.adapter || defaults.adapter);\n\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n response.data = transformData.call(\n config,\n config.transformResponse,\n response\n );\n\n response.headers = AxiosHeaders.from(response.headers);\n\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n reason.response.data = transformData.call(\n config,\n config.transformResponse,\n reason.response\n );\n reason.response.headers = AxiosHeaders.from(reason.response.headers);\n }\n }\n\n return Promise.reject(reason);\n });\n}\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosHeaders from \"./AxiosHeaders.js\";\n\nconst headersToObject = (thing) => thing instanceof AxiosHeaders ? thing.toJSON() : thing;\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n *\n * @returns {Object} New object resulting from merging config2 to config1\n */\nexport default function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n const config = {};\n\n function getMergedValue(target, source, caseless) {\n if (utils.isPlainObject(target) && utils.isPlainObject(source)) {\n return utils.merge.call({caseless}, target, source);\n } else if (utils.isPlainObject(source)) {\n return utils.merge({}, source);\n } else if (utils.isArray(source)) {\n return source.slice();\n }\n return source;\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDeepProperties(a, b, caseless) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(a, b, caseless);\n } else if (!utils.isUndefined(a)) {\n return getMergedValue(undefined, a, caseless);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function valueFromConfig2(a, b) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(undefined, b);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function defaultToConfig2(a, b) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(undefined, b);\n } else if (!utils.isUndefined(a)) {\n return getMergedValue(undefined, a);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDirectKeys(a, b, prop) {\n if (prop in config2) {\n return getMergedValue(a, b);\n } else if (prop in config1) {\n return getMergedValue(undefined, a);\n }\n }\n\n const mergeMap = {\n url: valueFromConfig2,\n method: valueFromConfig2,\n data: valueFromConfig2,\n baseURL: defaultToConfig2,\n transformRequest: defaultToConfig2,\n transformResponse: defaultToConfig2,\n paramsSerializer: defaultToConfig2,\n timeout: defaultToConfig2,\n timeoutMessage: defaultToConfig2,\n withCredentials: defaultToConfig2,\n adapter: defaultToConfig2,\n responseType: defaultToConfig2,\n xsrfCookieName: defaultToConfig2,\n xsrfHeaderName: defaultToConfig2,\n onUploadProgress: defaultToConfig2,\n onDownloadProgress: defaultToConfig2,\n decompress: defaultToConfig2,\n maxContentLength: defaultToConfig2,\n maxBodyLength: defaultToConfig2,\n beforeRedirect: defaultToConfig2,\n transport: defaultToConfig2,\n httpAgent: defaultToConfig2,\n httpsAgent: defaultToConfig2,\n cancelToken: defaultToConfig2,\n socketPath: defaultToConfig2,\n responseEncoding: defaultToConfig2,\n validateStatus: mergeDirectKeys,\n headers: (a, b) => mergeDeepProperties(headersToObject(a), headersToObject(b), true)\n };\n\n utils.forEach(Object.keys(config1).concat(Object.keys(config2)), function computeConfigValue(prop) {\n const merge = mergeMap[prop] || mergeDeepProperties;\n const configValue = merge(config1[prop], config2[prop], prop);\n (utils.isUndefined(configValue) && merge !== mergeDirectKeys) || (config[prop] = configValue);\n });\n\n return config;\n}\n","export const VERSION = \"1.2.0\";","'use strict';\n\nimport {VERSION} from '../env/data.js';\nimport AxiosError from '../core/AxiosError.js';\n\nconst validators = {};\n\n// eslint-disable-next-line func-names\n['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach((type, i) => {\n validators[type] = function validator(thing) {\n return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type;\n };\n});\n\nconst deprecatedWarnings = {};\n\n/**\n * Transitional option validator\n *\n * @param {function|boolean?} validator - set to false if the transitional option has been removed\n * @param {string?} version - deprecated version / removed since version\n * @param {string?} message - some message with additional info\n *\n * @returns {function}\n */\nvalidators.transitional = function transitional(validator, version, message) {\n function formatMessage(opt, desc) {\n return '[Axios v' + VERSION + '] Transitional option \\'' + opt + '\\'' + desc + (message ? '. ' + message : '');\n }\n\n // eslint-disable-next-line func-names\n return (value, opt, opts) => {\n if (validator === false) {\n throw new AxiosError(\n formatMessage(opt, ' has been removed' + (version ? ' in ' + version : '')),\n AxiosError.ERR_DEPRECATED\n );\n }\n\n if (version && !deprecatedWarnings[opt]) {\n deprecatedWarnings[opt] = true;\n // eslint-disable-next-line no-console\n console.warn(\n formatMessage(\n opt,\n ' has been deprecated since v' + version + ' and will be removed in the near future'\n )\n );\n }\n\n return validator ? validator(value, opt, opts) : true;\n };\n};\n\n/**\n * Assert object's properties type\n *\n * @param {object} options\n * @param {object} schema\n * @param {boolean?} allowUnknown\n *\n * @returns {object}\n */\n\nfunction assertOptions(options, schema, allowUnknown) {\n if (typeof options !== 'object') {\n throw new AxiosError('options must be an object', AxiosError.ERR_BAD_OPTION_VALUE);\n }\n const keys = Object.keys(options);\n let i = keys.length;\n while (i-- > 0) {\n const opt = keys[i];\n const validator = schema[opt];\n if (validator) {\n const value = options[opt];\n const result = value === undefined || validator(value, opt, options);\n if (result !== true) {\n throw new AxiosError('option ' + opt + ' must be ' + result, AxiosError.ERR_BAD_OPTION_VALUE);\n }\n continue;\n }\n if (allowUnknown !== true) {\n throw new AxiosError('Unknown option ' + opt, AxiosError.ERR_BAD_OPTION);\n }\n }\n}\n\nexport default {\n assertOptions,\n validators\n};\n","'use strict';\n\nimport utils from './../utils.js';\nimport buildURL from '../helpers/buildURL.js';\nimport InterceptorManager from './InterceptorManager.js';\nimport dispatchRequest from './dispatchRequest.js';\nimport mergeConfig from './mergeConfig.js';\nimport buildFullPath from './buildFullPath.js';\nimport validator from '../helpers/validator.js';\nimport AxiosHeaders from './AxiosHeaders.js';\n\nconst validators = validator.validators;\n\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n *\n * @return {Axios} A new instance of Axios\n */\nclass Axios {\n constructor(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager()\n };\n }\n\n /**\n * Dispatch a request\n *\n * @param {String|Object} configOrUrl The config specific for this request (merged with this.defaults)\n * @param {?Object} config\n *\n * @returns {Promise} The Promise to be fulfilled\n */\n request(configOrUrl, config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof configOrUrl === 'string') {\n config = config || {};\n config.url = configOrUrl;\n } else {\n config = configOrUrl || {};\n }\n\n config = mergeConfig(this.defaults, config);\n\n const {transitional, paramsSerializer, headers} = config;\n\n if (transitional !== undefined) {\n validator.assertOptions(transitional, {\n silentJSONParsing: validators.transitional(validators.boolean),\n forcedJSONParsing: validators.transitional(validators.boolean),\n clarifyTimeoutError: validators.transitional(validators.boolean)\n }, false);\n }\n\n if (paramsSerializer !== undefined) {\n validator.assertOptions(paramsSerializer, {\n encode: validators.function,\n serialize: validators.function\n }, true);\n }\n\n // Set config.method\n config.method = (config.method || this.defaults.method || 'get').toLowerCase();\n\n let contextHeaders;\n\n // Flatten headers\n contextHeaders = headers && utils.merge(\n headers.common,\n headers[config.method]\n );\n\n contextHeaders && utils.forEach(\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n (method) => {\n delete headers[method];\n }\n );\n\n config.headers = AxiosHeaders.concat(contextHeaders, headers);\n\n // filter out skipped interceptors\n const requestInterceptorChain = [];\n let synchronousRequestInterceptors = true;\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) {\n return;\n }\n\n synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous;\n\n requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n\n const responseInterceptorChain = [];\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n let promise;\n let i = 0;\n let len;\n\n if (!synchronousRequestInterceptors) {\n const chain = [dispatchRequest.bind(this), undefined];\n chain.unshift.apply(chain, requestInterceptorChain);\n chain.push.apply(chain, responseInterceptorChain);\n len = chain.length;\n\n promise = Promise.resolve(config);\n\n while (i < len) {\n promise = promise.then(chain[i++], chain[i++]);\n }\n\n return promise;\n }\n\n len = requestInterceptorChain.length;\n\n let newConfig = config;\n\n i = 0;\n\n while (i < len) {\n const onFulfilled = requestInterceptorChain[i++];\n const onRejected = requestInterceptorChain[i++];\n try {\n newConfig = onFulfilled(newConfig);\n } catch (error) {\n onRejected.call(this, error);\n break;\n }\n }\n\n try {\n promise = dispatchRequest.call(this, newConfig);\n } catch (error) {\n return Promise.reject(error);\n }\n\n i = 0;\n len = responseInterceptorChain.length;\n\n while (i < len) {\n promise = promise.then(responseInterceptorChain[i++], responseInterceptorChain[i++]);\n }\n\n return promise;\n }\n\n getUri(config) {\n config = mergeConfig(this.defaults, config);\n const fullPath = buildFullPath(config.baseURL, config.url);\n return buildURL(fullPath, config.params, config.paramsSerializer);\n }\n}\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, config) {\n return this.request(mergeConfig(config || {}, {\n method,\n url,\n data: (config || {}).data\n }));\n };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n\n function generateHTTPMethod(isForm) {\n return function httpMethod(url, data, config) {\n return this.request(mergeConfig(config || {}, {\n method,\n headers: isForm ? {\n 'Content-Type': 'multipart/form-data'\n } : {},\n url,\n data\n }));\n };\n }\n\n Axios.prototype[method] = generateHTTPMethod();\n\n Axios.prototype[method + 'Form'] = generateHTTPMethod(true);\n});\n\nexport default Axios;\n","'use strict';\n\nimport CanceledError from './CanceledError.js';\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @param {Function} executor The executor function.\n *\n * @returns {CancelToken}\n */\nclass CancelToken {\n constructor(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n let resolvePromise;\n\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n const token = this;\n\n // eslint-disable-next-line func-names\n this.promise.then(cancel => {\n if (!token._listeners) return;\n\n let i = token._listeners.length;\n\n while (i-- > 0) {\n token._listeners[i](cancel);\n }\n token._listeners = null;\n });\n\n // eslint-disable-next-line func-names\n this.promise.then = onfulfilled => {\n let _resolve;\n // eslint-disable-next-line func-names\n const promise = new Promise(resolve => {\n token.subscribe(resolve);\n _resolve = resolve;\n }).then(onfulfilled);\n\n promise.cancel = function reject() {\n token.unsubscribe(_resolve);\n };\n\n return promise;\n };\n\n executor(function cancel(message, config, request) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new CanceledError(message, config, request);\n resolvePromise(token.reason);\n });\n }\n\n /**\n * Throws a `CanceledError` if cancellation has been requested.\n */\n throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n }\n\n /**\n * Subscribe to the cancel signal\n */\n\n subscribe(listener) {\n if (this.reason) {\n listener(this.reason);\n return;\n }\n\n if (this._listeners) {\n this._listeners.push(listener);\n } else {\n this._listeners = [listener];\n }\n }\n\n /**\n * Unsubscribe from the cancel signal\n */\n\n unsubscribe(listener) {\n if (!this._listeners) {\n return;\n }\n const index = this._listeners.indexOf(listener);\n if (index !== -1) {\n this._listeners.splice(index, 1);\n }\n }\n\n /**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\n static source() {\n let cancel;\n const token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token,\n cancel\n };\n }\n}\n\nexport default CancelToken;\n","'use strict';\n\nimport utils from './utils.js';\nimport bind from './helpers/bind.js';\nimport Axios from './core/Axios.js';\nimport mergeConfig from './core/mergeConfig.js';\nimport defaults from './defaults/index.js';\nimport formDataToJSON from './helpers/formDataToJSON.js';\nimport CanceledError from './cancel/CanceledError.js';\nimport CancelToken from './cancel/CancelToken.js';\nimport isCancel from './cancel/isCancel.js';\nimport {VERSION} from './env/data.js';\nimport toFormData from './helpers/toFormData.js';\nimport AxiosError from './core/AxiosError.js';\nimport spread from './helpers/spread.js';\nimport isAxiosError from './helpers/isAxiosError.js';\nimport AxiosHeaders from \"./core/AxiosHeaders.js\";\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n *\n * @returns {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n const context = new Axios(defaultConfig);\n const instance = bind(Axios.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios.prototype, context, {allOwnKeys: true});\n\n // Copy context to instance\n utils.extend(instance, context, null, {allOwnKeys: true});\n\n // Factory for creating new instances\n instance.create = function create(instanceConfig) {\n return createInstance(mergeConfig(defaultConfig, instanceConfig));\n };\n\n return instance;\n}\n\n// Create the default instance to be exported\nconst axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Expose Cancel & CancelToken\naxios.CanceledError = CanceledError;\naxios.CancelToken = CancelToken;\naxios.isCancel = isCancel;\naxios.VERSION = VERSION;\naxios.toFormData = toFormData;\n\n// Expose AxiosError class\naxios.AxiosError = AxiosError;\n\n// alias for CanceledError for backward compatibility\naxios.Cancel = axios.CanceledError;\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\n\naxios.spread = spread;\n\n// Expose isAxiosError\naxios.isAxiosError = isAxiosError;\n\naxios.AxiosHeaders = AxiosHeaders;\n\naxios.formToJSON = thing => formDataToJSON(utils.isHTMLForm(thing) ? new FormData(thing) : thing);\n\naxios.default = axios;\n\n// this module should only have a default export\nexport default axios\n","'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n *\n * @returns {Function}\n */\nexport default function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n}\n","'use strict';\n\nimport utils from './../utils.js';\n\n/**\n * Determines whether the payload is an error thrown by Axios\n *\n * @param {*} payload The value to test\n *\n * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false\n */\nexport default function isAxiosError(payload) {\n return utils.isObject(payload) && (payload.isAxiosError === true);\n}\n","import {\n MouseEvent as ReactMouseEvent,\n MouseEventHandler,\n TouchEvent as ReactTouchEvent,\n TouchEventHandler,\n} from 'react';\n\nexport type Coordinates = {\n x: number;\n y: number;\n} | null;\n\nexport enum LongPressEventReason {\n // Triggered when mouse / touch was moved outside initial press area when `cancelOnMovement` is active\n CANCELED_BY_MOVEMENT = 'canceled-by-movement',\n // Triggered when released click / tap before long press detection threshold\n CANCELED_BY_TIMEOUT = 'canceled-by-timeout',\n}\nexport type LongPressEvent = ReactMouseEvent | ReactTouchEvent;\nexport type LongPressCallbackMeta = { context?: Context; reason?: LongPressEventReason };\nexport type LongPressCallback = (\n event: LongPressEvent,\n meta: LongPressCallbackMeta\n) => void;\n\nexport enum LongPressDetectEvents {\n BOTH = 'both',\n MOUSE = 'mouse',\n TOUCH = 'touch',\n}\n\nexport type LongPressResult<\n Target,\n DetectType extends LongPressDetectEvents = LongPressDetectEvents.BOTH\n> = DetectType extends LongPressDetectEvents.BOTH\n ? {\n onMouseDown: MouseEventHandler;\n onMouseUp: MouseEventHandler;\n onMouseMove: MouseEventHandler;\n onMouseLeave: MouseEventHandler;\n onTouchStart: TouchEventHandler;\n onTouchMove: TouchEventHandler;\n onTouchEnd: TouchEventHandler;\n }\n : DetectType extends LongPressDetectEvents.MOUSE\n ? {\n onMouseDown: MouseEventHandler;\n onMouseUp: MouseEventHandler;\n onMouseMove: MouseEventHandler;\n onMouseLeave: MouseEventHandler;\n }\n : DetectType extends LongPressDetectEvents.TOUCH\n ? {\n onTouchStart: TouchEventHandler;\n onTouchMove: TouchEventHandler;\n onTouchEnd: TouchEventHandler;\n }\n : never;\nexport type EmptyObject = Record;\nexport type CallableContextResult = (context?: Context) => T;\n\nexport interface LongPressOptions {\n threshold?: number;\n captureEvent?: boolean;\n detect?: LongPressDetectEvents;\n filterEvents?: (event: LongPressEvent) => boolean;\n cancelOnMovement?: boolean | number;\n onStart?: LongPressCallback;\n onMove?: LongPressCallback;\n onFinish?: LongPressCallback;\n onCancel?: LongPressCallback;\n}\n","import axios from 'axios';\r\n\r\n// const BASE_URL = 'http://your-api-url'; // Replace with your API base URL\r\n// console.log(props.State);\r\nconst appUrl = \"http://feedback.savourfoods.com.pk\"; // Live App URL\r\nconst BASE_URL = \"http://182.176.94.28:88\"; // Live API UR\r\n// const appUrl = \"http://localhost:3000\"; // Local App URL\r\n// const BASE_URL = \"http://localhost:38666\"; // Local API URL\r\n\r\nconst headers = {\r\n 'Content-Type': 'multipart/form-data',\r\n 'Authorization': 'nE0A8Um109Yrv0BHbf0BEpWd0aB0EqxvnDSfUnVwryqHFbc2+sxfwsjQssLRXKud',\r\n 'Access-Control-Allow-Origin': appUrl,\r\n 'Access-Control-Allow-Methods': 'GET, POST',\r\n 'Access-Control-Allow-Headers': 'Content-Type, Authorization',\r\n 'Access-Control-Allow-Credentials': 'true'\r\n}\r\nconst getNoParams = async (url) => {\r\n try {\r\n debugger;\r\n const response = await axios.get(`${BASE_URL}/${url}`, { headers });\r\n return response.data;\r\n } catch (error) {\r\n throw error;\r\n }\r\n};\r\nconst get = async (url, params = {}) => {\r\n try {\r\n const response = await axios.get(`${BASE_URL}/${url}`, { params });\r\n return response.data;\r\n } catch (error) {\r\n throw error;\r\n }\r\n};\r\n\r\nconst post = async (url, data) => {\r\n try {\r\n const response = await axios.post(`${BASE_URL}/${url}`, data);\r\n return response.data;\r\n } catch (error) {\r\n throw error;\r\n }\r\n};\r\n\r\nexport { get, getNoParams, post };","import React, { useEffect } from 'react'\nimport { useState } from 'react'\nimport {getNoParams} from '../Common/Api'\n\nconst Intro = (props) => {\n const [checked, setchecked] = useState(false)\n\n // useEffect(() => {\n // fetchData();\n // }, []);\n\n // const fetchData = async () => {\n // try {\n // const response = await getNoParams('api/internal/get'); // Replace 'data' with your API endpoint\n // debugger;\n // } catch (error) {\n // console.error('Error fetching data:', error);\n // }\n // };\n\n const handleChange = (param) => {\n setchecked(!checked)\n const pathname = window.location.pathname;\n debugger;\n setTimeout(() => {\n if(pathname == '/internal'){\n props.setActive(props.Active + 20)\n }\n else\n props.setActive(props.Active + 1)\n }, 400);\n }\n\n return (\n
\n

\n Customer Care\n

\n
\n

\n Connect with the Management of Savourfoods\n

\n

\n {/* اعلیٰ */}انتظامیہ سے جڑیں۔ \n

\n
\n \n
\n )\n}\n\nexport default Intro","import React from 'react'\nimport { useState } from 'react'\nimport axios from 'axios'\n\nconst Login = (props) => {\n const [username, setUsername] = useState('');\n const [password, setPassword] = useState('');\n // const [checked, setchecked] = useState(false)\n\n const handleLogin = async () => {\n try {\n const response = await axios.post('http://your-api-url/api/login', {\n username: username,\n password: password\n });\n // Handle successful login, e.g., set a token in local storage, redirect, etc.\n } catch (error) {\n // Handle login error, e.g., show error message\n console.error('Login failed:', error);\n }\n };\n \n const handleReset = async () => {}\n // const handleChange = (param) => {\n // setchecked(!checked)\n // debugger;\n // setTimeout(() => {\n // props.setActive(props.Active + 1)\n // }, 400);\n // }\n\n return (\n
\n

\n Login\n

\n
\n setUsername(e.target.value)} placeholder=\"Username\" className='min-w-[20rem] border rounded-md text-sm outline-none lg:px-4 px-2 lg:py-3 py-[0.6rem] placeholder:text-[#A1A1A1] text-[#101928] focus:border-[#8f8f8f] ease-in transition-all bg-white' />\n setPassword(e.target.value)} placeholder=\"Password\" className='min-w-[20rem] border rounded-md text-sm outline-none lg:px-4 px-2 lg:py-3 py-[0.6rem] placeholder:text-[#A1A1A1] text-[#101928] focus:border-[#8f8f8f] ease-in transition-all bg-white' />\n
\n
\n \n \n
\n
\n )\n}\n\nexport default Login","import React, { useState } from 'react'\n\nconst CircleIcon = (props) => {\n\n return (\n \n \n {props.icon}\n \n {props.text &&

{props.text}

}\n \n )\n}\n\nexport default CircleIcon\n\n//import React, { useState } from 'react'\n\n//const CircleIcon = (props) => {\n// return (\n// \n// \n// {props.icon}\n// \n// {props.text &&

{props.text}

}\n// \n// )\n//}\n\n//export default CircleIcon","import React from 'react'\nimport CircleIcon from '../Common/CircleIcon'\n\nconst Lang = (props) => {\n const handleChange = (param) => {\n debugger;\n props.setLanguage(param)\n props.setState({ ...props.State, lang: param });\n props.setActive(props.Active + 1)\n }\n return (\n
\n

Please select your language?

\n

زبان کا انتخاب کیجیے۔

\n
\n {\n handleChange('EN')\n }}\n icon={
English
}\n />\n {\n handleChange('UR')\n }}\n icon={
اردو
}\n />\n
\n
\n )\n}\n\nexport default Lang","import React from 'react'\nimport { useEffect } from 'react'\nimport { useState } from 'react'\nimport CircleIcon from '../Common/CircleIcon'\nimport Svgs from '../Common/Svgs'\n\nconst One = (props) => {\n const handleChange = (param) => {\n props.setState({ ...props.State, firstVisit: param });\n debugger;\n if(param == 'Yes')\n props.setActive(props.Active + 1)\n else\n props.setActive(props.Active + 2)\n }\n const [Text, setText] = useState([]);\n useEffect(() => {\n setText(props.Language)\n }, [props.Language])\n\n\n return (\n
\n

{Text?.text}

\n
\n {\n handleChange('Yes')\n }}\n icon={}\n />\n {\n handleChange('No')\n }}\n icon={}\n />\n
\n
\n )\n}\n\nexport default One","import React from 'react'\nimport { useEffect } from 'react'\nimport { useState } from 'react'\nimport CircleIcon from '../Common/CircleIcon'\n\nconst Two = (props) => {\n const handleChange = (param) => {\n debugger;\n props.setState({ ...props.State, hear: param });\n if(props.State.firstVisit == 'Yes')\n props.setActive(props.Active + 2);\n else\n props.setActive(props.Active + 1);\n }\n const [Text, setText] = useState([]);\n useEffect(() => {\n setText(props.Language)\n }, [props.Language])\n\n\n return (\n
\n

{Text?.text}

\n
\n {\n handleChange('Social')\n }}\n icon={\n \n }\n text={Text?.options ? Text.options[0] : ''}\n />\n {\n handleChange('Family')\n }}\n icon={\n \n }\n text={Text?.options ? Text.options[1] : ''}\n />\n
\n
\n )\n}\n\nexport default Two","import React, { useEffect } from 'react'\nimport { useState } from 'react'\nimport CircleIcon from '../Common/CircleIcon'\nimport Svgs from '../Common/Svgs'\n\nconst Three = (props) => {\n const handleChange = (param) => {\n debugger;\n props.setState({ ...props.State, experience: param });\n props.setActive(props.Active + 1);\n }\n const [Text, setText] = useState([]);\n useEffect(() => {\n setText(props.Language)\n }, [props.Language])\n\n return (\n
\n

{Text?.text}

\n
\n {\n handleChange('Happy')\n }}\n icon={}\n\n />\n {\n handleChange('Neutral')\n }}\n icon={}\n />\n {\n handleChange('UnHappy')\n }}\n icon={}\n />\n
\n
\n )\n}\n\nexport default Three","import React from 'react'\n\nconst Button = (props) => {\n return (\n \n )\n}\n\nexport default Button","import React, { useEffect } from 'react'\nimport { useState } from 'react'\nimport CircleIcon from '../Common/CircleIcon'\nimport Svgs from '../Common/Svgs'\nimport Button from '../Common/Button'\n\nconst Three = (props) => {\n const [Text, setText] = useState([]);\n const [error, setError] = useState('')\n debugger;\n if (props.Active == 6) {\n if (props.Language.lang == 'EN') {\n if (props.State.experience == 'Happy')\n props.Language.text = props.Language.text.replace('%%', 'did');\n else\n props.Language.text = props.Language.text.replace('%%', \"didn't\");\n }\n else if (props.Language.lang == 'UR') {\n if (props.State.experience == 'Happy')\n props.Language.text = props.Language.text.replace('%%', '')\n else\n props.Language.text = props.Language.text.replace('%%', \"نہیں\")\n }\n }\n const handleChange = (param) => {\n const clonedLikes = [...(props.State?.like || [])];\n const likes = clonedLikes?.includes(param) ? clonedLikes.filter(clonedLike => clonedLike !== param) : [...clonedLikes, param];\n props.setState({ ...props.State, like: likes });\n\n const errorMsg = likes.length > 0 ? '' : 'Select atleast one field';\n setError(errorMsg);\n }\n\n useEffect(() => {\n debugger;\n setText(props.Language)\n }, [props.Language])\n\n const goNext = (e) => {\n if (props.State.like && props.State.like.length > 0) {\n return props.setActive(props.Active + 1)\n }\n\n setError('Select atleast one field');\n }\n\n return (\n
\n

{Text?.text}

\n
\n {\n handleChange('Overall Experience')\n }}\n icon={\n \n }\n text={Text?.options ? Text.options[0] : ''}\n selected={props.State?.like?.includes('Overall Experience')}\n />\n\n {\n handleChange('Service')\n }}\n icon={\n \n }\n text={Text?.options ? Text.options[1] : ''}\n selected={props.State?.like?.includes('Service')}\n />\n\n {\n handleChange('Food')\n }}\n icon={\n \n }\n text={Text?.options ? Text.options[2] : ''}\n selected={props.State?.like?.includes('Food')}\n />\n\n {\n handleChange('Cleanliness')\n }}\n icon={\n \n }\n text={Text?.options ? Text.options[3] : ''}\n selected={props.State?.like?.includes('Cleanliness')}\n />\n
\n\n {/* {error &&
{error}
} */}\n
\n )\n}\n\nexport default Three\n//import React, { useEffect } from 'react'\n//import { useState } from 'react'\n//import CircleIcon from '../Common/CircleIcon'\n//import Svgs from '../Common/Svgs'\n\n//const Three = (props) => {\n// const handleChange = (param) => {\n// props.setState({ ...props.State, like: param });\n// props.setActive(props.Active + 1)\n// }\n\n// const [Text, setText] = useState([]);\n// useEffect(() => {\n// setText(props.Language)\n// }, [props.Language])\n\n// return (\n//
\n//

{Text?.text}

\n//
\n// {\n// handleChange('Overall Experience')\n// }}\n// icon={\n// \n// }\n// text={Text?.options ? Text.options[0] : ''}\n// />\n\n// {\n// handleChange('Service')\n// }}\n// icon={\n// \n// }\n// text={Text?.options ? Text.options[1] : ''}\n// />\n\n// {\n// handleChange('Food')\n// }}\n// icon={\n// \n// }\n// text={Text?.options ? Text.options[2] : ''}\n// />\n\n// {\n// handleChange('Cleanliness')\n// }}\n// icon={\n// \n// }\n// text={Text?.options ? Text.options[3] : ''}\n// />\n//
\n//
\n// )\n//}\n\n//export default Three","import React from 'react'\nimport { useState, useEffect } from 'react'\nimport CircleIcon from '../Common/CircleIcon'\nimport Svgs from '../Common/Svgs'\n\nconst Five = (props) => {\n const handleChange = (param) => {\n props.setState({ ...props.State, revisit: param });\n props.setActive(props.Active + 1)\n }\n\n const [Text, setText] = useState([]);\n useEffect(() => {\n setText(props.Language)\n }, [props.Language])\n\n return (\n
\n

{Text?.text}

\n
\n {\n handleChange('Yes')\n }}\n icon={}\n />\n {\n handleChange('No')\n }}\n icon={}\n />\n
\n
\n )\n}\n\nexport default Five","import React, { useEffect } from 'react'\nimport { useState } from 'react'\nimport CircleIcon from '../Common/CircleIcon'\nimport Svgs from '../Common/Svgs'\n\nconst Six = (props) => {\n const handleChange = (param) => {\n props.setState({ ...props.State, recommend: param });\n props.setActive(props.Active + 1)\n }\n \n const [Text, setText] = useState([]);\n useEffect(() => {\n setText(props.Language)\n }, [props.Language])\n \n return (\n
\n

{Text?.text}

\n
\n {\n handleChange('Likely')\n }}\n icon={}\n\n />\n {\n handleChange('Neutral')\n }}\n icon={}\n />\n {\n handleChange('Unlikely')\n }}\n icon={}\n />\n
\n
\n )\n}\n\nexport default Six","import { Coordinates, LongPressEvent } from './types';\nimport { MouseEvent as ReactMouseEvent, TouchEvent as ReactTouchEvent } from 'react';\n\nexport function isTouchEvent(event: LongPressEvent): event is ReactTouchEvent {\n const { nativeEvent } = event;\n return window.TouchEvent ? nativeEvent instanceof TouchEvent : 'touches' in nativeEvent;\n}\n\nexport function isMouseEvent(event: LongPressEvent): event is ReactMouseEvent {\n return event.nativeEvent instanceof MouseEvent;\n}\n\nexport function getCurrentPosition(event: LongPressEvent): Coordinates {\n if (isTouchEvent(event)) {\n return {\n x: event.touches[0].pageX,\n y: event.touches[0].pageY,\n };\n }\n\n /* istanbul ignore else */\n if (isMouseEvent(event)) {\n return {\n x: event.pageX,\n y: event.pageY,\n };\n }\n\n /* istanbul ignore next */\n return null;\n}\n","import React from 'react';\r\nimport { useRef } from 'react';\r\nimport { useEffect } from 'react';\r\n\r\nconst VideoModal = ({\r\n startRecording,\r\n stopRecording,\r\n setShowModal,\r\n previewStream,\r\n setVideoState,\r\n}) => {\r\n useEffect(() => {\r\n startRecording();\r\n }, []);\r\n\r\n return (\r\n <>\r\n
\r\n
\r\n {/*content*/}\r\n
\r\n START RECORDING...\r\n \r\n {\r\n setShowModal(false);\r\n stopRecording();\r\n setVideoState('cancel');\r\n }}\r\n className='px-6 py-2 rounded-lg bg-black text-white'\r\n >\r\n Cancel\r\n \r\n {\r\n setShowModal(false);\r\n stopRecording();\r\n setVideoState('save');\r\n }}\r\n className='px-6 py-2 rounded-lg bg-slate-500 text-white'\r\n >\r\n Save\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n );\r\n};\r\n\r\nexport default VideoModal;\r\n\r\nfunction VideoPreview({ stream }) {\r\n const videoRef = useRef(null);\r\n\r\n useEffect(() => {\r\n if (videoRef.current && stream) {\r\n videoRef.current.srcObject = stream;\r\n }\r\n }, [stream]);\r\n\r\n if (!stream) {\r\n return null;\r\n }\r\n\r\n return