@mediabunny/aac-encoder 1.35.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1 @@
1
+ {"fileNames":["../../../../node_modules/typescript/lib/lib.es5.d.ts","../../../../node_modules/typescript/lib/lib.es2015.d.ts","../../../../node_modules/typescript/lib/lib.es2016.d.ts","../../../../node_modules/typescript/lib/lib.es2017.d.ts","../../../../node_modules/typescript/lib/lib.es2018.d.ts","../../../../node_modules/typescript/lib/lib.es2019.d.ts","../../../../node_modules/typescript/lib/lib.es2020.d.ts","../../../../node_modules/typescript/lib/lib.es2021.d.ts","../../../../node_modules/typescript/lib/lib.dom.d.ts","../../../../node_modules/typescript/lib/lib.dom.iterable.d.ts","../../../../node_modules/typescript/lib/lib.dom.asynciterable.d.ts","../../../../node_modules/typescript/lib/lib.webworker.importscripts.d.ts","../../../../node_modules/typescript/lib/lib.scripthost.d.ts","../../../../node_modules/typescript/lib/lib.es2015.core.d.ts","../../../../node_modules/typescript/lib/lib.es2015.collection.d.ts","../../../../node_modules/typescript/lib/lib.es2015.generator.d.ts","../../../../node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../../../node_modules/typescript/lib/lib.es2015.promise.d.ts","../../../../node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../../../node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../../../node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../../../node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../../../node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../../../node_modules/typescript/lib/lib.es2016.intl.d.ts","../../../../node_modules/typescript/lib/lib.es2017.arraybuffer.d.ts","../../../../node_modules/typescript/lib/lib.es2017.date.d.ts","../../../../node_modules/typescript/lib/lib.es2017.object.d.ts","../../../../node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../../../node_modules/typescript/lib/lib.es2017.string.d.ts","../../../../node_modules/typescript/lib/lib.es2017.intl.d.ts","../../../../node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../../../node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../../../node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../../../node_modules/typescript/lib/lib.es2018.intl.d.ts","../../../../node_modules/typescript/lib/lib.es2018.promise.d.ts","../../../../node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../../../node_modules/typescript/lib/lib.es2019.array.d.ts","../../../../node_modules/typescript/lib/lib.es2019.object.d.ts","../../../../node_modules/typescript/lib/lib.es2019.string.d.ts","../../../../node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../../../node_modules/typescript/lib/lib.es2019.intl.d.ts","../../../../node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../../../node_modules/typescript/lib/lib.es2020.date.d.ts","../../../../node_modules/typescript/lib/lib.es2020.promise.d.ts","../../../../node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../../../node_modules/typescript/lib/lib.es2020.string.d.ts","../../../../node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../../../node_modules/typescript/lib/lib.es2020.intl.d.ts","../../../../node_modules/typescript/lib/lib.es2020.number.d.ts","../../../../node_modules/typescript/lib/lib.es2021.promise.d.ts","../../../../node_modules/typescript/lib/lib.es2021.string.d.ts","../../../../node_modules/typescript/lib/lib.es2021.weakref.d.ts","../../../../node_modules/typescript/lib/lib.es2021.intl.d.ts","../../../../node_modules/typescript/lib/lib.decorators.d.ts","../../../../node_modules/typescript/lib/lib.decorators.legacy.d.ts","../../../../node_modules/typescript/lib/lib.es2021.full.d.ts","../../build/aac.js","../../src/shared.ts","../../src/encode.worker.ts","../../../../dist/modules/shared/bitstream.d.ts","../../../../dist/modules/shared/aac-misc.d.ts","../../../../node_modules/@types/dom-webcodecs/webcodecs.generated.d.ts","../../../../node_modules/@types/dom-webcodecs/index.d.ts","../../../../node_modules/@types/dom-mediacapture-transform/index.d.ts","../../../../dist/modules/src/misc.d.ts","../../../../dist/modules/src/metadata.d.ts","../../../../dist/modules/src/packet.d.ts","../../../../dist/modules/src/codec-data.d.ts","../../../../dist/modules/src/subtitles.d.ts","../../../../dist/modules/src/codec.d.ts","../../../../dist/modules/src/sample.d.ts","../../../../dist/modules/src/encode.d.ts","../../../../dist/modules/src/media-source.d.ts","../../../../dist/modules/src/output-format.d.ts","../../../../dist/modules/src/target.d.ts","../../../../dist/modules/src/output.d.ts","../../../../dist/modules/src/source.d.ts","../../../../dist/modules/src/input-format.d.ts","../../../../dist/modules/src/media-sink.d.ts","../../../../dist/modules/src/input-track.d.ts","../../../../dist/modules/src/input.d.ts","../../../../dist/modules/src/conversion.d.ts","../../../../dist/modules/src/custom-coder.d.ts","../../../../dist/modules/src/index.d.ts","../../src/encoder.ts","../../src/index.ts","../../../../node_modules/@types/argparse/index.d.ts","../../../../node_modules/@types/aria-query/index.d.ts","../../../../node_modules/@types/deep-eql/index.d.ts","../../../../node_modules/@types/chai/index.d.ts","../../../../node_modules/@types/d3-array/index.d.ts","../../../../node_modules/@types/d3-selection/index.d.ts","../../../../node_modules/@types/d3-axis/index.d.ts","../../../../node_modules/@types/d3-brush/index.d.ts","../../../../node_modules/@types/d3-chord/index.d.ts","../../../../node_modules/@types/d3-color/index.d.ts","../../../../node_modules/@types/geojson/index.d.ts","../../../../node_modules/@types/d3-contour/index.d.ts","../../../../node_modules/@types/d3-delaunay/index.d.ts","../../../../node_modules/@types/d3-dispatch/index.d.ts","../../../../node_modules/@types/d3-drag/index.d.ts","../../../../node_modules/@types/d3-dsv/index.d.ts","../../../../node_modules/@types/d3-ease/index.d.ts","../../../../node_modules/@types/d3-fetch/index.d.ts","../../../../node_modules/@types/d3-force/index.d.ts","../../../../node_modules/@types/d3-format/index.d.ts","../../../../node_modules/@types/d3-geo/index.d.ts","../../../../node_modules/@types/d3-hierarchy/index.d.ts","../../../../node_modules/@types/d3-interpolate/index.d.ts","../../../../node_modules/@types/d3-path/index.d.ts","../../../../node_modules/@types/d3-polygon/index.d.ts","../../../../node_modules/@types/d3-quadtree/index.d.ts","../../../../node_modules/@types/d3-random/index.d.ts","../../../../node_modules/@types/d3-time/index.d.ts","../../../../node_modules/@types/d3-scale/index.d.ts","../../../../node_modules/@types/d3-scale-chromatic/index.d.ts","../../../../node_modules/@types/d3-shape/index.d.ts","../../../../node_modules/@types/d3-time-format/index.d.ts","../../../../node_modules/@types/d3-timer/index.d.ts","../../../../node_modules/@types/d3-transition/index.d.ts","../../../../node_modules/@types/d3-zoom/index.d.ts","../../../../node_modules/@types/d3/index.d.ts","../../../../node_modules/@types/ms/index.d.ts","../../../../node_modules/@types/debug/index.d.ts","../../../../node_modules/@types/emscripten/index.d.ts","../../../../node_modules/@types/estree/index.d.ts","../../../../node_modules/@types/unist/index.d.ts","../../../../node_modules/@types/hast/index.d.ts","../../../../node_modules/@types/json-schema/index.d.ts","../../../../node_modules/@types/linkify-it/build/index.cjs.d.ts","../../../../node_modules/@types/linkify-it/index.d.ts","../../../../node_modules/@types/mdurl/build/index.cjs.d.ts","../../../../node_modules/@types/markdown-it/dist/index.cjs.d.ts","../../../../node_modules/@types/markdown-it/index.d.ts","../../../../node_modules/@types/markdown-it-footnote/index.d.ts","../../../../node_modules/@types/mdast/index.d.ts","../../../../node_modules/@types/mdurl/index.d.ts","../../../../node_modules/@types/node/compatibility/disposable.d.ts","../../../../node_modules/@types/node/compatibility/indexable.d.ts","../../../../node_modules/@types/node/compatibility/iterators.d.ts","../../../../node_modules/@types/node/compatibility/index.d.ts","../../../../node_modules/@types/node/globals.typedarray.d.ts","../../../../node_modules/@types/node/buffer.buffer.d.ts","../../../../node_modules/buffer/index.d.ts","../../../../node_modules/undici-types/header.d.ts","../../../../node_modules/undici-types/readable.d.ts","../../../../node_modules/undici-types/file.d.ts","../../../../node_modules/undici-types/fetch.d.ts","../../../../node_modules/undici-types/formdata.d.ts","../../../../node_modules/undici-types/connector.d.ts","../../../../node_modules/undici-types/client.d.ts","../../../../node_modules/undici-types/errors.d.ts","../../../../node_modules/undici-types/dispatcher.d.ts","../../../../node_modules/undici-types/global-dispatcher.d.ts","../../../../node_modules/undici-types/global-origin.d.ts","../../../../node_modules/undici-types/pool-stats.d.ts","../../../../node_modules/undici-types/pool.d.ts","../../../../node_modules/undici-types/handlers.d.ts","../../../../node_modules/undici-types/balanced-pool.d.ts","../../../../node_modules/undici-types/agent.d.ts","../../../../node_modules/undici-types/mock-interceptor.d.ts","../../../../node_modules/undici-types/mock-agent.d.ts","../../../../node_modules/undici-types/mock-client.d.ts","../../../../node_modules/undici-types/mock-pool.d.ts","../../../../node_modules/undici-types/mock-errors.d.ts","../../../../node_modules/undici-types/proxy-agent.d.ts","../../../../node_modules/undici-types/env-http-proxy-agent.d.ts","../../../../node_modules/undici-types/retry-handler.d.ts","../../../../node_modules/undici-types/retry-agent.d.ts","../../../../node_modules/undici-types/api.d.ts","../../../../node_modules/undici-types/interceptors.d.ts","../../../../node_modules/undici-types/util.d.ts","../../../../node_modules/undici-types/cookies.d.ts","../../../../node_modules/undici-types/patch.d.ts","../../../../node_modules/undici-types/websocket.d.ts","../../../../node_modules/undici-types/eventsource.d.ts","../../../../node_modules/undici-types/filereader.d.ts","../../../../node_modules/undici-types/diagnostics-channel.d.ts","../../../../node_modules/undici-types/content-type.d.ts","../../../../node_modules/undici-types/cache.d.ts","../../../../node_modules/undici-types/index.d.ts","../../../../node_modules/@types/node/globals.d.ts","../../../../node_modules/@types/node/assert.d.ts","../../../../node_modules/@types/node/assert/strict.d.ts","../../../../node_modules/@types/node/async_hooks.d.ts","../../../../node_modules/@types/node/buffer.d.ts","../../../../node_modules/@types/node/child_process.d.ts","../../../../node_modules/@types/node/cluster.d.ts","../../../../node_modules/@types/node/console.d.ts","../../../../node_modules/@types/node/constants.d.ts","../../../../node_modules/@types/node/crypto.d.ts","../../../../node_modules/@types/node/dgram.d.ts","../../../../node_modules/@types/node/diagnostics_channel.d.ts","../../../../node_modules/@types/node/dns.d.ts","../../../../node_modules/@types/node/dns/promises.d.ts","../../../../node_modules/@types/node/domain.d.ts","../../../../node_modules/@types/node/dom-events.d.ts","../../../../node_modules/@types/node/events.d.ts","../../../../node_modules/@types/node/fs.d.ts","../../../../node_modules/@types/node/fs/promises.d.ts","../../../../node_modules/@types/node/http.d.ts","../../../../node_modules/@types/node/http2.d.ts","../../../../node_modules/@types/node/https.d.ts","../../../../node_modules/@types/node/inspector.d.ts","../../../../node_modules/@types/node/module.d.ts","../../../../node_modules/@types/node/net.d.ts","../../../../node_modules/@types/node/os.d.ts","../../../../node_modules/@types/node/path.d.ts","../../../../node_modules/@types/node/perf_hooks.d.ts","../../../../node_modules/@types/node/process.d.ts","../../../../node_modules/@types/node/punycode.d.ts","../../../../node_modules/@types/node/querystring.d.ts","../../../../node_modules/@types/node/readline.d.ts","../../../../node_modules/@types/node/readline/promises.d.ts","../../../../node_modules/@types/node/repl.d.ts","../../../../node_modules/@types/node/sea.d.ts","../../../../node_modules/@types/node/sqlite.d.ts","../../../../node_modules/@types/node/stream.d.ts","../../../../node_modules/@types/node/stream/promises.d.ts","../../../../node_modules/@types/node/stream/consumers.d.ts","../../../../node_modules/@types/node/stream/web.d.ts","../../../../node_modules/@types/node/string_decoder.d.ts","../../../../node_modules/@types/node/test.d.ts","../../../../node_modules/@types/node/timers.d.ts","../../../../node_modules/@types/node/timers/promises.d.ts","../../../../node_modules/@types/node/tls.d.ts","../../../../node_modules/@types/node/trace_events.d.ts","../../../../node_modules/@types/node/tty.d.ts","../../../../node_modules/@types/node/url.d.ts","../../../../node_modules/@types/node/util.d.ts","../../../../node_modules/@types/node/v8.d.ts","../../../../node_modules/@types/node/vm.d.ts","../../../../node_modules/@types/node/wasi.d.ts","../../../../node_modules/@types/node/worker_threads.d.ts","../../../../node_modules/@types/node/zlib.d.ts","../../../../node_modules/@types/node/index.d.ts","../../../../node_modules/@types/prop-types/index.d.ts","../../../../node_modules/@types/react/global.d.ts","../../../../node_modules/csstype/index.d.ts","../../../../node_modules/@types/react/index.d.ts","../../../../node_modules/@types/sinonjs__fake-timers/index.d.ts","../../../../node_modules/@types/trusted-types/lib/index.d.ts","../../../../node_modules/@types/trusted-types/index.d.ts","../../../../node_modules/@types/web-bluetooth/index.d.ts","../../../../node_modules/@types/which/index.d.ts","../../../../node_modules/@types/ws/index.d.ts","../../../../node_modules/@types/yauzl/index.d.ts"],"fileIdsList":[[60,143,186],[143,186],[65,66,67,70,143,186],[68,69,143,186],[65,66,70,71,72,76,80,81,143,186],[65,67,70,71,143,186],[67,70,143,186],[63,64,65,66,67,70,71,72,73,74,75,76,77,78,79,80,81,82,83,143,186],[65,66,67,70,76,79,81,143,186],[66,77,78,80,143,186],[65,67,71,80,143,186],[67,70,71,72,143,186],[70,73,76,143,186],[65,66,73,74,75,143,186],[65,143,186],[89,143,186],[92,120,143,186],[91,97,143,186],[102,143,186],[97,143,186],[96,143,186],[114,143,186],[110,143,186],[92,109,120,143,186],[91,92,93,94,95,96,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,143,186],[123,143,186],[63,143,186],[62,143,186],[127,143,186],[130,143,186],[133,143,186],[130,132,143,186],[132,143,186],[143,183,186],[143,185,186],[186],[143,186,191,221],[143,186,187,192,198,206,218,229],[143,186,187,188,198,206],[138,139,140,143,186],[143,186,189,230],[143,186,190,191,199,207],[143,186,191,218,226],[143,186,192,194,198,206],[143,185,186,193],[143,186,194,195],[143,186,196,198],[143,185,186,198],[143,186,198,199,200,218,229],[143,186,198,199,200,213,218,221],[143,181,186],[143,181,186,194,198,201,206,218,229],[143,186,198,199,201,202,206,218,226,229],[143,186,201,203,218,226,229],[141,142,143,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235],[143,186,198,204],[143,186,205,229],[143,186,194,198,206,218],[143,186,207],[143,186,208],[143,185,186,209],[143,183,184,185,186,187,188,189,190,191,192,193,194,195,196,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235],[143,186,211],[143,186,212],[143,186,198,213,214],[143,186,213,215,230,232],[143,186,198,218,219,221],[143,186,220,221],[143,186,218,219],[143,186,221],[143,186,222],[143,183,186,218,223],[143,186,198,224,225],[143,186,224,225],[143,186,191,206,218,226],[143,186,227],[143,186,206,228],[143,186,201,212,229],[143,186,191,230],[143,186,218,231],[143,186,205,232],[143,186,233],[143,186,198,200,209,218,221,229,231,232,234],[143,186,218,235],[143,186,237,238,239],[143,186,242],[143,186,198,201,203,206,218,226,229,235,236],[143,186,198,218,236],[143,153,157,186,229],[143,153,186,218,229],[143,148,186],[143,150,153,186,226,229],[143,186,206,226],[143,186,236],[143,148,186,236],[143,150,153,186,206,229],[143,145,146,149,152,186,198,218,229],[143,153,160,186],[143,145,151,186],[143,153,174,175,186],[143,149,153,186,221,229,236],[143,174,186,236],[143,147,148,186,236],[143,153,186],[143,147,148,149,150,151,152,153,154,155,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,175,176,177,178,179,180,186],[143,153,168,186],[143,153,160,161,186],[143,151,153,161,162,186],[143,152,186],[143,145,148,153,186],[143,153,157,161,162,186],[143,157,186],[143,151,153,156,186,229],[143,145,150,153,160,186],[143,186,218],[143,148,153,174,186,234,236],[57,58,143,186],[58,59,61,84,143,186],[85,143,186]],"fileInfos":[{"version":"c430d44666289dae81f30fa7b2edebf186ecc91a2d4c71266ea6ae76388792e1","affectsGlobalScope":true,"impliedFormat":1},{"version":"45b7ab580deca34ae9729e97c13cfd999df04416a79116c3bfb483804f85ded4","impliedFormat":1},{"version":"3facaf05f0c5fc569c5649dd359892c98a85557e3e0c847964caeb67076f4d75","impliedFormat":1},{"version":"e44bb8bbac7f10ecc786703fe0a6a4b952189f908707980ba8f3c8975a760962","impliedFormat":1},{"version":"5e1c4c362065a6b95ff952c0eab010f04dcd2c3494e813b493ecfd4fcb9fc0d8","impliedFormat":1},{"version":"68d73b4a11549f9c0b7d352d10e91e5dca8faa3322bfb77b661839c42b1ddec7","impliedFormat":1},{"version":"5efce4fc3c29ea84e8928f97adec086e3dc876365e0982cc8479a07954a3efd4","impliedFormat":1},{"version":"feecb1be483ed332fad555aff858affd90a48ab19ba7272ee084704eb7167569","impliedFormat":1},{"version":"080941d9f9ff9307f7e27a83bcd888b7c8270716c39af943532438932ec1d0b9","affectsGlobalScope":true,"impliedFormat":1},{"version":"2e80ee7a49e8ac312cc11b77f1475804bee36b3b2bc896bead8b6e1266befb43","affectsGlobalScope":true,"impliedFormat":1},{"version":"d7a3c8b952931daebdfc7a2897c53c0a1c73624593fa070e46bd537e64dcd20a","affectsGlobalScope":true,"impliedFormat":1},{"version":"80e18897e5884b6723488d4f5652167e7bb5024f946743134ecc4aa4ee731f89","affectsGlobalScope":true,"impliedFormat":1},{"version":"cd034f499c6cdca722b60c04b5b1b78e058487a7085a8e0d6fb50809947ee573","affectsGlobalScope":true,"impliedFormat":1},{"version":"c57796738e7f83dbc4b8e65132f11a377649c00dd3eee333f672b8f0a6bea671","affectsGlobalScope":true,"impliedFormat":1},{"version":"dc2df20b1bcdc8c2d34af4926e2c3ab15ffe1160a63e58b7e09833f616efff44","affectsGlobalScope":true,"impliedFormat":1},{"version":"515d0b7b9bea2e31ea4ec968e9edd2c39d3eebf4a2d5cbd04e88639819ae3b71","affectsGlobalScope":true,"impliedFormat":1},{"version":"0559b1f683ac7505ae451f9a96ce4c3c92bdc71411651ca6ddb0e88baaaad6a3","affectsGlobalScope":true,"impliedFormat":1},{"version":"0dc1e7ceda9b8b9b455c3a2d67b0412feab00bd2f66656cd8850e8831b08b537","affectsGlobalScope":true,"impliedFormat":1},{"version":"ce691fb9e5c64efb9547083e4a34091bcbe5bdb41027e310ebba8f7d96a98671","affectsGlobalScope":true,"impliedFormat":1},{"version":"8d697a2a929a5fcb38b7a65594020fcef05ec1630804a33748829c5ff53640d0","affectsGlobalScope":true,"impliedFormat":1},{"version":"4ff2a353abf8a80ee399af572debb8faab2d33ad38c4b4474cff7f26e7653b8d","affectsGlobalScope":true,"impliedFormat":1},{"version":"fb0f136d372979348d59b3f5020b4cdb81b5504192b1cacff5d1fbba29378aa1","affectsGlobalScope":true,"impliedFormat":1},{"version":"d15bea3d62cbbdb9797079416b8ac375ae99162a7fba5de2c6c505446486ac0a","affectsGlobalScope":true,"impliedFormat":1},{"version":"68d18b664c9d32a7336a70235958b8997ebc1c3b8505f4f1ae2b7e7753b87618","affectsGlobalScope":true,"impliedFormat":1},{"version":"eb3d66c8327153d8fa7dd03f9c58d351107fe824c79e9b56b462935176cdf12a","affectsGlobalScope":true,"impliedFormat":1},{"version":"38f0219c9e23c915ef9790ab1d680440d95419ad264816fa15009a8851e79119","affectsGlobalScope":true,"impliedFormat":1},{"version":"69ab18c3b76cd9b1be3d188eaf8bba06112ebbe2f47f6c322b5105a6fbc45a2e","affectsGlobalScope":true,"impliedFormat":1},{"version":"a680117f487a4d2f30ea46f1b4b7f58bef1480456e18ba53ee85c2746eeca012","affectsGlobalScope":true,"impliedFormat":1},{"version":"2f11ff796926e0832f9ae148008138ad583bd181899ab7dd768a2666700b1893","affectsGlobalScope":true,"impliedFormat":1},{"version":"4de680d5bb41c17f7f68e0419412ca23c98d5749dcaaea1896172f06435891fc","affectsGlobalScope":true,"impliedFormat":1},{"version":"954296b30da6d508a104a3a0b5d96b76495c709785c1d11610908e63481ee667","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac9538681b19688c8eae65811b329d3744af679e0bdfa5d842d0e32524c73e1c","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a969edff4bd52585473d24995c5ef223f6652d6ef46193309b3921d65dd4376","affectsGlobalScope":true,"impliedFormat":1},{"version":"9e9fbd7030c440b33d021da145d3232984c8bb7916f277e8ffd3dc2e3eae2bdb","affectsGlobalScope":true,"impliedFormat":1},{"version":"811ec78f7fefcabbda4bfa93b3eb67d9ae166ef95f9bff989d964061cbf81a0c","affectsGlobalScope":true,"impliedFormat":1},{"version":"717937616a17072082152a2ef351cb51f98802fb4b2fdabd32399843875974ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"d7e7d9b7b50e5f22c915b525acc5a49a7a6584cf8f62d0569e557c5cfc4b2ac2","affectsGlobalScope":true,"impliedFormat":1},{"version":"71c37f4c9543f31dfced6c7840e068c5a5aacb7b89111a4364b1d5276b852557","affectsGlobalScope":true,"impliedFormat":1},{"version":"576711e016cf4f1804676043e6a0a5414252560eb57de9faceee34d79798c850","affectsGlobalScope":true,"impliedFormat":1},{"version":"89c1b1281ba7b8a96efc676b11b264de7a8374c5ea1e6617f11880a13fc56dc6","affectsGlobalScope":true,"impliedFormat":1},{"version":"74f7fa2d027d5b33eb0471c8e82a6c87216223181ec31247c357a3e8e2fddc5b","affectsGlobalScope":true,"impliedFormat":1},{"version":"d6d7ae4d1f1f3772e2a3cde568ed08991a8ae34a080ff1151af28b7f798e22ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"063600664504610fe3e99b717a1223f8b1900087fab0b4cad1496a114744f8df","affectsGlobalScope":true,"impliedFormat":1},{"version":"934019d7e3c81950f9a8426d093458b65d5aff2c7c1511233c0fd5b941e608ab","affectsGlobalScope":true,"impliedFormat":1},{"version":"52ada8e0b6e0482b728070b7639ee42e83a9b1c22d205992756fe020fd9f4a47","affectsGlobalScope":true,"impliedFormat":1},{"version":"3bdefe1bfd4d6dee0e26f928f93ccc128f1b64d5d501ff4a8cf3c6371200e5e6","affectsGlobalScope":true,"impliedFormat":1},{"version":"59fb2c069260b4ba00b5643b907ef5d5341b167e7d1dbf58dfd895658bda2867","affectsGlobalScope":true,"impliedFormat":1},{"version":"639e512c0dfc3fad96a84caad71b8834d66329a1f28dc95e3946c9b58176c73a","affectsGlobalScope":true,"impliedFormat":1},{"version":"368af93f74c9c932edd84c58883e736c9e3d53cec1fe24c0b0ff451f529ceab1","affectsGlobalScope":true,"impliedFormat":1},{"version":"af3dd424cf267428f30ccfc376f47a2c0114546b55c44d8c0f1d57d841e28d74","affectsGlobalScope":true,"impliedFormat":1},{"version":"995c005ab91a498455ea8dfb63aa9f83fa2ea793c3d8aa344be4a1678d06d399","affectsGlobalScope":true,"impliedFormat":1},{"version":"959d36cddf5e7d572a65045b876f2956c973a586da58e5d26cde519184fd9b8a","affectsGlobalScope":true,"impliedFormat":1},{"version":"965f36eae237dd74e6cca203a43e9ca801ce38824ead814728a2807b1910117d","affectsGlobalScope":true,"impliedFormat":1},{"version":"8e7f8264d0fb4c5339605a15daadb037bf238c10b654bb3eee14208f860a32ea","affectsGlobalScope":true,"impliedFormat":1},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true,"impliedFormat":1},{"version":"4a66df3ab5de5cfcda11538cffddd67ff6a174e003788e270914c1e0248483cf","impliedFormat":1},{"version":"5b3190ca114a47a269d8a1efbc86172290131ad63c3b393214e351d5b2e51f69","signature":"537603a4a7af0bb1d8b45f83dc942ddef2ef234fea2d4570ab3f76885101abe0","impliedFormat":1},{"version":"37e327d9475faf158633f6892a1bf9f874d6f3880317787a65fd73f540dce99b","signature":"b7e5550a420a49163c2cadcb2a7255788c0dadec9886bfcdfff20f4f09680798","impliedFormat":1},{"version":"534c11807446af6e753e33d1406356a0ac8d5a10eb142e9d4e9fb3a61040d8a1","signature":"90b48be4f3db330b00cd3ce040f39d3ea355cac65349b20f44988ee3fe325647","impliedFormat":1},{"version":"f4b728dafacff60208f8a13102c80b45b171ede37ecbcbbe0287e833d95326c5","impliedFormat":99},{"version":"6f0eca67b5b21ee8c57c622aa7f03bac74ca5978453110fd86d6749c12ed4647","impliedFormat":99},{"version":"d44c53a5185ae285987268f3f30cdadf3dc7bff19d230bfcb5c6505d4f268299","affectsGlobalScope":true,"impliedFormat":1},{"version":"b7f161bf747d17d98f49d7c2a9e67da87031da2c2cbcf356698fbfc184788b20","affectsGlobalScope":true,"impliedFormat":1},{"version":"6d9ff2131e0cd0d00541853f45cf91d93570f4657717daee949596e828dfecd5","affectsGlobalScope":true,"impliedFormat":1},{"version":"54570a739966c368c1f5ea4ee303e9bda2b20cb79b1b1d318d1de159bd461f72","impliedFormat":99},{"version":"04597006bd9ecd0fe53279865492060741e6e07b120775238265bb22a6b758a2","impliedFormat":99},{"version":"639121e3eb81318a7036c37588d2c038cd08dd405e0a0913c6d6558540b99f6d","impliedFormat":99},{"version":"b8c14363081fb178ad51376c5af9c2291753f8dd0d970729d6c9d4c426ec6a58","impliedFormat":99},{"version":"d6f734b1c568ee0b2cc21fdf336ba7e07674d5a244c082961fcb0cfcd1d14d9d","impliedFormat":99},{"version":"4a49dbbd7c0274cd67e01056ca8c9e7639a2e5e82201da39001c70320f08472d","impliedFormat":99},{"version":"0db79df653bc9c87080234b3b399c584a240a9ecfc18f977d02939b5ab631782","impliedFormat":99},{"version":"adf07d9edc609d9098a9b6936363b5ce9a3dcb2a27f6c662845cf07317ac1e7a","impliedFormat":99},{"version":"409a7f0471447ef9fc8587eeee7d3146933f9ef32719c3651246135779899b17","impliedFormat":99},{"version":"6aab4aa29a5407b10ed52e7d09613975953fcbd5dde6b8b44027b6fe48dedf5d","impliedFormat":99},{"version":"55605ec08188e2c9183059ab382d904bb0e0e2167edf218a2eeadf755d85c8dc","impliedFormat":99},{"version":"30b5d6c78bda4a10997a4e969c92ec8ca7ea3c8f5ac3775b583c0f1ce099992b","impliedFormat":99},{"version":"1d7420fca11a9b4e21b2804fb6e104f08c9775f3db8567640caade7f04377841","impliedFormat":99},{"version":"7e05897b8740792b19a75b33f3c18271afcebba23a79a961228422cccf7b107f","impliedFormat":99},{"version":"5b6cb1770c591e4ce792a321cbef0aa7ce789f8f8c03e810b8faae0e294f3019","impliedFormat":99},{"version":"b841405e7f7fa464510bc28c59b20908e537d6b43464f398f0c35b9778bd4ed5","impliedFormat":99},{"version":"0b9edb0a649ed9db4fbd2fb1c9106e283b429d2f77b53a6b2ba0d051aac02a44","impliedFormat":99},{"version":"eba77a010e9e420d32000c539815f66831df63cb221b3deb659d42218220f75f","impliedFormat":99},{"version":"c960c24dc5b98360b79ba2d7eb08c39e0115c7ef629069548cc2a95230b17955","impliedFormat":99},{"version":"042b020e0f7b5d377ad71476572989772232806a5ee047da08dced0a80283719","impliedFormat":99},{"version":"194b0bafe13aa130cdc8753a7cebd6621299617f674d9477ff662f3b06d0fdec","signature":"ea80a097adaccdffdc7a5ce3a99da3453d76c843552d881698645648a7a2dae6","impliedFormat":1},{"version":"555b906068697625103533a6f5b4d4c4aee18ba57f311dbf5834fe4abc7c630c","signature":"b0c19a15bb18bf14187585493c48100bc2b7f56b830cf0b4a8411928b911dc39","impliedFormat":1},{"version":"dc3b172ee27054dbcedcf5007b78c256021db936f6313a9ce9a3ecbb503fd646","impliedFormat":1},{"version":"ae77d81a5541a8abb938a0efedf9ac4bea36fb3a24cc28cfa11c598863aba571","impliedFormat":1},{"version":"427fe2004642504828c1476d0af4270e6ad4db6de78c0b5da3e4c5ca95052a99","impliedFormat":1},{"version":"c8905dbea83f3220676a669366cd8c1acef56af4d9d72a8b2241b1d044bb4302","affectsGlobalScope":true,"impliedFormat":99},{"version":"e0c868a08451c879984ccf4d4e3c1240b3be15af8988d230214977a3a3dad4ce","impliedFormat":1},{"version":"469532350a366536390c6eb3bde6839ec5c81fe1227a6b7b6a70202954d70c40","impliedFormat":1},{"version":"17c9f569be89b4c3c17dc17a9fb7909b6bab34f73da5a9a02d160f502624e2e8","impliedFormat":1},{"version":"003df7b9a77eaeb7a524b795caeeb0576e624e78dea5e362b053cb96ae89132a","impliedFormat":1},{"version":"7ba17571f91993b87c12b5e4ecafe66b1a1e2467ac26fcb5b8cee900f6cf8ff4","impliedFormat":1},{"version":"6fc1a4f64372593767a9b7b774e9b3b92bf04e8785c3f9ea98973aa9f4bbe490","impliedFormat":1},{"version":"d30e67059f5c545c5f8f0cc328a36d2e03b8c4a091b4301bc1d6afb2b1491a3a","impliedFormat":1},{"version":"8b219399c6a743b7c526d4267800bd7c84cf8e27f51884c86ad032d662218a9d","impliedFormat":1},{"version":"bad6d83a581dbd97677b96ee3270a5e7d91b692d220b87aab53d63649e47b9ad","impliedFormat":1},{"version":"7f15c8d21ca2c062f4760ff3408e1e0ec235bad2ca4e2842d1da7fc76bb0b12f","impliedFormat":1},{"version":"54e79224429e911b5d6aeb3cf9097ec9fd0f140d5a1461bbdece3066b17c232c","impliedFormat":1},{"version":"e1b666b145865bc8d0d843134b21cf589c13beba05d333c7568e7c30309d933a","impliedFormat":1},{"version":"ff09b6fbdcf74d8af4e131b8866925c5e18d225540b9b19ce9485ca93e574d84","impliedFormat":1},{"version":"c836b5d8d84d990419548574fc037c923284df05803b098fe5ddaa49f88b898a","impliedFormat":1},{"version":"3a2b8ed9d6b687ab3e1eac3350c40b1624632f9e837afe8a4b5da295acf491cb","impliedFormat":1},{"version":"189266dd5f90a981910c70d7dfa05e2bca901a4f8a2680d7030c3abbfb5b1e23","impliedFormat":1},{"version":"5ec8dcf94c99d8f1ed7bb042cdfa4ef6a9810ca2f61d959be33bcaf3f309debe","impliedFormat":1},{"version":"a80e02af710bdac31f2d8308890ac4de4b6a221aafcbce808123bfc2903c5dc2","impliedFormat":1},{"version":"d5895252efa27a50f134a9b580aa61f7def5ab73d0a8071f9b5bf9a317c01c2d","impliedFormat":1},{"version":"2c378d9368abcd2eba8c29b294d40909845f68557bc0b38117e4f04fc56e5f9c","impliedFormat":1},{"version":"0f345151cece7be8d10df068b58983ea8bcbfead1b216f0734037a6c63d8af87","impliedFormat":1},{"version":"37fd7bde9c88aa142756d15aeba872498f45ad149e0d1e56f3bccc1af405c520","impliedFormat":1},{"version":"2a920fd01157f819cf0213edfb801c3fb970549228c316ce0a4b1885020bad35","impliedFormat":1},{"version":"56208c500dcb5f42be7e18e8cb578f257a1a89b94b3280c506818fed06391805","impliedFormat":1},{"version":"0c94c2e497e1b9bcfda66aea239d5d36cd980d12a6d9d59e66f4be1fa3da5d5a","impliedFormat":1},{"version":"a67774ceb500c681e1129b50a631fa210872bd4438fae55e5e8698bac7036b19","impliedFormat":1},{"version":"bb220eaac1677e2ad82ac4e7fd3e609a0c7b6f2d6d9c673a35068c97f9fcd5cd","affectsGlobalScope":true,"impliedFormat":1},{"version":"dd8936160e41420264a9d5fade0ff95cc92cab56032a84c74a46b4c38e43121e","impliedFormat":1},{"version":"1f366bde16e0513fa7b64f87f86689c4d36efd85afce7eb24753e9c99b91c319","impliedFormat":1},{"version":"421c3f008f6ef4a5db2194d58a7b960ef6f33e94b033415649cd557be09ef619","impliedFormat":1},{"version":"57568ff84b8ba1a4f8c817141644b49252cc39ec7b899e4bfba0ec0557c910a0","impliedFormat":1},{"version":"e6f10f9a770dedf552ca0946eef3a3386b9bfb41509233a30fc8ca47c49db71c","impliedFormat":1},{"version":"fb893a0dfc3c9fb0f9ca93d0648694dd95f33cbad2c0f2c629f842981dfd4e2e","impliedFormat":1},{"version":"3eb11dbf3489064a47a2e1cf9d261b1f100ef0b3b50ffca6c44dd99d6dd81ac1","impliedFormat":1},{"version":"89b54f7f617f2a3b94460a9bdd436f38033da6d2ddf884dee847c953a2db3877","affectsGlobalScope":true,"impliedFormat":1},{"version":"785b9d575b49124ce01b46f5b9402157c7611e6532effa562ac6aebec0074dfc","impliedFormat":1},{"version":"89121c1bf2990f5219bfd802a3e7fc557de447c62058d6af68d6b6348d64499a","impliedFormat":1},{"version":"79b4369233a12c6fa4a07301ecb7085802c98f3a77cf9ab97eee27e1656f82e6","impliedFormat":1},{"version":"f3d8c757e148ad968f0d98697987db363070abada5f503da3c06aefd9d4248c1","impliedFormat":1},{"version":"742f21debb3937c3839a63245648238555bdab1ea095d43fd10c88a64029bf76","impliedFormat":1},{"version":"7cfdf3b9a5ba934a058bfc9390c074104dc7223b7e3c16fd5335206d789bc3d3","impliedFormat":1},{"version":"0944f27ebff4b20646b71e7e3faaaae50a6debd40bc63e225de1320dd15c5795","impliedFormat":1},{"version":"8a7219b41d3c1c93f3f3b779146f313efade2404eeece88dcd366df7e2364977","impliedFormat":1},{"version":"a109c4289d59d9019cfe1eeab506fe57817ee549499b02a83a7e9d3bdf662d63","impliedFormat":1},{"version":"7af5f0f3d3fda284c313b62816a663424bb07a08ddc92ff7a1e9324840e0f39b","impliedFormat":1},{"version":"d4a22007b481fe2a2e6bfd3a42c00cd62d41edb36d30fc4697df2692e9891fc8","impliedFormat":1},{"version":"5d30565583300c9256072a013ac0318cc603ff769b4c5cafc222394ea93963e1","impliedFormat":1},{"version":"6c7176368037af28cb72f2392010fa1cef295d6d6744bca8cfb54985f3a18c3e","affectsGlobalScope":true,"impliedFormat":1},{"version":"ab41ef1f2cdafb8df48be20cd969d875602483859dc194e9c97c8a576892c052","affectsGlobalScope":true,"impliedFormat":1},{"version":"437e20f2ba32abaeb7985e0afe0002de1917bc74e949ba585e49feba65da6ca1","affectsGlobalScope":true,"impliedFormat":1},{"version":"21d819c173c0cf7cc3ce57c3276e77fd9a8a01d35a06ad87158781515c9a438a","impliedFormat":1},{"version":"a79e62f1e20467e11a904399b8b18b18c0c6eea6b50c1168bf215356d5bebfaf","affectsGlobalScope":true,"impliedFormat":1},{"version":"d802f0e6b5188646d307f070d83512e8eb94651858de8a82d1e47f60fb6da4e2","affectsGlobalScope":true,"impliedFormat":1},{"version":"4967529644e391115ca5592184d4b63980569adf60ee685f968fd59ab1557188","impliedFormat":1},{"version":"5929864ce17fba74232584d90cb721a89b7ad277220627cc97054ba15a98ea8f","impliedFormat":1},{"version":"763fe0f42b3d79b440a9b6e51e9ba3f3f91352469c1e4b3b67bfa4ff6352f3f4","impliedFormat":1},{"version":"25c8056edf4314820382a5fdb4bb7816999acdcb929c8f75e3f39473b87e85bc","impliedFormat":1},{"version":"c464d66b20788266e5353b48dc4aa6bc0dc4a707276df1e7152ab0c9ae21fad8","impliedFormat":1},{"version":"78d0d27c130d35c60b5e5566c9f1e5be77caf39804636bc1a40133919a949f21","impliedFormat":1},{"version":"c6fd2c5a395f2432786c9cb8deb870b9b0e8ff7e22c029954fabdd692bff6195","impliedFormat":1},{"version":"1d6e127068ea8e104a912e42fc0a110e2aa5a66a356a917a163e8cf9a65e4a75","impliedFormat":1},{"version":"5ded6427296cdf3b9542de4471d2aa8d3983671d4cac0f4bf9c637208d1ced43","impliedFormat":1},{"version":"7f182617db458e98fc18dfb272d40aa2fff3a353c44a89b2c0ccb3937709bfb5","impliedFormat":1},{"version":"cadc8aced301244057c4e7e73fbcae534b0f5b12a37b150d80e5a45aa4bebcbd","impliedFormat":1},{"version":"385aab901643aa54e1c36f5ef3107913b10d1b5bb8cbcd933d4263b80a0d7f20","impliedFormat":1},{"version":"9670d44354bab9d9982eca21945686b5c24a3f893db73c0dae0fd74217a4c219","impliedFormat":1},{"version":"0b8a9268adaf4da35e7fa830c8981cfa22adbbe5b3f6f5ab91f6658899e657a7","impliedFormat":1},{"version":"11396ed8a44c02ab9798b7dca436009f866e8dae3c9c25e8c1fbc396880bf1bb","impliedFormat":1},{"version":"ba7bc87d01492633cb5a0e5da8a4a42a1c86270e7b3d2dea5d156828a84e4882","impliedFormat":1},{"version":"4893a895ea92c85345017a04ed427cbd6a1710453338df26881a6019432febdd","impliedFormat":1},{"version":"c21dc52e277bcfc75fac0436ccb75c204f9e1b3fa5e12729670910639f27343e","impliedFormat":1},{"version":"13f6f39e12b1518c6650bbb220c8985999020fe0f21d818e28f512b7771d00f9","impliedFormat":1},{"version":"9b5369969f6e7175740bf51223112ff209f94ba43ecd3bb09eefff9fd675624a","impliedFormat":1},{"version":"4fe9e626e7164748e8769bbf74b538e09607f07ed17c2f20af8d680ee49fc1da","impliedFormat":1},{"version":"24515859bc0b836719105bb6cc3d68255042a9f02a6022b3187948b204946bd2","impliedFormat":1},{"version":"ea0148f897b45a76544ae179784c95af1bd6721b8610af9ffa467a518a086a43","impliedFormat":1},{"version":"24c6a117721e606c9984335f71711877293a9651e44f59f3d21c1ea0856f9cc9","impliedFormat":1},{"version":"dd3273ead9fbde62a72949c97dbec2247ea08e0c6952e701a483d74ef92d6a17","impliedFormat":1},{"version":"405822be75ad3e4d162e07439bac80c6bcc6dbae1929e179cf467ec0b9ee4e2e","impliedFormat":1},{"version":"0db18c6e78ea846316c012478888f33c11ffadab9efd1cc8bcc12daded7a60b6","impliedFormat":1},{"version":"e61be3f894b41b7baa1fbd6a66893f2579bfad01d208b4ff61daef21493ef0a8","impliedFormat":1},{"version":"bd0532fd6556073727d28da0edfd1736417a3f9f394877b6d5ef6ad88fba1d1a","impliedFormat":1},{"version":"89167d696a849fce5ca508032aabfe901c0868f833a8625d5a9c6e861ef935d2","impliedFormat":1},{"version":"615ba88d0128ed16bf83ef8ccbb6aff05c3ee2db1cc0f89ab50a4939bfc1943f","impliedFormat":1},{"version":"a4d551dbf8746780194d550c88f26cf937caf8d56f102969a110cfaed4b06656","impliedFormat":1},{"version":"8bd86b8e8f6a6aa6c49b71e14c4ffe1211a0e97c80f08d2c8cc98838006e4b88","impliedFormat":1},{"version":"317e63deeb21ac07f3992f5b50cdca8338f10acd4fbb7257ebf56735bf52ab00","impliedFormat":1},{"version":"4732aec92b20fb28c5fe9ad99521fb59974289ed1e45aecb282616202184064f","impliedFormat":1},{"version":"2e85db9e6fd73cfa3d7f28e0ab6b55417ea18931423bd47b409a96e4a169e8e6","impliedFormat":1},{"version":"c46e079fe54c76f95c67fb89081b3e399da2c7d109e7dca8e4b58d83e332e605","impliedFormat":1},{"version":"bf67d53d168abc1298888693338cb82854bdb2e69ef83f8a0092093c2d562107","impliedFormat":1},{"version":"a12d953aa755b14ac1d28ecdc1e184f3285b01d6d1e58abc11bf1826bc9d80e6","affectsGlobalScope":true,"impliedFormat":1},{"version":"a38efe83ff77c34e0f418a806a01ca3910c02ee7d64212a59d59bca6c2c38fa1","impliedFormat":1},{"version":"7394959e5a741b185456e1ef5d64599c36c60a323207450991e7a42e08911419","impliedFormat":1},{"version":"2b06b93fd01bcd49d1a6bd1f9b65ddcae6480b9a86e9061634d6f8e354c1468f","impliedFormat":1},{"version":"7b988bc259155186e6b09dd8b32856d9e45c8d261e63c19abaf590bb6550f922","affectsGlobalScope":true,"impliedFormat":1},{"version":"fe7b52f993f9336b595190f3c1fcc259bb2cf6dcb4ac8fdb1e0454cc5df7301e","impliedFormat":1},{"version":"e9b97d69510658d2f4199b7d384326b7c4053b9e6645f5c19e1c2a54ede427fc","impliedFormat":1},{"version":"c2510f124c0293ab80b1777c44d80f812b75612f297b9857406468c0f4dafe29","affectsGlobalScope":true,"impliedFormat":1},{"version":"5524481e56c48ff486f42926778c0a3cce1cc85dc46683b92b1271865bcf015a","impliedFormat":1},{"version":"81711af669f63d43ccb4c08e15beda796656dd46673d0def001c7055db53852d","affectsGlobalScope":true,"impliedFormat":1},{"version":"19d5f8d3930e9f99aa2c36258bf95abbe5adf7e889e6181872d1cdba7c9a7dd5","impliedFormat":1},{"version":"9855e02d837744303391e5623a531734443a5f8e6e8755e018c41d63ad797db2","impliedFormat":1},{"version":"bdba81959361810be44bcfdd283f4d601e406ab5ad1d2bdff0ed480cf983c9d7","impliedFormat":1},{"version":"836a356aae992ff3c28a0212e3eabcb76dd4b0cc06bcb9607aeef560661b860d","impliedFormat":1},{"version":"1e0d1f8b0adfa0b0330e028c7941b5a98c08b600efe7f14d2d2a00854fb2f393","impliedFormat":1},{"version":"71450bbc2d82821d24ca05699a533e72758964e9852062c53b30f31c36978ab8","affectsGlobalScope":true,"impliedFormat":1},{"version":"b326f4813b90d230ec3950f66bd5b5ce3971aac5fac67cfafc54aa07b39fd07f","affectsGlobalScope":true,"impliedFormat":1},{"version":"c8420c7c2b778b334587a4c0311833b5212ff2f684ea37b2f0e2b117f1d7210d","impliedFormat":1},{"version":"b6b08215821c9833b0e8e30ea1ed178009f2f3ff5d7fae3865ee42f97cc87784","impliedFormat":1},{"version":"b795c3e47a26be91ac33d8115acdc37bfa41ecc701fb237c64a23da4d2b7e1d8","impliedFormat":1},{"version":"73cf6cc19f16c0191e4e9d497ab0c11c7b38f1ca3f01ad0f09a3a5a971aac4b8","impliedFormat":1},{"version":"528b62e4272e3ddfb50e8eed9e359dedea0a4d171c3eb8f337f4892aac37b24b","impliedFormat":1},{"version":"ed58b9974bb3114f39806c9c2c6258c4ffa6a255921976a7c53dfa94bf178f42","impliedFormat":1},{"version":"e6fa9ad47c5f71ff733744a029d1dc472c618de53804eae08ffc243b936f87ff","affectsGlobalScope":true,"impliedFormat":1},{"version":"f72bc8fe16da67e4e3268599295797b202b95e54bd215a03f97e925dd1502a36","impliedFormat":1},{"version":"b1b6ee0d012aeebe11d776a155d8979730440082797695fc8e2a5c326285678f","impliedFormat":1},{"version":"45875bcae57270aeb3ebc73a5e3fb4c7b9d91d6b045f107c1d8513c28ece71c0","impliedFormat":1},{"version":"915e18c559321c0afaa8d34674d3eb77e1ded12c3e85bf2a9891ec48b07a1ca5","affectsGlobalScope":true,"impliedFormat":1},{"version":"e9727a118ce60808e62457c89762fe5a4e2be8e9fd0112d12432d1bafdba942f","affectsGlobalScope":true,"impliedFormat":1},{"version":"3f16a7e4deafa527ed9995a772bb380eb7d3c2c0fd4ae178c5263ed18394db2c","impliedFormat":1},{"version":"933921f0bb0ec12ef45d1062a1fc0f27635318f4d294e4d99de9a5493e618ca2","impliedFormat":1},{"version":"71a0f3ad612c123b57239a7749770017ecfe6b66411488000aba83e4546fde25","impliedFormat":1},{"version":"70b57b5529051497e9f6482b76d91c0dcbb103d9ead8a0549f5bab8f65e5d031","impliedFormat":1},{"version":"4f9d8ca0c417b67b69eeb54c7ca1bedd7b56034bb9bfd27c5d4f3bc4692daca7","impliedFormat":1},{"version":"814118df420c4e38fe5ae1b9a3bafb6e9c2aa40838e528cde908381867be6466","impliedFormat":1},{"version":"3a90b9beac4c2bfdf6517faae0940a042b81652badf747df0a7c7593456f6ebe","impliedFormat":1},{"version":"8302157cd431b3943eed09ad439b4441826c673d9f870dcb0e1f48e891a4211e","impliedFormat":1},{"version":"37ba7b45141a45ce6e80e66f2a96c8a5ab1bcef0fc2d0f56bb58df96ec67e972","impliedFormat":1},{"version":"125d792ec6c0c0f657d758055c494301cc5fdb327d9d9d5960b3f129aff76093","impliedFormat":1},{"version":"dba28a419aec76ed864ef43e5f577a5c99a010c32e5949fe4e17a4d57c58dd11","affectsGlobalScope":true,"impliedFormat":1},{"version":"2754d8221d77c7b382096651925eb476f1066b3348da4b73fe71ced7801edada","impliedFormat":1},{"version":"a5890565ed564c7b29eb1b1038d4e10c03a3f5231b0a8d48fea4b41ab19f4f46","impliedFormat":1},{"version":"f0be1b8078cd549d91f37c30c222c2a187ac1cf981d994fb476a1adc61387b14","affectsGlobalScope":true,"impliedFormat":1},{"version":"0aaed1d72199b01234152f7a60046bc947f1f37d78d182e9ae09c4289e06a592","impliedFormat":1},{"version":"98ffdf93dfdd206516971d28e3e473f417a5cfd41172e46b4ce45008f640588e","impliedFormat":1},{"version":"66ba1b2c3e3a3644a1011cd530fb444a96b1b2dfe2f5e837a002d41a1a799e60","impliedFormat":1},{"version":"7e514f5b852fdbc166b539fdd1f4e9114f29911592a5eb10a94bb3a13ccac3c4","impliedFormat":1},{"version":"cee74f5970ffc01041e5bffc3f324c20450534af4054d2c043cb49dbbd4ec8f7","affectsGlobalScope":true,"impliedFormat":1},{"version":"1a654e0d950353614ba4637a8de4f9d367903a0692b748e11fccf8c880c99735","affectsGlobalScope":true,"impliedFormat":1},{"version":"42da246c46ca3fd421b6fd88bb4466cda7137cf33e87ba5ceeded30219c428bd","impliedFormat":1},{"version":"3a051941721a7f905544732b0eb819c8d88333a96576b13af08b82c4f17581e4","impliedFormat":1},{"version":"ac5ed35e649cdd8143131964336ab9076937fa91802ec760b3ea63b59175c10a","impliedFormat":1},{"version":"f2feb9696208311cdcf1936df2b7cbec96a3f0ab9d403952bf170546d4253a90","affectsGlobalScope":true,"impliedFormat":1},{"version":"db3d77167a7da6c5ba0c51c5b654820e3464093f21724ccd774c0b9bc3f81bc0","impliedFormat":1},{"version":"ad90122e1cb599b3bc06a11710eb5489101be678f2920f2322b0ac3e195af78d","impliedFormat":1},{"version":"87d9d29dbc745f182683f63187bf3d53fd8673e5fca38ad5eaab69798ed29fbc","impliedFormat":1},{"version":"eb5b19b86227ace1d29ea4cf81387279d04bb34051e944bc53df69f58914b788","affectsGlobalScope":true,"impliedFormat":1},{"version":"8a8eb4ebffd85e589a1cc7c178e291626c359543403d58c9cd22b81fab5b1fb9","impliedFormat":1},{"version":"ddb7652e1e97673432651dd82304d1743be783994c76e4b99b4a025e81e1bc78","affectsGlobalScope":true,"impliedFormat":1},{"version":"7d2a0ba1297be385a89b5515b88cd31b4a1eeef5236f710166dc1b36b1741e1b","impliedFormat":1},{"version":"15fe687c59d62741b4494d5e623d497d55eb38966ecf5bea7f36e48fc3fbe15e","impliedFormat":1},{"version":"2c3b8be03577c98530ef9cb1a76e2c812636a871f367e9edf4c5f3ce702b77f8","affectsGlobalScope":true,"impliedFormat":1},{"version":"28ca156f93e9f2f073d825452a114d106291d123564ca49af5b108ba20311011","affectsGlobalScope":true,"impliedFormat":1},{"version":"9cbfee0d2998dc92715f33d94e0cf9650b5e07f74cb40331dcccbbeaf4f36872","impliedFormat":1},{"version":"1ba59c8bbeed2cb75b239bb12041582fa3e8ef32f8d0bd0ec802e38442d3f317","impliedFormat":1},{"version":"74d5a87c3616cd5d8691059d531504403aa857e09cbaecb1c64dfb9ace0db185","impliedFormat":1}],"root":[[57,59],85,86],"options":{"allowJs":true,"composite":true,"declaration":true,"declarationMap":true,"module":199,"noImplicitAny":true,"noImplicitOverride":true,"noPropertyAccessFromIndexSignature":true,"noUncheckedIndexedAccess":true,"outDir":"./","skipLibCheck":true,"strict":true,"stripInternal":true,"target":8},"referencedMap":[[61,1],[60,2],[68,3],[70,4],[82,5],[83,6],[72,7],[84,8],[78,2],[80,9],[81,10],[79,11],[73,12],[66,2],[65,1],[74,13],[76,14],[67,2],[71,15],[77,15],[69,2],[75,2],[87,2],[88,2],[90,16],[91,2],[93,17],[94,17],[95,2],[96,2],[98,18],[99,2],[100,2],[101,17],[102,2],[103,2],[104,19],[105,2],[106,2],[107,20],[108,2],[109,21],[110,2],[111,2],[112,2],[113,2],[116,2],[115,22],[92,2],[117,23],[118,2],[114,2],[119,2],[120,17],[121,24],[122,25],[124,26],[89,2],[64,27],[63,28],[62,2],[125,2],[126,2],[97,2],[128,29],[129,2],[130,2],[131,30],[135,31],[133,32],[134,31],[136,29],[132,2],[137,33],[123,2],[183,34],[184,34],[185,35],[143,36],[186,37],[187,38],[188,39],[138,2],[141,40],[139,2],[140,2],[189,41],[190,42],[191,43],[192,44],[193,45],[194,46],[195,46],[197,2],[196,47],[198,48],[199,49],[200,50],[182,51],[142,2],[201,52],[202,53],[203,54],[236,55],[204,56],[205,57],[206,58],[207,59],[208,60],[209,61],[210,62],[211,63],[212,64],[213,65],[214,65],[215,66],[216,2],[217,2],[218,67],[220,68],[219,69],[221,70],[222,71],[223,72],[224,73],[225,74],[226,75],[227,76],[228,77],[229,78],[230,79],[231,80],[232,81],[233,82],[234,83],[235,84],[237,2],[238,2],[240,85],[241,2],[243,86],[242,2],[127,2],[244,2],[245,2],[246,87],[247,88],[144,2],[239,2],[54,2],[55,2],[11,2],[9,2],[10,2],[15,2],[14,2],[2,2],[16,2],[17,2],[18,2],[19,2],[20,2],[21,2],[22,2],[23,2],[3,2],[24,2],[25,2],[4,2],[26,2],[30,2],[27,2],[28,2],[29,2],[31,2],[32,2],[33,2],[5,2],[34,2],[35,2],[36,2],[37,2],[6,2],[41,2],[38,2],[39,2],[40,2],[42,2],[7,2],[43,2],[48,2],[49,2],[44,2],[45,2],[46,2],[47,2],[8,2],[56,2],[53,2],[50,2],[51,2],[52,2],[1,2],[13,2],[12,2],[160,89],[170,90],[159,89],[180,91],[151,92],[150,93],[179,94],[173,95],[178,96],[153,97],[167,98],[152,99],[176,100],[148,101],[147,94],[177,102],[149,103],[154,104],[155,2],[158,104],[145,2],[181,105],[171,106],[162,107],[163,108],[165,109],[161,110],[164,111],[174,94],[156,112],[157,113],[166,114],[146,115],[169,106],[168,104],[172,2],[175,116],[57,2],[59,117],[85,118],[86,119],[58,2]],"latestChangedDtsFile":"./src/index.d.ts","version":"5.9.3"}
package/package.json ADDED
@@ -0,0 +1,55 @@
1
+ {
2
+ "name": "@mediabunny/aac-encoder",
3
+ "author": "Vanilagy",
4
+ "version": "1.35.1",
5
+ "description": "AAC encoder extension for Mediabunny, based on FFmpeg.",
6
+ "main": "./dist/bundles/mediabunny-aac-encoder.mjs",
7
+ "module": "./dist/bundles/mediabunny-aac-encoder.mjs",
8
+ "types": "./dist/modules/src/index.d.ts",
9
+ "exports": {
10
+ "types": "./dist/modules/src/index.d.ts",
11
+ "import": "./dist/bundles/mediabunny-aac-encoder.mjs",
12
+ "require": "./dist/bundles/mediabunny-aac-encoder.mjs"
13
+ },
14
+ "files": [
15
+ "README.md",
16
+ "package.json",
17
+ "LICENSE",
18
+ "dist",
19
+ "src"
20
+ ],
21
+ "browser": {
22
+ "worker_threads": false
23
+ },
24
+ "sideEffects": false,
25
+ "license": "MPL-2.0",
26
+ "repository": {
27
+ "type": "git",
28
+ "url": "git+https://github.com/Vanilagy/mediabunny.git",
29
+ "directory": "packages/aac-encoder"
30
+ },
31
+ "bugs": {
32
+ "url": "https://github.com/Vanilagy/mediabunny/issues"
33
+ },
34
+ "homepage": "https://mediabunny.dev/guide/extensions/aac-encoder",
35
+ "funding": {
36
+ "type": "individual",
37
+ "url": "https://github.com/sponsors/Vanilagy"
38
+ },
39
+ "peerDependencies": {
40
+ "mediabunny": "^1.0.0"
41
+ },
42
+ "devDependencies": {
43
+ "@types/emscripten": "^1.40.1"
44
+ },
45
+ "keywords": [
46
+ "aac",
47
+ "encoding",
48
+ "codec",
49
+ "mediabunny",
50
+ "ffmpeg",
51
+ "browser",
52
+ "wasm",
53
+ "polyfill"
54
+ ]
55
+ }
package/src/bridge.c ADDED
@@ -0,0 +1,190 @@
1
+ /*!
2
+ * Copyright (c) 2026-present, Vanilagy and contributors
3
+ *
4
+ * This Source Code Form is subject to the terms of the Mozilla Public
5
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
6
+ * file, You can obtain one at https://mozilla.org/MPL/2.0/.
7
+ */
8
+
9
+ #include <emscripten.h>
10
+ #include <stdlib.h>
11
+ #include <string.h>
12
+ #include "libavcodec/avcodec.h"
13
+ #include "libavutil/opt.h"
14
+ #include "libavutil/channel_layout.h"
15
+ #include "libavutil/log.h"
16
+
17
+ typedef struct {
18
+ AVCodecContext *codec_ctx;
19
+ AVPacket *packet;
20
+ AVFrame *frame;
21
+ float *input_buffer;
22
+ int input_buffer_size;
23
+ int encoded_pts;
24
+ int encoded_duration;
25
+ } EncoderContext;
26
+
27
+ EMSCRIPTEN_KEEPALIVE
28
+ EncoderContext *init_encoder(int channels, int sample_rate, int bitrate) {
29
+ av_log_set_level(AV_LOG_ERROR);
30
+
31
+ const AVCodec *codec = avcodec_find_encoder(AV_CODEC_ID_AAC);
32
+ if (!codec) return NULL;
33
+
34
+ AVCodecContext *codec_ctx = avcodec_alloc_context3(codec);
35
+ if (!codec_ctx) return NULL;
36
+
37
+ codec_ctx->sample_fmt = AV_SAMPLE_FMT_FLTP;
38
+ codec_ctx->sample_rate = sample_rate;
39
+ codec_ctx->bit_rate = bitrate;
40
+ codec_ctx->time_base = (AVRational){1, sample_rate};
41
+
42
+ AVChannelLayout layout;
43
+ av_channel_layout_default(&layout, channels);
44
+ av_channel_layout_copy(&codec_ctx->ch_layout, &layout);
45
+ av_channel_layout_uninit(&layout);
46
+
47
+ if (avcodec_open2(codec_ctx, codec, NULL) < 0) {
48
+ avcodec_free_context(&codec_ctx);
49
+ return NULL;
50
+ }
51
+
52
+ AVPacket *packet = av_packet_alloc();
53
+ if (!packet) {
54
+ avcodec_free_context(&codec_ctx);
55
+ return NULL;
56
+ }
57
+
58
+ AVFrame *frame = av_frame_alloc();
59
+ if (!frame) {
60
+ av_packet_free(&packet);
61
+ avcodec_free_context(&codec_ctx);
62
+ return NULL;
63
+ }
64
+
65
+ frame->format = AV_SAMPLE_FMT_FLTP;
66
+ frame->sample_rate = sample_rate;
67
+ frame->nb_samples = codec_ctx->frame_size;
68
+ av_channel_layout_copy(&frame->ch_layout, &codec_ctx->ch_layout);
69
+
70
+ if (av_frame_get_buffer(frame, 0) < 0) {
71
+ av_frame_free(&frame);
72
+ av_packet_free(&packet);
73
+ avcodec_free_context(&codec_ctx);
74
+ return NULL;
75
+ }
76
+
77
+ EncoderContext *ctx = malloc(sizeof(EncoderContext));
78
+ if (!ctx) {
79
+ av_frame_free(&frame);
80
+ av_packet_free(&packet);
81
+ avcodec_free_context(&codec_ctx);
82
+ return NULL;
83
+ }
84
+
85
+ ctx->codec_ctx = codec_ctx;
86
+ ctx->packet = packet;
87
+ ctx->frame = frame;
88
+ ctx->input_buffer = NULL;
89
+ ctx->input_buffer_size = 0;
90
+ ctx->encoded_pts = 0;
91
+ ctx->encoded_duration = 0;
92
+
93
+ return ctx;
94
+ }
95
+
96
+ EMSCRIPTEN_KEEPALIVE
97
+ int get_encoder_frame_size(EncoderContext *ctx) {
98
+ return ctx->codec_ctx->frame_size;
99
+ }
100
+
101
+ EMSCRIPTEN_KEEPALIVE
102
+ uint8_t *get_encoder_extradata(EncoderContext *ctx) {
103
+ return ctx->codec_ctx->extradata;
104
+ }
105
+
106
+ EMSCRIPTEN_KEEPALIVE
107
+ int get_encoder_extradata_size(EncoderContext *ctx) {
108
+ return ctx->codec_ctx->extradata_size;
109
+ }
110
+
111
+ EMSCRIPTEN_KEEPALIVE
112
+ float *get_encode_input_ptr(EncoderContext *ctx, int size) {
113
+ if (ctx->input_buffer_size < size) {
114
+ free(ctx->input_buffer);
115
+ ctx->input_buffer = malloc(size);
116
+ if (!ctx->input_buffer) {
117
+ ctx->input_buffer_size = 0;
118
+ return NULL;
119
+ }
120
+ ctx->input_buffer_size = size;
121
+ }
122
+ return ctx->input_buffer;
123
+ }
124
+
125
+ EMSCRIPTEN_KEEPALIVE
126
+ int send_frame(EncoderContext *ctx, int pts) {
127
+ int channels = ctx->codec_ctx->ch_layout.nb_channels;
128
+ int frame_size = ctx->frame->nb_samples;
129
+
130
+ ctx->frame->pts = pts;
131
+
132
+ // Deinterleave f32 input into the frame's f32-planar planes
133
+ float *input = ctx->input_buffer;
134
+ for (int ch = 0; ch < channels; ch++) {
135
+ float *plane = (float *)ctx->frame->data[ch];
136
+ for (int i = 0; i < frame_size; i++) {
137
+ plane[i] = input[i * channels + ch];
138
+ }
139
+ }
140
+
141
+ return avcodec_send_frame(ctx->codec_ctx, ctx->frame);
142
+ }
143
+
144
+ EMSCRIPTEN_KEEPALIVE
145
+ int receive_packet(EncoderContext *ctx) {
146
+ int ret = avcodec_receive_packet(ctx->codec_ctx, ctx->packet);
147
+ if (ret == AVERROR(EAGAIN) || ret == AVERROR_EOF) {
148
+ return 0;
149
+ }
150
+ if (ret < 0) return ret;
151
+
152
+ ctx->encoded_pts = ctx->packet->pts;
153
+ ctx->encoded_duration = ctx->packet->duration;
154
+
155
+ return ctx->packet->size;
156
+ }
157
+
158
+ EMSCRIPTEN_KEEPALIVE
159
+ void flush_encoder_start(EncoderContext *ctx) {
160
+ avcodec_send_frame(ctx->codec_ctx, NULL);
161
+ }
162
+
163
+ EMSCRIPTEN_KEEPALIVE
164
+ void reset_encoder(EncoderContext *ctx) {
165
+ avcodec_flush_buffers(ctx->codec_ctx);
166
+ }
167
+
168
+ EMSCRIPTEN_KEEPALIVE
169
+ uint8_t *get_encoded_data(EncoderContext *ctx) {
170
+ return ctx->packet->data;
171
+ }
172
+
173
+ EMSCRIPTEN_KEEPALIVE
174
+ int get_encoded_pts(EncoderContext *ctx) {
175
+ return ctx->encoded_pts;
176
+ }
177
+
178
+ EMSCRIPTEN_KEEPALIVE
179
+ int get_encoded_duration(EncoderContext *ctx) {
180
+ return ctx->encoded_duration;
181
+ }
182
+
183
+ EMSCRIPTEN_KEEPALIVE
184
+ void close_encoder(EncoderContext *ctx) {
185
+ free(ctx->input_buffer);
186
+ av_frame_free(&ctx->frame);
187
+ av_packet_free(&ctx->packet);
188
+ avcodec_free_context(&ctx->codec_ctx);
189
+ free(ctx);
190
+ }
@@ -0,0 +1,204 @@
1
+ /*!
2
+ * Copyright (c) 2026-present, Vanilagy and contributors
3
+ *
4
+ * This Source Code Form is subject to the terms of the Mozilla Public
5
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
6
+ * file, You can obtain one at https://mozilla.org/MPL/2.0/.
7
+ */
8
+
9
+ import createModule from '../build/aac';
10
+ import type { WorkerCommand, WorkerResponse, WorkerResponseData } from './shared';
11
+
12
+ type ExtendedEmscriptenModule = EmscriptenModule & {
13
+ cwrap: typeof cwrap;
14
+ };
15
+
16
+ let module: ExtendedEmscriptenModule;
17
+ let modulePromise: Promise<ExtendedEmscriptenModule> | null = null;
18
+
19
+ let initEncoderFn: (channels: number, sampleRate: number, bitrate: number) => number;
20
+ let getEncoderFrameSize: (ctx: number) => number;
21
+ let getEncoderExtradata: (ctx: number) => number;
22
+ let getEncoderExtradataSize: (ctx: number) => number;
23
+ let getEncodeInputPtr: (ctx: number, size: number) => number;
24
+ let sendFrameFn: (ctx: number, pts: number) => number;
25
+ let receivePacketFn: (ctx: number) => number;
26
+ let flushEncoderStartFn: (ctx: number) => void;
27
+ let resetEncoderFn: (ctx: number) => void;
28
+ let getEncodedData: (ctx: number) => number;
29
+ let getEncodedPts: (ctx: number) => number;
30
+ let getEncodedDuration: (ctx: number) => number;
31
+ let closeEncoderFn: (ctx: number) => void;
32
+
33
+ const ensureModule = async () => {
34
+ if (!module) {
35
+ if (modulePromise) {
36
+ return modulePromise;
37
+ }
38
+
39
+ modulePromise = createModule() as Promise<ExtendedEmscriptenModule>;
40
+ module = await modulePromise;
41
+ modulePromise = null;
42
+
43
+ initEncoderFn = module.cwrap('init_encoder', 'number', ['number', 'number', 'number']);
44
+ getEncoderFrameSize = module.cwrap('get_encoder_frame_size', 'number', ['number']);
45
+ getEncoderExtradata = module.cwrap('get_encoder_extradata', 'number', ['number']);
46
+ getEncoderExtradataSize = module.cwrap('get_encoder_extradata_size', 'number', ['number']);
47
+ getEncodeInputPtr = module.cwrap('get_encode_input_ptr', 'number', ['number', 'number']);
48
+ sendFrameFn = module.cwrap('send_frame', 'number', ['number', 'number']);
49
+ receivePacketFn = module.cwrap('receive_packet', 'number', ['number']);
50
+ flushEncoderStartFn = module.cwrap('flush_encoder_start', null, ['number']);
51
+ resetEncoderFn = module.cwrap('reset_encoder', null, ['number']);
52
+ getEncodedData = module.cwrap('get_encoded_data', 'number', ['number']);
53
+ getEncodedPts = module.cwrap('get_encoded_pts', 'number', ['number']);
54
+ getEncodedDuration = module.cwrap('get_encoded_duration', 'number', ['number']);
55
+ closeEncoderFn = module.cwrap('close_encoder', null, ['number']);
56
+ }
57
+ };
58
+
59
+ const initEncoder = async (
60
+ numberOfChannels: number,
61
+ sampleRate: number,
62
+ bitrate: number,
63
+ ) => {
64
+ await ensureModule();
65
+
66
+ const ctx = initEncoderFn(numberOfChannels, sampleRate, bitrate);
67
+ if (ctx === 0) {
68
+ throw new Error('Failed to initialize AAC encoder.');
69
+ }
70
+
71
+ const frameSize = getEncoderFrameSize(ctx);
72
+
73
+ const extradataPtr = getEncoderExtradata(ctx);
74
+ const extradataSize = getEncoderExtradataSize(ctx);
75
+ const extradata = module.HEAPU8.slice(extradataPtr, extradataPtr + extradataSize).buffer;
76
+
77
+ return { ctx, frameSize, extradata };
78
+ };
79
+
80
+ type PacketInfo = { encodedData: ArrayBuffer; pts: number; duration: number };
81
+
82
+ const drainPackets = (ctx: number) => {
83
+ const packets: PacketInfo[] = [];
84
+
85
+ let size: number;
86
+ while ((size = receivePacketFn(ctx)) > 0) {
87
+ const ptr = getEncodedData(ctx);
88
+ const encodedData = module.HEAPU8.slice(ptr, ptr + size).buffer;
89
+ const pts = getEncodedPts(ctx);
90
+ const duration = getEncodedDuration(ctx);
91
+ packets.push({ encodedData, pts, duration });
92
+ }
93
+
94
+ return packets;
95
+ };
96
+
97
+ const encode = (ctx: number, audioData: ArrayBuffer, timestamp: number) => {
98
+ const audioBytes = new Uint8Array(audioData);
99
+
100
+ const inputPtr = getEncodeInputPtr(ctx, audioBytes.length);
101
+ if (inputPtr === 0) {
102
+ throw new Error('Failed to allocate encoder input buffer.');
103
+ }
104
+ module.HEAPU8.set(audioBytes, inputPtr);
105
+
106
+ const ret = sendFrameFn(ctx, timestamp);
107
+ if (ret < 0) {
108
+ throw new Error(`Encode failed with error code ${ret}.`);
109
+ }
110
+
111
+ return drainPackets(ctx);
112
+ };
113
+
114
+ const onMessage = (data: { id: number; command: WorkerCommand }) => {
115
+ const { id, command } = data;
116
+
117
+ const handleCommand = async (): Promise<void> => {
118
+ try {
119
+ let result: WorkerResponseData;
120
+ const transferables: Transferable[] = [];
121
+
122
+ switch (command.type) {
123
+ case 'init': {
124
+ const { ctx, frameSize, extradata } = await initEncoder(
125
+ command.data.numberOfChannels,
126
+ command.data.sampleRate,
127
+ command.data.bitrate,
128
+ );
129
+ result = { type: command.type, ctx, frameSize, extradata };
130
+ transferables.push(extradata);
131
+ }; break;
132
+
133
+ case 'encode': {
134
+ const packets = encode(
135
+ command.data.ctx,
136
+ command.data.audioData,
137
+ command.data.timestamp,
138
+ );
139
+ for (const p of packets) {
140
+ transferables.push(p.encodedData);
141
+ }
142
+ result = { type: command.type, packets };
143
+ }; break;
144
+
145
+ case 'flush': {
146
+ flushEncoderStartFn(command.data.ctx);
147
+ const packets = drainPackets(command.data.ctx);
148
+ for (const p of packets) {
149
+ transferables.push(p.encodedData);
150
+ }
151
+ resetEncoderFn(command.data.ctx);
152
+ result = { type: command.type, packets };
153
+ }; break;
154
+
155
+ case 'close': {
156
+ closeEncoderFn(command.data.ctx);
157
+ result = { type: command.type };
158
+ }; break;
159
+ }
160
+
161
+ const response: WorkerResponse = {
162
+ id,
163
+ success: true,
164
+ data: result,
165
+ };
166
+ sendMessage(response, transferables);
167
+ } catch (error: unknown) {
168
+ const response: WorkerResponse = {
169
+ id,
170
+ success: false,
171
+ error,
172
+ };
173
+ sendMessage(response);
174
+ }
175
+ };
176
+
177
+ void handleCommand();
178
+ };
179
+
180
+ const sendMessage = (data: unknown, transferables?: Transferable[]) => {
181
+ if (parentPort) {
182
+ parentPort.postMessage(data, transferables ?? []);
183
+ } else {
184
+ self.postMessage(data, { transfer: transferables ?? [] });
185
+ }
186
+ };
187
+
188
+ let parentPort: {
189
+ postMessage: (data: unknown, transferables?: Transferable[]) => void;
190
+ on: (event: string, listener: (data: never) => void) => void;
191
+ } | null = null;
192
+
193
+ if (typeof self === 'undefined') {
194
+ const workerModule = 'worker_threads';
195
+ // eslint-disable-next-line @stylistic/max-len
196
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-require-imports, @typescript-eslint/no-unsafe-member-access
197
+ parentPort = require(workerModule).parentPort;
198
+ }
199
+
200
+ if (parentPort) {
201
+ parentPort.on('message', onMessage);
202
+ } else {
203
+ self.addEventListener('message', event => onMessage(event.data as { id: number; command: WorkerCommand }));
204
+ }