From 0be0347f8bd9fe60df720f140f74d2e48f1fc1a1 Mon Sep 17 00:00:00 2001 From: Felix Roos Date: Mon, 28 Mar 2022 21:22:24 +0200 Subject: [PATCH 01/78] basic communication with superdirt --- packages/osc/README.md | 33 +++++++++ packages/osc/index.html | 22 ++++++ packages/osc/package-lock.json | 76 +++++++++++++++++++ packages/osc/package.json | 32 ++++++++ packages/osc/server.js | 129 +++++++++++++++++++++++++++++++++ packages/osc/tidal-sniffer.js | 125 ++++++++++++++++++++++++++++++++ 6 files changed, 417 insertions(+) create mode 100644 packages/osc/README.md create mode 100644 packages/osc/index.html create mode 100644 packages/osc/package-lock.json create mode 100644 packages/osc/package.json create mode 100644 packages/osc/server.js create mode 100644 packages/osc/tidal-sniffer.js diff --git a/packages/osc/README.md b/packages/osc/README.md new file mode 100644 index 000000000..e8f5069b6 --- /dev/null +++ b/packages/osc/README.md @@ -0,0 +1,33 @@ +# @strudel.cycles/osc + +OSC messaging between strudel and super collider? + +## Sniffing Tidal Messages + +```sh +npm run tidal-sniffer +``` + +Now open a .tidal file and play something. There should be logs like: + +```log +received: /dirt/play [ + '_id_', '1', + 'cps', 0.5625, + 'cutoff', 100, + 'cycle', 724.1875, + 'delta', 0.11111068725585938, + 'orbit', 0, + 's', 'arpy' +] +``` + +## Web Client + Server (WIP) + +```sh +npm run client +npm run server # another terminal +``` + +Then go to [http://localhost:4321](localhost:4321) and push the button. +In your server terminal, there should be a log. diff --git a/packages/osc/index.html b/packages/osc/index.html new file mode 100644 index 000000000..0890caa1a --- /dev/null +++ b/packages/osc/index.html @@ -0,0 +1,22 @@ + + + diff --git a/packages/osc/package-lock.json b/packages/osc/package-lock.json new file mode 100644 index 000000000..33516920e --- /dev/null +++ b/packages/osc/package-lock.json @@ -0,0 +1,76 @@ +{ + "name": "@strudel.cycles/osc", + "version": "0.0.1", + "lockfileVersion": 2, + "requires": true, + "packages": { + "": { + "name": "@strudel.cycles/osc", + "version": "0.0.1", + "license": "GPL-3.0-or-later", + "dependencies": { + "osc-js": "^2.3.0" + } + }, + "node_modules/isomorphic-ws": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/isomorphic-ws/-/isomorphic-ws-4.0.1.tgz", + "integrity": "sha512-BhBvN2MBpWTaSHdWRb/bwdZJ1WaehQ2L1KngkCkfLUGF0mAWAT1sQUQacEmQ0jXkFw/czDXPNQSL5u2/Krsz1w==", + "peerDependencies": { + "ws": "*" + } + }, + "node_modules/osc-js": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/osc-js/-/osc-js-2.3.0.tgz", + "integrity": "sha512-P2Oy9tf8Z9lQw8JZeR62HNqbKdxj7Kqbsag+ImiJvyxPDReGMVt5LtZbMh/7Ve/wbYEGODkQdFAaLHFVkIlHPw==", + "dependencies": { + "isomorphic-ws": "4.0.1", + "ws": "8.5.0" + } + }, + "node_modules/ws": { + "version": "8.5.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.5.0.tgz", + "integrity": "sha512-BWX0SWVgLPzYwF8lTzEy1egjhS4S4OEAHfsO8o65WOVsrnSRGaSiUaa9e0ggGlkMTtBlmOpEXiie9RUcBO86qg==", + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + } + }, + "dependencies": { + "isomorphic-ws": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/isomorphic-ws/-/isomorphic-ws-4.0.1.tgz", + "integrity": "sha512-BhBvN2MBpWTaSHdWRb/bwdZJ1WaehQ2L1KngkCkfLUGF0mAWAT1sQUQacEmQ0jXkFw/czDXPNQSL5u2/Krsz1w==", + "requires": {} + }, + "osc-js": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/osc-js/-/osc-js-2.3.0.tgz", + "integrity": "sha512-P2Oy9tf8Z9lQw8JZeR62HNqbKdxj7Kqbsag+ImiJvyxPDReGMVt5LtZbMh/7Ve/wbYEGODkQdFAaLHFVkIlHPw==", + "requires": { + "isomorphic-ws": "4.0.1", + "ws": "8.5.0" + } + }, + "ws": { + "version": "8.5.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.5.0.tgz", + "integrity": "sha512-BWX0SWVgLPzYwF8lTzEy1egjhS4S4OEAHfsO8o65WOVsrnSRGaSiUaa9e0ggGlkMTtBlmOpEXiie9RUcBO86qg==", + "requires": {} + } + } +} diff --git a/packages/osc/package.json b/packages/osc/package.json new file mode 100644 index 000000000..67a0cc767 --- /dev/null +++ b/packages/osc/package.json @@ -0,0 +1,32 @@ +{ + "name": "@strudel.cycles/osc", + "version": "0.0.1", + "description": "OSC messaging for strudel", + "main": "osc.mjs", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1", + "server": "node server.js", + "tidal-sniffer": "node tidal-sniffer.js", + "client": "npx serve -p 4321" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/tidalcycles/strudel.git" + }, + "keywords": [ + "tidalcycles", + "strudel", + "pattern", + "livecoding", + "algorave" + ], + "author": "Felix Roos ", + "license": "GPL-3.0-or-later", + "bugs": { + "url": "https://github.com/tidalcycles/strudel/issues" + }, + "homepage": "https://github.com/tidalcycles/strudel#readme", + "dependencies": { + "osc-js": "^2.3.0" + } +} diff --git a/packages/osc/server.js b/packages/osc/server.js new file mode 100644 index 000000000..0d5c69866 --- /dev/null +++ b/packages/osc/server.js @@ -0,0 +1,129 @@ +const OSC = require('osc-js'); + +const config = { + receiver: 'ws', // @param {string} Where messages sent via 'send' method will be delivered to, 'ws' for Websocket clients, 'udp' for udp client + udpServer: { + host: 'localhost', // @param {string} Hostname of udp server to bind to + port: 57121, // @param {number} Port of udp client for messaging + // enabling the following line will receive tidal messages: + // port: 57120, // @param {number} Port of udp client for messaging + exclusive: false, // @param {boolean} Exclusive flag + }, + udpClient: { + host: 'localhost', // @param {string} Hostname of udp client for messaging + port: 57120, // @param {number} Port of udp client for messaging + }, + wsServer: { + host: 'localhost', // @param {string} Hostname of WebSocket server + port: 8080, // @param {number} Port of WebSocket server + }, +}; +const osc = new OSC({ plugin: new OSC.BridgePlugin(config) }); + +osc.open(); // start a WebSocket server on port 8080 + +console.log('osc client running on port', config.udpClient.port); +console.log('osc server running on port', config.udpServer.port); +console.log('websocket server running on port', config.wsServer.port); + +// listen for messages from the client +osc.on('*', (m) => { + // forward message to supercollider?? + const message = new OSC.Message(m.address, ...m.args); + osc.send(message); // will it even be received?? + console.log('forward:', m.address, m.args); +}); + +/* +example tidal messages: + +/* + +received: /dirt/play [ + '_id_', + '1', + 'cps', + 0.5625, + 'cycle', + 503.5, + 'delta', + 0.8888888359069824, + 'orbit', + 0, + 's', + 'bd' +] +received: /dirt/play [ + '_id_', '1', + 'cps', 0.5625, + 'cycle', 503.6666564941406, + 'delta', 0.592592716217041, + 'orbit', 0, + 's', 'hh' +] +received: /dirt/play [ + '_id_', + '1', + 'cps', + 0.5625, + 'cycle', + 504, + 'delta', + 0.8888888359069824, + 'orbit', + 0, + 's', + 'bd' +] +received: /dirt/play [ + '_id_', + '1', + 'cps', + 0.5625, + 'cycle', + 504, + 'delta', + 0.592592716217041, + 'orbit', + 0, + 's', + 'hh' +] +received: /dirt/play [ + '_id_', + '1', + 'cps', + 0.5625, + 'cycle', + 504.3333435058594, + 'delta', + 0.5925922393798828, + 'orbit', + 0, + 's', + 'hh' +] +received: /dirt/play [ + '_id_', + '1', + 'cps', + 0.5625, + 'cycle', + 504.5, + 'delta', + 0.8888888359069824, + 'orbit', + 0, + 's', + 'bd' +] +received: /dirt/play [ + '_id_', '1', + 'cps', 0.5625, + 'cycle', 504.6666564941406, + 'delta', 0.592592716217041, + 'orbit', 0, + 's', 'hh' +] + +*/ diff --git a/packages/osc/tidal-sniffer.js b/packages/osc/tidal-sniffer.js new file mode 100644 index 000000000..a1bdd6591 --- /dev/null +++ b/packages/osc/tidal-sniffer.js @@ -0,0 +1,125 @@ +const OSC = require('osc-js'); + +const config = { + receiver: 'ws', // @param {string} Where messages sent via 'send' method will be delivered to, 'ws' for Websocket clients, 'udp' for udp client + udpServer: { + host: 'localhost', // @param {string} Hostname of udp server to bind to + port: 57120, // @param {number} Port of udp client for messaging + exclusive: false, // @param {boolean} Exclusive flag + }, + udpClient: { + host: 'localhost', // @param {string} Hostname of udp client for messaging + // port: 57120, // @param {number} Port of udp client for messaging + port: 41235, // @param {number} Port of udp client for messaging + }, + wsServer: { + host: 'localhost', // @param {string} Hostname of WebSocket server + port: 8080, // @param {number} Port of WebSocket server + }, +}; +const osc = new OSC({ plugin: new OSC.BridgePlugin(config) }); + +osc.open(); // start a WebSocket server on port 8080 + +console.log('osc client running on port', config.udpClient.port); +console.log('osc server running on port', config.udpServer.port); +console.log('websocket server running on port', config.wsServer.port); + +// listen for messages from the client +osc.on('*', (m) => { + console.log('received:', m.address, m.args); +}); + +/* +example tidal messages: + +/* + +received: /dirt/play [ + '_id_', + '1', + 'cps', + 0.5625, + 'cycle', + 503.5, + 'delta', + 0.8888888359069824, + 'orbit', + 0, + 's', + 'bd' +] +received: /dirt/play [ + '_id_', '1', + 'cps', 0.5625, + 'cycle', 503.6666564941406, + 'delta', 0.592592716217041, + 'orbit', 0, + 's', 'hh' +] +received: /dirt/play [ + '_id_', + '1', + 'cps', + 0.5625, + 'cycle', + 504, + 'delta', + 0.8888888359069824, + 'orbit', + 0, + 's', + 'bd' +] +received: /dirt/play [ + '_id_', + '1', + 'cps', + 0.5625, + 'cycle', + 504, + 'delta', + 0.592592716217041, + 'orbit', + 0, + 's', + 'hh' +] +received: /dirt/play [ + '_id_', + '1', + 'cps', + 0.5625, + 'cycle', + 504.3333435058594, + 'delta', + 0.5925922393798828, + 'orbit', + 0, + 's', + 'hh' +] +received: /dirt/play [ + '_id_', + '1', + 'cps', + 0.5625, + 'cycle', + 504.5, + 'delta', + 0.8888888359069824, + 'orbit', + 0, + 's', + 'bd' +] +received: /dirt/play [ + '_id_', '1', + 'cps', 0.5625, + 'cycle', 504.6666564941406, + 'delta', 0.592592716217041, + 'orbit', 0, + 's', 'hh' +] + +*/ From ed6cf2ecf1925a6a8ffd3ef78d930c3f9b3b626b Mon Sep 17 00:00:00 2001 From: Felix Roos Date: Mon, 28 Mar 2022 21:24:44 +0200 Subject: [PATCH 02/78] enlarge button --- packages/osc/index.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/osc/index.html b/packages/osc/index.html index 0890caa1a..e76309047 100644 --- a/packages/osc/index.html +++ b/packages/osc/index.html @@ -1,4 +1,4 @@ - + +

+ This page shows how skypack can be used to import strudel core directly into a simple html page.
+ No server, no bundler and no build setup is needed to run this! +

diff --git a/packages/core/examples/canvas.html b/packages/core/examples/canvas.html new file mode 100644 index 000000000..685cc56ee --- /dev/null +++ b/packages/core/examples/canvas.html @@ -0,0 +1,34 @@ + + + + + From ac01a621beb6be0e739ae7d14078c577ee6b23c4 Mon Sep 17 00:00:00 2001 From: alex Date: Fri, 1 Apr 2022 15:37:50 +0100 Subject: [PATCH 11/78] workaround for osc-js timestamp bug, reduce latency --- packages/osc/osc.mjs | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/packages/osc/osc.mjs b/packages/osc/osc.mjs index 33586d291..34169ed0d 100644 --- a/packages/osc/osc.mjs +++ b/packages/osc/osc.mjs @@ -3,17 +3,18 @@ import { Pattern, isPattern } from '@strudel.cycles/core/strudel.mjs'; const comm = new OSC(); comm.open(); +// TODO - get startTime from scheduler const startTime = Date.now(); -const latency = 0.2; +const latency = 0.1; Pattern.prototype.osc = function () { return this._withEvent((event) => { const onTrigger = (time, event) => { - console.log(time); const keyvals = Object.entries(event.value).flat(); - const ts = startTime + ((time+latency)*1000); + const ts = Math.floor(startTime + ((time + latency) * 1000)); const message = new OSC.Message('/dirt/play',...keyvals); - const bundle = new OSC.Bundle([message], ts) + const bundle = new OSC.Bundle([message], ts); + bundle.timestamp(ts); // workaround for https://github.com/adzialocha/osc-js/issues/60 comm.send(bundle); }; return event.setContext({ ...event.context, onTrigger }); From bf7c8cebc4468ac825f93cf7776ea00bf1c54c6a Mon Sep 17 00:00:00 2001 From: alex Date: Fri, 1 Apr 2022 15:38:06 +0100 Subject: [PATCH 12/78] tidy --- packages/osc/server.js | 106 ----------------------------------------- 1 file changed, 106 deletions(-) diff --git a/packages/osc/server.js b/packages/osc/server.js index dd697d8c7..f765b2844 100644 --- a/packages/osc/server.js +++ b/packages/osc/server.js @@ -1,4 +1,3 @@ -const dgram = require('dgram') const OSC = require('osc-js'); const config = { @@ -29,108 +28,3 @@ osc.open(); // start a WebSocket server on port 8080 console.log('osc client running on port', config.udpClient.port); console.log('osc server running on port', config.udpServer.port); console.log('websocket server running on port', config.wsServer.port); - -// listen for messages from the client -// osc.on('*', (m) => { -// console.log("hmm!"); -// const ts = m.args.shift(); -// const message = new OSC.Message(m.address, ...m.args); -// console.log(m.args); -// const bundle = new OSC.Bundle([message], new Date(ts)) -// osc.send(bundle); -// console.log('forward:', bundle); -// }); - -/* -example tidal messages: - -/* - -received: /dirt/play [ - '_id_', - '1', - 'cps', - 0.5625, - 'cycle', - 503.5, - 'delta', - 0.8888888359069824, - 'orbit', - 0, - 's', - 'bd' -] -received: /dirt/play [ - '_id_', '1', - 'cps', 0.5625, - 'cycle', 503.6666564941406, - 'delta', 0.592592716217041, - 'orbit', 0, - 's', 'hh' -] -received: /dirt/play [ - '_id_', - '1', - 'cps', - 0.5625, - 'cycle', - 504, - 'delta', - 0.8888888359069824, - 'orbit', - 0, - 's', - 'bd' -] -received: /dirt/play [ - '_id_', - '1', - 'cps', - 0.5625, - 'cycle', - 504, - 'delta', - 0.592592716217041, - 'orbit', - 0, - 's', - 'hh' -] -received: /dirt/play [ - '_id_', - '1', - 'cps', - 0.5625, - 'cycle', - 504.3333435058594, - 'delta', - 0.5925922393798828, - 'orbit', - 0, - 's', - 'hh' -] -received: /dirt/play [ - '_id_', - '1', - 'cps', - 0.5625, - 'cycle', - 504.5, - 'delta', - 0.8888888359069824, - 'orbit', - 0, - 's', - 'bd' -] -received: /dirt/play [ - '_id_', '1', - 'cps', 0.5625, - 'cycle', 504.6666564941406, - 'delta', 0.592592716217041, - 'orbit', 0, - 's', 'hh' -] - -*/ From 723b239fda4cfae0d89df9fa7b9bfc3083545ab6 Mon Sep 17 00:00:00 2001 From: alex Date: Fri, 1 Apr 2022 23:15:39 +0100 Subject: [PATCH 13/78] formatting --- packages/osc/osc.mjs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/osc/osc.mjs b/packages/osc/osc.mjs index 34169ed0d..bfa3cf963 100644 --- a/packages/osc/osc.mjs +++ b/packages/osc/osc.mjs @@ -12,7 +12,7 @@ Pattern.prototype.osc = function () { const onTrigger = (time, event) => { const keyvals = Object.entries(event.value).flat(); const ts = Math.floor(startTime + ((time + latency) * 1000)); - const message = new OSC.Message('/dirt/play',...keyvals); + const message = new OSC.Message('/dirt/play', ...keyvals); const bundle = new OSC.Bundle([message], ts); bundle.timestamp(ts); // workaround for https://github.com/adzialocha/osc-js/issues/60 comm.send(bundle); From 46b2e82b4301831c35375a6fe9c39abbf172c4ff Mon Sep 17 00:00:00 2001 From: alex Date: Fri, 1 Apr 2022 23:15:54 +0100 Subject: [PATCH 14/78] formatting --- packages/core/strudel.mjs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/core/strudel.mjs b/packages/core/strudel.mjs index d285fe76c..f6c4f7f91 100644 --- a/packages/core/strudel.mjs +++ b/packages/core/strudel.mjs @@ -780,7 +780,7 @@ class Pattern { // known as iter' in tidalcycles iterBack(times) { - return this.iter(times,true) + return this.iter(times, true) } _chunk(n, func, back = false) { From 89a7bd4e7d04622e18c192a206802758ca0b7025 Mon Sep 17 00:00:00 2001 From: alex Date: Fri, 1 Apr 2022 23:17:52 +0100 Subject: [PATCH 15/78] superdirt parameters --- packages/osc/superdirt.mjs | 23 +++++++++++++++++++++++ repl/src/App.js | 3 ++- 2 files changed, 25 insertions(+), 1 deletion(-) create mode 100644 packages/osc/superdirt.mjs diff --git a/packages/osc/superdirt.mjs b/packages/osc/superdirt.mjs new file mode 100644 index 000000000..956157814 --- /dev/null +++ b/packages/osc/superdirt.mjs @@ -0,0 +1,23 @@ +import { Pattern } from '@strudel.cycles/core/strudel.mjs'; + +const _name = (name, pat) => pat.withValue(x => ({ [name]: x })); + +export const s = pat => _name("s", pat); +Pattern.prototype.s = function (pat) { return (this.union(s(pat))) }; +export const snd = s; +Pattern.prototype.snd = Pattern.prototype.s; +export const sound = s; +Pattern.prototype.sound = Pattern.prototype.s; +export const n = pat => _name("n", pat); +Pattern.prototype.n = function (pat) { return (this.union(n(pat))) }; +export const num = n; +Pattern.prototype.num = Pattern.prototype.n; +export const number = n; +Pattern.prototype.number = Pattern.prototype.n; +export const room = pat => _name("room", pat); +Pattern.prototype.room = function (pat) { return (this.union(room(pat))) }; +export const size = pat => _name("size", pat); +Pattern.prototype.size = function (pat) { return (this.union(size(pat))) }; +export const speed = pat => _name("speed", pat); +Pattern.prototype.speed = function (pat) { return (this.union(speed(pat))) }; + diff --git a/repl/src/App.js b/repl/src/App.js index 4f522aeab..7f37b75fd 100644 --- a/repl/src/App.js +++ b/repl/src/App.js @@ -29,8 +29,9 @@ import '@strudel.cycles/core/euclid.mjs'; import '@strudel.cycles/tone/pianoroll.mjs'; import '@strudel.cycles/tone/draw.mjs'; import '@strudel.cycles/osc/osc.mjs'; +import * as superdirt from '@strudel.cycles/osc/superdirt.mjs'; -extend(Tone, strudel, strudel.Pattern.prototype.bootstrap(), toneHelpers, voicingHelpers, drawHelpers, uiHelpers, { +extend(Tone, strudel, superdirt, strudel.Pattern.prototype.bootstrap(), toneHelpers, voicingHelpers, drawHelpers, uiHelpers, { gist, euclid, mini, From e28a411408100a1e102b2ed2681ee1cd23a09dff Mon Sep 17 00:00:00 2001 From: alex Date: Sat, 2 Apr 2022 16:03:50 +0100 Subject: [PATCH 16/78] Make param args a sequence, remove some redundancy --- packages/osc/superdirt.mjs | 46 +++++++++++++++++++++++++------------- 1 file changed, 30 insertions(+), 16 deletions(-) diff --git a/packages/osc/superdirt.mjs b/packages/osc/superdirt.mjs index 956157814..5f9c6efdd 100644 --- a/packages/osc/superdirt.mjs +++ b/packages/osc/superdirt.mjs @@ -1,23 +1,37 @@ -import { Pattern } from '@strudel.cycles/core/strudel.mjs'; +import { Pattern, sequence } from '@strudel.cycles/core/strudel.mjs'; -const _name = (name, pat) => pat.withValue(x => ({ [name]: x })); +const _name = (name, ...pats) => sequence(...pats).withValue((x) => ({ [name]: x })); -export const s = pat => _name("s", pat); -Pattern.prototype.s = function (pat) { return (this.union(s(pat))) }; -export const snd = s; -Pattern.prototype.snd = Pattern.prototype.s; +const _unionise = (func) => + function (...pats) { + return this.union(func(...pats)); + }; + +export const s = (...pats) => _name('s', ...pats); +Pattern.prototype.s = _unionise(s); export const sound = s; Pattern.prototype.sound = Pattern.prototype.s; -export const n = pat => _name("n", pat); -Pattern.prototype.n = function (pat) { return (this.union(n(pat))) }; -export const num = n; -Pattern.prototype.num = Pattern.prototype.n; + +export const n = (pat) => _name('n', pat); +Pattern.prototype.n = _unionise(n); export const number = n; Pattern.prototype.number = Pattern.prototype.n; -export const room = pat => _name("room", pat); -Pattern.prototype.room = function (pat) { return (this.union(room(pat))) }; -export const size = pat => _name("size", pat); -Pattern.prototype.size = function (pat) { return (this.union(size(pat))) }; -export const speed = pat => _name("speed", pat); -Pattern.prototype.speed = function (pat) { return (this.union(speed(pat))) }; +export const room = (pat) => _name('room', pat); +Pattern.prototype.room = _unionise(room); + +export const size = (pat) => _name('size', pat); +Pattern.prototype.size = _unionise(size); + +export const speed = (pat) => _name('speed', pat); +Pattern.prototype.speed = _unionise(speed); + +export const squiz = (pat) => _name('squiz', pat); +Pattern.prototype.squiz = _unionise(squiz); + +// currently overwritten by tone package +export const gain = (pat) => _name('gain', pat); +Pattern.prototype.gain = _unionise(gain); + +export const vowel = (pat) => _name('vowel', pat); +Pattern.prototype.vowel = _unionise(vowel); \ No newline at end of file From acca363a4eae462c3606e335cb7891e85b1ff12b Mon Sep 17 00:00:00 2001 From: alex Date: Sat, 2 Apr 2022 16:06:42 +0100 Subject: [PATCH 17/78] move osc/superdirt to core/controls --- packages/osc/superdirt.mjs | 37 ------------------------------------- repl/src/App.js | 4 ++-- 2 files changed, 2 insertions(+), 39 deletions(-) delete mode 100644 packages/osc/superdirt.mjs diff --git a/packages/osc/superdirt.mjs b/packages/osc/superdirt.mjs deleted file mode 100644 index 5f9c6efdd..000000000 --- a/packages/osc/superdirt.mjs +++ /dev/null @@ -1,37 +0,0 @@ -import { Pattern, sequence } from '@strudel.cycles/core/strudel.mjs'; - -const _name = (name, ...pats) => sequence(...pats).withValue((x) => ({ [name]: x })); - -const _unionise = (func) => - function (...pats) { - return this.union(func(...pats)); - }; - -export const s = (...pats) => _name('s', ...pats); -Pattern.prototype.s = _unionise(s); -export const sound = s; -Pattern.prototype.sound = Pattern.prototype.s; - -export const n = (pat) => _name('n', pat); -Pattern.prototype.n = _unionise(n); -export const number = n; -Pattern.prototype.number = Pattern.prototype.n; - -export const room = (pat) => _name('room', pat); -Pattern.prototype.room = _unionise(room); - -export const size = (pat) => _name('size', pat); -Pattern.prototype.size = _unionise(size); - -export const speed = (pat) => _name('speed', pat); -Pattern.prototype.speed = _unionise(speed); - -export const squiz = (pat) => _name('squiz', pat); -Pattern.prototype.squiz = _unionise(squiz); - -// currently overwritten by tone package -export const gain = (pat) => _name('gain', pat); -Pattern.prototype.gain = _unionise(gain); - -export const vowel = (pat) => _name('vowel', pat); -Pattern.prototype.vowel = _unionise(vowel); \ No newline at end of file diff --git a/repl/src/App.js b/repl/src/App.js index 7f37b75fd..df74aed5a 100644 --- a/repl/src/App.js +++ b/repl/src/App.js @@ -29,9 +29,9 @@ import '@strudel.cycles/core/euclid.mjs'; import '@strudel.cycles/tone/pianoroll.mjs'; import '@strudel.cycles/tone/draw.mjs'; import '@strudel.cycles/osc/osc.mjs'; -import * as superdirt from '@strudel.cycles/osc/superdirt.mjs'; +import * as controls from '@strudel.cycles/core/controls.mjs'; -extend(Tone, strudel, superdirt, strudel.Pattern.prototype.bootstrap(), toneHelpers, voicingHelpers, drawHelpers, uiHelpers, { +extend(Tone, strudel, strudel.Pattern.prototype.bootstrap(), controls, toneHelpers, voicingHelpers, drawHelpers, uiHelpers, { gist, euclid, mini, From 64ea9b7c8ba1d3dbf626e90db7ab3eb8ac68de3e Mon Sep 17 00:00:00 2001 From: alex Date: Sat, 2 Apr 2022 17:32:36 +0100 Subject: [PATCH 18/78] controls (renamed from packages/osc/superdirt.mjs --- packages/core/controls.mjs | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 packages/core/controls.mjs diff --git a/packages/core/controls.mjs b/packages/core/controls.mjs new file mode 100644 index 000000000..5f9c6efdd --- /dev/null +++ b/packages/core/controls.mjs @@ -0,0 +1,37 @@ +import { Pattern, sequence } from '@strudel.cycles/core/strudel.mjs'; + +const _name = (name, ...pats) => sequence(...pats).withValue((x) => ({ [name]: x })); + +const _unionise = (func) => + function (...pats) { + return this.union(func(...pats)); + }; + +export const s = (...pats) => _name('s', ...pats); +Pattern.prototype.s = _unionise(s); +export const sound = s; +Pattern.prototype.sound = Pattern.prototype.s; + +export const n = (pat) => _name('n', pat); +Pattern.prototype.n = _unionise(n); +export const number = n; +Pattern.prototype.number = Pattern.prototype.n; + +export const room = (pat) => _name('room', pat); +Pattern.prototype.room = _unionise(room); + +export const size = (pat) => _name('size', pat); +Pattern.prototype.size = _unionise(size); + +export const speed = (pat) => _name('speed', pat); +Pattern.prototype.speed = _unionise(speed); + +export const squiz = (pat) => _name('squiz', pat); +Pattern.prototype.squiz = _unionise(squiz); + +// currently overwritten by tone package +export const gain = (pat) => _name('gain', pat); +Pattern.prototype.gain = _unionise(gain); + +export const vowel = (pat) => _name('vowel', pat); +Pattern.prototype.vowel = _unionise(vowel); \ No newline at end of file From 1fb1d15d4c14e6397a34684c703a9e1e15d602d7 Mon Sep 17 00:00:00 2001 From: alex Date: Sat, 2 Apr 2022 18:38:20 +0100 Subject: [PATCH 19/78] add all the superdirt controls --- packages/core/controls.mjs | 557 +++++++++++++++++++++++++++++++++++-- 1 file changed, 532 insertions(+), 25 deletions(-) diff --git a/packages/core/controls.mjs b/packages/core/controls.mjs index 5f9c6efdd..a4587f0b7 100644 --- a/packages/core/controls.mjs +++ b/packages/core/controls.mjs @@ -1,5 +1,278 @@ import { Pattern, sequence } from '@strudel.cycles/core/strudel.mjs'; +const controls = {}; +const generic_params = [ + ['s', 's', 'sound'], + //['s', 'toArg', 'for internal sound routing'], + // ["f", "from", "for internal sound routing"), + //['f', 'to', 'for internal sound routing'], + ['f', 'accelerate', 'a pattern of numbers that speed up (or slow down) samples while they play.'], + ['f', 'amp', 'like @gain@, but linear.'], + [ + 'f', + 'attack', + 'a pattern of numbers to specify the attack time (in seconds) of an envelope applied to each sample.', + ], + ['f', 'bandf', 'a pattern of numbers from 0 to 1. Sets the center frequency of the band-pass filter.'], + ['f', 'bandq', 'a pattern of anumbers from 0 to 1. Sets the q-factor of the band-pass filter.'], + [ + 'f', + 'begin', + 'a pattern of numbers from 0 to 1. Skips the beginning of each sample, e.g. `0.25` to cut off the first quarter from each sample.', + ], + ['f', 'legato', 'controls the amount of overlap between two adjacent sounds'], + // ['f', 'clhatdecay', ''], + [ + 'f', + 'crush', + 'bit crushing, a pattern of numbers from 1 (for drastic reduction in bit-depth) to 16 (for barely no reduction).', + ], + [ + 'f', + 'coarse', + 'fake-resampling, a pattern of numbers for lowering the sample rate, i.e. 1 for original 2 for half, 3 for a third and so on.', + ], + ['i', 'channel', 'choose the channel the pattern is sent to in superdirt'], + [ + 'i', + 'cut', + 'In the style of classic drum-machines, `cut` will stop a playing sample as soon as another samples with in same cutgroup is to be played. An example would be an open hi-hat followed by a closed one, essentially muting the open.', + ], + ['f', 'cutoff', 'a pattern of numbers from 0 to 1. Applies the cutoff frequency of the low-pass filter.'], + // ['f', 'cutoffegint', ''], + ['f', 'decay', ''], + ['f', 'delay', 'a pattern of numbers from 0 to 1. Sets the level of the delay signal.'], + ['f', 'delayfeedback', 'a pattern of numbers from 0 to 1. Sets the amount of delay feedback.'], + ['f', 'delaytime', 'a pattern of numbers from 0 to 1. Sets the length of the delay.'], + ['f', 'detune', ''], + ['f', 'djf', 'DJ filter, below 0.5 is low pass filter, above is high pass filter.'], + [ + 'f', + 'dry', + 'when set to `1` will disable all reverb for this pattern. See `room` and `size` for more information about reverb.', + ], + [ + 'f', + 'end', + 'the same as `begin`, but cuts the end off samples, shortening them; e.g. `0.75` to cut off the last quarter of each sample.', + ], + [ + 'f', + 'fadeTime', + "Used when using begin/end or chop/striate and friends, to change the fade out time of the 'grain' envelope.", + ], + [ + 'f', + 'fadeInTime', + 'As with fadeTime, but controls the fade in time of the grain envelope. Not used if the grain begins at position 0 in the sample.', + ], + ['f', 'freq', ''], + [ + 'f', + 'gain', + 'a pattern of numbers that specify volume. Values less than 1 make the sound quieter. Values greater than 1 make the sound louder. For the linear equivalent, see @amp@.', + ], + ['f', 'gate', ''], + // ['f', 'hatgrain', ''], + [ + 'f', + 'hcutoff', + 'a pattern of numbers from 0 to 1. Applies the cutoff frequency of the high-pass filter. Also has alias @hpf@', + ], + [ + 'f', + 'hold', + 'a pattern of numbers to specify the hold time (in seconds) of an envelope applied to each sample. Only takes effect if `attack` and `release` are also specified.', + ], + [ + 'f', + 'hresonance', + 'a pattern of numbers from 0 to 1. Applies the resonance of the high-pass filter. Has alias @hpq@', + ], + // ['f', 'lagogo', ''], + // ['f', 'lclap', ''], + // ['f', 'lclaves', ''], + // ['f', 'lclhat', ''], + // ['f', 'lcrash', ''], + ['f', 'leslie', ''], + ['f', 'lrate', ''], + ['f', 'lsize', ''], + // ['f', 'lfo', ''], + // ['f', 'lfocutoffint', ''], + // ['f', 'lfodelay', ''], + // ['f', 'lfoint', ''], + // ['f', 'lfopitchint', ''], + // ['f', 'lfoshape', ''], + // ['f', 'lfosync', ''], + // ['f', 'lhitom', ''], + // ['f', 'lkick', ''], + // ['f', 'llotom', ''], + [ + 'f', + 'lock', + 'A pattern of numbers. Specifies whether delaytime is calculated relative to cps. When set to 1, delaytime is a direct multiple of a cycle.', + ], + ['f', 'loop', 'loops the sample (from `begin` to `end`) the specified number of times.'], + // ['f', 'lophat', ''], + // ['f', 'lsnare', ''], + ['f', 'n', 'The note or sample number to choose for a synth or sampleset'], + ['f', 'note', 'The note or pitch to play a sound or synth with'], + ['f', 'degree', ''], + ['f', 'mtranspose', ''], + ['f', 'ctranspose', ''], + ['f', 'harmonic', ''], + ['f', 'stepsPerOctave', ''], + ['f', 'octaveR', ''], + [ + 'f', + 'nudge', + 'Nudges events into the future by the specified number of seconds. Negative numbers work up to a point as well (due to internal latency)', + ], + ['i', 'octave', ''], + ['f', 'offset', ''], + // ['f', 'ophatdecay', ''], + [ + 'i', + 'orbit', + 'a pattern of numbers. An `orbit` is a global parameter context for patterns. Patterns with the same orbit will share hardware output bus offset and global effects, e.g. reverb and delay. The maximum number of orbits is specified in the superdirt startup, numbers higher than maximum will wrap around.', + ], + ['f', 'overgain', ''], + ['f', 'overshape', ''], + [ + 'f', + 'pan', + 'a pattern of numbers between 0 and 1, from left to right (assuming stereo), once round a circle (assuming multichannel)', + ], + [ + 'f', + 'panspan', + 'a pattern of numbers between -inf and inf, which controls how much multichannel output is fanned out (negative is backwards ordering)', + ], + [ + 'f', + 'pansplay', + 'a pattern of numbers between 0.0 and 1.0, which controls the multichannel spread range (multichannel only)', + ], + [ + 'f', + 'panwidth', + 'a pattern of numbers between 0.0 and inf, which controls how much each channel is distributed over neighbours (multichannel only)', + ], + [ + 'f', + 'panorient', + 'a pattern of numbers between -1.0 and 1.0, which controls the relative position of the centre pan in a pair of adjacent speakers (multichannel only)', + ], + // ['f', 'pitch1', ''], + // ['f', 'pitch2', ''], + // ['f', 'pitch3', ''], + // ['f', 'portamento', ''], + ['f', 'rate', "used in SuperDirt softsynths as a control rate or 'speed'"], + [ + 'f', + 'release', + 'a pattern of numbers to specify the release time (in seconds) of an envelope applied to each sample.', + ], + ['f', 'resonance', 'a pattern of numbers from 0 to 1. Specifies the resonance of the low-pass filter.'], + ['f', 'room', 'a pattern of numbers from 0 to 1. Sets the level of reverb.'], + // ['f', 'sagogo', ''], + // ['f', 'sclap', ''], + // ['f', 'sclaves', ''], + // ['f', 'scrash', ''], + ['f', 'semitone', ''], + [ + 'f', + 'shape', + 'wave shaping distortion, a pattern of numbers from 0 for no distortion up to 1 for loads of distortion.', + ], + [ + 'f', + 'size', + 'a pattern of numbers from 0 to 1. Sets the perceptual size (reverb time) of the `room` to be used in reverb.', + ], + ['f', 'slide', ''], + [ + 'f', + 'speed', + 'a pattern of numbers which changes the speed of sample playback, i.e. a cheap way of changing pitch. Negative values will play the sample backwards!', + ], + ['f', 'squiz', ''], + ['f', 'stutterdepth', ''], + ['f', 'stuttertime', ''], + ['f', 'sustain', ''], + ['f', 'timescale', ''], + ['f', 'timescalewin', ''], + // ['f', 'tomdecay', ''], + [ + 's', + 'unit', + 'used in conjunction with `speed`, accepts values of "r" (rate, default behavior), "c" (cycles), or "s" (seconds). Using `unit "c"` means `speed` will be interpreted in units of cycles, e.g. `speed "1"` means samples will be stretched to fill a cycle. Using `unit "s"` means the playback speed will be adjusted so that the duration is the number of seconds specified by `speed`.', + ], + ['f', 'velocity', ''], + // ['f', 'vcfegint', ''], + // ['f', 'vcoegint', ''], + ['f', 'voice', ''], + [ + 's', + 'vowel', + 'formant filter to make things sound like vowels, a pattern of either `a`, `e`, `i`, `o` or `u`. Use a rest (`~`) for no effect.', + ], + ['f', 'waveloss', ''], + ['f', 'dur', ''], + // ['f', 'modwheel', ''], + ['f', 'expression', ''], + ['f', 'sustainpedal', ''], + ['f', 'tremolodepth', "Tremolo Audio DSP effect | params are 'tremolorate' and 'tremolodepth'"], + ['f', 'tremolorate', "Tremolo Audio DSP effect | params are 'tremolorate' and 'tremolodepth'"], + ['f', 'phaserdepth', "Phaser Audio DSP effect | params are 'phaserrate' and 'phaserdepth'"], + ['f', 'phaserrate', "Phaser Audio DSP effect | params are 'phaserrate' and 'phaserdepth'"], + ['f', 'fshift', 'frequency shifter'], + ['f', 'fshiftnote', 'frequency shifter'], + ['f', 'fshiftphase', 'frequency shifter'], + ['f', 'triode', 'tube distortion'], + ['f', 'krush', 'shape/bass enhancer'], + ['f', 'kcutoff', ''], + ['f', 'octer', 'octaver effect'], + ['f', 'octersub', 'octaver effect'], + ['f', 'octersubsub', 'octaver effect'], + ['f', 'ring', 'ring modulation'], + ['f', 'ringf', 'ring modulation'], + ['f', 'ringdf', 'ring modulation'], + ['f', 'distort', 'noisy fuzzy distortion'], + ['f', 'freeze', 'Spectral freeze'], + ['f', 'xsdelay', ''], + ['f', 'tsdelay', ''], + ['f', 'real', 'Spectral conform'], + ['f', 'imag', ''], + ['f', 'enhance', 'Spectral enhance'], + ['f', 'partials', ''], + ['f', 'comb', 'Spectral comb'], + ['f', 'smear', 'Spectral smear'], + ['f', 'scram', 'Spectral scramble'], + ['f', 'binshift', 'Spectral binshift'], + ['f', 'hbrick', 'High pass sort of spectral filter'], + ['f', 'lbrick', 'Low pass sort of spectral filter'], + ['f', 'midichan', ''], + ['f', 'control', ''], + ['f', 'ccn', ''], + ['f', 'ccv', ''], + ['f', 'polyTouch', ''], + ['f', 'midibend', ''], + ['f', 'miditouch', ''], + ['f', 'ctlNum', ''], + ['f', 'frameRate', ''], + ['f', 'frames', ''], + ['f', 'hours', ''], + ['s', 'midicmd', ''], + ['f', 'minutes', ''], + ['f', 'progNum', ''], + ['f', 'seconds', ''], + ['f', 'songPtr', ''], + ['f', 'uid', ''], + ['f', 'val', ''], + ['f', 'cps', ''], +]; + const _name = (name, ...pats) => sequence(...pats).withValue((x) => ({ [name]: x })); const _unionise = (func) => @@ -7,31 +280,265 @@ const _unionise = (func) => return this.union(func(...pats)); }; -export const s = (...pats) => _name('s', ...pats); -Pattern.prototype.s = _unionise(s); -export const sound = s; -Pattern.prototype.sound = Pattern.prototype.s; +generic_params.forEach(([type, name, description]) => { + controls[name] = (...pats) => _name(name, ...pats); + Pattern.prototype[name] = _unionise(controls[name]); +}); -export const n = (pat) => _name('n', pat); -Pattern.prototype.n = _unionise(n); -export const number = n; -Pattern.prototype.number = Pattern.prototype.n; +console.log(Object.keys(controls).sort().join(', ')); -export const room = (pat) => _name('room', pat); -Pattern.prototype.room = _unionise(room); +const { + accelerate, + amp, + attack, + bandf, + bandq, + begin, + binshift, + ccn, + ccv, + channel, + coarse, + comb, + control, + cps, + crush, + ctlNum, + ctranspose, + cut, + cutoff, + decay, + degree, + delay, + delayfeedback, + delaytime, + detune, + distort, + djf, + dry, + dur, + end, + enhance, + expression, + fadeInTime, + fadeTime, + frameRate, + frames, + freeze, + freq, + fshift, + fshiftnote, + fshiftphase, + gain, + gate, + harmonic, + hbrick, + hcutoff, + hold, + hours, + hresonance, + imag, + kcutoff, + krush, + lbrick, + legato, + leslie, + lock, + loop, + lrate, + lsize, + midibend, + midichan, + midicmd, + miditouch, + minutes, + mtranspose, + n, + note, + nudge, + octave, + octaveR, + octer, + octersub, + octersubsub, + offset, + orbit, + overgain, + overshape, + pan, + panorient, + panspan, + pansplay, + panwidth, + partials, + phaserdepth, + phaserrate, + polyTouch, + progNum, + rate, + real, + release, + resonance, + ring, + ringdf, + ringf, + room, + s, + scram, + seconds, + semitone, + shape, + size, + slide, + smear, + songPtr, + speed, + squiz, + stepsPerOctave, + stutterdepth, + stuttertime, + sustain, + sustainpedal, + timescale, + timescalewin, + tremolodepth, + tremolorate, + triode, + tsdelay, + uid, + unit, + val, + velocity, + voice, + vowel, + waveloss, + xsdelay, +} = controls; -export const size = (pat) => _name('size', pat); -Pattern.prototype.size = _unionise(size); - -export const speed = (pat) => _name('speed', pat); -Pattern.prototype.speed = _unionise(speed); - -export const squiz = (pat) => _name('squiz', pat); -Pattern.prototype.squiz = _unionise(squiz); - -// currently overwritten by tone package -export const gain = (pat) => _name('gain', pat); -Pattern.prototype.gain = _unionise(gain); - -export const vowel = (pat) => _name('vowel', pat); -Pattern.prototype.vowel = _unionise(vowel); \ No newline at end of file +export { + accelerate, + amp, + attack, + bandf, + bandq, + begin, + binshift, + ccn, + ccv, + channel, + coarse, + comb, + control, + cps, + crush, + ctlNum, + ctranspose, + cut, + cutoff, + decay, + degree, + delay, + delayfeedback, + delaytime, + detune, + distort, + djf, + dry, + dur, + end, + enhance, + expression, + fadeInTime, + fadeTime, + frameRate, + frames, + freeze, + freq, + fshift, + fshiftnote, + fshiftphase, + gain, + gate, + harmonic, + hbrick, + hcutoff, + hold, + hours, + hresonance, + imag, + kcutoff, + krush, + lbrick, + legato, + leslie, + lock, + loop, + lrate, + lsize, + midibend, + midichan, + midicmd, + miditouch, + minutes, + mtranspose, + n, + note, + nudge, + octave, + octaveR, + octer, + octersub, + octersubsub, + offset, + orbit, + overgain, + overshape, + pan, + panorient, + panspan, + pansplay, + panwidth, + partials, + phaserdepth, + phaserrate, + polyTouch, + progNum, + rate, + real, + release, + resonance, + ring, + ringdf, + ringf, + room, + s, + scram, + seconds, + semitone, + shape, + size, + slide, + smear, + songPtr, + speed, + squiz, + stepsPerOctave, + stutterdepth, + stuttertime, + sustain, + sustainpedal, + timescale, + timescalewin, + tremolodepth, + tremolorate, + triode, + tsdelay, + uid, + unit, + val, + velocity, + voice, + vowel, + waveloss, + xsdelay, +}; \ No newline at end of file From 7bbac0ed23887c8c8671e224349a1a7f6cad60ee Mon Sep 17 00:00:00 2001 From: alex Date: Sat, 2 Apr 2022 18:40:27 +0100 Subject: [PATCH 20/78] newline --- packages/core/controls.mjs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/core/controls.mjs b/packages/core/controls.mjs index a4587f0b7..093fcf0ff 100644 --- a/packages/core/controls.mjs +++ b/packages/core/controls.mjs @@ -541,4 +541,4 @@ export { vowel, waveloss, xsdelay, -}; \ No newline at end of file +}; From c3b15fffa4bc560a26b0169a0ab2a69cd277ea6f Mon Sep 17 00:00:00 2001 From: alex Date: Sat, 2 Apr 2022 18:48:30 +0100 Subject: [PATCH 21/78] remove duplication --- packages/core/controls.mjs | 258 +------------------------------------ repl/src/App.js | 2 +- 2 files changed, 2 insertions(+), 258 deletions(-) diff --git a/packages/core/controls.mjs b/packages/core/controls.mjs index 093fcf0ff..5ae19da68 100644 --- a/packages/core/controls.mjs +++ b/packages/core/controls.mjs @@ -285,260 +285,4 @@ generic_params.forEach(([type, name, description]) => { Pattern.prototype[name] = _unionise(controls[name]); }); -console.log(Object.keys(controls).sort().join(', ')); - -const { - accelerate, - amp, - attack, - bandf, - bandq, - begin, - binshift, - ccn, - ccv, - channel, - coarse, - comb, - control, - cps, - crush, - ctlNum, - ctranspose, - cut, - cutoff, - decay, - degree, - delay, - delayfeedback, - delaytime, - detune, - distort, - djf, - dry, - dur, - end, - enhance, - expression, - fadeInTime, - fadeTime, - frameRate, - frames, - freeze, - freq, - fshift, - fshiftnote, - fshiftphase, - gain, - gate, - harmonic, - hbrick, - hcutoff, - hold, - hours, - hresonance, - imag, - kcutoff, - krush, - lbrick, - legato, - leslie, - lock, - loop, - lrate, - lsize, - midibend, - midichan, - midicmd, - miditouch, - minutes, - mtranspose, - n, - note, - nudge, - octave, - octaveR, - octer, - octersub, - octersubsub, - offset, - orbit, - overgain, - overshape, - pan, - panorient, - panspan, - pansplay, - panwidth, - partials, - phaserdepth, - phaserrate, - polyTouch, - progNum, - rate, - real, - release, - resonance, - ring, - ringdf, - ringf, - room, - s, - scram, - seconds, - semitone, - shape, - size, - slide, - smear, - songPtr, - speed, - squiz, - stepsPerOctave, - stutterdepth, - stuttertime, - sustain, - sustainpedal, - timescale, - timescalewin, - tremolodepth, - tremolorate, - triode, - tsdelay, - uid, - unit, - val, - velocity, - voice, - vowel, - waveloss, - xsdelay, -} = controls; - -export { - accelerate, - amp, - attack, - bandf, - bandq, - begin, - binshift, - ccn, - ccv, - channel, - coarse, - comb, - control, - cps, - crush, - ctlNum, - ctranspose, - cut, - cutoff, - decay, - degree, - delay, - delayfeedback, - delaytime, - detune, - distort, - djf, - dry, - dur, - end, - enhance, - expression, - fadeInTime, - fadeTime, - frameRate, - frames, - freeze, - freq, - fshift, - fshiftnote, - fshiftphase, - gain, - gate, - harmonic, - hbrick, - hcutoff, - hold, - hours, - hresonance, - imag, - kcutoff, - krush, - lbrick, - legato, - leslie, - lock, - loop, - lrate, - lsize, - midibend, - midichan, - midicmd, - miditouch, - minutes, - mtranspose, - n, - note, - nudge, - octave, - octaveR, - octer, - octersub, - octersubsub, - offset, - orbit, - overgain, - overshape, - pan, - panorient, - panspan, - pansplay, - panwidth, - partials, - phaserdepth, - phaserrate, - polyTouch, - progNum, - rate, - real, - release, - resonance, - ring, - ringdf, - ringf, - room, - s, - scram, - seconds, - semitone, - shape, - size, - slide, - smear, - songPtr, - speed, - squiz, - stepsPerOctave, - stutterdepth, - stuttertime, - sustain, - sustainpedal, - timescale, - timescalewin, - tremolodepth, - tremolorate, - triode, - tsdelay, - uid, - unit, - val, - velocity, - voice, - vowel, - waveloss, - xsdelay, -}; +export default controls; diff --git a/repl/src/App.js b/repl/src/App.js index df74aed5a..e3fe8f705 100644 --- a/repl/src/App.js +++ b/repl/src/App.js @@ -29,7 +29,7 @@ import '@strudel.cycles/core/euclid.mjs'; import '@strudel.cycles/tone/pianoroll.mjs'; import '@strudel.cycles/tone/draw.mjs'; import '@strudel.cycles/osc/osc.mjs'; -import * as controls from '@strudel.cycles/core/controls.mjs'; +import controls from '@strudel.cycles/core/controls.mjs'; extend(Tone, strudel, strudel.Pattern.prototype.bootstrap(), controls, toneHelpers, voicingHelpers, drawHelpers, uiHelpers, { gist, From 86b1e992a158a56d8fa03aef0f6c2407c803015b Mon Sep 17 00:00:00 2001 From: Felix Roos Date: Sat, 2 Apr 2022 21:46:56 +0200 Subject: [PATCH 22/78] fix absolute time --- packages/osc/osc.mjs | 8 +++----- repl/src/useCycle.mjs | 9 +++++++-- repl/src/useRepl.mjs | 4 ++-- 3 files changed, 12 insertions(+), 9 deletions(-) diff --git a/packages/osc/osc.mjs b/packages/osc/osc.mjs index bfa3cf963..3baefb0fe 100644 --- a/packages/osc/osc.mjs +++ b/packages/osc/osc.mjs @@ -1,17 +1,15 @@ import OSC from './node_modules/osc-js/lib/osc.js'; -import { Pattern, isPattern } from '@strudel.cycles/core/strudel.mjs'; +import { Pattern } from '@strudel.cycles/core/strudel.mjs'; const comm = new OSC(); comm.open(); -// TODO - get startTime from scheduler -const startTime = Date.now(); const latency = 0.1; Pattern.prototype.osc = function () { return this._withEvent((event) => { - const onTrigger = (time, event) => { + const onTrigger = (time, event, startedAt) => { const keyvals = Object.entries(event.value).flat(); - const ts = Math.floor(startTime + ((time + latency) * 1000)); + const ts = Math.floor(startedAt + (time + latency) * 1000); const message = new OSC.Message('/dirt/play', ...keyvals); const bundle = new OSC.Bundle([message], ts); bundle.timestamp(ts); // workaround for https://github.com/adzialocha/osc-js/issues/60 diff --git a/repl/src/useCycle.mjs b/repl/src/useCycle.mjs index 199ffb592..9c5f16c44 100644 --- a/repl/src/useCycle.mjs +++ b/repl/src/useCycle.mjs @@ -10,6 +10,8 @@ import { State, TimeSpan } from '@strudel.cycles/core'; ready?: boolean; // if false, query will not be called on change props } */ +export let startedAt; + // function useCycle(props: UseCycleProps) { function useCycle(props) { // onX must use useCallback! @@ -42,7 +44,7 @@ function useCycle(props) { ?.filter((event) => event.part.begin.equals(event.whole.begin)) .forEach((event) => { Tone.getTransport().schedule((time) => { - onEvent(time, event); + onEvent(time, event, startedAt); Tone.Draw.schedule(() => { // do drawing or DOM manipulation here onDraw?.(time, event); @@ -57,7 +59,10 @@ function useCycle(props) { const start = async () => { setStarted(true); - await Tone.start(); + if (!startedAt) { + await Tone.start(); + startedAt = Date.now() - Tone.getContext().currentTime * 1000; + } Tone.getTransport().start('+0.1'); }; const stop = () => { diff --git a/repl/src/useRepl.mjs b/repl/src/useRepl.mjs index f1a3dcde5..ce823f9b8 100644 --- a/repl/src/useRepl.mjs +++ b/repl/src/useRepl.mjs @@ -27,7 +27,7 @@ function useRepl({ tune, defaultSynth, autolink = true, onEvent, onDraw }) { const cycle = useCycle({ onDraw, onEvent: useCallback( - (time, event) => { + (time, event, startedAt) => { try { onEvent?.(event); const { onTrigger, velocity } = event.context; @@ -41,7 +41,7 @@ function useRepl({ tune, defaultSynth, autolink = true, onEvent, onDraw }) { /* console.warn('no instrument chosen', event); throw new Error(`no instrument chosen for ${JSON.stringify(event)}`); */ } else { - onTrigger(time, event); + onTrigger(time, event, startedAt); } } catch (err) { console.warn(err); From 0c726d835df70fcbaf71ffca07a3c0cf816050a3 Mon Sep 17 00:00:00 2001 From: Felix Roos Date: Sat, 2 Apr 2022 22:40:35 +0200 Subject: [PATCH 23/78] fix keybindings on safari --- repl/src/App.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/repl/src/App.js b/repl/src/App.js index e3fe8f705..0a928ce0e 100644 --- a/repl/src/App.js +++ b/repl/src/App.js @@ -77,8 +77,10 @@ function App() { if (e.ctrlKey || e.altKey) { if (e.code === 'Enter') { await activateCode(); + e.preventDefault(); } else if (e.code === 'Period') { cycle.stop(); + e.preventDefault(); } } }; From c8e9fe519f5c22a83b89cba49cb7cee4b8cd02b0 Mon Sep 17 00:00:00 2001 From: Felix Roos Date: Sat, 2 Apr 2022 22:41:04 +0200 Subject: [PATCH 24/78] osc timing now hopefully works everywhere --- packages/osc/osc.mjs | 7 +++++-- repl/src/useCycle.mjs | 9 ++------- repl/src/useRepl.mjs | 4 ++-- 3 files changed, 9 insertions(+), 11 deletions(-) diff --git a/packages/osc/osc.mjs b/packages/osc/osc.mjs index 3baefb0fe..932e803d2 100644 --- a/packages/osc/osc.mjs +++ b/packages/osc/osc.mjs @@ -7,9 +7,12 @@ const latency = 0.1; Pattern.prototype.osc = function () { return this._withEvent((event) => { - const onTrigger = (time, event, startedAt) => { + const onTrigger = (time, event, currentTime) => { + // time should be audio time of onset + // currentTime should be current time of audio context (slightly before time) const keyvals = Object.entries(event.value).flat(); - const ts = Math.floor(startedAt + (time + latency) * 1000); + const offset = (time - currentTime + latency) * 1000; + const ts = Math.floor(Date.now() + offset); const message = new OSC.Message('/dirt/play', ...keyvals); const bundle = new OSC.Bundle([message], ts); bundle.timestamp(ts); // workaround for https://github.com/adzialocha/osc-js/issues/60 diff --git a/repl/src/useCycle.mjs b/repl/src/useCycle.mjs index 9c5f16c44..908193f9b 100644 --- a/repl/src/useCycle.mjs +++ b/repl/src/useCycle.mjs @@ -10,8 +10,6 @@ import { State, TimeSpan } from '@strudel.cycles/core'; ready?: boolean; // if false, query will not be called on change props } */ -export let startedAt; - // function useCycle(props: UseCycleProps) { function useCycle(props) { // onX must use useCallback! @@ -44,7 +42,7 @@ function useCycle(props) { ?.filter((event) => event.part.begin.equals(event.whole.begin)) .forEach((event) => { Tone.getTransport().schedule((time) => { - onEvent(time, event, startedAt); + onEvent(time, event, Tone.getContext().currentTime); Tone.Draw.schedule(() => { // do drawing or DOM manipulation here onDraw?.(time, event); @@ -59,10 +57,7 @@ function useCycle(props) { const start = async () => { setStarted(true); - if (!startedAt) { - await Tone.start(); - startedAt = Date.now() - Tone.getContext().currentTime * 1000; - } + await Tone.start(); Tone.getTransport().start('+0.1'); }; const stop = () => { diff --git a/repl/src/useRepl.mjs b/repl/src/useRepl.mjs index ce823f9b8..061cd2f3d 100644 --- a/repl/src/useRepl.mjs +++ b/repl/src/useRepl.mjs @@ -27,7 +27,7 @@ function useRepl({ tune, defaultSynth, autolink = true, onEvent, onDraw }) { const cycle = useCycle({ onDraw, onEvent: useCallback( - (time, event, startedAt) => { + (time, event, currentTime) => { try { onEvent?.(event); const { onTrigger, velocity } = event.context; @@ -41,7 +41,7 @@ function useRepl({ tune, defaultSynth, autolink = true, onEvent, onDraw }) { /* console.warn('no instrument chosen', event); throw new Error(`no instrument chosen for ${JSON.stringify(event)}`); */ } else { - onTrigger(time, event, startedAt); + onTrigger(time, event, currentTime); } } catch (err) { console.warn(err); From a242c0654b598a131e714e428ba1f1a7c0551afe Mon Sep 17 00:00:00 2001 From: Felix Roos Date: Tue, 5 Apr 2022 23:40:21 +0200 Subject: [PATCH 25/78] dont create defaultSynth on start --- packages/tone/tone.mjs | 17 ++++++++++------- repl/src/App.js | 3 ++- repl/src/static.mjs | 4 +++- 3 files changed, 15 insertions(+), 9 deletions(-) diff --git a/packages/tone/tone.mjs b/packages/tone/tone.mjs index 34d19dc48..5ad55edc0 100644 --- a/packages/tone/tone.mjs +++ b/packages/tone/tone.mjs @@ -30,13 +30,16 @@ import { getPlayableNoteValue } from '@strudel.cycles/core/util.mjs'; // "balanced" | "interactive" | "playback"; // Tone.setContext(new Tone.Context({ latencyHint: 'playback', lookAhead: 1 })); -export const defaultSynth = new PolySynth().chain(new Gain(0.5), getDestination()); -defaultSynth.set({ - oscillator: { type: 'triangle' }, - envelope: { - release: 0.01, - }, -}); +export const getDefaultSynth = () => { + const s = new PolySynth().chain(new Gain(0.5), getDestination()); + s.set({ + oscillator: { type: 'triangle' }, + envelope: { + release: 0.01, + }, + }); + return s; +}; // what about // https://www.charlie-roberts.com/gibberish/playground/ diff --git a/repl/src/App.js b/repl/src/App.js index 4b5ffc83c..71307f558 100644 --- a/repl/src/App.js +++ b/repl/src/App.js @@ -3,7 +3,7 @@ import CodeMirror, { markEvent, markParens } from './CodeMirror'; import cx from './cx'; import logo from './logo.svg'; import playStatic from './static.mjs'; -import { defaultSynth } from '@strudel.cycles/tone'; +import { getDefaultSynth } from '@strudel.cycles/tone'; import * as tunes from './tunes.mjs'; import useRepl from './useRepl.mjs'; import { useWebMidi } from './useWebMidi'; @@ -52,6 +52,7 @@ function getRandomTune() { } const randomTune = getRandomTune(); +const defaultSynth = getDefaultSynth(); function App() { const [editor, setEditor] = useState(); diff --git a/repl/src/static.mjs b/repl/src/static.mjs index dc0d76e23..0fc705375 100644 --- a/repl/src/static.mjs +++ b/repl/src/static.mjs @@ -2,7 +2,9 @@ import { Tone } from '@strudel.cycles/tone'; import { State, TimeSpan } from '@strudel.cycles/core'; import { getPlayableNoteValue } from '@strudel.cycles/core/util.mjs'; import { evaluate } from '@strudel.cycles/eval'; -import { defaultSynth } from '@strudel.cycles/tone'; +import { getDefaultSynth } from '@strudel.cycles/tone'; + +const defaultSynth = getDefaultSynth(); // this is a test to play back events with as less runtime code as possible.. // the code asks for the number of seconds to prequery From f43ecf1a856ba7655de4a0a5c6c5c725d818adba Mon Sep 17 00:00:00 2001 From: Felix Roos Date: Tue, 5 Apr 2022 23:41:10 +0200 Subject: [PATCH 26/78] fix readme instructions --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 094856548..fb0ab91f6 100644 --- a/README.md +++ b/README.md @@ -25,7 +25,7 @@ npm run start To publish, just run: ```sh -npx lerna version +npx lerna publish ``` This will publish all packages that changed since the last version. From 80393bf765f6ee0b90ee27026a189c17037ed477 Mon Sep 17 00:00:00 2001 From: Felix Roos Date: Tue, 5 Apr 2022 23:44:40 +0200 Subject: [PATCH 27/78] Publish - @strudel.cycles/core@0.0.3 - @strudel.cycles/eval@0.0.3 - @strudel.cycles/midi@0.0.4 - @strudel.cycles/mini@0.0.4 - @strudel.cycles/tonal@0.0.3 - @strudel.cycles/tone@0.0.4 - @strudel.cycles/xen@0.0.3 --- packages/core/package-lock.json | 2 +- packages/core/package.json | 2 +- packages/eval/package-lock.json | 2 +- packages/eval/package.json | 4 ++-- packages/midi/package-lock.json | 2 +- packages/midi/package.json | 4 ++-- packages/mini/package.json | 6 +++--- packages/tonal/package-lock.json | 2 +- packages/tonal/package.json | 4 ++-- packages/tone/package-lock.json | 2 +- packages/tone/package.json | 4 ++-- packages/xen/package.json | 4 ++-- 12 files changed, 19 insertions(+), 19 deletions(-) diff --git a/packages/core/package-lock.json b/packages/core/package-lock.json index 4e34b6449..1c42d2b31 100644 --- a/packages/core/package-lock.json +++ b/packages/core/package-lock.json @@ -1,6 +1,6 @@ { "name": "@strudel.cycles/core", - "version": "0.0.2", + "version": "0.0.3", "lockfileVersion": 2, "requires": true, "packages": { diff --git a/packages/core/package.json b/packages/core/package.json index bf1ae2e84..740ddf688 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -1,6 +1,6 @@ { "name": "@strudel.cycles/core", - "version": "0.0.2", + "version": "0.0.3", "description": "Port of Tidal Cycles to JavaScript", "main": "strudel.mjs", "type": "module", diff --git a/packages/eval/package-lock.json b/packages/eval/package-lock.json index 645bc3082..de28d321e 100644 --- a/packages/eval/package-lock.json +++ b/packages/eval/package-lock.json @@ -1,6 +1,6 @@ { "name": "@strudel.cycles/eval", - "version": "0.0.2", + "version": "0.0.3", "lockfileVersion": 2, "requires": true, "packages": { diff --git a/packages/eval/package.json b/packages/eval/package.json index e2b6552e3..342e016b3 100644 --- a/packages/eval/package.json +++ b/packages/eval/package.json @@ -1,6 +1,6 @@ { "name": "@strudel.cycles/eval", - "version": "0.0.2", + "version": "0.0.3", "description": "Code evaluator for strudel", "main": "evaluate.mjs", "directories": { @@ -28,7 +28,7 @@ }, "homepage": "https://github.com/tidalcycles/strudel#readme", "dependencies": { - "@strudel.cycles/core": "^0.0.2", + "@strudel.cycles/core": "^0.0.3", "estraverse": "^5.3.0", "shift-ast": "^6.1.0", "shift-codegen": "^7.0.3", diff --git a/packages/midi/package-lock.json b/packages/midi/package-lock.json index 6a25b3e9e..12a9b2bfe 100644 --- a/packages/midi/package-lock.json +++ b/packages/midi/package-lock.json @@ -1,6 +1,6 @@ { "name": "@strudel.cycles/midi", - "version": "0.0.3", + "version": "0.0.4", "lockfileVersion": 2, "requires": true, "packages": { diff --git a/packages/midi/package.json b/packages/midi/package.json index e6a04232b..f1b11890c 100644 --- a/packages/midi/package.json +++ b/packages/midi/package.json @@ -1,6 +1,6 @@ { "name": "@strudel.cycles/midi", - "version": "0.0.3", + "version": "0.0.4", "description": "Midi API for strudel", "main": "midi.mjs", "repository": { @@ -21,7 +21,7 @@ }, "homepage": "https://github.com/tidalcycles/strudel#readme", "dependencies": { - "@strudel.cycles/tone": "^0.0.3", + "@strudel.cycles/tone": "^0.0.4", "tone": "^14.7.77", "webmidi": "^2.5.2" } diff --git a/packages/mini/package.json b/packages/mini/package.json index c4c7c877f..e865d0ffb 100644 --- a/packages/mini/package.json +++ b/packages/mini/package.json @@ -1,6 +1,6 @@ { "name": "@strudel.cycles/mini", - "version": "0.0.3", + "version": "0.0.4", "description": "Mini notation for strudel", "main": "mini.mjs", "type": "module", @@ -25,7 +25,7 @@ }, "homepage": "https://github.com/tidalcycles/strudel#readme", "dependencies": { - "@strudel.cycles/eval": "^0.0.2", - "@strudel.cycles/tone": "^0.0.3" + "@strudel.cycles/eval": "^0.0.3", + "@strudel.cycles/tone": "^0.0.4" } } diff --git a/packages/tonal/package-lock.json b/packages/tonal/package-lock.json index 3b0a20de8..2a9c7eb4a 100644 --- a/packages/tonal/package-lock.json +++ b/packages/tonal/package-lock.json @@ -1,6 +1,6 @@ { "name": "@strudel.cycles/tonal", - "version": "0.0.2", + "version": "0.0.3", "lockfileVersion": 2, "requires": true, "packages": { diff --git a/packages/tonal/package.json b/packages/tonal/package.json index 7dfceba80..7c6071887 100644 --- a/packages/tonal/package.json +++ b/packages/tonal/package.json @@ -1,6 +1,6 @@ { "name": "@strudel.cycles/tonal", - "version": "0.0.2", + "version": "0.0.3", "description": "Tonal functions for strudel", "main": "tonal.mjs", "type": "module", @@ -25,7 +25,7 @@ }, "homepage": "https://github.com/tidalcycles/strudel#readme", "dependencies": { - "@strudel.cycles/core": "^0.0.2", + "@strudel.cycles/core": "^0.0.3", "@tonaljs/tonal": "^4.6.5", "webmidi": "^3.0.15" } diff --git a/packages/tone/package-lock.json b/packages/tone/package-lock.json index bdfa56c18..c63117432 100644 --- a/packages/tone/package-lock.json +++ b/packages/tone/package-lock.json @@ -1,6 +1,6 @@ { "name": "@strudel.cycles/tone", - "version": "0.0.3", + "version": "0.0.4", "lockfileVersion": 2, "requires": true, "packages": { diff --git a/packages/tone/package.json b/packages/tone/package.json index 89e45c42c..50aadaa86 100644 --- a/packages/tone/package.json +++ b/packages/tone/package.json @@ -1,6 +1,6 @@ { "name": "@strudel.cycles/tone", - "version": "0.0.3", + "version": "0.0.4", "description": "Tone.js API for strudel", "main": "tone.mjs", "type": "module", @@ -22,7 +22,7 @@ }, "homepage": "https://github.com/tidalcycles/strudel#readme", "dependencies": { - "@strudel.cycles/core": "^0.0.2", + "@strudel.cycles/core": "^0.0.3", "@tonejs/piano": "^0.2.1", "chord-voicings": "^0.0.1", "tone": "^14.7.77" diff --git a/packages/xen/package.json b/packages/xen/package.json index c0f78126d..6c75e1c96 100644 --- a/packages/xen/package.json +++ b/packages/xen/package.json @@ -1,6 +1,6 @@ { "name": "@strudel.cycles/xen", - "version": "0.0.2", + "version": "0.0.3", "description": "Xenharmonic API for strudel", "main": "xen.mjs", "scripts": { @@ -24,6 +24,6 @@ }, "homepage": "https://github.com/tidalcycles/strudel#readme", "dependencies": { - "@strudel.cycles/core": "^0.0.2" + "@strudel.cycles/core": "^0.0.3" } } From 0c61bb0063c3740a6203fe3d14a1bd329f347015 Mon Sep 17 00:00:00 2001 From: Felix Roos Date: Sat, 9 Apr 2022 22:10:27 +0200 Subject: [PATCH 28/78] Update featurelist.md tick some boxes --- featurelist.md | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/featurelist.md b/featurelist.md index d52f9796d..5135e5112 100644 --- a/featurelist.md +++ b/featurelist.md @@ -6,7 +6,7 @@ - [ ] setcps - [ ] naming patterns? block based evaluation? - [ ] once -- [ ] silence +- [x] silence - [x] hush - [ ] panic @@ -30,22 +30,23 @@ https://tidalcycles.org/docs/patternlib/tour/concatenation - [ ] overlay => like stack? "The overlay function is similar to cat" => wrong? - [ ] `<>` operator (=== overlay) - [x] stack -- [x] superimpose => strudel supports multiple args => is this layer? -- [ ] layer => is this like superimpose but with multiple args? +- [x] superimpose +- [x] layer - [ ] steps ? -- [ ] iter, iter' +- [x] iter +- [x] iter' = iterBack ## Alteration - [ ] range, rangex - [ ] quantise - [ ] ply -- [ ] stutter +- [x] stutter = echo - [ ] stripe, slowstripe - [ ] palindrome = every(2, rev) - [ ] trunc - [ ] linger -- [ ] chunk, chunk' +- [x] chunk, chunk' - [ ] shuffle - [ ] scramble - [ ] rot @@ -68,7 +69,8 @@ https://tidalcycles.org/docs/patternlib/tour/concatenation - [ ] select, selectF - [ ] pickF - [ ] squeeze -- [ ] euclid, euclidInv, euclidFull +- [x] euclid, euclidLegato +- [ ] euclidInv, euclidFull - [ ] ifp ## Time @@ -83,7 +85,8 @@ https://tidalcycles.org/docs/patternlib/tour/concatenation - [x] off - [ ] rotL / rotR - [x] rev -- [ ] jux / juxBy +- [x] jux +- [ ] juxBy - [ ] swingBy / swing - [ ] ghost - [ ] inside / outside @@ -114,7 +117,7 @@ https://tidalcycles.org/docs/patternlib/tour/concatenation - [ ] chop - [ ] striate / striateBy - [ ] loopAt -- [ ] segment +- [x] segment - [ ] discretise ## Randomness From c6d7dabada80fe06530422e5e8dc73226fa8967f Mon Sep 17 00:00:00 2001 From: Felix Roos Date: Sun, 10 Apr 2022 01:01:02 +0200 Subject: [PATCH 29/78] Create CONTRIBUTING.md --- CONTRIBUTING.md | 111 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 111 insertions(+) create mode 100644 CONTRIBUTING.md diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 000000000..2f7e5ba36 --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,111 @@ +# 🌀 Contributing to Strudel 🌀 + +Thanks for wanting to contribute!!! There are many ways you can add value to this project + +## Communication Channels + +To get in touch with the contributors, either + +- open a [github discussion](https://github.com/tidalcycles/strudel/discussions) or +- [join the Tidal Discord Channel](https://discord.gg/remJ6gQA) and go to the #strudel channel +- Find related discussions on the [tidal club forum](https://club.tidalcycles.org/) + +## Ask a Question + +If you have any questions about strudel, make sure you've read the +[tutorial](https://strudel.tidalcycles.org/tutorial/) to find out if it answers your question. +If not, use one of the Communication Channels above! + +Don't be afraid to ask! Your question might be of great value for other people too. + +## Give Feedback + +No matter if you've used the Strudel REPL or if you are using the strudel packages, we are happy to hear some feedback. +Use one of the Communication Channels listed above and drop us a line or two! + +## Share Music + +If you made some music with strudel, you can give back some love and share what you've done! +Your creation could also be part of the random selection in the REPL if you want. +Use one of the Communication Channels listed above. + +## Improve the Tutorial + +If you find some weak spots in the [tutorial](https://strudel.tidalcycles.org/), +you are welcome to improve them by editing [this file](https://github.com/tidalcycles/strudel/blob/main/repl/src/tutorial/tutorial.mdx). +This will even work without setting up a development environment, only a github account is required. + +## Propose a Feature + +If you want a specific feature that is not part of strudel yet, feel free to use one of the communication channels above. +Maybe you even want to help with the implementation of that feature! + +## Report a Bug + +If you've found a bug, or some behaviour that does not seem right, you are welcome to file an [issue](https://github.com/tidalcycles/strudel/issues). +Please check that it has not been reported before. + +## Fix a Bug + +To fix a bug that has been reported, + +1. check that nobody else is already fixing it and respond to the issue to let people know you're on it +3. fork the repository +4. make sure you've setup the project (see below) +5. hopefully fix the bug +6. make sure the tests pass +7. send a pull request + +## Write Tests + +There are still many tests that have not been written yet! Reading and writing tests is a great opportunity to get familiar with the codebase. +You can find the tests in each package in the `test` folder. To run all tests, run `npm test` from the root folder. + +## Project Setup + +To get the project up and running for development, make sure you have installed: + +- git +- node, preferably v16 + +then, do the following: + +```sh +git clone https://github.com/tidalcycles/strudel.git && cd strudel +npm i # install at root to symlink packages +npx lerna bootstrap # install all dependencies in packages +cd repl && npm i # install repl dependencies +npm run start # start repl +``` + +Those commands might look slightly different for your OS. +Please report any problems you've had with the setup instructions! + +## Code Style + +To make sure the code changes only where it should, we are using prettier to unify the code style. +If you use VSCode, you can + +1. install [the prettier extension](https://marketplace.visualstudio.com/items?itemName=esbenp.prettier-vscode) +2. open command palette and run "Format Document With..." +3. Choose "Configure Default Formatter..." +4. Select prettier + +## Package Workflow + +The project is split into multiple [packages](https://github.com/tidalcycles/strudel/tree/main/packages) with independent versioning. +When you run `npm i` on the root folder, [npm workspaces](https://docs.npmjs.com/cli/v7/using-npm/workspaces) will symlink all packages +in the `node_modules` folder. This will allow any js file to import `@strudel.cycles/` to get the local version, +which allows developing multiple packages at the same time + +## Package Publishing + +To publish all packages that have been changed since the last release, run: + +```sh +npx lerna publish +``` + +## Have Fun + +Remember to have fun, and that this project is driven by the passion of volunteers! From abfff8bcf146c47f60c1d572079d0fa4ae6b9e15 Mon Sep 17 00:00:00 2001 From: Bernhard Wagner Date: Mon, 11 Apr 2022 08:34:11 +0200 Subject: [PATCH 30/78] Update tutorial.mdx seperating -> separating --- repl/src/tutorial/tutorial.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/repl/src/tutorial/tutorial.mdx b/repl/src/tutorial/tutorial.mdx index 7687221eb..abf4f9af3 100644 --- a/repl/src/tutorial/tutorial.mdx +++ b/repl/src/tutorial/tutorial.mdx @@ -99,7 +99,7 @@ You can also press "play" on the next player without needing to stop the last on ## Sequences -We can play more notes by seperating them with spaces: +We can play more notes by separating them with spaces: From 3f1df8faa6aa5e04f2376f386140fc0cf3e3e213 Mon Sep 17 00:00:00 2001 From: Bernhard Wagner Date: Mon, 11 Apr 2022 18:08:23 +0200 Subject: [PATCH 31/78] Update tutorial.mdx --- repl/src/tutorial/tutorial.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/repl/src/tutorial/tutorial.mdx b/repl/src/tutorial/tutorial.mdx index abf4f9af3..989268ac0 100644 --- a/repl/src/tutorial/tutorial.mdx +++ b/repl/src/tutorial/tutorial.mdx @@ -640,7 +640,7 @@ Patternified autofilter: "")`} + .synth('sawtooth16').autofilter("<1 4 8>")`} /> ## Tonal API From de3c4537639b952fcd628a385584441936cbb49e Mon Sep 17 00:00:00 2001 From: Felix Roos Date: Mon, 11 Apr 2022 22:31:02 +0200 Subject: [PATCH 32/78] add pipe + compose --- packages/core/test/util.test.mjs | 15 ++++++++++++++- packages/core/util.mjs | 11 +++++++++++ 2 files changed, 25 insertions(+), 1 deletion(-) diff --git a/packages/core/test/util.test.mjs b/packages/core/test/util.test.mjs index 69ee2cc36..5e8c906e7 100644 --- a/packages/core/test/util.test.mjs +++ b/packages/core/test/util.test.mjs @@ -1,5 +1,5 @@ import { strict as assert } from 'assert'; -import { isNote, tokenizeNote, toMidi, mod } from '../util.mjs'; +import { isNote, tokenizeNote, toMidi, mod, compose } from '../util.mjs'; describe('isNote', () => { it('should recognize notes without accidentals', () => { @@ -83,3 +83,16 @@ describe('mod', () => { assert.equal(mod(-3, 2), 1); }); }); + +describe('compose', () => { + const add1 = (a) => a + 1; + it('should compose', () => { + assert.equal(compose(add1, add1)(0), 2); + assert.equal(compose(add1)(0), 1); + }); + const addS = (s) => (a) => a + s; + it('should compose left to right', () => { + assert.equal(compose(addS('a'), addS('b'))(''), 'ab'); + assert.equal(compose(addS('a'), addS('b'))('x'), 'xab'); + }); +}); diff --git a/packages/core/util.mjs b/packages/core/util.mjs index 4cfea99be..719918e31 100644 --- a/packages/core/util.mjs +++ b/packages/core/util.mjs @@ -42,3 +42,14 @@ export const getPlayableNoteValue = (event) => { // rotate array by n steps (to the left) export const rotate = (arr, n) => arr.slice(n).concat(arr.slice(0, n)); + +export const pipe = (...funcs) => { + return funcs.reduce( + (f, g) => + (...args) => + f(g(...args)), + (x) => x, + ); +}; + +export const compose = (...funcs) => pipe(...funcs.reverse()); From 9effc166bb7a8dfab33fc8522c4713bc055e8ed9 Mon Sep 17 00:00:00 2001 From: Felix Roos Date: Mon, 11 Apr 2022 22:32:53 +0200 Subject: [PATCH 33/78] use own compose --- packages/core/strudel.mjs | 3 +-- packages/core/value.mjs | 2 +- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/packages/core/strudel.mjs b/packages/core/strudel.mjs index d4a003d4e..71087c1e3 100644 --- a/packages/core/strudel.mjs +++ b/packages/core/strudel.mjs @@ -1,6 +1,5 @@ import Fraction from './fraction.mjs'; -import { compose } from 'ramda'; // will remove this as soon as compose is implemented here -import { isNote, toMidi } from './util.mjs'; +import { isNote, toMidi, compose } from './util.mjs'; // Removes 'None' values from given list const removeUndefineds = (xs) => xs.filter((x) => x != undefined); diff --git a/packages/core/value.mjs b/packages/core/value.mjs index 0a077077f..1484a800b 100644 --- a/packages/core/value.mjs +++ b/packages/core/value.mjs @@ -1,4 +1,4 @@ -import { curry } from 'ramda'; +import { curry } from './strudel.mjs'; function unionWithObj(a, b, func) { const common = Object.keys(a).filter((k) => Object.keys(b).includes(k)); From 81598aefcea79585cff26502e426b9c5f12894ab Mon Sep 17 00:00:00 2001 From: Felix Roos Date: Mon, 11 Apr 2022 22:37:28 +0200 Subject: [PATCH 34/78] remove ramda dep + update lockfiles --- package-lock.json | 1974 ++++++++++- packages/core/package-lock.json | 19 +- packages/core/package.json | 3 +- packages/eval/package-lock.json | 2 +- packages/midi/package-lock.json | 2 +- packages/tonal/package-lock.json | 5446 +++++++++++++++--------------- packages/tone/package-lock.json | 2 +- 7 files changed, 4489 insertions(+), 2959 deletions(-) diff --git a/package-lock.json b/package-lock.json index c3fc28443..299d7e7d7 100644 --- a/package-lock.json +++ b/package-lock.json @@ -17,11 +17,22 @@ "mocha": "^9.1.4" } }, + "node_modules/@ampproject/remapping": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.1.2.tgz", + "integrity": "sha512-hoyByceqwKirw7w3Z7gnIIZC3Wx3J484Y3L/cMpXFbr7d9ZQj2mODrirNzcJa+SM3UlpWXYvKV4RlRpFXlWgXg==", + "peer": true, + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.0" + }, + "engines": { + "node": ">=6.0.0" + } + }, "node_modules/@babel/code-frame": { "version": "7.16.7", "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.7.tgz", "integrity": "sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg==", - "dev": true, "dependencies": { "@babel/highlight": "^7.16.7" }, @@ -29,11 +40,213 @@ "node": ">=6.9.0" } }, + "node_modules/@babel/compat-data": { + "version": "7.17.7", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.17.7.tgz", + "integrity": "sha512-p8pdE6j0a29TNGebNm7NzYZWB3xVZJBZ7XGs42uAKzQo8VQ3F0By/cQCtUEABwIqw5zo6WA4NbmxsfzADzMKnQ==", + "peer": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.17.9", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.17.9.tgz", + "integrity": "sha512-5ug+SfZCpDAkVp9SFIZAzlW18rlzsOcJGaetCjkySnrXXDUw9AR8cDUm1iByTmdWM6yxX6/zycaV76w3YTF2gw==", + "peer": true, + "dependencies": { + "@ampproject/remapping": "^2.1.0", + "@babel/code-frame": "^7.16.7", + "@babel/generator": "^7.17.9", + "@babel/helper-compilation-targets": "^7.17.7", + "@babel/helper-module-transforms": "^7.17.7", + "@babel/helpers": "^7.17.9", + "@babel/parser": "^7.17.9", + "@babel/template": "^7.16.7", + "@babel/traverse": "^7.17.9", + "@babel/types": "^7.17.0", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.1", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@babel/core/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "peer": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/generator": { + "version": "7.17.9", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.17.9.tgz", + "integrity": "sha512-rAdDousTwxbIxbz5I7GEQ3lUip+xVCXooZNbsydCWs3xA7ZsYOv+CFRdzGxRX78BmQHu9B1Eso59AOZQOJDEdQ==", + "peer": true, + "dependencies": { + "@babel/types": "^7.17.0", + "jsesc": "^2.5.1", + "source-map": "^0.5.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.17.7", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.17.7.tgz", + "integrity": "sha512-UFzlz2jjd8kroj0hmCFV5zr+tQPi1dpC2cRsDV/3IEW8bJfCPrPpmcSN6ZS8RqIq4LXcmpipCQFPddyFA5Yc7w==", + "peer": true, + "dependencies": { + "@babel/compat-data": "^7.17.7", + "@babel/helper-validator-option": "^7.16.7", + "browserslist": "^4.17.5", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-compilation-targets/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "peer": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-environment-visitor": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.16.7.tgz", + "integrity": "sha512-SLLb0AAn6PkUeAfKJCCOl9e1R53pQlGAfc4y4XuMRZfqeMYLE0dM1LMhqbGAlGQY0lfw5/ohoYWAe9V1yibRag==", + "peer": true, + "dependencies": { + "@babel/types": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-function-name": { + "version": "7.17.9", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.17.9.tgz", + "integrity": "sha512-7cRisGlVtiVqZ0MW0/yFB4atgpGLWEHUVYnb448hZK4x+vih0YO5UoS11XIYtZYqHd0dIPMdUSv8q5K4LdMnIg==", + "peer": true, + "dependencies": { + "@babel/template": "^7.16.7", + "@babel/types": "^7.17.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-hoist-variables": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.7.tgz", + "integrity": "sha512-m04d/0Op34H5v7pbZw6pSKP7weA6lsMvfiIAMeIvkY/R4xQtBSMFEigu9QTZ2qB/9l22vsxtM8a+Q8CzD255fg==", + "peer": true, + "dependencies": { + "@babel/types": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.16.7.tgz", + "integrity": "sha512-LVtS6TqjJHFc+nYeITRo6VLXve70xmq7wPhWTqDJusJEgGmkAACWwMiTNrvfoQo6hEhFwAIixNkvB0jPXDL8Wg==", + "dependencies": { + "@babel/types": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.17.7", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.17.7.tgz", + "integrity": "sha512-VmZD99F3gNTYB7fJRDTi+u6l/zxY0BE6OIxPSU7a50s6ZUQkHwSDmV92FfM+oCG0pZRVojGYhkR8I0OGeCVREw==", + "peer": true, + "dependencies": { + "@babel/helper-environment-visitor": "^7.16.7", + "@babel/helper-module-imports": "^7.16.7", + "@babel/helper-simple-access": "^7.17.7", + "@babel/helper-split-export-declaration": "^7.16.7", + "@babel/helper-validator-identifier": "^7.16.7", + "@babel/template": "^7.16.7", + "@babel/traverse": "^7.17.3", + "@babel/types": "^7.17.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-simple-access": { + "version": "7.17.7", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.17.7.tgz", + "integrity": "sha512-txyMCGroZ96i+Pxr3Je3lzEJjqwaRC9buMUgtomcrLe5Nd0+fk1h0LLA+ixUF5OW7AhHuQ7Es1WcQJZmZsz2XA==", + "peer": true, + "dependencies": { + "@babel/types": "^7.17.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-split-export-declaration": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.7.tgz", + "integrity": "sha512-xbWoy/PFoxSWazIToT9Sif+jJTlrMcndIsaOKvTA6u7QEo7ilkRZpjew18/W3c7nm8fXdUDXh02VXTbZ0pGDNw==", + "peer": true, + "dependencies": { + "@babel/types": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, "node_modules/@babel/helper-validator-identifier": { "version": "7.16.7", "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz", "integrity": "sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==", - "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.16.7.tgz", + "integrity": "sha512-TRtenOuRUVo9oIQGPC5G9DgK4743cdxvtOw0weQNpZXaS16SCBi5MNjZF8vba3ETURjZpTbVn7Vvcf2eAwFozQ==", + "peer": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.17.9", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.17.9.tgz", + "integrity": "sha512-cPCt915ShDWUEzEp3+UNRktO2n6v49l5RSnG9M5pS24hA+2FAc5si+Pn1i4VVbQQ+jh+bIZhPFQOJOzbrOYY1Q==", + "peer": true, + "dependencies": { + "@babel/template": "^7.16.7", + "@babel/traverse": "^7.17.9", + "@babel/types": "^7.17.0" + }, "engines": { "node": ">=6.9.0" } @@ -42,7 +255,6 @@ "version": "7.16.10", "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.16.10.tgz", "integrity": "sha512-5FnTQLSLswEj6IkgVw5KusNUUFY9ZGqe/TRFnP/BKYHYgfh7tc+C7mwiy95/yNP7Dh9x580Vv8r7u7ZfTBFxdw==", - "dev": true, "dependencies": { "@babel/helper-validator-identifier": "^7.16.7", "chalk": "^2.0.0", @@ -56,7 +268,6 @@ "version": "3.2.1", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, "dependencies": { "color-convert": "^1.9.0" }, @@ -68,7 +279,6 @@ "version": "2.4.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, "dependencies": { "ansi-styles": "^3.2.1", "escape-string-regexp": "^1.0.5", @@ -82,7 +292,6 @@ "version": "1.9.3", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, "dependencies": { "color-name": "1.1.3" } @@ -90,14 +299,12 @@ "node_modules/@babel/highlight/node_modules/color-name": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "dev": true + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" }, "node_modules/@babel/highlight/node_modules/escape-string-regexp": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", - "dev": true, "engines": { "node": ">=0.8.0" } @@ -106,7 +313,6 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true, "engines": { "node": ">=4" } @@ -115,7 +321,6 @@ "version": "5.5.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, "dependencies": { "has-flag": "^3.0.0" }, @@ -123,6 +328,17 @@ "node": ">=4" } }, + "node_modules/@babel/parser": { + "version": "7.17.9", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.17.9.tgz", + "integrity": "sha512-vqUSBLP8dQHFPdPi9bc5GK9vRkYHJ49fsZdtoJ8EQ8ibpwk5rPKfvNIwChB0KVXcIjcepEBBd2VHC5r9Gy8ueg==", + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, "node_modules/@babel/runtime": { "version": "7.17.0", "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.17.0.tgz", @@ -134,6 +350,53 @@ "node": ">=6.9.0" } }, + "node_modules/@babel/template": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.16.7.tgz", + "integrity": "sha512-I8j/x8kHUrbYRTUxXrrMbfCa7jxkE7tZre39x3kjr9hvI82cK1FfqLygotcWN5kdPGWcLdWMHpSBavse5tWw3w==", + "peer": true, + "dependencies": { + "@babel/code-frame": "^7.16.7", + "@babel/parser": "^7.16.7", + "@babel/types": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.17.9", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.17.9.tgz", + "integrity": "sha512-PQO8sDIJ8SIwipTPiR71kJQCKQYB5NGImbOviK8K+kg5xkNSYXLBupuX9QhatFowrsvo9Hj8WgArg3W7ijNAQw==", + "peer": true, + "dependencies": { + "@babel/code-frame": "^7.16.7", + "@babel/generator": "^7.17.9", + "@babel/helper-environment-visitor": "^7.16.7", + "@babel/helper-function-name": "^7.17.9", + "@babel/helper-hoist-variables": "^7.16.7", + "@babel/helper-split-export-declaration": "^7.16.7", + "@babel/parser": "^7.17.9", + "@babel/types": "^7.17.0", + "debug": "^4.1.0", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/types": { + "version": "7.17.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.17.0.tgz", + "integrity": "sha512-TmKSNO4D5rzhL5bjWFcVHHLETzfQ/AmbKpKPOSjlP0WoHZ6L911fgoOKY4Alp/emzG4cHJdyN49zpgkbXFEHHw==", + "dependencies": { + "@babel/helper-validator-identifier": "^7.16.7", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, "node_modules/@gar/promisify": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/@gar/promisify/-/promisify-1.1.2.tgz", @@ -149,6 +412,31 @@ "node": ">=6.9.0" } }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.0.5.tgz", + "integrity": "sha512-VPeQ7+wH0itvQxnG+lIzWgkysKIr3L9sslimFW55rHMdGu/qCQ5z5h9zq4gI8uBtqkpHhsF4Z/OwExufUCThew==", + "peer": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.11", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.11.tgz", + "integrity": "sha512-Fg32GrJo61m+VqYSdRSjRXMjQ06j8YIYfcTqndLYVAaHmroZHLJZCydsWBOTDqXS2v+mjxohBWEMfg97GXmYQg==", + "peer": true + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.4", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.4.tgz", + "integrity": "sha512-vFv9ttIedivx0ux3QSjhgtCVjPZd5l46ZOMDSCwnH1yUO2e964gO8LZGyv2QkqcgR6TnBU1v+1IFqmeoG+0UJQ==", + "peer": true, + "dependencies": { + "@jridgewell/resolve-uri": "^3.0.3", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + }, "node_modules/@lerna/add": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/@lerna/add/-/add-4.0.0.tgz", @@ -1543,6 +1831,44 @@ "@octokit/openapi-types": "^11.2.0" } }, + "node_modules/@rollup/plugin-babel": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/@rollup/plugin-babel/-/plugin-babel-5.3.1.tgz", + "integrity": "sha512-WFfdLWU/xVWKeRQnKmIAQULUI7Il0gZnBIH/ZFO069wYIfPu+8zrfp/KMW0atmELoRDq8FbiP3VCss9MhCut7Q==", + "dependencies": { + "@babel/helper-module-imports": "^7.10.4", + "@rollup/pluginutils": "^3.1.0" + }, + "engines": { + "node": ">= 10.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0", + "@types/babel__core": "^7.1.9", + "rollup": "^1.20.0||^2.0.0" + }, + "peerDependenciesMeta": { + "@types/babel__core": { + "optional": true + } + } + }, + "node_modules/@rollup/pluginutils": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-3.1.0.tgz", + "integrity": "sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==", + "dependencies": { + "@types/estree": "0.0.39", + "estree-walker": "^1.0.1", + "picomatch": "^2.2.2" + }, + "engines": { + "node": ">= 8.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0" + } + }, "node_modules/@strudel.cycles/core": { "resolved": "packages/core", "link": true @@ -1796,6 +2122,30 @@ "node": ">= 6" } }, + "node_modules/@types/estree": { + "version": "0.0.39", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz", + "integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==" + }, + "node_modules/@types/linkify-it": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@types/linkify-it/-/linkify-it-3.0.2.tgz", + "integrity": "sha512-HZQYqbiFVWufzCwexrvh694SOim8z2d+xJl5UNamcvQFejLY/2YUtzXHYi3cHdI7PMlS8ejH2slRAOJQ32aNbA==" + }, + "node_modules/@types/markdown-it": { + "version": "12.2.3", + "resolved": "https://registry.npmjs.org/@types/markdown-it/-/markdown-it-12.2.3.tgz", + "integrity": "sha512-GKMHFfv3458yYy+v/N8gjufHO6MSZKCOXpZc5GXIWWy8uldwfmPn98vp81gZ5f9SVw8YYBctgfJ22a2d7AOMeQ==", + "dependencies": { + "@types/linkify-it": "*", + "@types/mdurl": "*" + } + }, + "node_modules/@types/mdurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@types/mdurl/-/mdurl-1.0.2.tgz", + "integrity": "sha512-eC4U9MlIcu2q0KQmXszyn5Akca/0jrQmwDRgpAMJai7qBWq4amIQhZyNau4VYGtCeALvW1/NtjzJJ567aZxfKA==" + }, "node_modules/@types/minimatch": { "version": "3.0.5", "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.5.tgz", @@ -1820,6 +2170,12 @@ "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==", "dev": true }, + "node_modules/@types/webmidi": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@types/webmidi/-/webmidi-2.0.6.tgz", + "integrity": "sha512-sfS0A5IryqmBrUpcGPipEPeFdpqmZzP6b6lZFxHKgz5n2Vhzh4yJ5P2TvoDUhDjqJyv0Y25ng0Qodgo2Vu08ug==", + "optional": true + }, "node_modules/@ungap/promise-all-settled": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/@ungap/promise-all-settled/-/promise-all-settled-1.1.2.tgz", @@ -1897,7 +2253,6 @@ "version": "4.1.1", "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", - "dev": true, "engines": { "node": ">=6" } @@ -1917,6 +2272,17 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/ansi-gray": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/ansi-gray/-/ansi-gray-0.1.1.tgz", + "integrity": "sha1-KWLPVOyXksSFEKPetSRDaGHvclE=", + "dependencies": { + "ansi-wrap": "0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/ansi-regex": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", @@ -1941,6 +2307,14 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, + "node_modules/ansi-wrap": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/ansi-wrap/-/ansi-wrap-0.1.0.tgz", + "integrity": "sha1-qCJQ3bABXponyoLoLqYDu/pF768=", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/anymatch": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", @@ -1973,8 +2347,7 @@ "node_modules/argparse": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" }, "node_modules/array-differ": { "version": "3.0.0", @@ -2078,8 +2451,7 @@ "node_modules/balanced-match": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" }, "node_modules/bcrypt-pbkdf": { "version": "1.0.2", @@ -2090,6 +2462,17 @@ "tweetnacl": "^0.14.3" } }, + "node_modules/beeper": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/beeper/-/beeper-2.1.0.tgz", + "integrity": "sha512-85+CcymhlP0jM4fs4ZMiMRl58VthoN9NRdvi+knXiQpP2UggkSre+A9rOZ0c2g2Vh+pEF5ZAlT+k8dsJNoanAA==", + "dependencies": { + "yoctodelay": "^1.1.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/before-after-hook": { "version": "2.2.2", "resolved": "https://registry.npmjs.org/before-after-hook/-/before-after-hook-2.2.2.tgz", @@ -2110,11 +2493,15 @@ "resolved": "https://registry.npmjs.org/bjork/-/bjork-0.0.1.tgz", "integrity": "sha1-br1a3pkWSwvgMIeI1kaRQ9XJrZw=" }, + "node_modules/bluebird": { + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", + "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==" + }, "node_modules/brace-expansion": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -2138,6 +2525,35 @@ "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", "dev": true }, + "node_modules/browserslist": { + "version": "4.20.2", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.20.2.tgz", + "integrity": "sha512-CQOBCqp/9pDvDbx3xfMi+86pr4KXIf2FDkTTdeuYw8OxS9t898LA1Khq57gtufFILXpfgsSx5woNgsBgvGjpsA==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + } + ], + "peer": true, + "dependencies": { + "caniuse-lite": "^1.0.30001317", + "electron-to-chromium": "^1.4.84", + "escalade": "^3.1.1", + "node-releases": "^2.0.2", + "picocolors": "^1.0.0" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, "node_modules/buffer-from": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", @@ -2266,12 +2682,39 @@ "node": ">=8" } }, + "node_modules/caniuse-lite": { + "version": "1.0.30001327", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001327.tgz", + "integrity": "sha512-1/Cg4jlD9qjZzhbzkzEaAC2JHsP0WrOc8Rd/3a3LuajGzGWR/hD7TVyvq99VqmTy99eVh8Zkmdq213OgvgXx7w==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + } + ], + "peer": true + }, "node_modules/caseless": { "version": "0.12.0", "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", "dev": true }, + "node_modules/catharsis": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/catharsis/-/catharsis-0.9.0.tgz", + "integrity": "sha512-prMTQVpcns/tzFgFVkVp6ak6RykZyWb3gu8ckUpd6YkTlacOd3DXGJjIpD4Q6zJirizvaiAjSSHlOsA+6sNh2A==", + "dependencies": { + "lodash": "^4.17.15" + }, + "engines": { + "node": ">= 10" + } + }, "node_modules/chalk": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", @@ -2494,6 +2937,14 @@ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, + "node_modules/color-support": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz", + "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==", + "bin": { + "color-support": "bin.js" + } + }, "node_modules/columnify": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/columnify/-/columnify-1.6.0.tgz", @@ -2544,8 +2995,7 @@ "node_modules/concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", - "dev": true + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" }, "node_modules/concat-stream": { "version": "2.0.0", @@ -2726,6 +3176,21 @@ "node": ">=10" } }, + "node_modules/convert-source-map": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz", + "integrity": "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==", + "peer": true, + "dependencies": { + "safe-buffer": "~5.1.1" + } + }, + "node_modules/convert-source-map/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "peer": true + }, "node_modules/core-util-is": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", @@ -2796,7 +3261,6 @@ "version": "4.3.3", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", - "dev": true, "dependencies": { "ms": "2.1.2" }, @@ -2812,8 +3276,7 @@ "node_modules/debug/node_modules/ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" }, "node_modules/debuglog": { "version": "1.0.1", @@ -2973,6 +3436,94 @@ "node": ">=8" } }, + "node_modules/djipevents": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/djipevents/-/djipevents-2.0.4.tgz", + "integrity": "sha512-ozscQ0QQaPIqx0gEMI6BIEMGWlEVuFZb+R3ER0TYrCugdEipAb38ddAXmytMOM7bnvToAzZU0RItaHcBSi6TYA==", + "dependencies": { + "@babel/runtime": "^7.16.3", + "gulp-jsdoc3": "^3.0.0" + } + }, + "node_modules/dom-serializer": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz", + "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==", + "dependencies": { + "domelementtype": "^2.0.1", + "domhandler": "^4.2.0", + "entities": "^2.0.0" + }, + "funding": { + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" + } + }, + "node_modules/dom-serializer/node_modules/domhandler": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz", + "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", + "dependencies": { + "domelementtype": "^2.2.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, + "node_modules/domelementtype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ] + }, + "node_modules/domhandler": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-3.3.0.tgz", + "integrity": "sha512-J1C5rIANUbuYK+FuFL98650rihynUOEzRLxW+90bKZRWB6A1X1Tf82GxR1qAWLyfNPRvjqfip3Q5tdYlmAa9lA==", + "dependencies": { + "domelementtype": "^2.0.1" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, + "node_modules/domutils": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", + "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", + "dependencies": { + "dom-serializer": "^1.0.1", + "domelementtype": "^2.2.0", + "domhandler": "^4.2.0" + }, + "funding": { + "url": "https://github.com/fb55/domutils?sponsor=1" + } + }, + "node_modules/domutils/node_modules/domhandler": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz", + "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", + "dependencies": { + "domelementtype": "^2.2.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, "node_modules/dot-prop": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-6.0.1.tgz", @@ -3004,6 +3555,12 @@ "safer-buffer": "^2.1.0" } }, + "node_modules/electron-to-chromium": { + "version": "1.4.106", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.106.tgz", + "integrity": "sha512-ZYfpVLULm67K7CaaGP7DmjyeMY4naxsbTy+syVVxT6QHI1Ww8XbJjmr9fDckrhq44WzCrcC5kH3zGpdusxwwqg==", + "peer": true + }, "node_modules/emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", @@ -3020,6 +3577,14 @@ "iconv-lite": "^0.6.2" } }, + "node_modules/entities": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.1.0.tgz", + "integrity": "sha512-hCx1oky9PFrJ611mf0ifBLBRW8lUUVRlFolb5gWRfIELabBlbp9xZvrqZLZAs+NxFnbfQoeGd8wDkygjg7U85w==", + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, "node_modules/env-paths": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", @@ -3111,7 +3676,6 @@ "version": "3.1.1", "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", - "dev": true, "engines": { "node": ">=6" } @@ -3136,6 +3700,11 @@ "node": ">=4.0" } }, + "node_modules/estree-walker": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz", + "integrity": "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==" + }, "node_modules/esutils": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", @@ -3223,6 +3792,20 @@ "node >=0.6.0" ] }, + "node_modules/fancy-log": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/fancy-log/-/fancy-log-1.3.3.tgz", + "integrity": "sha512-k9oEhlyc0FrVh25qYuSELjr8oxsCoc4/LEZfg2iJJrfEk/tZL9bCoJE47gqAvI2m/AUjluCS4+3I0eTx8n3AEw==", + "dependencies": { + "ansi-gray": "^0.1.1", + "color-support": "^1.1.3", + "parse-node-version": "^1.0.0", + "time-stamp": "^1.0.0" + }, + "engines": { + "node": ">= 0.10" + } + }, "node_modules/fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", @@ -3395,14 +3978,12 @@ "node_modules/fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", - "dev": true + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" }, "node_modules/fsevents": { "version": "2.3.2", "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "dev": true, "hasInstallScript": true, "optional": true, "os": [ @@ -3455,6 +4036,15 @@ "node": ">=0.10.0" } }, + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "peer": true, + "engines": { + "node": ">=6.9.0" + } + }, "node_modules/get-caller-file": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", @@ -3644,7 +4234,6 @@ "version": "7.2.0", "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", - "dev": true, "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -3672,6 +4261,15 @@ "node": ">= 6" } }, + "node_modules/globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "peer": true, + "engines": { + "node": ">=4" + } + }, "node_modules/globby": { "version": "11.1.0", "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", @@ -3707,6 +4305,43 @@ "node": ">=4.x" } }, + "node_modules/gulp-jsdoc3": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/gulp-jsdoc3/-/gulp-jsdoc3-3.0.0.tgz", + "integrity": "sha512-rE2jAwCPA8XFi9g4V3Z3LPhZNjxuMTIYQVMjdqZAQpRfJITLVaUK3xfmiiNTMc7j+fT7pL8Q5yj7ZPRdwCJWNg==", + "dependencies": { + "ansi-colors": "^4.1.1", + "beeper": "^2.0.0", + "debug": "^4.1.1", + "fancy-log": "^1.3.3", + "ink-docstrap": "^1.3.2", + "jsdoc": "^3.6.3", + "map-stream": "0.0.7", + "tmp": "0.1.0" + } + }, + "node_modules/gulp-jsdoc3/node_modules/rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + } + }, + "node_modules/gulp-jsdoc3/node_modules/tmp": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.1.0.tgz", + "integrity": "sha512-J7Z2K08jbGcdA1kkQpJSqLF6T0tdQqpR2pnSUXsIchbPdTI9v3e85cLW0d6WDhwuAleOV71j2xWs8qMPfK7nKw==", + "dependencies": { + "rimraf": "^2.6.3" + }, + "engines": { + "node": ">=6" + } + }, "node_modules/handlebars": { "version": "4.7.7", "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.7.tgz", @@ -3853,6 +4488,17 @@ "node": ">=10" } }, + "node_modules/htmlparser2": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-4.1.0.tgz", + "integrity": "sha512-4zDq1a1zhE4gQso/c5LP1OtrhYTncXNSpvJYtWJBtXAETPlMfi3IFNjGuQbYLuVY4ZR0QMqRVvo4Pdy9KLyP8Q==", + "dependencies": { + "domelementtype": "^2.0.1", + "domhandler": "^3.0.0", + "domutils": "^2.0.0", + "entities": "^2.0.0" + } + }, "node_modules/http-cache-semantics": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", @@ -4022,7 +4668,6 @@ "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "dev": true, "dependencies": { "once": "^1.3.0", "wrappy": "1" @@ -4031,8 +4676,7 @@ "node_modules/inherits": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" }, "node_modules/ini": { "version": "1.3.8", @@ -4073,6 +4717,15 @@ "node": ">=10" } }, + "node_modules/ink-docstrap": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/ink-docstrap/-/ink-docstrap-1.3.2.tgz", + "integrity": "sha512-STx5orGQU1gfrkoI/fMU7lX6CSP7LBGO10gXNgOZhwKhUqbtNjCkYSewJtNnLmWP1tAGN6oyEpG1HFPw5vpa5Q==", + "dependencies": { + "moment": "^2.14.1", + "sanitize-html": "^1.13.0" + } + }, "node_modules/inquirer": { "version": "7.3.3", "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.3.3.tgz", @@ -4484,11 +5137,19 @@ "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", "dev": true }, + "node_modules/jazz-midi": { + "version": "1.7.5", + "resolved": "https://registry.npmjs.org/jazz-midi/-/jazz-midi-1.7.5.tgz", + "integrity": "sha512-RUxChhn388CZfSymwwgucfaBxGu4Z0eeJOSTnUMsDN2tMx5E8G+o7h2gk/xPaDTfOORnQsJk71VhSuqiw1Hy9Q==", + "optional": true, + "engines": { + "node": ">=10.0.0" + } + }, "node_modules/js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" }, "node_modules/js-yaml": { "version": "4.1.0", @@ -4502,12 +5163,68 @@ "js-yaml": "bin/js-yaml.js" } }, + "node_modules/js2xmlparser": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/js2xmlparser/-/js2xmlparser-4.0.2.tgz", + "integrity": "sha512-6n4D8gLlLf1n5mNLQPRfViYzu9RATblzPEtm1SthMX1Pjao0r9YI9nw7ZIfRxQMERS87mcswrg+r/OYrPRX6jA==", + "dependencies": { + "xmlcreate": "^2.0.4" + } + }, "node_modules/jsbn": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", "dev": true }, + "node_modules/jsdoc": { + "version": "3.6.10", + "resolved": "https://registry.npmjs.org/jsdoc/-/jsdoc-3.6.10.tgz", + "integrity": "sha512-IdQ8ppSo5LKZ9o3M+LKIIK8i00DIe5msDvG3G81Km+1dhy0XrOWD0Ji8H61ElgyEj/O9KRLokgKbAM9XX9CJAg==", + "dependencies": { + "@babel/parser": "^7.9.4", + "@types/markdown-it": "^12.2.3", + "bluebird": "^3.7.2", + "catharsis": "^0.9.0", + "escape-string-regexp": "^2.0.0", + "js2xmlparser": "^4.0.2", + "klaw": "^4.0.1", + "markdown-it": "^12.3.2", + "markdown-it-anchor": "^8.4.1", + "marked": "^4.0.10", + "mkdirp": "^1.0.4", + "requizzle": "^0.2.3", + "strip-json-comments": "^3.1.0", + "taffydb": "2.6.2", + "underscore": "~1.13.2" + }, + "bin": { + "jsdoc": "jsdoc.js" + }, + "engines": { + "node": ">=8.15.0" + } + }, + "node_modules/jsdoc/node_modules/escape-string-regexp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", + "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", + "engines": { + "node": ">=8" + } + }, + "node_modules/jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "peer": true, + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/json-parse-better-errors": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", @@ -4538,6 +5255,18 @@ "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", "dev": true }, + "node_modules/json5": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.1.tgz", + "integrity": "sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==", + "peer": true, + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, "node_modules/jsonfile": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", @@ -4590,6 +5319,16 @@ "node": ">=0.6.0" } }, + "node_modules/jzz": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/jzz/-/jzz-1.5.0.tgz", + "integrity": "sha512-M3FrFdVulFMti3jxfjyt0h96w8Wrwe6SI6FKTW0/c+HxQg0j9P55NacpMt3dgPO9bwQaPQGujWdUBgexVMsbNw==", + "optional": true, + "dependencies": { + "@types/webmidi": "^2.0.6", + "jazz-midi": "^1.7.5" + } + }, "node_modules/kind-of": { "version": "6.0.3", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", @@ -4599,6 +5338,14 @@ "node": ">=0.10.0" } }, + "node_modules/klaw": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/klaw/-/klaw-4.0.1.tgz", + "integrity": "sha512-pgsE40/SvC7st04AHiISNewaIMUbY5V/K8b21ekiPiFoYs/EYSdsGa+FJArB1d441uq4Q8zZyIxvAzkGNlBdRw==", + "engines": { + "node": ">=14.14.0" + } + }, "node_modules/lerna": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/lerna/-/lerna-4.0.0.tgz", @@ -4674,6 +5421,14 @@ "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", "dev": true }, + "node_modules/linkify-it": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-3.0.3.tgz", + "integrity": "sha512-ynTsyrFSdE5oZ/O9GEf00kPngmOfVwazR5GKDq6EYfhlpFug3J2zybX56a2PRRpc9P+FuSoGNAwjlbDs9jJBPQ==", + "dependencies": { + "uc.micro": "^1.0.1" + } + }, "node_modules/load-json-file": { "version": "6.2.0", "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-6.2.0.tgz", @@ -4716,8 +5471,7 @@ "node_modules/lodash": { "version": "4.17.21", "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", - "dev": true + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" }, "node_modules/lodash._reinterpolate": { "version": "3.0.0", @@ -4841,6 +5595,51 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/map-stream": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/map-stream/-/map-stream-0.0.7.tgz", + "integrity": "sha1-ih8HiW2CsQkmvTdEokIACfiJdKg=" + }, + "node_modules/markdown-it": { + "version": "12.3.2", + "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-12.3.2.tgz", + "integrity": "sha512-TchMembfxfNVpHkbtriWltGWc+m3xszaRD0CZup7GFFhzIgQqxIfn3eGj1yZpfuflzPvfkt611B2Q/Bsk1YnGg==", + "dependencies": { + "argparse": "^2.0.1", + "entities": "~2.1.0", + "linkify-it": "^3.0.1", + "mdurl": "^1.0.1", + "uc.micro": "^1.0.5" + }, + "bin": { + "markdown-it": "bin/markdown-it.js" + } + }, + "node_modules/markdown-it-anchor": { + "version": "8.6.2", + "resolved": "https://registry.npmjs.org/markdown-it-anchor/-/markdown-it-anchor-8.6.2.tgz", + "integrity": "sha512-JNaekTlIwwyYGBN3zifZDxgz4bSL8sbEj58fdTZGmPSMMGXBZapFjcZk2I33Jy79c1fvCKHpF7MA/67FOTjvzA==", + "peerDependencies": { + "@types/markdown-it": "*", + "markdown-it": "*" + } + }, + "node_modules/marked": { + "version": "4.0.14", + "resolved": "https://registry.npmjs.org/marked/-/marked-4.0.14.tgz", + "integrity": "sha512-HL5sSPE/LP6U9qKgngIIPTthuxC0jrfxpYMZ3LdGDD3vTnLs59m2Z7r6+LNDR3ToqEQdkKd6YaaEfJhodJmijQ==", + "bin": { + "marked": "bin/marked.js" + }, + "engines": { + "node": ">= 12" + } + }, + "node_modules/mdurl": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz", + "integrity": "sha1-/oWy7HWlkDfyrf7BAP1sYBdhFS4=" + }, "node_modules/meow": { "version": "8.1.2", "resolved": "https://registry.npmjs.org/meow/-/meow-8.1.2.tgz", @@ -5078,7 +5877,6 @@ "version": "3.0.4", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "dev": true, "dependencies": { "brace-expansion": "^1.1.7" }, @@ -5219,7 +6017,6 @@ "version": "1.0.4", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "dev": true, "bin": { "mkdirp": "bin/cmd.js" }, @@ -5305,6 +6102,14 @@ "node": ">=0.10.0" } }, + "node_modules/moment": { + "version": "2.29.2", + "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.2.tgz", + "integrity": "sha512-UgzG4rvxYpN15jgCmVJwac49h9ly9NurikMWGPdVxm8GZD6XjkKPxDTjQQ43gtGgnV3X0cAyWDdP2Wexoquifg==", + "engines": { + "node": "*" + } + }, "node_modules/ms": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", @@ -5443,6 +6248,12 @@ "node": ">= 10.12.0" } }, + "node_modules/node-releases": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.3.tgz", + "integrity": "sha512-maHFz6OLqYxz+VQyCAtA3PTX4UP/53pa05fyDNc9CwjvJ0yEh6+xBwKsgCxMNhS8taUKBFYxfuiaD9U/55iFaw==", + "peer": true + }, "node_modules/nopt": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz", @@ -5855,7 +6666,6 @@ "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "dev": true, "dependencies": { "wrappy": "1" } @@ -6102,6 +6912,14 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/parse-node-version": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parse-node-version/-/parse-node-version-1.0.1.tgz", + "integrity": "sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA==", + "engines": { + "node": ">= 0.10" + } + }, "node_modules/parse-path": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/parse-path/-/parse-path-4.0.3.tgz", @@ -6129,6 +6947,11 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/parse-srcset": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/parse-srcset/-/parse-srcset-1.0.2.tgz", + "integrity": "sha1-8r0iH2zJcKk42IVWq8WJyqqiveE=" + }, "node_modules/parse-url": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/parse-url/-/parse-url-6.0.0.tgz", @@ -6154,7 +6977,6 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", - "dev": true, "engines": { "node": ">=0.10.0" } @@ -6189,11 +7011,16 @@ "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", "dev": true }, + "node_modules/picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "peer": true + }, "node_modules/picomatch": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "dev": true, "engines": { "node": ">=8.6" }, @@ -6392,15 +7219,6 @@ } ] }, - "node_modules/ramda": { - "version": "0.28.0", - "resolved": "https://registry.npmjs.org/ramda/-/ramda-0.28.0.tgz", - "integrity": "sha512-9QnLuG/kPVgWvMQ4aODhsBUFKOUmnbUnsSXACv+NCQZcHbeb+v8Lodp8OVxtRULN1/xOyYLLaL6npE6dMq5QTA==", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/ramda" - } - }, "node_modules/randombytes": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", @@ -6790,6 +7608,14 @@ "node": ">=0.10.0" } }, + "node_modules/requizzle": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/requizzle/-/requizzle-0.2.3.tgz", + "integrity": "sha512-YanoyJjykPxGHii0fZP0uUPEXpvqfBDxWV7s6GKAiiOsiqhX6vHNyW3Qzdmqp/iq/ExbhaGbVrjB4ruEVSM4GQ==", + "dependencies": { + "lodash": "^4.17.14" + } + }, "node_modules/resolve": { "version": "1.22.0", "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.0.tgz", @@ -6875,6 +7701,21 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/rollup": { + "version": "2.70.1", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.70.1.tgz", + "integrity": "sha512-CRYsI5EuzLbXdxC6RnYhOuRdtz4bhejPMSWjsFLfVM/7w/85n2szZv6yExqUXsBdz5KT8eoubeyDUDjhLHEslA==", + "peer": true, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=10.0.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, "node_modules/run-async": { "version": "2.4.1", "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", @@ -6951,6 +7792,46 @@ "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", "dev": true }, + "node_modules/sanitize-html": { + "version": "1.27.5", + "resolved": "https://registry.npmjs.org/sanitize-html/-/sanitize-html-1.27.5.tgz", + "integrity": "sha512-M4M5iXDAUEcZKLXkmk90zSYWEtk5NH3JmojQxKxV371fnMh+x9t1rqdmXaGoyEHw3z/X/8vnFhKjGL5xFGOJ3A==", + "dependencies": { + "htmlparser2": "^4.1.0", + "lodash": "^4.17.15", + "parse-srcset": "^1.0.2", + "postcss": "^7.0.27" + } + }, + "node_modules/sanitize-html/node_modules/picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==" + }, + "node_modules/sanitize-html/node_modules/postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dependencies": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/sanitize-html/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/semver": { "version": "7.3.5", "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", @@ -7186,6 +8067,15 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "peer": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/spdx-correct": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", @@ -7440,7 +8330,6 @@ "version": "3.1.1", "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", - "dev": true, "engines": { "node": ">=8" }, @@ -7492,6 +8381,11 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/taffydb": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/taffydb/-/taffydb-2.6.2.tgz", + "integrity": "sha1-fLy2S1oUG2ou/CxdLGe04VCyomg=" + }, "node_modules/tar": { "version": "6.1.11", "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.11.tgz", @@ -7572,6 +8466,14 @@ "node": ">= 6" } }, + "node_modules/time-stamp": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/time-stamp/-/time-stamp-1.1.0.tgz", + "integrity": "sha1-dkpaEa9QVhkhsTPztE5hhofg9cM=", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/tmp": { "version": "0.0.33", "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", @@ -7584,6 +8486,14 @@ "node": ">=0.6.0" } }, + "node_modules/to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", + "engines": { + "node": ">=4" + } + }, "node_modules/to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", @@ -7689,6 +8599,11 @@ "is-typedarray": "^1.0.0" } }, + "node_modules/uc.micro": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-1.0.6.tgz", + "integrity": "sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA==" + }, "node_modules/uglify-js": { "version": "3.15.3", "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.15.3.tgz", @@ -7732,6 +8647,11 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/underscore": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.13.2.tgz", + "integrity": "sha512-ekY1NhRzq0B08g4bGuX4wd2jZx5GnKz6mKSqFL4nqBlfyMGiG10gDFhDTMEfYmDL6Jy0FUIZp7wiRB+0BP7J2g==" + }, "node_modules/unicode-canonical-property-names-ecmascript": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz", @@ -8019,8 +8939,7 @@ "node_modules/wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", - "dev": true + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" }, "node_modules/write-file-atomic": { "version": "3.0.3", @@ -8166,6 +9085,11 @@ "node": ">=6" } }, + "node_modules/xmlcreate": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/xmlcreate/-/xmlcreate-2.0.4.tgz", + "integrity": "sha512-nquOebG4sngPmGPICTS5EnxqhKbCmz5Ox5hsszI2T6U5qdrJizBc+0ilYSEjTSzU0yZcmvppztXe/5Al5fUwdg==" + }, "node_modules/xtend": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", @@ -8276,14 +9200,21 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/yoctodelay": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/yoctodelay/-/yoctodelay-1.2.0.tgz", + "integrity": "sha512-12y/P9MSig9/5BEhBgylss+fkHiCRZCvYR81eH35NW9uw801cvJt31EAV+WOLcwZRZbLiIQl/hxcdXXXFmGvXg==", + "engines": { + "node": ">=4" + } + }, "packages/core": { "name": "@strudel.cycles/core", - "version": "0.0.1", + "version": "0.0.3", "license": "GPL-3.0-or-later", "dependencies": { "bjork": "^0.0.1", - "fraction.js": "^4.2.0", - "ramda": "^0.28.0" + "fraction.js": "^4.2.0" }, "devDependencies": { "mocha": "^9.2.2" @@ -8291,10 +9222,10 @@ }, "packages/eval": { "name": "@strudel.cycles/eval", - "version": "0.0.1", + "version": "0.0.3", "license": "GPL-3.0-or-later", "dependencies": { - "@strudel.cycles/core": "*", + "@strudel.cycles/core": "^0.0.3", "estraverse": "^5.3.0", "shift-ast": "^6.1.0", "shift-codegen": "^7.0.3", @@ -8318,88 +9249,54 @@ }, "packages/midi": { "name": "@strudel.cycles/midi", - "version": "0.0.1", + "version": "0.0.4", "license": "GPL-3.0-or-later", "dependencies": { - "@strudel.cycles/tone": "*", + "@strudel.cycles/tone": "^0.0.4", "tone": "^14.7.77", "webmidi": "^2.5.2" } }, "packages/mini": { "name": "@strudel.cycles/mini", - "version": "0.0.1", + "version": "0.0.4", "license": "GPL-3.0-or-later", "dependencies": { - "@strudel.cycles/eval": "*", - "@strudel.cycles/tone": "*" - } - }, - "packages/repl-react": { - "extraneous": true, - "dependencies": { - "@tonaljs/tonal": "^4.6.5", - "@tonejs/piano": "^0.2.1", - "bjork": "^0.0.1", - "chord-voicings": "^0.0.1", - "codemirror": "^5.65.1", - "estraverse": "^5.3.0", - "events": "^3.3.0", - "multimap": "^1.1.0", - "ramda": "^0.28.0", - "react": "^17.0.2", - "react-codemirror2": "^7.2.1", - "react-dom": "^17.0.2", - "shift-ast": "^6.1.0", - "shift-codegen": "^7.0.3", - "shift-regexp-acceptor": "^2.0.3", - "shift-spec": "^2018.0.2", - "tone": "^14.7.77", - "tune.js": "^1.0.1", - "webmidi": "^2.5.2" - }, - "devDependencies": { - "@mdx-js/react": "^1.6.22", - "@parcel/transformer-mdx": "^2.3.1", - "@snowpack/plugin-dotenv": "^2.1.0", - "@snowpack/plugin-postcss": "^1.4.3", - "@snowpack/plugin-react-refresh": "^2.5.0", - "@snowpack/plugin-typescript": "^1.2.1", - "@snowpack/web-test-runner-plugin": "^0.2.2", - "@tailwindcss/forms": "^0.4.0", - "@tailwindcss/typography": "^0.5.2", - "@testing-library/react": "^11.2.6", - "@types/chai": "^4.2.17", - "@types/mocha": "^8.2.2", - "@types/react": "^17.0.4", - "@types/react-dom": "^17.0.3", - "@types/snowpack-env": "^2.3.3", - "@web/test-runner": "^0.13.3", - "autoprefixer": "^10.4.2", - "chai": "^4.3.4", - "parcel": "^2.3.1", - "peggy": "^1.2.0", - "postcss": "^8.4.6", - "prettier": "^2.2.1", - "snowpack": "^3.3.7", - "tailwindcss": "^3.0.18", - "typescript": "^4.2.4" + "@strudel.cycles/eval": "^0.0.3", + "@strudel.cycles/tone": "^0.0.4" } }, "packages/tonal": { "name": "@strudel.cycles/tonal", - "version": "0.0.1", + "version": "0.0.3", "license": "GPL-3.0-or-later", "dependencies": { - "@strudel.cycles/core": "*" + "@strudel.cycles/core": "^0.0.3", + "@tonaljs/tonal": "^4.6.5", + "webmidi": "^3.0.15" + } + }, + "packages/tonal/node_modules/webmidi": { + "version": "3.0.19", + "resolved": "https://registry.npmjs.org/webmidi/-/webmidi-3.0.19.tgz", + "integrity": "sha512-cCBrasUmTMa8bUN/kJxfTEJABP8wUgf1ZqTu84ix89yx94pg+uSVvIoUKv0/VqZnQXCGdCvFZy2E6euZ5LybmQ==", + "dependencies": { + "@rollup/plugin-babel": "^5.3.0", + "djipevents": "^2.0.4" + }, + "engines": { + "node": ">=8.5" + }, + "optionalDependencies": { + "jzz": "^1.4.5" } }, "packages/tone": { "name": "@strudel.cycles/tone", - "version": "0.0.1", + "version": "0.0.4", "license": "GPL-3.0-or-later", "dependencies": { - "@strudel.cycles/core": "*", + "@strudel.cycles/core": "^0.0.3", "@tonejs/piano": "^0.2.1", "chord-voicings": "^0.0.1", "tone": "^14.7.77" @@ -8407,34 +9304,195 @@ }, "packages/xen": { "name": "@strudel.cycles/xen", - "version": "0.0.1", + "version": "0.0.3", "license": "GPL-3.0-or-later", "dependencies": { - "@strudel.cycles/core": "*" + "@strudel.cycles/core": "^0.0.3" } } }, "dependencies": { + "@ampproject/remapping": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.1.2.tgz", + "integrity": "sha512-hoyByceqwKirw7w3Z7gnIIZC3Wx3J484Y3L/cMpXFbr7d9ZQj2mODrirNzcJa+SM3UlpWXYvKV4RlRpFXlWgXg==", + "peer": true, + "requires": { + "@jridgewell/trace-mapping": "^0.3.0" + } + }, "@babel/code-frame": { "version": "7.16.7", "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.7.tgz", "integrity": "sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg==", - "dev": true, "requires": { "@babel/highlight": "^7.16.7" } }, + "@babel/compat-data": { + "version": "7.17.7", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.17.7.tgz", + "integrity": "sha512-p8pdE6j0a29TNGebNm7NzYZWB3xVZJBZ7XGs42uAKzQo8VQ3F0By/cQCtUEABwIqw5zo6WA4NbmxsfzADzMKnQ==", + "peer": true + }, + "@babel/core": { + "version": "7.17.9", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.17.9.tgz", + "integrity": "sha512-5ug+SfZCpDAkVp9SFIZAzlW18rlzsOcJGaetCjkySnrXXDUw9AR8cDUm1iByTmdWM6yxX6/zycaV76w3YTF2gw==", + "peer": true, + "requires": { + "@ampproject/remapping": "^2.1.0", + "@babel/code-frame": "^7.16.7", + "@babel/generator": "^7.17.9", + "@babel/helper-compilation-targets": "^7.17.7", + "@babel/helper-module-transforms": "^7.17.7", + "@babel/helpers": "^7.17.9", + "@babel/parser": "^7.17.9", + "@babel/template": "^7.16.7", + "@babel/traverse": "^7.17.9", + "@babel/types": "^7.17.0", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.1", + "semver": "^6.3.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "peer": true + } + } + }, + "@babel/generator": { + "version": "7.17.9", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.17.9.tgz", + "integrity": "sha512-rAdDousTwxbIxbz5I7GEQ3lUip+xVCXooZNbsydCWs3xA7ZsYOv+CFRdzGxRX78BmQHu9B1Eso59AOZQOJDEdQ==", + "peer": true, + "requires": { + "@babel/types": "^7.17.0", + "jsesc": "^2.5.1", + "source-map": "^0.5.0" + } + }, + "@babel/helper-compilation-targets": { + "version": "7.17.7", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.17.7.tgz", + "integrity": "sha512-UFzlz2jjd8kroj0hmCFV5zr+tQPi1dpC2cRsDV/3IEW8bJfCPrPpmcSN6ZS8RqIq4LXcmpipCQFPddyFA5Yc7w==", + "peer": true, + "requires": { + "@babel/compat-data": "^7.17.7", + "@babel/helper-validator-option": "^7.16.7", + "browserslist": "^4.17.5", + "semver": "^6.3.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "peer": true + } + } + }, + "@babel/helper-environment-visitor": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.16.7.tgz", + "integrity": "sha512-SLLb0AAn6PkUeAfKJCCOl9e1R53pQlGAfc4y4XuMRZfqeMYLE0dM1LMhqbGAlGQY0lfw5/ohoYWAe9V1yibRag==", + "peer": true, + "requires": { + "@babel/types": "^7.16.7" + } + }, + "@babel/helper-function-name": { + "version": "7.17.9", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.17.9.tgz", + "integrity": "sha512-7cRisGlVtiVqZ0MW0/yFB4atgpGLWEHUVYnb448hZK4x+vih0YO5UoS11XIYtZYqHd0dIPMdUSv8q5K4LdMnIg==", + "peer": true, + "requires": { + "@babel/template": "^7.16.7", + "@babel/types": "^7.17.0" + } + }, + "@babel/helper-hoist-variables": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.7.tgz", + "integrity": "sha512-m04d/0Op34H5v7pbZw6pSKP7weA6lsMvfiIAMeIvkY/R4xQtBSMFEigu9QTZ2qB/9l22vsxtM8a+Q8CzD255fg==", + "peer": true, + "requires": { + "@babel/types": "^7.16.7" + } + }, + "@babel/helper-module-imports": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.16.7.tgz", + "integrity": "sha512-LVtS6TqjJHFc+nYeITRo6VLXve70xmq7wPhWTqDJusJEgGmkAACWwMiTNrvfoQo6hEhFwAIixNkvB0jPXDL8Wg==", + "requires": { + "@babel/types": "^7.16.7" + } + }, + "@babel/helper-module-transforms": { + "version": "7.17.7", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.17.7.tgz", + "integrity": "sha512-VmZD99F3gNTYB7fJRDTi+u6l/zxY0BE6OIxPSU7a50s6ZUQkHwSDmV92FfM+oCG0pZRVojGYhkR8I0OGeCVREw==", + "peer": true, + "requires": { + "@babel/helper-environment-visitor": "^7.16.7", + "@babel/helper-module-imports": "^7.16.7", + "@babel/helper-simple-access": "^7.17.7", + "@babel/helper-split-export-declaration": "^7.16.7", + "@babel/helper-validator-identifier": "^7.16.7", + "@babel/template": "^7.16.7", + "@babel/traverse": "^7.17.3", + "@babel/types": "^7.17.0" + } + }, + "@babel/helper-simple-access": { + "version": "7.17.7", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.17.7.tgz", + "integrity": "sha512-txyMCGroZ96i+Pxr3Je3lzEJjqwaRC9buMUgtomcrLe5Nd0+fk1h0LLA+ixUF5OW7AhHuQ7Es1WcQJZmZsz2XA==", + "peer": true, + "requires": { + "@babel/types": "^7.17.0" + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.7.tgz", + "integrity": "sha512-xbWoy/PFoxSWazIToT9Sif+jJTlrMcndIsaOKvTA6u7QEo7ilkRZpjew18/W3c7nm8fXdUDXh02VXTbZ0pGDNw==", + "peer": true, + "requires": { + "@babel/types": "^7.16.7" + } + }, "@babel/helper-validator-identifier": { "version": "7.16.7", "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz", - "integrity": "sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==", - "dev": true + "integrity": "sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==" + }, + "@babel/helper-validator-option": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.16.7.tgz", + "integrity": "sha512-TRtenOuRUVo9oIQGPC5G9DgK4743cdxvtOw0weQNpZXaS16SCBi5MNjZF8vba3ETURjZpTbVn7Vvcf2eAwFozQ==", + "peer": true + }, + "@babel/helpers": { + "version": "7.17.9", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.17.9.tgz", + "integrity": "sha512-cPCt915ShDWUEzEp3+UNRktO2n6v49l5RSnG9M5pS24hA+2FAc5si+Pn1i4VVbQQ+jh+bIZhPFQOJOzbrOYY1Q==", + "peer": true, + "requires": { + "@babel/template": "^7.16.7", + "@babel/traverse": "^7.17.9", + "@babel/types": "^7.17.0" + } }, "@babel/highlight": { "version": "7.16.10", "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.16.10.tgz", "integrity": "sha512-5FnTQLSLswEj6IkgVw5KusNUUFY9ZGqe/TRFnP/BKYHYgfh7tc+C7mwiy95/yNP7Dh9x580Vv8r7u7ZfTBFxdw==", - "dev": true, "requires": { "@babel/helper-validator-identifier": "^7.16.7", "chalk": "^2.0.0", @@ -8445,7 +9503,6 @@ "version": "3.2.1", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, "requires": { "color-convert": "^1.9.0" } @@ -8454,7 +9511,6 @@ "version": "2.4.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, "requires": { "ansi-styles": "^3.2.1", "escape-string-regexp": "^1.0.5", @@ -8465,7 +9521,6 @@ "version": "1.9.3", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, "requires": { "color-name": "1.1.3" } @@ -8473,32 +9528,33 @@ "color-name": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "dev": true + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" }, "escape-string-regexp": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", - "dev": true + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" }, "has-flag": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" }, "supports-color": { "version": "5.5.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, "requires": { "has-flag": "^3.0.0" } } } }, + "@babel/parser": { + "version": "7.17.9", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.17.9.tgz", + "integrity": "sha512-vqUSBLP8dQHFPdPi9bc5GK9vRkYHJ49fsZdtoJ8EQ8ibpwk5rPKfvNIwChB0KVXcIjcepEBBd2VHC5r9Gy8ueg==" + }, "@babel/runtime": { "version": "7.17.0", "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.17.0.tgz", @@ -8507,6 +9563,44 @@ "regenerator-runtime": "^0.13.4" } }, + "@babel/template": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.16.7.tgz", + "integrity": "sha512-I8j/x8kHUrbYRTUxXrrMbfCa7jxkE7tZre39x3kjr9hvI82cK1FfqLygotcWN5kdPGWcLdWMHpSBavse5tWw3w==", + "peer": true, + "requires": { + "@babel/code-frame": "^7.16.7", + "@babel/parser": "^7.16.7", + "@babel/types": "^7.16.7" + } + }, + "@babel/traverse": { + "version": "7.17.9", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.17.9.tgz", + "integrity": "sha512-PQO8sDIJ8SIwipTPiR71kJQCKQYB5NGImbOviK8K+kg5xkNSYXLBupuX9QhatFowrsvo9Hj8WgArg3W7ijNAQw==", + "peer": true, + "requires": { + "@babel/code-frame": "^7.16.7", + "@babel/generator": "^7.17.9", + "@babel/helper-environment-visitor": "^7.16.7", + "@babel/helper-function-name": "^7.17.9", + "@babel/helper-hoist-variables": "^7.16.7", + "@babel/helper-split-export-declaration": "^7.16.7", + "@babel/parser": "^7.17.9", + "@babel/types": "^7.17.0", + "debug": "^4.1.0", + "globals": "^11.1.0" + } + }, + "@babel/types": { + "version": "7.17.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.17.0.tgz", + "integrity": "sha512-TmKSNO4D5rzhL5bjWFcVHHLETzfQ/AmbKpKPOSjlP0WoHZ6L911fgoOKY4Alp/emzG4cHJdyN49zpgkbXFEHHw==", + "requires": { + "@babel/helper-validator-identifier": "^7.16.7", + "to-fast-properties": "^2.0.0" + } + }, "@gar/promisify": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/@gar/promisify/-/promisify-1.1.2.tgz", @@ -8519,6 +9613,28 @@ "integrity": "sha512-H9XAx3hc0BQHY6l+IFSWHDySypcXsvsuLhgYLUGywmJ5pswRVQJUHpOsobnLYp2ZUaUlKiKDrgWWhosOwAEM8Q==", "dev": true }, + "@jridgewell/resolve-uri": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.0.5.tgz", + "integrity": "sha512-VPeQ7+wH0itvQxnG+lIzWgkysKIr3L9sslimFW55rHMdGu/qCQ5z5h9zq4gI8uBtqkpHhsF4Z/OwExufUCThew==", + "peer": true + }, + "@jridgewell/sourcemap-codec": { + "version": "1.4.11", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.11.tgz", + "integrity": "sha512-Fg32GrJo61m+VqYSdRSjRXMjQ06j8YIYfcTqndLYVAaHmroZHLJZCydsWBOTDqXS2v+mjxohBWEMfg97GXmYQg==", + "peer": true + }, + "@jridgewell/trace-mapping": { + "version": "0.3.4", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.4.tgz", + "integrity": "sha512-vFv9ttIedivx0ux3QSjhgtCVjPZd5l46ZOMDSCwnH1yUO2e964gO8LZGyv2QkqcgR6TnBU1v+1IFqmeoG+0UJQ==", + "peer": true, + "requires": { + "@jridgewell/resolve-uri": "^3.0.3", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + }, "@lerna/add": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/@lerna/add/-/add-4.0.0.tgz", @@ -9677,19 +10793,37 @@ "@octokit/openapi-types": "^11.2.0" } }, + "@rollup/plugin-babel": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/@rollup/plugin-babel/-/plugin-babel-5.3.1.tgz", + "integrity": "sha512-WFfdLWU/xVWKeRQnKmIAQULUI7Il0gZnBIH/ZFO069wYIfPu+8zrfp/KMW0atmELoRDq8FbiP3VCss9MhCut7Q==", + "requires": { + "@babel/helper-module-imports": "^7.10.4", + "@rollup/pluginutils": "^3.1.0" + } + }, + "@rollup/pluginutils": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-3.1.0.tgz", + "integrity": "sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==", + "requires": { + "@types/estree": "0.0.39", + "estree-walker": "^1.0.1", + "picomatch": "^2.2.2" + } + }, "@strudel.cycles/core": { "version": "file:packages/core", "requires": { "bjork": "^0.0.1", "fraction.js": "^4.2.0", - "mocha": "^9.2.2", - "ramda": "^0.28.0" + "mocha": "^9.2.2" } }, "@strudel.cycles/eval": { "version": "file:packages/eval", "requires": { - "@strudel.cycles/core": "*", + "@strudel.cycles/core": "^0.0.3", "estraverse": "^5.3.0", "shift-ast": "^6.1.0", "shift-codegen": "^7.0.3", @@ -9701,7 +10835,7 @@ "@strudel.cycles/midi": { "version": "file:packages/midi", "requires": { - "@strudel.cycles/tone": "*", + "@strudel.cycles/tone": "^0.0.4", "tone": "^14.7.77", "webmidi": "^2.5.2" } @@ -9709,20 +10843,34 @@ "@strudel.cycles/mini": { "version": "file:packages/mini", "requires": { - "@strudel.cycles/eval": "*", - "@strudel.cycles/tone": "*" + "@strudel.cycles/eval": "^0.0.3", + "@strudel.cycles/tone": "^0.0.4" } }, "@strudel.cycles/tonal": { "version": "file:packages/tonal", "requires": { - "@strudel.cycles/core": "*" + "@strudel.cycles/core": "^0.0.3", + "@tonaljs/tonal": "^4.6.5", + "webmidi": "^3.0.15" + }, + "dependencies": { + "webmidi": { + "version": "3.0.19", + "resolved": "https://registry.npmjs.org/webmidi/-/webmidi-3.0.19.tgz", + "integrity": "sha512-cCBrasUmTMa8bUN/kJxfTEJABP8wUgf1ZqTu84ix89yx94pg+uSVvIoUKv0/VqZnQXCGdCvFZy2E6euZ5LybmQ==", + "requires": { + "@rollup/plugin-babel": "^5.3.0", + "djipevents": "^2.0.4", + "jzz": "^1.4.5" + } + } } }, "@strudel.cycles/tone": { "version": "file:packages/tone", "requires": { - "@strudel.cycles/core": "*", + "@strudel.cycles/core": "^0.0.3", "@tonejs/piano": "^0.2.1", "chord-voicings": "^0.0.1", "tone": "^14.7.77" @@ -9731,7 +10879,7 @@ "@strudel.cycles/xen": { "version": "file:packages/xen", "requires": { - "@strudel.cycles/core": "*" + "@strudel.cycles/core": "^0.0.3" } }, "@tonaljs/abc-notation": { @@ -9954,6 +11102,30 @@ "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==", "dev": true }, + "@types/estree": { + "version": "0.0.39", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz", + "integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==" + }, + "@types/linkify-it": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@types/linkify-it/-/linkify-it-3.0.2.tgz", + "integrity": "sha512-HZQYqbiFVWufzCwexrvh694SOim8z2d+xJl5UNamcvQFejLY/2YUtzXHYi3cHdI7PMlS8ejH2slRAOJQ32aNbA==" + }, + "@types/markdown-it": { + "version": "12.2.3", + "resolved": "https://registry.npmjs.org/@types/markdown-it/-/markdown-it-12.2.3.tgz", + "integrity": "sha512-GKMHFfv3458yYy+v/N8gjufHO6MSZKCOXpZc5GXIWWy8uldwfmPn98vp81gZ5f9SVw8YYBctgfJ22a2d7AOMeQ==", + "requires": { + "@types/linkify-it": "*", + "@types/mdurl": "*" + } + }, + "@types/mdurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@types/mdurl/-/mdurl-1.0.2.tgz", + "integrity": "sha512-eC4U9MlIcu2q0KQmXszyn5Akca/0jrQmwDRgpAMJai7qBWq4amIQhZyNau4VYGtCeALvW1/NtjzJJ567aZxfKA==" + }, "@types/minimatch": { "version": "3.0.5", "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.5.tgz", @@ -9978,6 +11150,12 @@ "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==", "dev": true }, + "@types/webmidi": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@types/webmidi/-/webmidi-2.0.6.tgz", + "integrity": "sha512-sfS0A5IryqmBrUpcGPipEPeFdpqmZzP6b6lZFxHKgz5n2Vhzh4yJ5P2TvoDUhDjqJyv0Y25ng0Qodgo2Vu08ug==", + "optional": true + }, "@ungap/promise-all-settled": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/@ungap/promise-all-settled/-/promise-all-settled-1.1.2.tgz", @@ -10041,8 +11219,7 @@ "ansi-colors": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", - "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", - "dev": true + "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==" }, "ansi-escapes": { "version": "4.3.2", @@ -10053,6 +11230,14 @@ "type-fest": "^0.21.3" } }, + "ansi-gray": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/ansi-gray/-/ansi-gray-0.1.1.tgz", + "integrity": "sha1-KWLPVOyXksSFEKPetSRDaGHvclE=", + "requires": { + "ansi-wrap": "0.1.0" + } + }, "ansi-regex": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", @@ -10068,6 +11253,11 @@ "color-convert": "^2.0.1" } }, + "ansi-wrap": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/ansi-wrap/-/ansi-wrap-0.1.0.tgz", + "integrity": "sha1-qCJQ3bABXponyoLoLqYDu/pF768=" + }, "anymatch": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", @@ -10097,8 +11287,7 @@ "argparse": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" }, "array-differ": { "version": "3.0.0", @@ -10181,8 +11370,7 @@ "balanced-match": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" }, "bcrypt-pbkdf": { "version": "1.0.2", @@ -10193,6 +11381,14 @@ "tweetnacl": "^0.14.3" } }, + "beeper": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/beeper/-/beeper-2.1.0.tgz", + "integrity": "sha512-85+CcymhlP0jM4fs4ZMiMRl58VthoN9NRdvi+knXiQpP2UggkSre+A9rOZ0c2g2Vh+pEF5ZAlT+k8dsJNoanAA==", + "requires": { + "yoctodelay": "^1.1.0" + } + }, "before-after-hook": { "version": "2.2.2", "resolved": "https://registry.npmjs.org/before-after-hook/-/before-after-hook-2.2.2.tgz", @@ -10210,11 +11406,15 @@ "resolved": "https://registry.npmjs.org/bjork/-/bjork-0.0.1.tgz", "integrity": "sha1-br1a3pkWSwvgMIeI1kaRQ9XJrZw=" }, + "bluebird": { + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", + "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==" + }, "brace-expansion": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, "requires": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -10235,6 +11435,19 @@ "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", "dev": true }, + "browserslist": { + "version": "4.20.2", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.20.2.tgz", + "integrity": "sha512-CQOBCqp/9pDvDbx3xfMi+86pr4KXIf2FDkTTdeuYw8OxS9t898LA1Khq57gtufFILXpfgsSx5woNgsBgvGjpsA==", + "peer": true, + "requires": { + "caniuse-lite": "^1.0.30001317", + "electron-to-chromium": "^1.4.84", + "escalade": "^3.1.1", + "node-releases": "^2.0.2", + "picocolors": "^1.0.0" + } + }, "buffer-from": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", @@ -10332,12 +11545,26 @@ } } }, + "caniuse-lite": { + "version": "1.0.30001327", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001327.tgz", + "integrity": "sha512-1/Cg4jlD9qjZzhbzkzEaAC2JHsP0WrOc8Rd/3a3LuajGzGWR/hD7TVyvq99VqmTy99eVh8Zkmdq213OgvgXx7w==", + "peer": true + }, "caseless": { "version": "0.12.0", "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", "dev": true }, + "catharsis": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/catharsis/-/catharsis-0.9.0.tgz", + "integrity": "sha512-prMTQVpcns/tzFgFVkVp6ak6RykZyWb3gu8ckUpd6YkTlacOd3DXGJjIpD4Q6zJirizvaiAjSSHlOsA+6sNh2A==", + "requires": { + "lodash": "^4.17.15" + } + }, "chalk": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", @@ -10510,6 +11737,11 @@ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, + "color-support": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz", + "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==" + }, "columnify": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/columnify/-/columnify-1.6.0.tgz", @@ -10553,8 +11785,7 @@ "concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", - "dev": true + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" }, "concat-stream": { "version": "2.0.0", @@ -10700,6 +11931,23 @@ "q": "^1.5.1" } }, + "convert-source-map": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz", + "integrity": "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==", + "peer": true, + "requires": { + "safe-buffer": "~5.1.1" + }, + "dependencies": { + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "peer": true + } + } + }, "core-util-is": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", @@ -10755,7 +12003,6 @@ "version": "4.3.3", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", - "dev": true, "requires": { "ms": "2.1.2" }, @@ -10763,8 +12010,7 @@ "ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" } } }, @@ -10889,6 +12135,68 @@ "path-type": "^4.0.0" } }, + "djipevents": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/djipevents/-/djipevents-2.0.4.tgz", + "integrity": "sha512-ozscQ0QQaPIqx0gEMI6BIEMGWlEVuFZb+R3ER0TYrCugdEipAb38ddAXmytMOM7bnvToAzZU0RItaHcBSi6TYA==", + "requires": { + "@babel/runtime": "^7.16.3", + "gulp-jsdoc3": "^3.0.0" + } + }, + "dom-serializer": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz", + "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==", + "requires": { + "domelementtype": "^2.0.1", + "domhandler": "^4.2.0", + "entities": "^2.0.0" + }, + "dependencies": { + "domhandler": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz", + "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", + "requires": { + "domelementtype": "^2.2.0" + } + } + } + }, + "domelementtype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==" + }, + "domhandler": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-3.3.0.tgz", + "integrity": "sha512-J1C5rIANUbuYK+FuFL98650rihynUOEzRLxW+90bKZRWB6A1X1Tf82GxR1qAWLyfNPRvjqfip3Q5tdYlmAa9lA==", + "requires": { + "domelementtype": "^2.0.1" + } + }, + "domutils": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", + "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", + "requires": { + "dom-serializer": "^1.0.1", + "domelementtype": "^2.2.0", + "domhandler": "^4.2.0" + }, + "dependencies": { + "domhandler": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz", + "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", + "requires": { + "domelementtype": "^2.2.0" + } + } + } + }, "dot-prop": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-6.0.1.tgz", @@ -10914,6 +12222,12 @@ "safer-buffer": "^2.1.0" } }, + "electron-to-chromium": { + "version": "1.4.106", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.106.tgz", + "integrity": "sha512-ZYfpVLULm67K7CaaGP7DmjyeMY4naxsbTy+syVVxT6QHI1Ww8XbJjmr9fDckrhq44WzCrcC5kH3zGpdusxwwqg==", + "peer": true + }, "emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", @@ -10930,6 +12244,11 @@ "iconv-lite": "^0.6.2" } }, + "entities": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.1.0.tgz", + "integrity": "sha512-hCx1oky9PFrJ611mf0ifBLBRW8lUUVRlFolb5gWRfIELabBlbp9xZvrqZLZAs+NxFnbfQoeGd8wDkygjg7U85w==" + }, "env-paths": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", @@ -10999,8 +12318,7 @@ "escalade": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", - "dev": true + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==" }, "escape-string-regexp": { "version": "4.0.0", @@ -11013,6 +12331,11 @@ "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==" }, + "estree-walker": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz", + "integrity": "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==" + }, "esutils": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", @@ -11081,6 +12404,17 @@ "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", "dev": true }, + "fancy-log": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/fancy-log/-/fancy-log-1.3.3.tgz", + "integrity": "sha512-k9oEhlyc0FrVh25qYuSELjr8oxsCoc4/LEZfg2iJJrfEk/tZL9bCoJE47gqAvI2m/AUjluCS4+3I0eTx8n3AEw==", + "requires": { + "ansi-gray": "^0.1.1", + "color-support": "^1.1.3", + "parse-node-version": "^1.0.0", + "time-stamp": "^1.0.0" + } + }, "fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", @@ -11209,14 +12543,12 @@ "fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", - "dev": true + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" }, "fsevents": { "version": "2.3.2", "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "dev": true, "optional": true }, "function-bind": { @@ -11258,6 +12590,12 @@ } } }, + "gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "peer": true + }, "get-caller-file": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", @@ -11403,7 +12741,6 @@ "version": "7.2.0", "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", - "dev": true, "requires": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -11422,6 +12759,12 @@ "is-glob": "^4.0.1" } }, + "globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "peer": true + }, "globby": { "version": "11.1.0", "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", @@ -11448,6 +12791,39 @@ "integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==", "dev": true }, + "gulp-jsdoc3": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/gulp-jsdoc3/-/gulp-jsdoc3-3.0.0.tgz", + "integrity": "sha512-rE2jAwCPA8XFi9g4V3Z3LPhZNjxuMTIYQVMjdqZAQpRfJITLVaUK3xfmiiNTMc7j+fT7pL8Q5yj7ZPRdwCJWNg==", + "requires": { + "ansi-colors": "^4.1.1", + "beeper": "^2.0.0", + "debug": "^4.1.1", + "fancy-log": "^1.3.3", + "ink-docstrap": "^1.3.2", + "jsdoc": "^3.6.3", + "map-stream": "0.0.7", + "tmp": "0.1.0" + }, + "dependencies": { + "rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "requires": { + "glob": "^7.1.3" + } + }, + "tmp": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.1.0.tgz", + "integrity": "sha512-J7Z2K08jbGcdA1kkQpJSqLF6T0tdQqpR2pnSUXsIchbPdTI9v3e85cLW0d6WDhwuAleOV71j2xWs8qMPfK7nKw==", + "requires": { + "rimraf": "^2.6.3" + } + } + } + }, "handlebars": { "version": "4.7.7", "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.7.tgz", @@ -11548,6 +12924,17 @@ "lru-cache": "^6.0.0" } }, + "htmlparser2": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-4.1.0.tgz", + "integrity": "sha512-4zDq1a1zhE4gQso/c5LP1OtrhYTncXNSpvJYtWJBtXAETPlMfi3IFNjGuQbYLuVY4ZR0QMqRVvo4Pdy9KLyP8Q==", + "requires": { + "domelementtype": "^2.0.1", + "domhandler": "^3.0.0", + "domutils": "^2.0.0", + "entities": "^2.0.0" + } + }, "http-cache-semantics": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", @@ -11676,7 +13063,6 @@ "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "dev": true, "requires": { "once": "^1.3.0", "wrappy": "1" @@ -11685,8 +13071,7 @@ "inherits": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" }, "ini": { "version": "1.3.8", @@ -11723,6 +13108,15 @@ } } }, + "ink-docstrap": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/ink-docstrap/-/ink-docstrap-1.3.2.tgz", + "integrity": "sha512-STx5orGQU1gfrkoI/fMU7lX6CSP7LBGO10gXNgOZhwKhUqbtNjCkYSewJtNnLmWP1tAGN6oyEpG1HFPw5vpa5Q==", + "requires": { + "moment": "^2.14.1", + "sanitize-html": "^1.13.0" + } + }, "inquirer": { "version": "7.3.3", "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.3.3.tgz", @@ -12019,11 +13413,16 @@ "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", "dev": true }, + "jazz-midi": { + "version": "1.7.5", + "resolved": "https://registry.npmjs.org/jazz-midi/-/jazz-midi-1.7.5.tgz", + "integrity": "sha512-RUxChhn388CZfSymwwgucfaBxGu4Z0eeJOSTnUMsDN2tMx5E8G+o7h2gk/xPaDTfOORnQsJk71VhSuqiw1Hy9Q==", + "optional": true + }, "js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" }, "js-yaml": { "version": "4.1.0", @@ -12034,12 +13433,55 @@ "argparse": "^2.0.1" } }, + "js2xmlparser": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/js2xmlparser/-/js2xmlparser-4.0.2.tgz", + "integrity": "sha512-6n4D8gLlLf1n5mNLQPRfViYzu9RATblzPEtm1SthMX1Pjao0r9YI9nw7ZIfRxQMERS87mcswrg+r/OYrPRX6jA==", + "requires": { + "xmlcreate": "^2.0.4" + } + }, "jsbn": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", "dev": true }, + "jsdoc": { + "version": "3.6.10", + "resolved": "https://registry.npmjs.org/jsdoc/-/jsdoc-3.6.10.tgz", + "integrity": "sha512-IdQ8ppSo5LKZ9o3M+LKIIK8i00DIe5msDvG3G81Km+1dhy0XrOWD0Ji8H61ElgyEj/O9KRLokgKbAM9XX9CJAg==", + "requires": { + "@babel/parser": "^7.9.4", + "@types/markdown-it": "^12.2.3", + "bluebird": "^3.7.2", + "catharsis": "^0.9.0", + "escape-string-regexp": "^2.0.0", + "js2xmlparser": "^4.0.2", + "klaw": "^4.0.1", + "markdown-it": "^12.3.2", + "markdown-it-anchor": "^8.4.1", + "marked": "^4.0.10", + "mkdirp": "^1.0.4", + "requizzle": "^0.2.3", + "strip-json-comments": "^3.1.0", + "taffydb": "2.6.2", + "underscore": "~1.13.2" + }, + "dependencies": { + "escape-string-regexp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", + "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==" + } + } + }, + "jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "peer": true + }, "json-parse-better-errors": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", @@ -12070,6 +13512,12 @@ "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", "dev": true }, + "json5": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.1.tgz", + "integrity": "sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==", + "peer": true + }, "jsonfile": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", @@ -12108,12 +13556,27 @@ "verror": "1.10.0" } }, + "jzz": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/jzz/-/jzz-1.5.0.tgz", + "integrity": "sha512-M3FrFdVulFMti3jxfjyt0h96w8Wrwe6SI6FKTW0/c+HxQg0j9P55NacpMt3dgPO9bwQaPQGujWdUBgexVMsbNw==", + "optional": true, + "requires": { + "@types/webmidi": "^2.0.6", + "jazz-midi": "^1.7.5" + } + }, "kind-of": { "version": "6.0.3", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", "dev": true }, + "klaw": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/klaw/-/klaw-4.0.1.tgz", + "integrity": "sha512-pgsE40/SvC7st04AHiISNewaIMUbY5V/K8b21ekiPiFoYs/EYSdsGa+FJArB1d441uq4Q8zZyIxvAzkGNlBdRw==" + }, "lerna": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/lerna/-/lerna-4.0.0.tgz", @@ -12179,6 +13642,14 @@ "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", "dev": true }, + "linkify-it": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-3.0.3.tgz", + "integrity": "sha512-ynTsyrFSdE5oZ/O9GEf00kPngmOfVwazR5GKDq6EYfhlpFug3J2zybX56a2PRRpc9P+FuSoGNAwjlbDs9jJBPQ==", + "requires": { + "uc.micro": "^1.0.1" + } + }, "load-json-file": { "version": "6.2.0", "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-6.2.0.tgz", @@ -12211,8 +13682,7 @@ "lodash": { "version": "4.17.21", "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", - "dev": true + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" }, "lodash._reinterpolate": { "version": "3.0.0", @@ -12311,6 +13781,39 @@ "integrity": "sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==", "dev": true }, + "map-stream": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/map-stream/-/map-stream-0.0.7.tgz", + "integrity": "sha1-ih8HiW2CsQkmvTdEokIACfiJdKg=" + }, + "markdown-it": { + "version": "12.3.2", + "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-12.3.2.tgz", + "integrity": "sha512-TchMembfxfNVpHkbtriWltGWc+m3xszaRD0CZup7GFFhzIgQqxIfn3eGj1yZpfuflzPvfkt611B2Q/Bsk1YnGg==", + "requires": { + "argparse": "^2.0.1", + "entities": "~2.1.0", + "linkify-it": "^3.0.1", + "mdurl": "^1.0.1", + "uc.micro": "^1.0.5" + } + }, + "markdown-it-anchor": { + "version": "8.6.2", + "resolved": "https://registry.npmjs.org/markdown-it-anchor/-/markdown-it-anchor-8.6.2.tgz", + "integrity": "sha512-JNaekTlIwwyYGBN3zifZDxgz4bSL8sbEj58fdTZGmPSMMGXBZapFjcZk2I33Jy79c1fvCKHpF7MA/67FOTjvzA==", + "requires": {} + }, + "marked": { + "version": "4.0.14", + "resolved": "https://registry.npmjs.org/marked/-/marked-4.0.14.tgz", + "integrity": "sha512-HL5sSPE/LP6U9qKgngIIPTthuxC0jrfxpYMZ3LdGDD3vTnLs59m2Z7r6+LNDR3ToqEQdkKd6YaaEfJhodJmijQ==" + }, + "mdurl": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz", + "integrity": "sha1-/oWy7HWlkDfyrf7BAP1sYBdhFS4=" + }, "meow": { "version": "8.1.2", "resolved": "https://registry.npmjs.org/meow/-/meow-8.1.2.tgz", @@ -12491,7 +13994,6 @@ "version": "3.0.4", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "dev": true, "requires": { "brace-expansion": "^1.1.7" } @@ -12601,8 +14103,7 @@ "mkdirp": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "dev": true + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==" }, "mkdirp-infer-owner": { "version": "2.0.0", @@ -12664,6 +14165,11 @@ "integrity": "sha512-xV2bxeN6F7oYjZWTe/YPAy6MN2M+sL4u/Rlm2AHCIVGfo2p1yGmBHQ6vHehl4bRTZBdHu3TSkWdYgkwpYzAGSw==", "dev": true }, + "moment": { + "version": "2.29.2", + "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.2.tgz", + "integrity": "sha512-UgzG4rvxYpN15jgCmVJwac49h9ly9NurikMWGPdVxm8GZD6XjkKPxDTjQQ43gtGgnV3X0cAyWDdP2Wexoquifg==" + }, "ms": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", @@ -12771,6 +14277,12 @@ "which": "^2.0.2" } }, + "node-releases": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.3.tgz", + "integrity": "sha512-maHFz6OLqYxz+VQyCAtA3PTX4UP/53pa05fyDNc9CwjvJ0yEh6+xBwKsgCxMNhS8taUKBFYxfuiaD9U/55iFaw==", + "peer": true + }, "nopt": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz", @@ -13095,7 +14607,6 @@ "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "dev": true, "requires": { "wrappy": "1" } @@ -13264,6 +14775,11 @@ "lines-and-columns": "^1.1.6" } }, + "parse-node-version": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parse-node-version/-/parse-node-version-1.0.1.tgz", + "integrity": "sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA==" + }, "parse-path": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/parse-path/-/parse-path-4.0.3.tgz", @@ -13287,6 +14803,11 @@ } } }, + "parse-srcset": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/parse-srcset/-/parse-srcset-1.0.2.tgz", + "integrity": "sha1-8r0iH2zJcKk42IVWq8WJyqqiveE=" + }, "parse-url": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/parse-url/-/parse-url-6.0.0.tgz", @@ -13308,8 +14829,7 @@ "path-is-absolute": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", - "dev": true + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" }, "path-key": { "version": "3.1.1", @@ -13335,11 +14855,16 @@ "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", "dev": true }, + "picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "peer": true + }, "picomatch": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "dev": true + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==" }, "pify": { "version": "2.3.0", @@ -13480,11 +15005,6 @@ "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", "dev": true }, - "ramda": { - "version": "0.28.0", - "resolved": "https://registry.npmjs.org/ramda/-/ramda-0.28.0.tgz", - "integrity": "sha512-9QnLuG/kPVgWvMQ4aODhsBUFKOUmnbUnsSXACv+NCQZcHbeb+v8Lodp8OVxtRULN1/xOyYLLaL6npE6dMq5QTA==" - }, "randombytes": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", @@ -13814,6 +15334,14 @@ "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", "dev": true }, + "requizzle": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/requizzle/-/requizzle-0.2.3.tgz", + "integrity": "sha512-YanoyJjykPxGHii0fZP0uUPEXpvqfBDxWV7s6GKAiiOsiqhX6vHNyW3Qzdmqp/iq/ExbhaGbVrjB4ruEVSM4GQ==", + "requires": { + "lodash": "^4.17.14" + } + }, "resolve": { "version": "1.22.0", "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.0.tgz", @@ -13871,6 +15399,15 @@ "glob": "^7.1.3" } }, + "rollup": { + "version": "2.70.1", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.70.1.tgz", + "integrity": "sha512-CRYsI5EuzLbXdxC6RnYhOuRdtz4bhejPMSWjsFLfVM/7w/85n2szZv6yExqUXsBdz5KT8eoubeyDUDjhLHEslA==", + "peer": true, + "requires": { + "fsevents": "~2.3.2" + } + }, "run-async": { "version": "2.4.1", "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", @@ -13915,6 +15452,38 @@ "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", "dev": true }, + "sanitize-html": { + "version": "1.27.5", + "resolved": "https://registry.npmjs.org/sanitize-html/-/sanitize-html-1.27.5.tgz", + "integrity": "sha512-M4M5iXDAUEcZKLXkmk90zSYWEtk5NH3JmojQxKxV371fnMh+x9t1rqdmXaGoyEHw3z/X/8vnFhKjGL5xFGOJ3A==", + "requires": { + "htmlparser2": "^4.1.0", + "lodash": "^4.17.15", + "parse-srcset": "^1.0.2", + "postcss": "^7.0.27" + }, + "dependencies": { + "picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==" + }, + "postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "requires": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + } + } + }, "semver": { "version": "7.3.5", "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", @@ -14112,6 +15681,12 @@ "is-plain-obj": "^2.0.0" } }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "peer": true + }, "spdx-correct": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", @@ -14321,8 +15896,7 @@ "strip-json-comments": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", - "dev": true + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==" }, "strong-log-transformer": { "version": "2.1.0", @@ -14350,6 +15924,11 @@ "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", "dev": true }, + "taffydb": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/taffydb/-/taffydb-2.6.2.tgz", + "integrity": "sha1-fLy2S1oUG2ou/CxdLGe04VCyomg=" + }, "tar": { "version": "6.1.11", "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.11.tgz", @@ -14417,6 +15996,11 @@ } } }, + "time-stamp": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/time-stamp/-/time-stamp-1.1.0.tgz", + "integrity": "sha1-dkpaEa9QVhkhsTPztE5hhofg9cM=" + }, "tmp": { "version": "0.0.33", "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", @@ -14426,6 +16010,11 @@ "os-tmpdir": "~1.0.2" } }, + "to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=" + }, "to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", @@ -14510,6 +16099,11 @@ "is-typedarray": "^1.0.0" } }, + "uc.micro": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-1.0.6.tgz", + "integrity": "sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA==" + }, "uglify-js": { "version": "3.15.3", "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.15.3.tgz", @@ -14541,6 +16135,11 @@ "which-boxed-primitive": "^1.0.2" } }, + "underscore": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.13.2.tgz", + "integrity": "sha512-ekY1NhRzq0B08g4bGuX4wd2jZx5GnKz6mKSqFL4nqBlfyMGiG10gDFhDTMEfYmDL6Jy0FUIZp7wiRB+0BP7J2g==" + }, "unicode-canonical-property-names-ecmascript": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz", @@ -14776,8 +16375,7 @@ "wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", - "dev": true + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" }, "write-file-atomic": { "version": "3.0.3", @@ -14892,6 +16490,11 @@ } } }, + "xmlcreate": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/xmlcreate/-/xmlcreate-2.0.4.tgz", + "integrity": "sha512-nquOebG4sngPmGPICTS5EnxqhKbCmz5Ox5hsszI2T6U5qdrJizBc+0ilYSEjTSzU0yZcmvppztXe/5Al5fUwdg==" + }, "xtend": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", @@ -14973,6 +16576,11 @@ "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", "dev": true + }, + "yoctodelay": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/yoctodelay/-/yoctodelay-1.2.0.tgz", + "integrity": "sha512-12y/P9MSig9/5BEhBgylss+fkHiCRZCvYR81eH35NW9uw801cvJt31EAV+WOLcwZRZbLiIQl/hxcdXXXFmGvXg==" } } } diff --git a/packages/core/package-lock.json b/packages/core/package-lock.json index 1c42d2b31..29fa0271f 100644 --- a/packages/core/package-lock.json +++ b/packages/core/package-lock.json @@ -6,12 +6,11 @@ "packages": { "": { "name": "@strudel.cycles/core", - "version": "0.0.1", + "version": "0.0.3", "license": "GPL-3.0-or-later", "dependencies": { "bjork": "^0.0.1", - "fraction.js": "^4.2.0", - "ramda": "^0.28.0" + "fraction.js": "^4.2.0" }, "devDependencies": { "mocha": "^9.2.2" @@ -733,15 +732,6 @@ "url": "https://github.com/sponsors/jonschlinkert" } }, - "node_modules/ramda": { - "version": "0.28.0", - "resolved": "https://registry.npmjs.org/ramda/-/ramda-0.28.0.tgz", - "integrity": "sha512-9QnLuG/kPVgWvMQ4aODhsBUFKOUmnbUnsSXACv+NCQZcHbeb+v8Lodp8OVxtRULN1/xOyYLLaL6npE6dMq5QTA==", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/ramda" - } - }, "node_modules/randombytes": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", @@ -1485,11 +1475,6 @@ "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", "dev": true }, - "ramda": { - "version": "0.28.0", - "resolved": "https://registry.npmjs.org/ramda/-/ramda-0.28.0.tgz", - "integrity": "sha512-9QnLuG/kPVgWvMQ4aODhsBUFKOUmnbUnsSXACv+NCQZcHbeb+v8Lodp8OVxtRULN1/xOyYLLaL6npE6dMq5QTA==" - }, "randombytes": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", diff --git a/packages/core/package.json b/packages/core/package.json index 740ddf688..7980819ac 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -26,8 +26,7 @@ "homepage": "https://strudel.tidalcycles.org", "dependencies": { "bjork": "^0.0.1", - "fraction.js": "^4.2.0", - "ramda": "^0.28.0" + "fraction.js": "^4.2.0" }, "devDependencies": { "mocha": "^9.2.2" diff --git a/packages/eval/package-lock.json b/packages/eval/package-lock.json index de28d321e..f2a7b054c 100644 --- a/packages/eval/package-lock.json +++ b/packages/eval/package-lock.json @@ -6,7 +6,7 @@ "packages": { "": { "name": "@strudel.cycles/eval", - "version": "0.0.1", + "version": "0.0.3", "license": "GPL-3.0-or-later", "dependencies": { "estraverse": "^5.3.0", diff --git a/packages/midi/package-lock.json b/packages/midi/package-lock.json index 12a9b2bfe..8161e4724 100644 --- a/packages/midi/package-lock.json +++ b/packages/midi/package-lock.json @@ -6,7 +6,7 @@ "packages": { "": { "name": "@strudel.cycles/midi", - "version": "0.0.1", + "version": "0.0.4", "license": "GPL-3.0-or-later", "dependencies": { "tone": "^14.7.77", diff --git a/packages/tonal/package-lock.json b/packages/tonal/package-lock.json index 2a9c7eb4a..bc3a2854e 100644 --- a/packages/tonal/package-lock.json +++ b/packages/tonal/package-lock.json @@ -1,2756 +1,2694 @@ { - "name": "@strudel.cycles/tonal", - "version": "0.0.3", - "lockfileVersion": 2, - "requires": true, - "packages": { - "": { - "name": "@strudel.cycles/tonal", - "version": "0.0.1", - "license": "GPL-3.0-or-later", - "dependencies": { - "@strudel.cycles/core": "^0.0.1", - "@tonaljs/tonal": "^4.6.5", - "webmidi": "^3.0.15" - } - }, - "node_modules/@ampproject/remapping": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.1.2.tgz", - "integrity": "sha512-hoyByceqwKirw7w3Z7gnIIZC3Wx3J484Y3L/cMpXFbr7d9ZQj2mODrirNzcJa+SM3UlpWXYvKV4RlRpFXlWgXg==", - "peer": true, - "dependencies": { - "@jridgewell/trace-mapping": "^0.3.0" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@babel/code-frame": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.7.tgz", - "integrity": "sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg==", - "peer": true, - "dependencies": { - "@babel/highlight": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/compat-data": { - "version": "7.17.7", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.17.7.tgz", - "integrity": "sha512-p8pdE6j0a29TNGebNm7NzYZWB3xVZJBZ7XGs42uAKzQo8VQ3F0By/cQCtUEABwIqw5zo6WA4NbmxsfzADzMKnQ==", - "peer": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/core": { - "version": "7.17.8", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.17.8.tgz", - "integrity": "sha512-OdQDV/7cRBtJHLSOBqqbYNkOcydOgnX59TZx4puf41fzcVtN3e/4yqY8lMQsK+5X2lJtAdmA+6OHqsj1hBJ4IQ==", - "peer": true, - "dependencies": { - "@ampproject/remapping": "^2.1.0", - "@babel/code-frame": "^7.16.7", - "@babel/generator": "^7.17.7", - "@babel/helper-compilation-targets": "^7.17.7", - "@babel/helper-module-transforms": "^7.17.7", - "@babel/helpers": "^7.17.8", - "@babel/parser": "^7.17.8", - "@babel/template": "^7.16.7", - "@babel/traverse": "^7.17.3", - "@babel/types": "^7.17.0", - "convert-source-map": "^1.7.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.1.2", - "semver": "^6.3.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/babel" - } - }, - "node_modules/@babel/generator": { - "version": "7.17.7", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.17.7.tgz", - "integrity": "sha512-oLcVCTeIFadUoArDTwpluncplrYBmTCCZZgXCbgNGvOBBiSDDK3eWO4b/+eOTli5tKv1lg+a5/NAXg+nTcei1w==", - "peer": true, - "dependencies": { - "@babel/types": "^7.17.0", - "jsesc": "^2.5.1", - "source-map": "^0.5.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-compilation-targets": { - "version": "7.17.7", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.17.7.tgz", - "integrity": "sha512-UFzlz2jjd8kroj0hmCFV5zr+tQPi1dpC2cRsDV/3IEW8bJfCPrPpmcSN6ZS8RqIq4LXcmpipCQFPddyFA5Yc7w==", - "peer": true, - "dependencies": { - "@babel/compat-data": "^7.17.7", - "@babel/helper-validator-option": "^7.16.7", - "browserslist": "^4.17.5", - "semver": "^6.3.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-environment-visitor": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.16.7.tgz", - "integrity": "sha512-SLLb0AAn6PkUeAfKJCCOl9e1R53pQlGAfc4y4XuMRZfqeMYLE0dM1LMhqbGAlGQY0lfw5/ohoYWAe9V1yibRag==", - "peer": true, - "dependencies": { - "@babel/types": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-function-name": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.16.7.tgz", - "integrity": "sha512-QfDfEnIUyyBSR3HtrtGECuZ6DAyCkYFp7GHl75vFtTnn6pjKeK0T1DB5lLkFvBea8MdaiUABx3osbgLyInoejA==", - "peer": true, - "dependencies": { - "@babel/helper-get-function-arity": "^7.16.7", - "@babel/template": "^7.16.7", - "@babel/types": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-get-function-arity": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.16.7.tgz", - "integrity": "sha512-flc+RLSOBXzNzVhcLu6ujeHUrD6tANAOU5ojrRx/as+tbzf8+stUCj7+IfRRoAbEZqj/ahXEMsjhOhgeZsrnTw==", - "peer": true, - "dependencies": { - "@babel/types": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-hoist-variables": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.7.tgz", - "integrity": "sha512-m04d/0Op34H5v7pbZw6pSKP7weA6lsMvfiIAMeIvkY/R4xQtBSMFEigu9QTZ2qB/9l22vsxtM8a+Q8CzD255fg==", - "peer": true, - "dependencies": { - "@babel/types": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-module-imports": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.16.7.tgz", - "integrity": "sha512-LVtS6TqjJHFc+nYeITRo6VLXve70xmq7wPhWTqDJusJEgGmkAACWwMiTNrvfoQo6hEhFwAIixNkvB0jPXDL8Wg==", - "dependencies": { - "@babel/types": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-module-transforms": { - "version": "7.17.7", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.17.7.tgz", - "integrity": "sha512-VmZD99F3gNTYB7fJRDTi+u6l/zxY0BE6OIxPSU7a50s6ZUQkHwSDmV92FfM+oCG0pZRVojGYhkR8I0OGeCVREw==", - "peer": true, - "dependencies": { - "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-module-imports": "^7.16.7", - "@babel/helper-simple-access": "^7.17.7", - "@babel/helper-split-export-declaration": "^7.16.7", - "@babel/helper-validator-identifier": "^7.16.7", - "@babel/template": "^7.16.7", - "@babel/traverse": "^7.17.3", - "@babel/types": "^7.17.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-simple-access": { - "version": "7.17.7", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.17.7.tgz", - "integrity": "sha512-txyMCGroZ96i+Pxr3Je3lzEJjqwaRC9buMUgtomcrLe5Nd0+fk1h0LLA+ixUF5OW7AhHuQ7Es1WcQJZmZsz2XA==", - "peer": true, - "dependencies": { - "@babel/types": "^7.17.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-split-export-declaration": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.7.tgz", - "integrity": "sha512-xbWoy/PFoxSWazIToT9Sif+jJTlrMcndIsaOKvTA6u7QEo7ilkRZpjew18/W3c7nm8fXdUDXh02VXTbZ0pGDNw==", - "peer": true, - "dependencies": { - "@babel/types": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-identifier": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz", - "integrity": "sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-option": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.16.7.tgz", - "integrity": "sha512-TRtenOuRUVo9oIQGPC5G9DgK4743cdxvtOw0weQNpZXaS16SCBi5MNjZF8vba3ETURjZpTbVn7Vvcf2eAwFozQ==", - "peer": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helpers": { - "version": "7.17.8", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.17.8.tgz", - "integrity": "sha512-QcL86FGxpfSJwGtAvv4iG93UL6bmqBdmoVY0CMCU2g+oD2ezQse3PT5Pa+jiD6LJndBQi0EDlpzOWNlLuhz5gw==", - "peer": true, - "dependencies": { - "@babel/template": "^7.16.7", - "@babel/traverse": "^7.17.3", - "@babel/types": "^7.17.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/highlight": { - "version": "7.16.10", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.16.10.tgz", - "integrity": "sha512-5FnTQLSLswEj6IkgVw5KusNUUFY9ZGqe/TRFnP/BKYHYgfh7tc+C7mwiy95/yNP7Dh9x580Vv8r7u7ZfTBFxdw==", - "peer": true, - "dependencies": { - "@babel/helper-validator-identifier": "^7.16.7", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/parser": { - "version": "7.17.8", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.17.8.tgz", - "integrity": "sha512-BoHhDJrJXqcg+ZL16Xv39H9n+AqJ4pcDrQBGZN+wHxIysrLZ3/ECwCBUch/1zUNhnsXULcONU3Ei5Hmkfk6kiQ==", - "bin": { - "parser": "bin/babel-parser.js" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@babel/runtime": { - "version": "7.17.8", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.17.8.tgz", - "integrity": "sha512-dQpEpK0O9o6lj6oPu0gRDbbnk+4LeHlNcBpspf6Olzt3GIX4P1lWF1gS+pHLDFlaJvbR6q7jCfQ08zA4QJBnmA==", - "dependencies": { - "regenerator-runtime": "^0.13.4" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/template": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.16.7.tgz", - "integrity": "sha512-I8j/x8kHUrbYRTUxXrrMbfCa7jxkE7tZre39x3kjr9hvI82cK1FfqLygotcWN5kdPGWcLdWMHpSBavse5tWw3w==", - "peer": true, - "dependencies": { - "@babel/code-frame": "^7.16.7", - "@babel/parser": "^7.16.7", - "@babel/types": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/traverse": { - "version": "7.17.3", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.17.3.tgz", - "integrity": "sha512-5irClVky7TxRWIRtxlh2WPUUOLhcPN06AGgaQSB8AEwuyEBgJVuJ5imdHm5zxk8w0QS5T+tDfnDxAlhWjpb7cw==", - "peer": true, - "dependencies": { - "@babel/code-frame": "^7.16.7", - "@babel/generator": "^7.17.3", - "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-function-name": "^7.16.7", - "@babel/helper-hoist-variables": "^7.16.7", - "@babel/helper-split-export-declaration": "^7.16.7", - "@babel/parser": "^7.17.3", - "@babel/types": "^7.17.0", - "debug": "^4.1.0", - "globals": "^11.1.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/types": { - "version": "7.17.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.17.0.tgz", - "integrity": "sha512-TmKSNO4D5rzhL5bjWFcVHHLETzfQ/AmbKpKPOSjlP0WoHZ6L911fgoOKY4Alp/emzG4cHJdyN49zpgkbXFEHHw==", - "dependencies": { - "@babel/helper-validator-identifier": "^7.16.7", - "to-fast-properties": "^2.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@jridgewell/resolve-uri": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.0.5.tgz", - "integrity": "sha512-VPeQ7+wH0itvQxnG+lIzWgkysKIr3L9sslimFW55rHMdGu/qCQ5z5h9zq4gI8uBtqkpHhsF4Z/OwExufUCThew==", - "peer": true, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.4.11", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.11.tgz", - "integrity": "sha512-Fg32GrJo61m+VqYSdRSjRXMjQ06j8YIYfcTqndLYVAaHmroZHLJZCydsWBOTDqXS2v+mjxohBWEMfg97GXmYQg==", - "peer": true - }, - "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.4", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.4.tgz", - "integrity": "sha512-vFv9ttIedivx0ux3QSjhgtCVjPZd5l46ZOMDSCwnH1yUO2e964gO8LZGyv2QkqcgR6TnBU1v+1IFqmeoG+0UJQ==", - "peer": true, - "dependencies": { - "@jridgewell/resolve-uri": "^3.0.3", - "@jridgewell/sourcemap-codec": "^1.4.10" - } - }, - "node_modules/@rollup/plugin-babel": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/@rollup/plugin-babel/-/plugin-babel-5.3.1.tgz", - "integrity": "sha512-WFfdLWU/xVWKeRQnKmIAQULUI7Il0gZnBIH/ZFO069wYIfPu+8zrfp/KMW0atmELoRDq8FbiP3VCss9MhCut7Q==", - "dependencies": { - "@babel/helper-module-imports": "^7.10.4", - "@rollup/pluginutils": "^3.1.0" - }, - "engines": { - "node": ">= 10.0.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0", - "@types/babel__core": "^7.1.9", - "rollup": "^1.20.0||^2.0.0" - }, - "peerDependenciesMeta": { - "@types/babel__core": { - "optional": true - } - } - }, - "node_modules/@rollup/pluginutils": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-3.1.0.tgz", - "integrity": "sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==", - "dependencies": { - "@types/estree": "0.0.39", - "estree-walker": "^1.0.1", - "picomatch": "^2.2.2" - }, - "engines": { - "node": ">= 8.0.0" - }, - "peerDependencies": { - "rollup": "^1.20.0||^2.0.0" - } - }, - "node_modules/@strudel.cycles/core": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/@strudel.cycles/core/-/core-0.0.1.tgz", - "integrity": "sha512-s+swPALAfq0GbCNNii+u7Crpm0GIC6b8pYF5c20xh0wjOazX61YgIckYRue/4c6x8S4HRHR88CilB0CEo9rCZQ==", - "dependencies": { - "bjork": "^0.0.1", - "fraction.js": "^4.2.0", - "ramda": "^0.28.0" - } - }, - "node_modules/@tonaljs/abc-notation": { - "version": "4.6.5", - "resolved": "https://registry.npmjs.org/@tonaljs/abc-notation/-/abc-notation-4.6.5.tgz", - "integrity": "sha512-1S0Jnx0NfDLgyhkQOMEHqOacELL6RUdPcWWUP+nAnsOsb9owvB9RKYLSzp5odd16FVUR7U8c/JLc2yxIRvSeJw==", - "dependencies": { - "@tonaljs/core": "^4.6.5" - } - }, - "node_modules/@tonaljs/array": { - "version": "4.6.5", - "resolved": "https://registry.npmjs.org/@tonaljs/array/-/array-4.6.5.tgz", - "integrity": "sha512-7A3DbBQ+qIQ134FqE518b4tJ8V2a15Sn303JjHzgnqZqKrNh/s3wqwkL60F7LKcd09tcp+vIKQP/MYt4xMcRAA==", - "dependencies": { - "@tonaljs/core": "^4.6.5" - } - }, - "node_modules/@tonaljs/chord": { - "version": "4.6.5", - "resolved": "https://registry.npmjs.org/@tonaljs/chord/-/chord-4.6.5.tgz", - "integrity": "sha512-Pjdel4aDVv4kcx9PW6Qozt5BB9nAt13AOExfzKztpgPmlBSy0SKHse7Jp1cA4MGAuLHU8dzVssTFYpCskEFw3w==", - "dependencies": { - "@tonaljs/chord-detect": "^4.6.5", - "@tonaljs/chord-type": "^4.6.5", - "@tonaljs/collection": "^4.6.2", - "@tonaljs/core": "^4.6.5", - "@tonaljs/pcset": "^4.6.5", - "@tonaljs/scale-type": "^4.6.5" - } - }, - "node_modules/@tonaljs/chord-detect": { - "version": "4.6.5", - "resolved": "https://registry.npmjs.org/@tonaljs/chord-detect/-/chord-detect-4.6.5.tgz", - "integrity": "sha512-4xu53UP4kNTfdTNpAAVijhXcQ+ypJqmeMnsST08ZXSjoYfJUhmf5rWDWfz36KOTtNdCA6AbYgdtTYV/Xw0nd/w==", - "dependencies": { - "@tonaljs/chord-type": "^4.6.5", - "@tonaljs/core": "^4.6.5", - "@tonaljs/pcset": "^4.6.5" - } - }, - "node_modules/@tonaljs/chord-type": { - "version": "4.6.5", - "resolved": "https://registry.npmjs.org/@tonaljs/chord-type/-/chord-type-4.6.5.tgz", - "integrity": "sha512-Ol4DDopqpZCF9odosO2i8I+plud3Ul7VWJGNvL+PPCf4Qnwuz87q3aJQDLNoRUz4VyW0u66mq3LyVh6A8kb6Ug==", - "dependencies": { - "@tonaljs/core": "^4.6.5", - "@tonaljs/pcset": "^4.6.5" - } - }, - "node_modules/@tonaljs/collection": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/@tonaljs/collection/-/collection-4.6.2.tgz", - "integrity": "sha512-bfPCotLJNB/tG1NrdbsQPLDKZB5jlMs7uPQ6RYKiNkaena3345ZKkbCGl5pj6YTXeDm/oblXiSbFAn7SlLRZdQ==" - }, - "node_modules/@tonaljs/core": { - "version": "4.6.5", - "resolved": "https://registry.npmjs.org/@tonaljs/core/-/core-4.6.5.tgz", - "integrity": "sha512-t7Vx0+L3j/ubQj2AhI1H45D/K745np4DwJjJjXNi5FlGD+TL2wyw50dCwkHKGHsrLDqup1qqP6yN7LBpC6UwNg==" - }, - "node_modules/@tonaljs/duration-value": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/@tonaljs/duration-value/-/duration-value-4.6.2.tgz", - "integrity": "sha512-zrXT0L/qsDQ6251Mlqz54vcUbYUB9xb6uJhlxUzc6VauXOt8UOfrdTULubRTXTaBwWt1h8J5n9pXTQmNGzNI9A==" - }, - "node_modules/@tonaljs/interval": { - "version": "4.6.5", - "resolved": "https://registry.npmjs.org/@tonaljs/interval/-/interval-4.6.5.tgz", - "integrity": "sha512-7EDWhqZ7Nnh9oD4ahRYJHLc799ACGxYL4hDHwMKD16B2MgXqPvDeDvwQ31qUuO0ruGz8tMb3FDlgg0Hplowcbw==", - "dependencies": { - "@tonaljs/core": "^4.6.5" - } - }, - "node_modules/@tonaljs/key": { - "version": "4.6.5", - "resolved": "https://registry.npmjs.org/@tonaljs/key/-/key-4.6.5.tgz", - "integrity": "sha512-ZdZWb5IStx6CLRmdEjawR66CqNpoW3EVUua2nVZBMdgnNebWxt4nvgH/ZNvGlCQGFZkUZzRhCfTwqsS6e3OmSA==", - "dependencies": { - "@tonaljs/core": "^4.6.5", - "@tonaljs/note": "^4.6.5", - "@tonaljs/roman-numeral": "^4.6.5" - } - }, - "node_modules/@tonaljs/midi": { - "version": "4.6.5", - "resolved": "https://registry.npmjs.org/@tonaljs/midi/-/midi-4.6.5.tgz", - "integrity": "sha512-fJEZtNvV3M6yW1w+Tep60Rbv5PvuKszQcQzaJS1Loq5mHOKAzdmRfuJSpEpZBiaKEZ1WAMh1QKXYyOd+imyGQg==", - "dependencies": { - "@tonaljs/core": "^4.6.5" - } - }, - "node_modules/@tonaljs/mode": { - "version": "4.6.5", - "resolved": "https://registry.npmjs.org/@tonaljs/mode/-/mode-4.6.5.tgz", - "integrity": "sha512-54iaON1rJ6q8fV5iuei8RGDxYhKBGGxZz3rjAxGSqdTUwBRVOdPqtzOkofThf9gRGYOMhzPp1BMbxbV+UCAPsA==", - "dependencies": { - "@tonaljs/collection": "^4.6.2", - "@tonaljs/core": "^4.6.5", - "@tonaljs/interval": "^4.6.5", - "@tonaljs/pcset": "^4.6.5", - "@tonaljs/scale-type": "^4.6.5" - } - }, - "node_modules/@tonaljs/note": { - "version": "4.6.5", - "resolved": "https://registry.npmjs.org/@tonaljs/note/-/note-4.6.5.tgz", - "integrity": "sha512-Y0/eTzcReXzfcSLLG4k/dLLayqbvh/XYIkybG/QMDyR0BREuJq0Sw+NavbzhTtO0dadIQb/qfe0GFq4k2xS+NQ==", - "dependencies": { - "@tonaljs/core": "^4.6.5", - "@tonaljs/midi": "^4.6.5" - } - }, - "node_modules/@tonaljs/pcset": { - "version": "4.6.5", - "resolved": "https://registry.npmjs.org/@tonaljs/pcset/-/pcset-4.6.5.tgz", - "integrity": "sha512-oWAKflP3cREnUfScqsBzg2LLKNevxSnpDtrq8CPtwOAsrAa8PjQG07NQfhqIiFMjPUdgkDiER3qVA1n8dDwAJA==", - "dependencies": { - "@tonaljs/collection": "^4.6.2", - "@tonaljs/core": "^4.6.5" - } - }, - "node_modules/@tonaljs/progression": { - "version": "4.6.5", - "resolved": "https://registry.npmjs.org/@tonaljs/progression/-/progression-4.6.5.tgz", - "integrity": "sha512-ijYEgMFQG4izHYUw5cRtBRNBuoYzmpGvb/tRiykhJNI6XIjekZEMiMsOMfb1u5q+EGvnVNXRmrluMRDIz2rmRw==", - "dependencies": { - "@tonaljs/chord": "^4.6.5", - "@tonaljs/core": "^4.6.5", - "@tonaljs/roman-numeral": "^4.6.5" - } - }, - "node_modules/@tonaljs/range": { - "version": "4.6.5", - "resolved": "https://registry.npmjs.org/@tonaljs/range/-/range-4.6.5.tgz", - "integrity": "sha512-99cOvVJ3l4X0UJuTSa6qE87JriREnnWIsi3xo1/n7RoqFxnfi8YPh4SfJJyysvHcT18X4EfcTNde9ancMBVu6A==", - "dependencies": { - "@tonaljs/collection": "^4.6.2", - "@tonaljs/midi": "^4.6.5" - } - }, - "node_modules/@tonaljs/roman-numeral": { - "version": "4.6.5", - "resolved": "https://registry.npmjs.org/@tonaljs/roman-numeral/-/roman-numeral-4.6.5.tgz", - "integrity": "sha512-bWYQNZWKmYDDcmbQQNwcWAHfTWanpzmvI0wplrMnGd4x0op5etwUEv+Yzjg0B1ef+E+zcU02Sl0WwRJhaDK3hg==", - "dependencies": { - "@tonaljs/core": "^4.6.5" - } - }, - "node_modules/@tonaljs/scale": { - "version": "4.6.5", - "resolved": "https://registry.npmjs.org/@tonaljs/scale/-/scale-4.6.5.tgz", - "integrity": "sha512-isYDamelOBtcd5bEnJ8QV0Js7jKRwZ0FlFVE/+bUN3wsyo9u6KLL5gMyfH9RKdx74m8lE13JXYTXgKqe+AOa4A==", - "dependencies": { - "@tonaljs/chord-type": "^4.6.5", - "@tonaljs/collection": "^4.6.2", - "@tonaljs/core": "^4.6.5", - "@tonaljs/note": "^4.6.5", - "@tonaljs/pcset": "^4.6.5", - "@tonaljs/scale-type": "^4.6.5" - } - }, - "node_modules/@tonaljs/scale-type": { - "version": "4.6.5", - "resolved": "https://registry.npmjs.org/@tonaljs/scale-type/-/scale-type-4.6.5.tgz", - "integrity": "sha512-rwcDOYf2UifjLJhmuQ8f8bJSeOCMDQJ1lB7lzlqdFxes03OeQhdOEfrT0nPtW8BhBEvq4GMM2NA6CLxX8MTwOQ==", - "dependencies": { - "@tonaljs/core": "^4.6.5", - "@tonaljs/pcset": "^4.6.5" - } - }, - "node_modules/@tonaljs/time-signature": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/@tonaljs/time-signature/-/time-signature-4.6.2.tgz", - "integrity": "sha512-OlZY4gdLd21WpMeAI1nS9E9zWcYU6oAzh6ptAUndqmVnFIrIWIWKCkWapdFx8dWdqrX8jqya3m4T33wmeo7w5Q==" - }, - "node_modules/@tonaljs/tonal": { - "version": "4.6.5", - "resolved": "https://registry.npmjs.org/@tonaljs/tonal/-/tonal-4.6.5.tgz", - "integrity": "sha512-lmsWinI9dy7nQyzCEgDVeVAwJtsk4ey05cJZd6oa4QVuSFD+CR8ebaEiwT4/Na+W0kHrKicT3h0uYc2PJIvx5Q==", - "dependencies": { - "@tonaljs/abc-notation": "^4.6.5", - "@tonaljs/array": "^4.6.5", - "@tonaljs/chord": "^4.6.5", - "@tonaljs/chord-type": "^4.6.5", - "@tonaljs/collection": "^4.6.2", - "@tonaljs/core": "^4.6.5", - "@tonaljs/duration-value": "^4.6.2", - "@tonaljs/interval": "^4.6.5", - "@tonaljs/key": "^4.6.5", - "@tonaljs/midi": "^4.6.5", - "@tonaljs/mode": "^4.6.5", - "@tonaljs/note": "^4.6.5", - "@tonaljs/pcset": "^4.6.5", - "@tonaljs/progression": "^4.6.5", - "@tonaljs/range": "^4.6.5", - "@tonaljs/roman-numeral": "^4.6.5", - "@tonaljs/scale": "^4.6.5", - "@tonaljs/scale-type": "^4.6.5", - "@tonaljs/time-signature": "^4.6.2" - } - }, - "node_modules/@types/estree": { - "version": "0.0.39", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz", - "integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==" - }, - "node_modules/@types/linkify-it": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@types/linkify-it/-/linkify-it-3.0.2.tgz", - "integrity": "sha512-HZQYqbiFVWufzCwexrvh694SOim8z2d+xJl5UNamcvQFejLY/2YUtzXHYi3cHdI7PMlS8ejH2slRAOJQ32aNbA==" - }, - "node_modules/@types/markdown-it": { - "version": "12.2.3", - "resolved": "https://registry.npmjs.org/@types/markdown-it/-/markdown-it-12.2.3.tgz", - "integrity": "sha512-GKMHFfv3458yYy+v/N8gjufHO6MSZKCOXpZc5GXIWWy8uldwfmPn98vp81gZ5f9SVw8YYBctgfJ22a2d7AOMeQ==", - "dependencies": { - "@types/linkify-it": "*", - "@types/mdurl": "*" - } - }, - "node_modules/@types/mdurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@types/mdurl/-/mdurl-1.0.2.tgz", - "integrity": "sha512-eC4U9MlIcu2q0KQmXszyn5Akca/0jrQmwDRgpAMJai7qBWq4amIQhZyNau4VYGtCeALvW1/NtjzJJ567aZxfKA==" - }, - "node_modules/@types/webmidi": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/@types/webmidi/-/webmidi-2.0.6.tgz", - "integrity": "sha512-sfS0A5IryqmBrUpcGPipEPeFdpqmZzP6b6lZFxHKgz5n2Vhzh4yJ5P2TvoDUhDjqJyv0Y25ng0Qodgo2Vu08ug==" - }, - "node_modules/ansi-colors": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", - "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", - "engines": { - "node": ">=6" - } - }, - "node_modules/ansi-gray": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/ansi-gray/-/ansi-gray-0.1.1.tgz", - "integrity": "sha1-KWLPVOyXksSFEKPetSRDaGHvclE=", - "dependencies": { - "ansi-wrap": "0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "peer": true, - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/ansi-wrap": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/ansi-wrap/-/ansi-wrap-0.1.0.tgz", - "integrity": "sha1-qCJQ3bABXponyoLoLqYDu/pF768=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" - }, - "node_modules/balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" - }, - "node_modules/beeper": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/beeper/-/beeper-2.1.0.tgz", - "integrity": "sha512-85+CcymhlP0jM4fs4ZMiMRl58VthoN9NRdvi+knXiQpP2UggkSre+A9rOZ0c2g2Vh+pEF5ZAlT+k8dsJNoanAA==", - "dependencies": { - "yoctodelay": "^1.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/bjork": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/bjork/-/bjork-0.0.1.tgz", - "integrity": "sha1-br1a3pkWSwvgMIeI1kaRQ9XJrZw=" - }, - "node_modules/bluebird": { - "version": "3.7.2", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", - "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==" - }, - "node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/browserslist": { - "version": "4.20.2", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.20.2.tgz", - "integrity": "sha512-CQOBCqp/9pDvDbx3xfMi+86pr4KXIf2FDkTTdeuYw8OxS9t898LA1Khq57gtufFILXpfgsSx5woNgsBgvGjpsA==", - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - } - ], - "peer": true, - "dependencies": { - "caniuse-lite": "^1.0.30001317", - "electron-to-chromium": "^1.4.84", - "escalade": "^3.1.1", - "node-releases": "^2.0.2", - "picocolors": "^1.0.0" - }, - "bin": { - "browserslist": "cli.js" - }, - "engines": { - "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" - } - }, - "node_modules/caniuse-lite": { - "version": "1.0.30001320", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001320.tgz", - "integrity": "sha512-MWPzG54AGdo3nWx7zHZTefseM5Y1ccM7hlQKHRqJkPozUaw3hNbBTMmLn16GG2FUzjR13Cr3NPfhIieX5PzXDA==", - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/caniuse-lite" - } - ], - "peer": true - }, - "node_modules/catharsis": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/catharsis/-/catharsis-0.9.0.tgz", - "integrity": "sha512-prMTQVpcns/tzFgFVkVp6ak6RykZyWb3gu8ckUpd6YkTlacOd3DXGJjIpD4Q6zJirizvaiAjSSHlOsA+6sNh2A==", - "dependencies": { - "lodash": "^4.17.15" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "peer": true, - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "peer": true, - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "peer": true - }, - "node_modules/color-support": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz", - "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==", - "bin": { - "color-support": "bin.js" - } - }, - "node_modules/concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" - }, - "node_modules/convert-source-map": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz", - "integrity": "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==", - "peer": true, - "dependencies": { - "safe-buffer": "~5.1.1" - } - }, - "node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/djipevents": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/djipevents/-/djipevents-2.0.4.tgz", - "integrity": "sha512-ozscQ0QQaPIqx0gEMI6BIEMGWlEVuFZb+R3ER0TYrCugdEipAb38ddAXmytMOM7bnvToAzZU0RItaHcBSi6TYA==", - "dependencies": { - "@babel/runtime": "^7.16.3", - "gulp-jsdoc3": "^3.0.0" - } - }, - "node_modules/dom-serializer": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.3.2.tgz", - "integrity": "sha512-5c54Bk5Dw4qAxNOI1pFEizPSjVsx5+bpJKmL2kPn8JhBUq2q09tTCa3mjijun2NfK78NMouDYNMBkOrPZiS+ig==", - "dependencies": { - "domelementtype": "^2.0.1", - "domhandler": "^4.2.0", - "entities": "^2.0.0" - }, - "funding": { - "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" - } - }, - "node_modules/dom-serializer/node_modules/domhandler": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz", - "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", - "dependencies": { - "domelementtype": "^2.2.0" - }, - "engines": { - "node": ">= 4" - }, - "funding": { - "url": "https://github.com/fb55/domhandler?sponsor=1" - } - }, - "node_modules/domelementtype": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.2.0.tgz", - "integrity": "sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/fb55" - } - ] - }, - "node_modules/domhandler": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-3.3.0.tgz", - "integrity": "sha512-J1C5rIANUbuYK+FuFL98650rihynUOEzRLxW+90bKZRWB6A1X1Tf82GxR1qAWLyfNPRvjqfip3Q5tdYlmAa9lA==", - "dependencies": { - "domelementtype": "^2.0.1" - }, - "engines": { - "node": ">= 4" - }, - "funding": { - "url": "https://github.com/fb55/domhandler?sponsor=1" - } - }, - "node_modules/domutils": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", - "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", - "dependencies": { - "dom-serializer": "^1.0.1", - "domelementtype": "^2.2.0", - "domhandler": "^4.2.0" - }, - "funding": { - "url": "https://github.com/fb55/domutils?sponsor=1" - } - }, - "node_modules/domutils/node_modules/domhandler": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz", - "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", - "dependencies": { - "domelementtype": "^2.2.0" - }, - "engines": { - "node": ">= 4" - }, - "funding": { - "url": "https://github.com/fb55/domhandler?sponsor=1" - } - }, - "node_modules/electron-to-chromium": { - "version": "1.4.96", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.96.tgz", - "integrity": "sha512-DPNjvNGPabv6FcyjzLAN4C0psN/GgD9rSGvMTuv81SeXG/EX3mCz0wiw9N1tUEnfQXYCJi3H8M0oFPRziZh7rw==", - "peer": true - }, - "node_modules/entities": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-2.1.0.tgz", - "integrity": "sha512-hCx1oky9PFrJ611mf0ifBLBRW8lUUVRlFolb5gWRfIELabBlbp9xZvrqZLZAs+NxFnbfQoeGd8wDkygjg7U85w==", - "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" - } - }, - "node_modules/escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", - "peer": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", - "peer": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/estree-walker": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz", - "integrity": "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==" - }, - "node_modules/fancy-log": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/fancy-log/-/fancy-log-1.3.3.tgz", - "integrity": "sha512-k9oEhlyc0FrVh25qYuSELjr8oxsCoc4/LEZfg2iJJrfEk/tZL9bCoJE47gqAvI2m/AUjluCS4+3I0eTx8n3AEw==", - "dependencies": { - "ansi-gray": "^0.1.1", - "color-support": "^1.1.3", - "parse-node-version": "^1.0.0", - "time-stamp": "^1.0.0" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/fraction.js": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.2.0.tgz", - "integrity": "sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA==", - "engines": { - "node": "*" - }, - "funding": { - "type": "patreon", - "url": "https://www.patreon.com/infusion" - } - }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" - }, - "node_modules/fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "hasInstallScript": true, - "optional": true, - "os": [ - "darwin" - ], - "peer": true, - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, - "node_modules/gensync": { - "version": "1.0.0-beta.2", - "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", - "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", - "peer": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/glob": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", - "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", - "peer": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/gulp-jsdoc3": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/gulp-jsdoc3/-/gulp-jsdoc3-3.0.0.tgz", - "integrity": "sha512-rE2jAwCPA8XFi9g4V3Z3LPhZNjxuMTIYQVMjdqZAQpRfJITLVaUK3xfmiiNTMc7j+fT7pL8Q5yj7ZPRdwCJWNg==", - "dependencies": { - "ansi-colors": "^4.1.1", - "beeper": "^2.0.0", - "debug": "^4.1.1", - "fancy-log": "^1.3.3", - "ink-docstrap": "^1.3.2", - "jsdoc": "^3.6.3", - "map-stream": "0.0.7", - "tmp": "0.1.0" - } - }, - "node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "peer": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/htmlparser2": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-4.1.0.tgz", - "integrity": "sha512-4zDq1a1zhE4gQso/c5LP1OtrhYTncXNSpvJYtWJBtXAETPlMfi3IFNjGuQbYLuVY4ZR0QMqRVvo4Pdy9KLyP8Q==", - "dependencies": { - "domelementtype": "^2.0.1", - "domhandler": "^3.0.0", - "domutils": "^2.0.0", - "entities": "^2.0.0" - } - }, - "node_modules/inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" - }, - "node_modules/ink-docstrap": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/ink-docstrap/-/ink-docstrap-1.3.2.tgz", - "integrity": "sha512-STx5orGQU1gfrkoI/fMU7lX6CSP7LBGO10gXNgOZhwKhUqbtNjCkYSewJtNnLmWP1tAGN6oyEpG1HFPw5vpa5Q==", - "dependencies": { - "moment": "^2.14.1", - "sanitize-html": "^1.13.0" - } - }, - "node_modules/jazz-midi": { - "version": "1.7.5", - "resolved": "https://registry.npmjs.org/jazz-midi/-/jazz-midi-1.7.5.tgz", - "integrity": "sha512-RUxChhn388CZfSymwwgucfaBxGu4Z0eeJOSTnUMsDN2tMx5E8G+o7h2gk/xPaDTfOORnQsJk71VhSuqiw1Hy9Q==", - "optional": true, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "peer": true - }, - "node_modules/js2xmlparser": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/js2xmlparser/-/js2xmlparser-4.0.2.tgz", - "integrity": "sha512-6n4D8gLlLf1n5mNLQPRfViYzu9RATblzPEtm1SthMX1Pjao0r9YI9nw7ZIfRxQMERS87mcswrg+r/OYrPRX6jA==", - "dependencies": { - "xmlcreate": "^2.0.4" - } - }, - "node_modules/jsdoc": { - "version": "3.6.10", - "resolved": "https://registry.npmjs.org/jsdoc/-/jsdoc-3.6.10.tgz", - "integrity": "sha512-IdQ8ppSo5LKZ9o3M+LKIIK8i00DIe5msDvG3G81Km+1dhy0XrOWD0Ji8H61ElgyEj/O9KRLokgKbAM9XX9CJAg==", - "dependencies": { - "@babel/parser": "^7.9.4", - "@types/markdown-it": "^12.2.3", - "bluebird": "^3.7.2", - "catharsis": "^0.9.0", - "escape-string-regexp": "^2.0.0", - "js2xmlparser": "^4.0.2", - "klaw": "^4.0.1", - "markdown-it": "^12.3.2", - "markdown-it-anchor": "^8.4.1", - "marked": "^4.0.10", - "mkdirp": "^1.0.4", - "requizzle": "^0.2.3", - "strip-json-comments": "^3.1.0", - "taffydb": "2.6.2", - "underscore": "~1.13.2" - }, - "bin": { - "jsdoc": "jsdoc.js" - }, - "engines": { - "node": ">=8.15.0" - } - }, - "node_modules/jsdoc/node_modules/escape-string-regexp": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", - "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", - "engines": { - "node": ">=8" - } - }, - "node_modules/jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", - "peer": true, - "bin": { - "jsesc": "bin/jsesc" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/json5": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.1.tgz", - "integrity": "sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==", - "peer": true, - "bin": { - "json5": "lib/cli.js" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/jzz": { - "version": "1.4.9", - "resolved": "https://registry.npmjs.org/jzz/-/jzz-1.4.9.tgz", - "integrity": "sha512-agXk2i6yxl1rL2zIl+KtcPjgWobSOg8i16gFGfYmFWH/mi7LG4Of6ov7KBpPtFC5pxCiWFvW8O2ENyI46TJy0g==", - "optional": true, - "dependencies": { - "@types/webmidi": "^2.0.6", - "jazz-midi": "^1.7.5" - } - }, - "node_modules/klaw": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/klaw/-/klaw-4.0.1.tgz", - "integrity": "sha512-pgsE40/SvC7st04AHiISNewaIMUbY5V/K8b21ekiPiFoYs/EYSdsGa+FJArB1d441uq4Q8zZyIxvAzkGNlBdRw==", - "engines": { - "node": ">=14.14.0" - } - }, - "node_modules/linkify-it": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-3.0.3.tgz", - "integrity": "sha512-ynTsyrFSdE5oZ/O9GEf00kPngmOfVwazR5GKDq6EYfhlpFug3J2zybX56a2PRRpc9P+FuSoGNAwjlbDs9jJBPQ==", - "dependencies": { - "uc.micro": "^1.0.1" - } - }, - "node_modules/lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" - }, - "node_modules/map-stream": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/map-stream/-/map-stream-0.0.7.tgz", - "integrity": "sha1-ih8HiW2CsQkmvTdEokIACfiJdKg=" - }, - "node_modules/markdown-it": { - "version": "12.3.2", - "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-12.3.2.tgz", - "integrity": "sha512-TchMembfxfNVpHkbtriWltGWc+m3xszaRD0CZup7GFFhzIgQqxIfn3eGj1yZpfuflzPvfkt611B2Q/Bsk1YnGg==", - "dependencies": { - "argparse": "^2.0.1", - "entities": "~2.1.0", - "linkify-it": "^3.0.1", - "mdurl": "^1.0.1", - "uc.micro": "^1.0.5" - }, - "bin": { - "markdown-it": "bin/markdown-it.js" - } - }, - "node_modules/markdown-it-anchor": { - "version": "8.4.1", - "resolved": "https://registry.npmjs.org/markdown-it-anchor/-/markdown-it-anchor-8.4.1.tgz", - "integrity": "sha512-sLODeRetZ/61KkKLJElaU3NuU2z7MhXf12Ml1WJMSdwpngeofneCRF+JBbat8HiSqhniOMuTemXMrsI7hA6XyA==", - "peerDependencies": { - "@types/markdown-it": "*", - "markdown-it": "*" - } - }, - "node_modules/marked": { - "version": "4.0.12", - "resolved": "https://registry.npmjs.org/marked/-/marked-4.0.12.tgz", - "integrity": "sha512-hgibXWrEDNBWgGiK18j/4lkS6ihTe9sxtV4Q1OQppb/0zzyPSzoFANBa5MfsG/zgsWklmNnhm0XACZOH/0HBiQ==", - "bin": { - "marked": "bin/marked.js" - }, - "engines": { - "node": ">= 12" - } - }, - "node_modules/mdurl": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz", - "integrity": "sha1-/oWy7HWlkDfyrf7BAP1sYBdhFS4=" - }, - "node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "bin": { - "mkdirp": "bin/cmd.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/moment": { - "version": "2.29.1", - "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.1.tgz", - "integrity": "sha512-kHmoybcPV8Sqy59DwNDY3Jefr64lK/by/da0ViFcuA4DH0vQg5Q6Ze5VimxkfQNSC+Mls/Kx53s7TjP1RhFEDQ==", - "engines": { - "node": "*" - } - }, - "node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/node-releases": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.2.tgz", - "integrity": "sha512-XxYDdcQ6eKqp/YjI+tb2C5WM2LgjnZrfYg4vgQt49EK268b6gYCHsBLrK2qvJo4FmCtqmKezb0WZFK4fkrZNsg==", - "peer": true - }, - "node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "dependencies": { - "wrappy": "1" - } - }, - "node_modules/parse-node-version": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parse-node-version/-/parse-node-version-1.0.1.tgz", - "integrity": "sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA==", - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/parse-srcset": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/parse-srcset/-/parse-srcset-1.0.2.tgz", - "integrity": "sha1-8r0iH2zJcKk42IVWq8WJyqqiveE=" - }, - "node_modules/path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", - "peer": true - }, - "node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/postcss": { - "version": "7.0.39", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", - "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", - "dependencies": { - "picocolors": "^0.2.1", - "source-map": "^0.6.1" - }, - "engines": { - "node": ">=6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - } - }, - "node_modules/postcss/node_modules/picocolors": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", - "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==" - }, - "node_modules/postcss/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ramda": { - "version": "0.28.0", - "resolved": "https://registry.npmjs.org/ramda/-/ramda-0.28.0.tgz", - "integrity": "sha512-9QnLuG/kPVgWvMQ4aODhsBUFKOUmnbUnsSXACv+NCQZcHbeb+v8Lodp8OVxtRULN1/xOyYLLaL6npE6dMq5QTA==", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/ramda" - } - }, - "node_modules/regenerator-runtime": { - "version": "0.13.9", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz", - "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==" - }, - "node_modules/requizzle": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/requizzle/-/requizzle-0.2.3.tgz", - "integrity": "sha512-YanoyJjykPxGHii0fZP0uUPEXpvqfBDxWV7s6GKAiiOsiqhX6vHNyW3Qzdmqp/iq/ExbhaGbVrjB4ruEVSM4GQ==", - "dependencies": { - "lodash": "^4.17.14" - } - }, - "node_modules/rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - } - }, - "node_modules/rollup": { - "version": "2.70.1", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.70.1.tgz", - "integrity": "sha512-CRYsI5EuzLbXdxC6RnYhOuRdtz4bhejPMSWjsFLfVM/7w/85n2szZv6yExqUXsBdz5KT8eoubeyDUDjhLHEslA==", - "peer": true, - "bin": { - "rollup": "dist/bin/rollup" - }, - "engines": { - "node": ">=10.0.0" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - } - }, - "node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "peer": true - }, - "node_modules/sanitize-html": { - "version": "1.27.5", - "resolved": "https://registry.npmjs.org/sanitize-html/-/sanitize-html-1.27.5.tgz", - "integrity": "sha512-M4M5iXDAUEcZKLXkmk90zSYWEtk5NH3JmojQxKxV371fnMh+x9t1rqdmXaGoyEHw3z/X/8vnFhKjGL5xFGOJ3A==", - "dependencies": { - "htmlparser2": "^4.1.0", - "lodash": "^4.17.15", - "parse-srcset": "^1.0.2", - "postcss": "^7.0.27" - } - }, - "node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "peer": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "peer": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/strip-json-comments": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "peer": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/taffydb": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/taffydb/-/taffydb-2.6.2.tgz", - "integrity": "sha1-fLy2S1oUG2ou/CxdLGe04VCyomg=" - }, - "node_modules/time-stamp": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/time-stamp/-/time-stamp-1.1.0.tgz", - "integrity": "sha1-dkpaEa9QVhkhsTPztE5hhofg9cM=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/tmp": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.1.0.tgz", - "integrity": "sha512-J7Z2K08jbGcdA1kkQpJSqLF6T0tdQqpR2pnSUXsIchbPdTI9v3e85cLW0d6WDhwuAleOV71j2xWs8qMPfK7nKw==", - "dependencies": { - "rimraf": "^2.6.3" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", - "engines": { - "node": ">=4" - } - }, - "node_modules/uc.micro": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-1.0.6.tgz", - "integrity": "sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA==" - }, - "node_modules/underscore": { - "version": "1.13.2", - "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.13.2.tgz", - "integrity": "sha512-ekY1NhRzq0B08g4bGuX4wd2jZx5GnKz6mKSqFL4nqBlfyMGiG10gDFhDTMEfYmDL6Jy0FUIZp7wiRB+0BP7J2g==" - }, - "node_modules/webmidi": { - "version": "3.0.15", - "resolved": "https://registry.npmjs.org/webmidi/-/webmidi-3.0.15.tgz", - "integrity": "sha512-oAeW7HKydzP3WI/bXh4G60UHVHqw4FP2nZRlVC7Kdk1nbiUENcDTJty4FSG4CtED/V1zczD3EcO8b5fXYLFcQQ==", - "dependencies": { - "@rollup/plugin-babel": "^5.3.0", - "@types/webmidi": "^2.0.6", - "djipevents": "^2.0.4" - }, - "engines": { - "node": ">=8.5" - }, - "optionalDependencies": { - "jzz": "^1.4.5" - } - }, - "node_modules/wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" - }, - "node_modules/xmlcreate": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/xmlcreate/-/xmlcreate-2.0.4.tgz", - "integrity": "sha512-nquOebG4sngPmGPICTS5EnxqhKbCmz5Ox5hsszI2T6U5qdrJizBc+0ilYSEjTSzU0yZcmvppztXe/5Al5fUwdg==" - }, - "node_modules/yoctodelay": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/yoctodelay/-/yoctodelay-1.2.0.tgz", - "integrity": "sha512-12y/P9MSig9/5BEhBgylss+fkHiCRZCvYR81eH35NW9uw801cvJt31EAV+WOLcwZRZbLiIQl/hxcdXXXFmGvXg==", - "engines": { - "node": ">=4" - } - } - }, - "dependencies": { - "@ampproject/remapping": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.1.2.tgz", - "integrity": "sha512-hoyByceqwKirw7w3Z7gnIIZC3Wx3J484Y3L/cMpXFbr7d9ZQj2mODrirNzcJa+SM3UlpWXYvKV4RlRpFXlWgXg==", - "peer": true, - "requires": { - "@jridgewell/trace-mapping": "^0.3.0" - } - }, - "@babel/code-frame": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.7.tgz", - "integrity": "sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg==", - "peer": true, - "requires": { - "@babel/highlight": "^7.16.7" - } - }, - "@babel/compat-data": { - "version": "7.17.7", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.17.7.tgz", - "integrity": "sha512-p8pdE6j0a29TNGebNm7NzYZWB3xVZJBZ7XGs42uAKzQo8VQ3F0By/cQCtUEABwIqw5zo6WA4NbmxsfzADzMKnQ==", - "peer": true - }, - "@babel/core": { - "version": "7.17.8", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.17.8.tgz", - "integrity": "sha512-OdQDV/7cRBtJHLSOBqqbYNkOcydOgnX59TZx4puf41fzcVtN3e/4yqY8lMQsK+5X2lJtAdmA+6OHqsj1hBJ4IQ==", - "peer": true, - "requires": { - "@ampproject/remapping": "^2.1.0", - "@babel/code-frame": "^7.16.7", - "@babel/generator": "^7.17.7", - "@babel/helper-compilation-targets": "^7.17.7", - "@babel/helper-module-transforms": "^7.17.7", - "@babel/helpers": "^7.17.8", - "@babel/parser": "^7.17.8", - "@babel/template": "^7.16.7", - "@babel/traverse": "^7.17.3", - "@babel/types": "^7.17.0", - "convert-source-map": "^1.7.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.1.2", - "semver": "^6.3.0" - } - }, - "@babel/generator": { - "version": "7.17.7", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.17.7.tgz", - "integrity": "sha512-oLcVCTeIFadUoArDTwpluncplrYBmTCCZZgXCbgNGvOBBiSDDK3eWO4b/+eOTli5tKv1lg+a5/NAXg+nTcei1w==", - "peer": true, - "requires": { - "@babel/types": "^7.17.0", - "jsesc": "^2.5.1", - "source-map": "^0.5.0" - } - }, - "@babel/helper-compilation-targets": { - "version": "7.17.7", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.17.7.tgz", - "integrity": "sha512-UFzlz2jjd8kroj0hmCFV5zr+tQPi1dpC2cRsDV/3IEW8bJfCPrPpmcSN6ZS8RqIq4LXcmpipCQFPddyFA5Yc7w==", - "peer": true, - "requires": { - "@babel/compat-data": "^7.17.7", - "@babel/helper-validator-option": "^7.16.7", - "browserslist": "^4.17.5", - "semver": "^6.3.0" - } - }, - "@babel/helper-environment-visitor": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.16.7.tgz", - "integrity": "sha512-SLLb0AAn6PkUeAfKJCCOl9e1R53pQlGAfc4y4XuMRZfqeMYLE0dM1LMhqbGAlGQY0lfw5/ohoYWAe9V1yibRag==", - "peer": true, - "requires": { - "@babel/types": "^7.16.7" - } - }, - "@babel/helper-function-name": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.16.7.tgz", - "integrity": "sha512-QfDfEnIUyyBSR3HtrtGECuZ6DAyCkYFp7GHl75vFtTnn6pjKeK0T1DB5lLkFvBea8MdaiUABx3osbgLyInoejA==", - "peer": true, - "requires": { - "@babel/helper-get-function-arity": "^7.16.7", - "@babel/template": "^7.16.7", - "@babel/types": "^7.16.7" - } - }, - "@babel/helper-get-function-arity": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.16.7.tgz", - "integrity": "sha512-flc+RLSOBXzNzVhcLu6ujeHUrD6tANAOU5ojrRx/as+tbzf8+stUCj7+IfRRoAbEZqj/ahXEMsjhOhgeZsrnTw==", - "peer": true, - "requires": { - "@babel/types": "^7.16.7" - } - }, - "@babel/helper-hoist-variables": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.7.tgz", - "integrity": "sha512-m04d/0Op34H5v7pbZw6pSKP7weA6lsMvfiIAMeIvkY/R4xQtBSMFEigu9QTZ2qB/9l22vsxtM8a+Q8CzD255fg==", - "peer": true, - "requires": { - "@babel/types": "^7.16.7" - } - }, - "@babel/helper-module-imports": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.16.7.tgz", - "integrity": "sha512-LVtS6TqjJHFc+nYeITRo6VLXve70xmq7wPhWTqDJusJEgGmkAACWwMiTNrvfoQo6hEhFwAIixNkvB0jPXDL8Wg==", - "requires": { - "@babel/types": "^7.16.7" - } - }, - "@babel/helper-module-transforms": { - "version": "7.17.7", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.17.7.tgz", - "integrity": "sha512-VmZD99F3gNTYB7fJRDTi+u6l/zxY0BE6OIxPSU7a50s6ZUQkHwSDmV92FfM+oCG0pZRVojGYhkR8I0OGeCVREw==", - "peer": true, - "requires": { - "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-module-imports": "^7.16.7", - "@babel/helper-simple-access": "^7.17.7", - "@babel/helper-split-export-declaration": "^7.16.7", - "@babel/helper-validator-identifier": "^7.16.7", - "@babel/template": "^7.16.7", - "@babel/traverse": "^7.17.3", - "@babel/types": "^7.17.0" - } - }, - "@babel/helper-simple-access": { - "version": "7.17.7", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.17.7.tgz", - "integrity": "sha512-txyMCGroZ96i+Pxr3Je3lzEJjqwaRC9buMUgtomcrLe5Nd0+fk1h0LLA+ixUF5OW7AhHuQ7Es1WcQJZmZsz2XA==", - "peer": true, - "requires": { - "@babel/types": "^7.17.0" - } - }, - "@babel/helper-split-export-declaration": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.7.tgz", - "integrity": "sha512-xbWoy/PFoxSWazIToT9Sif+jJTlrMcndIsaOKvTA6u7QEo7ilkRZpjew18/W3c7nm8fXdUDXh02VXTbZ0pGDNw==", - "peer": true, - "requires": { - "@babel/types": "^7.16.7" - } - }, - "@babel/helper-validator-identifier": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz", - "integrity": "sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==" - }, - "@babel/helper-validator-option": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.16.7.tgz", - "integrity": "sha512-TRtenOuRUVo9oIQGPC5G9DgK4743cdxvtOw0weQNpZXaS16SCBi5MNjZF8vba3ETURjZpTbVn7Vvcf2eAwFozQ==", - "peer": true - }, - "@babel/helpers": { - "version": "7.17.8", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.17.8.tgz", - "integrity": "sha512-QcL86FGxpfSJwGtAvv4iG93UL6bmqBdmoVY0CMCU2g+oD2ezQse3PT5Pa+jiD6LJndBQi0EDlpzOWNlLuhz5gw==", - "peer": true, - "requires": { - "@babel/template": "^7.16.7", - "@babel/traverse": "^7.17.3", - "@babel/types": "^7.17.0" - } - }, - "@babel/highlight": { - "version": "7.16.10", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.16.10.tgz", - "integrity": "sha512-5FnTQLSLswEj6IkgVw5KusNUUFY9ZGqe/TRFnP/BKYHYgfh7tc+C7mwiy95/yNP7Dh9x580Vv8r7u7ZfTBFxdw==", - "peer": true, - "requires": { - "@babel/helper-validator-identifier": "^7.16.7", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" - } - }, - "@babel/parser": { - "version": "7.17.8", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.17.8.tgz", - "integrity": "sha512-BoHhDJrJXqcg+ZL16Xv39H9n+AqJ4pcDrQBGZN+wHxIysrLZ3/ECwCBUch/1zUNhnsXULcONU3Ei5Hmkfk6kiQ==" - }, - "@babel/runtime": { - "version": "7.17.8", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.17.8.tgz", - "integrity": "sha512-dQpEpK0O9o6lj6oPu0gRDbbnk+4LeHlNcBpspf6Olzt3GIX4P1lWF1gS+pHLDFlaJvbR6q7jCfQ08zA4QJBnmA==", - "requires": { - "regenerator-runtime": "^0.13.4" - } - }, - "@babel/template": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.16.7.tgz", - "integrity": "sha512-I8j/x8kHUrbYRTUxXrrMbfCa7jxkE7tZre39x3kjr9hvI82cK1FfqLygotcWN5kdPGWcLdWMHpSBavse5tWw3w==", - "peer": true, - "requires": { - "@babel/code-frame": "^7.16.7", - "@babel/parser": "^7.16.7", - "@babel/types": "^7.16.7" - } - }, - "@babel/traverse": { - "version": "7.17.3", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.17.3.tgz", - "integrity": "sha512-5irClVky7TxRWIRtxlh2WPUUOLhcPN06AGgaQSB8AEwuyEBgJVuJ5imdHm5zxk8w0QS5T+tDfnDxAlhWjpb7cw==", - "peer": true, - "requires": { - "@babel/code-frame": "^7.16.7", - "@babel/generator": "^7.17.3", - "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-function-name": "^7.16.7", - "@babel/helper-hoist-variables": "^7.16.7", - "@babel/helper-split-export-declaration": "^7.16.7", - "@babel/parser": "^7.17.3", - "@babel/types": "^7.17.0", - "debug": "^4.1.0", - "globals": "^11.1.0" - } - }, - "@babel/types": { - "version": "7.17.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.17.0.tgz", - "integrity": "sha512-TmKSNO4D5rzhL5bjWFcVHHLETzfQ/AmbKpKPOSjlP0WoHZ6L911fgoOKY4Alp/emzG4cHJdyN49zpgkbXFEHHw==", - "requires": { - "@babel/helper-validator-identifier": "^7.16.7", - "to-fast-properties": "^2.0.0" - } - }, - "@jridgewell/resolve-uri": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.0.5.tgz", - "integrity": "sha512-VPeQ7+wH0itvQxnG+lIzWgkysKIr3L9sslimFW55rHMdGu/qCQ5z5h9zq4gI8uBtqkpHhsF4Z/OwExufUCThew==", - "peer": true - }, - "@jridgewell/sourcemap-codec": { - "version": "1.4.11", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.11.tgz", - "integrity": "sha512-Fg32GrJo61m+VqYSdRSjRXMjQ06j8YIYfcTqndLYVAaHmroZHLJZCydsWBOTDqXS2v+mjxohBWEMfg97GXmYQg==", - "peer": true - }, - "@jridgewell/trace-mapping": { - "version": "0.3.4", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.4.tgz", - "integrity": "sha512-vFv9ttIedivx0ux3QSjhgtCVjPZd5l46ZOMDSCwnH1yUO2e964gO8LZGyv2QkqcgR6TnBU1v+1IFqmeoG+0UJQ==", - "peer": true, - "requires": { - "@jridgewell/resolve-uri": "^3.0.3", - "@jridgewell/sourcemap-codec": "^1.4.10" - } - }, - "@rollup/plugin-babel": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/@rollup/plugin-babel/-/plugin-babel-5.3.1.tgz", - "integrity": "sha512-WFfdLWU/xVWKeRQnKmIAQULUI7Il0gZnBIH/ZFO069wYIfPu+8zrfp/KMW0atmELoRDq8FbiP3VCss9MhCut7Q==", - "requires": { - "@babel/helper-module-imports": "^7.10.4", - "@rollup/pluginutils": "^3.1.0" - } - }, - "@rollup/pluginutils": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-3.1.0.tgz", - "integrity": "sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==", - "requires": { - "@types/estree": "0.0.39", - "estree-walker": "^1.0.1", - "picomatch": "^2.2.2" - } - }, - "@strudel.cycles/core": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/@strudel.cycles/core/-/core-0.0.1.tgz", - "integrity": "sha512-s+swPALAfq0GbCNNii+u7Crpm0GIC6b8pYF5c20xh0wjOazX61YgIckYRue/4c6x8S4HRHR88CilB0CEo9rCZQ==", - "requires": { - "bjork": "^0.0.1", - "fraction.js": "^4.2.0", - "ramda": "^0.28.0" - } - }, - "@tonaljs/abc-notation": { - "version": "4.6.5", - "resolved": "https://registry.npmjs.org/@tonaljs/abc-notation/-/abc-notation-4.6.5.tgz", - "integrity": "sha512-1S0Jnx0NfDLgyhkQOMEHqOacELL6RUdPcWWUP+nAnsOsb9owvB9RKYLSzp5odd16FVUR7U8c/JLc2yxIRvSeJw==", - "requires": { - "@tonaljs/core": "^4.6.5" - } - }, - "@tonaljs/array": { - "version": "4.6.5", - "resolved": "https://registry.npmjs.org/@tonaljs/array/-/array-4.6.5.tgz", - "integrity": "sha512-7A3DbBQ+qIQ134FqE518b4tJ8V2a15Sn303JjHzgnqZqKrNh/s3wqwkL60F7LKcd09tcp+vIKQP/MYt4xMcRAA==", - "requires": { - "@tonaljs/core": "^4.6.5" - } - }, - "@tonaljs/chord": { - "version": "4.6.5", - "resolved": "https://registry.npmjs.org/@tonaljs/chord/-/chord-4.6.5.tgz", - "integrity": "sha512-Pjdel4aDVv4kcx9PW6Qozt5BB9nAt13AOExfzKztpgPmlBSy0SKHse7Jp1cA4MGAuLHU8dzVssTFYpCskEFw3w==", - "requires": { - "@tonaljs/chord-detect": "^4.6.5", - "@tonaljs/chord-type": "^4.6.5", - "@tonaljs/collection": "^4.6.2", - "@tonaljs/core": "^4.6.5", - "@tonaljs/pcset": "^4.6.5", - "@tonaljs/scale-type": "^4.6.5" - } - }, - "@tonaljs/chord-detect": { - "version": "4.6.5", - "resolved": "https://registry.npmjs.org/@tonaljs/chord-detect/-/chord-detect-4.6.5.tgz", - "integrity": "sha512-4xu53UP4kNTfdTNpAAVijhXcQ+ypJqmeMnsST08ZXSjoYfJUhmf5rWDWfz36KOTtNdCA6AbYgdtTYV/Xw0nd/w==", - "requires": { - "@tonaljs/chord-type": "^4.6.5", - "@tonaljs/core": "^4.6.5", - "@tonaljs/pcset": "^4.6.5" - } - }, - "@tonaljs/chord-type": { - "version": "4.6.5", - "resolved": "https://registry.npmjs.org/@tonaljs/chord-type/-/chord-type-4.6.5.tgz", - "integrity": "sha512-Ol4DDopqpZCF9odosO2i8I+plud3Ul7VWJGNvL+PPCf4Qnwuz87q3aJQDLNoRUz4VyW0u66mq3LyVh6A8kb6Ug==", - "requires": { - "@tonaljs/core": "^4.6.5", - "@tonaljs/pcset": "^4.6.5" - } - }, - "@tonaljs/collection": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/@tonaljs/collection/-/collection-4.6.2.tgz", - "integrity": "sha512-bfPCotLJNB/tG1NrdbsQPLDKZB5jlMs7uPQ6RYKiNkaena3345ZKkbCGl5pj6YTXeDm/oblXiSbFAn7SlLRZdQ==" - }, - "@tonaljs/core": { - "version": "4.6.5", - "resolved": "https://registry.npmjs.org/@tonaljs/core/-/core-4.6.5.tgz", - "integrity": "sha512-t7Vx0+L3j/ubQj2AhI1H45D/K745np4DwJjJjXNi5FlGD+TL2wyw50dCwkHKGHsrLDqup1qqP6yN7LBpC6UwNg==" - }, - "@tonaljs/duration-value": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/@tonaljs/duration-value/-/duration-value-4.6.2.tgz", - "integrity": "sha512-zrXT0L/qsDQ6251Mlqz54vcUbYUB9xb6uJhlxUzc6VauXOt8UOfrdTULubRTXTaBwWt1h8J5n9pXTQmNGzNI9A==" - }, - "@tonaljs/interval": { - "version": "4.6.5", - "resolved": "https://registry.npmjs.org/@tonaljs/interval/-/interval-4.6.5.tgz", - "integrity": "sha512-7EDWhqZ7Nnh9oD4ahRYJHLc799ACGxYL4hDHwMKD16B2MgXqPvDeDvwQ31qUuO0ruGz8tMb3FDlgg0Hplowcbw==", - "requires": { - "@tonaljs/core": "^4.6.5" - } - }, - "@tonaljs/key": { - "version": "4.6.5", - "resolved": "https://registry.npmjs.org/@tonaljs/key/-/key-4.6.5.tgz", - "integrity": "sha512-ZdZWb5IStx6CLRmdEjawR66CqNpoW3EVUua2nVZBMdgnNebWxt4nvgH/ZNvGlCQGFZkUZzRhCfTwqsS6e3OmSA==", - "requires": { - "@tonaljs/core": "^4.6.5", - "@tonaljs/note": "^4.6.5", - "@tonaljs/roman-numeral": "^4.6.5" - } - }, - "@tonaljs/midi": { - "version": "4.6.5", - "resolved": "https://registry.npmjs.org/@tonaljs/midi/-/midi-4.6.5.tgz", - "integrity": "sha512-fJEZtNvV3M6yW1w+Tep60Rbv5PvuKszQcQzaJS1Loq5mHOKAzdmRfuJSpEpZBiaKEZ1WAMh1QKXYyOd+imyGQg==", - "requires": { - "@tonaljs/core": "^4.6.5" - } - }, - "@tonaljs/mode": { - "version": "4.6.5", - "resolved": "https://registry.npmjs.org/@tonaljs/mode/-/mode-4.6.5.tgz", - "integrity": "sha512-54iaON1rJ6q8fV5iuei8RGDxYhKBGGxZz3rjAxGSqdTUwBRVOdPqtzOkofThf9gRGYOMhzPp1BMbxbV+UCAPsA==", - "requires": { - "@tonaljs/collection": "^4.6.2", - "@tonaljs/core": "^4.6.5", - "@tonaljs/interval": "^4.6.5", - "@tonaljs/pcset": "^4.6.5", - "@tonaljs/scale-type": "^4.6.5" - } - }, - "@tonaljs/note": { - "version": "4.6.5", - "resolved": "https://registry.npmjs.org/@tonaljs/note/-/note-4.6.5.tgz", - "integrity": "sha512-Y0/eTzcReXzfcSLLG4k/dLLayqbvh/XYIkybG/QMDyR0BREuJq0Sw+NavbzhTtO0dadIQb/qfe0GFq4k2xS+NQ==", - "requires": { - "@tonaljs/core": "^4.6.5", - "@tonaljs/midi": "^4.6.5" - } - }, - "@tonaljs/pcset": { - "version": "4.6.5", - "resolved": "https://registry.npmjs.org/@tonaljs/pcset/-/pcset-4.6.5.tgz", - "integrity": "sha512-oWAKflP3cREnUfScqsBzg2LLKNevxSnpDtrq8CPtwOAsrAa8PjQG07NQfhqIiFMjPUdgkDiER3qVA1n8dDwAJA==", - "requires": { - "@tonaljs/collection": "^4.6.2", - "@tonaljs/core": "^4.6.5" - } - }, - "@tonaljs/progression": { - "version": "4.6.5", - "resolved": "https://registry.npmjs.org/@tonaljs/progression/-/progression-4.6.5.tgz", - "integrity": "sha512-ijYEgMFQG4izHYUw5cRtBRNBuoYzmpGvb/tRiykhJNI6XIjekZEMiMsOMfb1u5q+EGvnVNXRmrluMRDIz2rmRw==", - "requires": { - "@tonaljs/chord": "^4.6.5", - "@tonaljs/core": "^4.6.5", - "@tonaljs/roman-numeral": "^4.6.5" - } - }, - "@tonaljs/range": { - "version": "4.6.5", - "resolved": "https://registry.npmjs.org/@tonaljs/range/-/range-4.6.5.tgz", - "integrity": "sha512-99cOvVJ3l4X0UJuTSa6qE87JriREnnWIsi3xo1/n7RoqFxnfi8YPh4SfJJyysvHcT18X4EfcTNde9ancMBVu6A==", - "requires": { - "@tonaljs/collection": "^4.6.2", - "@tonaljs/midi": "^4.6.5" - } - }, - "@tonaljs/roman-numeral": { - "version": "4.6.5", - "resolved": "https://registry.npmjs.org/@tonaljs/roman-numeral/-/roman-numeral-4.6.5.tgz", - "integrity": "sha512-bWYQNZWKmYDDcmbQQNwcWAHfTWanpzmvI0wplrMnGd4x0op5etwUEv+Yzjg0B1ef+E+zcU02Sl0WwRJhaDK3hg==", - "requires": { - "@tonaljs/core": "^4.6.5" - } - }, - "@tonaljs/scale": { - "version": "4.6.5", - "resolved": "https://registry.npmjs.org/@tonaljs/scale/-/scale-4.6.5.tgz", - "integrity": "sha512-isYDamelOBtcd5bEnJ8QV0Js7jKRwZ0FlFVE/+bUN3wsyo9u6KLL5gMyfH9RKdx74m8lE13JXYTXgKqe+AOa4A==", - "requires": { - "@tonaljs/chord-type": "^4.6.5", - "@tonaljs/collection": "^4.6.2", - "@tonaljs/core": "^4.6.5", - "@tonaljs/note": "^4.6.5", - "@tonaljs/pcset": "^4.6.5", - "@tonaljs/scale-type": "^4.6.5" - } - }, - "@tonaljs/scale-type": { - "version": "4.6.5", - "resolved": "https://registry.npmjs.org/@tonaljs/scale-type/-/scale-type-4.6.5.tgz", - "integrity": "sha512-rwcDOYf2UifjLJhmuQ8f8bJSeOCMDQJ1lB7lzlqdFxes03OeQhdOEfrT0nPtW8BhBEvq4GMM2NA6CLxX8MTwOQ==", - "requires": { - "@tonaljs/core": "^4.6.5", - "@tonaljs/pcset": "^4.6.5" - } - }, - "@tonaljs/time-signature": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/@tonaljs/time-signature/-/time-signature-4.6.2.tgz", - "integrity": "sha512-OlZY4gdLd21WpMeAI1nS9E9zWcYU6oAzh6ptAUndqmVnFIrIWIWKCkWapdFx8dWdqrX8jqya3m4T33wmeo7w5Q==" - }, - "@tonaljs/tonal": { - "version": "4.6.5", - "resolved": "https://registry.npmjs.org/@tonaljs/tonal/-/tonal-4.6.5.tgz", - "integrity": "sha512-lmsWinI9dy7nQyzCEgDVeVAwJtsk4ey05cJZd6oa4QVuSFD+CR8ebaEiwT4/Na+W0kHrKicT3h0uYc2PJIvx5Q==", - "requires": { - "@tonaljs/abc-notation": "^4.6.5", - "@tonaljs/array": "^4.6.5", - "@tonaljs/chord": "^4.6.5", - "@tonaljs/chord-type": "^4.6.5", - "@tonaljs/collection": "^4.6.2", - "@tonaljs/core": "^4.6.5", - "@tonaljs/duration-value": "^4.6.2", - "@tonaljs/interval": "^4.6.5", - "@tonaljs/key": "^4.6.5", - "@tonaljs/midi": "^4.6.5", - "@tonaljs/mode": "^4.6.5", - "@tonaljs/note": "^4.6.5", - "@tonaljs/pcset": "^4.6.5", - "@tonaljs/progression": "^4.6.5", - "@tonaljs/range": "^4.6.5", - "@tonaljs/roman-numeral": "^4.6.5", - "@tonaljs/scale": "^4.6.5", - "@tonaljs/scale-type": "^4.6.5", - "@tonaljs/time-signature": "^4.6.2" - } - }, - "@types/estree": { - "version": "0.0.39", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz", - "integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==" - }, - "@types/linkify-it": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@types/linkify-it/-/linkify-it-3.0.2.tgz", - "integrity": "sha512-HZQYqbiFVWufzCwexrvh694SOim8z2d+xJl5UNamcvQFejLY/2YUtzXHYi3cHdI7PMlS8ejH2slRAOJQ32aNbA==" - }, - "@types/markdown-it": { - "version": "12.2.3", - "resolved": "https://registry.npmjs.org/@types/markdown-it/-/markdown-it-12.2.3.tgz", - "integrity": "sha512-GKMHFfv3458yYy+v/N8gjufHO6MSZKCOXpZc5GXIWWy8uldwfmPn98vp81gZ5f9SVw8YYBctgfJ22a2d7AOMeQ==", - "requires": { - "@types/linkify-it": "*", - "@types/mdurl": "*" - } - }, - "@types/mdurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@types/mdurl/-/mdurl-1.0.2.tgz", - "integrity": "sha512-eC4U9MlIcu2q0KQmXszyn5Akca/0jrQmwDRgpAMJai7qBWq4amIQhZyNau4VYGtCeALvW1/NtjzJJ567aZxfKA==" - }, - "@types/webmidi": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/@types/webmidi/-/webmidi-2.0.6.tgz", - "integrity": "sha512-sfS0A5IryqmBrUpcGPipEPeFdpqmZzP6b6lZFxHKgz5n2Vhzh4yJ5P2TvoDUhDjqJyv0Y25ng0Qodgo2Vu08ug==" - }, - "ansi-colors": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", - "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==" - }, - "ansi-gray": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/ansi-gray/-/ansi-gray-0.1.1.tgz", - "integrity": "sha1-KWLPVOyXksSFEKPetSRDaGHvclE=", - "requires": { - "ansi-wrap": "0.1.0" - } - }, - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "peer": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "ansi-wrap": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/ansi-wrap/-/ansi-wrap-0.1.0.tgz", - "integrity": "sha1-qCJQ3bABXponyoLoLqYDu/pF768=" - }, - "argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" - }, - "balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" - }, - "beeper": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/beeper/-/beeper-2.1.0.tgz", - "integrity": "sha512-85+CcymhlP0jM4fs4ZMiMRl58VthoN9NRdvi+knXiQpP2UggkSre+A9rOZ0c2g2Vh+pEF5ZAlT+k8dsJNoanAA==", - "requires": { - "yoctodelay": "^1.1.0" - } - }, - "bjork": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/bjork/-/bjork-0.0.1.tgz", - "integrity": "sha1-br1a3pkWSwvgMIeI1kaRQ9XJrZw=" - }, - "bluebird": { - "version": "3.7.2", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", - "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==" - }, - "brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "browserslist": { - "version": "4.20.2", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.20.2.tgz", - "integrity": "sha512-CQOBCqp/9pDvDbx3xfMi+86pr4KXIf2FDkTTdeuYw8OxS9t898LA1Khq57gtufFILXpfgsSx5woNgsBgvGjpsA==", - "peer": true, - "requires": { - "caniuse-lite": "^1.0.30001317", - "electron-to-chromium": "^1.4.84", - "escalade": "^3.1.1", - "node-releases": "^2.0.2", - "picocolors": "^1.0.0" - } - }, - "caniuse-lite": { - "version": "1.0.30001320", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001320.tgz", - "integrity": "sha512-MWPzG54AGdo3nWx7zHZTefseM5Y1ccM7hlQKHRqJkPozUaw3hNbBTMmLn16GG2FUzjR13Cr3NPfhIieX5PzXDA==", - "peer": true - }, - "catharsis": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/catharsis/-/catharsis-0.9.0.tgz", - "integrity": "sha512-prMTQVpcns/tzFgFVkVp6ak6RykZyWb3gu8ckUpd6YkTlacOd3DXGJjIpD4Q6zJirizvaiAjSSHlOsA+6sNh2A==", - "requires": { - "lodash": "^4.17.15" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "peer": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "peer": true, - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "peer": true - }, - "color-support": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz", - "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==" - }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" - }, - "convert-source-map": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz", - "integrity": "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==", - "peer": true, - "requires": { - "safe-buffer": "~5.1.1" - } - }, - "debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "requires": { - "ms": "2.1.2" - } - }, - "djipevents": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/djipevents/-/djipevents-2.0.4.tgz", - "integrity": "sha512-ozscQ0QQaPIqx0gEMI6BIEMGWlEVuFZb+R3ER0TYrCugdEipAb38ddAXmytMOM7bnvToAzZU0RItaHcBSi6TYA==", - "requires": { - "@babel/runtime": "^7.16.3", - "gulp-jsdoc3": "^3.0.0" - } - }, - "dom-serializer": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.3.2.tgz", - "integrity": "sha512-5c54Bk5Dw4qAxNOI1pFEizPSjVsx5+bpJKmL2kPn8JhBUq2q09tTCa3mjijun2NfK78NMouDYNMBkOrPZiS+ig==", - "requires": { - "domelementtype": "^2.0.1", - "domhandler": "^4.2.0", - "entities": "^2.0.0" - }, - "dependencies": { - "domhandler": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz", - "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", - "requires": { - "domelementtype": "^2.2.0" - } - } - } - }, - "domelementtype": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.2.0.tgz", - "integrity": "sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A==" - }, - "domhandler": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-3.3.0.tgz", - "integrity": "sha512-J1C5rIANUbuYK+FuFL98650rihynUOEzRLxW+90bKZRWB6A1X1Tf82GxR1qAWLyfNPRvjqfip3Q5tdYlmAa9lA==", - "requires": { - "domelementtype": "^2.0.1" - } - }, - "domutils": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", - "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", - "requires": { - "dom-serializer": "^1.0.1", - "domelementtype": "^2.2.0", - "domhandler": "^4.2.0" - }, - "dependencies": { - "domhandler": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz", - "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", - "requires": { - "domelementtype": "^2.2.0" - } - } - } - }, - "electron-to-chromium": { - "version": "1.4.96", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.96.tgz", - "integrity": "sha512-DPNjvNGPabv6FcyjzLAN4C0psN/GgD9rSGvMTuv81SeXG/EX3mCz0wiw9N1tUEnfQXYCJi3H8M0oFPRziZh7rw==", - "peer": true - }, - "entities": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-2.1.0.tgz", - "integrity": "sha512-hCx1oky9PFrJ611mf0ifBLBRW8lUUVRlFolb5gWRfIELabBlbp9xZvrqZLZAs+NxFnbfQoeGd8wDkygjg7U85w==" - }, - "escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", - "peer": true - }, - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", - "peer": true - }, - "estree-walker": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz", - "integrity": "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==" - }, - "fancy-log": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/fancy-log/-/fancy-log-1.3.3.tgz", - "integrity": "sha512-k9oEhlyc0FrVh25qYuSELjr8oxsCoc4/LEZfg2iJJrfEk/tZL9bCoJE47gqAvI2m/AUjluCS4+3I0eTx8n3AEw==", - "requires": { - "ansi-gray": "^0.1.1", - "color-support": "^1.1.3", - "parse-node-version": "^1.0.0", - "time-stamp": "^1.0.0" - } - }, - "fraction.js": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.2.0.tgz", - "integrity": "sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA==" - }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" - }, - "fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "optional": true, - "peer": true - }, - "gensync": { - "version": "1.0.0-beta.2", - "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", - "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", - "peer": true - }, - "glob": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", - "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", - "peer": true - }, - "gulp-jsdoc3": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/gulp-jsdoc3/-/gulp-jsdoc3-3.0.0.tgz", - "integrity": "sha512-rE2jAwCPA8XFi9g4V3Z3LPhZNjxuMTIYQVMjdqZAQpRfJITLVaUK3xfmiiNTMc7j+fT7pL8Q5yj7ZPRdwCJWNg==", - "requires": { - "ansi-colors": "^4.1.1", - "beeper": "^2.0.0", - "debug": "^4.1.1", - "fancy-log": "^1.3.3", - "ink-docstrap": "^1.3.2", - "jsdoc": "^3.6.3", - "map-stream": "0.0.7", - "tmp": "0.1.0" - } - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "peer": true - }, - "htmlparser2": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-4.1.0.tgz", - "integrity": "sha512-4zDq1a1zhE4gQso/c5LP1OtrhYTncXNSpvJYtWJBtXAETPlMfi3IFNjGuQbYLuVY4ZR0QMqRVvo4Pdy9KLyP8Q==", - "requires": { - "domelementtype": "^2.0.1", - "domhandler": "^3.0.0", - "domutils": "^2.0.0", - "entities": "^2.0.0" - } - }, - "inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" - }, - "ink-docstrap": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/ink-docstrap/-/ink-docstrap-1.3.2.tgz", - "integrity": "sha512-STx5orGQU1gfrkoI/fMU7lX6CSP7LBGO10gXNgOZhwKhUqbtNjCkYSewJtNnLmWP1tAGN6oyEpG1HFPw5vpa5Q==", - "requires": { - "moment": "^2.14.1", - "sanitize-html": "^1.13.0" - } - }, - "jazz-midi": { - "version": "1.7.5", - "resolved": "https://registry.npmjs.org/jazz-midi/-/jazz-midi-1.7.5.tgz", - "integrity": "sha512-RUxChhn388CZfSymwwgucfaBxGu4Z0eeJOSTnUMsDN2tMx5E8G+o7h2gk/xPaDTfOORnQsJk71VhSuqiw1Hy9Q==", - "optional": true - }, - "js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "peer": true - }, - "js2xmlparser": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/js2xmlparser/-/js2xmlparser-4.0.2.tgz", - "integrity": "sha512-6n4D8gLlLf1n5mNLQPRfViYzu9RATblzPEtm1SthMX1Pjao0r9YI9nw7ZIfRxQMERS87mcswrg+r/OYrPRX6jA==", - "requires": { - "xmlcreate": "^2.0.4" - } - }, - "jsdoc": { - "version": "3.6.10", - "resolved": "https://registry.npmjs.org/jsdoc/-/jsdoc-3.6.10.tgz", - "integrity": "sha512-IdQ8ppSo5LKZ9o3M+LKIIK8i00DIe5msDvG3G81Km+1dhy0XrOWD0Ji8H61ElgyEj/O9KRLokgKbAM9XX9CJAg==", - "requires": { - "@babel/parser": "^7.9.4", - "@types/markdown-it": "^12.2.3", - "bluebird": "^3.7.2", - "catharsis": "^0.9.0", - "escape-string-regexp": "^2.0.0", - "js2xmlparser": "^4.0.2", - "klaw": "^4.0.1", - "markdown-it": "^12.3.2", - "markdown-it-anchor": "^8.4.1", - "marked": "^4.0.10", - "mkdirp": "^1.0.4", - "requizzle": "^0.2.3", - "strip-json-comments": "^3.1.0", - "taffydb": "2.6.2", - "underscore": "~1.13.2" - }, - "dependencies": { - "escape-string-regexp": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", - "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==" - } - } - }, - "jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", - "peer": true - }, - "json5": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.1.tgz", - "integrity": "sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==", - "peer": true - }, - "jzz": { - "version": "1.4.9", - "resolved": "https://registry.npmjs.org/jzz/-/jzz-1.4.9.tgz", - "integrity": "sha512-agXk2i6yxl1rL2zIl+KtcPjgWobSOg8i16gFGfYmFWH/mi7LG4Of6ov7KBpPtFC5pxCiWFvW8O2ENyI46TJy0g==", - "optional": true, - "requires": { - "@types/webmidi": "^2.0.6", - "jazz-midi": "^1.7.5" - } - }, - "klaw": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/klaw/-/klaw-4.0.1.tgz", - "integrity": "sha512-pgsE40/SvC7st04AHiISNewaIMUbY5V/K8b21ekiPiFoYs/EYSdsGa+FJArB1d441uq4Q8zZyIxvAzkGNlBdRw==" - }, - "linkify-it": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-3.0.3.tgz", - "integrity": "sha512-ynTsyrFSdE5oZ/O9GEf00kPngmOfVwazR5GKDq6EYfhlpFug3J2zybX56a2PRRpc9P+FuSoGNAwjlbDs9jJBPQ==", - "requires": { - "uc.micro": "^1.0.1" - } - }, - "lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" - }, - "map-stream": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/map-stream/-/map-stream-0.0.7.tgz", - "integrity": "sha1-ih8HiW2CsQkmvTdEokIACfiJdKg=" - }, - "markdown-it": { - "version": "12.3.2", - "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-12.3.2.tgz", - "integrity": "sha512-TchMembfxfNVpHkbtriWltGWc+m3xszaRD0CZup7GFFhzIgQqxIfn3eGj1yZpfuflzPvfkt611B2Q/Bsk1YnGg==", - "requires": { - "argparse": "^2.0.1", - "entities": "~2.1.0", - "linkify-it": "^3.0.1", - "mdurl": "^1.0.1", - "uc.micro": "^1.0.5" - } - }, - "markdown-it-anchor": { - "version": "8.4.1", - "resolved": "https://registry.npmjs.org/markdown-it-anchor/-/markdown-it-anchor-8.4.1.tgz", - "integrity": "sha512-sLODeRetZ/61KkKLJElaU3NuU2z7MhXf12Ml1WJMSdwpngeofneCRF+JBbat8HiSqhniOMuTemXMrsI7hA6XyA==", - "requires": {} - }, - "marked": { - "version": "4.0.12", - "resolved": "https://registry.npmjs.org/marked/-/marked-4.0.12.tgz", - "integrity": "sha512-hgibXWrEDNBWgGiK18j/4lkS6ihTe9sxtV4Q1OQppb/0zzyPSzoFANBa5MfsG/zgsWklmNnhm0XACZOH/0HBiQ==" - }, - "mdurl": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz", - "integrity": "sha1-/oWy7HWlkDfyrf7BAP1sYBdhFS4=" - }, - "minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==" - }, - "moment": { - "version": "2.29.1", - "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.1.tgz", - "integrity": "sha512-kHmoybcPV8Sqy59DwNDY3Jefr64lK/by/da0ViFcuA4DH0vQg5Q6Ze5VimxkfQNSC+Mls/Kx53s7TjP1RhFEDQ==" - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node-releases": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.2.tgz", - "integrity": "sha512-XxYDdcQ6eKqp/YjI+tb2C5WM2LgjnZrfYg4vgQt49EK268b6gYCHsBLrK2qvJo4FmCtqmKezb0WZFK4fkrZNsg==", - "peer": true - }, - "once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "requires": { - "wrappy": "1" - } - }, - "parse-node-version": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parse-node-version/-/parse-node-version-1.0.1.tgz", - "integrity": "sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA==" - }, - "parse-srcset": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/parse-srcset/-/parse-srcset-1.0.2.tgz", - "integrity": "sha1-8r0iH2zJcKk42IVWq8WJyqqiveE=" - }, - "path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" - }, - "picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", - "peer": true - }, - "picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==" - }, - "postcss": { - "version": "7.0.39", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", - "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", - "requires": { - "picocolors": "^0.2.1", - "source-map": "^0.6.1" - }, - "dependencies": { - "picocolors": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", - "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==" - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" - } - } - }, - "ramda": { - "version": "0.28.0", - "resolved": "https://registry.npmjs.org/ramda/-/ramda-0.28.0.tgz", - "integrity": "sha512-9QnLuG/kPVgWvMQ4aODhsBUFKOUmnbUnsSXACv+NCQZcHbeb+v8Lodp8OVxtRULN1/xOyYLLaL6npE6dMq5QTA==" - }, - "regenerator-runtime": { - "version": "0.13.9", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz", - "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==" - }, - "requizzle": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/requizzle/-/requizzle-0.2.3.tgz", - "integrity": "sha512-YanoyJjykPxGHii0fZP0uUPEXpvqfBDxWV7s6GKAiiOsiqhX6vHNyW3Qzdmqp/iq/ExbhaGbVrjB4ruEVSM4GQ==", - "requires": { - "lodash": "^4.17.14" - } - }, - "rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "requires": { - "glob": "^7.1.3" - } - }, - "rollup": { - "version": "2.70.1", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.70.1.tgz", - "integrity": "sha512-CRYsI5EuzLbXdxC6RnYhOuRdtz4bhejPMSWjsFLfVM/7w/85n2szZv6yExqUXsBdz5KT8eoubeyDUDjhLHEslA==", - "peer": true, - "requires": { - "fsevents": "~2.3.2" - } - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "peer": true - }, - "sanitize-html": { - "version": "1.27.5", - "resolved": "https://registry.npmjs.org/sanitize-html/-/sanitize-html-1.27.5.tgz", - "integrity": "sha512-M4M5iXDAUEcZKLXkmk90zSYWEtk5NH3JmojQxKxV371fnMh+x9t1rqdmXaGoyEHw3z/X/8vnFhKjGL5xFGOJ3A==", - "requires": { - "htmlparser2": "^4.1.0", - "lodash": "^4.17.15", - "parse-srcset": "^1.0.2", - "postcss": "^7.0.27" - } - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "peer": true - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "peer": true - }, - "strip-json-comments": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==" - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "peer": true, - "requires": { - "has-flag": "^3.0.0" - } - }, - "taffydb": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/taffydb/-/taffydb-2.6.2.tgz", - "integrity": "sha1-fLy2S1oUG2ou/CxdLGe04VCyomg=" - }, - "time-stamp": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/time-stamp/-/time-stamp-1.1.0.tgz", - "integrity": "sha1-dkpaEa9QVhkhsTPztE5hhofg9cM=" - }, - "tmp": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.1.0.tgz", - "integrity": "sha512-J7Z2K08jbGcdA1kkQpJSqLF6T0tdQqpR2pnSUXsIchbPdTI9v3e85cLW0d6WDhwuAleOV71j2xWs8qMPfK7nKw==", - "requires": { - "rimraf": "^2.6.3" - } - }, - "to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=" - }, - "uc.micro": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-1.0.6.tgz", - "integrity": "sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA==" - }, - "underscore": { - "version": "1.13.2", - "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.13.2.tgz", - "integrity": "sha512-ekY1NhRzq0B08g4bGuX4wd2jZx5GnKz6mKSqFL4nqBlfyMGiG10gDFhDTMEfYmDL6Jy0FUIZp7wiRB+0BP7J2g==" - }, - "webmidi": { - "version": "3.0.15", - "resolved": "https://registry.npmjs.org/webmidi/-/webmidi-3.0.15.tgz", - "integrity": "sha512-oAeW7HKydzP3WI/bXh4G60UHVHqw4FP2nZRlVC7Kdk1nbiUENcDTJty4FSG4CtED/V1zczD3EcO8b5fXYLFcQQ==", - "requires": { - "@rollup/plugin-babel": "^5.3.0", - "@types/webmidi": "^2.0.6", - "djipevents": "^2.0.4", - "jzz": "^1.4.5" - } - }, - "wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" - }, - "xmlcreate": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/xmlcreate/-/xmlcreate-2.0.4.tgz", - "integrity": "sha512-nquOebG4sngPmGPICTS5EnxqhKbCmz5Ox5hsszI2T6U5qdrJizBc+0ilYSEjTSzU0yZcmvppztXe/5Al5fUwdg==" - }, - "yoctodelay": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/yoctodelay/-/yoctodelay-1.2.0.tgz", - "integrity": "sha512-12y/P9MSig9/5BEhBgylss+fkHiCRZCvYR81eH35NW9uw801cvJt31EAV+WOLcwZRZbLiIQl/hxcdXXXFmGvXg==" - } - } + "name": "@strudel.cycles/tonal", + "version": "0.0.3", + "lockfileVersion": 2, + "requires": true, + "packages": { + "": { + "name": "@strudel.cycles/tonal", + "version": "0.0.3", + "license": "GPL-3.0-or-later", + "dependencies": { + "@tonaljs/tonal": "^4.6.5", + "webmidi": "^3.0.15" + } + }, + "node_modules/@ampproject/remapping": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.1.2.tgz", + "integrity": "sha512-hoyByceqwKirw7w3Z7gnIIZC3Wx3J484Y3L/cMpXFbr7d9ZQj2mODrirNzcJa+SM3UlpWXYvKV4RlRpFXlWgXg==", + "peer": true, + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.0" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.7.tgz", + "integrity": "sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg==", + "peer": true, + "dependencies": { + "@babel/highlight": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.17.7", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.17.7.tgz", + "integrity": "sha512-p8pdE6j0a29TNGebNm7NzYZWB3xVZJBZ7XGs42uAKzQo8VQ3F0By/cQCtUEABwIqw5zo6WA4NbmxsfzADzMKnQ==", + "peer": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.17.8", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.17.8.tgz", + "integrity": "sha512-OdQDV/7cRBtJHLSOBqqbYNkOcydOgnX59TZx4puf41fzcVtN3e/4yqY8lMQsK+5X2lJtAdmA+6OHqsj1hBJ4IQ==", + "peer": true, + "dependencies": { + "@ampproject/remapping": "^2.1.0", + "@babel/code-frame": "^7.16.7", + "@babel/generator": "^7.17.7", + "@babel/helper-compilation-targets": "^7.17.7", + "@babel/helper-module-transforms": "^7.17.7", + "@babel/helpers": "^7.17.8", + "@babel/parser": "^7.17.8", + "@babel/template": "^7.16.7", + "@babel/traverse": "^7.17.3", + "@babel/types": "^7.17.0", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.1.2", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@babel/generator": { + "version": "7.17.7", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.17.7.tgz", + "integrity": "sha512-oLcVCTeIFadUoArDTwpluncplrYBmTCCZZgXCbgNGvOBBiSDDK3eWO4b/+eOTli5tKv1lg+a5/NAXg+nTcei1w==", + "peer": true, + "dependencies": { + "@babel/types": "^7.17.0", + "jsesc": "^2.5.1", + "source-map": "^0.5.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.17.7", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.17.7.tgz", + "integrity": "sha512-UFzlz2jjd8kroj0hmCFV5zr+tQPi1dpC2cRsDV/3IEW8bJfCPrPpmcSN6ZS8RqIq4LXcmpipCQFPddyFA5Yc7w==", + "peer": true, + "dependencies": { + "@babel/compat-data": "^7.17.7", + "@babel/helper-validator-option": "^7.16.7", + "browserslist": "^4.17.5", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-environment-visitor": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.16.7.tgz", + "integrity": "sha512-SLLb0AAn6PkUeAfKJCCOl9e1R53pQlGAfc4y4XuMRZfqeMYLE0dM1LMhqbGAlGQY0lfw5/ohoYWAe9V1yibRag==", + "peer": true, + "dependencies": { + "@babel/types": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-function-name": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.16.7.tgz", + "integrity": "sha512-QfDfEnIUyyBSR3HtrtGECuZ6DAyCkYFp7GHl75vFtTnn6pjKeK0T1DB5lLkFvBea8MdaiUABx3osbgLyInoejA==", + "peer": true, + "dependencies": { + "@babel/helper-get-function-arity": "^7.16.7", + "@babel/template": "^7.16.7", + "@babel/types": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-get-function-arity": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.16.7.tgz", + "integrity": "sha512-flc+RLSOBXzNzVhcLu6ujeHUrD6tANAOU5ojrRx/as+tbzf8+stUCj7+IfRRoAbEZqj/ahXEMsjhOhgeZsrnTw==", + "peer": true, + "dependencies": { + "@babel/types": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-hoist-variables": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.7.tgz", + "integrity": "sha512-m04d/0Op34H5v7pbZw6pSKP7weA6lsMvfiIAMeIvkY/R4xQtBSMFEigu9QTZ2qB/9l22vsxtM8a+Q8CzD255fg==", + "peer": true, + "dependencies": { + "@babel/types": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.16.7.tgz", + "integrity": "sha512-LVtS6TqjJHFc+nYeITRo6VLXve70xmq7wPhWTqDJusJEgGmkAACWwMiTNrvfoQo6hEhFwAIixNkvB0jPXDL8Wg==", + "dependencies": { + "@babel/types": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.17.7", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.17.7.tgz", + "integrity": "sha512-VmZD99F3gNTYB7fJRDTi+u6l/zxY0BE6OIxPSU7a50s6ZUQkHwSDmV92FfM+oCG0pZRVojGYhkR8I0OGeCVREw==", + "peer": true, + "dependencies": { + "@babel/helper-environment-visitor": "^7.16.7", + "@babel/helper-module-imports": "^7.16.7", + "@babel/helper-simple-access": "^7.17.7", + "@babel/helper-split-export-declaration": "^7.16.7", + "@babel/helper-validator-identifier": "^7.16.7", + "@babel/template": "^7.16.7", + "@babel/traverse": "^7.17.3", + "@babel/types": "^7.17.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-simple-access": { + "version": "7.17.7", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.17.7.tgz", + "integrity": "sha512-txyMCGroZ96i+Pxr3Je3lzEJjqwaRC9buMUgtomcrLe5Nd0+fk1h0LLA+ixUF5OW7AhHuQ7Es1WcQJZmZsz2XA==", + "peer": true, + "dependencies": { + "@babel/types": "^7.17.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-split-export-declaration": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.7.tgz", + "integrity": "sha512-xbWoy/PFoxSWazIToT9Sif+jJTlrMcndIsaOKvTA6u7QEo7ilkRZpjew18/W3c7nm8fXdUDXh02VXTbZ0pGDNw==", + "peer": true, + "dependencies": { + "@babel/types": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz", + "integrity": "sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.16.7.tgz", + "integrity": "sha512-TRtenOuRUVo9oIQGPC5G9DgK4743cdxvtOw0weQNpZXaS16SCBi5MNjZF8vba3ETURjZpTbVn7Vvcf2eAwFozQ==", + "peer": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.17.8", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.17.8.tgz", + "integrity": "sha512-QcL86FGxpfSJwGtAvv4iG93UL6bmqBdmoVY0CMCU2g+oD2ezQse3PT5Pa+jiD6LJndBQi0EDlpzOWNlLuhz5gw==", + "peer": true, + "dependencies": { + "@babel/template": "^7.16.7", + "@babel/traverse": "^7.17.3", + "@babel/types": "^7.17.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight": { + "version": "7.16.10", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.16.10.tgz", + "integrity": "sha512-5FnTQLSLswEj6IkgVw5KusNUUFY9ZGqe/TRFnP/BKYHYgfh7tc+C7mwiy95/yNP7Dh9x580Vv8r7u7ZfTBFxdw==", + "peer": true, + "dependencies": { + "@babel/helper-validator-identifier": "^7.16.7", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.17.8", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.17.8.tgz", + "integrity": "sha512-BoHhDJrJXqcg+ZL16Xv39H9n+AqJ4pcDrQBGZN+wHxIysrLZ3/ECwCBUch/1zUNhnsXULcONU3Ei5Hmkfk6kiQ==", + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/runtime": { + "version": "7.17.8", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.17.8.tgz", + "integrity": "sha512-dQpEpK0O9o6lj6oPu0gRDbbnk+4LeHlNcBpspf6Olzt3GIX4P1lWF1gS+pHLDFlaJvbR6q7jCfQ08zA4QJBnmA==", + "dependencies": { + "regenerator-runtime": "^0.13.4" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/template": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.16.7.tgz", + "integrity": "sha512-I8j/x8kHUrbYRTUxXrrMbfCa7jxkE7tZre39x3kjr9hvI82cK1FfqLygotcWN5kdPGWcLdWMHpSBavse5tWw3w==", + "peer": true, + "dependencies": { + "@babel/code-frame": "^7.16.7", + "@babel/parser": "^7.16.7", + "@babel/types": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.17.3", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.17.3.tgz", + "integrity": "sha512-5irClVky7TxRWIRtxlh2WPUUOLhcPN06AGgaQSB8AEwuyEBgJVuJ5imdHm5zxk8w0QS5T+tDfnDxAlhWjpb7cw==", + "peer": true, + "dependencies": { + "@babel/code-frame": "^7.16.7", + "@babel/generator": "^7.17.3", + "@babel/helper-environment-visitor": "^7.16.7", + "@babel/helper-function-name": "^7.16.7", + "@babel/helper-hoist-variables": "^7.16.7", + "@babel/helper-split-export-declaration": "^7.16.7", + "@babel/parser": "^7.17.3", + "@babel/types": "^7.17.0", + "debug": "^4.1.0", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/types": { + "version": "7.17.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.17.0.tgz", + "integrity": "sha512-TmKSNO4D5rzhL5bjWFcVHHLETzfQ/AmbKpKPOSjlP0WoHZ6L911fgoOKY4Alp/emzG4cHJdyN49zpgkbXFEHHw==", + "dependencies": { + "@babel/helper-validator-identifier": "^7.16.7", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.0.5.tgz", + "integrity": "sha512-VPeQ7+wH0itvQxnG+lIzWgkysKIr3L9sslimFW55rHMdGu/qCQ5z5h9zq4gI8uBtqkpHhsF4Z/OwExufUCThew==", + "peer": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.11", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.11.tgz", + "integrity": "sha512-Fg32GrJo61m+VqYSdRSjRXMjQ06j8YIYfcTqndLYVAaHmroZHLJZCydsWBOTDqXS2v+mjxohBWEMfg97GXmYQg==", + "peer": true + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.4", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.4.tgz", + "integrity": "sha512-vFv9ttIedivx0ux3QSjhgtCVjPZd5l46ZOMDSCwnH1yUO2e964gO8LZGyv2QkqcgR6TnBU1v+1IFqmeoG+0UJQ==", + "peer": true, + "dependencies": { + "@jridgewell/resolve-uri": "^3.0.3", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + }, + "node_modules/@rollup/plugin-babel": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/@rollup/plugin-babel/-/plugin-babel-5.3.1.tgz", + "integrity": "sha512-WFfdLWU/xVWKeRQnKmIAQULUI7Il0gZnBIH/ZFO069wYIfPu+8zrfp/KMW0atmELoRDq8FbiP3VCss9MhCut7Q==", + "dependencies": { + "@babel/helper-module-imports": "^7.10.4", + "@rollup/pluginutils": "^3.1.0" + }, + "engines": { + "node": ">= 10.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0", + "@types/babel__core": "^7.1.9", + "rollup": "^1.20.0||^2.0.0" + }, + "peerDependenciesMeta": { + "@types/babel__core": { + "optional": true + } + } + }, + "node_modules/@rollup/pluginutils": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-3.1.0.tgz", + "integrity": "sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==", + "dependencies": { + "@types/estree": "0.0.39", + "estree-walker": "^1.0.1", + "picomatch": "^2.2.2" + }, + "engines": { + "node": ">= 8.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0" + } + }, + "node_modules/@tonaljs/abc-notation": { + "version": "4.6.5", + "resolved": "https://registry.npmjs.org/@tonaljs/abc-notation/-/abc-notation-4.6.5.tgz", + "integrity": "sha512-1S0Jnx0NfDLgyhkQOMEHqOacELL6RUdPcWWUP+nAnsOsb9owvB9RKYLSzp5odd16FVUR7U8c/JLc2yxIRvSeJw==", + "dependencies": { + "@tonaljs/core": "^4.6.5" + } + }, + "node_modules/@tonaljs/array": { + "version": "4.6.5", + "resolved": "https://registry.npmjs.org/@tonaljs/array/-/array-4.6.5.tgz", + "integrity": "sha512-7A3DbBQ+qIQ134FqE518b4tJ8V2a15Sn303JjHzgnqZqKrNh/s3wqwkL60F7LKcd09tcp+vIKQP/MYt4xMcRAA==", + "dependencies": { + "@tonaljs/core": "^4.6.5" + } + }, + "node_modules/@tonaljs/chord": { + "version": "4.6.5", + "resolved": "https://registry.npmjs.org/@tonaljs/chord/-/chord-4.6.5.tgz", + "integrity": "sha512-Pjdel4aDVv4kcx9PW6Qozt5BB9nAt13AOExfzKztpgPmlBSy0SKHse7Jp1cA4MGAuLHU8dzVssTFYpCskEFw3w==", + "dependencies": { + "@tonaljs/chord-detect": "^4.6.5", + "@tonaljs/chord-type": "^4.6.5", + "@tonaljs/collection": "^4.6.2", + "@tonaljs/core": "^4.6.5", + "@tonaljs/pcset": "^4.6.5", + "@tonaljs/scale-type": "^4.6.5" + } + }, + "node_modules/@tonaljs/chord-detect": { + "version": "4.6.5", + "resolved": "https://registry.npmjs.org/@tonaljs/chord-detect/-/chord-detect-4.6.5.tgz", + "integrity": "sha512-4xu53UP4kNTfdTNpAAVijhXcQ+ypJqmeMnsST08ZXSjoYfJUhmf5rWDWfz36KOTtNdCA6AbYgdtTYV/Xw0nd/w==", + "dependencies": { + "@tonaljs/chord-type": "^4.6.5", + "@tonaljs/core": "^4.6.5", + "@tonaljs/pcset": "^4.6.5" + } + }, + "node_modules/@tonaljs/chord-type": { + "version": "4.6.5", + "resolved": "https://registry.npmjs.org/@tonaljs/chord-type/-/chord-type-4.6.5.tgz", + "integrity": "sha512-Ol4DDopqpZCF9odosO2i8I+plud3Ul7VWJGNvL+PPCf4Qnwuz87q3aJQDLNoRUz4VyW0u66mq3LyVh6A8kb6Ug==", + "dependencies": { + "@tonaljs/core": "^4.6.5", + "@tonaljs/pcset": "^4.6.5" + } + }, + "node_modules/@tonaljs/collection": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/@tonaljs/collection/-/collection-4.6.2.tgz", + "integrity": "sha512-bfPCotLJNB/tG1NrdbsQPLDKZB5jlMs7uPQ6RYKiNkaena3345ZKkbCGl5pj6YTXeDm/oblXiSbFAn7SlLRZdQ==" + }, + "node_modules/@tonaljs/core": { + "version": "4.6.5", + "resolved": "https://registry.npmjs.org/@tonaljs/core/-/core-4.6.5.tgz", + "integrity": "sha512-t7Vx0+L3j/ubQj2AhI1H45D/K745np4DwJjJjXNi5FlGD+TL2wyw50dCwkHKGHsrLDqup1qqP6yN7LBpC6UwNg==" + }, + "node_modules/@tonaljs/duration-value": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/@tonaljs/duration-value/-/duration-value-4.6.2.tgz", + "integrity": "sha512-zrXT0L/qsDQ6251Mlqz54vcUbYUB9xb6uJhlxUzc6VauXOt8UOfrdTULubRTXTaBwWt1h8J5n9pXTQmNGzNI9A==" + }, + "node_modules/@tonaljs/interval": { + "version": "4.6.5", + "resolved": "https://registry.npmjs.org/@tonaljs/interval/-/interval-4.6.5.tgz", + "integrity": "sha512-7EDWhqZ7Nnh9oD4ahRYJHLc799ACGxYL4hDHwMKD16B2MgXqPvDeDvwQ31qUuO0ruGz8tMb3FDlgg0Hplowcbw==", + "dependencies": { + "@tonaljs/core": "^4.6.5" + } + }, + "node_modules/@tonaljs/key": { + "version": "4.6.5", + "resolved": "https://registry.npmjs.org/@tonaljs/key/-/key-4.6.5.tgz", + "integrity": "sha512-ZdZWb5IStx6CLRmdEjawR66CqNpoW3EVUua2nVZBMdgnNebWxt4nvgH/ZNvGlCQGFZkUZzRhCfTwqsS6e3OmSA==", + "dependencies": { + "@tonaljs/core": "^4.6.5", + "@tonaljs/note": "^4.6.5", + "@tonaljs/roman-numeral": "^4.6.5" + } + }, + "node_modules/@tonaljs/midi": { + "version": "4.6.5", + "resolved": "https://registry.npmjs.org/@tonaljs/midi/-/midi-4.6.5.tgz", + "integrity": "sha512-fJEZtNvV3M6yW1w+Tep60Rbv5PvuKszQcQzaJS1Loq5mHOKAzdmRfuJSpEpZBiaKEZ1WAMh1QKXYyOd+imyGQg==", + "dependencies": { + "@tonaljs/core": "^4.6.5" + } + }, + "node_modules/@tonaljs/mode": { + "version": "4.6.5", + "resolved": "https://registry.npmjs.org/@tonaljs/mode/-/mode-4.6.5.tgz", + "integrity": "sha512-54iaON1rJ6q8fV5iuei8RGDxYhKBGGxZz3rjAxGSqdTUwBRVOdPqtzOkofThf9gRGYOMhzPp1BMbxbV+UCAPsA==", + "dependencies": { + "@tonaljs/collection": "^4.6.2", + "@tonaljs/core": "^4.6.5", + "@tonaljs/interval": "^4.6.5", + "@tonaljs/pcset": "^4.6.5", + "@tonaljs/scale-type": "^4.6.5" + } + }, + "node_modules/@tonaljs/note": { + "version": "4.6.5", + "resolved": "https://registry.npmjs.org/@tonaljs/note/-/note-4.6.5.tgz", + "integrity": "sha512-Y0/eTzcReXzfcSLLG4k/dLLayqbvh/XYIkybG/QMDyR0BREuJq0Sw+NavbzhTtO0dadIQb/qfe0GFq4k2xS+NQ==", + "dependencies": { + "@tonaljs/core": "^4.6.5", + "@tonaljs/midi": "^4.6.5" + } + }, + "node_modules/@tonaljs/pcset": { + "version": "4.6.5", + "resolved": "https://registry.npmjs.org/@tonaljs/pcset/-/pcset-4.6.5.tgz", + "integrity": "sha512-oWAKflP3cREnUfScqsBzg2LLKNevxSnpDtrq8CPtwOAsrAa8PjQG07NQfhqIiFMjPUdgkDiER3qVA1n8dDwAJA==", + "dependencies": { + "@tonaljs/collection": "^4.6.2", + "@tonaljs/core": "^4.6.5" + } + }, + "node_modules/@tonaljs/progression": { + "version": "4.6.5", + "resolved": "https://registry.npmjs.org/@tonaljs/progression/-/progression-4.6.5.tgz", + "integrity": "sha512-ijYEgMFQG4izHYUw5cRtBRNBuoYzmpGvb/tRiykhJNI6XIjekZEMiMsOMfb1u5q+EGvnVNXRmrluMRDIz2rmRw==", + "dependencies": { + "@tonaljs/chord": "^4.6.5", + "@tonaljs/core": "^4.6.5", + "@tonaljs/roman-numeral": "^4.6.5" + } + }, + "node_modules/@tonaljs/range": { + "version": "4.6.5", + "resolved": "https://registry.npmjs.org/@tonaljs/range/-/range-4.6.5.tgz", + "integrity": "sha512-99cOvVJ3l4X0UJuTSa6qE87JriREnnWIsi3xo1/n7RoqFxnfi8YPh4SfJJyysvHcT18X4EfcTNde9ancMBVu6A==", + "dependencies": { + "@tonaljs/collection": "^4.6.2", + "@tonaljs/midi": "^4.6.5" + } + }, + "node_modules/@tonaljs/roman-numeral": { + "version": "4.6.5", + "resolved": "https://registry.npmjs.org/@tonaljs/roman-numeral/-/roman-numeral-4.6.5.tgz", + "integrity": "sha512-bWYQNZWKmYDDcmbQQNwcWAHfTWanpzmvI0wplrMnGd4x0op5etwUEv+Yzjg0B1ef+E+zcU02Sl0WwRJhaDK3hg==", + "dependencies": { + "@tonaljs/core": "^4.6.5" + } + }, + "node_modules/@tonaljs/scale": { + "version": "4.6.5", + "resolved": "https://registry.npmjs.org/@tonaljs/scale/-/scale-4.6.5.tgz", + "integrity": "sha512-isYDamelOBtcd5bEnJ8QV0Js7jKRwZ0FlFVE/+bUN3wsyo9u6KLL5gMyfH9RKdx74m8lE13JXYTXgKqe+AOa4A==", + "dependencies": { + "@tonaljs/chord-type": "^4.6.5", + "@tonaljs/collection": "^4.6.2", + "@tonaljs/core": "^4.6.5", + "@tonaljs/note": "^4.6.5", + "@tonaljs/pcset": "^4.6.5", + "@tonaljs/scale-type": "^4.6.5" + } + }, + "node_modules/@tonaljs/scale-type": { + "version": "4.6.5", + "resolved": "https://registry.npmjs.org/@tonaljs/scale-type/-/scale-type-4.6.5.tgz", + "integrity": "sha512-rwcDOYf2UifjLJhmuQ8f8bJSeOCMDQJ1lB7lzlqdFxes03OeQhdOEfrT0nPtW8BhBEvq4GMM2NA6CLxX8MTwOQ==", + "dependencies": { + "@tonaljs/core": "^4.6.5", + "@tonaljs/pcset": "^4.6.5" + } + }, + "node_modules/@tonaljs/time-signature": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/@tonaljs/time-signature/-/time-signature-4.6.2.tgz", + "integrity": "sha512-OlZY4gdLd21WpMeAI1nS9E9zWcYU6oAzh6ptAUndqmVnFIrIWIWKCkWapdFx8dWdqrX8jqya3m4T33wmeo7w5Q==" + }, + "node_modules/@tonaljs/tonal": { + "version": "4.6.5", + "resolved": "https://registry.npmjs.org/@tonaljs/tonal/-/tonal-4.6.5.tgz", + "integrity": "sha512-lmsWinI9dy7nQyzCEgDVeVAwJtsk4ey05cJZd6oa4QVuSFD+CR8ebaEiwT4/Na+W0kHrKicT3h0uYc2PJIvx5Q==", + "dependencies": { + "@tonaljs/abc-notation": "^4.6.5", + "@tonaljs/array": "^4.6.5", + "@tonaljs/chord": "^4.6.5", + "@tonaljs/chord-type": "^4.6.5", + "@tonaljs/collection": "^4.6.2", + "@tonaljs/core": "^4.6.5", + "@tonaljs/duration-value": "^4.6.2", + "@tonaljs/interval": "^4.6.5", + "@tonaljs/key": "^4.6.5", + "@tonaljs/midi": "^4.6.5", + "@tonaljs/mode": "^4.6.5", + "@tonaljs/note": "^4.6.5", + "@tonaljs/pcset": "^4.6.5", + "@tonaljs/progression": "^4.6.5", + "@tonaljs/range": "^4.6.5", + "@tonaljs/roman-numeral": "^4.6.5", + "@tonaljs/scale": "^4.6.5", + "@tonaljs/scale-type": "^4.6.5", + "@tonaljs/time-signature": "^4.6.2" + } + }, + "node_modules/@types/estree": { + "version": "0.0.39", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz", + "integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==" + }, + "node_modules/@types/linkify-it": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@types/linkify-it/-/linkify-it-3.0.2.tgz", + "integrity": "sha512-HZQYqbiFVWufzCwexrvh694SOim8z2d+xJl5UNamcvQFejLY/2YUtzXHYi3cHdI7PMlS8ejH2slRAOJQ32aNbA==" + }, + "node_modules/@types/markdown-it": { + "version": "12.2.3", + "resolved": "https://registry.npmjs.org/@types/markdown-it/-/markdown-it-12.2.3.tgz", + "integrity": "sha512-GKMHFfv3458yYy+v/N8gjufHO6MSZKCOXpZc5GXIWWy8uldwfmPn98vp81gZ5f9SVw8YYBctgfJ22a2d7AOMeQ==", + "dependencies": { + "@types/linkify-it": "*", + "@types/mdurl": "*" + } + }, + "node_modules/@types/mdurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@types/mdurl/-/mdurl-1.0.2.tgz", + "integrity": "sha512-eC4U9MlIcu2q0KQmXszyn5Akca/0jrQmwDRgpAMJai7qBWq4amIQhZyNau4VYGtCeALvW1/NtjzJJ567aZxfKA==" + }, + "node_modules/@types/webmidi": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@types/webmidi/-/webmidi-2.0.6.tgz", + "integrity": "sha512-sfS0A5IryqmBrUpcGPipEPeFdpqmZzP6b6lZFxHKgz5n2Vhzh4yJ5P2TvoDUhDjqJyv0Y25ng0Qodgo2Vu08ug==" + }, + "node_modules/ansi-colors": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", + "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", + "engines": { + "node": ">=6" + } + }, + "node_modules/ansi-gray": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/ansi-gray/-/ansi-gray-0.1.1.tgz", + "integrity": "sha1-KWLPVOyXksSFEKPetSRDaGHvclE=", + "dependencies": { + "ansi-wrap": "0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "peer": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/ansi-wrap": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/ansi-wrap/-/ansi-wrap-0.1.0.tgz", + "integrity": "sha1-qCJQ3bABXponyoLoLqYDu/pF768=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + }, + "node_modules/beeper": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/beeper/-/beeper-2.1.0.tgz", + "integrity": "sha512-85+CcymhlP0jM4fs4ZMiMRl58VthoN9NRdvi+knXiQpP2UggkSre+A9rOZ0c2g2Vh+pEF5ZAlT+k8dsJNoanAA==", + "dependencies": { + "yoctodelay": "^1.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/bluebird": { + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", + "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==" + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/browserslist": { + "version": "4.20.2", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.20.2.tgz", + "integrity": "sha512-CQOBCqp/9pDvDbx3xfMi+86pr4KXIf2FDkTTdeuYw8OxS9t898LA1Khq57gtufFILXpfgsSx5woNgsBgvGjpsA==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + } + ], + "peer": true, + "dependencies": { + "caniuse-lite": "^1.0.30001317", + "electron-to-chromium": "^1.4.84", + "escalade": "^3.1.1", + "node-releases": "^2.0.2", + "picocolors": "^1.0.0" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001320", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001320.tgz", + "integrity": "sha512-MWPzG54AGdo3nWx7zHZTefseM5Y1ccM7hlQKHRqJkPozUaw3hNbBTMmLn16GG2FUzjR13Cr3NPfhIieX5PzXDA==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + } + ], + "peer": true + }, + "node_modules/catharsis": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/catharsis/-/catharsis-0.9.0.tgz", + "integrity": "sha512-prMTQVpcns/tzFgFVkVp6ak6RykZyWb3gu8ckUpd6YkTlacOd3DXGJjIpD4Q6zJirizvaiAjSSHlOsA+6sNh2A==", + "dependencies": { + "lodash": "^4.17.15" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "peer": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "peer": true, + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "peer": true + }, + "node_modules/color-support": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz", + "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==", + "bin": { + "color-support": "bin.js" + } + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" + }, + "node_modules/convert-source-map": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz", + "integrity": "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==", + "peer": true, + "dependencies": { + "safe-buffer": "~5.1.1" + } + }, + "node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/djipevents": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/djipevents/-/djipevents-2.0.4.tgz", + "integrity": "sha512-ozscQ0QQaPIqx0gEMI6BIEMGWlEVuFZb+R3ER0TYrCugdEipAb38ddAXmytMOM7bnvToAzZU0RItaHcBSi6TYA==", + "dependencies": { + "@babel/runtime": "^7.16.3", + "gulp-jsdoc3": "^3.0.0" + } + }, + "node_modules/dom-serializer": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.3.2.tgz", + "integrity": "sha512-5c54Bk5Dw4qAxNOI1pFEizPSjVsx5+bpJKmL2kPn8JhBUq2q09tTCa3mjijun2NfK78NMouDYNMBkOrPZiS+ig==", + "dependencies": { + "domelementtype": "^2.0.1", + "domhandler": "^4.2.0", + "entities": "^2.0.0" + }, + "funding": { + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" + } + }, + "node_modules/dom-serializer/node_modules/domhandler": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz", + "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", + "dependencies": { + "domelementtype": "^2.2.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, + "node_modules/domelementtype": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.2.0.tgz", + "integrity": "sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ] + }, + "node_modules/domhandler": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-3.3.0.tgz", + "integrity": "sha512-J1C5rIANUbuYK+FuFL98650rihynUOEzRLxW+90bKZRWB6A1X1Tf82GxR1qAWLyfNPRvjqfip3Q5tdYlmAa9lA==", + "dependencies": { + "domelementtype": "^2.0.1" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, + "node_modules/domutils": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", + "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", + "dependencies": { + "dom-serializer": "^1.0.1", + "domelementtype": "^2.2.0", + "domhandler": "^4.2.0" + }, + "funding": { + "url": "https://github.com/fb55/domutils?sponsor=1" + } + }, + "node_modules/domutils/node_modules/domhandler": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz", + "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", + "dependencies": { + "domelementtype": "^2.2.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, + "node_modules/electron-to-chromium": { + "version": "1.4.96", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.96.tgz", + "integrity": "sha512-DPNjvNGPabv6FcyjzLAN4C0psN/GgD9rSGvMTuv81SeXG/EX3mCz0wiw9N1tUEnfQXYCJi3H8M0oFPRziZh7rw==", + "peer": true + }, + "node_modules/entities": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.1.0.tgz", + "integrity": "sha512-hCx1oky9PFrJ611mf0ifBLBRW8lUUVRlFolb5gWRfIELabBlbp9xZvrqZLZAs+NxFnbfQoeGd8wDkygjg7U85w==", + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "peer": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "peer": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/estree-walker": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz", + "integrity": "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==" + }, + "node_modules/fancy-log": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/fancy-log/-/fancy-log-1.3.3.tgz", + "integrity": "sha512-k9oEhlyc0FrVh25qYuSELjr8oxsCoc4/LEZfg2iJJrfEk/tZL9bCoJE47gqAvI2m/AUjluCS4+3I0eTx8n3AEw==", + "dependencies": { + "ansi-gray": "^0.1.1", + "color-support": "^1.1.3", + "parse-node-version": "^1.0.0", + "time-stamp": "^1.0.0" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" + }, + "node_modules/fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "peer": true, + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "peer": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/glob": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", + "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "peer": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/gulp-jsdoc3": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/gulp-jsdoc3/-/gulp-jsdoc3-3.0.0.tgz", + "integrity": "sha512-rE2jAwCPA8XFi9g4V3Z3LPhZNjxuMTIYQVMjdqZAQpRfJITLVaUK3xfmiiNTMc7j+fT7pL8Q5yj7ZPRdwCJWNg==", + "dependencies": { + "ansi-colors": "^4.1.1", + "beeper": "^2.0.0", + "debug": "^4.1.1", + "fancy-log": "^1.3.3", + "ink-docstrap": "^1.3.2", + "jsdoc": "^3.6.3", + "map-stream": "0.0.7", + "tmp": "0.1.0" + } + }, + "node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "peer": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/htmlparser2": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-4.1.0.tgz", + "integrity": "sha512-4zDq1a1zhE4gQso/c5LP1OtrhYTncXNSpvJYtWJBtXAETPlMfi3IFNjGuQbYLuVY4ZR0QMqRVvo4Pdy9KLyP8Q==", + "dependencies": { + "domelementtype": "^2.0.1", + "domhandler": "^3.0.0", + "domutils": "^2.0.0", + "entities": "^2.0.0" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "node_modules/ink-docstrap": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/ink-docstrap/-/ink-docstrap-1.3.2.tgz", + "integrity": "sha512-STx5orGQU1gfrkoI/fMU7lX6CSP7LBGO10gXNgOZhwKhUqbtNjCkYSewJtNnLmWP1tAGN6oyEpG1HFPw5vpa5Q==", + "dependencies": { + "moment": "^2.14.1", + "sanitize-html": "^1.13.0" + } + }, + "node_modules/jazz-midi": { + "version": "1.7.5", + "resolved": "https://registry.npmjs.org/jazz-midi/-/jazz-midi-1.7.5.tgz", + "integrity": "sha512-RUxChhn388CZfSymwwgucfaBxGu4Z0eeJOSTnUMsDN2tMx5E8G+o7h2gk/xPaDTfOORnQsJk71VhSuqiw1Hy9Q==", + "optional": true, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "peer": true + }, + "node_modules/js2xmlparser": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/js2xmlparser/-/js2xmlparser-4.0.2.tgz", + "integrity": "sha512-6n4D8gLlLf1n5mNLQPRfViYzu9RATblzPEtm1SthMX1Pjao0r9YI9nw7ZIfRxQMERS87mcswrg+r/OYrPRX6jA==", + "dependencies": { + "xmlcreate": "^2.0.4" + } + }, + "node_modules/jsdoc": { + "version": "3.6.10", + "resolved": "https://registry.npmjs.org/jsdoc/-/jsdoc-3.6.10.tgz", + "integrity": "sha512-IdQ8ppSo5LKZ9o3M+LKIIK8i00DIe5msDvG3G81Km+1dhy0XrOWD0Ji8H61ElgyEj/O9KRLokgKbAM9XX9CJAg==", + "dependencies": { + "@babel/parser": "^7.9.4", + "@types/markdown-it": "^12.2.3", + "bluebird": "^3.7.2", + "catharsis": "^0.9.0", + "escape-string-regexp": "^2.0.0", + "js2xmlparser": "^4.0.2", + "klaw": "^4.0.1", + "markdown-it": "^12.3.2", + "markdown-it-anchor": "^8.4.1", + "marked": "^4.0.10", + "mkdirp": "^1.0.4", + "requizzle": "^0.2.3", + "strip-json-comments": "^3.1.0", + "taffydb": "2.6.2", + "underscore": "~1.13.2" + }, + "bin": { + "jsdoc": "jsdoc.js" + }, + "engines": { + "node": ">=8.15.0" + } + }, + "node_modules/jsdoc/node_modules/escape-string-regexp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", + "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", + "engines": { + "node": ">=8" + } + }, + "node_modules/jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "peer": true, + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/json5": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.1.tgz", + "integrity": "sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==", + "peer": true, + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/jzz": { + "version": "1.4.9", + "resolved": "https://registry.npmjs.org/jzz/-/jzz-1.4.9.tgz", + "integrity": "sha512-agXk2i6yxl1rL2zIl+KtcPjgWobSOg8i16gFGfYmFWH/mi7LG4Of6ov7KBpPtFC5pxCiWFvW8O2ENyI46TJy0g==", + "optional": true, + "dependencies": { + "@types/webmidi": "^2.0.6", + "jazz-midi": "^1.7.5" + } + }, + "node_modules/klaw": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/klaw/-/klaw-4.0.1.tgz", + "integrity": "sha512-pgsE40/SvC7st04AHiISNewaIMUbY5V/K8b21ekiPiFoYs/EYSdsGa+FJArB1d441uq4Q8zZyIxvAzkGNlBdRw==", + "engines": { + "node": ">=14.14.0" + } + }, + "node_modules/linkify-it": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-3.0.3.tgz", + "integrity": "sha512-ynTsyrFSdE5oZ/O9GEf00kPngmOfVwazR5GKDq6EYfhlpFug3J2zybX56a2PRRpc9P+FuSoGNAwjlbDs9jJBPQ==", + "dependencies": { + "uc.micro": "^1.0.1" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + }, + "node_modules/map-stream": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/map-stream/-/map-stream-0.0.7.tgz", + "integrity": "sha1-ih8HiW2CsQkmvTdEokIACfiJdKg=" + }, + "node_modules/markdown-it": { + "version": "12.3.2", + "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-12.3.2.tgz", + "integrity": "sha512-TchMembfxfNVpHkbtriWltGWc+m3xszaRD0CZup7GFFhzIgQqxIfn3eGj1yZpfuflzPvfkt611B2Q/Bsk1YnGg==", + "dependencies": { + "argparse": "^2.0.1", + "entities": "~2.1.0", + "linkify-it": "^3.0.1", + "mdurl": "^1.0.1", + "uc.micro": "^1.0.5" + }, + "bin": { + "markdown-it": "bin/markdown-it.js" + } + }, + "node_modules/markdown-it-anchor": { + "version": "8.4.1", + "resolved": "https://registry.npmjs.org/markdown-it-anchor/-/markdown-it-anchor-8.4.1.tgz", + "integrity": "sha512-sLODeRetZ/61KkKLJElaU3NuU2z7MhXf12Ml1WJMSdwpngeofneCRF+JBbat8HiSqhniOMuTemXMrsI7hA6XyA==", + "peerDependencies": { + "@types/markdown-it": "*", + "markdown-it": "*" + } + }, + "node_modules/marked": { + "version": "4.0.12", + "resolved": "https://registry.npmjs.org/marked/-/marked-4.0.12.tgz", + "integrity": "sha512-hgibXWrEDNBWgGiK18j/4lkS6ihTe9sxtV4Q1OQppb/0zzyPSzoFANBa5MfsG/zgsWklmNnhm0XACZOH/0HBiQ==", + "bin": { + "marked": "bin/marked.js" + }, + "engines": { + "node": ">= 12" + } + }, + "node_modules/mdurl": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz", + "integrity": "sha1-/oWy7HWlkDfyrf7BAP1sYBdhFS4=" + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/moment": { + "version": "2.29.1", + "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.1.tgz", + "integrity": "sha512-kHmoybcPV8Sqy59DwNDY3Jefr64lK/by/da0ViFcuA4DH0vQg5Q6Ze5VimxkfQNSC+Mls/Kx53s7TjP1RhFEDQ==", + "engines": { + "node": "*" + } + }, + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "node_modules/node-releases": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.2.tgz", + "integrity": "sha512-XxYDdcQ6eKqp/YjI+tb2C5WM2LgjnZrfYg4vgQt49EK268b6gYCHsBLrK2qvJo4FmCtqmKezb0WZFK4fkrZNsg==", + "peer": true + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/parse-node-version": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parse-node-version/-/parse-node-version-1.0.1.tgz", + "integrity": "sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA==", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/parse-srcset": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/parse-srcset/-/parse-srcset-1.0.2.tgz", + "integrity": "sha1-8r0iH2zJcKk42IVWq8WJyqqiveE=" + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "peer": true + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dependencies": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/postcss/node_modules/picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==" + }, + "node_modules/postcss/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/regenerator-runtime": { + "version": "0.13.9", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz", + "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==" + }, + "node_modules/requizzle": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/requizzle/-/requizzle-0.2.3.tgz", + "integrity": "sha512-YanoyJjykPxGHii0fZP0uUPEXpvqfBDxWV7s6GKAiiOsiqhX6vHNyW3Qzdmqp/iq/ExbhaGbVrjB4ruEVSM4GQ==", + "dependencies": { + "lodash": "^4.17.14" + } + }, + "node_modules/rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + } + }, + "node_modules/rollup": { + "version": "2.70.1", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.70.1.tgz", + "integrity": "sha512-CRYsI5EuzLbXdxC6RnYhOuRdtz4bhejPMSWjsFLfVM/7w/85n2szZv6yExqUXsBdz5KT8eoubeyDUDjhLHEslA==", + "peer": true, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=10.0.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "peer": true + }, + "node_modules/sanitize-html": { + "version": "1.27.5", + "resolved": "https://registry.npmjs.org/sanitize-html/-/sanitize-html-1.27.5.tgz", + "integrity": "sha512-M4M5iXDAUEcZKLXkmk90zSYWEtk5NH3JmojQxKxV371fnMh+x9t1rqdmXaGoyEHw3z/X/8vnFhKjGL5xFGOJ3A==", + "dependencies": { + "htmlparser2": "^4.1.0", + "lodash": "^4.17.15", + "parse-srcset": "^1.0.2", + "postcss": "^7.0.27" + } + }, + "node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "peer": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "peer": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "peer": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/taffydb": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/taffydb/-/taffydb-2.6.2.tgz", + "integrity": "sha1-fLy2S1oUG2ou/CxdLGe04VCyomg=" + }, + "node_modules/time-stamp": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/time-stamp/-/time-stamp-1.1.0.tgz", + "integrity": "sha1-dkpaEa9QVhkhsTPztE5hhofg9cM=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/tmp": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.1.0.tgz", + "integrity": "sha512-J7Z2K08jbGcdA1kkQpJSqLF6T0tdQqpR2pnSUXsIchbPdTI9v3e85cLW0d6WDhwuAleOV71j2xWs8qMPfK7nKw==", + "dependencies": { + "rimraf": "^2.6.3" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", + "engines": { + "node": ">=4" + } + }, + "node_modules/uc.micro": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-1.0.6.tgz", + "integrity": "sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA==" + }, + "node_modules/underscore": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.13.2.tgz", + "integrity": "sha512-ekY1NhRzq0B08g4bGuX4wd2jZx5GnKz6mKSqFL4nqBlfyMGiG10gDFhDTMEfYmDL6Jy0FUIZp7wiRB+0BP7J2g==" + }, + "node_modules/webmidi": { + "version": "3.0.15", + "resolved": "https://registry.npmjs.org/webmidi/-/webmidi-3.0.15.tgz", + "integrity": "sha512-oAeW7HKydzP3WI/bXh4G60UHVHqw4FP2nZRlVC7Kdk1nbiUENcDTJty4FSG4CtED/V1zczD3EcO8b5fXYLFcQQ==", + "dependencies": { + "@rollup/plugin-babel": "^5.3.0", + "@types/webmidi": "^2.0.6", + "djipevents": "^2.0.4" + }, + "engines": { + "node": ">=8.5" + }, + "optionalDependencies": { + "jzz": "^1.4.5" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" + }, + "node_modules/xmlcreate": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/xmlcreate/-/xmlcreate-2.0.4.tgz", + "integrity": "sha512-nquOebG4sngPmGPICTS5EnxqhKbCmz5Ox5hsszI2T6U5qdrJizBc+0ilYSEjTSzU0yZcmvppztXe/5Al5fUwdg==" + }, + "node_modules/yoctodelay": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/yoctodelay/-/yoctodelay-1.2.0.tgz", + "integrity": "sha512-12y/P9MSig9/5BEhBgylss+fkHiCRZCvYR81eH35NW9uw801cvJt31EAV+WOLcwZRZbLiIQl/hxcdXXXFmGvXg==", + "engines": { + "node": ">=4" + } + } + }, + "dependencies": { + "@ampproject/remapping": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.1.2.tgz", + "integrity": "sha512-hoyByceqwKirw7w3Z7gnIIZC3Wx3J484Y3L/cMpXFbr7d9ZQj2mODrirNzcJa+SM3UlpWXYvKV4RlRpFXlWgXg==", + "peer": true, + "requires": { + "@jridgewell/trace-mapping": "^0.3.0" + } + }, + "@babel/code-frame": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.7.tgz", + "integrity": "sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg==", + "peer": true, + "requires": { + "@babel/highlight": "^7.16.7" + } + }, + "@babel/compat-data": { + "version": "7.17.7", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.17.7.tgz", + "integrity": "sha512-p8pdE6j0a29TNGebNm7NzYZWB3xVZJBZ7XGs42uAKzQo8VQ3F0By/cQCtUEABwIqw5zo6WA4NbmxsfzADzMKnQ==", + "peer": true + }, + "@babel/core": { + "version": "7.17.8", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.17.8.tgz", + "integrity": "sha512-OdQDV/7cRBtJHLSOBqqbYNkOcydOgnX59TZx4puf41fzcVtN3e/4yqY8lMQsK+5X2lJtAdmA+6OHqsj1hBJ4IQ==", + "peer": true, + "requires": { + "@ampproject/remapping": "^2.1.0", + "@babel/code-frame": "^7.16.7", + "@babel/generator": "^7.17.7", + "@babel/helper-compilation-targets": "^7.17.7", + "@babel/helper-module-transforms": "^7.17.7", + "@babel/helpers": "^7.17.8", + "@babel/parser": "^7.17.8", + "@babel/template": "^7.16.7", + "@babel/traverse": "^7.17.3", + "@babel/types": "^7.17.0", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.1.2", + "semver": "^6.3.0" + } + }, + "@babel/generator": { + "version": "7.17.7", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.17.7.tgz", + "integrity": "sha512-oLcVCTeIFadUoArDTwpluncplrYBmTCCZZgXCbgNGvOBBiSDDK3eWO4b/+eOTli5tKv1lg+a5/NAXg+nTcei1w==", + "peer": true, + "requires": { + "@babel/types": "^7.17.0", + "jsesc": "^2.5.1", + "source-map": "^0.5.0" + } + }, + "@babel/helper-compilation-targets": { + "version": "7.17.7", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.17.7.tgz", + "integrity": "sha512-UFzlz2jjd8kroj0hmCFV5zr+tQPi1dpC2cRsDV/3IEW8bJfCPrPpmcSN6ZS8RqIq4LXcmpipCQFPddyFA5Yc7w==", + "peer": true, + "requires": { + "@babel/compat-data": "^7.17.7", + "@babel/helper-validator-option": "^7.16.7", + "browserslist": "^4.17.5", + "semver": "^6.3.0" + } + }, + "@babel/helper-environment-visitor": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.16.7.tgz", + "integrity": "sha512-SLLb0AAn6PkUeAfKJCCOl9e1R53pQlGAfc4y4XuMRZfqeMYLE0dM1LMhqbGAlGQY0lfw5/ohoYWAe9V1yibRag==", + "peer": true, + "requires": { + "@babel/types": "^7.16.7" + } + }, + "@babel/helper-function-name": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.16.7.tgz", + "integrity": "sha512-QfDfEnIUyyBSR3HtrtGECuZ6DAyCkYFp7GHl75vFtTnn6pjKeK0T1DB5lLkFvBea8MdaiUABx3osbgLyInoejA==", + "peer": true, + "requires": { + "@babel/helper-get-function-arity": "^7.16.7", + "@babel/template": "^7.16.7", + "@babel/types": "^7.16.7" + } + }, + "@babel/helper-get-function-arity": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.16.7.tgz", + "integrity": "sha512-flc+RLSOBXzNzVhcLu6ujeHUrD6tANAOU5ojrRx/as+tbzf8+stUCj7+IfRRoAbEZqj/ahXEMsjhOhgeZsrnTw==", + "peer": true, + "requires": { + "@babel/types": "^7.16.7" + } + }, + "@babel/helper-hoist-variables": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.7.tgz", + "integrity": "sha512-m04d/0Op34H5v7pbZw6pSKP7weA6lsMvfiIAMeIvkY/R4xQtBSMFEigu9QTZ2qB/9l22vsxtM8a+Q8CzD255fg==", + "peer": true, + "requires": { + "@babel/types": "^7.16.7" + } + }, + "@babel/helper-module-imports": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.16.7.tgz", + "integrity": "sha512-LVtS6TqjJHFc+nYeITRo6VLXve70xmq7wPhWTqDJusJEgGmkAACWwMiTNrvfoQo6hEhFwAIixNkvB0jPXDL8Wg==", + "requires": { + "@babel/types": "^7.16.7" + } + }, + "@babel/helper-module-transforms": { + "version": "7.17.7", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.17.7.tgz", + "integrity": "sha512-VmZD99F3gNTYB7fJRDTi+u6l/zxY0BE6OIxPSU7a50s6ZUQkHwSDmV92FfM+oCG0pZRVojGYhkR8I0OGeCVREw==", + "peer": true, + "requires": { + "@babel/helper-environment-visitor": "^7.16.7", + "@babel/helper-module-imports": "^7.16.7", + "@babel/helper-simple-access": "^7.17.7", + "@babel/helper-split-export-declaration": "^7.16.7", + "@babel/helper-validator-identifier": "^7.16.7", + "@babel/template": "^7.16.7", + "@babel/traverse": "^7.17.3", + "@babel/types": "^7.17.0" + } + }, + "@babel/helper-simple-access": { + "version": "7.17.7", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.17.7.tgz", + "integrity": "sha512-txyMCGroZ96i+Pxr3Je3lzEJjqwaRC9buMUgtomcrLe5Nd0+fk1h0LLA+ixUF5OW7AhHuQ7Es1WcQJZmZsz2XA==", + "peer": true, + "requires": { + "@babel/types": "^7.17.0" + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.7.tgz", + "integrity": "sha512-xbWoy/PFoxSWazIToT9Sif+jJTlrMcndIsaOKvTA6u7QEo7ilkRZpjew18/W3c7nm8fXdUDXh02VXTbZ0pGDNw==", + "peer": true, + "requires": { + "@babel/types": "^7.16.7" + } + }, + "@babel/helper-validator-identifier": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz", + "integrity": "sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==" + }, + "@babel/helper-validator-option": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.16.7.tgz", + "integrity": "sha512-TRtenOuRUVo9oIQGPC5G9DgK4743cdxvtOw0weQNpZXaS16SCBi5MNjZF8vba3ETURjZpTbVn7Vvcf2eAwFozQ==", + "peer": true + }, + "@babel/helpers": { + "version": "7.17.8", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.17.8.tgz", + "integrity": "sha512-QcL86FGxpfSJwGtAvv4iG93UL6bmqBdmoVY0CMCU2g+oD2ezQse3PT5Pa+jiD6LJndBQi0EDlpzOWNlLuhz5gw==", + "peer": true, + "requires": { + "@babel/template": "^7.16.7", + "@babel/traverse": "^7.17.3", + "@babel/types": "^7.17.0" + } + }, + "@babel/highlight": { + "version": "7.16.10", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.16.10.tgz", + "integrity": "sha512-5FnTQLSLswEj6IkgVw5KusNUUFY9ZGqe/TRFnP/BKYHYgfh7tc+C7mwiy95/yNP7Dh9x580Vv8r7u7ZfTBFxdw==", + "peer": true, + "requires": { + "@babel/helper-validator-identifier": "^7.16.7", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + } + }, + "@babel/parser": { + "version": "7.17.8", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.17.8.tgz", + "integrity": "sha512-BoHhDJrJXqcg+ZL16Xv39H9n+AqJ4pcDrQBGZN+wHxIysrLZ3/ECwCBUch/1zUNhnsXULcONU3Ei5Hmkfk6kiQ==" + }, + "@babel/runtime": { + "version": "7.17.8", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.17.8.tgz", + "integrity": "sha512-dQpEpK0O9o6lj6oPu0gRDbbnk+4LeHlNcBpspf6Olzt3GIX4P1lWF1gS+pHLDFlaJvbR6q7jCfQ08zA4QJBnmA==", + "requires": { + "regenerator-runtime": "^0.13.4" + } + }, + "@babel/template": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.16.7.tgz", + "integrity": "sha512-I8j/x8kHUrbYRTUxXrrMbfCa7jxkE7tZre39x3kjr9hvI82cK1FfqLygotcWN5kdPGWcLdWMHpSBavse5tWw3w==", + "peer": true, + "requires": { + "@babel/code-frame": "^7.16.7", + "@babel/parser": "^7.16.7", + "@babel/types": "^7.16.7" + } + }, + "@babel/traverse": { + "version": "7.17.3", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.17.3.tgz", + "integrity": "sha512-5irClVky7TxRWIRtxlh2WPUUOLhcPN06AGgaQSB8AEwuyEBgJVuJ5imdHm5zxk8w0QS5T+tDfnDxAlhWjpb7cw==", + "peer": true, + "requires": { + "@babel/code-frame": "^7.16.7", + "@babel/generator": "^7.17.3", + "@babel/helper-environment-visitor": "^7.16.7", + "@babel/helper-function-name": "^7.16.7", + "@babel/helper-hoist-variables": "^7.16.7", + "@babel/helper-split-export-declaration": "^7.16.7", + "@babel/parser": "^7.17.3", + "@babel/types": "^7.17.0", + "debug": "^4.1.0", + "globals": "^11.1.0" + } + }, + "@babel/types": { + "version": "7.17.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.17.0.tgz", + "integrity": "sha512-TmKSNO4D5rzhL5bjWFcVHHLETzfQ/AmbKpKPOSjlP0WoHZ6L911fgoOKY4Alp/emzG4cHJdyN49zpgkbXFEHHw==", + "requires": { + "@babel/helper-validator-identifier": "^7.16.7", + "to-fast-properties": "^2.0.0" + } + }, + "@jridgewell/resolve-uri": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.0.5.tgz", + "integrity": "sha512-VPeQ7+wH0itvQxnG+lIzWgkysKIr3L9sslimFW55rHMdGu/qCQ5z5h9zq4gI8uBtqkpHhsF4Z/OwExufUCThew==", + "peer": true + }, + "@jridgewell/sourcemap-codec": { + "version": "1.4.11", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.11.tgz", + "integrity": "sha512-Fg32GrJo61m+VqYSdRSjRXMjQ06j8YIYfcTqndLYVAaHmroZHLJZCydsWBOTDqXS2v+mjxohBWEMfg97GXmYQg==", + "peer": true + }, + "@jridgewell/trace-mapping": { + "version": "0.3.4", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.4.tgz", + "integrity": "sha512-vFv9ttIedivx0ux3QSjhgtCVjPZd5l46ZOMDSCwnH1yUO2e964gO8LZGyv2QkqcgR6TnBU1v+1IFqmeoG+0UJQ==", + "peer": true, + "requires": { + "@jridgewell/resolve-uri": "^3.0.3", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + }, + "@rollup/plugin-babel": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/@rollup/plugin-babel/-/plugin-babel-5.3.1.tgz", + "integrity": "sha512-WFfdLWU/xVWKeRQnKmIAQULUI7Il0gZnBIH/ZFO069wYIfPu+8zrfp/KMW0atmELoRDq8FbiP3VCss9MhCut7Q==", + "requires": { + "@babel/helper-module-imports": "^7.10.4", + "@rollup/pluginutils": "^3.1.0" + } + }, + "@rollup/pluginutils": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-3.1.0.tgz", + "integrity": "sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==", + "requires": { + "@types/estree": "0.0.39", + "estree-walker": "^1.0.1", + "picomatch": "^2.2.2" + } + }, + "@tonaljs/abc-notation": { + "version": "4.6.5", + "resolved": "https://registry.npmjs.org/@tonaljs/abc-notation/-/abc-notation-4.6.5.tgz", + "integrity": "sha512-1S0Jnx0NfDLgyhkQOMEHqOacELL6RUdPcWWUP+nAnsOsb9owvB9RKYLSzp5odd16FVUR7U8c/JLc2yxIRvSeJw==", + "requires": { + "@tonaljs/core": "^4.6.5" + } + }, + "@tonaljs/array": { + "version": "4.6.5", + "resolved": "https://registry.npmjs.org/@tonaljs/array/-/array-4.6.5.tgz", + "integrity": "sha512-7A3DbBQ+qIQ134FqE518b4tJ8V2a15Sn303JjHzgnqZqKrNh/s3wqwkL60F7LKcd09tcp+vIKQP/MYt4xMcRAA==", + "requires": { + "@tonaljs/core": "^4.6.5" + } + }, + "@tonaljs/chord": { + "version": "4.6.5", + "resolved": "https://registry.npmjs.org/@tonaljs/chord/-/chord-4.6.5.tgz", + "integrity": "sha512-Pjdel4aDVv4kcx9PW6Qozt5BB9nAt13AOExfzKztpgPmlBSy0SKHse7Jp1cA4MGAuLHU8dzVssTFYpCskEFw3w==", + "requires": { + "@tonaljs/chord-detect": "^4.6.5", + "@tonaljs/chord-type": "^4.6.5", + "@tonaljs/collection": "^4.6.2", + "@tonaljs/core": "^4.6.5", + "@tonaljs/pcset": "^4.6.5", + "@tonaljs/scale-type": "^4.6.5" + } + }, + "@tonaljs/chord-detect": { + "version": "4.6.5", + "resolved": "https://registry.npmjs.org/@tonaljs/chord-detect/-/chord-detect-4.6.5.tgz", + "integrity": "sha512-4xu53UP4kNTfdTNpAAVijhXcQ+ypJqmeMnsST08ZXSjoYfJUhmf5rWDWfz36KOTtNdCA6AbYgdtTYV/Xw0nd/w==", + "requires": { + "@tonaljs/chord-type": "^4.6.5", + "@tonaljs/core": "^4.6.5", + "@tonaljs/pcset": "^4.6.5" + } + }, + "@tonaljs/chord-type": { + "version": "4.6.5", + "resolved": "https://registry.npmjs.org/@tonaljs/chord-type/-/chord-type-4.6.5.tgz", + "integrity": "sha512-Ol4DDopqpZCF9odosO2i8I+plud3Ul7VWJGNvL+PPCf4Qnwuz87q3aJQDLNoRUz4VyW0u66mq3LyVh6A8kb6Ug==", + "requires": { + "@tonaljs/core": "^4.6.5", + "@tonaljs/pcset": "^4.6.5" + } + }, + "@tonaljs/collection": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/@tonaljs/collection/-/collection-4.6.2.tgz", + "integrity": "sha512-bfPCotLJNB/tG1NrdbsQPLDKZB5jlMs7uPQ6RYKiNkaena3345ZKkbCGl5pj6YTXeDm/oblXiSbFAn7SlLRZdQ==" + }, + "@tonaljs/core": { + "version": "4.6.5", + "resolved": "https://registry.npmjs.org/@tonaljs/core/-/core-4.6.5.tgz", + "integrity": "sha512-t7Vx0+L3j/ubQj2AhI1H45D/K745np4DwJjJjXNi5FlGD+TL2wyw50dCwkHKGHsrLDqup1qqP6yN7LBpC6UwNg==" + }, + "@tonaljs/duration-value": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/@tonaljs/duration-value/-/duration-value-4.6.2.tgz", + "integrity": "sha512-zrXT0L/qsDQ6251Mlqz54vcUbYUB9xb6uJhlxUzc6VauXOt8UOfrdTULubRTXTaBwWt1h8J5n9pXTQmNGzNI9A==" + }, + "@tonaljs/interval": { + "version": "4.6.5", + "resolved": "https://registry.npmjs.org/@tonaljs/interval/-/interval-4.6.5.tgz", + "integrity": "sha512-7EDWhqZ7Nnh9oD4ahRYJHLc799ACGxYL4hDHwMKD16B2MgXqPvDeDvwQ31qUuO0ruGz8tMb3FDlgg0Hplowcbw==", + "requires": { + "@tonaljs/core": "^4.6.5" + } + }, + "@tonaljs/key": { + "version": "4.6.5", + "resolved": "https://registry.npmjs.org/@tonaljs/key/-/key-4.6.5.tgz", + "integrity": "sha512-ZdZWb5IStx6CLRmdEjawR66CqNpoW3EVUua2nVZBMdgnNebWxt4nvgH/ZNvGlCQGFZkUZzRhCfTwqsS6e3OmSA==", + "requires": { + "@tonaljs/core": "^4.6.5", + "@tonaljs/note": "^4.6.5", + "@tonaljs/roman-numeral": "^4.6.5" + } + }, + "@tonaljs/midi": { + "version": "4.6.5", + "resolved": "https://registry.npmjs.org/@tonaljs/midi/-/midi-4.6.5.tgz", + "integrity": "sha512-fJEZtNvV3M6yW1w+Tep60Rbv5PvuKszQcQzaJS1Loq5mHOKAzdmRfuJSpEpZBiaKEZ1WAMh1QKXYyOd+imyGQg==", + "requires": { + "@tonaljs/core": "^4.6.5" + } + }, + "@tonaljs/mode": { + "version": "4.6.5", + "resolved": "https://registry.npmjs.org/@tonaljs/mode/-/mode-4.6.5.tgz", + "integrity": "sha512-54iaON1rJ6q8fV5iuei8RGDxYhKBGGxZz3rjAxGSqdTUwBRVOdPqtzOkofThf9gRGYOMhzPp1BMbxbV+UCAPsA==", + "requires": { + "@tonaljs/collection": "^4.6.2", + "@tonaljs/core": "^4.6.5", + "@tonaljs/interval": "^4.6.5", + "@tonaljs/pcset": "^4.6.5", + "@tonaljs/scale-type": "^4.6.5" + } + }, + "@tonaljs/note": { + "version": "4.6.5", + "resolved": "https://registry.npmjs.org/@tonaljs/note/-/note-4.6.5.tgz", + "integrity": "sha512-Y0/eTzcReXzfcSLLG4k/dLLayqbvh/XYIkybG/QMDyR0BREuJq0Sw+NavbzhTtO0dadIQb/qfe0GFq4k2xS+NQ==", + "requires": { + "@tonaljs/core": "^4.6.5", + "@tonaljs/midi": "^4.6.5" + } + }, + "@tonaljs/pcset": { + "version": "4.6.5", + "resolved": "https://registry.npmjs.org/@tonaljs/pcset/-/pcset-4.6.5.tgz", + "integrity": "sha512-oWAKflP3cREnUfScqsBzg2LLKNevxSnpDtrq8CPtwOAsrAa8PjQG07NQfhqIiFMjPUdgkDiER3qVA1n8dDwAJA==", + "requires": { + "@tonaljs/collection": "^4.6.2", + "@tonaljs/core": "^4.6.5" + } + }, + "@tonaljs/progression": { + "version": "4.6.5", + "resolved": "https://registry.npmjs.org/@tonaljs/progression/-/progression-4.6.5.tgz", + "integrity": "sha512-ijYEgMFQG4izHYUw5cRtBRNBuoYzmpGvb/tRiykhJNI6XIjekZEMiMsOMfb1u5q+EGvnVNXRmrluMRDIz2rmRw==", + "requires": { + "@tonaljs/chord": "^4.6.5", + "@tonaljs/core": "^4.6.5", + "@tonaljs/roman-numeral": "^4.6.5" + } + }, + "@tonaljs/range": { + "version": "4.6.5", + "resolved": "https://registry.npmjs.org/@tonaljs/range/-/range-4.6.5.tgz", + "integrity": "sha512-99cOvVJ3l4X0UJuTSa6qE87JriREnnWIsi3xo1/n7RoqFxnfi8YPh4SfJJyysvHcT18X4EfcTNde9ancMBVu6A==", + "requires": { + "@tonaljs/collection": "^4.6.2", + "@tonaljs/midi": "^4.6.5" + } + }, + "@tonaljs/roman-numeral": { + "version": "4.6.5", + "resolved": "https://registry.npmjs.org/@tonaljs/roman-numeral/-/roman-numeral-4.6.5.tgz", + "integrity": "sha512-bWYQNZWKmYDDcmbQQNwcWAHfTWanpzmvI0wplrMnGd4x0op5etwUEv+Yzjg0B1ef+E+zcU02Sl0WwRJhaDK3hg==", + "requires": { + "@tonaljs/core": "^4.6.5" + } + }, + "@tonaljs/scale": { + "version": "4.6.5", + "resolved": "https://registry.npmjs.org/@tonaljs/scale/-/scale-4.6.5.tgz", + "integrity": "sha512-isYDamelOBtcd5bEnJ8QV0Js7jKRwZ0FlFVE/+bUN3wsyo9u6KLL5gMyfH9RKdx74m8lE13JXYTXgKqe+AOa4A==", + "requires": { + "@tonaljs/chord-type": "^4.6.5", + "@tonaljs/collection": "^4.6.2", + "@tonaljs/core": "^4.6.5", + "@tonaljs/note": "^4.6.5", + "@tonaljs/pcset": "^4.6.5", + "@tonaljs/scale-type": "^4.6.5" + } + }, + "@tonaljs/scale-type": { + "version": "4.6.5", + "resolved": "https://registry.npmjs.org/@tonaljs/scale-type/-/scale-type-4.6.5.tgz", + "integrity": "sha512-rwcDOYf2UifjLJhmuQ8f8bJSeOCMDQJ1lB7lzlqdFxes03OeQhdOEfrT0nPtW8BhBEvq4GMM2NA6CLxX8MTwOQ==", + "requires": { + "@tonaljs/core": "^4.6.5", + "@tonaljs/pcset": "^4.6.5" + } + }, + "@tonaljs/time-signature": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/@tonaljs/time-signature/-/time-signature-4.6.2.tgz", + "integrity": "sha512-OlZY4gdLd21WpMeAI1nS9E9zWcYU6oAzh6ptAUndqmVnFIrIWIWKCkWapdFx8dWdqrX8jqya3m4T33wmeo7w5Q==" + }, + "@tonaljs/tonal": { + "version": "4.6.5", + "resolved": "https://registry.npmjs.org/@tonaljs/tonal/-/tonal-4.6.5.tgz", + "integrity": "sha512-lmsWinI9dy7nQyzCEgDVeVAwJtsk4ey05cJZd6oa4QVuSFD+CR8ebaEiwT4/Na+W0kHrKicT3h0uYc2PJIvx5Q==", + "requires": { + "@tonaljs/abc-notation": "^4.6.5", + "@tonaljs/array": "^4.6.5", + "@tonaljs/chord": "^4.6.5", + "@tonaljs/chord-type": "^4.6.5", + "@tonaljs/collection": "^4.6.2", + "@tonaljs/core": "^4.6.5", + "@tonaljs/duration-value": "^4.6.2", + "@tonaljs/interval": "^4.6.5", + "@tonaljs/key": "^4.6.5", + "@tonaljs/midi": "^4.6.5", + "@tonaljs/mode": "^4.6.5", + "@tonaljs/note": "^4.6.5", + "@tonaljs/pcset": "^4.6.5", + "@tonaljs/progression": "^4.6.5", + "@tonaljs/range": "^4.6.5", + "@tonaljs/roman-numeral": "^4.6.5", + "@tonaljs/scale": "^4.6.5", + "@tonaljs/scale-type": "^4.6.5", + "@tonaljs/time-signature": "^4.6.2" + } + }, + "@types/estree": { + "version": "0.0.39", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz", + "integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==" + }, + "@types/linkify-it": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@types/linkify-it/-/linkify-it-3.0.2.tgz", + "integrity": "sha512-HZQYqbiFVWufzCwexrvh694SOim8z2d+xJl5UNamcvQFejLY/2YUtzXHYi3cHdI7PMlS8ejH2slRAOJQ32aNbA==" + }, + "@types/markdown-it": { + "version": "12.2.3", + "resolved": "https://registry.npmjs.org/@types/markdown-it/-/markdown-it-12.2.3.tgz", + "integrity": "sha512-GKMHFfv3458yYy+v/N8gjufHO6MSZKCOXpZc5GXIWWy8uldwfmPn98vp81gZ5f9SVw8YYBctgfJ22a2d7AOMeQ==", + "requires": { + "@types/linkify-it": "*", + "@types/mdurl": "*" + } + }, + "@types/mdurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@types/mdurl/-/mdurl-1.0.2.tgz", + "integrity": "sha512-eC4U9MlIcu2q0KQmXszyn5Akca/0jrQmwDRgpAMJai7qBWq4amIQhZyNau4VYGtCeALvW1/NtjzJJ567aZxfKA==" + }, + "@types/webmidi": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@types/webmidi/-/webmidi-2.0.6.tgz", + "integrity": "sha512-sfS0A5IryqmBrUpcGPipEPeFdpqmZzP6b6lZFxHKgz5n2Vhzh4yJ5P2TvoDUhDjqJyv0Y25ng0Qodgo2Vu08ug==" + }, + "ansi-colors": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", + "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==" + }, + "ansi-gray": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/ansi-gray/-/ansi-gray-0.1.1.tgz", + "integrity": "sha1-KWLPVOyXksSFEKPetSRDaGHvclE=", + "requires": { + "ansi-wrap": "0.1.0" + } + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "peer": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "ansi-wrap": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/ansi-wrap/-/ansi-wrap-0.1.0.tgz", + "integrity": "sha1-qCJQ3bABXponyoLoLqYDu/pF768=" + }, + "argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" + }, + "balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + }, + "beeper": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/beeper/-/beeper-2.1.0.tgz", + "integrity": "sha512-85+CcymhlP0jM4fs4ZMiMRl58VthoN9NRdvi+knXiQpP2UggkSre+A9rOZ0c2g2Vh+pEF5ZAlT+k8dsJNoanAA==", + "requires": { + "yoctodelay": "^1.1.0" + } + }, + "bluebird": { + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", + "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==" + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "browserslist": { + "version": "4.20.2", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.20.2.tgz", + "integrity": "sha512-CQOBCqp/9pDvDbx3xfMi+86pr4KXIf2FDkTTdeuYw8OxS9t898LA1Khq57gtufFILXpfgsSx5woNgsBgvGjpsA==", + "peer": true, + "requires": { + "caniuse-lite": "^1.0.30001317", + "electron-to-chromium": "^1.4.84", + "escalade": "^3.1.1", + "node-releases": "^2.0.2", + "picocolors": "^1.0.0" + } + }, + "caniuse-lite": { + "version": "1.0.30001320", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001320.tgz", + "integrity": "sha512-MWPzG54AGdo3nWx7zHZTefseM5Y1ccM7hlQKHRqJkPozUaw3hNbBTMmLn16GG2FUzjR13Cr3NPfhIieX5PzXDA==", + "peer": true + }, + "catharsis": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/catharsis/-/catharsis-0.9.0.tgz", + "integrity": "sha512-prMTQVpcns/tzFgFVkVp6ak6RykZyWb3gu8ckUpd6YkTlacOd3DXGJjIpD4Q6zJirizvaiAjSSHlOsA+6sNh2A==", + "requires": { + "lodash": "^4.17.15" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "peer": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "peer": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "peer": true + }, + "color-support": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz", + "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==" + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" + }, + "convert-source-map": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz", + "integrity": "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==", + "peer": true, + "requires": { + "safe-buffer": "~5.1.1" + } + }, + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "requires": { + "ms": "2.1.2" + } + }, + "djipevents": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/djipevents/-/djipevents-2.0.4.tgz", + "integrity": "sha512-ozscQ0QQaPIqx0gEMI6BIEMGWlEVuFZb+R3ER0TYrCugdEipAb38ddAXmytMOM7bnvToAzZU0RItaHcBSi6TYA==", + "requires": { + "@babel/runtime": "^7.16.3", + "gulp-jsdoc3": "^3.0.0" + } + }, + "dom-serializer": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.3.2.tgz", + "integrity": "sha512-5c54Bk5Dw4qAxNOI1pFEizPSjVsx5+bpJKmL2kPn8JhBUq2q09tTCa3mjijun2NfK78NMouDYNMBkOrPZiS+ig==", + "requires": { + "domelementtype": "^2.0.1", + "domhandler": "^4.2.0", + "entities": "^2.0.0" + }, + "dependencies": { + "domhandler": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz", + "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", + "requires": { + "domelementtype": "^2.2.0" + } + } + } + }, + "domelementtype": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.2.0.tgz", + "integrity": "sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A==" + }, + "domhandler": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-3.3.0.tgz", + "integrity": "sha512-J1C5rIANUbuYK+FuFL98650rihynUOEzRLxW+90bKZRWB6A1X1Tf82GxR1qAWLyfNPRvjqfip3Q5tdYlmAa9lA==", + "requires": { + "domelementtype": "^2.0.1" + } + }, + "domutils": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", + "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", + "requires": { + "dom-serializer": "^1.0.1", + "domelementtype": "^2.2.0", + "domhandler": "^4.2.0" + }, + "dependencies": { + "domhandler": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz", + "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", + "requires": { + "domelementtype": "^2.2.0" + } + } + } + }, + "electron-to-chromium": { + "version": "1.4.96", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.96.tgz", + "integrity": "sha512-DPNjvNGPabv6FcyjzLAN4C0psN/GgD9rSGvMTuv81SeXG/EX3mCz0wiw9N1tUEnfQXYCJi3H8M0oFPRziZh7rw==", + "peer": true + }, + "entities": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.1.0.tgz", + "integrity": "sha512-hCx1oky9PFrJ611mf0ifBLBRW8lUUVRlFolb5gWRfIELabBlbp9xZvrqZLZAs+NxFnbfQoeGd8wDkygjg7U85w==" + }, + "escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "peer": true + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "peer": true + }, + "estree-walker": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz", + "integrity": "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==" + }, + "fancy-log": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/fancy-log/-/fancy-log-1.3.3.tgz", + "integrity": "sha512-k9oEhlyc0FrVh25qYuSELjr8oxsCoc4/LEZfg2iJJrfEk/tZL9bCoJE47gqAvI2m/AUjluCS4+3I0eTx8n3AEw==", + "requires": { + "ansi-gray": "^0.1.1", + "color-support": "^1.1.3", + "parse-node-version": "^1.0.0", + "time-stamp": "^1.0.0" + } + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" + }, + "fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "optional": true, + "peer": true + }, + "gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "peer": true + }, + "glob": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", + "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "peer": true + }, + "gulp-jsdoc3": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/gulp-jsdoc3/-/gulp-jsdoc3-3.0.0.tgz", + "integrity": "sha512-rE2jAwCPA8XFi9g4V3Z3LPhZNjxuMTIYQVMjdqZAQpRfJITLVaUK3xfmiiNTMc7j+fT7pL8Q5yj7ZPRdwCJWNg==", + "requires": { + "ansi-colors": "^4.1.1", + "beeper": "^2.0.0", + "debug": "^4.1.1", + "fancy-log": "^1.3.3", + "ink-docstrap": "^1.3.2", + "jsdoc": "^3.6.3", + "map-stream": "0.0.7", + "tmp": "0.1.0" + } + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "peer": true + }, + "htmlparser2": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-4.1.0.tgz", + "integrity": "sha512-4zDq1a1zhE4gQso/c5LP1OtrhYTncXNSpvJYtWJBtXAETPlMfi3IFNjGuQbYLuVY4ZR0QMqRVvo4Pdy9KLyP8Q==", + "requires": { + "domelementtype": "^2.0.1", + "domhandler": "^3.0.0", + "domutils": "^2.0.0", + "entities": "^2.0.0" + } + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "ink-docstrap": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/ink-docstrap/-/ink-docstrap-1.3.2.tgz", + "integrity": "sha512-STx5orGQU1gfrkoI/fMU7lX6CSP7LBGO10gXNgOZhwKhUqbtNjCkYSewJtNnLmWP1tAGN6oyEpG1HFPw5vpa5Q==", + "requires": { + "moment": "^2.14.1", + "sanitize-html": "^1.13.0" + } + }, + "jazz-midi": { + "version": "1.7.5", + "resolved": "https://registry.npmjs.org/jazz-midi/-/jazz-midi-1.7.5.tgz", + "integrity": "sha512-RUxChhn388CZfSymwwgucfaBxGu4Z0eeJOSTnUMsDN2tMx5E8G+o7h2gk/xPaDTfOORnQsJk71VhSuqiw1Hy9Q==", + "optional": true + }, + "js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "peer": true + }, + "js2xmlparser": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/js2xmlparser/-/js2xmlparser-4.0.2.tgz", + "integrity": "sha512-6n4D8gLlLf1n5mNLQPRfViYzu9RATblzPEtm1SthMX1Pjao0r9YI9nw7ZIfRxQMERS87mcswrg+r/OYrPRX6jA==", + "requires": { + "xmlcreate": "^2.0.4" + } + }, + "jsdoc": { + "version": "3.6.10", + "resolved": "https://registry.npmjs.org/jsdoc/-/jsdoc-3.6.10.tgz", + "integrity": "sha512-IdQ8ppSo5LKZ9o3M+LKIIK8i00DIe5msDvG3G81Km+1dhy0XrOWD0Ji8H61ElgyEj/O9KRLokgKbAM9XX9CJAg==", + "requires": { + "@babel/parser": "^7.9.4", + "@types/markdown-it": "^12.2.3", + "bluebird": "^3.7.2", + "catharsis": "^0.9.0", + "escape-string-regexp": "^2.0.0", + "js2xmlparser": "^4.0.2", + "klaw": "^4.0.1", + "markdown-it": "^12.3.2", + "markdown-it-anchor": "^8.4.1", + "marked": "^4.0.10", + "mkdirp": "^1.0.4", + "requizzle": "^0.2.3", + "strip-json-comments": "^3.1.0", + "taffydb": "2.6.2", + "underscore": "~1.13.2" + }, + "dependencies": { + "escape-string-regexp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", + "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==" + } + } + }, + "jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "peer": true + }, + "json5": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.1.tgz", + "integrity": "sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==", + "peer": true + }, + "jzz": { + "version": "1.4.9", + "resolved": "https://registry.npmjs.org/jzz/-/jzz-1.4.9.tgz", + "integrity": "sha512-agXk2i6yxl1rL2zIl+KtcPjgWobSOg8i16gFGfYmFWH/mi7LG4Of6ov7KBpPtFC5pxCiWFvW8O2ENyI46TJy0g==", + "optional": true, + "requires": { + "@types/webmidi": "^2.0.6", + "jazz-midi": "^1.7.5" + } + }, + "klaw": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/klaw/-/klaw-4.0.1.tgz", + "integrity": "sha512-pgsE40/SvC7st04AHiISNewaIMUbY5V/K8b21ekiPiFoYs/EYSdsGa+FJArB1d441uq4Q8zZyIxvAzkGNlBdRw==" + }, + "linkify-it": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-3.0.3.tgz", + "integrity": "sha512-ynTsyrFSdE5oZ/O9GEf00kPngmOfVwazR5GKDq6EYfhlpFug3J2zybX56a2PRRpc9P+FuSoGNAwjlbDs9jJBPQ==", + "requires": { + "uc.micro": "^1.0.1" + } + }, + "lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + }, + "map-stream": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/map-stream/-/map-stream-0.0.7.tgz", + "integrity": "sha1-ih8HiW2CsQkmvTdEokIACfiJdKg=" + }, + "markdown-it": { + "version": "12.3.2", + "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-12.3.2.tgz", + "integrity": "sha512-TchMembfxfNVpHkbtriWltGWc+m3xszaRD0CZup7GFFhzIgQqxIfn3eGj1yZpfuflzPvfkt611B2Q/Bsk1YnGg==", + "requires": { + "argparse": "^2.0.1", + "entities": "~2.1.0", + "linkify-it": "^3.0.1", + "mdurl": "^1.0.1", + "uc.micro": "^1.0.5" + } + }, + "markdown-it-anchor": { + "version": "8.4.1", + "resolved": "https://registry.npmjs.org/markdown-it-anchor/-/markdown-it-anchor-8.4.1.tgz", + "integrity": "sha512-sLODeRetZ/61KkKLJElaU3NuU2z7MhXf12Ml1WJMSdwpngeofneCRF+JBbat8HiSqhniOMuTemXMrsI7hA6XyA==", + "requires": {} + }, + "marked": { + "version": "4.0.12", + "resolved": "https://registry.npmjs.org/marked/-/marked-4.0.12.tgz", + "integrity": "sha512-hgibXWrEDNBWgGiK18j/4lkS6ihTe9sxtV4Q1OQppb/0zzyPSzoFANBa5MfsG/zgsWklmNnhm0XACZOH/0HBiQ==" + }, + "mdurl": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz", + "integrity": "sha1-/oWy7HWlkDfyrf7BAP1sYBdhFS4=" + }, + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==" + }, + "moment": { + "version": "2.29.1", + "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.1.tgz", + "integrity": "sha512-kHmoybcPV8Sqy59DwNDY3Jefr64lK/by/da0ViFcuA4DH0vQg5Q6Ze5VimxkfQNSC+Mls/Kx53s7TjP1RhFEDQ==" + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "node-releases": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.2.tgz", + "integrity": "sha512-XxYDdcQ6eKqp/YjI+tb2C5WM2LgjnZrfYg4vgQt49EK268b6gYCHsBLrK2qvJo4FmCtqmKezb0WZFK4fkrZNsg==", + "peer": true + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "requires": { + "wrappy": "1" + } + }, + "parse-node-version": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parse-node-version/-/parse-node-version-1.0.1.tgz", + "integrity": "sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA==" + }, + "parse-srcset": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/parse-srcset/-/parse-srcset-1.0.2.tgz", + "integrity": "sha1-8r0iH2zJcKk42IVWq8WJyqqiveE=" + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" + }, + "picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "peer": true + }, + "picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==" + }, + "postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "requires": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + }, + "dependencies": { + "picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==" + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + } + } + }, + "regenerator-runtime": { + "version": "0.13.9", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz", + "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==" + }, + "requizzle": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/requizzle/-/requizzle-0.2.3.tgz", + "integrity": "sha512-YanoyJjykPxGHii0fZP0uUPEXpvqfBDxWV7s6GKAiiOsiqhX6vHNyW3Qzdmqp/iq/ExbhaGbVrjB4ruEVSM4GQ==", + "requires": { + "lodash": "^4.17.14" + } + }, + "rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "requires": { + "glob": "^7.1.3" + } + }, + "rollup": { + "version": "2.70.1", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.70.1.tgz", + "integrity": "sha512-CRYsI5EuzLbXdxC6RnYhOuRdtz4bhejPMSWjsFLfVM/7w/85n2szZv6yExqUXsBdz5KT8eoubeyDUDjhLHEslA==", + "peer": true, + "requires": { + "fsevents": "~2.3.2" + } + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "peer": true + }, + "sanitize-html": { + "version": "1.27.5", + "resolved": "https://registry.npmjs.org/sanitize-html/-/sanitize-html-1.27.5.tgz", + "integrity": "sha512-M4M5iXDAUEcZKLXkmk90zSYWEtk5NH3JmojQxKxV371fnMh+x9t1rqdmXaGoyEHw3z/X/8vnFhKjGL5xFGOJ3A==", + "requires": { + "htmlparser2": "^4.1.0", + "lodash": "^4.17.15", + "parse-srcset": "^1.0.2", + "postcss": "^7.0.27" + } + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "peer": true + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "peer": true + }, + "strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==" + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "peer": true, + "requires": { + "has-flag": "^3.0.0" + } + }, + "taffydb": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/taffydb/-/taffydb-2.6.2.tgz", + "integrity": "sha1-fLy2S1oUG2ou/CxdLGe04VCyomg=" + }, + "time-stamp": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/time-stamp/-/time-stamp-1.1.0.tgz", + "integrity": "sha1-dkpaEa9QVhkhsTPztE5hhofg9cM=" + }, + "tmp": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.1.0.tgz", + "integrity": "sha512-J7Z2K08jbGcdA1kkQpJSqLF6T0tdQqpR2pnSUXsIchbPdTI9v3e85cLW0d6WDhwuAleOV71j2xWs8qMPfK7nKw==", + "requires": { + "rimraf": "^2.6.3" + } + }, + "to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=" + }, + "uc.micro": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-1.0.6.tgz", + "integrity": "sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA==" + }, + "underscore": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.13.2.tgz", + "integrity": "sha512-ekY1NhRzq0B08g4bGuX4wd2jZx5GnKz6mKSqFL4nqBlfyMGiG10gDFhDTMEfYmDL6Jy0FUIZp7wiRB+0BP7J2g==" + }, + "webmidi": { + "version": "3.0.15", + "resolved": "https://registry.npmjs.org/webmidi/-/webmidi-3.0.15.tgz", + "integrity": "sha512-oAeW7HKydzP3WI/bXh4G60UHVHqw4FP2nZRlVC7Kdk1nbiUENcDTJty4FSG4CtED/V1zczD3EcO8b5fXYLFcQQ==", + "requires": { + "@rollup/plugin-babel": "^5.3.0", + "@types/webmidi": "^2.0.6", + "djipevents": "^2.0.4", + "jzz": "^1.4.5" + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" + }, + "xmlcreate": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/xmlcreate/-/xmlcreate-2.0.4.tgz", + "integrity": "sha512-nquOebG4sngPmGPICTS5EnxqhKbCmz5Ox5hsszI2T6U5qdrJizBc+0ilYSEjTSzU0yZcmvppztXe/5Al5fUwdg==" + }, + "yoctodelay": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/yoctodelay/-/yoctodelay-1.2.0.tgz", + "integrity": "sha512-12y/P9MSig9/5BEhBgylss+fkHiCRZCvYR81eH35NW9uw801cvJt31EAV+WOLcwZRZbLiIQl/hxcdXXXFmGvXg==" + } + } } diff --git a/packages/tone/package-lock.json b/packages/tone/package-lock.json index c63117432..b151bd28e 100644 --- a/packages/tone/package-lock.json +++ b/packages/tone/package-lock.json @@ -6,7 +6,7 @@ "packages": { "": { "name": "@strudel.cycles/tone", - "version": "0.0.1", + "version": "0.0.4", "license": "GPL-3.0-or-later", "dependencies": { "@tonejs/piano": "^0.2.1", From 7ca8c8d2981597311faf3b50c502c2b7aac917a9 Mon Sep 17 00:00:00 2001 From: Felix Roos Date: Mon, 11 Apr 2022 23:07:53 +0200 Subject: [PATCH 35/78] fix "every" example --- repl/src/tutorial/tutorial.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/repl/src/tutorial/tutorial.mdx b/repl/src/tutorial/tutorial.mdx index 989268ac0..81f6d508c 100644 --- a/repl/src/tutorial/tutorial.mdx +++ b/repl/src/tutorial/tutorial.mdx @@ -331,13 +331,13 @@ Will reverse the pattern: Will apply the given function every n cycles: - + Note that late is called directly. This is a shortcut for: - x.late(0.5)))`} /> + x.late(0.5)))`} /> From 4dbe366978d78542af21987a71ca1f373a4844d3 Mon Sep 17 00:00:00 2001 From: Felix Roos Date: Mon, 11 Apr 2022 23:25:13 +0200 Subject: [PATCH 36/78] just a little plumber tune --- repl/src/tunes.mjs | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/repl/src/tunes.mjs b/repl/src/tunes.mjs index 0eff59971..d4cbffdcb 100644 --- a/repl/src/tunes.mjs +++ b/repl/src/tunes.mjs @@ -668,3 +668,38 @@ export const echoPiano = `"<0 2 [4 6](3,4,1) 3*2>" .echo(4, 1/8, .5) .tone((await piano()).chain(out())) .pianoroll()`; + +export const sml1 = ` +stack( + // melody + \`< + [e5 ~] [[d5@2 c5] [~@2 e5]] ~ [~ [c5@2 d5]] [e5 e5] [d5 c5] [e5 f5] [g5 a5] + [~ c5] [c5 d5] [e5 [c5@2 c5]] [~ c5] [f5 e5] [c5 d5] [~ g6] [g6 ~] + [e5 ~] [[d5@2 c5] [~@2 e5]] ~ [~ [c5@2 d5]] [e5 e5] [d5 c5] [a5 g5] [c6 [e5@2 d5]] + [~ c5] [c5 d5] [e5 [c5@2 c5]] [~ c5] [f5 e5] [c5 d5] [~ [g6@2 ~] ~@2] [g5 ~] + [~ a5] [b5 c6] [b5@2 ~@2 g5] ~ + [f5 ~] [[g5@2 f5] ~] [[e5 ~] [f5 ~]] [[f#5 ~] [g5 ~]] + [~ a5] [b5 c6] [b5@2 ~@2 g5] ~ + [eb6 d6] [~ c6] ~!2 + >\` + .legato(.95), + // sub melody + \`< + [~ g4]!2 [~ ab4]!2 [~ a4]!2 [~ bb4]!2 + [~ a4]!2 [~ g4]!2 [d4 e4] [f4 gb4] ~!2 + [~ g4]!2 [~ ab4]!2 [~ a4]!2 [~ bb4]!2 + [~ a4]!2 [~ g4]!2 [d4 e4] [f4 gb4] ~!2 + [~ c5]!4 [~ a4]!2 [[c4 ~] [d4 ~]] [[eb4 ~] [e4 ~]] + [~ c5]!4 [~ eb5]!2 [g4*2 [f4 ~]] [[e4 ~] [d4 ~]] + >\`, + // bass + \`< + c3!7 a3 f3!2 + e3!2 ~!4 + c3!7 a3 f3!2 + e3!2 ~!4 + f3!2 e3!2 d3!2 ~!2 + f3!2 e3!2 ab3!2 ~!2 + >\` + .legato(.5) +).fast(2) //.tone((await piano()).chain(out()))`; From c596fe33a97153502901d338783887a98f6e7941 Mon Sep 17 00:00:00 2001 From: alex Date: Mon, 11 Apr 2022 23:01:26 +0100 Subject: [PATCH 37/78] Fix polymeter --- packages/core/strudel.mjs | 14 ++++++++++---- packages/core/test/pattern.test.mjs | 17 +++++++++++++++++ 2 files changed, 27 insertions(+), 4 deletions(-) diff --git a/packages/core/strudel.mjs b/packages/core/strudel.mjs index d4a003d4e..05d3672b8 100644 --- a/packages/core/strudel.mjs +++ b/packages/core/strudel.mjs @@ -980,7 +980,7 @@ function sequence(...xs) { return _sequenceCount(xs)[0]; } -function polymeter(steps = 0, ...args) { +function polymeterSteps(steps, ...args) { const seqs = args.map((a) => _sequenceCount(a)); if (seqs.length == 0) { return silence; @@ -996,15 +996,20 @@ function polymeter(steps = 0, ...args) { if (steps == seq[1]) { pats.push(seq[0]); } else { + console.log("aha"); pats.push(seq[0]._fast(Fraction(steps).div(Fraction(seq[1])))); } } - return stack(pats); + return stack(...pats); +} + +function polymeter(...args) { + return polymeterSteps(0, ...args); } // alias -function pm(args) { - polymeter(args); +function pm(...args) { + polymeter(...args); } function polyrhythm(...xs) { @@ -1169,6 +1174,7 @@ export { cat, timeCat, sequence, + polymeterSteps, polymeter, pm, polyrhythm, diff --git a/packages/core/test/pattern.test.mjs b/packages/core/test/pattern.test.mjs index 6e68d47ec..13eff589f 100644 --- a/packages/core/test/pattern.test.mjs +++ b/packages/core/test/pattern.test.mjs @@ -13,6 +13,8 @@ import { slowcat, cat, sequence, + polymeter, + polymeterSteps, polyrhythm, silence, fast, @@ -280,6 +282,21 @@ describe('Pattern', function() { ) }) }) + describe('polymeter()', () => { + it('Can layer up cycles, stepwise', () => { + assert.deepStrictEqual( + polymeterSteps(3, ["d","e"]).firstCycle(), + fastcat(pure("d"),pure("e"),pure("d")).firstCycle() + ) + assert.deepStrictEqual( + polymeter(["a","b","c"],["d","e"]).fast(2).firstCycle(), + stack(sequence("a","b","c","a","b","c"), + sequence("d","e","d","e","d","e") + ).firstCycle() + ) + }) + }) + describe('every()', () => { it('Can apply a function every 3rd time', () => { assert.deepStrictEqual( From 357b0ee4678e3e96d7d7f326e098399e38ac44d9 Mon Sep 17 00:00:00 2001 From: alex Date: Tue, 12 Apr 2022 10:53:22 +0100 Subject: [PATCH 38/78] First run at squeezeBind, ref #32 --- packages/core/fraction.mjs | 5 +++ packages/core/strudel.mjs | 79 +++++++++++++++++++++++++++++++------- 2 files changed, 71 insertions(+), 13 deletions(-) diff --git a/packages/core/fraction.mjs b/packages/core/fraction.mjs index f95ee90ac..9d6605fcc 100644 --- a/packages/core/fraction.mjs +++ b/packages/core/fraction.mjs @@ -16,6 +16,11 @@ Fraction.prototype.wholeCycle = function () { return new TimeSpan(this.sam(), this.nextSam()); }; +// The position of a time value relative to the start of its cycle. +Fraction.prototype.cyclePos = function () { + return this.sub(this.sam()); +}; + Fraction.prototype.lt = function (other) { return this.compare(other) < 0; }; diff --git a/packages/core/strudel.mjs b/packages/core/strudel.mjs index 4f98eb5eb..42d974ec6 100644 --- a/packages/core/strudel.mjs +++ b/packages/core/strudel.mjs @@ -59,6 +59,15 @@ class TimeSpan { return spans; } + cycleArc() { + // Shifts a timespan to one of equal duration that starts within cycle zero. + // (Note that the output timespan probably does not start *at* Time 0 -- + // that only happens when the input Arc starts at an integral Time.) + const b = this.begin.cyclePos(); + const e = b + (this.end - this.begin); + return new TimeSpan(b, e); + } + withTime(func_time) { // Applies given function to both the begin and end time value of the timespan""" return new TimeSpan(func_time(this.begin), func_time(this.end)); @@ -140,6 +149,10 @@ class Hap { return this.whole.end.sub(this.whole.begin).valueOf(); } + wholeOrPart() { + return this.whole ? this.whole : this.part; + } + withSpan(func) { // Returns a new event with the function f applies to the event timespan. const whole = this.whole ? func(this.whole) : undefined; @@ -186,6 +199,11 @@ class Hap { ); } + combineContext(b) { + const a = this; + return { ...a.context, ...b.context, locations: (a.context.locations || []).concat(b.context.locations || []) }; + } + setContext(context) { return new Hap(this.whole, this.part, this.value, context); } @@ -351,12 +369,11 @@ class Pattern { if (s == undefined) { return undefined; } - // TODO: is it right to add event_val.context here? return new Hap( whole_func(event_func.whole, event_val.whole), s, event_func.value(event_val.value), - event_val.context, + event_val.combineContext(event_func), ); }; return flatten( @@ -388,11 +405,8 @@ class Pattern { const new_whole = hap_func.whole; const new_part = hap_func.part.intersection_e(hap_val.part); const new_value = hap_func.value(hap_val.value); - const hap = new Hap(new_whole, new_part, new_value, { - ...hap_val.context, - ...hap_func.context, - locations: (hap_val.context.locations || []).concat(hap_func.context.locations || []), - }); + const new_context = hap_val.combineContext(hap_func); + const hap = new Hap(new_whole, new_part, new_value, new_context); haps.push(hap); } } @@ -412,11 +426,8 @@ class Pattern { const new_whole = hap_val.whole; const new_part = hap_func.part.intersection_e(hap_val.part); const new_value = hap_func.value(hap_val.value); - const hap = new Hap(new_whole, new_part, new_value, { - ...hap_func.context, - ...hap_val.context, - locations: (hap_val.context.locations || []).concat(hap_func.context.locations || []), - }); + const new_context = hap_val.combineContext(hap_func); + const hap = new Hap(new_whole, new_part, new_value, new_context); haps.push(hap); } } @@ -572,6 +583,49 @@ class Pattern { return this.outerBind(id); } + squeezeJoin() { + const pat_of_pats = this; + function query(state) { + const haps = pat_of_pats.query(state); + function flatHap(outerHap) { + const pat = outerHap.value.compressArc(outerHap.wholeOrPart().cycleArc()); + const innerHaps = pat.query(state.setSpan(outerHap.part)); + function munge(outer, inner) { + let whole = undefined; + if (inner.whole && outer.whole) { + whole = inner.whole.intersection(outer.whole); + if (!whole) { + // The wholes are present, but don't intersect + return undefined; + } + } + const part = inner.part.intersection(outer_part); + if (!part) { + // The parts don't intersect + return undefined; + } + const context = inner.combineContext(outer.context); + return new Hap(whole, part, inner.value, context); + } + innerHaps.map(innerHap => munge(outerHap,innerHap)) + } + const flattened = haps.map((x) => x.withEvent(flatHap)); + return flattened.filter(x => x); + } + } + + // squeezeJoin :: Pattern (Pattern a) -> Pattern a + // squeezeJoin pp = pp {query = q} + // where q st = concatMap + // (\e@(Event c w p v) -> + // mapMaybe (munge c w p) $ query (compressArc (cycleArc $ wholeOrPart e) v) st {arc = p} + // ) + // (query pp st) + // munge oContext oWhole oPart (Event iContext iWhole iPart v) = + // do w' <- subMaybeArc oWhole iWhole + // p' <- subArc oPart iPart + // return (Event (combineContexts [iContext, oContext]) w' p' v) + _apply(func) { return func(this); } @@ -995,7 +1049,6 @@ function polymeterSteps(steps, ...args) { if (steps == seq[1]) { pats.push(seq[0]); } else { - console.log("aha"); pats.push(seq[0]._fast(Fraction(steps).div(Fraction(seq[1])))); } } From c2cc6b6dc8762521e8ee329cb581942ed0c8bc0e Mon Sep 17 00:00:00 2001 From: alex Date: Tue, 12 Apr 2022 11:22:53 +0100 Subject: [PATCH 39/78] Working squeezeBind --- packages/core/strudel.mjs | 14 ++++++++------ packages/core/test/pattern.test.mjs | 9 +++++++++ 2 files changed, 17 insertions(+), 6 deletions(-) diff --git a/packages/core/strudel.mjs b/packages/core/strudel.mjs index 42d974ec6..42dd41893 100644 --- a/packages/core/strudel.mjs +++ b/packages/core/strudel.mjs @@ -588,7 +588,7 @@ class Pattern { function query(state) { const haps = pat_of_pats.query(state); function flatHap(outerHap) { - const pat = outerHap.value.compressArc(outerHap.wholeOrPart().cycleArc()); + const pat = outerHap.value._compressSpan(outerHap.wholeOrPart().cycleArc()); const innerHaps = pat.query(state.setSpan(outerHap.part)); function munge(outer, inner) { let whole = undefined; @@ -599,19 +599,21 @@ class Pattern { return undefined; } } - const part = inner.part.intersection(outer_part); + const part = inner.part.intersection(outer.part); if (!part) { // The parts don't intersect return undefined; } - const context = inner.combineContext(outer.context); + const context = inner.combineContext(outer); return new Hap(whole, part, inner.value, context); } - innerHaps.map(innerHap => munge(outerHap,innerHap)) + return innerHaps.map(innerHap => munge(outerHap, innerHap)) } - const flattened = haps.map((x) => x.withEvent(flatHap)); - return flattened.filter(x => x); + const result = flatten(haps.map(flatHap)); + // remove undefineds + return result.filter(x => x); } + return new Pattern(query); } // squeezeJoin :: Pattern (Pattern a) -> Pattern a diff --git a/packages/core/test/pattern.test.mjs b/packages/core/test/pattern.test.mjs index 13eff589f..76a6e418c 100644 --- a/packages/core/test/pattern.test.mjs +++ b/packages/core/test/pattern.test.mjs @@ -33,6 +33,7 @@ import { square2, tri, tri2, + id, } from '../strudel.mjs'; //import { Time } from 'tone'; import pkg from 'tone'; @@ -489,4 +490,12 @@ describe('Pattern', function() { ) }) }) + describe("squeezeJoin", () => { + it("Can squeeze", () => { + assert.deepStrictEqual( + sequence("a", ["a","a"]).fmap(a => fastcat("b", "c")).squeezeJoin().firstCycle(), + sequence(["b", "c"],[["b", "c"],["b", "c"]]).firstCycle() + ) + }) + }) }) From b10e0c3a1578d7d1b16a767846c971ede82672d3 Mon Sep 17 00:00:00 2001 From: alex Date: Tue, 12 Apr 2022 11:31:20 +0100 Subject: [PATCH 40/78] Add ply() --- packages/core/strudel.mjs | 21 ++++++++------------- packages/core/test/pattern.test.mjs | 9 +++++++++ 2 files changed, 17 insertions(+), 13 deletions(-) diff --git a/packages/core/strudel.mjs b/packages/core/strudel.mjs index 42dd41893..7a3d86856 100644 --- a/packages/core/strudel.mjs +++ b/packages/core/strudel.mjs @@ -616,18 +616,6 @@ class Pattern { return new Pattern(query); } - // squeezeJoin :: Pattern (Pattern a) -> Pattern a - // squeezeJoin pp = pp {query = q} - // where q st = concatMap - // (\e@(Event c w p v) -> - // mapMaybe (munge c w p) $ query (compressArc (cycleArc $ wholeOrPart e) v) st {arc = p} - // ) - // (query pp st) - // munge oContext oWhole oPart (Event iContext iWhole iPart v) = - // do w' <- subMaybeArc oWhole iWhole - // p' <- subArc oPart iPart - // return (Event (combineContexts [iContext, oContext]) w' p' v) - _apply(func) { return func(this); } @@ -689,6 +677,10 @@ class Pattern { return this._fast(Fraction(1).div(factor)); } + _ply(factor) { + return this.fmap(x => pure(x)._fast(factor)).squeezeJoin() + } + // cpm = cycles per minute _cpm(cpm) { return this._fast(cpm / 60); @@ -885,6 +877,7 @@ Pattern.prototype.patternified = [ 'apply', 'fast', 'slow', + 'ply', 'cpm', 'early', 'late', @@ -892,7 +885,7 @@ Pattern.prototype.patternified = [ 'legato', 'velocity', 'segment', - 'color', + 'color' ]; // methods that create patterns, which are added to patternified Pattern methods Pattern.prototype.factories = { pure, stack, slowcat, fastcat, cat, timeCat, sequence, polymeter, pm, polyrhythm, pr }; @@ -1105,6 +1098,7 @@ const iter = curry((a, pat) => pat.iter(a)); const iterBack = curry((a, pat) => pat.iter(a)); const chunk = curry((a, pat) => pat.chunk(a)); const chunkBack = curry((a, pat) => pat.chunkBack(a)); +const ply = curry((a, pat) => pat.ply(a)); // problem: curried functions with spread arguments must have pat at the beginning // with this, we cannot keep the pattern open at the end.. solution for now: use array to keep using pat as last arg @@ -1262,4 +1256,5 @@ export { iterBack, chunk, chunkBack, + ply, }; diff --git a/packages/core/test/pattern.test.mjs b/packages/core/test/pattern.test.mjs index 76a6e418c..88d18f32e 100644 --- a/packages/core/test/pattern.test.mjs +++ b/packages/core/test/pattern.test.mjs @@ -34,6 +34,7 @@ import { tri, tri2, id, + ply, } from '../strudel.mjs'; //import { Time } from 'tone'; import pkg from 'tone'; @@ -498,4 +499,12 @@ describe('Pattern', function() { ) }) }) + describe("ply", () => { + it("Can ply(3)", () => { + assert.deepStrictEqual( + sequence("a", ["b","c"]).ply(3).firstCycle(), + sequence(pure("a").fast(3), [pure("b").fast(3), pure("c").fast(3)]).firstCycle() + ) + }) + }) }) From 8ea59067ce3f3b36fc54fb9b0ac21491c8468b54 Mon Sep 17 00:00:00 2001 From: alex Date: Tue, 12 Apr 2022 11:55:56 +0100 Subject: [PATCH 41/78] rename inner <> outer bind and join --- packages/core/strudel.mjs | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/packages/core/strudel.mjs b/packages/core/strudel.mjs index 7a3d86856..d8e6d5250 100644 --- a/packages/core/strudel.mjs +++ b/packages/core/strudel.mjs @@ -563,18 +563,8 @@ class Pattern { return this.bind(id); } - innerBind(func) { - return this._bindWhole((a, _) => a, func); - } - - innerJoin() { - // Flattens a pattern of patterns into a pattern, where wholes are - // taken from inner events. - return this.innerBind(id); - } - outerBind(func) { - return this._bindWhole((_, b) => b, func); + return this._bindWhole((a, _) => a, func); } outerJoin() { @@ -583,6 +573,16 @@ class Pattern { return this.outerBind(id); } + innerBind(func) { + return this._bindWhole((_, b) => b, func); + } + + innerJoin() { + // Flattens a pattern of patterns into a pattern, where wholes are + // taken from inner events. + return this.innerBind(id); + } + squeezeJoin() { const pat_of_pats = this; function query(state) { @@ -633,7 +633,7 @@ class Pattern { args = args.map((arg) => (isPattern(arg) ? arg.fmap((value) => value.value || value) : arg)); const pat_arg = sequence(...args); // arg.locations has to go somewhere.. - return pat_arg.fmap((arg) => func.call(pat, arg)).outerJoin(); + return pat_arg.fmap((arg) => func.call(pat, arg)).innerJoin(); }; return patterned; } @@ -1126,20 +1126,20 @@ const patternify2 = (f) => (pata, patb, pat) => pata .fmap((a) => (b) => f.call(pat, a, b)) .appLeft(patb) - .outerJoin(); + .innerJoin(); const patternify3 = (f) => (pata, patb, patc, pat) => pata .fmap((a) => (b) => (c) => f.call(pat, a, b, c)) .appLeft(patb) .appLeft(patc) - .outerJoin(); + .innerJoin(); const patternify4 = (f) => (pata, patb, patc, patd, pat) => pata .fmap((a) => (b) => (c) => (d) => f.call(pat, a, b, c, d)) .appLeft(patb) .appLeft(patc) .appLeft(patd) - .outerJoin(); + .innerJoin(); Pattern.prototype.echo = function (...args) { args = args.map(reify); From 529d44838365466a55e1c67204b166502bef3709 Mon Sep 17 00:00:00 2001 From: alex Date: Tue, 12 Apr 2022 12:00:39 +0100 Subject: [PATCH 42/78] squeezeBind itself + tidying --- packages/core/strudel.mjs | 8 ++++++-- packages/core/test/pattern.test.mjs | 4 ++-- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/packages/core/strudel.mjs b/packages/core/strudel.mjs index d8e6d5250..f5a2f2f1b 100644 --- a/packages/core/strudel.mjs +++ b/packages/core/strudel.mjs @@ -583,7 +583,7 @@ class Pattern { return this.innerBind(id); } - squeezeJoin() { + _squeezeJoin() { const pat_of_pats = this; function query(state) { const haps = pat_of_pats.query(state); @@ -616,6 +616,10 @@ class Pattern { return new Pattern(query); } + _squeezeBind(func) { + return this.fmap(func).squeezeBind(); + } + _apply(func) { return func(this); } @@ -678,7 +682,7 @@ class Pattern { } _ply(factor) { - return this.fmap(x => pure(x)._fast(factor)).squeezeJoin() + return this.fmap(x => pure(x)._fast(factor))._squeezeJoin() } // cpm = cycles per minute diff --git a/packages/core/test/pattern.test.mjs b/packages/core/test/pattern.test.mjs index 88d18f32e..a42b9a538 100644 --- a/packages/core/test/pattern.test.mjs +++ b/packages/core/test/pattern.test.mjs @@ -491,10 +491,10 @@ describe('Pattern', function() { ) }) }) - describe("squeezeJoin", () => { + describe("_squeezeJoin", () => { it("Can squeeze", () => { assert.deepStrictEqual( - sequence("a", ["a","a"]).fmap(a => fastcat("b", "c")).squeezeJoin().firstCycle(), + sequence("a", ["a","a"]).fmap(a => fastcat("b", "c"))._squeezeJoin().firstCycle(), sequence(["b", "c"],[["b", "c"],["b", "c"]]).firstCycle() ) }) From 83c9200e7ddb9efe12561fa9b59be9ae7beaf7b9 Mon Sep 17 00:00:00 2001 From: alex Date: Tue, 12 Apr 2022 12:01:19 +0100 Subject: [PATCH 43/78] Prettify --- packages/core/strudel.mjs | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/packages/core/strudel.mjs b/packages/core/strudel.mjs index f5a2f2f1b..132753891 100644 --- a/packages/core/strudel.mjs +++ b/packages/core/strudel.mjs @@ -607,11 +607,11 @@ class Pattern { const context = inner.combineContext(outer); return new Hap(whole, part, inner.value, context); } - return innerHaps.map(innerHap => munge(outerHap, innerHap)) + return innerHaps.map((innerHap) => munge(outerHap, innerHap)); } const result = flatten(haps.map(flatHap)); // remove undefineds - return result.filter(x => x); + return result.filter((x) => x); } return new Pattern(query); } @@ -682,7 +682,7 @@ class Pattern { } _ply(factor) { - return this.fmap(x => pure(x)._fast(factor))._squeezeJoin() + return this.fmap((x) => pure(x)._fast(factor))._squeezeJoin(); } // cpm = cycles per minute @@ -889,7 +889,7 @@ Pattern.prototype.patternified = [ 'legato', 'velocity', 'segment', - 'color' + 'color', ]; // methods that create patterns, which are added to patternified Pattern methods Pattern.prototype.factories = { pure, stack, slowcat, fastcat, cat, timeCat, sequence, polymeter, pm, polyrhythm, pr }; From 51db0eaf400fa0c7b2a9a6f79d270a30f39c0e54 Mon Sep 17 00:00:00 2001 From: alex Date: Tue, 12 Apr 2022 12:16:02 +0100 Subject: [PATCH 44/78] Test and fix chop / squeezebind --- packages/core/strudel.mjs | 11 ++++++++++- packages/core/test/pattern.test.mjs | 12 ++++++++++++ 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/packages/core/strudel.mjs b/packages/core/strudel.mjs index 132753891..6ef8ff72d 100644 --- a/packages/core/strudel.mjs +++ b/packages/core/strudel.mjs @@ -617,7 +617,7 @@ class Pattern { } _squeezeBind(func) { - return this.fmap(func).squeezeBind(); + return this.fmap(func)._squeezeJoin(); } _apply(func) { @@ -685,6 +685,15 @@ class Pattern { return this.fmap((x) => pure(x)._fast(factor))._squeezeJoin(); } + _chop(n) { + const slices = Array.from({length: n}, (x, i) => i); + const slice_objects = slices.map(i => ({begin: i/n, end: (i+1)/n})); + const func = function(o) { + return(sequence(slice_objects.map(slice_o => Object.assign({}, o, slice_o)))) + } + return(this._squeezeBind(func)); + } + // cpm = cycles per minute _cpm(cpm) { return this._fast(cpm / 60); diff --git a/packages/core/test/pattern.test.mjs b/packages/core/test/pattern.test.mjs index a42b9a538..f833c4c9e 100644 --- a/packages/core/test/pattern.test.mjs +++ b/packages/core/test/pattern.test.mjs @@ -507,4 +507,16 @@ describe('Pattern', function() { ) }) }) + describe("chop", () => { + it("Can chop(2)", () => { + assert.deepStrictEqual( + sequence({sound: "a"}, {sound: "b"})._chop(2).firstCycle(), + sequence({sound: "a", begin: 0, end: 0.5}, + {sound: "a", begin: 0.5, end: 1}, + {sound: "b", begin: 0, end: 0.5}, + {sound: "b", begin: 0.5, end: 1} + ).firstCycle() + ); + }); + }) }) From e199564415cc1f40d0887c41f4193b35021da08d Mon Sep 17 00:00:00 2001 From: alex Date: Tue, 12 Apr 2022 12:22:04 +0100 Subject: [PATCH 45/78] Patternify chop() --- packages/core/strudel.mjs | 1 + packages/core/test/pattern.test.mjs | 13 ++++++++++++- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/packages/core/strudel.mjs b/packages/core/strudel.mjs index 6ef8ff72d..ec1eaa2e5 100644 --- a/packages/core/strudel.mjs +++ b/packages/core/strudel.mjs @@ -891,6 +891,7 @@ Pattern.prototype.patternified = [ 'fast', 'slow', 'ply', + 'chop', 'cpm', 'early', 'late', diff --git a/packages/core/test/pattern.test.mjs b/packages/core/test/pattern.test.mjs index f833c4c9e..9ebd78137 100644 --- a/packages/core/test/pattern.test.mjs +++ b/packages/core/test/pattern.test.mjs @@ -508,7 +508,7 @@ describe('Pattern', function() { }) }) describe("chop", () => { - it("Can chop(2)", () => { + it("Can _chop(2)", () => { assert.deepStrictEqual( sequence({sound: "a"}, {sound: "b"})._chop(2).firstCycle(), sequence({sound: "a", begin: 0, end: 0.5}, @@ -518,5 +518,16 @@ describe('Pattern', function() { ).firstCycle() ); }); + it("Can chop(2,3)", () => { + assert.deepStrictEqual( + pure({sound: "a"}).fast(2).chop(2,3)._sortEventsByPart().firstCycle(), + sequence([{sound: "a", begin: 0, end: 0.5}, + {sound: "a", begin: 0.5, end: 1}], + [{sound: "a", begin: 0, end: 1/3}, + {sound: "a", begin: 1/3, end: 2/3}, + {sound: "a", begin: 2/3, end: 1} + ])._sortEventsByPart().firstCycle() + ) + }) }) }) From 7c10d171f64751889612addaeb03589b7581673c Mon Sep 17 00:00:00 2001 From: alex Date: Tue, 12 Apr 2022 16:49:27 +0100 Subject: [PATCH 46/78] patternify jux, add juxBy --- packages/core/strudel.mjs | 9 ++++++++- packages/core/test/pattern.test.mjs | 8 ++++++++ 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/packages/core/strudel.mjs b/packages/core/strudel.mjs index ec1eaa2e5..0a58311b6 100644 --- a/packages/core/strudel.mjs +++ b/packages/core/strudel.mjs @@ -791,7 +791,7 @@ class Pattern { return new Pattern(query)._splitQueries(); } - jux(func, by = 1) { + juxBy(by, func) { by /= 2; const elem_or = function (dict, key, dflt) { if (key in dict) { @@ -805,6 +805,10 @@ class Pattern { return stack(left, func(right)); } + _jux(func) { + return this.juxBy(1, func); + } + // is there a different name for those in tidal? stack(...pats) { return stack(this, ...pats); @@ -900,6 +904,7 @@ Pattern.prototype.patternified = [ 'velocity', 'segment', 'color', + 'jux' ]; // methods that create patterns, which are added to patternified Pattern methods Pattern.prototype.factories = { pure, stack, slowcat, fastcat, cat, timeCat, sequence, polymeter, pm, polyrhythm, pr }; @@ -1101,6 +1106,7 @@ const every = curry((i, f, pat) => pat.every(i, f)); const when = curry((binary, f, pat) => pat.when(binary, f)); const off = curry((t, f, pat) => pat.off(t, f)); const jux = curry((f, pat) => pat.jux(f)); +const juxBy = curry((by, f, pat) => pat.juxBy(by, f)); const append = curry((a, pat) => pat.append(a)); const superimpose = curry((array, pat) => pat.superimpose(...array)); const struct = curry((a, pat) => pat.struct(a)); @@ -1257,6 +1263,7 @@ export { when, off, jux, + juxBy, append, superimpose, struct, diff --git a/packages/core/test/pattern.test.mjs b/packages/core/test/pattern.test.mjs index 9ebd78137..bd52ff05e 100644 --- a/packages/core/test/pattern.test.mjs +++ b/packages/core/test/pattern.test.mjs @@ -491,6 +491,14 @@ describe('Pattern', function() { ) }) }) + describe("juxBy", () => { + it("Can juxtapose by half", () => { + assert.deepStrictEqual( + pure({a: 1}).juxBy(0.5, fast(2))._sortEventsByPart().firstCycle(), + stack(pure({a:1, pan: 0.25}), pure({a:1, pan: 0.75}).fast(2))._sortEventsByPart().firstCycle() + ) + }) + }) describe("_squeezeJoin", () => { it("Can squeeze", () => { assert.deepStrictEqual( From e75d8048feb91abad0ae132fcf5d5b37b48fc5a5 Mon Sep 17 00:00:00 2001 From: alex Date: Tue, 12 Apr 2022 16:54:27 +0100 Subject: [PATCH 47/78] rename range > listRange and remove from exports --- packages/core/strudel.mjs | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/packages/core/strudel.mjs b/packages/core/strudel.mjs index 0a58311b6..8811bdfb9 100644 --- a/packages/core/strudel.mjs +++ b/packages/core/strudel.mjs @@ -8,7 +8,7 @@ const flatten = (arr) => [].concat(...arr); const id = (a) => a; -const range = (min, max) => Array.from({ length: max - min + 1 }, (_, i) => i + min); +const listRange = (min, max) => Array.from({ length: max - min + 1 }, (_, i) => i + min); export function curry(func, overload) { const fn = function curried(...args) { @@ -822,7 +822,7 @@ class Pattern { } stutWith(times, time, func) { - return stack(...range(0, times - 1).map((i) => func(this.late(i * time), i))); + return stack(...listRange(0, times - 1).map((i) => func(this.late(i * time), i))); } stut(times, feedback, time) { @@ -831,7 +831,7 @@ class Pattern { // these might change with: https://github.com/tidalcycles/Tidal/issues/902 _echoWith(times, time, func) { - return stack(...range(0, times - 1).map((i) => func(this.late(i * time), i))); + return stack(...listRange(0, times - 1).map((i) => func(this.late(i * time), i))); } _echo(times, time, feedback) { @@ -839,7 +839,7 @@ class Pattern { } iter(times, back = false) { - return slowcat(...range(0, times - 1).map((i) => (back ? this.late(i / times) : this.early(i / times)))); + return slowcat(...listRange(0, times - 1).map((i) => (back ? this.late(i / times) : this.early(i / times)))); } // known as iter' in tidalcycles @@ -1271,7 +1271,6 @@ export { invert, inv, id, - range, echo, iter, iterBack, From 0e5dc4f3688780701cb67c28a8bb82a4e2377209 Mon Sep 17 00:00:00 2001 From: alex Date: Tue, 12 Apr 2022 17:48:09 +0100 Subject: [PATCH 48/78] add `range` --- packages/core/strudel.mjs | 7 +++++++ packages/core/test/pattern.test.mjs | 8 ++++++++ 2 files changed, 15 insertions(+) diff --git a/packages/core/strudel.mjs b/packages/core/strudel.mjs index 8811bdfb9..a996ec35e 100644 --- a/packages/core/strudel.mjs +++ b/packages/core/strudel.mjs @@ -520,6 +520,11 @@ class Pattern { return this._asNumber().fmap((v) => Math.ceil(v)); } + // Assumes source pattern of numbers in range 0..1 + range(min, max) { + return this.mul(max-min).add(min); + } + union(other) { return this._opleft(other, (a) => (b) => Object.assign({}, a, b)); } @@ -1102,6 +1107,7 @@ const sub = curry((a, pat) => pat.sub(a)); const mul = curry((a, pat) => pat.mul(a)); const div = curry((a, pat) => pat.div(a)); const union = curry((a, pat) => pat.union(a)); +const range = curry((a, b, pat) => pat.range(a,b)); const every = curry((i, f, pat) => pat.every(i, f)); const when = curry((binary, f, pat) => pat.when(binary, f)); const off = curry((t, f, pat) => pat.off(t, f)); @@ -1259,6 +1265,7 @@ export { mul, div, union, + range, every, when, off, diff --git a/packages/core/test/pattern.test.mjs b/packages/core/test/pattern.test.mjs index bd52ff05e..0a1c2d5c4 100644 --- a/packages/core/test/pattern.test.mjs +++ b/packages/core/test/pattern.test.mjs @@ -538,4 +538,12 @@ describe('Pattern', function() { ) }) }) + describe("range", () => { + it("Can change the range of a unipolar pattern", () => { + assert.deepStrictEqual( + sequence(0,0.25,0.5,0.75).range(1000,1100).firstCycle(), + sequence(1000,1025,1050,1075).firstCycle() + ) + }) + }) }) From 3c318917743eb1b9f19f3b510f969084aeed1014 Mon Sep 17 00:00:00 2001 From: alex Date: Tue, 12 Apr 2022 17:53:40 +0100 Subject: [PATCH 49/78] Add range2 --- packages/core/strudel.mjs | 7 +++++++ packages/core/test/pattern.test.mjs | 6 +++--- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/packages/core/strudel.mjs b/packages/core/strudel.mjs index a996ec35e..2a66e535c 100644 --- a/packages/core/strudel.mjs +++ b/packages/core/strudel.mjs @@ -525,6 +525,11 @@ class Pattern { return this.mul(max-min).add(min); } + // Assumes source pattern of numbers in range -1..1 + range2(min, max) { + return _fromBipolar(this).range(min,max); + } + union(other) { return this._opleft(other, (a) => (b) => Object.assign({}, a, b)); } @@ -1108,6 +1113,7 @@ const mul = curry((a, pat) => pat.mul(a)); const div = curry((a, pat) => pat.div(a)); const union = curry((a, pat) => pat.union(a)); const range = curry((a, b, pat) => pat.range(a,b)); +const range2 = curry((a, b, pat) => pat.range2(a,b)); const every = curry((i, f, pat) => pat.every(i, f)); const when = curry((binary, f, pat) => pat.when(binary, f)); const off = curry((t, f, pat) => pat.off(t, f)); @@ -1266,6 +1272,7 @@ export { div, union, range, + range2, every, when, off, diff --git a/packages/core/test/pattern.test.mjs b/packages/core/test/pattern.test.mjs index 0a1c2d5c4..adc5d179b 100644 --- a/packages/core/test/pattern.test.mjs +++ b/packages/core/test/pattern.test.mjs @@ -538,10 +538,10 @@ describe('Pattern', function() { ) }) }) - describe("range", () => { - it("Can change the range of a unipolar pattern", () => { + describe("range2", () => { + it("Can change the range of a bipolar pattern", () => { assert.deepStrictEqual( - sequence(0,0.25,0.5,0.75).range(1000,1100).firstCycle(), + sequence(-1,-0.5,0,0.5).range2(1000,1100).firstCycle(), sequence(1000,1025,1050,1075).firstCycle() ) }) From f8cbd6755780571b8aa3b1579b89a003b18b606f Mon Sep 17 00:00:00 2001 From: Felix Roos Date: Tue, 12 Apr 2022 20:14:08 +0200 Subject: [PATCH 50/78] fix: disable highlighting --- repl/src/useRepl.mjs | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/repl/src/useRepl.mjs b/repl/src/useRepl.mjs index 061cd2f3d..c20a9cbaf 100644 --- a/repl/src/useRepl.mjs +++ b/repl/src/useRepl.mjs @@ -23,6 +23,13 @@ function useRepl({ tune, defaultSynth, autolink = true, onEvent, onDraw }) { const dirty = useMemo(() => code !== activeCode || error, [code, activeCode, error]); const pushLog = useCallback((message) => setLog((log) => log + `${log ? '\n\n' : ''}${message}`), []); + // below block allows disabling the highlighting by including "strudel disable-highlighting" in the code (as comment) + onDraw = useMemo(() => { + if (activeCode && !activeCode.includes('strudel disable-highlighting')) { + return onDraw; + } + }, [activeCode, onDraw]); + // cycle hook to control scheduling const cycle = useCycle({ onDraw, @@ -111,13 +118,6 @@ function useRepl({ tune, defaultSynth, autolink = true, onEvent, onDraw }) { } }; - // below block allows disabling the highlighting by including "strudel disable-highlighting" in the code (as comment) - onDraw = useMemo(() => { - if (activeCode && !activeCode.includes('strudel disable-highlighting')) { - return onDraw; - } - }, [activeCode, onDraw]); - const togglePlay = () => { if (!cycle.started) { activateCode(); From c604f920a061b603e1ccba533ec2920f40d8690f Mon Sep 17 00:00:00 2001 From: Felix Roos Date: Tue, 12 Apr 2022 20:14:48 +0200 Subject: [PATCH 51/78] add root scripts --- package-lock.json | 75 +++++++++++++++++++++++++++++++++++++++++++++++ package.json | 4 ++- 2 files changed, 78 insertions(+), 1 deletion(-) diff --git a/package-lock.json b/package-lock.json index 299d7e7d7..2fefcea26 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1885,6 +1885,10 @@ "resolved": "packages/mini", "link": true }, + "node_modules/@strudel.cycles/osc": { + "resolved": "packages/osc", + "link": true + }, "node_modules/@strudel.cycles/tonal": { "resolved": "packages/tonal", "link": true @@ -5131,6 +5135,14 @@ "node": ">=0.10.0" } }, + "node_modules/isomorphic-ws": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/isomorphic-ws/-/isomorphic-ws-4.0.1.tgz", + "integrity": "sha512-BhBvN2MBpWTaSHdWRb/bwdZJ1WaehQ2L1KngkCkfLUGF0mAWAT1sQUQacEmQ0jXkFw/czDXPNQSL5u2/Krsz1w==", + "peerDependencies": { + "ws": "*" + } + }, "node_modules/isstream": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", @@ -6703,6 +6715,15 @@ "node": ">=0.10.0" } }, + "node_modules/osc-js": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/osc-js/-/osc-js-2.3.1.tgz", + "integrity": "sha512-DjpfUcyTsMmD7uLdyjqsT9zwuNkUOG8yJMc56H9spTCRqTls5vLt5QnlVploVqSRwQ2stvcc+CsY18ouxab9mg==", + "dependencies": { + "isomorphic-ws": "4.0.1", + "ws": "8.5.0" + } + }, "node_modules/osenv": { "version": "0.1.5", "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz", @@ -9085,6 +9106,26 @@ "node": ">=6" } }, + "node_modules/ws": { + "version": "8.5.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.5.0.tgz", + "integrity": "sha512-BWX0SWVgLPzYwF8lTzEy1egjhS4S4OEAHfsO8o65WOVsrnSRGaSiUaa9e0ggGlkMTtBlmOpEXiie9RUcBO86qg==", + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, "node_modules/xmlcreate": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/xmlcreate/-/xmlcreate-2.0.4.tgz", @@ -9266,6 +9307,13 @@ "@strudel.cycles/tone": "^0.0.4" } }, + "packages/osc": { + "version": "0.0.1", + "license": "GPL-3.0-or-later", + "dependencies": { + "osc-js": "^2.3.0" + } + }, "packages/tonal": { "name": "@strudel.cycles/tonal", "version": "0.0.3", @@ -10847,6 +10895,12 @@ "@strudel.cycles/tone": "^0.0.4" } }, + "@strudel.cycles/osc": { + "version": "file:packages/osc", + "requires": { + "osc-js": "^2.3.0" + } + }, "@strudel.cycles/tonal": { "version": "file:packages/tonal", "requires": { @@ -13407,6 +13461,12 @@ "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", "dev": true }, + "isomorphic-ws": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/isomorphic-ws/-/isomorphic-ws-4.0.1.tgz", + "integrity": "sha512-BhBvN2MBpWTaSHdWRb/bwdZJ1WaehQ2L1KngkCkfLUGF0mAWAT1sQUQacEmQ0jXkFw/czDXPNQSL5u2/Krsz1w==", + "requires": {} + }, "isstream": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", @@ -14632,6 +14692,15 @@ "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", "dev": true }, + "osc-js": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/osc-js/-/osc-js-2.3.1.tgz", + "integrity": "sha512-DjpfUcyTsMmD7uLdyjqsT9zwuNkUOG8yJMc56H9spTCRqTls5vLt5QnlVploVqSRwQ2stvcc+CsY18ouxab9mg==", + "requires": { + "isomorphic-ws": "4.0.1", + "ws": "8.5.0" + } + }, "osenv": { "version": "0.1.5", "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz", @@ -16490,6 +16559,12 @@ } } }, + "ws": { + "version": "8.5.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.5.0.tgz", + "integrity": "sha512-BWX0SWVgLPzYwF8lTzEy1egjhS4S4OEAHfsO8o65WOVsrnSRGaSiUaa9e0ggGlkMTtBlmOpEXiie9RUcBO86qg==", + "requires": {} + }, "xmlcreate": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/xmlcreate/-/xmlcreate-2.0.4.tgz", diff --git a/package.json b/package.json index d78b901af..4702ff109 100644 --- a/package.json +++ b/package.json @@ -6,7 +6,9 @@ "main": "strudel.mjs", "scripts": { "test": "npm run test --workspaces --if-present", - "bootstrap": "lerna bootstrap" + "bootstrap": "lerna bootstrap", + "repl": "cd repl && npm run start", + "osc": "cd packages/osc && npm run server" }, "workspaces": [ "packages/*" From 324dcd7ef8a9ce4e27cd6e60a3b20ea02803fae1 Mon Sep 17 00:00:00 2001 From: alex Date: Tue, 12 Apr 2022 21:48:11 +0100 Subject: [PATCH 52/78] use local osc.js --- packages/osc/osc.mjs | 2 +- packages/osc/server.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/osc/osc.mjs b/packages/osc/osc.mjs index 932e803d2..2965fa305 100644 --- a/packages/osc/osc.mjs +++ b/packages/osc/osc.mjs @@ -1,4 +1,4 @@ -import OSC from './node_modules/osc-js/lib/osc.js'; +import OSC from './osc-js/osc.js'; import { Pattern } from '@strudel.cycles/core/strudel.mjs'; const comm = new OSC(); diff --git a/packages/osc/server.js b/packages/osc/server.js index f765b2844..febe2d90c 100644 --- a/packages/osc/server.js +++ b/packages/osc/server.js @@ -1,4 +1,4 @@ -const OSC = require('osc-js'); +const OSC = require('./osc-js/osc.js'); const config = { receiver: 'ws', // @param {string} Where messages sent via 'send' method will be delivered to, 'ws' for Websocket clients, 'udp' for udp client From 57c1c4e016a495bb456aaf1601a42017787a3a7f Mon Sep 17 00:00:00 2001 From: alex Date: Tue, 12 Apr 2022 21:48:29 +0100 Subject: [PATCH 53/78] more info --- packages/osc/osc-js/README.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 packages/osc/osc-js/README.md diff --git a/packages/osc/osc-js/README.md b/packages/osc/osc-js/README.md new file mode 100644 index 000000000..323d870c7 --- /dev/null +++ b/packages/osc/osc-js/README.md @@ -0,0 +1,5 @@ +Adapted from https://github.com/adzialocha/osc-js/ , with small fix. + +We'll return to using upstream version when this bug is resolved: + https://github.com/adzialocha/osc-js/issues/50 + From 4111a12cbfafa709055a624a4fb4fcc0aa7fb15b Mon Sep 17 00:00:00 2001 From: alex Date: Tue, 12 Apr 2022 21:48:48 +0100 Subject: [PATCH 54/78] hard temporary fork of osc-js --- packages/osc/osc-js/LICENSE | 22 + packages/osc/osc-js/osc.js | 1747 +++++++++++++++++++++++++++++++++++ 2 files changed, 1769 insertions(+) create mode 100644 packages/osc/osc-js/LICENSE create mode 100644 packages/osc/osc-js/osc.js diff --git a/packages/osc/osc-js/LICENSE b/packages/osc/osc-js/LICENSE new file mode 100644 index 000000000..5a99e00b3 --- /dev/null +++ b/packages/osc/osc-js/LICENSE @@ -0,0 +1,22 @@ +(The MIT License) + +Copyright (c) 2016 adzialocha (Andreas Dzialocha) + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +'Software'), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/packages/osc/osc-js/osc.js b/packages/osc/osc-js/osc.js new file mode 100644 index 000000000..976f250ca --- /dev/null +++ b/packages/osc/osc-js/osc.js @@ -0,0 +1,1747 @@ +(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : + typeof define === 'function' && define.amd ? define(factory) : + (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.OSC = factory()); +})(this, (function () { 'use strict'; + + function ownKeys(object, enumerableOnly) { + var keys = Object.keys(object); + + if (Object.getOwnPropertySymbols) { + var symbols = Object.getOwnPropertySymbols(object); + enumerableOnly && (symbols = symbols.filter(function (sym) { + return Object.getOwnPropertyDescriptor(object, sym).enumerable; + })), keys.push.apply(keys, symbols); + } + + return keys; + } + + function _objectSpread2(target) { + for (var i = 1; i < arguments.length; i++) { + var source = null != arguments[i] ? arguments[i] : {}; + i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { + _defineProperty(target, key, source[key]); + }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { + Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); + }); + } + + return target; + } + + function _classCallCheck(instance, Constructor) { + if (!(instance instanceof Constructor)) { + throw new TypeError("Cannot call a class as a function"); + } + } + + function _defineProperties(target, props) { + for (var i = 0; i < props.length; i++) { + var descriptor = props[i]; + descriptor.enumerable = descriptor.enumerable || false; + descriptor.configurable = true; + if ("value" in descriptor) descriptor.writable = true; + Object.defineProperty(target, descriptor.key, descriptor); + } + } + + function _createClass(Constructor, protoProps, staticProps) { + if (protoProps) _defineProperties(Constructor.prototype, protoProps); + if (staticProps) _defineProperties(Constructor, staticProps); + Object.defineProperty(Constructor, "prototype", { + writable: false + }); + return Constructor; + } + + function _defineProperty(obj, key, value) { + if (key in obj) { + Object.defineProperty(obj, key, { + value: value, + enumerable: true, + configurable: true, + writable: true + }); + } else { + obj[key] = value; + } + + return obj; + } + + function _inherits(subClass, superClass) { + if (typeof superClass !== "function" && superClass !== null) { + throw new TypeError("Super expression must either be null or a function"); + } + + subClass.prototype = Object.create(superClass && superClass.prototype, { + constructor: { + value: subClass, + writable: true, + configurable: true + } + }); + Object.defineProperty(subClass, "prototype", { + writable: false + }); + if (superClass) _setPrototypeOf(subClass, superClass); + } + + function _getPrototypeOf(o) { + _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { + return o.__proto__ || Object.getPrototypeOf(o); + }; + return _getPrototypeOf(o); + } + + function _setPrototypeOf(o, p) { + _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { + o.__proto__ = p; + return o; + }; + + return _setPrototypeOf(o, p); + } + + function _isNativeReflectConstruct() { + if (typeof Reflect === "undefined" || !Reflect.construct) return false; + if (Reflect.construct.sham) return false; + if (typeof Proxy === "function") return true; + + try { + Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); + return true; + } catch (e) { + return false; + } + } + + function _assertThisInitialized(self) { + if (self === void 0) { + throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); + } + + return self; + } + + function _possibleConstructorReturn(self, call) { + if (call && (typeof call === "object" || typeof call === "function")) { + return call; + } else if (call !== void 0) { + throw new TypeError("Derived constructors may only return object or undefined"); + } + + return _assertThisInitialized(self); + } + + function _createSuper(Derived) { + var hasNativeReflectConstruct = _isNativeReflectConstruct(); + + return function _createSuperInternal() { + var Super = _getPrototypeOf(Derived), + result; + + if (hasNativeReflectConstruct) { + var NewTarget = _getPrototypeOf(this).constructor; + + result = Reflect.construct(Super, arguments, NewTarget); + } else { + result = Super.apply(this, arguments); + } + + return _possibleConstructorReturn(this, result); + }; + } + + function _superPropBase(object, property) { + while (!Object.prototype.hasOwnProperty.call(object, property)) { + object = _getPrototypeOf(object); + if (object === null) break; + } + + return object; + } + + function _get() { + if (typeof Reflect !== "undefined" && Reflect.get) { + _get = Reflect.get; + } else { + _get = function _get(target, property, receiver) { + var base = _superPropBase(target, property); + + if (!base) return; + var desc = Object.getOwnPropertyDescriptor(base, property); + + if (desc.get) { + return desc.get.call(arguments.length < 3 ? target : receiver); + } + + return desc.value; + }; + } + + return _get.apply(this, arguments); + } + + function isInt(n) { + return Number(n) === n && n % 1 === 0; + } + function isFloat(n) { + return Number(n) === n && n % 1 !== 0; + } + function isNumber(n) { + return Number(n) === n; + } + function isString(n) { + return typeof n === 'string'; + } + function isBoolean(n) { + return typeof n === 'boolean'; + } + function isInfinity(n) { + return n === Infinity; + } + function isArray(n) { + return Object.prototype.toString.call(n) === '[object Array]'; + } + function isObject(n) { + return Object.prototype.toString.call(n) === '[object Object]'; + } + function isFunction(n) { + return typeof n === 'function'; + } + function isBlob(n) { + return n instanceof Uint8Array; + } + function isDate(n) { + return n instanceof Date; + } + function isUndefined(n) { + return typeof n === 'undefined'; + } + function isNull(n) { + return n === null; + } + function pad(n) { + return n + 3 & ~0x03; + } + function hasProperty(name) { + return Object.prototype.hasOwnProperty.call(typeof global !== 'undefined' ? global : window, + name); + } + function dataView(obj) { + if (obj.buffer) { + return new DataView(obj.buffer); + } else if (obj instanceof ArrayBuffer) { + return new DataView(obj); + } + return new DataView(new Uint8Array(obj)); + } + + function typeTag(item) { + if (isInt(item)) { + return 'i'; + } else if (isFloat(item)) { + return 'f'; + } else if (isString(item)) { + return 's'; + } else if (isBlob(item)) { + return 'b'; + } else if (isBoolean(item)) { + return item ? 'T' : 'F'; + } else if (isNull(item)) { + return 'N'; + } else if (isInfinity(item)) { + return 'I'; + } + throw new Error('OSC typeTag() found unknown value type'); + } + function prepareAddress(obj) { + var address = ''; + if (isArray(obj)) { + return "/".concat(obj.join('/')); + } else if (isString(obj)) { + address = obj; + if (address.length > 1 && address[address.length - 1] === '/') { + address = address.slice(0, address.length - 1); + } + if (address.length > 1 && address[0] !== '/') { + address = "/".concat(address); + } + return address; + } + throw new Error('OSC prepareAddress() needs addresses of type array or string'); + } + function prepareRegExPattern(str) { + var pattern; + if (!isString(str)) { + throw new Error('OSC prepareRegExPattern() needs strings'); + } + pattern = str.replace(/\./g, '\\.'); + pattern = pattern.replace(/\(/g, '\\('); + pattern = pattern.replace(/\)/g, '\\)'); + pattern = pattern.replace(/\{/g, '('); + pattern = pattern.replace(/\}/g, ')'); + pattern = pattern.replace(/,/g, '|'); + pattern = pattern.replace(/\[!/g, '[^'); + pattern = pattern.replace(/\?/g, '.'); + pattern = pattern.replace(/\*/g, '.*'); + return pattern; + } + var EncodeHelper = function () { + function EncodeHelper() { + _classCallCheck(this, EncodeHelper); + this.data = []; + this.byteLength = 0; + } + _createClass(EncodeHelper, [{ + key: "add", + value: function add(item) { + if (isBoolean(item) || isInfinity(item) || isNull(item)) { + return this; + } + var buffer = item.pack(); + this.byteLength += buffer.byteLength; + this.data.push(buffer); + return this; + } + }, { + key: "merge", + value: function merge() { + var result = new Uint8Array(this.byteLength); + var offset = 0; + this.data.forEach(function (data) { + result.set(data, offset); + offset += data.byteLength; + }); + return result; + } + }]); + return EncodeHelper; + }(); + + var Atomic = function () { + function Atomic(value) { + _classCallCheck(this, Atomic); + this.value = value; + this.offset = 0; + } + _createClass(Atomic, [{ + key: "pack", + value: function pack(method, byteLength) { + if (!(method && byteLength)) { + throw new Error('OSC Atomic cant\'t be packed without given method or byteLength'); + } + var data = new Uint8Array(byteLength); + var dataView = new DataView(data.buffer); + if (isUndefined(this.value)) { + throw new Error('OSC Atomic cant\'t be encoded with empty value'); + } + dataView[method](this.offset, this.value, false); + return data; + } + }, { + key: "unpack", + value: function unpack(dataView, method, byteLength) { + var initialOffset = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0; + if (!(dataView && method && byteLength)) { + throw new Error('OSC Atomic cant\'t be unpacked without given dataView, method or byteLength'); + } + if (!(dataView instanceof DataView)) { + throw new Error('OSC Atomic expects an instance of type DataView'); + } + this.value = dataView[method](initialOffset, false); + this.offset = initialOffset + byteLength; + return this.offset; + } + }]); + return Atomic; + }(); + + var AtomicInt32 = function (_Atomic) { + _inherits(AtomicInt32, _Atomic); + var _super = _createSuper(AtomicInt32); + function AtomicInt32(value) { + _classCallCheck(this, AtomicInt32); + if (value && !isInt(value)) { + throw new Error('OSC AtomicInt32 constructor expects value of type number'); + } + return _super.call(this, value); + } + _createClass(AtomicInt32, [{ + key: "pack", + value: function pack() { + return _get(_getPrototypeOf(AtomicInt32.prototype), "pack", this).call(this, 'setInt32', 4); + } + }, { + key: "unpack", + value: function unpack(dataView) { + var initialOffset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0; + return _get(_getPrototypeOf(AtomicInt32.prototype), "unpack", this).call(this, dataView, 'getInt32', 4, initialOffset); + } + }]); + return AtomicInt32; + }(Atomic); + + var STR_SLICE_SIZE = 65537; + var STR_ENCODING = 'utf-8'; + function charCodesToString(charCodes) { + if (hasProperty('Buffer')) { + return Buffer.from(charCodes).toString(STR_ENCODING); + } else if (hasProperty('TextDecoder')) { + return new TextDecoder(STR_ENCODING) + .decode(new Int8Array(charCodes)); + } + var str = ''; + for (var i = 0; i < charCodes.length; i += STR_SLICE_SIZE) { + str += String.fromCharCode.apply(null, charCodes.slice(i, i + STR_SLICE_SIZE)); + } + return str; + } + var AtomicString = function (_Atomic) { + _inherits(AtomicString, _Atomic); + var _super = _createSuper(AtomicString); + function AtomicString(value) { + _classCallCheck(this, AtomicString); + if (value && !isString(value)) { + throw new Error('OSC AtomicString constructor expects value of type string'); + } + return _super.call(this, value); + } + _createClass(AtomicString, [{ + key: "pack", + value: function pack() { + if (isUndefined(this.value)) { + throw new Error('OSC AtomicString can not be encoded with empty value'); + } + var terminated = "".concat(this.value, "\0"); + var byteLength = pad(terminated.length); + var buffer = new Uint8Array(byteLength); + for (var i = 0; i < terminated.length; i += 1) { + buffer[i] = terminated.charCodeAt(i); + } + return buffer; + } + }, { + key: "unpack", + value: function unpack(dataView) { + var initialOffset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0; + if (!(dataView instanceof DataView)) { + throw new Error('OSC AtomicString expects an instance of type DataView'); + } + var offset = initialOffset; + var charcode; + var charCodes = []; + for (; offset < dataView.byteLength; offset += 1) { + charcode = dataView.getUint8(offset); + if (charcode !== 0) { + charCodes.push(charcode); + } else { + offset += 1; + break; + } + } + if (offset === dataView.length) { + throw new Error('OSC AtomicString found a malformed OSC string'); + } + this.offset = pad(offset); + this.value = charCodesToString(charCodes); + return this.offset; + } + }]); + return AtomicString; + }(Atomic); + + var SECONDS_70_YEARS = 2208988800; + var TWO_POWER_32 = 4294967296; + var Timetag = function () { + function Timetag() { + var seconds = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0; + var fractions = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0; + _classCallCheck(this, Timetag); + if (!(isInt(seconds) && isInt(fractions))) { + throw new Error('OSC Timetag constructor expects values of type integer number'); + } + this.seconds = seconds; + this.fractions = fractions; + } + _createClass(Timetag, [{ + key: "timestamp", + value: function timestamp(milliseconds) { + var seconds; + if (typeof milliseconds === 'number') { + seconds = milliseconds / 1000; + var rounded = Math.floor(seconds); + this.seconds = rounded + SECONDS_70_YEARS; + this.fractions = Math.round(TWO_POWER_32 * (seconds - rounded)); + return milliseconds; + } + seconds = this.seconds - SECONDS_70_YEARS; + return (seconds + Math.round(this.fractions / TWO_POWER_32)) * 1000; + } + }]); + return Timetag; + }(); + var AtomicTimetag = function (_Atomic) { + _inherits(AtomicTimetag, _Atomic); + var _super = _createSuper(AtomicTimetag); + function AtomicTimetag() { + var value = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : Date.now(); + _classCallCheck(this, AtomicTimetag); + var timetag = new Timetag(); + if (value instanceof Timetag) { + timetag = value; + } else if (isInt(value)) { + timetag.timestamp(value); + } else if (isDate(value)) { + timetag.timestamp(value.getTime()); + } + return _super.call(this, timetag); + } + _createClass(AtomicTimetag, [{ + key: "pack", + value: function pack() { + if (isUndefined(this.value)) { + throw new Error('OSC AtomicTimetag can not be encoded with empty value'); + } + var _this$value = this.value, + seconds = _this$value.seconds, + fractions = _this$value.fractions; + var data = new Uint8Array(8); + var dataView = new DataView(data.buffer); + dataView.setInt32(0, seconds, false); + dataView.setInt32(4, fractions, false); + return data; + } + }, { + key: "unpack", + value: function unpack(dataView) { + var initialOffset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0; + if (!(dataView instanceof DataView)) { + throw new Error('OSC AtomicTimetag expects an instance of type DataView'); + } + var seconds = dataView.getUint32(initialOffset, false); + var fractions = dataView.getUint32(initialOffset + 4, false); + this.value = new Timetag(seconds, fractions); + this.offset = initialOffset + 8; + return this.offset; + } + }]); + return AtomicTimetag; + }(Atomic); + + var AtomicBlob = function (_Atomic) { + _inherits(AtomicBlob, _Atomic); + var _super = _createSuper(AtomicBlob); + function AtomicBlob(value) { + _classCallCheck(this, AtomicBlob); + if (value && !isBlob(value)) { + throw new Error('OSC AtomicBlob constructor expects value of type Uint8Array'); + } + return _super.call(this, value); + } + _createClass(AtomicBlob, [{ + key: "pack", + value: function pack() { + if (isUndefined(this.value)) { + throw new Error('OSC AtomicBlob can not be encoded with empty value'); + } + var byteLength = pad(this.value.byteLength); + var data = new Uint8Array(byteLength + 4); + var dataView = new DataView(data.buffer); + dataView.setInt32(0, this.value.byteLength, false); + data.set(this.value, 4); + return data; + } + }, { + key: "unpack", + value: function unpack(dataView) { + var initialOffset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0; + if (!(dataView instanceof DataView)) { + throw new Error('OSC AtomicBlob expects an instance of type DataView'); + } + var byteLength = dataView.getInt32(initialOffset, false); + this.value = new Uint8Array(dataView.buffer, initialOffset + 4, byteLength); + this.offset = pad(initialOffset + 4 + byteLength); + return this.offset; + } + }]); + return AtomicBlob; + }(Atomic); + + var AtomicFloat32 = function (_Atomic) { + _inherits(AtomicFloat32, _Atomic); + var _super = _createSuper(AtomicFloat32); + function AtomicFloat32(value) { + _classCallCheck(this, AtomicFloat32); + if (value && !isNumber(value)) { + throw new Error('OSC AtomicFloat32 constructor expects value of type float'); + } + return _super.call(this, value); + } + _createClass(AtomicFloat32, [{ + key: "pack", + value: function pack() { + return _get(_getPrototypeOf(AtomicFloat32.prototype), "pack", this).call(this, 'setFloat32', 4); + } + }, { + key: "unpack", + value: function unpack(dataView) { + var initialOffset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0; + return _get(_getPrototypeOf(AtomicFloat32.prototype), "unpack", this).call(this, dataView, 'getFloat32', 4, initialOffset); + } + }]); + return AtomicFloat32; + }(Atomic); + + var AtomicFloat64 = function (_Atomic) { + _inherits(AtomicFloat64, _Atomic); + var _super = _createSuper(AtomicFloat64); + function AtomicFloat64(value) { + _classCallCheck(this, AtomicFloat64); + if (value && !isNumber(value)) { + throw new Error('OSC AtomicFloat64 constructor expects value of type float'); + } + return _super.call(this, value); + } + _createClass(AtomicFloat64, [{ + key: "pack", + value: function pack() { + return _get(_getPrototypeOf(AtomicFloat64.prototype), "pack", this).call(this, 'setFloat64', 8); + } + }, { + key: "unpack", + value: function unpack(dataView) { + var initialOffset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0; + return _get(_getPrototypeOf(AtomicFloat64.prototype), "unpack", this).call(this, dataView, 'getFloat64', 8, initialOffset); + } + }]); + return AtomicFloat64; + }(Atomic); + + var MAX_INT64 = BigInt('9223372036854775807'); + var MIN_INT64 = BigInt('-9223372036854775808'); + var AtomicInt64 = function (_Atomic) { + _inherits(AtomicInt64, _Atomic); + var _super = _createSuper(AtomicInt64); + function AtomicInt64(value) { + _classCallCheck(this, AtomicInt64); + if (value && typeof value !== 'bigint') { + throw new Error('OSC AtomicInt64 constructor expects value of type BigInt'); + } + if (value && (value < MIN_INT64 || value > MAX_INT64)) { + throw new Error('OSC AtomicInt64 value is out of bounds'); + } + var tmp; + if (value) { + tmp = BigInt.asIntN(64, value); + } + return _super.call(this, tmp); + } + _createClass(AtomicInt64, [{ + key: "pack", + value: function pack() { + return _get(_getPrototypeOf(AtomicInt64.prototype), "pack", this).call(this, 'setBigInt64', 8); + } + }, { + key: "unpack", + value: function unpack(dataView) { + var initialOffset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0; + return _get(_getPrototypeOf(AtomicInt64.prototype), "unpack", this).call(this, dataView, 'getBigInt64', 8, initialOffset); + } + }]); + return AtomicInt64; + }(Atomic); + + var MAX_UINT64 = BigInt('18446744073709551615'); + var AtomicUInt64 = function (_Atomic) { + _inherits(AtomicUInt64, _Atomic); + var _super = _createSuper(AtomicUInt64); + function AtomicUInt64(value) { + _classCallCheck(this, AtomicUInt64); + if (value && typeof value !== 'bigint') { + throw new Error('OSC AtomicUInt64 constructor expects value of type BigInt'); + } + if (value && (value < 0 || value > MAX_UINT64)) { + throw new Error('OSC AtomicUInt64 value is out of bounds'); + } + var tmp; + if (value) { + tmp = BigInt.asUintN(64, value); + } + return _super.call(this, tmp); + } + _createClass(AtomicUInt64, [{ + key: "pack", + value: function pack() { + return _get(_getPrototypeOf(AtomicUInt64.prototype), "pack", this).call(this, 'setBigUint64', 8); + } + }, { + key: "unpack", + value: function unpack(dataView) { + var initialOffset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0; + return _get(_getPrototypeOf(AtomicUInt64.prototype), "unpack", this).call(this, dataView, 'getBigUint64', 8, initialOffset); + } + }]); + return AtomicUInt64; + }(Atomic); + + var VALUE_TRUE = true; + var VALUE_FALSE = false; + var VALUE_NONE = null; + var VALUE_INFINITY = Infinity; + + var TypedMessage = function () { + function TypedMessage(address, args) { + var _this = this; + _classCallCheck(this, TypedMessage); + this.offset = 0; + this.address = ''; + this.types = ''; + this.args = []; + if (!isUndefined(address)) { + if (!(isString(address) || isArray(address))) { + throw new Error('OSC Message constructor first argument (address) must be a string or array'); + } + this.address = prepareAddress(address); + } + if (!isUndefined(args)) { + if (!isArray(args)) { + throw new Error('OSC Message constructor second argument (args) must be an array'); + } + args.forEach(function (item) { + return _this.add(item.type, item.value); + }); + } + } + _createClass(TypedMessage, [{ + key: "add", + value: function add(type, item) { + if (isUndefined(type)) { + throw new Error('OSC Message needs a valid OSC Atomic Data Type'); + } + if (type === 'N') { + this.args.push(VALUE_NONE); + } else if (type === 'T') { + this.args.push(VALUE_TRUE); + } else if (type === 'F') { + this.args.push(VALUE_FALSE); + } else if (type === 'I') { + this.args.push(VALUE_INFINITY); + } else { + this.args.push(item); + } + this.types += type; + } + }, { + key: "pack", + value: function pack() { + var _this2 = this; + if (this.address.length === 0 || this.address[0] !== '/') { + throw new Error('OSC Message has an invalid address'); + } + var encoder = new EncodeHelper(); + encoder.add(new AtomicString(this.address)); + encoder.add(new AtomicString(",".concat(this.types))); + if (this.args.length > 0) { + var argument; + if (this.args.length > this.types.length) { + throw new Error('OSC Message argument and type tag mismatch'); + } + this.args.forEach(function (value, index) { + var type = _this2.types[index]; + if (type === 'i') { + argument = new AtomicInt32(value); + } else if (type === 'h') { + argument = new AtomicInt64(value); + } else if (type === 't') { + argument = new AtomicUInt64(value); + } else if (type === 'f') { + argument = new AtomicFloat32(value); + } else if (type === 'd') { + argument = new AtomicFloat64(value); + } else if (type === 's') { + argument = new AtomicString(value); + } else if (type === 'b') { + argument = new AtomicBlob(value); + } else if (type === 'T') { + argument = VALUE_TRUE; + } else if (type === 'F') { + argument = VALUE_FALSE; + } else if (type === 'N') { + argument = VALUE_NONE; + } else if (type === 'I') { + argument = VALUE_INFINITY; + } else { + throw new Error('OSC Message found unknown argument type'); + } + encoder.add(argument); + }); + } + return encoder.merge(); + } + }, { + key: "unpack", + value: function unpack(dataView) { + var initialOffset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0; + if (!(dataView instanceof DataView)) { + throw new Error('OSC Message expects an instance of type DataView.'); + } + var address = new AtomicString(); + address.unpack(dataView, initialOffset); + var types = new AtomicString(); + types.unpack(dataView, address.offset); + if (address.value.length === 0 || address.value[0] !== '/') { + throw new Error('OSC Message found malformed or missing address string'); + } + if (types.value.length === 0 && types.value[0] !== ',') { + throw new Error('OSC Message found malformed or missing type string'); + } + var offset = types.offset; + var next; + var type; + var args = []; + for (var i = 1; i < types.value.length; i += 1) { + type = types.value[i]; + next = null; + if (type === 'i') { + next = new AtomicInt32(); + } else if (type === 'h') { + next = new AtomicInt64(); + } else if (type === 't') { + next = new AtomicUInt64(); + } else if (type === 'f') { + next = new AtomicFloat32(); + } else if (type === 'd') { + next = new AtomicFloat64(); + } else if (type === 's') { + next = new AtomicString(); + } else if (type === 'b') { + next = new AtomicBlob(); + } else if (type === 'T') { + args.push(VALUE_TRUE); + } else if (type === 'F') { + args.push(VALUE_FALSE); + } else if (type === 'N') { + args.push(VALUE_NONE); + } else if (type === 'I') { + args.push(VALUE_INFINITY); + } else { + throw new Error('OSC Message found unsupported argument type'); + } + if (next) { + offset = next.unpack(dataView, offset); + args.push(next.value); + } + } + this.offset = offset; + this.address = address.value; + this.types = types.value; + this.args = args; + return this.offset; + } + }]); + return TypedMessage; + }(); + var Message = function (_TypedMessage) { + _inherits(Message, _TypedMessage); + var _super = _createSuper(Message); + function Message() { + var _this3; + _classCallCheck(this, Message); + var address; + for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + if (args.length > 0) { + address = args.shift(); + } + var oscArgs; + if (args.length > 0) { + if (args[0] instanceof Array) { + oscArgs = args.shift(); + } + } + _this3 = _super.call(this, address, oscArgs); + if (args.length > 0) { + _this3.types = args.map(function (item) { + return typeTag(item); + }).join(''); + _this3.args = args; + } + return _this3; + } + _createClass(Message, [{ + key: "add", + value: function add(item) { + _get(_getPrototypeOf(Message.prototype), "add", this).call(this, typeTag(item), item); + } + }]); + return Message; + }(TypedMessage); + + var BUNDLE_TAG = '#bundle'; + var Bundle = function () { + function Bundle() { + var _this = this; + _classCallCheck(this, Bundle); + this.offset = 0; + this.timetag = new AtomicTimetag(); + this.bundleElements = []; + for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + if (args.length > 0) { + if (args[0] instanceof Date || isInt(args[0])) { + this.timetag = new AtomicTimetag(args[0]); + } else if (isArray(args[0])) { + args[0].forEach(function (item) { + _this.add(item); + }); + if (args.length > 1 && (args[1] instanceof Date || isInt(args[1]))) { + this.timetag = new AtomicTimetag(args[1]); + } + } else { + args.forEach(function (item) { + _this.add(item); + }); + } + } + } + _createClass(Bundle, [{ + key: "timestamp", + value: function timestamp(ms) { + if (!isInt(ms)) { + throw new Error('OSC Bundle needs an integer for setting the timestamp'); + } + this.timetag = new AtomicTimetag(ms); + } + }, { + key: "add", + value: function add(item) { + if (!(item instanceof Message || item instanceof Bundle)) { + throw new Error('OSC Bundle contains only Messages and Bundles'); + } + this.bundleElements.push(item); + } + }, { + key: "pack", + value: function pack() { + var encoder = new EncodeHelper(); + encoder.add(new AtomicString(BUNDLE_TAG)); + if (!this.timetag) { + this.timetag = new AtomicTimetag(); + } + encoder.add(this.timetag); + this.bundleElements.forEach(function (item) { + encoder.add(new AtomicInt32(item.pack().byteLength)); + encoder.add(item); + }); + return encoder.merge(); + } + }, { + key: "unpack", + value: function unpack(dataView) { + var initialOffset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0; + if (!(dataView instanceof DataView)) { + throw new Error('OSC Bundle expects an instance of type DataView'); + } + var parentHead = new AtomicString(); + parentHead.unpack(dataView, initialOffset); + if (parentHead.value !== BUNDLE_TAG) { + throw new Error('OSC Bundle does not contain a valid #bundle head'); + } + var timetag = new AtomicTimetag(); + var offset = timetag.unpack(dataView, parentHead.offset); + this.bundleElements = []; + while (offset < dataView.byteLength) { + var head = new AtomicString(); + var size = new AtomicInt32(); + offset = size.unpack(dataView, offset); + var item = void 0; + head.unpack(dataView, offset); + if (head.value === BUNDLE_TAG) { + item = new Bundle(); + } else { + item = new Message(); + } + offset = item.unpack(dataView, offset); + this.bundleElements.push(item); + } + this.offset = offset; + this.timetag = timetag; + return this.offset; + } + }]); + return Bundle; + }(); + + var Packet = function () { + function Packet(value) { + _classCallCheck(this, Packet); + if (value && !(value instanceof Message || value instanceof Bundle)) { + throw new Error('OSC Packet value has to be Message or Bundle'); + } + this.value = value; + this.offset = 0; + } + _createClass(Packet, [{ + key: "pack", + value: function pack() { + if (!this.value) { + throw new Error('OSC Packet can not be encoded with empty body'); + } + return this.value.pack(); + } + }, { + key: "unpack", + value: function unpack(dataView) { + var initialOffset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0; + if (!(dataView instanceof DataView)) { + throw new Error('OSC Packet expects an instance of type DataView'); + } + if (dataView.byteLength % 4 !== 0) { + throw new Error('OSC Packet byteLength has to be a multiple of four'); + } + var head = new AtomicString(); + head.unpack(dataView, initialOffset); + var item; + if (head.value === BUNDLE_TAG) { + item = new Bundle(); + } else { + item = new Message(); + } + item.unpack(dataView, initialOffset); + this.offset = item.offset; + this.value = item; + return this.offset; + } + }]); + return Packet; + }(); + + var defaultOptions$5 = { + discardLateMessages: false + }; + var EventHandler = function () { + function EventHandler(options) { + _classCallCheck(this, EventHandler); + this.options = _objectSpread2(_objectSpread2({}, defaultOptions$5), options); + this.addressHandlers = []; + this.eventHandlers = { + open: [], + error: [], + close: [] + }; + this.uuid = 0; + } + _createClass(EventHandler, [{ + key: "dispatch", + value: function dispatch(packet, rinfo) { + var _this = this; + if (!(packet instanceof Packet)) { + throw new Error('OSC EventHander dispatch() accepts only arguments of type Packet'); + } + if (!packet.value) { + throw new Error('OSC EventHander dispatch() can\'t read empty Packets'); + } + if (packet.value instanceof Bundle) { + var bundle = packet.value; + return bundle.bundleElements.forEach(function (bundleItem) { + if (bundleItem instanceof Bundle) { + if (bundle.timetag.value.timestamp() < bundleItem.timetag.value.timestamp()) { + throw new Error('OSC Bundle timestamp is older than the timestamp of enclosed Bundles'); + } + return _this.dispatch(bundleItem); + } else if (bundleItem instanceof Message) { + var message = bundleItem; + return _this.notify(message.address, message, bundle.timetag.value.timestamp(), rinfo); + } + throw new Error('OSC EventHander dispatch() can\'t dispatch unknown Packet value'); + }); + } else if (packet.value instanceof Message) { + var message = packet.value; + return this.notify(message.address, message, 0, rinfo); + } + throw new Error('OSC EventHander dispatch() can\'t dispatch unknown Packet value'); + } + }, { + key: "call", + value: function call(name, data, rinfo) { + var success = false; + if (isString(name) && name in this.eventHandlers) { + this.eventHandlers[name].forEach(function (handler) { + handler.callback(data, rinfo); + success = true; + }); + return success; + } + var handlerKeys = Object.keys(this.addressHandlers); + var handlers = this.addressHandlers; + handlerKeys.forEach(function (key) { + var foundMatch = false; + var regex = new RegExp(prepareRegExPattern(prepareAddress(name)), 'g'); + var test = regex.test(key); + if (test && key.length === regex.lastIndex) { + foundMatch = true; + } + if (!foundMatch) { + var reverseRegex = new RegExp(prepareRegExPattern(prepareAddress(key)), 'g'); + var reverseTest = reverseRegex.test(name); + if (reverseTest && name.length === reverseRegex.lastIndex) { + foundMatch = true; + } + } + if (foundMatch) { + handlers[key].forEach(function (handler) { + handler.callback(data, rinfo); + success = true; + }); + } + }); + return success; + } + }, { + key: "notify", + value: function notify() { + for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + if (args.length === 0) { + throw new Error('OSC EventHandler can not be called without any argument'); + } + if (args[0] instanceof Packet) { + return this.dispatch(args[0], args[1]); + } else if (args[0] instanceof Bundle || args[0] instanceof Message) { + return this.dispatch(new Packet(args[0]), args[1]); + } else if (!isString(args[0])) { + var packet = new Packet(); + packet.unpack(dataView(args[0])); + return this.dispatch(packet, args[1]); + } + var name = args[0]; + var data = null; + if (args.length > 1) { + data = args[1]; + } + var timestamp = null; + if (args.length > 2) { + if (isInt(args[2])) { + timestamp = args[2]; + } else if (args[2] instanceof Date) { + timestamp = args[2].getTime(); + } else { + throw new Error('OSC EventHandler timestamp has to be a number or Date'); + } + } + var rinfo = null; + if (args.length >= 3) { + rinfo = args[3]; + } + if (timestamp) { + var now = Date.now(); + if (now > timestamp) { + if (!this.options.discardLateMessages) { + return this.call(name, data, rinfo); + } + } + var that = this; + setTimeout(function () { + that.call(name, data, rinfo); + }, timestamp - now); + return true; + } + return this.call(name, data, rinfo); + } + }, { + key: "on", + value: function on(name, callback) { + if (!(isString(name) || isArray(name))) { + throw new Error('OSC EventHandler accepts only strings or arrays for address patterns'); + } + if (!isFunction(callback)) { + throw new Error('OSC EventHandler callback has to be a function'); + } + this.uuid += 1; + var handler = { + id: this.uuid, + callback: callback + }; + if (isString(name) && name in this.eventHandlers) { + this.eventHandlers[name].push(handler); + return this.uuid; + } + var address = prepareAddress(name); + if (!(address in this.addressHandlers)) { + this.addressHandlers[address] = []; + } + this.addressHandlers[address].push(handler); + return this.uuid; + } + }, { + key: "off", + value: function off(name, subscriptionId) { + if (!(isString(name) || isArray(name))) { + throw new Error('OSC EventHandler accepts only strings or arrays for address patterns'); + } + if (!isInt(subscriptionId)) { + throw new Error('OSC EventHandler subscription id has to be a number'); + } + var key; + var haystack; + if (isString(name) && name in this.eventHandlers) { + key = name; + haystack = this.eventHandlers; + } else { + key = prepareAddress(name); + haystack = this.addressHandlers; + } + if (key in haystack) { + return haystack[key].some(function (item, index) { + if (item.id === subscriptionId) { + haystack[key].splice(index, 1); + return true; + } + return false; + }); + } + return false; + } + }]); + return EventHandler; + }(); + + var dgram$1; + try { + dgram$1 = require('dgram'); + } catch(error) { + if (typeof window === 'undefined') { + throw(error); + } + } + var STATUS$4 = { + IS_NOT_INITIALIZED: -1, + IS_CONNECTING: 0, + IS_OPEN: 1, + IS_CLOSING: 2, + IS_CLOSED: 3 + }; + var defaultOpenOptions = { + host: 'localhost', + port: 41234, + exclusive: false + }; + var defaultSendOptions = { + host: 'localhost', + port: 41235 + }; + var defaultOptions$4 = { + type: 'udp4', + open: defaultOpenOptions, + send: defaultSendOptions + }; + function mergeOptions$1(base, custom) { + return _objectSpread2(_objectSpread2(_objectSpread2(_objectSpread2({}, defaultOptions$4), base), custom), {}, { + open: _objectSpread2(_objectSpread2(_objectSpread2({}, defaultOptions$4.open), base.open), custom.open), + send: _objectSpread2(_objectSpread2(_objectSpread2({}, defaultOptions$4.send), base.send), custom.send) + }); + } + var DatagramPlugin = function () { + function DatagramPlugin() { + var _this = this; + var customOptions = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; + _classCallCheck(this, DatagramPlugin); + if (!dgram$1) { + throw new Error('DatagramPlugin can not be used in browser context'); + } + this.options = mergeOptions$1({}, customOptions); + this.socket = dgram$1.createSocket(this.options.type); + this.socketStatus = STATUS$4.IS_NOT_INITIALIZED; + this.socket.on('message', function (message, rinfo) { + _this.notify(message, rinfo); + }); + this.socket.on('error', function (error) { + _this.notify('error', error); + }); + this.notify = function () {}; + } + _createClass(DatagramPlugin, [{ + key: "registerNotify", + value: function registerNotify(fn) { + this.notify = fn; + } + }, { + key: "status", + value: function status() { + return this.socketStatus; + } + }, { + key: "open", + value: function open() { + var _this2 = this; + var customOptions = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; + var options = _objectSpread2(_objectSpread2({}, this.options.open), customOptions); + var port = options.port, + exclusive = options.exclusive; + this.socketStatus = STATUS$4.IS_CONNECTING; + this.socket.bind({ + address: options.host, + port: port, + exclusive: exclusive + }, function () { + _this2.socketStatus = STATUS$4.IS_OPEN; + _this2.notify('open'); + }); + } + }, { + key: "close", + value: function close() { + var _this3 = this; + this.socketStatus = STATUS$4.IS_CLOSING; + this.socket.close(function () { + _this3.socketStatus = STATUS$4.IS_CLOSED; + _this3.notify('close'); + }); + } + }, { + key: "send", + value: function send(binary) { + var customOptions = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; + var options = _objectSpread2(_objectSpread2({}, this.options.send), customOptions); + var port = options.port, + host = options.host; + this.socket.send(Buffer.from(binary), 0, binary.byteLength, port, host); + } + }]); + return DatagramPlugin; + }(); + + var dgram; + try { + dgram = require('dgram'); + } catch(error) { + if (typeof window === 'undefined') { + throw(error); + } + } + var WebSocketServer$1 = typeof window === 'undefined' ? require('isomorphic-ws').Server : undefined; + var STATUS$3 = { + IS_NOT_INITIALIZED: -1, + IS_CONNECTING: 0, + IS_OPEN: 1, + IS_CLOSING: 2, + IS_CLOSED: 3 + }; + var defaultOptions$3 = { + udpServer: { + host: 'localhost', + port: 41234, + exclusive: false + }, + udpClient: { + host: 'localhost', + port: 41235 + }, + wsServer: { + host: 'localhost', + port: 8080 + }, + receiver: 'ws' + }; + function mergeOptions(base, custom) { + return _objectSpread2(_objectSpread2(_objectSpread2(_objectSpread2({}, defaultOptions$3), base), custom), {}, { + udpServer: _objectSpread2(_objectSpread2(_objectSpread2({}, defaultOptions$3.udpServer), base.udpServer), custom.udpServer), + udpClient: _objectSpread2(_objectSpread2(_objectSpread2({}, defaultOptions$3.udpClient), base.udpClient), custom.udpClient), + wsServer: _objectSpread2(_objectSpread2(_objectSpread2({}, defaultOptions$3.wsServer), base.wsServer), custom.wsServer) + }); + } + var BridgePlugin = function () { + function BridgePlugin() { + var _this = this; + var customOptions = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; + _classCallCheck(this, BridgePlugin); + if (!dgram || !WebSocketServer$1) { + throw new Error('BridgePlugin can not be used in browser context'); + } + this.options = mergeOptions({}, customOptions); + this.websocket = null; + this.socket = dgram.createSocket('udp4'); + this.socketStatus = STATUS$3.IS_NOT_INITIALIZED; + this.socket.on('message', function (message) { + _this.send(message, { + receiver: 'ws' + }); + _this.notify(message.buffer); + }); + this.socket.on('error', function (error) { + _this.notify('error', error); + }); + this.notify = function () {}; + } + _createClass(BridgePlugin, [{ + key: "registerNotify", + value: function registerNotify(fn) { + this.notify = fn; + } + }, { + key: "status", + value: function status() { + return this.socketStatus; + } + }, { + key: "open", + value: function open() { + var _this2 = this; + var customOptions = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; + var options = mergeOptions(this.options, customOptions); + this.socketStatus = STATUS$3.IS_CONNECTING; + this.socket.bind({ + address: options.udpServer.host, + port: options.udpServer.port, + exclusive: options.udpServer.exclusive + }, function () { + var wsServerOptions = {}; + if (options.wsServer.server) wsServerOptions.server = options.wsServer.server;else wsServerOptions = options.wsServer; + _this2.websocket = new WebSocketServer$1(wsServerOptions); + _this2.websocket.binaryType = 'arraybuffer'; + _this2.websocket.on('listening', function () { + _this2.socketStatus = STATUS$3.IS_OPEN; + _this2.notify('open'); + }); + _this2.websocket.on('error', function (error) { + _this2.notify('error', error); + }); + _this2.websocket.on('connection', function (client) { + client.on('message', function (message, rinfo) { + _this2.send(message, { + receiver: 'udp' + }); + _this2.notify(new Uint8Array(message), rinfo); + }); + }); + }); + } + }, { + key: "close", + value: function close() { + var _this3 = this; + this.socketStatus = STATUS$3.IS_CLOSING; + this.socket.close(function () { + _this3.websocket.close(function () { + _this3.socketStatus = STATUS$3.IS_CLOSED; + _this3.notify('close'); + }); + }); + } + }, { + key: "send", + value: function send(binary) { + var customOptions = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; + var options = mergeOptions(this.options, customOptions); + var receiver = options.receiver; + if (receiver === 'udp') { + var data = binary instanceof Buffer ? binary : Buffer.from(binary); + this.socket.send(data, 0, data.byteLength, options.udpClient.port, options.udpClient.host); + } else if (receiver === 'ws') { + this.websocket.clients.forEach(function (client) { + client.send(binary, { + binary: true + }); + }); + } else { + throw new Error('BridgePlugin can not send message to unknown receiver'); + } + } + }]); + return BridgePlugin; + }(); + + var scope = typeof global === 'undefined' ? window : global; + var WebSocket = typeof __dirname === 'undefined' ? scope.WebSocket : require('isomorphic-ws'); + var STATUS$2 = { + IS_NOT_INITIALIZED: -1, + IS_CONNECTING: 0, + IS_OPEN: 1, + IS_CLOSING: 2, + IS_CLOSED: 3 + }; + var defaultOptions$2 = { + host: 'localhost', + port: 8080, + secure: false, + protocol: [] + }; + var WebsocketClientPlugin = function () { + function WebsocketClientPlugin(customOptions) { + _classCallCheck(this, WebsocketClientPlugin); + if (!WebSocket) { + throw new Error('WebsocketClientPlugin can\'t find a WebSocket class'); + } + this.options = _objectSpread2(_objectSpread2({}, defaultOptions$2), customOptions); + this.socket = null; + this.socketStatus = STATUS$2.IS_NOT_INITIALIZED; + this.notify = function () {}; + } + _createClass(WebsocketClientPlugin, [{ + key: "registerNotify", + value: function registerNotify(fn) { + this.notify = fn; + } + }, { + key: "status", + value: function status() { + return this.socketStatus; + } + }, { + key: "open", + value: function open() { + var _this = this; + var customOptions = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; + var options = _objectSpread2(_objectSpread2({}, this.options), customOptions); + var port = options.port, + host = options.host, + secure = options.secure, + protocol = options.protocol; + if (this.socket) { + this.close(); + } + var scheme = secure ? 'wss' : 'ws'; + var rinfo = { + address: host, + family: scheme, + port: port, + size: 0 + }; + this.socket = new WebSocket("".concat(scheme, "://").concat(host, ":").concat(port), protocol); + this.socket.binaryType = 'arraybuffer'; + this.socketStatus = STATUS$2.IS_CONNECTING; + this.socket.onopen = function () { + _this.socketStatus = STATUS$2.IS_OPEN; + _this.notify('open'); + }; + this.socket.onclose = function () { + _this.socketStatus = STATUS$2.IS_CLOSED; + _this.notify('close'); + }; + this.socket.onerror = function (error) { + _this.notify('error', error); + }; + this.socket.onmessage = function (message) { + _this.notify(message.data, rinfo); + }; + } + }, { + key: "close", + value: function close() { + this.socketStatus = STATUS$2.IS_CLOSING; + this.socket.close(); + } + }, { + key: "send", + value: function send(binary) { + this.socket.send(binary); + } + }]); + return WebsocketClientPlugin; + }(); + + var WebSocketServer = typeof __dirname !== 'undefined' ? require('isomorphic-ws').Server : undefined; + var STATUS$1 = { + IS_NOT_INITIALIZED: -1, + IS_CONNECTING: 0, + IS_OPEN: 1, + IS_CLOSING: 2, + IS_CLOSED: 3 + }; + var defaultOptions$1 = { + host: 'localhost', + port: 8080 + }; + var WebsocketServerPlugin = function () { + function WebsocketServerPlugin(customOptions) { + _classCallCheck(this, WebsocketServerPlugin); + if (!WebSocketServer) { + throw new Error('WebsocketServerPlugin can not be used in browser context'); + } + this.options = _objectSpread2(_objectSpread2({}, defaultOptions$1), customOptions); + this.socket = null; + this.socketStatus = STATUS$1.IS_NOT_INITIALIZED; + this.notify = function () {}; + } + _createClass(WebsocketServerPlugin, [{ + key: "registerNotify", + value: function registerNotify(fn) { + this.notify = fn; + } + }, { + key: "status", + value: function status() { + return this.socketStatus; + } + }, { + key: "open", + value: function open() { + var _this = this; + var customOptions = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; + var options = _objectSpread2(_objectSpread2({}, this.options), customOptions); + var port = options.port, + host = options.host; + var rinfo = { + address: host, + family: 'wsserver', + port: port, + size: 0 + }; + if (this.socket) { + this.close(); + } + if (options.server) { + this.socket = new WebSocketServer({ + server: options.server + }); + } else { + this.socket = new WebSocketServer({ + host: host, + port: port + }); + } + this.socket.binaryType = 'arraybuffer'; + this.socketStatus = STATUS$1.IS_CONNECTING; + this.socket.on('listening', function () { + _this.socketStatus = STATUS$1.IS_OPEN; + _this.notify('open'); + }); + this.socket.on('error', function (error) { + _this.notify('error', error); + }); + this.socket.on('connection', function (client) { + client.on('message', function (message) { + _this.notify(new Uint8Array(message), rinfo); + }); + }); + } + }, { + key: "close", + value: function close() { + var _this2 = this; + this.socketStatus = STATUS$1.IS_CLOSING; + this.socket.close(function () { + _this2.socketStatus = STATUS$1.IS_CLOSED; + _this2.notify('close'); + }); + } + }, { + key: "send", + value: function send(binary) { + this.socket.clients.forEach(function (client) { + client.send(binary, { + binary: true + }); + }); + } + }]); + return WebsocketServerPlugin; + }(); + + var defaultOptions = { + discardLateMessages: false, + plugin: new WebsocketClientPlugin() + }; + var STATUS = { + IS_NOT_INITIALIZED: -1, + IS_CONNECTING: 0, + IS_OPEN: 1, + IS_CLOSING: 2, + IS_CLOSED: 3 + }; + var OSC = function () { + function OSC(options) { + _classCallCheck(this, OSC); + if (options && !isObject(options)) { + throw new Error('OSC options argument has to be an object.'); + } + this.options = _objectSpread2(_objectSpread2({}, defaultOptions), options); + this.eventHandler = new EventHandler({ + discardLateMessages: this.options.discardLateMessages + }); + var eventHandler = this.eventHandler; + if (this.options.plugin && this.options.plugin.registerNotify) { + this.options.plugin.registerNotify(function () { + return eventHandler.notify.apply(eventHandler, arguments); + }); + } + } + _createClass(OSC, [{ + key: "on", + value: function on(eventName, callback) { + if (!(isString(eventName) && isFunction(callback))) { + throw new Error('OSC on() needs event- or address string and callback function'); + } + return this.eventHandler.on(eventName, callback); + } + }, { + key: "off", + value: function off(eventName, subscriptionId) { + if (!(isString(eventName) && isInt(subscriptionId))) { + throw new Error('OSC off() needs string and number (subscriptionId) to unsubscribe'); + } + return this.eventHandler.off(eventName, subscriptionId); + } + }, { + key: "open", + value: function open(options) { + if (options && !isObject(options)) { + throw new Error('OSC open() options argument needs to be an object'); + } + if (!(this.options.plugin && isFunction(this.options.plugin.open))) { + throw new Error('OSC Plugin API #open is not implemented!'); + } + return this.options.plugin.open(options); + } + }, { + key: "status", + value: function status() { + if (!(this.options.plugin && isFunction(this.options.plugin.status))) { + throw new Error('OSC Plugin API #status is not implemented!'); + } + return this.options.plugin.status(); + } + }, { + key: "close", + value: function close() { + if (!(this.options.plugin && isFunction(this.options.plugin.close))) { + throw new Error('OSC Plugin API #close is not implemented!'); + } + return this.options.plugin.close(); + } + }, { + key: "send", + value: function send(packet, options) { + if (!(this.options.plugin && isFunction(this.options.plugin.send))) { + throw new Error('OSC Plugin API #send is not implemented!'); + } + if (!(packet instanceof TypedMessage || packet instanceof Message || packet instanceof Bundle || packet instanceof Packet)) { + throw new Error('OSC send() needs Messages, Bundles or Packets'); + } + if (options && !isObject(options)) { + throw new Error('OSC send() options argument has to be an object'); + } + return this.options.plugin.send(packet.pack(), options); + } + }]); + return OSC; + }(); + OSC.STATUS = STATUS; + OSC.Packet = Packet; + OSC.Bundle = Bundle; + OSC.Message = Message; + OSC.TypedMessage = TypedMessage; + OSC.DatagramPlugin = DatagramPlugin; + OSC.WebsocketClientPlugin = WebsocketClientPlugin; + OSC.WebsocketServerPlugin = WebsocketServerPlugin; + OSC.BridgePlugin = BridgePlugin; + + return OSC; + +})); From c9d7a2f313f241b521ddd6ee182143471fe636d9 Mon Sep 17 00:00:00 2001 From: Felix Roos Date: Tue, 12 Apr 2022 22:58:13 +0200 Subject: [PATCH 55/78] osc instructions --- packages/osc/README.md | 44 +++++++++++++++++++++++------------------- 1 file changed, 24 insertions(+), 20 deletions(-) diff --git a/packages/osc/README.md b/packages/osc/README.md index e8f5069b6..cb48090d6 100644 --- a/packages/osc/README.md +++ b/packages/osc/README.md @@ -1,33 +1,37 @@ # @strudel.cycles/osc -OSC messaging between strudel and super collider? +OSC output for strudel patterns! Currently only tested with super collider / super dirt. -## Sniffing Tidal Messages +## Usage -```sh -npm run tidal-sniffer +OSC will only work if you run the REPL locally + the OSC server besides it: + +From the project root: + +```js +npm run repl ``` -Now open a .tidal file and play something. There should be logs like: +and in a seperate shell: + +```js +npm run osc +``` + +This should give you ```log -received: /dirt/play [ - '_id_', '1', - 'cps', 0.5625, - 'cutoff', 100, - 'cycle', 724.1875, - 'delta', 0.11111068725585938, - 'orbit', 0, - 's', 'arpy' -] +osc client running on port 57120 +osc server running on port 57121 +websocket server running on port 8080 ``` -## Web Client + Server (WIP) +Now open Supercollider (with the super dirt startup file) -```sh -npm run client -npm run server # another terminal +Now open the REPL and type: + +```js +s(" hh").osc() ``` -Then go to [http://localhost:4321](localhost:4321) and push the button. -In your server terminal, there should be a log. +or just [click here](http://localhost:3000/#cygiPGJkIHNkPiBoaCIpLm9zYygp)... From e069e66952fffa4fbf218c7bf3ef13a43f479748 Mon Sep 17 00:00:00 2001 From: Felix Roos Date: Tue, 12 Apr 2022 23:42:46 +0200 Subject: [PATCH 56/78] patch osc for client --- packages/osc/osc.js | 1733 ++++++++++++++++++++++++++++++++ packages/osc/osc.mjs | 2 +- packages/osc/package-lock.json | 148 +-- 3 files changed, 1808 insertions(+), 75 deletions(-) create mode 100644 packages/osc/osc.js diff --git a/packages/osc/osc.js b/packages/osc/osc.js new file mode 100644 index 000000000..7446c0e54 --- /dev/null +++ b/packages/osc/osc.js @@ -0,0 +1,1733 @@ +(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : + typeof define === 'function' && define.amd ? define(factory) : + (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.OSC = factory()); +})(this, (function () { 'use strict'; + + function ownKeys(object, enumerableOnly) { + var keys = Object.keys(object); + + if (Object.getOwnPropertySymbols) { + var symbols = Object.getOwnPropertySymbols(object); + enumerableOnly && (symbols = symbols.filter(function (sym) { + return Object.getOwnPropertyDescriptor(object, sym).enumerable; + })), keys.push.apply(keys, symbols); + } + + return keys; + } + + function _objectSpread2(target) { + for (var i = 1; i < arguments.length; i++) { + var source = null != arguments[i] ? arguments[i] : {}; + i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { + _defineProperty(target, key, source[key]); + }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { + Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); + }); + } + + return target; + } + + function _classCallCheck(instance, Constructor) { + if (!(instance instanceof Constructor)) { + throw new TypeError("Cannot call a class as a function"); + } + } + + function _defineProperties(target, props) { + for (var i = 0; i < props.length; i++) { + var descriptor = props[i]; + descriptor.enumerable = descriptor.enumerable || false; + descriptor.configurable = true; + if ("value" in descriptor) descriptor.writable = true; + Object.defineProperty(target, descriptor.key, descriptor); + } + } + + function _createClass(Constructor, protoProps, staticProps) { + if (protoProps) _defineProperties(Constructor.prototype, protoProps); + if (staticProps) _defineProperties(Constructor, staticProps); + Object.defineProperty(Constructor, "prototype", { + writable: false + }); + return Constructor; + } + + function _defineProperty(obj, key, value) { + if (key in obj) { + Object.defineProperty(obj, key, { + value: value, + enumerable: true, + configurable: true, + writable: true + }); + } else { + obj[key] = value; + } + + return obj; + } + + function _inherits(subClass, superClass) { + if (typeof superClass !== "function" && superClass !== null) { + throw new TypeError("Super expression must either be null or a function"); + } + + subClass.prototype = Object.create(superClass && superClass.prototype, { + constructor: { + value: subClass, + writable: true, + configurable: true + } + }); + Object.defineProperty(subClass, "prototype", { + writable: false + }); + if (superClass) _setPrototypeOf(subClass, superClass); + } + + function _getPrototypeOf(o) { + _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { + return o.__proto__ || Object.getPrototypeOf(o); + }; + return _getPrototypeOf(o); + } + + function _setPrototypeOf(o, p) { + _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { + o.__proto__ = p; + return o; + }; + + return _setPrototypeOf(o, p); + } + + function _isNativeReflectConstruct() { + if (typeof Reflect === "undefined" || !Reflect.construct) return false; + if (Reflect.construct.sham) return false; + if (typeof Proxy === "function") return true; + + try { + Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); + return true; + } catch (e) { + return false; + } + } + + function _assertThisInitialized(self) { + if (self === void 0) { + throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); + } + + return self; + } + + function _possibleConstructorReturn(self, call) { + if (call && (typeof call === "object" || typeof call === "function")) { + return call; + } else if (call !== void 0) { + throw new TypeError("Derived constructors may only return object or undefined"); + } + + return _assertThisInitialized(self); + } + + function _createSuper(Derived) { + var hasNativeReflectConstruct = _isNativeReflectConstruct(); + + return function _createSuperInternal() { + var Super = _getPrototypeOf(Derived), + result; + + if (hasNativeReflectConstruct) { + var NewTarget = _getPrototypeOf(this).constructor; + + result = Reflect.construct(Super, arguments, NewTarget); + } else { + result = Super.apply(this, arguments); + } + + return _possibleConstructorReturn(this, result); + }; + } + + function _superPropBase(object, property) { + while (!Object.prototype.hasOwnProperty.call(object, property)) { + object = _getPrototypeOf(object); + if (object === null) break; + } + + return object; + } + + function _get() { + if (typeof Reflect !== "undefined" && Reflect.get) { + _get = Reflect.get; + } else { + _get = function _get(target, property, receiver) { + var base = _superPropBase(target, property); + + if (!base) return; + var desc = Object.getOwnPropertyDescriptor(base, property); + + if (desc.get) { + return desc.get.call(arguments.length < 3 ? target : receiver); + } + + return desc.value; + }; + } + + return _get.apply(this, arguments); + } + + function isInt(n) { + return Number(n) === n && n % 1 === 0; + } + function isFloat(n) { + return Number(n) === n && n % 1 !== 0; + } + function isNumber(n) { + return Number(n) === n; + } + function isString(n) { + return typeof n === 'string'; + } + function isBoolean(n) { + return typeof n === 'boolean'; + } + function isInfinity(n) { + return n === Infinity; + } + function isArray(n) { + return Object.prototype.toString.call(n) === '[object Array]'; + } + function isObject(n) { + return Object.prototype.toString.call(n) === '[object Object]'; + } + function isFunction(n) { + return typeof n === 'function'; + } + function isBlob(n) { + return n instanceof Uint8Array; + } + function isDate(n) { + return n instanceof Date; + } + function isUndefined(n) { + return typeof n === 'undefined'; + } + function isNull(n) { + return n === null; + } + function pad(n) { + return n + 3 & ~0x03; + } + function hasProperty(name) { + return Object.prototype.hasOwnProperty.call(typeof global !== 'undefined' ? global : window, + name); + } + function dataView(obj) { + if (obj.buffer) { + return new DataView(obj.buffer); + } else if (obj instanceof ArrayBuffer) { + return new DataView(obj); + } + return new DataView(new Uint8Array(obj)); + } + + function typeTag(item) { + if (isInt(item)) { + return 'i'; + } else if (isFloat(item)) { + return 'f'; + } else if (isString(item)) { + return 's'; + } else if (isBlob(item)) { + return 'b'; + } else if (isBoolean(item)) { + return item ? 'T' : 'F'; + } else if (isNull(item)) { + return 'N'; + } else if (isInfinity(item)) { + return 'I'; + } + throw new Error('OSC typeTag() found unknown value type'); + } + function prepareAddress(obj) { + var address = ''; + if (isArray(obj)) { + return "/".concat(obj.join('/')); + } else if (isString(obj)) { + address = obj; + if (address.length > 1 && address[address.length - 1] === '/') { + address = address.slice(0, address.length - 1); + } + if (address.length > 1 && address[0] !== '/') { + address = "/".concat(address); + } + return address; + } + throw new Error('OSC prepareAddress() needs addresses of type array or string'); + } + function prepareRegExPattern(str) { + var pattern; + if (!isString(str)) { + throw new Error('OSC prepareRegExPattern() needs strings'); + } + pattern = str.replace(/\./g, '\\.'); + pattern = pattern.replace(/\(/g, '\\('); + pattern = pattern.replace(/\)/g, '\\)'); + pattern = pattern.replace(/\{/g, '('); + pattern = pattern.replace(/\}/g, ')'); + pattern = pattern.replace(/,/g, '|'); + pattern = pattern.replace(/\[!/g, '[^'); + pattern = pattern.replace(/\?/g, '.'); + pattern = pattern.replace(/\*/g, '.*'); + return pattern; + } + var EncodeHelper = function () { + function EncodeHelper() { + _classCallCheck(this, EncodeHelper); + this.data = []; + this.byteLength = 0; + } + _createClass(EncodeHelper, [{ + key: "add", + value: function add(item) { + if (isBoolean(item) || isInfinity(item) || isNull(item)) { + return this; + } + var buffer = item.pack(); + this.byteLength += buffer.byteLength; + this.data.push(buffer); + return this; + } + }, { + key: "merge", + value: function merge() { + var result = new Uint8Array(this.byteLength); + var offset = 0; + this.data.forEach(function (data) { + result.set(data, offset); + offset += data.byteLength; + }); + return result; + } + }]); + return EncodeHelper; + }(); + + var Atomic = function () { + function Atomic(value) { + _classCallCheck(this, Atomic); + this.value = value; + this.offset = 0; + } + _createClass(Atomic, [{ + key: "pack", + value: function pack(method, byteLength) { + if (!(method && byteLength)) { + throw new Error('OSC Atomic cant\'t be packed without given method or byteLength'); + } + var data = new Uint8Array(byteLength); + var dataView = new DataView(data.buffer); + if (isUndefined(this.value)) { + throw new Error('OSC Atomic cant\'t be encoded with empty value'); + } + dataView[method](this.offset, this.value, false); + return data; + } + }, { + key: "unpack", + value: function unpack(dataView, method, byteLength) { + var initialOffset = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0; + if (!(dataView && method && byteLength)) { + throw new Error('OSC Atomic cant\'t be unpacked without given dataView, method or byteLength'); + } + if (!(dataView instanceof DataView)) { + throw new Error('OSC Atomic expects an instance of type DataView'); + } + this.value = dataView[method](initialOffset, false); + this.offset = initialOffset + byteLength; + return this.offset; + } + }]); + return Atomic; + }(); + + var AtomicInt32 = function (_Atomic) { + _inherits(AtomicInt32, _Atomic); + var _super = _createSuper(AtomicInt32); + function AtomicInt32(value) { + _classCallCheck(this, AtomicInt32); + if (value && !isInt(value)) { + throw new Error('OSC AtomicInt32 constructor expects value of type number'); + } + return _super.call(this, value); + } + _createClass(AtomicInt32, [{ + key: "pack", + value: function pack() { + return _get(_getPrototypeOf(AtomicInt32.prototype), "pack", this).call(this, 'setInt32', 4); + } + }, { + key: "unpack", + value: function unpack(dataView) { + var initialOffset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0; + return _get(_getPrototypeOf(AtomicInt32.prototype), "unpack", this).call(this, dataView, 'getInt32', 4, initialOffset); + } + }]); + return AtomicInt32; + }(Atomic); + + var STR_SLICE_SIZE = 65537; + var STR_ENCODING = 'utf-8'; + function charCodesToString(charCodes) { + if (hasProperty('Buffer')) { + return Buffer.from(charCodes).toString(STR_ENCODING); + } else if (hasProperty('TextDecoder')) { + return new TextDecoder(STR_ENCODING) + .decode(new Int8Array(charCodes)); + } + var str = ''; + for (var i = 0; i < charCodes.length; i += STR_SLICE_SIZE) { + str += String.fromCharCode.apply(null, charCodes.slice(i, i + STR_SLICE_SIZE)); + } + return str; + } + var AtomicString = function (_Atomic) { + _inherits(AtomicString, _Atomic); + var _super = _createSuper(AtomicString); + function AtomicString(value) { + _classCallCheck(this, AtomicString); + if (value && !isString(value)) { + throw new Error('OSC AtomicString constructor expects value of type string'); + } + return _super.call(this, value); + } + _createClass(AtomicString, [{ + key: "pack", + value: function pack() { + if (isUndefined(this.value)) { + throw new Error('OSC AtomicString can not be encoded with empty value'); + } + var terminated = "".concat(this.value, "\0"); + var byteLength = pad(terminated.length); + var buffer = new Uint8Array(byteLength); + for (var i = 0; i < terminated.length; i += 1) { + buffer[i] = terminated.charCodeAt(i); + } + return buffer; + } + }, { + key: "unpack", + value: function unpack(dataView) { + var initialOffset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0; + if (!(dataView instanceof DataView)) { + throw new Error('OSC AtomicString expects an instance of type DataView'); + } + var offset = initialOffset; + var charcode; + var charCodes = []; + for (; offset < dataView.byteLength; offset += 1) { + charcode = dataView.getUint8(offset); + if (charcode !== 0) { + charCodes.push(charcode); + } else { + offset += 1; + break; + } + } + if (offset === dataView.length) { + throw new Error('OSC AtomicString found a malformed OSC string'); + } + this.offset = pad(offset); + this.value = charCodesToString(charCodes); + return this.offset; + } + }]); + return AtomicString; + }(Atomic); + + var SECONDS_70_YEARS = 2208988800; + var TWO_POWER_32 = 4294967296; + var Timetag = function () { + function Timetag() { + var seconds = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0; + var fractions = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0; + _classCallCheck(this, Timetag); + if (!(isInt(seconds) && isInt(fractions))) { + throw new Error('OSC Timetag constructor expects values of type integer number'); + } + this.seconds = seconds; + this.fractions = fractions; + } + _createClass(Timetag, [{ + key: "timestamp", + value: function timestamp(milliseconds) { + var seconds; + if (typeof milliseconds === 'number') { + seconds = milliseconds / 1000; + var rounded = Math.floor(seconds); + this.seconds = rounded + SECONDS_70_YEARS; + this.fractions = Math.round(TWO_POWER_32 * (seconds - rounded)); + return milliseconds; + } + seconds = this.seconds - SECONDS_70_YEARS; + return (seconds + Math.round(this.fractions / TWO_POWER_32)) * 1000; + } + }]); + return Timetag; + }(); + var AtomicTimetag = function (_Atomic) { + _inherits(AtomicTimetag, _Atomic); + var _super = _createSuper(AtomicTimetag); + function AtomicTimetag() { + var value = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : Date.now(); + _classCallCheck(this, AtomicTimetag); + var timetag = new Timetag(); + if (value instanceof Timetag) { + timetag = value; + } else if (isInt(value)) { + timetag.timestamp(value); + } else if (isDate(value)) { + timetag.timestamp(value.getTime()); + } + return _super.call(this, timetag); + } + _createClass(AtomicTimetag, [{ + key: "pack", + value: function pack() { + if (isUndefined(this.value)) { + throw new Error('OSC AtomicTimetag can not be encoded with empty value'); + } + var _this$value = this.value, + seconds = _this$value.seconds, + fractions = _this$value.fractions; + var data = new Uint8Array(8); + var dataView = new DataView(data.buffer); + dataView.setInt32(0, seconds, false); + dataView.setInt32(4, fractions, false); + return data; + } + }, { + key: "unpack", + value: function unpack(dataView) { + var initialOffset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0; + if (!(dataView instanceof DataView)) { + throw new Error('OSC AtomicTimetag expects an instance of type DataView'); + } + var seconds = dataView.getUint32(initialOffset, false); + var fractions = dataView.getUint32(initialOffset + 4, false); + this.value = new Timetag(seconds, fractions); + this.offset = initialOffset + 8; + return this.offset; + } + }]); + return AtomicTimetag; + }(Atomic); + + var AtomicBlob = function (_Atomic) { + _inherits(AtomicBlob, _Atomic); + var _super = _createSuper(AtomicBlob); + function AtomicBlob(value) { + _classCallCheck(this, AtomicBlob); + if (value && !isBlob(value)) { + throw new Error('OSC AtomicBlob constructor expects value of type Uint8Array'); + } + return _super.call(this, value); + } + _createClass(AtomicBlob, [{ + key: "pack", + value: function pack() { + if (isUndefined(this.value)) { + throw new Error('OSC AtomicBlob can not be encoded with empty value'); + } + var byteLength = pad(this.value.byteLength); + var data = new Uint8Array(byteLength + 4); + var dataView = new DataView(data.buffer); + dataView.setInt32(0, this.value.byteLength, false); + data.set(this.value, 4); + return data; + } + }, { + key: "unpack", + value: function unpack(dataView) { + var initialOffset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0; + if (!(dataView instanceof DataView)) { + throw new Error('OSC AtomicBlob expects an instance of type DataView'); + } + var byteLength = dataView.getInt32(initialOffset, false); + this.value = new Uint8Array(dataView.buffer, initialOffset + 4, byteLength); + this.offset = pad(initialOffset + 4 + byteLength); + return this.offset; + } + }]); + return AtomicBlob; + }(Atomic); + + var AtomicFloat32 = function (_Atomic) { + _inherits(AtomicFloat32, _Atomic); + var _super = _createSuper(AtomicFloat32); + function AtomicFloat32(value) { + _classCallCheck(this, AtomicFloat32); + if (value && !isNumber(value)) { + throw new Error('OSC AtomicFloat32 constructor expects value of type float'); + } + return _super.call(this, value); + } + _createClass(AtomicFloat32, [{ + key: "pack", + value: function pack() { + return _get(_getPrototypeOf(AtomicFloat32.prototype), "pack", this).call(this, 'setFloat32', 4); + } + }, { + key: "unpack", + value: function unpack(dataView) { + var initialOffset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0; + return _get(_getPrototypeOf(AtomicFloat32.prototype), "unpack", this).call(this, dataView, 'getFloat32', 4, initialOffset); + } + }]); + return AtomicFloat32; + }(Atomic); + + var AtomicFloat64 = function (_Atomic) { + _inherits(AtomicFloat64, _Atomic); + var _super = _createSuper(AtomicFloat64); + function AtomicFloat64(value) { + _classCallCheck(this, AtomicFloat64); + if (value && !isNumber(value)) { + throw new Error('OSC AtomicFloat64 constructor expects value of type float'); + } + return _super.call(this, value); + } + _createClass(AtomicFloat64, [{ + key: "pack", + value: function pack() { + return _get(_getPrototypeOf(AtomicFloat64.prototype), "pack", this).call(this, 'setFloat64', 8); + } + }, { + key: "unpack", + value: function unpack(dataView) { + var initialOffset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0; + return _get(_getPrototypeOf(AtomicFloat64.prototype), "unpack", this).call(this, dataView, 'getFloat64', 8, initialOffset); + } + }]); + return AtomicFloat64; + }(Atomic); + + var MAX_INT64 = BigInt('9223372036854775807'); + var MIN_INT64 = BigInt('-9223372036854775808'); + var AtomicInt64 = function (_Atomic) { + _inherits(AtomicInt64, _Atomic); + var _super = _createSuper(AtomicInt64); + function AtomicInt64(value) { + _classCallCheck(this, AtomicInt64); + if (value && typeof value !== 'bigint') { + throw new Error('OSC AtomicInt64 constructor expects value of type BigInt'); + } + if (value && (value < MIN_INT64 || value > MAX_INT64)) { + throw new Error('OSC AtomicInt64 value is out of bounds'); + } + var tmp; + if (value) { + tmp = BigInt.asIntN(64, value); + } + return _super.call(this, tmp); + } + _createClass(AtomicInt64, [{ + key: "pack", + value: function pack() { + return _get(_getPrototypeOf(AtomicInt64.prototype), "pack", this).call(this, 'setBigInt64', 8); + } + }, { + key: "unpack", + value: function unpack(dataView) { + var initialOffset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0; + return _get(_getPrototypeOf(AtomicInt64.prototype), "unpack", this).call(this, dataView, 'getBigInt64', 8, initialOffset); + } + }]); + return AtomicInt64; + }(Atomic); + + var MAX_UINT64 = BigInt('18446744073709551615'); + var AtomicUInt64 = function (_Atomic) { + _inherits(AtomicUInt64, _Atomic); + var _super = _createSuper(AtomicUInt64); + function AtomicUInt64(value) { + _classCallCheck(this, AtomicUInt64); + if (value && typeof value !== 'bigint') { + throw new Error('OSC AtomicUInt64 constructor expects value of type BigInt'); + } + if (value && (value < 0 || value > MAX_UINT64)) { + throw new Error('OSC AtomicUInt64 value is out of bounds'); + } + var tmp; + if (value) { + tmp = BigInt.asUintN(64, value); + } + return _super.call(this, tmp); + } + _createClass(AtomicUInt64, [{ + key: "pack", + value: function pack() { + return _get(_getPrototypeOf(AtomicUInt64.prototype), "pack", this).call(this, 'setBigUint64', 8); + } + }, { + key: "unpack", + value: function unpack(dataView) { + var initialOffset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0; + return _get(_getPrototypeOf(AtomicUInt64.prototype), "unpack", this).call(this, dataView, 'getBigUint64', 8, initialOffset); + } + }]); + return AtomicUInt64; + }(Atomic); + + var VALUE_TRUE = true; + var VALUE_FALSE = false; + var VALUE_NONE = null; + var VALUE_INFINITY = Infinity; + + var TypedMessage = function () { + function TypedMessage(address, args) { + var _this = this; + _classCallCheck(this, TypedMessage); + this.offset = 0; + this.address = ''; + this.types = ''; + this.args = []; + if (!isUndefined(address)) { + if (!(isString(address) || isArray(address))) { + throw new Error('OSC Message constructor first argument (address) must be a string or array'); + } + this.address = prepareAddress(address); + } + if (!isUndefined(args)) { + if (!isArray(args)) { + throw new Error('OSC Message constructor second argument (args) must be an array'); + } + args.forEach(function (item) { + return _this.add(item.type, item.value); + }); + } + } + _createClass(TypedMessage, [{ + key: "add", + value: function add(type, item) { + if (isUndefined(type)) { + throw new Error('OSC Message needs a valid OSC Atomic Data Type'); + } + if (type === 'N') { + this.args.push(VALUE_NONE); + } else if (type === 'T') { + this.args.push(VALUE_TRUE); + } else if (type === 'F') { + this.args.push(VALUE_FALSE); + } else if (type === 'I') { + this.args.push(VALUE_INFINITY); + } else { + this.args.push(item); + } + this.types += type; + } + }, { + key: "pack", + value: function pack() { + var _this2 = this; + if (this.address.length === 0 || this.address[0] !== '/') { + throw new Error('OSC Message has an invalid address'); + } + var encoder = new EncodeHelper(); + encoder.add(new AtomicString(this.address)); + encoder.add(new AtomicString(",".concat(this.types))); + if (this.args.length > 0) { + var argument; + if (this.args.length > this.types.length) { + throw new Error('OSC Message argument and type tag mismatch'); + } + this.args.forEach(function (value, index) { + var type = _this2.types[index]; + if (type === 'i') { + argument = new AtomicInt32(value); + } else if (type === 'h') { + argument = new AtomicInt64(value); + } else if (type === 't') { + argument = new AtomicUInt64(value); + } else if (type === 'f') { + argument = new AtomicFloat32(value); + } else if (type === 'd') { + argument = new AtomicFloat64(value); + } else if (type === 's') { + argument = new AtomicString(value); + } else if (type === 'b') { + argument = new AtomicBlob(value); + } else if (type === 'T') { + argument = VALUE_TRUE; + } else if (type === 'F') { + argument = VALUE_FALSE; + } else if (type === 'N') { + argument = VALUE_NONE; + } else if (type === 'I') { + argument = VALUE_INFINITY; + } else { + throw new Error('OSC Message found unknown argument type'); + } + encoder.add(argument); + }); + } + return encoder.merge(); + } + }, { + key: "unpack", + value: function unpack(dataView) { + var initialOffset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0; + if (!(dataView instanceof DataView)) { + throw new Error('OSC Message expects an instance of type DataView.'); + } + var address = new AtomicString(); + address.unpack(dataView, initialOffset); + var types = new AtomicString(); + types.unpack(dataView, address.offset); + if (address.value.length === 0 || address.value[0] !== '/') { + throw new Error('OSC Message found malformed or missing address string'); + } + if (types.value.length === 0 && types.value[0] !== ',') { + throw new Error('OSC Message found malformed or missing type string'); + } + var offset = types.offset; + var next; + var type; + var args = []; + for (var i = 1; i < types.value.length; i += 1) { + type = types.value[i]; + next = null; + if (type === 'i') { + next = new AtomicInt32(); + } else if (type === 'h') { + next = new AtomicInt64(); + } else if (type === 't') { + next = new AtomicUInt64(); + } else if (type === 'f') { + next = new AtomicFloat32(); + } else if (type === 'd') { + next = new AtomicFloat64(); + } else if (type === 's') { + next = new AtomicString(); + } else if (type === 'b') { + next = new AtomicBlob(); + } else if (type === 'T') { + args.push(VALUE_TRUE); + } else if (type === 'F') { + args.push(VALUE_FALSE); + } else if (type === 'N') { + args.push(VALUE_NONE); + } else if (type === 'I') { + args.push(VALUE_INFINITY); + } else { + throw new Error('OSC Message found unsupported argument type'); + } + if (next) { + offset = next.unpack(dataView, offset); + args.push(next.value); + } + } + this.offset = offset; + this.address = address.value; + this.types = types.value; + this.args = args; + return this.offset; + } + }]); + return TypedMessage; + }(); + var Message = function (_TypedMessage) { + _inherits(Message, _TypedMessage); + var _super = _createSuper(Message); + function Message() { + var _this3; + _classCallCheck(this, Message); + var address; + for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + if (args.length > 0) { + address = args.shift(); + } + var oscArgs; + if (args.length > 0) { + if (args[0] instanceof Array) { + oscArgs = args.shift(); + } + } + _this3 = _super.call(this, address, oscArgs); + if (args.length > 0) { + _this3.types = args.map(function (item) { + return typeTag(item); + }).join(''); + _this3.args = args; + } + return _this3; + } + _createClass(Message, [{ + key: "add", + value: function add(item) { + _get(_getPrototypeOf(Message.prototype), "add", this).call(this, typeTag(item), item); + } + }]); + return Message; + }(TypedMessage); + + var BUNDLE_TAG = '#bundle'; + var Bundle = function () { + function Bundle() { + var _this = this; + _classCallCheck(this, Bundle); + this.offset = 0; + this.timetag = new AtomicTimetag(); + this.bundleElements = []; + for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + if (args.length > 0) { + if (args[0] instanceof Date || isInt(args[0])) { + this.timetag = new AtomicTimetag(args[0]); + } else if (isArray(args[0])) { + args[0].forEach(function (item) { + _this.add(item); + }); + if (args.length > 1 && (args[1] instanceof Date || isInt(args[0]))) { + this.timetag = new AtomicTimetag(args[1]); + } + } else { + args.forEach(function (item) { + _this.add(item); + }); + } + } + } + _createClass(Bundle, [{ + key: "timestamp", + value: function timestamp(ms) { + if (!isInt(ms)) { + throw new Error('OSC Bundle needs an integer for setting the timestamp'); + } + this.timetag = new AtomicTimetag(ms); + } + }, { + key: "add", + value: function add(item) { + if (!(item instanceof Message || item instanceof Bundle)) { + throw new Error('OSC Bundle contains only Messages and Bundles'); + } + this.bundleElements.push(item); + } + }, { + key: "pack", + value: function pack() { + var encoder = new EncodeHelper(); + encoder.add(new AtomicString(BUNDLE_TAG)); + if (!this.timetag) { + this.timetag = new AtomicTimetag(); + } + encoder.add(this.timetag); + this.bundleElements.forEach(function (item) { + encoder.add(new AtomicInt32(item.pack().byteLength)); + encoder.add(item); + }); + return encoder.merge(); + } + }, { + key: "unpack", + value: function unpack(dataView) { + var initialOffset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0; + if (!(dataView instanceof DataView)) { + throw new Error('OSC Bundle expects an instance of type DataView'); + } + var parentHead = new AtomicString(); + parentHead.unpack(dataView, initialOffset); + if (parentHead.value !== BUNDLE_TAG) { + throw new Error('OSC Bundle does not contain a valid #bundle head'); + } + var timetag = new AtomicTimetag(); + var offset = timetag.unpack(dataView, parentHead.offset); + this.bundleElements = []; + while (offset < dataView.byteLength) { + var head = new AtomicString(); + var size = new AtomicInt32(); + offset = size.unpack(dataView, offset); + var item = void 0; + head.unpack(dataView, offset); + if (head.value === BUNDLE_TAG) { + item = new Bundle(); + } else { + item = new Message(); + } + offset = item.unpack(dataView, offset); + this.bundleElements.push(item); + } + this.offset = offset; + this.timetag = timetag; + return this.offset; + } + }]); + return Bundle; + }(); + + var Packet = function () { + function Packet(value) { + _classCallCheck(this, Packet); + if (value && !(value instanceof Message || value instanceof Bundle)) { + throw new Error('OSC Packet value has to be Message or Bundle'); + } + this.value = value; + this.offset = 0; + } + _createClass(Packet, [{ + key: "pack", + value: function pack() { + if (!this.value) { + throw new Error('OSC Packet can not be encoded with empty body'); + } + return this.value.pack(); + } + }, { + key: "unpack", + value: function unpack(dataView) { + var initialOffset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0; + if (!(dataView instanceof DataView)) { + throw new Error('OSC Packet expects an instance of type DataView'); + } + if (dataView.byteLength % 4 !== 0) { + throw new Error('OSC Packet byteLength has to be a multiple of four'); + } + var head = new AtomicString(); + head.unpack(dataView, initialOffset); + var item; + if (head.value === BUNDLE_TAG) { + item = new Bundle(); + } else { + item = new Message(); + } + item.unpack(dataView, initialOffset); + this.offset = item.offset; + this.value = item; + return this.offset; + } + }]); + return Packet; + }(); + + var defaultOptions$5 = { + discardLateMessages: false + }; + var EventHandler = function () { + function EventHandler(options) { + _classCallCheck(this, EventHandler); + this.options = _objectSpread2(_objectSpread2({}, defaultOptions$5), options); + this.addressHandlers = []; + this.eventHandlers = { + open: [], + error: [], + close: [] + }; + this.uuid = 0; + } + _createClass(EventHandler, [{ + key: "dispatch", + value: function dispatch(packet, rinfo) { + var _this = this; + if (!(packet instanceof Packet)) { + throw new Error('OSC EventHander dispatch() accepts only arguments of type Packet'); + } + if (!packet.value) { + throw new Error('OSC EventHander dispatch() can\'t read empty Packets'); + } + if (packet.value instanceof Bundle) { + var bundle = packet.value; + return bundle.bundleElements.forEach(function (bundleItem) { + if (bundleItem instanceof Bundle) { + if (bundle.timetag.value.timestamp() < bundleItem.timetag.value.timestamp()) { + throw new Error('OSC Bundle timestamp is older than the timestamp of enclosed Bundles'); + } + return _this.dispatch(bundleItem); + } else if (bundleItem instanceof Message) { + var message = bundleItem; + return _this.notify(message.address, message, bundle.timetag.value.timestamp(), rinfo); + } + throw new Error('OSC EventHander dispatch() can\'t dispatch unknown Packet value'); + }); + } else if (packet.value instanceof Message) { + var message = packet.value; + return this.notify(message.address, message, 0, rinfo); + } + throw new Error('OSC EventHander dispatch() can\'t dispatch unknown Packet value'); + } + }, { + key: "call", + value: function call(name, data, rinfo) { + var success = false; + if (isString(name) && name in this.eventHandlers) { + this.eventHandlers[name].forEach(function (handler) { + handler.callback(data, rinfo); + success = true; + }); + return success; + } + var handlerKeys = Object.keys(this.addressHandlers); + var handlers = this.addressHandlers; + handlerKeys.forEach(function (key) { + var foundMatch = false; + var regex = new RegExp(prepareRegExPattern(prepareAddress(name)), 'g'); + var test = regex.test(key); + if (test && key.length === regex.lastIndex) { + foundMatch = true; + } + if (!foundMatch) { + var reverseRegex = new RegExp(prepareRegExPattern(prepareAddress(key)), 'g'); + var reverseTest = reverseRegex.test(name); + if (reverseTest && name.length === reverseRegex.lastIndex) { + foundMatch = true; + } + } + if (foundMatch) { + handlers[key].forEach(function (handler) { + handler.callback(data, rinfo); + success = true; + }); + } + }); + return success; + } + }, { + key: "notify", + value: function notify() { + for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + if (args.length === 0) { + throw new Error('OSC EventHandler can not be called without any argument'); + } + if (args[0] instanceof Packet) { + return this.dispatch(args[0], args[1]); + } else if (args[0] instanceof Bundle || args[0] instanceof Message) { + return this.dispatch(new Packet(args[0]), args[1]); + } else if (!isString(args[0])) { + var packet = new Packet(); + packet.unpack(dataView(args[0])); + return this.dispatch(packet, args[1]); + } + var name = args[0]; + var data = null; + if (args.length > 1) { + data = args[1]; + } + var timestamp = null; + if (args.length > 2) { + if (isInt(args[2])) { + timestamp = args[2]; + } else if (args[2] instanceof Date) { + timestamp = args[2].getTime(); + } else { + throw new Error('OSC EventHandler timestamp has to be a number or Date'); + } + } + var rinfo = null; + if (args.length >= 3) { + rinfo = args[3]; + } + if (timestamp) { + var now = Date.now(); + if (now > timestamp) { + if (!this.options.discardLateMessages) { + return this.call(name, data, rinfo); + } + } + var that = this; + setTimeout(function () { + that.call(name, data, rinfo); + }, timestamp - now); + return true; + } + return this.call(name, data, rinfo); + } + }, { + key: "on", + value: function on(name, callback) { + if (!(isString(name) || isArray(name))) { + throw new Error('OSC EventHandler accepts only strings or arrays for address patterns'); + } + if (!isFunction(callback)) { + throw new Error('OSC EventHandler callback has to be a function'); + } + this.uuid += 1; + var handler = { + id: this.uuid, + callback: callback + }; + if (isString(name) && name in this.eventHandlers) { + this.eventHandlers[name].push(handler); + return this.uuid; + } + var address = prepareAddress(name); + if (!(address in this.addressHandlers)) { + this.addressHandlers[address] = []; + } + this.addressHandlers[address].push(handler); + return this.uuid; + } + }, { + key: "off", + value: function off(name, subscriptionId) { + if (!(isString(name) || isArray(name))) { + throw new Error('OSC EventHandler accepts only strings or arrays for address patterns'); + } + if (!isInt(subscriptionId)) { + throw new Error('OSC EventHandler subscription id has to be a number'); + } + var key; + var haystack; + if (isString(name) && name in this.eventHandlers) { + key = name; + haystack = this.eventHandlers; + } else { + key = prepareAddress(name); + haystack = this.addressHandlers; + } + if (key in haystack) { + return haystack[key].some(function (item, index) { + if (item.id === subscriptionId) { + haystack[key].splice(index, 1); + return true; + } + return false; + }); + } + return false; + } + }]); + return EventHandler; + }(); + + var dgram$1 = /* typeof window !== 'undefined' ? require('dgram') : */ undefined; + var STATUS$4 = { + IS_NOT_INITIALIZED: -1, + IS_CONNECTING: 0, + IS_OPEN: 1, + IS_CLOSING: 2, + IS_CLOSED: 3 + }; + var defaultOpenOptions = { + host: 'localhost', + port: 41234, + exclusive: false + }; + var defaultSendOptions = { + host: 'localhost', + port: 41235 + }; + var defaultOptions$4 = { + type: 'udp4', + open: defaultOpenOptions, + send: defaultSendOptions + }; + function mergeOptions$1(base, custom) { + return _objectSpread2(_objectSpread2(_objectSpread2(_objectSpread2({}, defaultOptions$4), base), custom), {}, { + open: _objectSpread2(_objectSpread2(_objectSpread2({}, defaultOptions$4.open), base.open), custom.open), + send: _objectSpread2(_objectSpread2(_objectSpread2({}, defaultOptions$4.send), base.send), custom.send) + }); + } + var DatagramPlugin = function () { + function DatagramPlugin() { + var _this = this; + var customOptions = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; + _classCallCheck(this, DatagramPlugin); + if (!dgram$1) { + throw new Error('DatagramPlugin can not be used in browser context'); + } + this.options = mergeOptions$1({}, customOptions); + this.socket = dgram$1.createSocket(this.options.type); + this.socketStatus = STATUS$4.IS_NOT_INITIALIZED; + this.socket.on('message', function (message, rinfo) { + _this.notify(message, rinfo); + }); + this.socket.on('error', function (error) { + _this.notify('error', error); + }); + this.notify = function () {}; + } + _createClass(DatagramPlugin, [{ + key: "registerNotify", + value: function registerNotify(fn) { + this.notify = fn; + } + }, { + key: "status", + value: function status() { + return this.socketStatus; + } + }, { + key: "open", + value: function open() { + var _this2 = this; + var customOptions = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; + var options = _objectSpread2(_objectSpread2({}, this.options.open), customOptions); + var port = options.port, + exclusive = options.exclusive; + this.socketStatus = STATUS$4.IS_CONNECTING; + this.socket.bind({ + address: options.host, + port: port, + exclusive: exclusive + }, function () { + _this2.socketStatus = STATUS$4.IS_OPEN; + _this2.notify('open'); + }); + } + }, { + key: "close", + value: function close() { + var _this3 = this; + this.socketStatus = STATUS$4.IS_CLOSING; + this.socket.close(function () { + _this3.socketStatus = STATUS$4.IS_CLOSED; + _this3.notify('close'); + }); + } + }, { + key: "send", + value: function send(binary) { + var customOptions = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; + var options = _objectSpread2(_objectSpread2({}, this.options.send), customOptions); + var port = options.port, + host = options.host; + this.socket.send(Buffer.from(binary), 0, binary.byteLength, port, host); + } + }]); + return DatagramPlugin; + }(); + + var dgram = /* typeof window !== 'undefined' ? require('dgram') : */ undefined; + var WebSocketServer$1 = /* typeof window !== 'undefined' ? require('isomorphic-ws').Server : */ undefined; + var STATUS$3 = { + IS_NOT_INITIALIZED: -1, + IS_CONNECTING: 0, + IS_OPEN: 1, + IS_CLOSING: 2, + IS_CLOSED: 3 + }; + var defaultOptions$3 = { + udpServer: { + host: 'localhost', + port: 41234, + exclusive: false + }, + udpClient: { + host: 'localhost', + port: 41235 + }, + wsServer: { + host: 'localhost', + port: 8080 + }, + receiver: 'ws' + }; + function mergeOptions(base, custom) { + return _objectSpread2(_objectSpread2(_objectSpread2(_objectSpread2({}, defaultOptions$3), base), custom), {}, { + udpServer: _objectSpread2(_objectSpread2(_objectSpread2({}, defaultOptions$3.udpServer), base.udpServer), custom.udpServer), + udpClient: _objectSpread2(_objectSpread2(_objectSpread2({}, defaultOptions$3.udpClient), base.udpClient), custom.udpClient), + wsServer: _objectSpread2(_objectSpread2(_objectSpread2({}, defaultOptions$3.wsServer), base.wsServer), custom.wsServer) + }); + } + var BridgePlugin = function () { + function BridgePlugin() { + var _this = this; + var customOptions = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; + _classCallCheck(this, BridgePlugin); + if (!dgram || !WebSocketServer$1) { + throw new Error('BridgePlugin can not be used in browser context'); + } + this.options = mergeOptions({}, customOptions); + this.websocket = null; + this.socket = dgram.createSocket('udp4'); + this.socketStatus = STATUS$3.IS_NOT_INITIALIZED; + this.socket.on('message', function (message) { + _this.send(message, { + receiver: 'ws' + }); + _this.notify(message.buffer); + }); + this.socket.on('error', function (error) { + _this.notify('error', error); + }); + this.notify = function () {}; + } + _createClass(BridgePlugin, [{ + key: "registerNotify", + value: function registerNotify(fn) { + this.notify = fn; + } + }, { + key: "status", + value: function status() { + return this.socketStatus; + } + }, { + key: "open", + value: function open() { + var _this2 = this; + var customOptions = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; + var options = mergeOptions(this.options, customOptions); + this.socketStatus = STATUS$3.IS_CONNECTING; + this.socket.bind({ + address: options.udpServer.host, + port: options.udpServer.port, + exclusive: options.udpServer.exclusive + }, function () { + var wsServerOptions = {}; + if (options.wsServer.server) wsServerOptions.server = options.wsServer.server;else wsServerOptions = options.wsServer; + _this2.websocket = new WebSocketServer$1(wsServerOptions); + _this2.websocket.binaryType = 'arraybuffer'; + _this2.websocket.on('listening', function () { + _this2.socketStatus = STATUS$3.IS_OPEN; + _this2.notify('open'); + }); + _this2.websocket.on('error', function (error) { + _this2.notify('error', error); + }); + _this2.websocket.on('connection', function (client) { + client.on('message', function (message, rinfo) { + _this2.send(message, { + receiver: 'udp' + }); + _this2.notify(new Uint8Array(message), rinfo); + }); + }); + }); + } + }, { + key: "close", + value: function close() { + var _this3 = this; + this.socketStatus = STATUS$3.IS_CLOSING; + this.socket.close(function () { + _this3.websocket.close(function () { + _this3.socketStatus = STATUS$3.IS_CLOSED; + _this3.notify('close'); + }); + }); + } + }, { + key: "send", + value: function send(binary) { + var customOptions = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; + var options = mergeOptions(this.options, customOptions); + var receiver = options.receiver; + if (receiver === 'udp') { + var data = binary instanceof Buffer ? binary : Buffer.from(binary); + this.socket.send(data, 0, data.byteLength, options.udpClient.port, options.udpClient.host); + } else if (receiver === 'ws') { + this.websocket.clients.forEach(function (client) { + client.send(binary, { + binary: true + }); + }); + } else { + throw new Error('BridgePlugin can not send message to unknown receiver'); + } + } + }]); + return BridgePlugin; + }(); + + var scope = typeof global === 'undefined' ? window : global; + var WebSocket = typeof __dirname === 'undefined' ? scope.WebSocket : require('isomorphic-ws'); + var STATUS$2 = { + IS_NOT_INITIALIZED: -1, + IS_CONNECTING: 0, + IS_OPEN: 1, + IS_CLOSING: 2, + IS_CLOSED: 3 + }; + var defaultOptions$2 = { + host: 'localhost', + port: 8080, + secure: false, + protocol: [] + }; + var WebsocketClientPlugin = function () { + function WebsocketClientPlugin(customOptions) { + _classCallCheck(this, WebsocketClientPlugin); + if (!WebSocket) { + throw new Error('WebsocketClientPlugin can\'t find a WebSocket class'); + } + this.options = _objectSpread2(_objectSpread2({}, defaultOptions$2), customOptions); + this.socket = null; + this.socketStatus = STATUS$2.IS_NOT_INITIALIZED; + this.notify = function () {}; + } + _createClass(WebsocketClientPlugin, [{ + key: "registerNotify", + value: function registerNotify(fn) { + this.notify = fn; + } + }, { + key: "status", + value: function status() { + return this.socketStatus; + } + }, { + key: "open", + value: function open() { + var _this = this; + var customOptions = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; + var options = _objectSpread2(_objectSpread2({}, this.options), customOptions); + var port = options.port, + host = options.host, + secure = options.secure, + protocol = options.protocol; + if (this.socket) { + this.close(); + } + var scheme = secure ? 'wss' : 'ws'; + var rinfo = { + address: host, + family: scheme, + port: port, + size: 0 + }; + this.socket = new WebSocket("".concat(scheme, "://").concat(host, ":").concat(port), protocol); + this.socket.binaryType = 'arraybuffer'; + this.socketStatus = STATUS$2.IS_CONNECTING; + this.socket.onopen = function () { + _this.socketStatus = STATUS$2.IS_OPEN; + _this.notify('open'); + }; + this.socket.onclose = function () { + _this.socketStatus = STATUS$2.IS_CLOSED; + _this.notify('close'); + }; + this.socket.onerror = function (error) { + _this.notify('error', error); + }; + this.socket.onmessage = function (message) { + _this.notify(message.data, rinfo); + }; + } + }, { + key: "close", + value: function close() { + this.socketStatus = STATUS$2.IS_CLOSING; + this.socket.close(); + } + }, { + key: "send", + value: function send(binary) { + this.socket.send(binary); + } + }]); + return WebsocketClientPlugin; + }(); + + var WebSocketServer = typeof __dirname !== 'undefined' ? require('isomorphic-ws').Server : undefined; + var STATUS$1 = { + IS_NOT_INITIALIZED: -1, + IS_CONNECTING: 0, + IS_OPEN: 1, + IS_CLOSING: 2, + IS_CLOSED: 3 + }; + var defaultOptions$1 = { + host: 'localhost', + port: 8080 + }; + var WebsocketServerPlugin = function () { + function WebsocketServerPlugin(customOptions) { + _classCallCheck(this, WebsocketServerPlugin); + if (!WebSocketServer) { + throw new Error('WebsocketServerPlugin can not be used in browser context'); + } + this.options = _objectSpread2(_objectSpread2({}, defaultOptions$1), customOptions); + this.socket = null; + this.socketStatus = STATUS$1.IS_NOT_INITIALIZED; + this.notify = function () {}; + } + _createClass(WebsocketServerPlugin, [{ + key: "registerNotify", + value: function registerNotify(fn) { + this.notify = fn; + } + }, { + key: "status", + value: function status() { + return this.socketStatus; + } + }, { + key: "open", + value: function open() { + var _this = this; + var customOptions = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; + var options = _objectSpread2(_objectSpread2({}, this.options), customOptions); + var port = options.port, + host = options.host; + var rinfo = { + address: host, + family: 'wsserver', + port: port, + size: 0 + }; + if (this.socket) { + this.close(); + } + if (options.server) { + this.socket = new WebSocketServer({ + server: options.server + }); + } else { + this.socket = new WebSocketServer({ + host: host, + port: port + }); + } + this.socket.binaryType = 'arraybuffer'; + this.socketStatus = STATUS$1.IS_CONNECTING; + this.socket.on('listening', function () { + _this.socketStatus = STATUS$1.IS_OPEN; + _this.notify('open'); + }); + this.socket.on('error', function (error) { + _this.notify('error', error); + }); + this.socket.on('connection', function (client) { + client.on('message', function (message) { + _this.notify(new Uint8Array(message), rinfo); + }); + }); + } + }, { + key: "close", + value: function close() { + var _this2 = this; + this.socketStatus = STATUS$1.IS_CLOSING; + this.socket.close(function () { + _this2.socketStatus = STATUS$1.IS_CLOSED; + _this2.notify('close'); + }); + } + }, { + key: "send", + value: function send(binary) { + this.socket.clients.forEach(function (client) { + client.send(binary, { + binary: true + }); + }); + } + }]); + return WebsocketServerPlugin; + }(); + + var defaultOptions = { + discardLateMessages: false, + plugin: new WebsocketClientPlugin() + }; + var STATUS = { + IS_NOT_INITIALIZED: -1, + IS_CONNECTING: 0, + IS_OPEN: 1, + IS_CLOSING: 2, + IS_CLOSED: 3 + }; + var OSC = function () { + function OSC(options) { + _classCallCheck(this, OSC); + if (options && !isObject(options)) { + throw new Error('OSC options argument has to be an object.'); + } + this.options = _objectSpread2(_objectSpread2({}, defaultOptions), options); + this.eventHandler = new EventHandler({ + discardLateMessages: this.options.discardLateMessages + }); + var eventHandler = this.eventHandler; + if (this.options.plugin && this.options.plugin.registerNotify) { + this.options.plugin.registerNotify(function () { + return eventHandler.notify.apply(eventHandler, arguments); + }); + } + } + _createClass(OSC, [{ + key: "on", + value: function on(eventName, callback) { + if (!(isString(eventName) && isFunction(callback))) { + throw new Error('OSC on() needs event- or address string and callback function'); + } + return this.eventHandler.on(eventName, callback); + } + }, { + key: "off", + value: function off(eventName, subscriptionId) { + if (!(isString(eventName) && isInt(subscriptionId))) { + throw new Error('OSC off() needs string and number (subscriptionId) to unsubscribe'); + } + return this.eventHandler.off(eventName, subscriptionId); + } + }, { + key: "open", + value: function open(options) { + if (options && !isObject(options)) { + throw new Error('OSC open() options argument needs to be an object'); + } + if (!(this.options.plugin && isFunction(this.options.plugin.open))) { + throw new Error('OSC Plugin API #open is not implemented!'); + } + return this.options.plugin.open(options); + } + }, { + key: "status", + value: function status() { + if (!(this.options.plugin && isFunction(this.options.plugin.status))) { + throw new Error('OSC Plugin API #status is not implemented!'); + } + return this.options.plugin.status(); + } + }, { + key: "close", + value: function close() { + if (!(this.options.plugin && isFunction(this.options.plugin.close))) { + throw new Error('OSC Plugin API #close is not implemented!'); + } + return this.options.plugin.close(); + } + }, { + key: "send", + value: function send(packet, options) { + if (!(this.options.plugin && isFunction(this.options.plugin.send))) { + throw new Error('OSC Plugin API #send is not implemented!'); + } + if (!(packet instanceof TypedMessage || packet instanceof Message || packet instanceof Bundle || packet instanceof Packet)) { + throw new Error('OSC send() needs Messages, Bundles or Packets'); + } + if (options && !isObject(options)) { + throw new Error('OSC send() options argument has to be an object'); + } + return this.options.plugin.send(packet.pack(), options); + } + }]); + return OSC; + }(); + OSC.STATUS = STATUS; + OSC.Packet = Packet; + OSC.Bundle = Bundle; + OSC.Message = Message; + OSC.TypedMessage = TypedMessage; + OSC.DatagramPlugin = DatagramPlugin; + OSC.WebsocketClientPlugin = WebsocketClientPlugin; + OSC.WebsocketServerPlugin = WebsocketServerPlugin; + OSC.BridgePlugin = BridgePlugin; + + return OSC; + +})); diff --git a/packages/osc/osc.mjs b/packages/osc/osc.mjs index 2965fa305..9f4a3610a 100644 --- a/packages/osc/osc.mjs +++ b/packages/osc/osc.mjs @@ -1,4 +1,4 @@ -import OSC from './osc-js/osc.js'; +import OSC from './osc.js'; import { Pattern } from '@strudel.cycles/core/strudel.mjs'; const comm = new OSC(); diff --git a/packages/osc/package-lock.json b/packages/osc/package-lock.json index 33516920e..be2ffb4a0 100644 --- a/packages/osc/package-lock.json +++ b/packages/osc/package-lock.json @@ -1,76 +1,76 @@ { - "name": "@strudel.cycles/osc", - "version": "0.0.1", - "lockfileVersion": 2, - "requires": true, - "packages": { - "": { - "name": "@strudel.cycles/osc", - "version": "0.0.1", - "license": "GPL-3.0-or-later", - "dependencies": { - "osc-js": "^2.3.0" - } - }, - "node_modules/isomorphic-ws": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/isomorphic-ws/-/isomorphic-ws-4.0.1.tgz", - "integrity": "sha512-BhBvN2MBpWTaSHdWRb/bwdZJ1WaehQ2L1KngkCkfLUGF0mAWAT1sQUQacEmQ0jXkFw/czDXPNQSL5u2/Krsz1w==", - "peerDependencies": { - "ws": "*" - } - }, - "node_modules/osc-js": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/osc-js/-/osc-js-2.3.0.tgz", - "integrity": "sha512-P2Oy9tf8Z9lQw8JZeR62HNqbKdxj7Kqbsag+ImiJvyxPDReGMVt5LtZbMh/7Ve/wbYEGODkQdFAaLHFVkIlHPw==", - "dependencies": { - "isomorphic-ws": "4.0.1", - "ws": "8.5.0" - } - }, - "node_modules/ws": { - "version": "8.5.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.5.0.tgz", - "integrity": "sha512-BWX0SWVgLPzYwF8lTzEy1egjhS4S4OEAHfsO8o65WOVsrnSRGaSiUaa9e0ggGlkMTtBlmOpEXiie9RUcBO86qg==", - "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": "^5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } - } - }, - "dependencies": { - "isomorphic-ws": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/isomorphic-ws/-/isomorphic-ws-4.0.1.tgz", - "integrity": "sha512-BhBvN2MBpWTaSHdWRb/bwdZJ1WaehQ2L1KngkCkfLUGF0mAWAT1sQUQacEmQ0jXkFw/czDXPNQSL5u2/Krsz1w==", - "requires": {} - }, - "osc-js": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/osc-js/-/osc-js-2.3.0.tgz", - "integrity": "sha512-P2Oy9tf8Z9lQw8JZeR62HNqbKdxj7Kqbsag+ImiJvyxPDReGMVt5LtZbMh/7Ve/wbYEGODkQdFAaLHFVkIlHPw==", - "requires": { - "isomorphic-ws": "4.0.1", - "ws": "8.5.0" - } - }, - "ws": { - "version": "8.5.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.5.0.tgz", - "integrity": "sha512-BWX0SWVgLPzYwF8lTzEy1egjhS4S4OEAHfsO8o65WOVsrnSRGaSiUaa9e0ggGlkMTtBlmOpEXiie9RUcBO86qg==", - "requires": {} - } - } + "name": "@strudel.cycles/osc", + "version": "0.0.1", + "lockfileVersion": 2, + "requires": true, + "packages": { + "": { + "name": "@strudel.cycles/osc", + "version": "0.0.1", + "license": "GPL-3.0-or-later", + "dependencies": { + "osc-js": "^2.3.0" + } + }, + "node_modules/isomorphic-ws": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/isomorphic-ws/-/isomorphic-ws-4.0.1.tgz", + "integrity": "sha512-BhBvN2MBpWTaSHdWRb/bwdZJ1WaehQ2L1KngkCkfLUGF0mAWAT1sQUQacEmQ0jXkFw/czDXPNQSL5u2/Krsz1w==", + "peerDependencies": { + "ws": "*" + } + }, + "node_modules/osc-js": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/osc-js/-/osc-js-2.3.0.tgz", + "integrity": "sha512-P2Oy9tf8Z9lQw8JZeR62HNqbKdxj7Kqbsag+ImiJvyxPDReGMVt5LtZbMh/7Ve/wbYEGODkQdFAaLHFVkIlHPw==", + "dependencies": { + "isomorphic-ws": "4.0.1", + "ws": "8.5.0" + } + }, + "node_modules/ws": { + "version": "8.5.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.5.0.tgz", + "integrity": "sha512-BWX0SWVgLPzYwF8lTzEy1egjhS4S4OEAHfsO8o65WOVsrnSRGaSiUaa9e0ggGlkMTtBlmOpEXiie9RUcBO86qg==", + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + } + }, + "dependencies": { + "isomorphic-ws": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/isomorphic-ws/-/isomorphic-ws-4.0.1.tgz", + "integrity": "sha512-BhBvN2MBpWTaSHdWRb/bwdZJ1WaehQ2L1KngkCkfLUGF0mAWAT1sQUQacEmQ0jXkFw/czDXPNQSL5u2/Krsz1w==", + "requires": {} + }, + "osc-js": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/osc-js/-/osc-js-2.3.0.tgz", + "integrity": "sha512-P2Oy9tf8Z9lQw8JZeR62HNqbKdxj7Kqbsag+ImiJvyxPDReGMVt5LtZbMh/7Ve/wbYEGODkQdFAaLHFVkIlHPw==", + "requires": { + "isomorphic-ws": "4.0.1", + "ws": "8.5.0" + } + }, + "ws": { + "version": "8.5.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.5.0.tgz", + "integrity": "sha512-BWX0SWVgLPzYwF8lTzEy1egjhS4S4OEAHfsO8o65WOVsrnSRGaSiUaa9e0ggGlkMTtBlmOpEXiie9RUcBO86qg==", + "requires": {} + } + } } From f9b043dc7ed54405ba79c2ef3ad3d1371d9c3a02 Mon Sep 17 00:00:00 2001 From: Felix Roos Date: Tue, 12 Apr 2022 23:54:13 +0200 Subject: [PATCH 57/78] remove osc-js folder + remove umd stuff --- packages/osc/osc-js/LICENSE | 22 - packages/osc/osc-js/README.md | 5 - packages/osc/osc-js/osc.js | 1747 --------------------------------- packages/osc/osc.js | 9 +- 4 files changed, 1 insertion(+), 1782 deletions(-) delete mode 100644 packages/osc/osc-js/LICENSE delete mode 100644 packages/osc/osc-js/README.md delete mode 100644 packages/osc/osc-js/osc.js diff --git a/packages/osc/osc-js/LICENSE b/packages/osc/osc-js/LICENSE deleted file mode 100644 index 5a99e00b3..000000000 --- a/packages/osc/osc-js/LICENSE +++ /dev/null @@ -1,22 +0,0 @@ -(The MIT License) - -Copyright (c) 2016 adzialocha (Andreas Dzialocha) - -Permission is hereby granted, free of charge, to any person obtaining -a copy of this software and associated documentation files (the -'Software'), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to -permit persons to whom the Software is furnished to do so, subject to -the following conditions: - -The above copyright notice and this permission notice shall be -included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/packages/osc/osc-js/README.md b/packages/osc/osc-js/README.md deleted file mode 100644 index 323d870c7..000000000 --- a/packages/osc/osc-js/README.md +++ /dev/null @@ -1,5 +0,0 @@ -Adapted from https://github.com/adzialocha/osc-js/ , with small fix. - -We'll return to using upstream version when this bug is resolved: - https://github.com/adzialocha/osc-js/issues/50 - diff --git a/packages/osc/osc-js/osc.js b/packages/osc/osc-js/osc.js deleted file mode 100644 index 976f250ca..000000000 --- a/packages/osc/osc-js/osc.js +++ /dev/null @@ -1,1747 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.OSC = factory()); -})(this, (function () { 'use strict'; - - function ownKeys(object, enumerableOnly) { - var keys = Object.keys(object); - - if (Object.getOwnPropertySymbols) { - var symbols = Object.getOwnPropertySymbols(object); - enumerableOnly && (symbols = symbols.filter(function (sym) { - return Object.getOwnPropertyDescriptor(object, sym).enumerable; - })), keys.push.apply(keys, symbols); - } - - return keys; - } - - function _objectSpread2(target) { - for (var i = 1; i < arguments.length; i++) { - var source = null != arguments[i] ? arguments[i] : {}; - i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { - _defineProperty(target, key, source[key]); - }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { - Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); - }); - } - - return target; - } - - function _classCallCheck(instance, Constructor) { - if (!(instance instanceof Constructor)) { - throw new TypeError("Cannot call a class as a function"); - } - } - - function _defineProperties(target, props) { - for (var i = 0; i < props.length; i++) { - var descriptor = props[i]; - descriptor.enumerable = descriptor.enumerable || false; - descriptor.configurable = true; - if ("value" in descriptor) descriptor.writable = true; - Object.defineProperty(target, descriptor.key, descriptor); - } - } - - function _createClass(Constructor, protoProps, staticProps) { - if (protoProps) _defineProperties(Constructor.prototype, protoProps); - if (staticProps) _defineProperties(Constructor, staticProps); - Object.defineProperty(Constructor, "prototype", { - writable: false - }); - return Constructor; - } - - function _defineProperty(obj, key, value) { - if (key in obj) { - Object.defineProperty(obj, key, { - value: value, - enumerable: true, - configurable: true, - writable: true - }); - } else { - obj[key] = value; - } - - return obj; - } - - function _inherits(subClass, superClass) { - if (typeof superClass !== "function" && superClass !== null) { - throw new TypeError("Super expression must either be null or a function"); - } - - subClass.prototype = Object.create(superClass && superClass.prototype, { - constructor: { - value: subClass, - writable: true, - configurable: true - } - }); - Object.defineProperty(subClass, "prototype", { - writable: false - }); - if (superClass) _setPrototypeOf(subClass, superClass); - } - - function _getPrototypeOf(o) { - _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { - return o.__proto__ || Object.getPrototypeOf(o); - }; - return _getPrototypeOf(o); - } - - function _setPrototypeOf(o, p) { - _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { - o.__proto__ = p; - return o; - }; - - return _setPrototypeOf(o, p); - } - - function _isNativeReflectConstruct() { - if (typeof Reflect === "undefined" || !Reflect.construct) return false; - if (Reflect.construct.sham) return false; - if (typeof Proxy === "function") return true; - - try { - Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); - return true; - } catch (e) { - return false; - } - } - - function _assertThisInitialized(self) { - if (self === void 0) { - throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); - } - - return self; - } - - function _possibleConstructorReturn(self, call) { - if (call && (typeof call === "object" || typeof call === "function")) { - return call; - } else if (call !== void 0) { - throw new TypeError("Derived constructors may only return object or undefined"); - } - - return _assertThisInitialized(self); - } - - function _createSuper(Derived) { - var hasNativeReflectConstruct = _isNativeReflectConstruct(); - - return function _createSuperInternal() { - var Super = _getPrototypeOf(Derived), - result; - - if (hasNativeReflectConstruct) { - var NewTarget = _getPrototypeOf(this).constructor; - - result = Reflect.construct(Super, arguments, NewTarget); - } else { - result = Super.apply(this, arguments); - } - - return _possibleConstructorReturn(this, result); - }; - } - - function _superPropBase(object, property) { - while (!Object.prototype.hasOwnProperty.call(object, property)) { - object = _getPrototypeOf(object); - if (object === null) break; - } - - return object; - } - - function _get() { - if (typeof Reflect !== "undefined" && Reflect.get) { - _get = Reflect.get; - } else { - _get = function _get(target, property, receiver) { - var base = _superPropBase(target, property); - - if (!base) return; - var desc = Object.getOwnPropertyDescriptor(base, property); - - if (desc.get) { - return desc.get.call(arguments.length < 3 ? target : receiver); - } - - return desc.value; - }; - } - - return _get.apply(this, arguments); - } - - function isInt(n) { - return Number(n) === n && n % 1 === 0; - } - function isFloat(n) { - return Number(n) === n && n % 1 !== 0; - } - function isNumber(n) { - return Number(n) === n; - } - function isString(n) { - return typeof n === 'string'; - } - function isBoolean(n) { - return typeof n === 'boolean'; - } - function isInfinity(n) { - return n === Infinity; - } - function isArray(n) { - return Object.prototype.toString.call(n) === '[object Array]'; - } - function isObject(n) { - return Object.prototype.toString.call(n) === '[object Object]'; - } - function isFunction(n) { - return typeof n === 'function'; - } - function isBlob(n) { - return n instanceof Uint8Array; - } - function isDate(n) { - return n instanceof Date; - } - function isUndefined(n) { - return typeof n === 'undefined'; - } - function isNull(n) { - return n === null; - } - function pad(n) { - return n + 3 & ~0x03; - } - function hasProperty(name) { - return Object.prototype.hasOwnProperty.call(typeof global !== 'undefined' ? global : window, - name); - } - function dataView(obj) { - if (obj.buffer) { - return new DataView(obj.buffer); - } else if (obj instanceof ArrayBuffer) { - return new DataView(obj); - } - return new DataView(new Uint8Array(obj)); - } - - function typeTag(item) { - if (isInt(item)) { - return 'i'; - } else if (isFloat(item)) { - return 'f'; - } else if (isString(item)) { - return 's'; - } else if (isBlob(item)) { - return 'b'; - } else if (isBoolean(item)) { - return item ? 'T' : 'F'; - } else if (isNull(item)) { - return 'N'; - } else if (isInfinity(item)) { - return 'I'; - } - throw new Error('OSC typeTag() found unknown value type'); - } - function prepareAddress(obj) { - var address = ''; - if (isArray(obj)) { - return "/".concat(obj.join('/')); - } else if (isString(obj)) { - address = obj; - if (address.length > 1 && address[address.length - 1] === '/') { - address = address.slice(0, address.length - 1); - } - if (address.length > 1 && address[0] !== '/') { - address = "/".concat(address); - } - return address; - } - throw new Error('OSC prepareAddress() needs addresses of type array or string'); - } - function prepareRegExPattern(str) { - var pattern; - if (!isString(str)) { - throw new Error('OSC prepareRegExPattern() needs strings'); - } - pattern = str.replace(/\./g, '\\.'); - pattern = pattern.replace(/\(/g, '\\('); - pattern = pattern.replace(/\)/g, '\\)'); - pattern = pattern.replace(/\{/g, '('); - pattern = pattern.replace(/\}/g, ')'); - pattern = pattern.replace(/,/g, '|'); - pattern = pattern.replace(/\[!/g, '[^'); - pattern = pattern.replace(/\?/g, '.'); - pattern = pattern.replace(/\*/g, '.*'); - return pattern; - } - var EncodeHelper = function () { - function EncodeHelper() { - _classCallCheck(this, EncodeHelper); - this.data = []; - this.byteLength = 0; - } - _createClass(EncodeHelper, [{ - key: "add", - value: function add(item) { - if (isBoolean(item) || isInfinity(item) || isNull(item)) { - return this; - } - var buffer = item.pack(); - this.byteLength += buffer.byteLength; - this.data.push(buffer); - return this; - } - }, { - key: "merge", - value: function merge() { - var result = new Uint8Array(this.byteLength); - var offset = 0; - this.data.forEach(function (data) { - result.set(data, offset); - offset += data.byteLength; - }); - return result; - } - }]); - return EncodeHelper; - }(); - - var Atomic = function () { - function Atomic(value) { - _classCallCheck(this, Atomic); - this.value = value; - this.offset = 0; - } - _createClass(Atomic, [{ - key: "pack", - value: function pack(method, byteLength) { - if (!(method && byteLength)) { - throw new Error('OSC Atomic cant\'t be packed without given method or byteLength'); - } - var data = new Uint8Array(byteLength); - var dataView = new DataView(data.buffer); - if (isUndefined(this.value)) { - throw new Error('OSC Atomic cant\'t be encoded with empty value'); - } - dataView[method](this.offset, this.value, false); - return data; - } - }, { - key: "unpack", - value: function unpack(dataView, method, byteLength) { - var initialOffset = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0; - if (!(dataView && method && byteLength)) { - throw new Error('OSC Atomic cant\'t be unpacked without given dataView, method or byteLength'); - } - if (!(dataView instanceof DataView)) { - throw new Error('OSC Atomic expects an instance of type DataView'); - } - this.value = dataView[method](initialOffset, false); - this.offset = initialOffset + byteLength; - return this.offset; - } - }]); - return Atomic; - }(); - - var AtomicInt32 = function (_Atomic) { - _inherits(AtomicInt32, _Atomic); - var _super = _createSuper(AtomicInt32); - function AtomicInt32(value) { - _classCallCheck(this, AtomicInt32); - if (value && !isInt(value)) { - throw new Error('OSC AtomicInt32 constructor expects value of type number'); - } - return _super.call(this, value); - } - _createClass(AtomicInt32, [{ - key: "pack", - value: function pack() { - return _get(_getPrototypeOf(AtomicInt32.prototype), "pack", this).call(this, 'setInt32', 4); - } - }, { - key: "unpack", - value: function unpack(dataView) { - var initialOffset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0; - return _get(_getPrototypeOf(AtomicInt32.prototype), "unpack", this).call(this, dataView, 'getInt32', 4, initialOffset); - } - }]); - return AtomicInt32; - }(Atomic); - - var STR_SLICE_SIZE = 65537; - var STR_ENCODING = 'utf-8'; - function charCodesToString(charCodes) { - if (hasProperty('Buffer')) { - return Buffer.from(charCodes).toString(STR_ENCODING); - } else if (hasProperty('TextDecoder')) { - return new TextDecoder(STR_ENCODING) - .decode(new Int8Array(charCodes)); - } - var str = ''; - for (var i = 0; i < charCodes.length; i += STR_SLICE_SIZE) { - str += String.fromCharCode.apply(null, charCodes.slice(i, i + STR_SLICE_SIZE)); - } - return str; - } - var AtomicString = function (_Atomic) { - _inherits(AtomicString, _Atomic); - var _super = _createSuper(AtomicString); - function AtomicString(value) { - _classCallCheck(this, AtomicString); - if (value && !isString(value)) { - throw new Error('OSC AtomicString constructor expects value of type string'); - } - return _super.call(this, value); - } - _createClass(AtomicString, [{ - key: "pack", - value: function pack() { - if (isUndefined(this.value)) { - throw new Error('OSC AtomicString can not be encoded with empty value'); - } - var terminated = "".concat(this.value, "\0"); - var byteLength = pad(terminated.length); - var buffer = new Uint8Array(byteLength); - for (var i = 0; i < terminated.length; i += 1) { - buffer[i] = terminated.charCodeAt(i); - } - return buffer; - } - }, { - key: "unpack", - value: function unpack(dataView) { - var initialOffset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0; - if (!(dataView instanceof DataView)) { - throw new Error('OSC AtomicString expects an instance of type DataView'); - } - var offset = initialOffset; - var charcode; - var charCodes = []; - for (; offset < dataView.byteLength; offset += 1) { - charcode = dataView.getUint8(offset); - if (charcode !== 0) { - charCodes.push(charcode); - } else { - offset += 1; - break; - } - } - if (offset === dataView.length) { - throw new Error('OSC AtomicString found a malformed OSC string'); - } - this.offset = pad(offset); - this.value = charCodesToString(charCodes); - return this.offset; - } - }]); - return AtomicString; - }(Atomic); - - var SECONDS_70_YEARS = 2208988800; - var TWO_POWER_32 = 4294967296; - var Timetag = function () { - function Timetag() { - var seconds = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0; - var fractions = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0; - _classCallCheck(this, Timetag); - if (!(isInt(seconds) && isInt(fractions))) { - throw new Error('OSC Timetag constructor expects values of type integer number'); - } - this.seconds = seconds; - this.fractions = fractions; - } - _createClass(Timetag, [{ - key: "timestamp", - value: function timestamp(milliseconds) { - var seconds; - if (typeof milliseconds === 'number') { - seconds = milliseconds / 1000; - var rounded = Math.floor(seconds); - this.seconds = rounded + SECONDS_70_YEARS; - this.fractions = Math.round(TWO_POWER_32 * (seconds - rounded)); - return milliseconds; - } - seconds = this.seconds - SECONDS_70_YEARS; - return (seconds + Math.round(this.fractions / TWO_POWER_32)) * 1000; - } - }]); - return Timetag; - }(); - var AtomicTimetag = function (_Atomic) { - _inherits(AtomicTimetag, _Atomic); - var _super = _createSuper(AtomicTimetag); - function AtomicTimetag() { - var value = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : Date.now(); - _classCallCheck(this, AtomicTimetag); - var timetag = new Timetag(); - if (value instanceof Timetag) { - timetag = value; - } else if (isInt(value)) { - timetag.timestamp(value); - } else if (isDate(value)) { - timetag.timestamp(value.getTime()); - } - return _super.call(this, timetag); - } - _createClass(AtomicTimetag, [{ - key: "pack", - value: function pack() { - if (isUndefined(this.value)) { - throw new Error('OSC AtomicTimetag can not be encoded with empty value'); - } - var _this$value = this.value, - seconds = _this$value.seconds, - fractions = _this$value.fractions; - var data = new Uint8Array(8); - var dataView = new DataView(data.buffer); - dataView.setInt32(0, seconds, false); - dataView.setInt32(4, fractions, false); - return data; - } - }, { - key: "unpack", - value: function unpack(dataView) { - var initialOffset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0; - if (!(dataView instanceof DataView)) { - throw new Error('OSC AtomicTimetag expects an instance of type DataView'); - } - var seconds = dataView.getUint32(initialOffset, false); - var fractions = dataView.getUint32(initialOffset + 4, false); - this.value = new Timetag(seconds, fractions); - this.offset = initialOffset + 8; - return this.offset; - } - }]); - return AtomicTimetag; - }(Atomic); - - var AtomicBlob = function (_Atomic) { - _inherits(AtomicBlob, _Atomic); - var _super = _createSuper(AtomicBlob); - function AtomicBlob(value) { - _classCallCheck(this, AtomicBlob); - if (value && !isBlob(value)) { - throw new Error('OSC AtomicBlob constructor expects value of type Uint8Array'); - } - return _super.call(this, value); - } - _createClass(AtomicBlob, [{ - key: "pack", - value: function pack() { - if (isUndefined(this.value)) { - throw new Error('OSC AtomicBlob can not be encoded with empty value'); - } - var byteLength = pad(this.value.byteLength); - var data = new Uint8Array(byteLength + 4); - var dataView = new DataView(data.buffer); - dataView.setInt32(0, this.value.byteLength, false); - data.set(this.value, 4); - return data; - } - }, { - key: "unpack", - value: function unpack(dataView) { - var initialOffset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0; - if (!(dataView instanceof DataView)) { - throw new Error('OSC AtomicBlob expects an instance of type DataView'); - } - var byteLength = dataView.getInt32(initialOffset, false); - this.value = new Uint8Array(dataView.buffer, initialOffset + 4, byteLength); - this.offset = pad(initialOffset + 4 + byteLength); - return this.offset; - } - }]); - return AtomicBlob; - }(Atomic); - - var AtomicFloat32 = function (_Atomic) { - _inherits(AtomicFloat32, _Atomic); - var _super = _createSuper(AtomicFloat32); - function AtomicFloat32(value) { - _classCallCheck(this, AtomicFloat32); - if (value && !isNumber(value)) { - throw new Error('OSC AtomicFloat32 constructor expects value of type float'); - } - return _super.call(this, value); - } - _createClass(AtomicFloat32, [{ - key: "pack", - value: function pack() { - return _get(_getPrototypeOf(AtomicFloat32.prototype), "pack", this).call(this, 'setFloat32', 4); - } - }, { - key: "unpack", - value: function unpack(dataView) { - var initialOffset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0; - return _get(_getPrototypeOf(AtomicFloat32.prototype), "unpack", this).call(this, dataView, 'getFloat32', 4, initialOffset); - } - }]); - return AtomicFloat32; - }(Atomic); - - var AtomicFloat64 = function (_Atomic) { - _inherits(AtomicFloat64, _Atomic); - var _super = _createSuper(AtomicFloat64); - function AtomicFloat64(value) { - _classCallCheck(this, AtomicFloat64); - if (value && !isNumber(value)) { - throw new Error('OSC AtomicFloat64 constructor expects value of type float'); - } - return _super.call(this, value); - } - _createClass(AtomicFloat64, [{ - key: "pack", - value: function pack() { - return _get(_getPrototypeOf(AtomicFloat64.prototype), "pack", this).call(this, 'setFloat64', 8); - } - }, { - key: "unpack", - value: function unpack(dataView) { - var initialOffset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0; - return _get(_getPrototypeOf(AtomicFloat64.prototype), "unpack", this).call(this, dataView, 'getFloat64', 8, initialOffset); - } - }]); - return AtomicFloat64; - }(Atomic); - - var MAX_INT64 = BigInt('9223372036854775807'); - var MIN_INT64 = BigInt('-9223372036854775808'); - var AtomicInt64 = function (_Atomic) { - _inherits(AtomicInt64, _Atomic); - var _super = _createSuper(AtomicInt64); - function AtomicInt64(value) { - _classCallCheck(this, AtomicInt64); - if (value && typeof value !== 'bigint') { - throw new Error('OSC AtomicInt64 constructor expects value of type BigInt'); - } - if (value && (value < MIN_INT64 || value > MAX_INT64)) { - throw new Error('OSC AtomicInt64 value is out of bounds'); - } - var tmp; - if (value) { - tmp = BigInt.asIntN(64, value); - } - return _super.call(this, tmp); - } - _createClass(AtomicInt64, [{ - key: "pack", - value: function pack() { - return _get(_getPrototypeOf(AtomicInt64.prototype), "pack", this).call(this, 'setBigInt64', 8); - } - }, { - key: "unpack", - value: function unpack(dataView) { - var initialOffset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0; - return _get(_getPrototypeOf(AtomicInt64.prototype), "unpack", this).call(this, dataView, 'getBigInt64', 8, initialOffset); - } - }]); - return AtomicInt64; - }(Atomic); - - var MAX_UINT64 = BigInt('18446744073709551615'); - var AtomicUInt64 = function (_Atomic) { - _inherits(AtomicUInt64, _Atomic); - var _super = _createSuper(AtomicUInt64); - function AtomicUInt64(value) { - _classCallCheck(this, AtomicUInt64); - if (value && typeof value !== 'bigint') { - throw new Error('OSC AtomicUInt64 constructor expects value of type BigInt'); - } - if (value && (value < 0 || value > MAX_UINT64)) { - throw new Error('OSC AtomicUInt64 value is out of bounds'); - } - var tmp; - if (value) { - tmp = BigInt.asUintN(64, value); - } - return _super.call(this, tmp); - } - _createClass(AtomicUInt64, [{ - key: "pack", - value: function pack() { - return _get(_getPrototypeOf(AtomicUInt64.prototype), "pack", this).call(this, 'setBigUint64', 8); - } - }, { - key: "unpack", - value: function unpack(dataView) { - var initialOffset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0; - return _get(_getPrototypeOf(AtomicUInt64.prototype), "unpack", this).call(this, dataView, 'getBigUint64', 8, initialOffset); - } - }]); - return AtomicUInt64; - }(Atomic); - - var VALUE_TRUE = true; - var VALUE_FALSE = false; - var VALUE_NONE = null; - var VALUE_INFINITY = Infinity; - - var TypedMessage = function () { - function TypedMessage(address, args) { - var _this = this; - _classCallCheck(this, TypedMessage); - this.offset = 0; - this.address = ''; - this.types = ''; - this.args = []; - if (!isUndefined(address)) { - if (!(isString(address) || isArray(address))) { - throw new Error('OSC Message constructor first argument (address) must be a string or array'); - } - this.address = prepareAddress(address); - } - if (!isUndefined(args)) { - if (!isArray(args)) { - throw new Error('OSC Message constructor second argument (args) must be an array'); - } - args.forEach(function (item) { - return _this.add(item.type, item.value); - }); - } - } - _createClass(TypedMessage, [{ - key: "add", - value: function add(type, item) { - if (isUndefined(type)) { - throw new Error('OSC Message needs a valid OSC Atomic Data Type'); - } - if (type === 'N') { - this.args.push(VALUE_NONE); - } else if (type === 'T') { - this.args.push(VALUE_TRUE); - } else if (type === 'F') { - this.args.push(VALUE_FALSE); - } else if (type === 'I') { - this.args.push(VALUE_INFINITY); - } else { - this.args.push(item); - } - this.types += type; - } - }, { - key: "pack", - value: function pack() { - var _this2 = this; - if (this.address.length === 0 || this.address[0] !== '/') { - throw new Error('OSC Message has an invalid address'); - } - var encoder = new EncodeHelper(); - encoder.add(new AtomicString(this.address)); - encoder.add(new AtomicString(",".concat(this.types))); - if (this.args.length > 0) { - var argument; - if (this.args.length > this.types.length) { - throw new Error('OSC Message argument and type tag mismatch'); - } - this.args.forEach(function (value, index) { - var type = _this2.types[index]; - if (type === 'i') { - argument = new AtomicInt32(value); - } else if (type === 'h') { - argument = new AtomicInt64(value); - } else if (type === 't') { - argument = new AtomicUInt64(value); - } else if (type === 'f') { - argument = new AtomicFloat32(value); - } else if (type === 'd') { - argument = new AtomicFloat64(value); - } else if (type === 's') { - argument = new AtomicString(value); - } else if (type === 'b') { - argument = new AtomicBlob(value); - } else if (type === 'T') { - argument = VALUE_TRUE; - } else if (type === 'F') { - argument = VALUE_FALSE; - } else if (type === 'N') { - argument = VALUE_NONE; - } else if (type === 'I') { - argument = VALUE_INFINITY; - } else { - throw new Error('OSC Message found unknown argument type'); - } - encoder.add(argument); - }); - } - return encoder.merge(); - } - }, { - key: "unpack", - value: function unpack(dataView) { - var initialOffset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0; - if (!(dataView instanceof DataView)) { - throw new Error('OSC Message expects an instance of type DataView.'); - } - var address = new AtomicString(); - address.unpack(dataView, initialOffset); - var types = new AtomicString(); - types.unpack(dataView, address.offset); - if (address.value.length === 0 || address.value[0] !== '/') { - throw new Error('OSC Message found malformed or missing address string'); - } - if (types.value.length === 0 && types.value[0] !== ',') { - throw new Error('OSC Message found malformed or missing type string'); - } - var offset = types.offset; - var next; - var type; - var args = []; - for (var i = 1; i < types.value.length; i += 1) { - type = types.value[i]; - next = null; - if (type === 'i') { - next = new AtomicInt32(); - } else if (type === 'h') { - next = new AtomicInt64(); - } else if (type === 't') { - next = new AtomicUInt64(); - } else if (type === 'f') { - next = new AtomicFloat32(); - } else if (type === 'd') { - next = new AtomicFloat64(); - } else if (type === 's') { - next = new AtomicString(); - } else if (type === 'b') { - next = new AtomicBlob(); - } else if (type === 'T') { - args.push(VALUE_TRUE); - } else if (type === 'F') { - args.push(VALUE_FALSE); - } else if (type === 'N') { - args.push(VALUE_NONE); - } else if (type === 'I') { - args.push(VALUE_INFINITY); - } else { - throw new Error('OSC Message found unsupported argument type'); - } - if (next) { - offset = next.unpack(dataView, offset); - args.push(next.value); - } - } - this.offset = offset; - this.address = address.value; - this.types = types.value; - this.args = args; - return this.offset; - } - }]); - return TypedMessage; - }(); - var Message = function (_TypedMessage) { - _inherits(Message, _TypedMessage); - var _super = _createSuper(Message); - function Message() { - var _this3; - _classCallCheck(this, Message); - var address; - for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { - args[_key] = arguments[_key]; - } - if (args.length > 0) { - address = args.shift(); - } - var oscArgs; - if (args.length > 0) { - if (args[0] instanceof Array) { - oscArgs = args.shift(); - } - } - _this3 = _super.call(this, address, oscArgs); - if (args.length > 0) { - _this3.types = args.map(function (item) { - return typeTag(item); - }).join(''); - _this3.args = args; - } - return _this3; - } - _createClass(Message, [{ - key: "add", - value: function add(item) { - _get(_getPrototypeOf(Message.prototype), "add", this).call(this, typeTag(item), item); - } - }]); - return Message; - }(TypedMessage); - - var BUNDLE_TAG = '#bundle'; - var Bundle = function () { - function Bundle() { - var _this = this; - _classCallCheck(this, Bundle); - this.offset = 0; - this.timetag = new AtomicTimetag(); - this.bundleElements = []; - for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { - args[_key] = arguments[_key]; - } - if (args.length > 0) { - if (args[0] instanceof Date || isInt(args[0])) { - this.timetag = new AtomicTimetag(args[0]); - } else if (isArray(args[0])) { - args[0].forEach(function (item) { - _this.add(item); - }); - if (args.length > 1 && (args[1] instanceof Date || isInt(args[1]))) { - this.timetag = new AtomicTimetag(args[1]); - } - } else { - args.forEach(function (item) { - _this.add(item); - }); - } - } - } - _createClass(Bundle, [{ - key: "timestamp", - value: function timestamp(ms) { - if (!isInt(ms)) { - throw new Error('OSC Bundle needs an integer for setting the timestamp'); - } - this.timetag = new AtomicTimetag(ms); - } - }, { - key: "add", - value: function add(item) { - if (!(item instanceof Message || item instanceof Bundle)) { - throw new Error('OSC Bundle contains only Messages and Bundles'); - } - this.bundleElements.push(item); - } - }, { - key: "pack", - value: function pack() { - var encoder = new EncodeHelper(); - encoder.add(new AtomicString(BUNDLE_TAG)); - if (!this.timetag) { - this.timetag = new AtomicTimetag(); - } - encoder.add(this.timetag); - this.bundleElements.forEach(function (item) { - encoder.add(new AtomicInt32(item.pack().byteLength)); - encoder.add(item); - }); - return encoder.merge(); - } - }, { - key: "unpack", - value: function unpack(dataView) { - var initialOffset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0; - if (!(dataView instanceof DataView)) { - throw new Error('OSC Bundle expects an instance of type DataView'); - } - var parentHead = new AtomicString(); - parentHead.unpack(dataView, initialOffset); - if (parentHead.value !== BUNDLE_TAG) { - throw new Error('OSC Bundle does not contain a valid #bundle head'); - } - var timetag = new AtomicTimetag(); - var offset = timetag.unpack(dataView, parentHead.offset); - this.bundleElements = []; - while (offset < dataView.byteLength) { - var head = new AtomicString(); - var size = new AtomicInt32(); - offset = size.unpack(dataView, offset); - var item = void 0; - head.unpack(dataView, offset); - if (head.value === BUNDLE_TAG) { - item = new Bundle(); - } else { - item = new Message(); - } - offset = item.unpack(dataView, offset); - this.bundleElements.push(item); - } - this.offset = offset; - this.timetag = timetag; - return this.offset; - } - }]); - return Bundle; - }(); - - var Packet = function () { - function Packet(value) { - _classCallCheck(this, Packet); - if (value && !(value instanceof Message || value instanceof Bundle)) { - throw new Error('OSC Packet value has to be Message or Bundle'); - } - this.value = value; - this.offset = 0; - } - _createClass(Packet, [{ - key: "pack", - value: function pack() { - if (!this.value) { - throw new Error('OSC Packet can not be encoded with empty body'); - } - return this.value.pack(); - } - }, { - key: "unpack", - value: function unpack(dataView) { - var initialOffset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0; - if (!(dataView instanceof DataView)) { - throw new Error('OSC Packet expects an instance of type DataView'); - } - if (dataView.byteLength % 4 !== 0) { - throw new Error('OSC Packet byteLength has to be a multiple of four'); - } - var head = new AtomicString(); - head.unpack(dataView, initialOffset); - var item; - if (head.value === BUNDLE_TAG) { - item = new Bundle(); - } else { - item = new Message(); - } - item.unpack(dataView, initialOffset); - this.offset = item.offset; - this.value = item; - return this.offset; - } - }]); - return Packet; - }(); - - var defaultOptions$5 = { - discardLateMessages: false - }; - var EventHandler = function () { - function EventHandler(options) { - _classCallCheck(this, EventHandler); - this.options = _objectSpread2(_objectSpread2({}, defaultOptions$5), options); - this.addressHandlers = []; - this.eventHandlers = { - open: [], - error: [], - close: [] - }; - this.uuid = 0; - } - _createClass(EventHandler, [{ - key: "dispatch", - value: function dispatch(packet, rinfo) { - var _this = this; - if (!(packet instanceof Packet)) { - throw new Error('OSC EventHander dispatch() accepts only arguments of type Packet'); - } - if (!packet.value) { - throw new Error('OSC EventHander dispatch() can\'t read empty Packets'); - } - if (packet.value instanceof Bundle) { - var bundle = packet.value; - return bundle.bundleElements.forEach(function (bundleItem) { - if (bundleItem instanceof Bundle) { - if (bundle.timetag.value.timestamp() < bundleItem.timetag.value.timestamp()) { - throw new Error('OSC Bundle timestamp is older than the timestamp of enclosed Bundles'); - } - return _this.dispatch(bundleItem); - } else if (bundleItem instanceof Message) { - var message = bundleItem; - return _this.notify(message.address, message, bundle.timetag.value.timestamp(), rinfo); - } - throw new Error('OSC EventHander dispatch() can\'t dispatch unknown Packet value'); - }); - } else if (packet.value instanceof Message) { - var message = packet.value; - return this.notify(message.address, message, 0, rinfo); - } - throw new Error('OSC EventHander dispatch() can\'t dispatch unknown Packet value'); - } - }, { - key: "call", - value: function call(name, data, rinfo) { - var success = false; - if (isString(name) && name in this.eventHandlers) { - this.eventHandlers[name].forEach(function (handler) { - handler.callback(data, rinfo); - success = true; - }); - return success; - } - var handlerKeys = Object.keys(this.addressHandlers); - var handlers = this.addressHandlers; - handlerKeys.forEach(function (key) { - var foundMatch = false; - var regex = new RegExp(prepareRegExPattern(prepareAddress(name)), 'g'); - var test = regex.test(key); - if (test && key.length === regex.lastIndex) { - foundMatch = true; - } - if (!foundMatch) { - var reverseRegex = new RegExp(prepareRegExPattern(prepareAddress(key)), 'g'); - var reverseTest = reverseRegex.test(name); - if (reverseTest && name.length === reverseRegex.lastIndex) { - foundMatch = true; - } - } - if (foundMatch) { - handlers[key].forEach(function (handler) { - handler.callback(data, rinfo); - success = true; - }); - } - }); - return success; - } - }, { - key: "notify", - value: function notify() { - for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { - args[_key] = arguments[_key]; - } - if (args.length === 0) { - throw new Error('OSC EventHandler can not be called without any argument'); - } - if (args[0] instanceof Packet) { - return this.dispatch(args[0], args[1]); - } else if (args[0] instanceof Bundle || args[0] instanceof Message) { - return this.dispatch(new Packet(args[0]), args[1]); - } else if (!isString(args[0])) { - var packet = new Packet(); - packet.unpack(dataView(args[0])); - return this.dispatch(packet, args[1]); - } - var name = args[0]; - var data = null; - if (args.length > 1) { - data = args[1]; - } - var timestamp = null; - if (args.length > 2) { - if (isInt(args[2])) { - timestamp = args[2]; - } else if (args[2] instanceof Date) { - timestamp = args[2].getTime(); - } else { - throw new Error('OSC EventHandler timestamp has to be a number or Date'); - } - } - var rinfo = null; - if (args.length >= 3) { - rinfo = args[3]; - } - if (timestamp) { - var now = Date.now(); - if (now > timestamp) { - if (!this.options.discardLateMessages) { - return this.call(name, data, rinfo); - } - } - var that = this; - setTimeout(function () { - that.call(name, data, rinfo); - }, timestamp - now); - return true; - } - return this.call(name, data, rinfo); - } - }, { - key: "on", - value: function on(name, callback) { - if (!(isString(name) || isArray(name))) { - throw new Error('OSC EventHandler accepts only strings or arrays for address patterns'); - } - if (!isFunction(callback)) { - throw new Error('OSC EventHandler callback has to be a function'); - } - this.uuid += 1; - var handler = { - id: this.uuid, - callback: callback - }; - if (isString(name) && name in this.eventHandlers) { - this.eventHandlers[name].push(handler); - return this.uuid; - } - var address = prepareAddress(name); - if (!(address in this.addressHandlers)) { - this.addressHandlers[address] = []; - } - this.addressHandlers[address].push(handler); - return this.uuid; - } - }, { - key: "off", - value: function off(name, subscriptionId) { - if (!(isString(name) || isArray(name))) { - throw new Error('OSC EventHandler accepts only strings or arrays for address patterns'); - } - if (!isInt(subscriptionId)) { - throw new Error('OSC EventHandler subscription id has to be a number'); - } - var key; - var haystack; - if (isString(name) && name in this.eventHandlers) { - key = name; - haystack = this.eventHandlers; - } else { - key = prepareAddress(name); - haystack = this.addressHandlers; - } - if (key in haystack) { - return haystack[key].some(function (item, index) { - if (item.id === subscriptionId) { - haystack[key].splice(index, 1); - return true; - } - return false; - }); - } - return false; - } - }]); - return EventHandler; - }(); - - var dgram$1; - try { - dgram$1 = require('dgram'); - } catch(error) { - if (typeof window === 'undefined') { - throw(error); - } - } - var STATUS$4 = { - IS_NOT_INITIALIZED: -1, - IS_CONNECTING: 0, - IS_OPEN: 1, - IS_CLOSING: 2, - IS_CLOSED: 3 - }; - var defaultOpenOptions = { - host: 'localhost', - port: 41234, - exclusive: false - }; - var defaultSendOptions = { - host: 'localhost', - port: 41235 - }; - var defaultOptions$4 = { - type: 'udp4', - open: defaultOpenOptions, - send: defaultSendOptions - }; - function mergeOptions$1(base, custom) { - return _objectSpread2(_objectSpread2(_objectSpread2(_objectSpread2({}, defaultOptions$4), base), custom), {}, { - open: _objectSpread2(_objectSpread2(_objectSpread2({}, defaultOptions$4.open), base.open), custom.open), - send: _objectSpread2(_objectSpread2(_objectSpread2({}, defaultOptions$4.send), base.send), custom.send) - }); - } - var DatagramPlugin = function () { - function DatagramPlugin() { - var _this = this; - var customOptions = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; - _classCallCheck(this, DatagramPlugin); - if (!dgram$1) { - throw new Error('DatagramPlugin can not be used in browser context'); - } - this.options = mergeOptions$1({}, customOptions); - this.socket = dgram$1.createSocket(this.options.type); - this.socketStatus = STATUS$4.IS_NOT_INITIALIZED; - this.socket.on('message', function (message, rinfo) { - _this.notify(message, rinfo); - }); - this.socket.on('error', function (error) { - _this.notify('error', error); - }); - this.notify = function () {}; - } - _createClass(DatagramPlugin, [{ - key: "registerNotify", - value: function registerNotify(fn) { - this.notify = fn; - } - }, { - key: "status", - value: function status() { - return this.socketStatus; - } - }, { - key: "open", - value: function open() { - var _this2 = this; - var customOptions = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; - var options = _objectSpread2(_objectSpread2({}, this.options.open), customOptions); - var port = options.port, - exclusive = options.exclusive; - this.socketStatus = STATUS$4.IS_CONNECTING; - this.socket.bind({ - address: options.host, - port: port, - exclusive: exclusive - }, function () { - _this2.socketStatus = STATUS$4.IS_OPEN; - _this2.notify('open'); - }); - } - }, { - key: "close", - value: function close() { - var _this3 = this; - this.socketStatus = STATUS$4.IS_CLOSING; - this.socket.close(function () { - _this3.socketStatus = STATUS$4.IS_CLOSED; - _this3.notify('close'); - }); - } - }, { - key: "send", - value: function send(binary) { - var customOptions = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; - var options = _objectSpread2(_objectSpread2({}, this.options.send), customOptions); - var port = options.port, - host = options.host; - this.socket.send(Buffer.from(binary), 0, binary.byteLength, port, host); - } - }]); - return DatagramPlugin; - }(); - - var dgram; - try { - dgram = require('dgram'); - } catch(error) { - if (typeof window === 'undefined') { - throw(error); - } - } - var WebSocketServer$1 = typeof window === 'undefined' ? require('isomorphic-ws').Server : undefined; - var STATUS$3 = { - IS_NOT_INITIALIZED: -1, - IS_CONNECTING: 0, - IS_OPEN: 1, - IS_CLOSING: 2, - IS_CLOSED: 3 - }; - var defaultOptions$3 = { - udpServer: { - host: 'localhost', - port: 41234, - exclusive: false - }, - udpClient: { - host: 'localhost', - port: 41235 - }, - wsServer: { - host: 'localhost', - port: 8080 - }, - receiver: 'ws' - }; - function mergeOptions(base, custom) { - return _objectSpread2(_objectSpread2(_objectSpread2(_objectSpread2({}, defaultOptions$3), base), custom), {}, { - udpServer: _objectSpread2(_objectSpread2(_objectSpread2({}, defaultOptions$3.udpServer), base.udpServer), custom.udpServer), - udpClient: _objectSpread2(_objectSpread2(_objectSpread2({}, defaultOptions$3.udpClient), base.udpClient), custom.udpClient), - wsServer: _objectSpread2(_objectSpread2(_objectSpread2({}, defaultOptions$3.wsServer), base.wsServer), custom.wsServer) - }); - } - var BridgePlugin = function () { - function BridgePlugin() { - var _this = this; - var customOptions = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; - _classCallCheck(this, BridgePlugin); - if (!dgram || !WebSocketServer$1) { - throw new Error('BridgePlugin can not be used in browser context'); - } - this.options = mergeOptions({}, customOptions); - this.websocket = null; - this.socket = dgram.createSocket('udp4'); - this.socketStatus = STATUS$3.IS_NOT_INITIALIZED; - this.socket.on('message', function (message) { - _this.send(message, { - receiver: 'ws' - }); - _this.notify(message.buffer); - }); - this.socket.on('error', function (error) { - _this.notify('error', error); - }); - this.notify = function () {}; - } - _createClass(BridgePlugin, [{ - key: "registerNotify", - value: function registerNotify(fn) { - this.notify = fn; - } - }, { - key: "status", - value: function status() { - return this.socketStatus; - } - }, { - key: "open", - value: function open() { - var _this2 = this; - var customOptions = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; - var options = mergeOptions(this.options, customOptions); - this.socketStatus = STATUS$3.IS_CONNECTING; - this.socket.bind({ - address: options.udpServer.host, - port: options.udpServer.port, - exclusive: options.udpServer.exclusive - }, function () { - var wsServerOptions = {}; - if (options.wsServer.server) wsServerOptions.server = options.wsServer.server;else wsServerOptions = options.wsServer; - _this2.websocket = new WebSocketServer$1(wsServerOptions); - _this2.websocket.binaryType = 'arraybuffer'; - _this2.websocket.on('listening', function () { - _this2.socketStatus = STATUS$3.IS_OPEN; - _this2.notify('open'); - }); - _this2.websocket.on('error', function (error) { - _this2.notify('error', error); - }); - _this2.websocket.on('connection', function (client) { - client.on('message', function (message, rinfo) { - _this2.send(message, { - receiver: 'udp' - }); - _this2.notify(new Uint8Array(message), rinfo); - }); - }); - }); - } - }, { - key: "close", - value: function close() { - var _this3 = this; - this.socketStatus = STATUS$3.IS_CLOSING; - this.socket.close(function () { - _this3.websocket.close(function () { - _this3.socketStatus = STATUS$3.IS_CLOSED; - _this3.notify('close'); - }); - }); - } - }, { - key: "send", - value: function send(binary) { - var customOptions = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; - var options = mergeOptions(this.options, customOptions); - var receiver = options.receiver; - if (receiver === 'udp') { - var data = binary instanceof Buffer ? binary : Buffer.from(binary); - this.socket.send(data, 0, data.byteLength, options.udpClient.port, options.udpClient.host); - } else if (receiver === 'ws') { - this.websocket.clients.forEach(function (client) { - client.send(binary, { - binary: true - }); - }); - } else { - throw new Error('BridgePlugin can not send message to unknown receiver'); - } - } - }]); - return BridgePlugin; - }(); - - var scope = typeof global === 'undefined' ? window : global; - var WebSocket = typeof __dirname === 'undefined' ? scope.WebSocket : require('isomorphic-ws'); - var STATUS$2 = { - IS_NOT_INITIALIZED: -1, - IS_CONNECTING: 0, - IS_OPEN: 1, - IS_CLOSING: 2, - IS_CLOSED: 3 - }; - var defaultOptions$2 = { - host: 'localhost', - port: 8080, - secure: false, - protocol: [] - }; - var WebsocketClientPlugin = function () { - function WebsocketClientPlugin(customOptions) { - _classCallCheck(this, WebsocketClientPlugin); - if (!WebSocket) { - throw new Error('WebsocketClientPlugin can\'t find a WebSocket class'); - } - this.options = _objectSpread2(_objectSpread2({}, defaultOptions$2), customOptions); - this.socket = null; - this.socketStatus = STATUS$2.IS_NOT_INITIALIZED; - this.notify = function () {}; - } - _createClass(WebsocketClientPlugin, [{ - key: "registerNotify", - value: function registerNotify(fn) { - this.notify = fn; - } - }, { - key: "status", - value: function status() { - return this.socketStatus; - } - }, { - key: "open", - value: function open() { - var _this = this; - var customOptions = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; - var options = _objectSpread2(_objectSpread2({}, this.options), customOptions); - var port = options.port, - host = options.host, - secure = options.secure, - protocol = options.protocol; - if (this.socket) { - this.close(); - } - var scheme = secure ? 'wss' : 'ws'; - var rinfo = { - address: host, - family: scheme, - port: port, - size: 0 - }; - this.socket = new WebSocket("".concat(scheme, "://").concat(host, ":").concat(port), protocol); - this.socket.binaryType = 'arraybuffer'; - this.socketStatus = STATUS$2.IS_CONNECTING; - this.socket.onopen = function () { - _this.socketStatus = STATUS$2.IS_OPEN; - _this.notify('open'); - }; - this.socket.onclose = function () { - _this.socketStatus = STATUS$2.IS_CLOSED; - _this.notify('close'); - }; - this.socket.onerror = function (error) { - _this.notify('error', error); - }; - this.socket.onmessage = function (message) { - _this.notify(message.data, rinfo); - }; - } - }, { - key: "close", - value: function close() { - this.socketStatus = STATUS$2.IS_CLOSING; - this.socket.close(); - } - }, { - key: "send", - value: function send(binary) { - this.socket.send(binary); - } - }]); - return WebsocketClientPlugin; - }(); - - var WebSocketServer = typeof __dirname !== 'undefined' ? require('isomorphic-ws').Server : undefined; - var STATUS$1 = { - IS_NOT_INITIALIZED: -1, - IS_CONNECTING: 0, - IS_OPEN: 1, - IS_CLOSING: 2, - IS_CLOSED: 3 - }; - var defaultOptions$1 = { - host: 'localhost', - port: 8080 - }; - var WebsocketServerPlugin = function () { - function WebsocketServerPlugin(customOptions) { - _classCallCheck(this, WebsocketServerPlugin); - if (!WebSocketServer) { - throw new Error('WebsocketServerPlugin can not be used in browser context'); - } - this.options = _objectSpread2(_objectSpread2({}, defaultOptions$1), customOptions); - this.socket = null; - this.socketStatus = STATUS$1.IS_NOT_INITIALIZED; - this.notify = function () {}; - } - _createClass(WebsocketServerPlugin, [{ - key: "registerNotify", - value: function registerNotify(fn) { - this.notify = fn; - } - }, { - key: "status", - value: function status() { - return this.socketStatus; - } - }, { - key: "open", - value: function open() { - var _this = this; - var customOptions = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; - var options = _objectSpread2(_objectSpread2({}, this.options), customOptions); - var port = options.port, - host = options.host; - var rinfo = { - address: host, - family: 'wsserver', - port: port, - size: 0 - }; - if (this.socket) { - this.close(); - } - if (options.server) { - this.socket = new WebSocketServer({ - server: options.server - }); - } else { - this.socket = new WebSocketServer({ - host: host, - port: port - }); - } - this.socket.binaryType = 'arraybuffer'; - this.socketStatus = STATUS$1.IS_CONNECTING; - this.socket.on('listening', function () { - _this.socketStatus = STATUS$1.IS_OPEN; - _this.notify('open'); - }); - this.socket.on('error', function (error) { - _this.notify('error', error); - }); - this.socket.on('connection', function (client) { - client.on('message', function (message) { - _this.notify(new Uint8Array(message), rinfo); - }); - }); - } - }, { - key: "close", - value: function close() { - var _this2 = this; - this.socketStatus = STATUS$1.IS_CLOSING; - this.socket.close(function () { - _this2.socketStatus = STATUS$1.IS_CLOSED; - _this2.notify('close'); - }); - } - }, { - key: "send", - value: function send(binary) { - this.socket.clients.forEach(function (client) { - client.send(binary, { - binary: true - }); - }); - } - }]); - return WebsocketServerPlugin; - }(); - - var defaultOptions = { - discardLateMessages: false, - plugin: new WebsocketClientPlugin() - }; - var STATUS = { - IS_NOT_INITIALIZED: -1, - IS_CONNECTING: 0, - IS_OPEN: 1, - IS_CLOSING: 2, - IS_CLOSED: 3 - }; - var OSC = function () { - function OSC(options) { - _classCallCheck(this, OSC); - if (options && !isObject(options)) { - throw new Error('OSC options argument has to be an object.'); - } - this.options = _objectSpread2(_objectSpread2({}, defaultOptions), options); - this.eventHandler = new EventHandler({ - discardLateMessages: this.options.discardLateMessages - }); - var eventHandler = this.eventHandler; - if (this.options.plugin && this.options.plugin.registerNotify) { - this.options.plugin.registerNotify(function () { - return eventHandler.notify.apply(eventHandler, arguments); - }); - } - } - _createClass(OSC, [{ - key: "on", - value: function on(eventName, callback) { - if (!(isString(eventName) && isFunction(callback))) { - throw new Error('OSC on() needs event- or address string and callback function'); - } - return this.eventHandler.on(eventName, callback); - } - }, { - key: "off", - value: function off(eventName, subscriptionId) { - if (!(isString(eventName) && isInt(subscriptionId))) { - throw new Error('OSC off() needs string and number (subscriptionId) to unsubscribe'); - } - return this.eventHandler.off(eventName, subscriptionId); - } - }, { - key: "open", - value: function open(options) { - if (options && !isObject(options)) { - throw new Error('OSC open() options argument needs to be an object'); - } - if (!(this.options.plugin && isFunction(this.options.plugin.open))) { - throw new Error('OSC Plugin API #open is not implemented!'); - } - return this.options.plugin.open(options); - } - }, { - key: "status", - value: function status() { - if (!(this.options.plugin && isFunction(this.options.plugin.status))) { - throw new Error('OSC Plugin API #status is not implemented!'); - } - return this.options.plugin.status(); - } - }, { - key: "close", - value: function close() { - if (!(this.options.plugin && isFunction(this.options.plugin.close))) { - throw new Error('OSC Plugin API #close is not implemented!'); - } - return this.options.plugin.close(); - } - }, { - key: "send", - value: function send(packet, options) { - if (!(this.options.plugin && isFunction(this.options.plugin.send))) { - throw new Error('OSC Plugin API #send is not implemented!'); - } - if (!(packet instanceof TypedMessage || packet instanceof Message || packet instanceof Bundle || packet instanceof Packet)) { - throw new Error('OSC send() needs Messages, Bundles or Packets'); - } - if (options && !isObject(options)) { - throw new Error('OSC send() options argument has to be an object'); - } - return this.options.plugin.send(packet.pack(), options); - } - }]); - return OSC; - }(); - OSC.STATUS = STATUS; - OSC.Packet = Packet; - OSC.Bundle = Bundle; - OSC.Message = Message; - OSC.TypedMessage = TypedMessage; - OSC.DatagramPlugin = DatagramPlugin; - OSC.WebsocketClientPlugin = WebsocketClientPlugin; - OSC.WebsocketServerPlugin = WebsocketServerPlugin; - OSC.BridgePlugin = BridgePlugin; - - return OSC; - -})); diff --git a/packages/osc/osc.js b/packages/osc/osc.js index 7446c0e54..6194625ae 100644 --- a/packages/osc/osc.js +++ b/packages/osc/osc.js @@ -1,8 +1,3 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.OSC = factory()); -})(this, (function () { 'use strict'; function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); @@ -1728,6 +1723,4 @@ OSC.WebsocketServerPlugin = WebsocketServerPlugin; OSC.BridgePlugin = BridgePlugin; - return OSC; - -})); + export default OSC; From 171f84506971ddde37643c66aba81cd806a36778 Mon Sep 17 00:00:00 2001 From: Felix Roos Date: Tue, 12 Apr 2022 23:54:56 +0200 Subject: [PATCH 58/78] add setup script --- package.json | 1 + 1 file changed, 1 insertion(+) diff --git a/package.json b/package.json index 4702ff109..3978a44dc 100644 --- a/package.json +++ b/package.json @@ -7,6 +7,7 @@ "scripts": { "test": "npm run test --workspaces --if-present", "bootstrap": "lerna bootstrap", + "setup": "npm i && npm run bootstrap && cd repl && npm i", "repl": "cd repl && npm run start", "osc": "cd packages/osc && npm run server" }, From 42e2531e8d27970d59a0e3067d2fcc9a4c6d77df Mon Sep 17 00:00:00 2001 From: Felix Roos Date: Wed, 13 Apr 2022 00:09:04 +0200 Subject: [PATCH 59/78] readme additions --- README.md | 44 +++++++++++++++++++++++--------------------- 1 file changed, 23 insertions(+), 21 deletions(-) diff --git a/README.md b/README.md index fb0ab91f6..876e76fcb 100644 --- a/README.md +++ b/README.md @@ -4,40 +4,42 @@ An experiment in making a [Tidal](https://github.com/tidalcycles/tidal/) using web technologies. This is unstable software, please tread carefully. -Try it here: https://strudel.tidalcycles.org/ +- Try it here: +- Tutorial: +- Technical Blog Post: -Tutorial: https://strudel.tidalcycles.org/tutorial/ +## Running Locally -## Local development - -Run the REPL locally: +After cloning the project, you can run the REPL locally: ```bash -npm install -npx lerna bootstrap -cd repl -npm install -npm run start +npm run setup +npm run repl ``` -## Publish Packages +## Using Strudel In Your Project -To publish, just run: +There are multiple npm packages you can use to use strudel, or only parts of it, in your project: -```sh -npx lerna publish -``` +- [`core`](./packages/core/): tidal pattern engine +- [`mini`](./packages/mini): mini notation parser + core binding +- [`eval`](./packages/eval): user code evaluator. syntax sugar + highlighting +- [`tone`](./packages/tone): bindings for Tone.js instruments and effects +- [`osc`](./packages/osc): bindings to communicate via OSC +- [`midi`](./packages/midi): webmidi bindings +- [`tonal`](./packages/tonal): tonal functions +- [`xen`](./packages/xen): microtonal / xenharmonic functions -This will publish all packages that changed since the last version. +Click on the package names to find out more about each one. -## Style +## Contributing -For now, please try to copy the style of surrounding code. VS Code users can install the 'prettier' add-on which will use the .prettierrc configuration file for automatic formatting. +There are many ways to contribute to this project! See [contribution guide](./CONTRIBUTING.md). ## Community -There is a #strudel channel on the TidalCycles discord: https://discord.com/invite/HGEdXmRkzT +There is a #strudel channel on the TidalCycles discord: -You can also ask questions and find related discussions on the tidal club forum: https://club.tidalcycles.org/ +You can also ask questions and find related discussions on the tidal club forum: -The discord and forum is shared with the haskell (tidal) and python (vortex) siblings of this project. \ No newline at end of file +The discord and forum is shared with the haskell (tidal) and python (vortex) siblings of this project. From 6bdb0fee554ba3173f27d46451d1be95685303db Mon Sep 17 00:00:00 2001 From: Felix Roos Date: Wed, 13 Apr 2022 00:15:09 +0200 Subject: [PATCH 60/78] fix server import --- packages/osc/server.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/osc/server.js b/packages/osc/server.js index febe2d90c..f765b2844 100644 --- a/packages/osc/server.js +++ b/packages/osc/server.js @@ -1,4 +1,4 @@ -const OSC = require('./osc-js/osc.js'); +const OSC = require('osc-js'); const config = { receiver: 'ws', // @param {string} Where messages sent via 'send' method will be delivered to, 'ws' for Websocket clients, 'udp' for udp client From 3cd10bf4b399c7f7ce690fcd784e7096c1ecf80f Mon Sep 17 00:00:00 2001 From: Felix Roos Date: Wed, 13 Apr 2022 00:15:36 +0200 Subject: [PATCH 61/78] package-lock --- package-lock.json | 1 + packages/osc/server.js | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/package-lock.json b/package-lock.json index 2fefcea26..28f72c015 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9308,6 +9308,7 @@ } }, "packages/osc": { + "name": "@strudel.cycles/osc", "version": "0.0.1", "license": "GPL-3.0-or-later", "dependencies": { diff --git a/packages/osc/server.js b/packages/osc/server.js index febe2d90c..f765b2844 100644 --- a/packages/osc/server.js +++ b/packages/osc/server.js @@ -1,4 +1,4 @@ -const OSC = require('./osc-js/osc.js'); +const OSC = require('osc-js'); const config = { receiver: 'ws', // @param {string} Where messages sent via 'send' method will be delivered to, 'ws' for Websocket clients, 'udp' for udp client From 2060e868750c649bc84f67d1d0b330b925dd4262 Mon Sep 17 00:00:00 2001 From: Felix Roos Date: Wed, 13 Apr 2022 00:25:53 +0200 Subject: [PATCH 62/78] add queryArc + update readme --- packages/core/README.md | 8 +++++--- packages/core/strudel.mjs | 16 ++++++++++------ 2 files changed, 15 insertions(+), 9 deletions(-) diff --git a/packages/core/README.md b/packages/core/README.md index d570c09ed..c4abf0875 100644 --- a/packages/core/README.md +++ b/packages/core/README.md @@ -15,14 +15,14 @@ import { sequence, State, TimeSpan } from '@strudel.cycles/core'; const pattern = sequence('a', ['b', 'c']); -const events = pattern.query(new State(new TimeSpan(0, 2))); +const events = pattern.queryArc(0, 1); const spans = events.map( (event) => `${event.value}: ${event.whole.begin.toFraction()} - ${event.whole.end.toFraction()} `, ); ``` -spans: +yields: ```log a: 0 - 1/2 @@ -33,4 +33,6 @@ b: 3/2 - 7/4 c: 7/4 - 2 ``` -[play with @strudel.cycles/core on codesandbox](https://codesandbox.io/s/strudel-core-test-qmz6qr?file=/src/index.js). +- [play with @strudel.cycles/core on codesandbox](https://codesandbox.io/s/strudel-core-test-qmz6qr?file=/src/index.js). +- [open color pattern example](https://raw.githack.com/tidalcycles/strudel/package-examples/packages/core/examples/canvas.html) +- [open minimal repl example](https://raw.githack.com/tidalcycles/strudel/package-examples/packages/core/examples/metro.html) diff --git a/packages/core/strudel.mjs b/packages/core/strudel.mjs index ec1eaa2e5..7fa58859f 100644 --- a/packages/core/strudel.mjs +++ b/packages/core/strudel.mjs @@ -236,6 +236,10 @@ class Pattern { this.query = query; } + queryArc(begin, end) { + return this.query(new State(new TimeSpan(begin, end))); + } + _splitQueries() { // Splits queries at cycle boundaries. This makes some calculations // easier to express, as all events are then constrained to happen within @@ -686,12 +690,12 @@ class Pattern { } _chop(n) { - const slices = Array.from({length: n}, (x, i) => i); - const slice_objects = slices.map(i => ({begin: i/n, end: (i+1)/n})); - const func = function(o) { - return(sequence(slice_objects.map(slice_o => Object.assign({}, o, slice_o)))) - } - return(this._squeezeBind(func)); + const slices = Array.from({ length: n }, (x, i) => i); + const slice_objects = slices.map((i) => ({ begin: i / n, end: (i + 1) / n })); + const func = function (o) { + return sequence(slice_objects.map((slice_o) => Object.assign({}, o, slice_o))); + }; + return this._squeezeBind(func); } // cpm = cycles per minute From ad69fa19b65a23f77b898ad2d709beb05bd56327 Mon Sep 17 00:00:00 2001 From: alex Date: Wed, 13 Apr 2022 08:38:08 +0100 Subject: [PATCH 63/78] Prettify --- packages/core/test/pattern.test.mjs | 918 ++++++++++++++++------------ 1 file changed, 514 insertions(+), 404 deletions(-) diff --git a/packages/core/test/pattern.test.mjs b/packages/core/test/pattern.test.mjs index adc5d179b..afe6bf771 100644 --- a/packages/core/test/pattern.test.mjs +++ b/packages/core/test/pattern.test.mjs @@ -1,4 +1,4 @@ -import Fraction from 'fraction.js' +import Fraction from 'fraction.js'; import { strict as assert } from 'assert'; @@ -40,189 +40,203 @@ import { import pkg from 'tone'; const { Time } = pkg; -const st = (begin, end) => new State(ts(begin, end)) +const st = (begin, end) => new State(ts(begin, end)); const ts = (begin, end) => new TimeSpan(Fraction(begin), Fraction(end)); -const hap = (whole, part, value, context={}) => new Hap(whole, part, value, context) +const hap = (whole, part, value, context = {}) => new Hap(whole, part, value, context); -const third = Fraction(1,3) -const twothirds = Fraction(2,3) +const third = Fraction(1, 3); +const twothirds = Fraction(2, 3); -describe('TimeSpan', function() { - describe('equals()', function() { - it('Should be equal to the same value', function() { - assert.equal((new TimeSpan(0,4)).equals(new TimeSpan(0,4)), true); +describe('TimeSpan', function () { + describe('equals()', function () { + it('Should be equal to the same value', function () { + assert.equal(new TimeSpan(0, 4).equals(new TimeSpan(0, 4)), true); + }); + }); + describe('splitCycles', function () { + it('Should split two cycles into two', function () { + assert.equal(new TimeSpan(Fraction(0), Fraction(2)).spanCycles.length, 2); }); }); - describe('splitCycles', function() { - it('Should split two cycles into two', function() { - assert.equal(new TimeSpan(Fraction(0),Fraction(2)).spanCycles.length, 2) - }) - }) describe('intersection_e', function () { - var a = new TimeSpan(Fraction(0), Fraction(2)) - var b = new TimeSpan(Fraction(1), Fraction(3)) - var c = new TimeSpan(Fraction(1), Fraction(2)) - var d = new TimeSpan(Fraction(1), Fraction(2)) - it('Should create an intersection', function () { - assert.equal(a.intersection_e(b).equals(c), true) - }) - }) + var a = new TimeSpan(Fraction(0), Fraction(2)); + var b = new TimeSpan(Fraction(1), Fraction(3)); + var c = new TimeSpan(Fraction(1), Fraction(2)); + var d = new TimeSpan(Fraction(1), Fraction(2)); + it('Should create an intersection', function () { + assert.equal(a.intersection_e(b).equals(c), true); + }); + }); }); -describe('Hap', function() { - describe('hasOnset()', function() { - it('True if part includes onset from whole', function() { - assert.equal(new Hap(new TimeSpan(0,1), new TimeSpan(0,1), "thing").hasOnset(), true); - }); +describe('Hap', function () { + describe('hasOnset()', function () { + it('True if part includes onset from whole', function () { + assert.equal(new Hap(new TimeSpan(0, 1), new TimeSpan(0, 1), 'thing').hasOnset(), true); }); - var a = new Hap(new TimeSpan(Fraction(0), Fraction(0.5)), new TimeSpan(Fraction(0), Fraction(0.5)), "a") - var b = new Hap(new TimeSpan(Fraction(0), Fraction(0.5)), new TimeSpan(Fraction(0), Fraction(0.5)), "b") - var c = new Hap(new TimeSpan(Fraction(0), Fraction(0.25)), new TimeSpan(Fraction(0), Fraction(0.5)), "c") - var d = new Hap(undefined, new TimeSpan(Fraction(0), Fraction(0.5)), "d") - var e = new Hap(undefined, new TimeSpan(Fraction(0), Fraction(0.5)), "e") - describe('spanEquals', function() { - it('True if two haps have the same whole and part', function() { - assert.equal(a.spanEquals(b), true) - }) - it('False if two haps don\'t the same whole and part', function() { - assert.equal(a.spanEquals(c), false) - }) - it('True if two haps have the same part and undefined wholes', function() { - assert.equal(d.spanEquals(e), true) - }) - }) - describe('resolveState()', () => { - it('Can increment some state', function() { - const stateful_value = state => { - const newValue = state["incrementme"] - // TODO Does the state *need* duplicating here? - const newState = {...state} - newState["incrementme"]++ - return [newState, newValue] - } - const state = {incrementme: 10} - const ev1 = new Hap(ts(0,1), ts(0,1), stateful_value, {}, true) - const [state2, ev2] = ev1.resolveState(state) - const [state3, ev3] = ev1.resolveState(state2) - assert.deepStrictEqual( - ev3, new Hap(ts(0,1),ts(0,1),11,{},false) - ) - assert.deepStrictEqual( - state3, {incrementme: 12} - ) - }) - }) }); - -describe('Pattern', function() { + var a = new Hap(new TimeSpan(Fraction(0), Fraction(0.5)), new TimeSpan(Fraction(0), Fraction(0.5)), 'a'); + var b = new Hap(new TimeSpan(Fraction(0), Fraction(0.5)), new TimeSpan(Fraction(0), Fraction(0.5)), 'b'); + var c = new Hap(new TimeSpan(Fraction(0), Fraction(0.25)), new TimeSpan(Fraction(0), Fraction(0.5)), 'c'); + var d = new Hap(undefined, new TimeSpan(Fraction(0), Fraction(0.5)), 'd'); + var e = new Hap(undefined, new TimeSpan(Fraction(0), Fraction(0.5)), 'e'); + describe('spanEquals', function () { + it('True if two haps have the same whole and part', function () { + assert.equal(a.spanEquals(b), true); + }); + it("False if two haps don't the same whole and part", function () { + assert.equal(a.spanEquals(c), false); + }); + it('True if two haps have the same part and undefined wholes', function () { + assert.equal(d.spanEquals(e), true); + }); + }); + describe('resolveState()', () => { + it('Can increment some state', function () { + const stateful_value = (state) => { + const newValue = state['incrementme']; + // TODO Does the state *need* duplicating here? + const newState = { ...state }; + newState['incrementme']++; + return [newState, newValue]; + }; + const state = { incrementme: 10 }; + const ev1 = new Hap(ts(0, 1), ts(0, 1), stateful_value, {}, true); + const [state2, ev2] = ev1.resolveState(state); + const [state3, ev3] = ev1.resolveState(state2); + assert.deepStrictEqual(ev3, new Hap(ts(0, 1), ts(0, 1), 11, {}, false)); + assert.deepStrictEqual(state3, { incrementme: 12 }); + }); + }); +}); + +describe('Pattern', function () { describe('pure', function () { - it('Can make a pattern', function() { - assert.equal(pure("hello").query(st(0.5, 2.5)).length, 3) - }) - }) + it('Can make a pattern', function () { + assert.equal(pure('hello').query(st(0.5, 2.5)).length, 3); + }); + }); describe('fmap()', function () { it('Can add things', function () { - assert.equal(pure(3).fmap(x => x + 4).firstCycle()[0].value, 7) - }) - }) + assert.equal( + pure(3) + .fmap((x) => x + 4) + .firstCycle()[0].value, + 7, + ); + }); + }); describe('add()', function () { - it('Can add things', function() { - assert.equal(pure(3).add(pure(4)).query(st(0,1))[0].value, 7) - }) - }) + it('Can add things', function () { + assert.equal(pure(3).add(pure(4)).query(st(0, 1))[0].value, 7); + }); + }); describe('sub()', function () { - it('Can subtract things', function() { - assert.equal(pure(3).sub(pure(4)).query(st(0,1))[0].value, -1) - }) - }) + it('Can subtract things', function () { + assert.equal(pure(3).sub(pure(4)).query(st(0, 1))[0].value, -1); + }); + }); describe('mul()', function () { - it('Can multiply things', function() { - assert.equal(pure(3).mul(pure(2)).firstCycle()[0].value, 6) - }) - }) + it('Can multiply things', function () { + assert.equal(pure(3).mul(pure(2)).firstCycle()[0].value, 6); + }); + }); describe('div()', function () { - it('Can divide things', function() { - assert.equal(pure(3).div(pure(2)).firstCycle()[0].value, 1.5) - }) - }) + it('Can divide things', function () { + assert.equal(pure(3).div(pure(2)).firstCycle()[0].value, 1.5); + }); + }); describe('union()', function () { it('Can union things', function () { - assert.deepStrictEqual(pure({a: 4, b: 6}).union(pure({c: 7})).firstCycle()[0].value, {a: 4, b: 6, c: 7}) - }) - }) + assert.deepStrictEqual( + pure({ a: 4, b: 6 }) + .union(pure({ c: 7 })) + .firstCycle()[0].value, + { a: 4, b: 6, c: 7 }, + ); + }); + }); describe('stack()', function () { it('Can stack things', function () { - assert.deepStrictEqual(stack(pure("a"), pure("b"), pure("c")).firstCycle().map(h => h.value), ["a", "b", "c"]) - }) - }) + assert.deepStrictEqual( + stack(pure('a'), pure('b'), pure('c')) + .firstCycle() + .map((h) => h.value), + ['a', 'b', 'c'], + ); + }); + }); describe('_fast()', function () { it('Makes things faster', function () { - assert.equal(pure("a")._fast(2).firstCycle().length, 2) - }) - }) + assert.equal(pure('a')._fast(2).firstCycle().length, 2); + }); + }); describe('_fastGap()', function () { it('Makes things faster, with a gap', function () { assert.deepStrictEqual( - sequence("a", "b", "c")._fastGap(2).firstCycle(), - sequence(["a","b","c"], silence).firstCycle() - ) + sequence('a', 'b', 'c')._fastGap(2).firstCycle(), + sequence(['a', 'b', 'c'], silence).firstCycle(), + ); assert.deepStrictEqual( - sequence("a", "b", "c")._fastGap(3).firstCycle(), - sequence(["a","b","c"], silence, silence).firstCycle() - ) - }) + sequence('a', 'b', 'c')._fastGap(3).firstCycle(), + sequence(['a', 'b', 'c'], silence, silence).firstCycle(), + ); + }); it('Makes things faster, with a gap, when speeded up further', function () { assert.deepStrictEqual( - sequence("a", "b", "c")._fastGap(2).fast(2).firstCycle(), - sequence(["a","b","c"], silence, ["a","b","c"], silence).firstCycle() - ) - }) - }) + sequence('a', 'b', 'c')._fastGap(2).fast(2).firstCycle(), + sequence(['a', 'b', 'c'], silence, ['a', 'b', 'c'], silence).firstCycle(), + ); + }); + }); describe('_compressSpan()', function () { it('Can squash cycles of a pattern into a given timespan', function () { assert.deepStrictEqual( - pure("a")._compressSpan(new TimeSpan(0.25, 0.5)).firstCycle(), - sequence(silence, "a", silence, silence).firstCycle() - ) - }) - }) + pure('a')._compressSpan(new TimeSpan(0.25, 0.5)).firstCycle(), + sequence(silence, 'a', silence, silence).firstCycle(), + ); + }); + }); describe('fast()', function () { it('Makes things faster', function () { - assert.equal(pure("a").fast(2).firstCycle().length, 2) - }) + assert.equal(pure('a').fast(2).firstCycle().length, 2); + }); it('Makes things faster, with a pattern of factors', function () { - assert.equal(pure("a").fast(sequence(1,4)).firstCycle().length, 3) + assert.equal(pure('a').fast(sequence(1, 4)).firstCycle().length, 3); // .fast(sequence(1,silence) is a quick hack to cut an event in two.. - assert.deepStrictEqual(pure("a").fast(sequence(1,4)).firstCycle(), stack(pure("a").fast(sequence(1,silence)), sequence(silence, ["a","a"])).firstCycle()) - }) + assert.deepStrictEqual( + pure('a').fast(sequence(1, 4)).firstCycle(), + stack(pure('a').fast(sequence(1, silence)), sequence(silence, ['a', 'a'])).firstCycle(), + ); + }); it('defaults to accepting sequences', function () { assert.deepStrictEqual( - sequence(1,2,3).fast(sequence(1.5,2)).firstCycle(), - sequence(1,2,3).fast(1.5,2).firstCycle() - ) - }) - it("works as a static function", function () { + sequence(1, 2, 3).fast(sequence(1.5, 2)).firstCycle(), + sequence(1, 2, 3).fast(1.5, 2).firstCycle(), + ); + }); + it('works as a static function', function () { assert.deepStrictEqual( - sequence(1,2,3).fast(1,2).firstCycle(), - fast(sequence(1,2), sequence(1,2,3)).firstCycle() - ) - }) - it("works as a curried static function", function () { + sequence(1, 2, 3).fast(1, 2).firstCycle(), + fast(sequence(1, 2), sequence(1, 2, 3)).firstCycle(), + ); + }); + it('works as a curried static function', function () { assert.deepStrictEqual( - sequence(1,2,3).fast(1,2).firstCycle(), - fast(sequence(1,2))(sequence(1,2,3)).firstCycle() - ) - }) - }) + sequence(1, 2, 3).fast(1, 2).firstCycle(), + fast(sequence(1, 2))(sequence(1, 2, 3)).firstCycle(), + ); + }); + }); describe('_slow()', function () { it('Makes things slower', function () { - assert.deepStrictEqual(pure("a")._slow(2).firstCycle()[0], new Hap(new TimeSpan(Fraction(0),Fraction(2)), new TimeSpan(Fraction(0), Fraction(1)), "a")) + assert.deepStrictEqual( + pure('a')._slow(2).firstCycle()[0], + new Hap(new TimeSpan(Fraction(0), Fraction(2)), new TimeSpan(Fraction(0), Fraction(1)), 'a'), + ); const pat = sequence(pure('c3'), pure('eb3')._slow(2)); // => try mini('c3 eb3/2') in repl - assert.deepStrictEqual( - pat.query(st(0,1))[1], - hap(ts(0.5,1.5), ts(1/2,1), "eb3") - ) + assert.deepStrictEqual(pat.query(st(0, 1))[1], hap(ts(0.5, 1.5), ts(1 / 2, 1), 'eb3')); // the following test fails /* assert.deepStrictEqual( pat.query(ts(1,2))[1], undefined @@ -232,318 +246,414 @@ describe('Pattern', function() { // notable examples: // mini('[c3 g3]/2 eb3') always plays [c3 eb3] // mini('eb3 [c3 g3]/2 ') always plays [c3 g3] - }) - }) + }); + }); describe('_filterValues()', function () { it('Filters true', function () { - assert.equal(pure(true)._filterValues(x => x).firstCycle().length, 1) - }) - }) + assert.equal( + pure(true) + ._filterValues((x) => x) + .firstCycle().length, + 1, + ); + }); + }); describe('when()', function () { it('Always faster', function () { - assert.equal(pure("a").when(pure(true), x => x._fast(2)).firstCycle().length, 2) - }) + assert.equal( + pure('a') + .when(pure(true), (x) => x._fast(2)) + .firstCycle().length, + 2, + ); + }); it('Never faster', function () { - assert.equal(pure("a").when(pure(false), x => x._fast(2)).firstCycle().length, 1) - }) + assert.equal( + pure('a') + .when(pure(false), (x) => x._fast(2)) + .firstCycle().length, + 1, + ); + }); it('Can alternate', function () { assert.deepStrictEqual( - pure(10).when(slowcat(true,false),add(3)).fast(4)._sortEventsByPart().firstCycle(), - fastcat(13,10,13,10).firstCycle() - ) - }) - }) + pure(10).when(slowcat(true, false), add(3)).fast(4)._sortEventsByPart().firstCycle(), + fastcat(13, 10, 13, 10).firstCycle(), + ); + }); + }); describe('fastcat()', function () { it('Can concatenate two things', function () { - assert.deepStrictEqual(fastcat(pure("a"), pure("b")).firstCycle().map(x => x.value), ["a", "b"]) - }) - }) + assert.deepStrictEqual( + fastcat(pure('a'), pure('b')) + .firstCycle() + .map((x) => x.value), + ['a', 'b'], + ); + }); + }); describe('slowcat()', function () { it('Can concatenate things slowly', function () { - assert.deepStrictEqual(slowcat("a", "b").firstCycle().map(x => x.value), ["a"]) - assert.deepStrictEqual(slowcat("a", "b")._early(1).firstCycle().map(x => x.value), ["b"]) - assert.deepStrictEqual(slowcat("a", slowcat("b", "c"))._early(1).firstCycle().map(x => x.value), ["b"]) - assert.deepStrictEqual(slowcat("a", slowcat("b", "c"))._early(3).firstCycle().map(x => x.value), ["c"]) - }) - }) + assert.deepStrictEqual( + slowcat('a', 'b') + .firstCycle() + .map((x) => x.value), + ['a'], + ); + assert.deepStrictEqual( + slowcat('a', 'b') + ._early(1) + .firstCycle() + .map((x) => x.value), + ['b'], + ); + assert.deepStrictEqual( + slowcat('a', slowcat('b', 'c')) + ._early(1) + .firstCycle() + .map((x) => x.value), + ['b'], + ); + assert.deepStrictEqual( + slowcat('a', slowcat('b', 'c')) + ._early(3) + .firstCycle() + .map((x) => x.value), + ['c'], + ); + }); + }); describe('rev()', function () { it('Can reverse things', function () { - assert.deepStrictEqual(fastcat("a","b","c").rev().firstCycle().sort((a,b) => a.part.begin.sub(b.part.begin)).map(a => a.value), ["c", "b","a"]) - }) - }) + assert.deepStrictEqual( + fastcat('a', 'b', 'c') + .rev() + .firstCycle() + .sort((a, b) => a.part.begin.sub(b.part.begin)) + .map((a) => a.value), + ['c', 'b', 'a'], + ); + }); + }); describe('sequence()', () => { it('Can work like fastcat', () => { - assert.deepStrictEqual(sequence(1,2,3).firstCycle(), fastcat(1,2,3).firstCycle()) - }) - }) + assert.deepStrictEqual(sequence(1, 2, 3).firstCycle(), fastcat(1, 2, 3).firstCycle()); + }); + }); describe('polyrhythm()', () => { it('Can layer up cycles', () => { assert.deepStrictEqual( - polyrhythm(["a","b"],["c"]).firstCycle(), - stack(fastcat(pure("a"),pure("b")),pure("c")).firstCycle() - ) - }) - }) + polyrhythm(['a', 'b'], ['c']).firstCycle(), + stack(fastcat(pure('a'), pure('b')), pure('c')).firstCycle(), + ); + }); + }); describe('polymeter()', () => { it('Can layer up cycles, stepwise', () => { assert.deepStrictEqual( - polymeterSteps(3, ["d","e"]).firstCycle(), - fastcat(pure("d"),pure("e"),pure("d")).firstCycle() - ) + polymeterSteps(3, ['d', 'e']).firstCycle(), + fastcat(pure('d'), pure('e'), pure('d')).firstCycle(), + ); assert.deepStrictEqual( - polymeter(["a","b","c"],["d","e"]).fast(2).firstCycle(), - stack(sequence("a","b","c","a","b","c"), - sequence("d","e","d","e","d","e") - ).firstCycle() - ) - }) - }) + polymeter(['a', 'b', 'c'], ['d', 'e']).fast(2).firstCycle(), + stack(sequence('a', 'b', 'c', 'a', 'b', 'c'), sequence('d', 'e', 'd', 'e', 'd', 'e')).firstCycle(), + ); + }); + }); describe('every()', () => { it('Can apply a function every 3rd time', () => { assert.deepStrictEqual( - pure("a").every(3, x => x._fast(2))._fast(3).firstCycle(), - sequence(sequence("a", "a"), "a", "a").firstCycle() - ) - }) - it("works with currying", () => { + pure('a') + .every(3, (x) => x._fast(2)) + ._fast(3) + .firstCycle(), + sequence(sequence('a', 'a'), 'a', 'a').firstCycle(), + ); + }); + it('works with currying', () => { assert.deepStrictEqual( - pure("a").every(3, fast(2))._fast(3).firstCycle(), - sequence(sequence("a", "a"), "a", "a").firstCycle() - ) + pure('a').every(3, fast(2))._fast(3).firstCycle(), + sequence(sequence('a', 'a'), 'a', 'a').firstCycle(), + ); assert.deepStrictEqual( - sequence(3,4,5).every(3, add(3)).fast(5).firstCycle(), - sequence(6,7,8,3,4,5,3,4,5,6,7,8,3,4,5).firstCycle() - ) + sequence(3, 4, 5).every(3, add(3)).fast(5).firstCycle(), + sequence(6, 7, 8, 3, 4, 5, 3, 4, 5, 6, 7, 8, 3, 4, 5).firstCycle(), + ); assert.deepStrictEqual( - sequence(3,4,5).every(2, sub(1)).fast(5).firstCycle(), - sequence(2,3,4,3,4,5,2,3,4,3,4,5,2,3,4).firstCycle() - ) + sequence(3, 4, 5).every(2, sub(1)).fast(5).firstCycle(), + sequence(2, 3, 4, 3, 4, 5, 2, 3, 4, 3, 4, 5, 2, 3, 4).firstCycle(), + ); assert.deepStrictEqual( - sequence(3,4,5).every(3, add(3)).every(2, sub(1)).fast(2).firstCycle(), - sequence(5,6,7,3,4,5).firstCycle() - ) - }) - }) - describe('timeCat()', function() { - it('Can concatenate patterns with different relative durations', function() { + sequence(3, 4, 5).every(3, add(3)).every(2, sub(1)).fast(2).firstCycle(), + sequence(5, 6, 7, 3, 4, 5).firstCycle(), + ); + }); + }); + describe('timeCat()', function () { + it('Can concatenate patterns with different relative durations', function () { assert.deepStrictEqual( - sequence("a", ["a", "a"]).firstCycle(), - timeCat([1,"a"], [0.5, "a"], [0.5, "a"]).firstCycle() - ) - }) - }) - describe('struct()', function() { - it('Can restructure a pattern', function() { + sequence('a', ['a', 'a']).firstCycle(), + timeCat([1, 'a'], [0.5, 'a'], [0.5, 'a']).firstCycle(), + ); + }); + }); + describe('struct()', function () { + it('Can restructure a pattern', function () { + assert.deepStrictEqual(sequence('a', 'b').struct(sequence(true, true, true)).firstCycle(), [ + hap(ts(0, third), ts(0, third), 'a'), + hap(ts(third, twothirds), ts(third, 0.5), 'a'), + hap(ts(third, twothirds), ts(0.5, twothirds), 'b'), + hap(ts(twothirds, 1), ts(twothirds, 1), 'b'), + ]); assert.deepStrictEqual( - sequence("a", "b").struct(sequence(true, true, true)).firstCycle(), - [hap(ts(0,third), ts(0,third), "a"), - hap(ts(third, twothirds), ts(third, 0.5), "a"), - hap(ts(third, twothirds), ts(0.5, twothirds), "b"), - hap(ts(twothirds, 1), ts(twothirds, 1), "b") - ] - ) + pure('a') + .struct(sequence(true, [true, false], true)) + .firstCycle(), + sequence('a', ['a', silence], 'a').firstCycle(), + ); assert.deepStrictEqual( - pure("a").struct(sequence(true, [true,false], true)).firstCycle(), - sequence("a", ["a", silence], "a").firstCycle(), - ) + pure('a') + .struct(sequence(true, [true, false], true).invert()) + .firstCycle(), + sequence(silence, [silence, 'a'], silence).firstCycle(), + ); assert.deepStrictEqual( - pure("a").struct(sequence(true, [true,false], true).invert()).firstCycle(), - sequence(silence, [silence, "a"], silence).firstCycle(), - ) + pure('a') + .struct(sequence(true, [true, silence], true)) + .firstCycle(), + sequence('a', ['a', silence], 'a').firstCycle(), + ); + }); + }); + describe('mask()', function () { + it('Can fragment a pattern', function () { + assert.deepStrictEqual(sequence('a', 'b').mask(sequence(true, true, true)).firstCycle(), [ + hap(ts(0, 0.5), ts(0, third), 'a'), + hap(ts(0, 0.5), ts(third, 0.5), 'a'), + hap(ts(0.5, 1), ts(0.5, twothirds), 'b'), + hap(ts(0.5, 1), ts(twothirds, 1), 'b'), + ]); + }); + it('Can mask off parts of a pattern', function () { assert.deepStrictEqual( - pure("a").struct(sequence(true, [true,silence], true)).firstCycle(), - sequence("a", ["a", silence], "a").firstCycle(), - ) - }) - }) - describe('mask()', function() { - it('Can fragment a pattern', function() { - assert.deepStrictEqual( - sequence("a", "b").mask(sequence(true, true, true)).firstCycle(), - [hap(ts(0, 0.5), ts(0,third), "a"), - hap(ts(0, 0.5), ts(third, 0.5), "a"), - hap(ts(0.5, 1), ts(0.5, twothirds), "b"), - hap(ts(0.5, 1), ts(twothirds, 1), "b") - ] - ) - }) - it('Can mask off parts of a pattern', function() { - assert.deepStrictEqual( - sequence(["a", "b"], "c").mask(sequence(true, false)).firstCycle(), - sequence(["a","b"], silence).firstCycle() - ) - assert.deepStrictEqual( - sequence("a").mask(sequence(true, false)).firstCycle(), - [hap(ts(0,1),ts(0,0.5), "a")] - ) - }) - }) - describe('invert()', function() { - it('Can invert a binary pattern', function() { + sequence(['a', 'b'], 'c').mask(sequence(true, false)).firstCycle(), + sequence(['a', 'b'], silence).firstCycle(), + ); + assert.deepStrictEqual(sequence('a').mask(sequence(true, false)).firstCycle(), [hap(ts(0, 1), ts(0, 0.5), 'a')]); + }); + }); + describe('invert()', function () { + it('Can invert a binary pattern', function () { assert.deepStrictEqual( sequence(true, false, [true, false]).invert().firstCycle(), - sequence(false, true, [false, true]).firstCycle() - ) - }) - }) - describe('signal()', function() { - it('Can make saw/saw2', function() { + sequence(false, true, [false, true]).firstCycle(), + ); + }); + }); + describe('signal()', function () { + it('Can make saw/saw2', function () { assert.deepStrictEqual( - saw.struct(true,true,true,true).firstCycle(), - sequence(1/8,3/8,5/8,7/8).firstCycle() - ) + saw.struct(true, true, true, true).firstCycle(), + sequence(1 / 8, 3 / 8, 5 / 8, 7 / 8).firstCycle(), + ); assert.deepStrictEqual( - saw2.struct(true,true,true,true).firstCycle(), - sequence(-3/4,-1/4,1/4,3/4).firstCycle() - ) - }) - it('Can make isaw/isaw2', function() { + saw2.struct(true, true, true, true).firstCycle(), + sequence(-3 / 4, -1 / 4, 1 / 4, 3 / 4).firstCycle(), + ); + }); + it('Can make isaw/isaw2', function () { assert.deepStrictEqual( - isaw.struct(true,true,true,true).firstCycle(), - sequence(7/8,5/8,3/8,1/8).firstCycle() - ) + isaw.struct(true, true, true, true).firstCycle(), + sequence(7 / 8, 5 / 8, 3 / 8, 1 / 8).firstCycle(), + ); assert.deepStrictEqual( - isaw2.struct(true,true,true,true).firstCycle(), - sequence(3/4,1/4,-1/4,-3/4).firstCycle() - ) - }) - }) + isaw2.struct(true, true, true, true).firstCycle(), + sequence(3 / 4, 1 / 4, -1 / 4, -3 / 4).firstCycle(), + ); + }); + }); describe('_setContext()', () => { it('Can set the event context', () => { assert.deepStrictEqual( - pure("a")._setContext([[[0,1],[1,2]]]).firstCycle(true), - [hap(ts(0,1), - ts(0,1), - "a", - [[[0,1],[1,2]]] - ) - ] - ) - }) - }) + pure('a') + ._setContext([ + [ + [0, 1], + [1, 2], + ], + ]) + .firstCycle(true), + [ + hap(ts(0, 1), ts(0, 1), 'a', [ + [ + [0, 1], + [1, 2], + ], + ]), + ], + ); + }); + }); describe('_withContext()', () => { it('Can update the event context', () => { assert.deepStrictEqual( - pure("a")._setContext([[[0,1],[1,2]]])._withContext(c => [...c,[[3,4],[3,4]]]).firstCycle(true), - [hap(ts(0,1), - ts(0,1), - "a", - [[[0,1],[1,2]],[[3,4],[3,4]]] - ) - ] - ) - }) - }) - describe("apply", () => { - it('Can apply a function', () => { - assert.deepStrictEqual( - sequence("a", "b")._apply(fast(2)).firstCycle(), - sequence("a", "b").fast(2).firstCycle() - ) - }), - it('Can apply a pattern of functions', () => { - assert.deepStrictEqual( - sequence("a", "b").apply(fast(2)).firstCycle(), - sequence("a", "b").fast(2).firstCycle() - ) - assert.deepStrictEqual( - sequence("a", "b").apply(fast(2),fast(3)).firstCycle(), - sequence("a", "b").fast(2,3).firstCycle() - ) - }) - }) - describe("layer", () => { - it('Can layer up multiple functions', () => { - assert.deepStrictEqual( - sequence(1,2,3).layer(fast(2), pat => pat.add(3,4)).firstCycle(), - stack(sequence(1,2,3).fast(2), sequence(1,2,3).add(3,4)).firstCycle() - ) - }) - }) - describe("early", () => { - it("Can shift an event earlier", () => { - assert.deepStrictEqual( - pure(30)._late(0.25).query(st(1,2)), - [hap(ts(1/4,5/4), ts(1,5/4), 30), hap(ts(5/4,9/4), ts(5/4,2), 30)] - ) - }) - it("Can shift an event earlier, into negative time", () => { - assert.deepStrictEqual( - pure(30)._late(0.25).query(st(0,1)), - [hap(ts(-3/4,1/4), ts(0,1/4), 30), hap(ts(1/4,5/4), ts(1/4,1), 30)] - ) - }) - }) - describe("off", () => { - it("Can offset a transformed pattern from the original", () => { - assert.deepStrictEqual( - pure(30).off(0.25, add(2)).firstCycle(), - stack(pure(30), pure(30).late(0.25).add(2)).firstCycle() - ) - }) - }) - describe("jux", () => { - it("Can juxtapose", () => { - assert.deepStrictEqual( - pure({a: 1}).jux(fast(2))._sortEventsByPart().firstCycle(), - stack(pure({a:1, pan: 0}), pure({a:1, pan: 1}).fast(2))._sortEventsByPart().firstCycle() - ) - }) - }) - describe("juxBy", () => { - it("Can juxtapose by half", () => { - assert.deepStrictEqual( - pure({a: 1}).juxBy(0.5, fast(2))._sortEventsByPart().firstCycle(), - stack(pure({a:1, pan: 0.25}), pure({a:1, pan: 0.75}).fast(2))._sortEventsByPart().firstCycle() - ) - }) - }) - describe("_squeezeJoin", () => { - it("Can squeeze", () => { - assert.deepStrictEqual( - sequence("a", ["a","a"]).fmap(a => fastcat("b", "c"))._squeezeJoin().firstCycle(), - sequence(["b", "c"],[["b", "c"],["b", "c"]]).firstCycle() - ) - }) - }) - describe("ply", () => { - it("Can ply(3)", () => { - assert.deepStrictEqual( - sequence("a", ["b","c"]).ply(3).firstCycle(), - sequence(pure("a").fast(3), [pure("b").fast(3), pure("c").fast(3)]).firstCycle() - ) - }) - }) - describe("chop", () => { - it("Can _chop(2)", () => { - assert.deepStrictEqual( - sequence({sound: "a"}, {sound: "b"})._chop(2).firstCycle(), - sequence({sound: "a", begin: 0, end: 0.5}, - {sound: "a", begin: 0.5, end: 1}, - {sound: "b", begin: 0, end: 0.5}, - {sound: "b", begin: 0.5, end: 1} - ).firstCycle() + pure('a') + ._setContext([ + [ + [0, 1], + [1, 2], + ], + ]) + ._withContext((c) => [ + ...c, + [ + [3, 4], + [3, 4], + ], + ]) + .firstCycle(true), + [ + hap(ts(0, 1), ts(0, 1), 'a', [ + [ + [0, 1], + [1, 2], + ], + [ + [3, 4], + [3, 4], + ], + ]), + ], ); }); - it("Can chop(2,3)", () => { + }); + describe('apply', () => { + it('Can apply a function', () => { + assert.deepStrictEqual(sequence('a', 'b')._apply(fast(2)).firstCycle(), sequence('a', 'b').fast(2).firstCycle()); + }), + it('Can apply a pattern of functions', () => { + assert.deepStrictEqual(sequence('a', 'b').apply(fast(2)).firstCycle(), sequence('a', 'b').fast(2).firstCycle()); + assert.deepStrictEqual( + sequence('a', 'b').apply(fast(2), fast(3)).firstCycle(), + sequence('a', 'b').fast(2, 3).firstCycle(), + ); + }); + }); + describe('layer', () => { + it('Can layer up multiple functions', () => { assert.deepStrictEqual( - pure({sound: "a"}).fast(2).chop(2,3)._sortEventsByPart().firstCycle(), - sequence([{sound: "a", begin: 0, end: 0.5}, - {sound: "a", begin: 0.5, end: 1}], - [{sound: "a", begin: 0, end: 1/3}, - {sound: "a", begin: 1/3, end: 2/3}, - {sound: "a", begin: 2/3, end: 1} - ])._sortEventsByPart().firstCycle() - ) - }) - }) - describe("range2", () => { - it("Can change the range of a bipolar pattern", () => { + sequence(1, 2, 3) + .layer(fast(2), (pat) => pat.add(3, 4)) + .firstCycle(), + stack(sequence(1, 2, 3).fast(2), sequence(1, 2, 3).add(3, 4)).firstCycle(), + ); + }); + }); + describe('early', () => { + it('Can shift an event earlier', () => { + assert.deepStrictEqual(pure(30)._late(0.25).query(st(1, 2)), [ + hap(ts(1 / 4, 5 / 4), ts(1, 5 / 4), 30), + hap(ts(5 / 4, 9 / 4), ts(5 / 4, 2), 30), + ]); + }); + it('Can shift an event earlier, into negative time', () => { + assert.deepStrictEqual(pure(30)._late(0.25).query(st(0, 1)), [ + hap(ts(-3 / 4, 1 / 4), ts(0, 1 / 4), 30), + hap(ts(1 / 4, 5 / 4), ts(1 / 4, 1), 30), + ]); + }); + }); + describe('off', () => { + it('Can offset a transformed pattern from the original', () => { assert.deepStrictEqual( - sequence(-1,-0.5,0,0.5).range2(1000,1100).firstCycle(), - sequence(1000,1025,1050,1075).firstCycle() - ) - }) - }) -}) + pure(30).off(0.25, add(2)).firstCycle(), + stack(pure(30), pure(30).late(0.25).add(2)).firstCycle(), + ); + }); + }); + describe('jux', () => { + it('Can juxtapose', () => { + assert.deepStrictEqual( + pure({ a: 1 }).jux(fast(2))._sortEventsByPart().firstCycle(), + stack(pure({ a: 1, pan: 0 }), pure({ a: 1, pan: 1 }).fast(2)) + ._sortEventsByPart() + .firstCycle(), + ); + }); + }); + describe('juxBy', () => { + it('Can juxtapose by half', () => { + assert.deepStrictEqual( + pure({ a: 1 }).juxBy(0.5, fast(2))._sortEventsByPart().firstCycle(), + stack(pure({ a: 1, pan: 0.25 }), pure({ a: 1, pan: 0.75 }).fast(2)) + ._sortEventsByPart() + .firstCycle(), + ); + }); + }); + describe('_squeezeJoin', () => { + it('Can squeeze', () => { + assert.deepStrictEqual( + sequence('a', ['a', 'a']) + .fmap((a) => fastcat('b', 'c')) + ._squeezeJoin() + .firstCycle(), + sequence( + ['b', 'c'], + [ + ['b', 'c'], + ['b', 'c'], + ], + ).firstCycle(), + ); + }); + }); + describe('ply', () => { + it('Can ply(3)', () => { + assert.deepStrictEqual( + sequence('a', ['b', 'c']).ply(3).firstCycle(), + sequence(pure('a').fast(3), [pure('b').fast(3), pure('c').fast(3)]).firstCycle(), + ); + }); + }); + describe('chop', () => { + it('Can _chop(2)', () => { + assert.deepStrictEqual( + sequence({ sound: 'a' }, { sound: 'b' })._chop(2).firstCycle(), + sequence( + { sound: 'a', begin: 0, end: 0.5 }, + { sound: 'a', begin: 0.5, end: 1 }, + { sound: 'b', begin: 0, end: 0.5 }, + { sound: 'b', begin: 0.5, end: 1 }, + ).firstCycle(), + ); + }); + it('Can chop(2,3)', () => { + assert.deepStrictEqual( + pure({ sound: 'a' }).fast(2).chop(2, 3)._sortEventsByPart().firstCycle(), + sequence( + [ + { sound: 'a', begin: 0, end: 0.5 }, + { sound: 'a', begin: 0.5, end: 1 }, + ], + [ + { sound: 'a', begin: 0, end: 1 / 3 }, + { sound: 'a', begin: 1 / 3, end: 2 / 3 }, + { sound: 'a', begin: 2 / 3, end: 1 }, + ], + ) + ._sortEventsByPart() + .firstCycle(), + ); + }); + }); + describe('range2', () => { + it('Can change the range of a bipolar pattern', () => { + assert.deepStrictEqual( + sequence(-1, -0.5, 0, 0.5).range2(1000, 1100).firstCycle(), + sequence(1000, 1025, 1050, 1075).firstCycle(), + ); + }); + }); +}); From 2797856f50521a8a41688dfb1f05f124b0130b1c Mon Sep 17 00:00:00 2001 From: alex Date: Wed, 13 Apr 2022 08:40:04 +0100 Subject: [PATCH 64/78] sort exports --- packages/core/strudel.mjs | 86 +++++++++++++++++++-------------------- 1 file changed, 43 insertions(+), 43 deletions(-) diff --git a/packages/core/strudel.mjs b/packages/core/strudel.mjs index 2a66e535c..9a76b2974 100644 --- a/packages/core/strudel.mjs +++ b/packages/core/strudel.mjs @@ -1243,52 +1243,52 @@ Pattern.prototype.define('hush', (pat) => pat.hush(), { patternified: false, com Pattern.prototype.define('bypass', (pat) => pat.bypass(on), { patternified: true, composable: true }); export { - Fraction, - TimeSpan, - Hap, - Pattern, - pure, - stack, - slowcat, - fastcat, - cat, - timeCat, - sequence, - polymeterSteps, - polymeter, - pm, - polyrhythm, - pr, - reify, - silence, - fast, - slow, - early, - late, - rev, add, - sub, - mul, - div, - union, - range, - range2, - every, - when, - off, - jux, - juxBy, append, - superimpose, - struct, - mask, - invert, - inv, - id, - echo, - iter, - iterBack, + cat, chunk, chunkBack, + div, + early, + echo, + every, + fast, + fastcat, + Fraction, + Hap, + id, + inv, + invert, + iter, + iterBack, + jux, + juxBy, + late, + mask, + mul, + off, + Pattern, ply, + pm, + polymeter, + polymeterSteps, + polyrhythm, + pr, + pure, + range, + range2, + reify, + rev, + sequence, + silence, + slow, + slowcat, + stack, + struct, + sub, + superimpose, + timeCat, + TimeSpan, + union, + when, }; From fb826bed70eeb12a951ed22c9ebb0a80308eb4cb Mon Sep 17 00:00:00 2001 From: alex Date: Wed, 13 Apr 2022 08:44:38 +0100 Subject: [PATCH 65/78] sort classes to top of export list --- packages/core/strudel.mjs | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/packages/core/strudel.mjs b/packages/core/strudel.mjs index 9a76b2974..24c2d7232 100644 --- a/packages/core/strudel.mjs +++ b/packages/core/strudel.mjs @@ -1243,6 +1243,10 @@ Pattern.prototype.define('hush', (pat) => pat.hush(), { patternified: false, com Pattern.prototype.define('bypass', (pat) => pat.bypass(on), { patternified: true, composable: true }); export { + Fraction, + Hap, + Pattern, + TimeSpan, add, append, cat, @@ -1254,8 +1258,6 @@ export { every, fast, fastcat, - Fraction, - Hap, id, inv, invert, @@ -1267,7 +1269,6 @@ export { mask, mul, off, - Pattern, ply, pm, polymeter, @@ -1288,7 +1289,6 @@ export { sub, superimpose, timeCat, - TimeSpan, union, when, }; From 9eba8839783f86f7cce98557ca3d15afe2924f33 Mon Sep 17 00:00:00 2001 From: alex Date: Wed, 13 Apr 2022 09:03:31 +0100 Subject: [PATCH 66/78] move some utilities to utils.mjs --- packages/core/strudel.mjs | 32 +------------------------------- packages/core/util.mjs | 30 ++++++++++++++++++++++++++++++ packages/core/value.mjs | 2 +- 3 files changed, 32 insertions(+), 32 deletions(-) diff --git a/packages/core/strudel.mjs b/packages/core/strudel.mjs index 24c2d7232..35f16d4c4 100644 --- a/packages/core/strudel.mjs +++ b/packages/core/strudel.mjs @@ -1,35 +1,5 @@ import Fraction from './fraction.mjs'; -import { isNote, toMidi, compose } from './util.mjs'; - -// Removes 'None' values from given list -const removeUndefineds = (xs) => xs.filter((x) => x != undefined); - -const flatten = (arr) => [].concat(...arr); - -const id = (a) => a; - -const listRange = (min, max) => Array.from({ length: max - min + 1 }, (_, i) => i + min); - -export function curry(func, overload) { - const fn = function curried(...args) { - if (args.length >= func.length) { - return func.apply(this, args); - } else { - const partial = function (...args2) { - return curried.apply(this, args.concat(args2)); - }; - if (overload) { - overload(partial, args); - } - return partial; - } - }; - if (overload) { - // overload function without args... needed for chordBass.transpose(2) - overload(fn, []); - } - return fn; -} +import { isNote, toMidi, compose, removeUndefineds, flatten, id, listRange, curry } from './util.mjs'; class TimeSpan { constructor(begin, end) { diff --git a/packages/core/util.mjs b/packages/core/util.mjs index 719918e31..2de7a8e6b 100644 --- a/packages/core/util.mjs +++ b/packages/core/util.mjs @@ -53,3 +53,33 @@ export const pipe = (...funcs) => { }; export const compose = (...funcs) => pipe(...funcs.reverse()); + +// Removes 'None' values from given list +export const removeUndefineds = (xs) => xs.filter((x) => x != undefined); + +export const flatten = (arr) => [].concat(...arr); + +export const id = (a) => a; + +export const listRange = (min, max) => Array.from({ length: max - min + 1 }, (_, i) => i + min); + +export function curry(func, overload) { + const fn = function curried(...args) { + if (args.length >= func.length) { + return func.apply(this, args); + } else { + const partial = function (...args2) { + return curried.apply(this, args.concat(args2)); + }; + if (overload) { + overload(partial, args); + } + return partial; + } + }; + if (overload) { + // overload function without args... needed for chordBass.transpose(2) + overload(fn, []); + } + return fn; +} diff --git a/packages/core/value.mjs b/packages/core/value.mjs index 1484a800b..878e6b1f1 100644 --- a/packages/core/value.mjs +++ b/packages/core/value.mjs @@ -1,4 +1,4 @@ -import { curry } from './strudel.mjs'; +import { curry } from './util.mjs'; function unionWithObj(a, b, func) { const common = Object.keys(a).filter((k) => Object.keys(b).includes(k)); From ec10f349bd9b0df0c4851ae7719fb04544557fea Mon Sep 17 00:00:00 2001 From: alex Date: Wed, 13 Apr 2022 15:51:23 +0100 Subject: [PATCH 67/78] Add `_zoom` and `linger` --- packages/core/strudel.mjs | 125 ++++++++++++++++++++++++-------------- 1 file changed, 79 insertions(+), 46 deletions(-) diff --git a/packages/core/strudel.mjs b/packages/core/strudel.mjs index 35f16d4c4..44343adb9 100644 --- a/packages/core/strudel.mjs +++ b/packages/core/strudel.mjs @@ -39,14 +39,24 @@ class TimeSpan { } withTime(func_time) { - // Applies given function to both the begin and end time value of the timespan""" + // Applies given function to both the begin and end time of the timespan""" return new TimeSpan(func_time(this.begin), func_time(this.end)); } + withEnd(func_time) { - // Applies given function to both the begin and end time value of the timespan""" + // Applies given function to the end time of the timespan""" return new TimeSpan(this.begin, func_time(this.end)); } + withCycle(func_time) { + // Like withTime, but time is relative to relative to the cycle (i.e. the + // sam of the start of the timespan) + const sam = this.begin.sam(); + const b = sam.add(func_time(this.begin.sub(sam))); + const e = sam.add(func_time(this.end.sub(sam))); + return new TimeSpan(b, e); + } + intersection(other) { // Intersection of two timespans, returns None if they don't intersect. const intersect_begin = this.begin.max(other.begin); @@ -492,14 +502,14 @@ class Pattern { // Assumes source pattern of numbers in range 0..1 range(min, max) { - return this.mul(max-min).add(min); + return this.mul(max - min).add(min); } // Assumes source pattern of numbers in range -1..1 range2(min, max) { - return _fromBipolar(this).range(min,max); + return _fromBipolar(this).range(min, max); } - + union(other) { return this._opleft(other, (a) => (b) => Object.assign({}, a, b)); } @@ -666,12 +676,12 @@ class Pattern { } _chop(n) { - const slices = Array.from({length: n}, (x, i) => i); - const slice_objects = slices.map(i => ({begin: i/n, end: (i+1)/n})); - const func = function(o) { - return(sequence(slice_objects.map(slice_o => Object.assign({}, o, slice_o)))) - } - return(this._squeezeBind(func)); + const slices = Array.from({ length: n }, (x, i) => i); + const slice_objects = slices.map((i) => ({ begin: i / n, end: (i + 1) / n })); + const func = function (o) { + return sequence(slice_objects.map((slice_o) => Object.assign({}, o, slice_o))); + }; + return this._squeezeBind(func); } // cpm = cycles per minute @@ -691,6 +701,26 @@ class Pattern { return this._early(Fraction(0).sub(offset)); } + _zoom(s, e) { + const d = e.sub(s); + return this.withQuerySpan((span) => span.withCycle((t) => t.mul(d).add(s))) + .withEventSpan((span) => span.withCycle((t) => t.sub(s).div(d))) + ._splitQueries(); + } + + _zoomArc(a) { + return this.zoom(a.begin, a.end); + } + + _linger(t) { + if (t == 0) { + return silence; + } else if (t < 0) { + return this._zoom(t.add(1), 1)._slow(t); + } + return this._zoom(0, t)._slow(t); + } + struct(...binary_pats) { // Re structure the pattern according to a binary pattern (false values are dropped) const binary_pat = sequence(binary_pats); @@ -872,19 +902,20 @@ class Pattern { // methods of Pattern that get callable factories Pattern.prototype.patternified = [ 'apply', - 'fast', - 'slow', - 'ply', 'chop', - 'cpm', - 'early', - 'late', - 'duration', - 'legato', - 'velocity', - 'segment', 'color', - 'jux' + 'cpm', + 'duration', + 'early', + 'fast', + 'jux', + 'late', + 'legato', + 'linger', + 'ply', + 'segment', + 'slow', + 'velocity', ]; // methods that create patterns, which are added to patternified Pattern methods Pattern.prototype.factories = { pure, stack, slowcat, fastcat, cat, timeCat, sequence, polymeter, pm, polyrhythm, pr }; @@ -1072,35 +1103,36 @@ function pr(args) { polyrhythm(args); } -const fast = curry((a, pat) => pat.fast(a)); -const slow = curry((a, pat) => pat.slow(a)); -const early = curry((a, pat) => pat.early(a)); -const late = curry((a, pat) => pat.late(a)); -const rev = (pat) => pat.rev(); const add = curry((a, pat) => pat.add(a)); -const sub = curry((a, pat) => pat.sub(a)); -const mul = curry((a, pat) => pat.mul(a)); -const div = curry((a, pat) => pat.div(a)); -const union = curry((a, pat) => pat.union(a)); -const range = curry((a, b, pat) => pat.range(a,b)); -const range2 = curry((a, b, pat) => pat.range2(a,b)); -const every = curry((i, f, pat) => pat.every(i, f)); -const when = curry((binary, f, pat) => pat.when(binary, f)); -const off = curry((t, f, pat) => pat.off(t, f)); -const jux = curry((f, pat) => pat.jux(f)); -const juxBy = curry((by, f, pat) => pat.juxBy(by, f)); const append = curry((a, pat) => pat.append(a)); -const superimpose = curry((array, pat) => pat.superimpose(...array)); -const struct = curry((a, pat) => pat.struct(a)); -const mask = curry((a, pat) => pat.mask(a)); -const echo = curry((a, b, c, pat) => pat.echo(a, b, c)); -const invert = (pat) => pat.invert(); -const inv = (pat) => pat.inv(); -const iter = curry((a, pat) => pat.iter(a)); -const iterBack = curry((a, pat) => pat.iter(a)); const chunk = curry((a, pat) => pat.chunk(a)); const chunkBack = curry((a, pat) => pat.chunkBack(a)); +const div = curry((a, pat) => pat.div(a)); +const early = curry((a, pat) => pat.early(a)); +const echo = curry((a, b, c, pat) => pat.echo(a, b, c)); +const every = curry((i, f, pat) => pat.every(i, f)); +const fast = curry((a, pat) => pat.fast(a)); +const inv = (pat) => pat.inv(); +const invert = (pat) => pat.invert(); +const iter = curry((a, pat) => pat.iter(a)); +const iterBack = curry((a, pat) => pat.iter(a)); +const jux = curry((f, pat) => pat.jux(f)); +const juxBy = curry((by, f, pat) => pat.juxBy(by, f)); +const late = curry((a, pat) => pat.late(a)); +const linger = curry((a, pat) => pat.linger(a)); +const mask = curry((a, pat) => pat.mask(a)); +const mul = curry((a, pat) => pat.mul(a)); +const off = curry((t, f, pat) => pat.off(t, f)); const ply = curry((a, pat) => pat.ply(a)); +const range = curry((a, b, pat) => pat.range(a, b)); +const range2 = curry((a, b, pat) => pat.range2(a, b)); +const rev = (pat) => pat.rev(); +const slow = curry((a, pat) => pat.slow(a)); +const struct = curry((a, pat) => pat.struct(a)); +const sub = curry((a, pat) => pat.sub(a)); +const superimpose = curry((array, pat) => pat.superimpose(...array)); +const union = curry((a, pat) => pat.union(a)); +const when = curry((binary, f, pat) => pat.when(binary, f)); // problem: curried functions with spread arguments must have pat at the beginning // with this, we cannot keep the pattern open at the end.. solution for now: use array to keep using pat as last arg @@ -1236,6 +1268,7 @@ export { jux, juxBy, late, + linger, mask, mul, off, From ec3371c4ffcbeae283394891b78e9363c8185a70 Mon Sep 17 00:00:00 2001 From: alex Date: Wed, 13 Apr 2022 15:59:36 +0100 Subject: [PATCH 68/78] Allow linger to accept non-fractions --- packages/core/strudel.mjs | 2 ++ packages/core/test/pattern.test.mjs | 10 +++++++++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/packages/core/strudel.mjs b/packages/core/strudel.mjs index 1180ad6d4..cd9c3b25f 100644 --- a/packages/core/strudel.mjs +++ b/packages/core/strudel.mjs @@ -706,6 +706,8 @@ class Pattern { } _zoom(s, e) { + e = Fraction(e) + s = Fraction(s) const d = e.sub(s); return this.withQuerySpan((span) => span.withCycle((t) => t.mul(d).add(s))) .withEventSpan((span) => span.withCycle((t) => t.sub(s).div(d))) diff --git a/packages/core/test/pattern.test.mjs b/packages/core/test/pattern.test.mjs index afe6bf771..26450b2ed 100644 --- a/packages/core/test/pattern.test.mjs +++ b/packages/core/test/pattern.test.mjs @@ -1,6 +1,6 @@ import Fraction from 'fraction.js'; -import { strict as assert } from 'assert'; +import { deepStrictEqual, strict as assert } from 'assert'; import { TimeSpan, @@ -656,4 +656,12 @@ describe('Pattern', function () { ); }); }); + describe('linger', () => { + it('Can linger on the first quarter of a cycle', () => { + assert.deepStrictEqual( + sequence(0, 1, 2, 3, 4, 5, 6, 7).linger(0.25).firstCycle(), + sequence(0, 1, 0, 1, 0, 1, 0, 1).firstCycle(), + ); + }); + }); }); From 0df67fa9201bf635e4464cacb9f8f119ab630bdf Mon Sep 17 00:00:00 2001 From: alex Date: Wed, 13 Apr 2022 16:04:57 +0100 Subject: [PATCH 69/78] patternify zoom --- packages/core/strudel.mjs | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/packages/core/strudel.mjs b/packages/core/strudel.mjs index cd9c3b25f..5420e8046 100644 --- a/packages/core/strudel.mjs +++ b/packages/core/strudel.mjs @@ -1197,6 +1197,10 @@ Pattern.prototype.chunkBack = function (...args) { args = args.map(reify); return patternify2(Pattern.prototype._chunkBack)(...args, this); }; +Pattern.prototype.zoom = function (...args) { + args = args.map(reify); + return patternify2(Pattern.prototype._zoom)(...args, this); +} // call this after all Patter.prototype.define calls have been executed! (right before evaluate) Pattern.prototype.bootstrap = function () { From ca4bffe5a1412d67e8b7df76331cf03657e4061d Mon Sep 17 00:00:00 2001 From: alex Date: Wed, 13 Apr 2022 16:20:34 +0100 Subject: [PATCH 70/78] compress --- packages/core/strudel.mjs | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/packages/core/strudel.mjs b/packages/core/strudel.mjs index 5420e8046..5f659e886 100644 --- a/packages/core/strudel.mjs +++ b/packages/core/strudel.mjs @@ -657,15 +657,17 @@ class Pattern { return this.withQuerySpan(qf).withEventSpan(ef)._splitQueries(); } - _compressSpan(span) { - const b = span.begin; - const e = span.end; + _compress(b, e) { if (b > e || b > 1 || e > 1 || b < 0 || e < 0) { return silence; } return this._fastGap(Fraction(1).div(e.sub(b)))._late(b); } + _compressSpan(span) { + return this._compress(span.begin, span.end); + } + _fast(factor) { const fastQuery = this.withQueryTime((t) => t.mul(factor)); return fastQuery.withEventTime((t) => t.div(factor)); @@ -1041,7 +1043,7 @@ function timeCat(...timepats) { const pats = []; for (const [time, pat] of timepats) { const end = begin.add(time); - pats.push(reify(pat)._compressSpan(new TimeSpan(begin.div(total), end.div(total)))); + pats.push(reify(pat)._compress(begin.div(total), end.div(total))); begin = end; } return stack(...pats); @@ -1201,6 +1203,10 @@ Pattern.prototype.zoom = function (...args) { args = args.map(reify); return patternify2(Pattern.prototype._zoom)(...args, this); } +Pattern.prototype.compress = function (...args) { + args = args.map(reify); + return patternify2(Pattern.prototype._compress)(...args, this); +} // call this after all Patter.prototype.define calls have been executed! (right before evaluate) Pattern.prototype.bootstrap = function () { From 97044fee1655011aef77b4bcab275e799f1cc2ca Mon Sep 17 00:00:00 2001 From: alex Date: Wed, 13 Apr 2022 16:25:58 +0100 Subject: [PATCH 71/78] build --- docs/asset-manifest.json | 10 +- docs/index.html | 2 +- docs/static/css/main.0d689283.css.map | 2 +- docs/static/js/787.1c52cb78.chunk.js | 2 + ...chunk.js.map => 787.1c52cb78.chunk.js.map} | 2 +- docs/static/js/787.8f7ec9e0.chunk.js | 2 - docs/static/js/main.194ee673.js | 3 + ...CENSE.txt => main.194ee673.js.LICENSE.txt} | 0 docs/static/js/main.194ee673.js.map | 1 + docs/static/js/main.77e38ada.js | 3 - docs/static/js/main.77e38ada.js.map | 1 - docs/tutorial/index.097d520a.js | 95 ------------------- docs/tutorial/index.097d520a.js.map | 1 - docs/tutorial/index.3b5f65fb.js | 75 +++++++++++++++ docs/tutorial/index.3b5f65fb.js.map | 1 + ...{index.999678aa.css => index.757e9f9d.css} | 2 +- ...99678aa.css.map => index.757e9f9d.css.map} | 2 +- docs/tutorial/index.html | 2 +- 18 files changed, 93 insertions(+), 113 deletions(-) create mode 100644 docs/static/js/787.1c52cb78.chunk.js rename docs/static/js/{787.8f7ec9e0.chunk.js.map => 787.1c52cb78.chunk.js.map} (98%) delete mode 100644 docs/static/js/787.8f7ec9e0.chunk.js create mode 100644 docs/static/js/main.194ee673.js rename docs/static/js/{main.77e38ada.js.LICENSE.txt => main.194ee673.js.LICENSE.txt} (100%) create mode 100644 docs/static/js/main.194ee673.js.map delete mode 100644 docs/static/js/main.77e38ada.js delete mode 100644 docs/static/js/main.77e38ada.js.map delete mode 100644 docs/tutorial/index.097d520a.js delete mode 100644 docs/tutorial/index.097d520a.js.map create mode 100644 docs/tutorial/index.3b5f65fb.js create mode 100644 docs/tutorial/index.3b5f65fb.js.map rename docs/tutorial/{index.999678aa.css => index.757e9f9d.css} (99%) rename docs/tutorial/{index.999678aa.css.map => index.757e9f9d.css.map} (99%) diff --git a/docs/asset-manifest.json b/docs/asset-manifest.json index de6fcc70a..cd234d61c 100644 --- a/docs/asset-manifest.json +++ b/docs/asset-manifest.json @@ -1,16 +1,16 @@ { "files": { "main.css": "/static/css/main.0d689283.css", - "main.js": "/static/js/main.77e38ada.js", - "static/js/787.8f7ec9e0.chunk.js": "/static/js/787.8f7ec9e0.chunk.js", + "main.js": "/static/js/main.194ee673.js", + "static/js/787.1c52cb78.chunk.js": "/static/js/787.1c52cb78.chunk.js", "static/media/logo.svg": "/static/media/logo.ac95051720b3dccfe511e0e02d8e1029.svg", "index.html": "/index.html", "main.0d689283.css.map": "/static/css/main.0d689283.css.map", - "main.77e38ada.js.map": "/static/js/main.77e38ada.js.map", - "787.8f7ec9e0.chunk.js.map": "/static/js/787.8f7ec9e0.chunk.js.map" + "main.194ee673.js.map": "/static/js/main.194ee673.js.map", + "787.1c52cb78.chunk.js.map": "/static/js/787.1c52cb78.chunk.js.map" }, "entrypoints": [ "static/css/main.0d689283.css", - "static/js/main.77e38ada.js" + "static/js/main.194ee673.js" ] } \ No newline at end of file diff --git a/docs/index.html b/docs/index.html index e2a307c06..dce2edb31 100644 --- a/docs/index.html +++ b/docs/index.html @@ -1 +1 @@ -Strudel REPL
\ No newline at end of file +Strudel REPL
\ No newline at end of file diff --git a/docs/static/css/main.0d689283.css.map b/docs/static/css/main.0d689283.css.map index 4c3ab00e2..a82cd1726 100644 --- a/docs/static/css/main.0d689283.css.map +++ b/docs/static/css/main.0d689283.css.map @@ -1 +1 @@ -{"version":3,"file":"static/css/main.0d689283.css","mappings":"AAAA,KAKE,kCAAmC,CACnC,iCAAkC,CAJlC,mIAKF,CAEA,KACE,uEAEF,CCVA,YAIE,UAAY,CACZ,aAAc,CAHd,qBAAsB,CACtB,YAGF,CAIA,kBACE,aACF,CACA,qEAEE,aACF,CAEA,uDACE,qBACF,CAIA,oBAEE,wBAAyB,CADzB,2BAA4B,CAE5B,kBACF,CAEA,uBAIE,UAAW,CAFX,cAAe,CADf,mBAAoB,CAEpB,gBAAiB,CAEjB,kBACF,CAEA,yBAA2B,UAAc,CACzC,gCAAkC,UAAa,CAI/C,mBACE,0BAA4B,CAC5B,iBAAkB,CAClB,OACF,CAEA,2CACE,4BACF,CACA,kCAGE,eAAgB,CADhB,kBAAoB,CADpB,UAGF,CACA,sCACE,SACF,CACA,gJAE2D,sBAAyB,CACpF,+JAEgE,sBAAyB,CACzF,eAAiB,uBAA0B,CAM3C,yBAEE,IAAM,4BAA+B,CAEvC,CACA,iBAEE,IAAM,4BAA+B,CAEvC,CAKA,QAAU,oBAAqB,CAAE,uBAA0B,CAE3D,mBAEiC,QAAS,CAAxC,MAAO,CACP,eAAgB,CAFhB,iBAAkB,CACT,OAAQ,CAAE,SAErB,CACA,kBACE,0BAA2B,CACnB,QAAS,CACjB,iBAAkB,CADlB,KAEF,CAIA,yBAA0B,UAAY,CACtC,wBAAyB,UAAY,CACrC,aAAc,UAAY,CAC1B,aAAc,UAAY,CAC1B,sBAAwB,eAAkB,CAC1C,OAAQ,iBAAmB,CAC3B,SAAU,yBAA2B,CACrC,kBAAmB,4BAA8B,CAEjD,0BAA2B,UAAY,CACvC,uBAAwB,UAAY,CACpC,yBAA0B,UAAY,CACtC,sBAAuB,UAAY,CAKnC,6BAA8B,UAAY,CAC1C,oDAAsD,UAAY,CAClE,0BAA2B,UAAY,CACvC,yBAA0B,UAAY,CACtC,2BAA4B,UAAY,CAExC,mDAA6B,UAAY,CACzC,0BAA2B,UAAY,CACvC,0BAA2B,UAAY,CACvC,sBAAuB,UAAY,CACnC,4BAA6B,UAAY,CACzC,qBAAsB,UAAY,CAClC,uBAAwB,UAAY,CAGpC,wCAAiB,SAAY,CAE7B,sBAAwB,uBAA0B,CAIlD,+CAAgD,UAAY,CAC5D,kDAAmD,UAAY,CAC/D,wBAA0B,6BAAmC,CAC7D,kCAAmC,kBAAoB,CAOvD,YAGE,eAAiB,CADjB,eAAgB,CADhB,iBAGF,CAEA,mBAME,WAAY,CAFZ,mBAAoB,CAAE,kBAAmB,CAGzC,YAAa,CANb,yBAA2B,CAI3B,mBAAoB,CAGpB,iBAAkB,CAClB,SACF,CACA,kBAEE,mCAAoC,CADpC,iBAEF,CAKA,qGAGE,YAAa,CACb,YAAa,CAHb,iBAAkB,CAClB,SAGF,CACA,uBAEE,iBAAkB,CAClB,iBAAkB,CAFlB,OAAQ,CAAE,KAGZ,CACA,uBACE,QAAS,CAAE,MAAO,CAElB,iBAAkB,CADlB,iBAEF,CACA,6BACY,QAAS,CAAnB,OACF,CACA,0BACW,QAAS,CAAlB,MACF,CAEA,oBACsB,MAAO,CAC3B,eAAgB,CADhB,iBAAkB,CAAW,KAAM,CAEnC,SACF,CACA,mBAGE,oBAAqB,CADrB,WAAY,CAGZ,mBAAoB,CADpB,kBAAmB,CAHnB,kBAKF,CACA,2BAGE,yBAA2B,CAC3B,qBAAuB,CAHvB,iBAAkB,CAClB,SAGF,CACA,8BAEU,QAAS,CADjB,iBAAkB,CAClB,KAAM,CACN,SACF,CACA,uBAEE,cAAe,CADf,iBAAkB,CAElB,SACF,CACA,uCAAyC,4BAA8B,CACvE,4CAA8C,4BAA8B,CAE5E,kBACE,WAAY,CACZ,cACF,CACA,qEAUE,gBAAiB,CAMjB,uCAAwC,CAExC,oCAAkC,CAAlC,4BAAkC,CAblC,sBAAuB,CAF0B,eAAgB,CACjE,cAAe,CAQf,aAAc,CANd,mBAAoB,CACpB,iBAAkB,CAUlB,yCAA0C,CAC1C,iCAAkC,CAPlC,mBAAoB,CAHpB,QAAS,CAOT,gBAAiB,CADjB,iBAAkB,CALlB,eAAgB,CAIhB,SAMF,CACA,+EAEE,oBAAqB,CACrB,oBAAqB,CACrB,iBACF,CAEA,2BAE6B,QAAS,CAApC,MAAO,CADP,iBAAkB,CACT,OAAQ,CAAE,KAAM,CACzB,SACF,CAEA,uBAGE,YAAc,CAFd,iBAAkB,CAClB,SAEF,CAIA,oBAAsB,aAAgB,CAEtC,iBACE,YACF,CAGA,mGAME,sBACF,CAEA,oBAGE,QAAS,CACT,eAAgB,CAHhB,iBAAkB,CAIlB,iBAAkB,CAHlB,UAIF,CAEA,mBAEE,mBAAoB,CADpB,iBAEF,CACA,wBAA0B,eAAkB,CAE5C,uBAEE,iBAAkB,CADlB,iBAAkB,CAElB,SACF,CAKA,sEACE,kBACF,CAEA,qBAAuB,kBAAqB,CAC5C,yCAA2C,kBAAqB,CAChE,sBAAwB,gBAAmB,CAC3C,mGAA6G,kBAAqB,CAClI,kHAA4H,kBAAqB,CAEjJ,cACE,qBAAsB,CACtB,mCACF,CAGA,iBAAmB,kBAAqB,CAExC,aAEE,mCACE,iBACF,CACF,CAGA,wBAA0B,UAAa,CAGvC,6BAA+B,eAAkB,CCjVjD,0BACE,wBAAyB,CACzB,UACF,CAEA,mCACE,kBAAmB,CAEnB,WAAY,CADZ,aAEF,CAEA,6HAGE,aACF,CAEA,kCACE,0BACF,CAIA,sFACE,oCACF,CAMA,iGACE,+BACF,CAEA,gJAGE,+BACF,CAEA,+JAGE,+BACF,CAEA,iDACE,yBACF,CAEA,2BACE,aACF,CAEA,4BACE,aACF,CAEA,8BACE,UACF,CAEA,sDAEE,aACF,CAEA,2BACE,aACF,CAEA,wBACE,aACF,CAEA,0BACE,aACF,CAEA,uBACE,aACF,CAEA,0BACE,aACF,CAEA,4BACE,aACF,CAEA,2BACE,aACF,CAEA,4BACE,aACF,CAEA,uBACE,aACF,CAEA,wBACE,aACF,CAMA,yDACE,aACF,CAMA,mFAEE,aACF,CAGA,yBAEE,wBAAyB,CADzB,UAEF,CAEA,2CAEE,oBAAuB,CADvB,yBAEF;;AC5IA;;CAAc,CAAd,iBCWE,sBAAwD,CAHxD,qBDRY,CAAd,eCgBE,eDhBY,CAAd,KC4BE,6BAA8B,CAG9B,gMAAsP,CAJtP,eAAgB,CAGhB,UD9BY,CAAd,KCyCE,mBAAoB,CADpB,QDxCY,CAAd,GCqDE,oBAAqB,CADrB,aAAc,CADd,QDnDY,CAAd,oBC6DE,wCAAiC,CAAjC,gCD7DY,CAAd,kBC0EE,iBAAkB,CAClB,mBD3EY,CAAd,ECmFE,aAAc,CACd,uBDpFY,CAAd,SC6FE,kBD7FY,CAAd,kBCyGE,mGAAyI,CACzI,aD1GY,CAAd,MCkHE,aDlHY,CAAd,QC2HE,aAAc,CACd,aAAc,CACd,iBAAkB,CAClB,uBD9HY,CAAd,ICkIE,aDlIY,CAAd,ICsIE,SDtIY,CAAd,MCkJE,wBAAyB,CADzB,oBAAqB,CADrB,aDhJY,CAAd,sCCmKE,aAAc,CAHd,mBAAoB,CACpB,cAAe,CACf,mBAAoB,CAEpB,QAAS,CACT,SDrKY,CAAd,cC8KE,mBD9KY,CAAd,gDC0LE,yBAA0B,CAC1B,4BAA6B,CAC7B,qBD5LY,CAAd,gBCoME,YDpMY,CAAd,iBC4ME,eD5MY,CAAd,SCoNE,uBDpNY,CAAd,wDC6NE,WD7NY,CAAd,cCsOE,4BAA6B,CAC7B,mBDvOY,CAAd,4BC+OE,uBD/OY,CAAd,6BCwPE,yBAA0B,CAC1B,YDzPY,CAAd,QCiQE,iBDjQY,CAAd,mDCqRE,QDrRY,CAAd,SCyRE,QDzRY,CAAd,gBC0RE,SD1RY,CAAd,WCoSE,eAAgB,CAChB,QAAS,CACT,SDtSY,CAAd,SC8SE,eD9SY,CAAd,qECyTE,aAAwC,CADxC,SDxTY,CAAd,2DCyTE,aAAwC,CADxC,SDxTY,CAAd,yCCyTE,aAAwC,CADxC,SDxTY,CAAd,qBCkUE,cDlUY,CAAd,UCyUE,cDzUY,CAAd,+CC0VE,aAAc,CACd,qBD3VY,CAAd,UCqWE,WAAY,CADZ,cDpWY,CAAd,SC6WE,YD7WY,CEAd,i4B,CFCA,OEDA,yCFCoB,CAApB,+DEDA,gGFCoB,CAApB,mDEDA,qEFCoB,CAApB,wDEDA,0CFCoB,CAApB,oDEDA,4CFCoB,CAApB,4DEDA,2BFCoB,CAApB,4DEDA,2BFCoB,CAApB,8DEDA,2BFCoB,CAApB,8DEDA,2BFCoB,CAApB,4DEDA,2BFCoB,CAApB,4DEDA,2BFCoB,CAApB,8DEDA,2BFCoB,CAApB,8DEDA,2BFCoB,CAApB,8DEDA,uBFCoB,CAApB,oDEDA,yCFCoB,CAApB,+DEDA,8CFCoB,CAApB,+DEDA,6BFCoB,CAApB,oDEDA,qFFCoB,CAApB,4DEDA,iOFCoB,CAApB,mFEDA,kBFCoB,CAApB,iFEDA,mBFCoB,CAApB,oDEDA,2HFCoB,CAApB,2DEDA,eFCoB,CAApB,oDEDA,qHFCoB,CAApB,2DEDA,eFCoB,CAApB,oDEDA,mHFCoB,CAApB,2DEDA,eFCoB,CAApB,oDEDA,kGFCoB,CAApB,2DEDA,eFCoB,CAApB,0DEDA,4BFCoB,CAApB,4DEDA,2FFCoB,CAApB,sDEDA,2DFCoB,CAApB,6DEDA,WFCoB,CAApB,4DEDA,WFCoB,CAApB,wDEDA,2BFCoB,CAApB,qDEDA,mPFCoB,CAApB,0DEDA,iKFCoB,CAApB,iEEDA,YFCoB,CAApB,gEEDA,YFCoB,CAApB,uDEDA,oHFCoB,CAApB,uDEDA,sEFCoB,CAApB,0DEDA,+IFCoB,CAApB,0DEDA,sEFCoB,CAApB,qEEDA,qBFCoB,CAApB,0DEDA,0CFCoB,CAApB,OEDA,g+BFCoB,CAApB,mDEDA,sCFCoB,CAApB,qDEDA,gCFCoB,CAApB,uDEDA,gCFCoB,CAApB,wDEDA,gCFCoB,CAApB,yDEDA,gBFCoB,CAApB,yDEDA,cFCoB,CAApB,oDEDA,kCFCoB,CAApB,uDEDA,mBFCoB,CAApB,uDEDA,mBFCoB,CAApB,yDEDA,oCFCoB,CAApB,oEEDA,iBFCoB,CAApB,mEEDA,oBFCoB,CAApB,oEEDA,iBFCoB,CAApB,mEEDA,oBFCoB,CAApB,yEEDA,oCFCoB,CAApB,sDEDA,YFCoB,CAApB,sDEDA,YFCoB,CAApB,sDEDA,YFCoB,CAApB,sDEDA,YFCoB,CAApB,sEEDA,cFCoB,CAApB,qEEDA,eFCoB,CAApB,sEEDA,cFCoB,CAApB,qEEDA,eFCoB,CAApB,8DEDA,YFCoB,CAApB,6DEDA,eFCoB,CACpB,qBEFA,mBFEmB,CAAnB,QEFA,eFEmB,CAAnB,OEFA,cFEmB,CAAnB,UEFA,iBFEmB,CAAnB,UEFA,iBFEmB,CAAnB,OEFA,KFEmB,CAAnB,SEFA,OFEmB,CAAnB,SEFA,WFEmB,CAAnB,UEFA,YFEmB,CAAnB,SEFA,UFEmB,CAAnB,UEFA,UFEmB,CAAnB,UEFA,UFEmB,CAAnB,MEFA,YFEmB,CAAnB,aEFA,mBFEmB,CAAnB,MEFA,aFEmB,CAAnB,MEFA,WFEmB,CAAnB,KEFA,cFEmB,CAAnB,QEFA,WFEmB,CAAnB,MEFA,WFEmB,CAAnB,cEFA,gBFEmB,CAAnB,QEFA,UFEmB,CAAnB,MEFA,UFEmB,CAAnB,MEFA,UFEmB,CAAnB,KEFA,aFEmB,CAAnB,WEFA,eFEmB,CAAnB,WEFA,SFEmB,CAAnB,MEFA,WFEmB,CAAnB,yBEFA,c,CFEmB,CAAnB,iBEFA,c,CFEmB,CAAnB,eEFA,+GFEmB,CAAnB,oBEFA,kBFEmB,CAAnB,aEFA,WFEmB,CAAnB,UEFA,qBFEmB,CAAnB,cEFA,kBFEmB,CAAnB,gBEFA,sBFEmB,CAAnB,iBEFA,6BFEmB,CAAnB,yCEFA,iIFEmB,CAAnB,yCEFA,+HFEmB,CAAnB,yCEFA,6HFEmB,CAAnB,eEFA,aFEmB,CAAnB,iBEFA,eFEmB,CAAnB,gBEFA,eFEmB,CAAnB,YEFA,qBFEmB,CAAnB,UEFA,cFEmB,CAAnB,UEFA,uBFEmB,CAAnB,UEFA,oBFEmB,CAAnB,UEFA,sBFEmB,CAAnB,iBEFA,4EFEmB,CAAnB,kBEFA,0EFEmB,CAAnB,kBEFA,4EFEmB,CAAnB,gBEFA,4BFEmB,CAAnB,UEFA,wEFEmB,CAAnB,oBEFA,4BFEmB,CAAnB,cEFA,qEFEmB,CAAnB,cEFA,sEFEmB,CAAnB,KEFA,YFEmB,CAAnB,KEFA,cFEmB,CAAnB,MEFA,kBFEmB,CAAnB,YEFA,mBFEmB,CAAnB,YEFA,gBFEmB,CAAnB,UEFA,iCFEmB,CAAnB,SEFA,iCFEmB,CAAnB,SEFA,qCFEmB,CAAnB,YEFA,iEFEmB,CAAnB,eEFA,iEFEmB,CAAnB,cEFA,+DFEmB,CAAnB,gBEFA,iEFEmB,CAAnB,cEFA,iEFEmB,CAAnB,WEFA,SFEmB,CAAnB,aEFA,SFEmB,CAAnB,SEFA,mBFEmB,CAAnB,QEFA,yWFEmB,CAAnB,oBEFA,uGFEmB,CAEnB,KACE,wBACF,CAEA,+BAGE,sCAAwC,CACxC,cAAe,CAFf,qBAAuB,CAGvB,UACF,CAEA,sBACE,0BACF,CAEA,eAQE,eAAiB,CAPjB,WAAY,CAMZ,aAAc,CADd,YAAa,CAFb,MAAO,CAKP,UAAY,CAPZ,iBAAkB,CAClB,KAAM,CAEN,WAKF,CA9BA,2BEAA,sE,CFAA,2BEAA,yE,CFAA,6BEAA,wE","sources":["index.css","../node_modules/codemirror/lib/codemirror.css","../node_modules/codemirror/theme/material.css","App.css","%3Cinput%20css%20JYKPI-%3E","../"],"sourcesContent":["body {\n margin: 0;\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen',\n 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue',\n sans-serif;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n}\n\ncode {\n font-family: source-code-pro, Menlo, Monaco, Consolas, 'Courier New',\n monospace;\n}\n","/* BASICS */\n\n.CodeMirror {\n /* Set height, width, borders, and global font properties here */\n font-family: monospace;\n height: 300px;\n color: black;\n direction: ltr;\n}\n\n/* PADDING */\n\n.CodeMirror-lines {\n padding: 4px 0; /* Vertical padding around content */\n}\n.CodeMirror pre.CodeMirror-line,\n.CodeMirror pre.CodeMirror-line-like {\n padding: 0 4px; /* Horizontal padding of content */\n}\n\n.CodeMirror-scrollbar-filler, .CodeMirror-gutter-filler {\n background-color: white; /* The little square between H and V scrollbars */\n}\n\n/* GUTTER */\n\n.CodeMirror-gutters {\n border-right: 1px solid #ddd;\n background-color: #f7f7f7;\n white-space: nowrap;\n}\n.CodeMirror-linenumbers {}\n.CodeMirror-linenumber {\n padding: 0 3px 0 5px;\n min-width: 20px;\n text-align: right;\n color: #999;\n white-space: nowrap;\n}\n\n.CodeMirror-guttermarker { color: black; }\n.CodeMirror-guttermarker-subtle { color: #999; }\n\n/* CURSOR */\n\n.CodeMirror-cursor {\n border-left: 1px solid black;\n border-right: none;\n width: 0;\n}\n/* Shown when moving in bi-directional text */\n.CodeMirror div.CodeMirror-secondarycursor {\n border-left: 1px solid silver;\n}\n.cm-fat-cursor .CodeMirror-cursor {\n width: auto;\n border: 0 !important;\n background: #7e7;\n}\n.cm-fat-cursor div.CodeMirror-cursors {\n z-index: 1;\n}\n.cm-fat-cursor .CodeMirror-line::selection,\n.cm-fat-cursor .CodeMirror-line > span::selection, \n.cm-fat-cursor .CodeMirror-line > span > span::selection { background: transparent; }\n.cm-fat-cursor .CodeMirror-line::-moz-selection,\n.cm-fat-cursor .CodeMirror-line > span::-moz-selection,\n.cm-fat-cursor .CodeMirror-line > span > span::-moz-selection { background: transparent; }\n.cm-fat-cursor { caret-color: transparent; }\n@-moz-keyframes blink {\n 0% {}\n 50% { background-color: transparent; }\n 100% {}\n}\n@-webkit-keyframes blink {\n 0% {}\n 50% { background-color: transparent; }\n 100% {}\n}\n@keyframes blink {\n 0% {}\n 50% { background-color: transparent; }\n 100% {}\n}\n\n/* Can style cursor different in overwrite (non-insert) mode */\n.CodeMirror-overwrite .CodeMirror-cursor {}\n\n.cm-tab { display: inline-block; text-decoration: inherit; }\n\n.CodeMirror-rulers {\n position: absolute;\n left: 0; right: 0; top: -50px; bottom: 0;\n overflow: hidden;\n}\n.CodeMirror-ruler {\n border-left: 1px solid #ccc;\n top: 0; bottom: 0;\n position: absolute;\n}\n\n/* DEFAULT THEME */\n\n.cm-s-default .cm-header {color: blue;}\n.cm-s-default .cm-quote {color: #090;}\n.cm-negative {color: #d44;}\n.cm-positive {color: #292;}\n.cm-header, .cm-strong {font-weight: bold;}\n.cm-em {font-style: italic;}\n.cm-link {text-decoration: underline;}\n.cm-strikethrough {text-decoration: line-through;}\n\n.cm-s-default .cm-keyword {color: #708;}\n.cm-s-default .cm-atom {color: #219;}\n.cm-s-default .cm-number {color: #164;}\n.cm-s-default .cm-def {color: #00f;}\n.cm-s-default .cm-variable,\n.cm-s-default .cm-punctuation,\n.cm-s-default .cm-property,\n.cm-s-default .cm-operator {}\n.cm-s-default .cm-variable-2 {color: #05a;}\n.cm-s-default .cm-variable-3, .cm-s-default .cm-type {color: #085;}\n.cm-s-default .cm-comment {color: #a50;}\n.cm-s-default .cm-string {color: #a11;}\n.cm-s-default .cm-string-2 {color: #f50;}\n.cm-s-default .cm-meta {color: #555;}\n.cm-s-default .cm-qualifier {color: #555;}\n.cm-s-default .cm-builtin {color: #30a;}\n.cm-s-default .cm-bracket {color: #997;}\n.cm-s-default .cm-tag {color: #170;}\n.cm-s-default .cm-attribute {color: #00c;}\n.cm-s-default .cm-hr {color: #999;}\n.cm-s-default .cm-link {color: #00c;}\n\n.cm-s-default .cm-error {color: #f00;}\n.cm-invalidchar {color: #f00;}\n\n.CodeMirror-composing { border-bottom: 2px solid; }\n\n/* Default styles for common addons */\n\ndiv.CodeMirror span.CodeMirror-matchingbracket {color: #0b0;}\ndiv.CodeMirror span.CodeMirror-nonmatchingbracket {color: #a22;}\n.CodeMirror-matchingtag { background: rgba(255, 150, 0, .3); }\n.CodeMirror-activeline-background {background: #e8f2ff;}\n\n/* STOP */\n\n/* The rest of this file contains styles related to the mechanics of\n the editor. You probably shouldn't touch them. */\n\n.CodeMirror {\n position: relative;\n overflow: hidden;\n background: white;\n}\n\n.CodeMirror-scroll {\n overflow: scroll !important; /* Things will break if this is overridden */\n /* 50px is the magic margin used to hide the element's real scrollbars */\n /* See overflow: hidden in .CodeMirror */\n margin-bottom: -50px; margin-right: -50px;\n padding-bottom: 50px;\n height: 100%;\n outline: none; /* Prevent dragging from highlighting the element */\n position: relative;\n z-index: 0;\n}\n.CodeMirror-sizer {\n position: relative;\n border-right: 50px solid transparent;\n}\n\n/* The fake, visible scrollbars. Used to force redraw during scrolling\n before actual scrolling happens, thus preventing shaking and\n flickering artifacts. */\n.CodeMirror-vscrollbar, .CodeMirror-hscrollbar, .CodeMirror-scrollbar-filler, .CodeMirror-gutter-filler {\n position: absolute;\n z-index: 6;\n display: none;\n outline: none;\n}\n.CodeMirror-vscrollbar {\n right: 0; top: 0;\n overflow-x: hidden;\n overflow-y: scroll;\n}\n.CodeMirror-hscrollbar {\n bottom: 0; left: 0;\n overflow-y: hidden;\n overflow-x: scroll;\n}\n.CodeMirror-scrollbar-filler {\n right: 0; bottom: 0;\n}\n.CodeMirror-gutter-filler {\n left: 0; bottom: 0;\n}\n\n.CodeMirror-gutters {\n position: absolute; left: 0; top: 0;\n min-height: 100%;\n z-index: 3;\n}\n.CodeMirror-gutter {\n white-space: normal;\n height: 100%;\n display: inline-block;\n vertical-align: top;\n margin-bottom: -50px;\n}\n.CodeMirror-gutter-wrapper {\n position: absolute;\n z-index: 4;\n background: none !important;\n border: none !important;\n}\n.CodeMirror-gutter-background {\n position: absolute;\n top: 0; bottom: 0;\n z-index: 4;\n}\n.CodeMirror-gutter-elt {\n position: absolute;\n cursor: default;\n z-index: 4;\n}\n.CodeMirror-gutter-wrapper ::selection { background-color: transparent }\n.CodeMirror-gutter-wrapper ::-moz-selection { background-color: transparent }\n\n.CodeMirror-lines {\n cursor: text;\n min-height: 1px; /* prevents collapsing before first draw */\n}\n.CodeMirror pre.CodeMirror-line,\n.CodeMirror pre.CodeMirror-line-like {\n /* Reset some styles that the rest of the page might have set */\n -moz-border-radius: 0; -webkit-border-radius: 0; border-radius: 0;\n border-width: 0;\n background: transparent;\n font-family: inherit;\n font-size: inherit;\n margin: 0;\n white-space: pre;\n word-wrap: normal;\n line-height: inherit;\n color: inherit;\n z-index: 2;\n position: relative;\n overflow: visible;\n -webkit-tap-highlight-color: transparent;\n -webkit-font-variant-ligatures: contextual;\n font-variant-ligatures: contextual;\n}\n.CodeMirror-wrap pre.CodeMirror-line,\n.CodeMirror-wrap pre.CodeMirror-line-like {\n word-wrap: break-word;\n white-space: pre-wrap;\n word-break: normal;\n}\n\n.CodeMirror-linebackground {\n position: absolute;\n left: 0; right: 0; top: 0; bottom: 0;\n z-index: 0;\n}\n\n.CodeMirror-linewidget {\n position: relative;\n z-index: 2;\n padding: 0.1px; /* Force widget margins to stay inside of the container */\n}\n\n.CodeMirror-widget {}\n\n.CodeMirror-rtl pre { direction: rtl; }\n\n.CodeMirror-code {\n outline: none;\n}\n\n/* Force content-box sizing for the elements where we expect it */\n.CodeMirror-scroll,\n.CodeMirror-sizer,\n.CodeMirror-gutter,\n.CodeMirror-gutters,\n.CodeMirror-linenumber {\n -moz-box-sizing: content-box;\n box-sizing: content-box;\n}\n\n.CodeMirror-measure {\n position: absolute;\n width: 100%;\n height: 0;\n overflow: hidden;\n visibility: hidden;\n}\n\n.CodeMirror-cursor {\n position: absolute;\n pointer-events: none;\n}\n.CodeMirror-measure pre { position: static; }\n\ndiv.CodeMirror-cursors {\n visibility: hidden;\n position: relative;\n z-index: 3;\n}\ndiv.CodeMirror-dragcursors {\n visibility: visible;\n}\n\n.CodeMirror-focused div.CodeMirror-cursors {\n visibility: visible;\n}\n\n.CodeMirror-selected { background: #d9d9d9; }\n.CodeMirror-focused .CodeMirror-selected { background: #d7d4f0; }\n.CodeMirror-crosshair { cursor: crosshair; }\n.CodeMirror-line::selection, .CodeMirror-line > span::selection, .CodeMirror-line > span > span::selection { background: #d7d4f0; }\n.CodeMirror-line::-moz-selection, .CodeMirror-line > span::-moz-selection, .CodeMirror-line > span > span::-moz-selection { background: #d7d4f0; }\n\n.cm-searching {\n background-color: #ffa;\n background-color: rgba(255, 255, 0, .4);\n}\n\n/* Used to force a border model for a node */\n.cm-force-border { padding-right: .1px; }\n\n@media print {\n /* Hide the cursor when printing */\n .CodeMirror div.CodeMirror-cursors {\n visibility: hidden;\n }\n}\n\n/* See issue #2901 */\n.cm-tab-wrap-hack:after { content: ''; }\n\n/* Help users use markselection to safely style text background */\nspan.CodeMirror-selectedtext { background: none; }\n","/*\n Name: material\n Author: Mattia Astorino (http://github.com/equinusocio)\n Website: https://material-theme.site/\n*/\n\n.cm-s-material.CodeMirror {\n background-color: #263238;\n color: #EEFFFF;\n}\n\n.cm-s-material .CodeMirror-gutters {\n background: #263238;\n color: #546E7A;\n border: none;\n}\n\n.cm-s-material .CodeMirror-guttermarker,\n.cm-s-material .CodeMirror-guttermarker-subtle,\n.cm-s-material .CodeMirror-linenumber {\n color: #546E7A;\n}\n\n.cm-s-material .CodeMirror-cursor {\n border-left: 1px solid #FFCC00;\n}\n.cm-s-material.cm-fat-cursor .CodeMirror-cursor {\n background-color: #5d6d5c80 !important;\n}\n.cm-s-material .cm-animate-fat-cursor {\n background-color: #5d6d5c80 !important;\n}\n\n.cm-s-material div.CodeMirror-selected {\n background: rgba(128, 203, 196, 0.2);\n}\n\n.cm-s-material.CodeMirror-focused div.CodeMirror-selected {\n background: rgba(128, 203, 196, 0.2);\n}\n\n.cm-s-material .CodeMirror-line::selection,\n.cm-s-material .CodeMirror-line>span::selection,\n.cm-s-material .CodeMirror-line>span>span::selection {\n background: rgba(128, 203, 196, 0.2);\n}\n\n.cm-s-material .CodeMirror-line::-moz-selection,\n.cm-s-material .CodeMirror-line>span::-moz-selection,\n.cm-s-material .CodeMirror-line>span>span::-moz-selection {\n background: rgba(128, 203, 196, 0.2);\n}\n\n.cm-s-material .CodeMirror-activeline-background {\n background: rgba(0, 0, 0, 0.5);\n}\n\n.cm-s-material .cm-keyword {\n color: #C792EA;\n}\n\n.cm-s-material .cm-operator {\n color: #89DDFF;\n}\n\n.cm-s-material .cm-variable-2 {\n color: #EEFFFF;\n}\n\n.cm-s-material .cm-variable-3,\n.cm-s-material .cm-type {\n color: #f07178;\n}\n\n.cm-s-material .cm-builtin {\n color: #FFCB6B;\n}\n\n.cm-s-material .cm-atom {\n color: #F78C6C;\n}\n\n.cm-s-material .cm-number {\n color: #FF5370;\n}\n\n.cm-s-material .cm-def {\n color: #82AAFF;\n}\n\n.cm-s-material .cm-string {\n color: #C3E88D;\n}\n\n.cm-s-material .cm-string-2 {\n color: #f07178;\n}\n\n.cm-s-material .cm-comment {\n color: #546E7A;\n}\n\n.cm-s-material .cm-variable {\n color: #f07178;\n}\n\n.cm-s-material .cm-tag {\n color: #FF5370;\n}\n\n.cm-s-material .cm-meta {\n color: #FFCB6B;\n}\n\n.cm-s-material .cm-attribute {\n color: #C792EA;\n}\n\n.cm-s-material .cm-property {\n color: #C792EA;\n}\n\n.cm-s-material .cm-qualifier {\n color: #DECB6B;\n}\n\n.cm-s-material .cm-variable-3,\n.cm-s-material .cm-type {\n color: #DECB6B;\n}\n\n\n.cm-s-material .cm-error {\n color: rgba(255, 255, 255, 1.0);\n background-color: #FF5370;\n}\n\n.cm-s-material .CodeMirror-matchingbracket {\n text-decoration: underline;\n color: white !important;\n}\n","@tailwind base;\n@tailwind components;\n@tailwind utilities;\n\nbody {\n background-color: #2a3236;\n}\n\n.react-codemirror2,\n.CodeMirror {\n height: 100% !important;\n background-color: transparent !important;\n font-size: 15px;\n z-index:20\n}\n\n.CodeMirror-line > span {\n background-color: #2a323699;\n}\n\n.darken::before {\n content: ' ';\n position: absolute;\n top: 0;\n left: 0;\n width: 100vw;\n height: 100vh;\n display: block;\n background: black;\n opacity: 0.5;\n}","/*\n1. Prevent padding and border from affecting element width. (https://github.com/mozdevs/cssremedy/issues/4)\n2. Allow adding a border to an element by just adding a border-width. (https://github.com/tailwindcss/tailwindcss/pull/116)\n*/\n\n*,\n::before,\n::after {\n box-sizing: border-box; /* 1 */\n border-width: 0; /* 2 */\n border-style: solid; /* 2 */\n border-color: theme('borderColor.DEFAULT', currentColor); /* 2 */\n}\n\n::before,\n::after {\n --tw-content: '';\n}\n\n/*\n1. Use a consistent sensible line-height in all browsers.\n2. Prevent adjustments of font size after orientation changes in iOS.\n3. Use a more readable tab size.\n4. Use the user's configured `sans` font-family by default.\n*/\n\nhtml {\n line-height: 1.5; /* 1 */\n -webkit-text-size-adjust: 100%; /* 2 */\n -moz-tab-size: 4; /* 3 */\n tab-size: 4; /* 3 */\n font-family: theme('fontFamily.sans', ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, \"Noto Sans\", sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\"); /* 4 */\n}\n\n/*\n1. Remove the margin in all browsers.\n2. Inherit line-height from `html` so users can set them as a class directly on the `html` element.\n*/\n\nbody {\n margin: 0; /* 1 */\n line-height: inherit; /* 2 */\n}\n\n/*\n1. Add the correct height in Firefox.\n2. Correct the inheritance of border color in Firefox. (https://bugzilla.mozilla.org/show_bug.cgi?id=190655)\n3. Ensure horizontal rules are visible by default.\n*/\n\nhr {\n height: 0; /* 1 */\n color: inherit; /* 2 */\n border-top-width: 1px; /* 3 */\n}\n\n/*\nAdd the correct text decoration in Chrome, Edge, and Safari.\n*/\n\nabbr:where([title]) {\n text-decoration: underline dotted;\n}\n\n/*\nRemove the default font size and weight for headings.\n*/\n\nh1,\nh2,\nh3,\nh4,\nh5,\nh6 {\n font-size: inherit;\n font-weight: inherit;\n}\n\n/*\nReset links to optimize for opt-in styling instead of opt-out.\n*/\n\na {\n color: inherit;\n text-decoration: inherit;\n}\n\n/*\nAdd the correct font weight in Edge and Safari.\n*/\n\nb,\nstrong {\n font-weight: bolder;\n}\n\n/*\n1. Use the user's configured `mono` font family by default.\n2. Correct the odd `em` font sizing in all browsers.\n*/\n\ncode,\nkbd,\nsamp,\npre {\n font-family: theme('fontFamily.mono', ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace); /* 1 */\n font-size: 1em; /* 2 */\n}\n\n/*\nAdd the correct font size in all browsers.\n*/\n\nsmall {\n font-size: 80%;\n}\n\n/*\nPrevent `sub` and `sup` elements from affecting the line height in all browsers.\n*/\n\nsub,\nsup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n}\n\nsub {\n bottom: -0.25em;\n}\n\nsup {\n top: -0.5em;\n}\n\n/*\n1. Remove text indentation from table contents in Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=999088, https://bugs.webkit.org/show_bug.cgi?id=201297)\n2. Correct table border color inheritance in all Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=935729, https://bugs.webkit.org/show_bug.cgi?id=195016)\n3. Remove gaps between table borders by default.\n*/\n\ntable {\n text-indent: 0; /* 1 */\n border-color: inherit; /* 2 */\n border-collapse: collapse; /* 3 */\n}\n\n/*\n1. Change the font styles in all browsers.\n2. Remove the margin in Firefox and Safari.\n3. Remove default padding in all browsers.\n*/\n\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n font-family: inherit; /* 1 */\n font-size: 100%; /* 1 */\n line-height: inherit; /* 1 */\n color: inherit; /* 1 */\n margin: 0; /* 2 */\n padding: 0; /* 3 */\n}\n\n/*\nRemove the inheritance of text transform in Edge and Firefox.\n*/\n\nbutton,\nselect {\n text-transform: none;\n}\n\n/*\n1. Correct the inability to style clickable types in iOS and Safari.\n2. Remove default button styles.\n*/\n\nbutton,\n[type='button'],\n[type='reset'],\n[type='submit'] {\n -webkit-appearance: button; /* 1 */\n background-color: transparent; /* 2 */\n background-image: none; /* 2 */\n}\n\n/*\nUse the modern Firefox focus style for all focusable elements.\n*/\n\n:-moz-focusring {\n outline: auto;\n}\n\n/*\nRemove the additional `:invalid` styles in Firefox. (https://github.com/mozilla/gecko-dev/blob/2f9eacd9d3d995c937b4251a5557d95d494c9be1/layout/style/res/forms.css#L728-L737)\n*/\n\n:-moz-ui-invalid {\n box-shadow: none;\n}\n\n/*\nAdd the correct vertical alignment in Chrome and Firefox.\n*/\n\nprogress {\n vertical-align: baseline;\n}\n\n/*\nCorrect the cursor style of increment and decrement buttons in Safari.\n*/\n\n::-webkit-inner-spin-button,\n::-webkit-outer-spin-button {\n height: auto;\n}\n\n/*\n1. Correct the odd appearance in Chrome and Safari.\n2. Correct the outline style in Safari.\n*/\n\n[type='search'] {\n -webkit-appearance: textfield; /* 1 */\n outline-offset: -2px; /* 2 */\n}\n\n/*\nRemove the inner padding in Chrome and Safari on macOS.\n*/\n\n::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n/*\n1. Correct the inability to style clickable types in iOS and Safari.\n2. Change font properties to `inherit` in Safari.\n*/\n\n::-webkit-file-upload-button {\n -webkit-appearance: button; /* 1 */\n font: inherit; /* 2 */\n}\n\n/*\nAdd the correct display in Chrome and Safari.\n*/\n\nsummary {\n display: list-item;\n}\n\n/*\nRemoves the default spacing and border for appropriate elements.\n*/\n\nblockquote,\ndl,\ndd,\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\nhr,\nfigure,\np,\npre {\n margin: 0;\n}\n\nfieldset {\n margin: 0;\n padding: 0;\n}\n\nlegend {\n padding: 0;\n}\n\nol,\nul,\nmenu {\n list-style: none;\n margin: 0;\n padding: 0;\n}\n\n/*\nPrevent resizing textareas horizontally by default.\n*/\n\ntextarea {\n resize: vertical;\n}\n\n/*\n1. Reset the default placeholder opacity in Firefox. (https://github.com/tailwindlabs/tailwindcss/issues/3300)\n2. Set the default placeholder color to the user's configured gray 400 color.\n*/\n\ninput::placeholder,\ntextarea::placeholder {\n opacity: 1; /* 1 */\n color: theme('colors.gray.400', #9ca3af); /* 2 */\n}\n\n/*\nSet the default cursor for buttons.\n*/\n\nbutton,\n[role=\"button\"] {\n cursor: pointer;\n}\n\n/*\nMake sure disabled buttons don't get the pointer cursor.\n*/\n:disabled {\n cursor: default;\n}\n\n/*\n1. Make replaced elements `display: block` by default. (https://github.com/mozdevs/cssremedy/issues/14)\n2. Add `vertical-align: middle` to align replaced elements more sensibly by default. (https://github.com/jensimmons/cssremedy/issues/14#issuecomment-634934210)\n This can trigger a poorly considered lint error in some tools but is included by design.\n*/\n\nimg,\nsvg,\nvideo,\ncanvas,\naudio,\niframe,\nembed,\nobject {\n display: block; /* 1 */\n vertical-align: middle; /* 2 */\n}\n\n/*\nConstrain images and videos to the parent width and preserve their intrinsic aspect ratio. (https://github.com/mozdevs/cssremedy/issues/14)\n*/\n\nimg,\nvideo {\n max-width: 100%;\n height: auto;\n}\n\n/*\nEnsure the default browser behavior of the `hidden` attribute.\n*/\n\n[hidden] {\n display: none;\n}\n"],"names":[],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"static/css/main.0d689283.css","mappings":"AAAA,KAKE,kCAAmC,CACnC,iCAAkC,CAJlC,mIAKF,CAEA,KACE,uEAEF,CCVA,YAIE,UAAY,CACZ,aAAc,CAHd,qBAAsB,CACtB,YAGF,CAIA,kBACE,aACF,CACA,qEAEE,aACF,CAEA,uDACE,qBACF,CAIA,oBAEE,wBAAyB,CADzB,2BAA4B,CAE5B,kBACF,CAEA,uBAIE,UAAW,CAFX,cAAe,CADf,mBAAoB,CAEpB,gBAAiB,CAEjB,kBACF,CAEA,yBAA2B,UAAc,CACzC,gCAAkC,UAAa,CAI/C,mBACE,0BAA4B,CAC5B,iBAAkB,CAClB,OACF,CAEA,2CACE,4BACF,CACA,kCAGE,eAAgB,CADhB,kBAAoB,CADpB,UAGF,CACA,sCACE,SACF,CACA,gJAE2D,sBAAyB,CACpF,+JAEgE,sBAAyB,CACzF,eAAiB,uBAA0B,CAM3C,yBAEE,IAAM,4BAA+B,CAEvC,CACA,iBAEE,IAAM,4BAA+B,CAEvC,CAKA,QAAU,oBAAqB,CAAE,uBAA0B,CAE3D,mBAEiC,QAAS,CAAxC,MAAO,CACP,eAAgB,CAFhB,iBAAkB,CACT,OAAQ,CAAE,SAErB,CACA,kBACE,0BAA2B,CACnB,QAAS,CACjB,iBAAkB,CADlB,KAEF,CAIA,yBAA0B,UAAY,CACtC,wBAAyB,UAAY,CACrC,aAAc,UAAY,CAC1B,aAAc,UAAY,CAC1B,sBAAwB,eAAkB,CAC1C,OAAQ,iBAAmB,CAC3B,SAAU,yBAA2B,CACrC,kBAAmB,4BAA8B,CAEjD,0BAA2B,UAAY,CACvC,uBAAwB,UAAY,CACpC,yBAA0B,UAAY,CACtC,sBAAuB,UAAY,CAKnC,6BAA8B,UAAY,CAC1C,oDAAsD,UAAY,CAClE,0BAA2B,UAAY,CACvC,yBAA0B,UAAY,CACtC,2BAA4B,UAAY,CAExC,mDAA6B,UAAY,CACzC,0BAA2B,UAAY,CACvC,0BAA2B,UAAY,CACvC,sBAAuB,UAAY,CACnC,4BAA6B,UAAY,CACzC,qBAAsB,UAAY,CAClC,uBAAwB,UAAY,CAGpC,wCAAiB,SAAY,CAE7B,sBAAwB,uBAA0B,CAIlD,+CAAgD,UAAY,CAC5D,kDAAmD,UAAY,CAC/D,wBAA0B,6BAAmC,CAC7D,kCAAmC,kBAAoB,CAOvD,YAGE,eAAiB,CADjB,eAAgB,CADhB,iBAGF,CAEA,mBAME,WAAY,CAFZ,mBAAoB,CAAE,kBAAmB,CAGzC,YAAa,CANb,yBAA2B,CAI3B,mBAAoB,CAGpB,iBAAkB,CAClB,SACF,CACA,kBAEE,mCAAoC,CADpC,iBAEF,CAKA,qGAGE,YAAa,CACb,YAAa,CAHb,iBAAkB,CAClB,SAGF,CACA,uBAEE,iBAAkB,CAClB,iBAAkB,CAFlB,OAAQ,CAAE,KAGZ,CACA,uBACE,QAAS,CAAE,MAAO,CAElB,iBAAkB,CADlB,iBAEF,CACA,6BACY,QAAS,CAAnB,OACF,CACA,0BACW,QAAS,CAAlB,MACF,CAEA,oBACsB,MAAO,CAC3B,eAAgB,CADhB,iBAAkB,CAAW,KAAM,CAEnC,SACF,CACA,mBAGE,oBAAqB,CADrB,WAAY,CAGZ,mBAAoB,CADpB,kBAAmB,CAHnB,kBAKF,CACA,2BAGE,yBAA2B,CAC3B,qBAAuB,CAHvB,iBAAkB,CAClB,SAGF,CACA,8BAEU,QAAS,CADjB,iBAAkB,CAClB,KAAM,CACN,SACF,CACA,uBAEE,cAAe,CADf,iBAAkB,CAElB,SACF,CACA,uCAAyC,4BAA8B,CACvE,4CAA8C,4BAA8B,CAE5E,kBACE,WAAY,CACZ,cACF,CACA,qEAUE,gBAAiB,CAMjB,uCAAwC,CAExC,oCAAkC,CAAlC,4BAAkC,CAblC,sBAAuB,CAF0B,eAAgB,CACjE,cAAe,CAQf,aAAc,CANd,mBAAoB,CACpB,iBAAkB,CAUlB,yCAA0C,CAC1C,iCAAkC,CAPlC,mBAAoB,CAHpB,QAAS,CAOT,gBAAiB,CADjB,iBAAkB,CALlB,eAAgB,CAIhB,SAMF,CACA,+EAEE,oBAAqB,CACrB,oBAAqB,CACrB,iBACF,CAEA,2BAE6B,QAAS,CAApC,MAAO,CADP,iBAAkB,CACT,OAAQ,CAAE,KAAM,CACzB,SACF,CAEA,uBAGE,YAAc,CAFd,iBAAkB,CAClB,SAEF,CAIA,oBAAsB,aAAgB,CAEtC,iBACE,YACF,CAGA,mGAME,sBACF,CAEA,oBAGE,QAAS,CACT,eAAgB,CAHhB,iBAAkB,CAIlB,iBAAkB,CAHlB,UAIF,CAEA,mBAEE,mBAAoB,CADpB,iBAEF,CACA,wBAA0B,eAAkB,CAE5C,uBAEE,iBAAkB,CADlB,iBAAkB,CAElB,SACF,CAKA,sEACE,kBACF,CAEA,qBAAuB,kBAAqB,CAC5C,yCAA2C,kBAAqB,CAChE,sBAAwB,gBAAmB,CAC3C,mGAA6G,kBAAqB,CAClI,kHAA4H,kBAAqB,CAEjJ,cACE,qBAAsB,CACtB,mCACF,CAGA,iBAAmB,kBAAqB,CAExC,aAEE,mCACE,iBACF,CACF,CAGA,wBAA0B,UAAa,CAGvC,6BAA+B,eAAkB,CCjVjD,0BACE,wBAAyB,CACzB,UACF,CAEA,mCACE,kBAAmB,CAEnB,WAAY,CADZ,aAEF,CAEA,6HAGE,aACF,CAEA,kCACE,0BACF,CAIA,sFACE,oCACF,CAMA,iGACE,+BACF,CAEA,gJAGE,+BACF,CAEA,+JAGE,+BACF,CAEA,iDACE,yBACF,CAEA,2BACE,aACF,CAEA,4BACE,aACF,CAEA,8BACE,UACF,CAEA,sDAEE,aACF,CAEA,2BACE,aACF,CAEA,wBACE,aACF,CAEA,0BACE,aACF,CAEA,uBACE,aACF,CAEA,0BACE,aACF,CAEA,4BACE,aACF,CAEA,2BACE,aACF,CAEA,4BACE,aACF,CAEA,uBACE,aACF,CAEA,wBACE,aACF,CAMA,yDACE,aACF,CAMA,mFAEE,aACF,CAGA,yBAEE,wBAAyB,CADzB,UAEF,CAEA,2CAEE,oBAAuB,CADvB,yBAEF;;AC5IA;;CAAc,CAAd,iBCWE,sBAAwD,CAHxD,qBDRY,CAAd,eCgBE,eDhBY,CAAd,KC4BE,6BAA8B,CAG9B,gMAAsP,CAJtP,eAAgB,CAGhB,UD9BY,CAAd,KCyCE,mBAAoB,CADpB,QDxCY,CAAd,GCqDE,oBAAqB,CADrB,aAAc,CADd,QDnDY,CAAd,oBC6DE,wCAAiC,CAAjC,gCD7DY,CAAd,kBC0EE,iBAAkB,CAClB,mBD3EY,CAAd,ECmFE,aAAc,CACd,uBDpFY,CAAd,SC6FE,kBD7FY,CAAd,kBCyGE,mGAAyI,CACzI,aD1GY,CAAd,MCkHE,aDlHY,CAAd,QC2HE,aAAc,CACd,aAAc,CACd,iBAAkB,CAClB,uBD9HY,CAAd,ICkIE,aDlIY,CAAd,ICsIE,SDtIY,CAAd,MCkJE,wBAAyB,CADzB,oBAAqB,CADrB,aDhJY,CAAd,sCCmKE,aAAc,CAHd,mBAAoB,CACpB,cAAe,CACf,mBAAoB,CAEpB,QAAS,CACT,SDrKY,CAAd,cC8KE,mBD9KY,CAAd,gDC0LE,yBAA0B,CAC1B,4BAA6B,CAC7B,qBD5LY,CAAd,gBCoME,YDpMY,CAAd,iBC4ME,eD5MY,CAAd,SCoNE,uBDpNY,CAAd,wDC6NE,WD7NY,CAAd,cCsOE,4BAA6B,CAC7B,mBDvOY,CAAd,4BC+OE,uBD/OY,CAAd,6BCwPE,yBAA0B,CAC1B,YDzPY,CAAd,QCiQE,iBDjQY,CAAd,mDCqRE,QDrRY,CAAd,SCyRE,QDzRY,CAAd,gBC0RE,SD1RY,CAAd,WCoSE,eAAgB,CAChB,QAAS,CACT,SDtSY,CAAd,SC8SE,eD9SY,CAAd,qECyTE,aAAwC,CADxC,SDxTY,CAAd,2DCyTE,aAAwC,CADxC,SDxTY,CAAd,yCCyTE,aAAwC,CADxC,SDxTY,CAAd,qBCkUE,cDlUY,CAAd,UCyUE,cDzUY,CAAd,+CC0VE,aAAc,CACd,qBD3VY,CAAd,UCqWE,WAAY,CADZ,cDpWY,CAAd,SC6WE,YD7WY,CEAd,i4B,CFCA,OEDA,yCFCoB,CAApB,+DEDA,gGFCoB,CAApB,mDEDA,qEFCoB,CAApB,wDEDA,0CFCoB,CAApB,oDEDA,4CFCoB,CAApB,4DEDA,2BFCoB,CAApB,4DEDA,2BFCoB,CAApB,8DEDA,2BFCoB,CAApB,8DEDA,2BFCoB,CAApB,4DEDA,2BFCoB,CAApB,4DEDA,2BFCoB,CAApB,8DEDA,2BFCoB,CAApB,8DEDA,2BFCoB,CAApB,8DEDA,uBFCoB,CAApB,oDEDA,yCFCoB,CAApB,+DEDA,8CFCoB,CAApB,+DEDA,6BFCoB,CAApB,oDEDA,qFFCoB,CAApB,4DEDA,iOFCoB,CAApB,mFEDA,kBFCoB,CAApB,iFEDA,mBFCoB,CAApB,oDEDA,2HFCoB,CAApB,2DEDA,eFCoB,CAApB,oDEDA,qHFCoB,CAApB,2DEDA,eFCoB,CAApB,oDEDA,mHFCoB,CAApB,2DEDA,eFCoB,CAApB,oDEDA,kGFCoB,CAApB,2DEDA,eFCoB,CAApB,0DEDA,4BFCoB,CAApB,4DEDA,2FFCoB,CAApB,sDEDA,2DFCoB,CAApB,6DEDA,WFCoB,CAApB,4DEDA,WFCoB,CAApB,wDEDA,2BFCoB,CAApB,qDEDA,mPFCoB,CAApB,0DEDA,iKFCoB,CAApB,iEEDA,YFCoB,CAApB,gEEDA,YFCoB,CAApB,uDEDA,oHFCoB,CAApB,uDEDA,sEFCoB,CAApB,0DEDA,+IFCoB,CAApB,0DEDA,sEFCoB,CAApB,qEEDA,qBFCoB,CAApB,0DEDA,0CFCoB,CAApB,OEDA,g+BFCoB,CAApB,mDEDA,sCFCoB,CAApB,qDEDA,gCFCoB,CAApB,uDEDA,gCFCoB,CAApB,wDEDA,gCFCoB,CAApB,yDEDA,gBFCoB,CAApB,yDEDA,cFCoB,CAApB,oDEDA,kCFCoB,CAApB,uDEDA,mBFCoB,CAApB,uDEDA,mBFCoB,CAApB,yDEDA,oCFCoB,CAApB,oEEDA,iBFCoB,CAApB,mEEDA,oBFCoB,CAApB,oEEDA,iBFCoB,CAApB,mEEDA,oBFCoB,CAApB,yEEDA,oCFCoB,CAApB,sDEDA,YFCoB,CAApB,sDEDA,YFCoB,CAApB,sDEDA,YFCoB,CAApB,sDEDA,YFCoB,CAApB,sEEDA,cFCoB,CAApB,qEEDA,eFCoB,CAApB,sEEDA,cFCoB,CAApB,qEEDA,eFCoB,CAApB,8DEDA,YFCoB,CAApB,6DEDA,eFCoB,CACpB,qBEFA,mBFEmB,CAAnB,QEFA,eFEmB,CAAnB,OEFA,cFEmB,CAAnB,UEFA,iBFEmB,CAAnB,UEFA,iBFEmB,CAAnB,OEFA,KFEmB,CAAnB,SEFA,OFEmB,CAAnB,SEFA,WFEmB,CAAnB,UEFA,YFEmB,CAAnB,SEFA,UFEmB,CAAnB,UEFA,UFEmB,CAAnB,UEFA,UFEmB,CAAnB,MEFA,YFEmB,CAAnB,aEFA,mBFEmB,CAAnB,MEFA,aFEmB,CAAnB,MEFA,WFEmB,CAAnB,KEFA,cFEmB,CAAnB,QEFA,WFEmB,CAAnB,MEFA,WFEmB,CAAnB,cEFA,gBFEmB,CAAnB,QEFA,UFEmB,CAAnB,MEFA,UFEmB,CAAnB,MEFA,UFEmB,CAAnB,KEFA,aFEmB,CAAnB,WEFA,eFEmB,CAAnB,WEFA,SFEmB,CAAnB,MEFA,WFEmB,CAAnB,yBEFA,c,CFEmB,CAAnB,iBEFA,c,CFEmB,CAAnB,eEFA,+GFEmB,CAAnB,oBEFA,kBFEmB,CAAnB,aEFA,WFEmB,CAAnB,UEFA,qBFEmB,CAAnB,cEFA,kBFEmB,CAAnB,gBEFA,sBFEmB,CAAnB,iBEFA,6BFEmB,CAAnB,yCEFA,iIFEmB,CAAnB,yCEFA,+HFEmB,CAAnB,yCEFA,6HFEmB,CAAnB,eEFA,aFEmB,CAAnB,iBEFA,eFEmB,CAAnB,gBEFA,eFEmB,CAAnB,YEFA,qBFEmB,CAAnB,UEFA,cFEmB,CAAnB,UEFA,uBFEmB,CAAnB,UEFA,oBFEmB,CAAnB,UEFA,sBFEmB,CAAnB,iBEFA,4EFEmB,CAAnB,kBEFA,0EFEmB,CAAnB,kBEFA,4EFEmB,CAAnB,gBEFA,4BFEmB,CAAnB,UEFA,wEFEmB,CAAnB,oBEFA,4BFEmB,CAAnB,cEFA,qEFEmB,CAAnB,cEFA,sEFEmB,CAAnB,KEFA,YFEmB,CAAnB,KEFA,cFEmB,CAAnB,MEFA,kBFEmB,CAAnB,YEFA,mBFEmB,CAAnB,YEFA,gBFEmB,CAAnB,UEFA,iCFEmB,CAAnB,SEFA,iCFEmB,CAAnB,SEFA,qCFEmB,CAAnB,YEFA,iEFEmB,CAAnB,eEFA,iEFEmB,CAAnB,cEFA,+DFEmB,CAAnB,gBEFA,iEFEmB,CAAnB,cEFA,iEFEmB,CAAnB,WEFA,SFEmB,CAAnB,aEFA,SFEmB,CAAnB,SEFA,mBFEmB,CAAnB,QEFA,yWFEmB,CAAnB,oBEFA,uGFEmB,CAEnB,KACE,wBACF,CAEA,+BAGE,sCAAwC,CACxC,cAAe,CAFf,qBAAuB,CAGvB,UACF,CAEA,sBACE,0BACF,CAEA,eAQE,eAAiB,CAPjB,WAAY,CAMZ,aAAc,CADd,YAAa,CAFb,MAAO,CAKP,UAAY,CAPZ,iBAAkB,CAClB,KAAM,CAEN,WAKF,CA9BA,2BEAA,sE,CFAA,2BEAA,yE,CFAA,6BEAA,wE","sources":["index.css","../node_modules/codemirror/lib/codemirror.css","../node_modules/codemirror/theme/material.css","App.css","%3Cinput%20css%20yAq9w9%3E","../"],"sourcesContent":["body {\n margin: 0;\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen',\n 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue',\n sans-serif;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n}\n\ncode {\n font-family: source-code-pro, Menlo, Monaco, Consolas, 'Courier New',\n monospace;\n}\n","/* BASICS */\n\n.CodeMirror {\n /* Set height, width, borders, and global font properties here */\n font-family: monospace;\n height: 300px;\n color: black;\n direction: ltr;\n}\n\n/* PADDING */\n\n.CodeMirror-lines {\n padding: 4px 0; /* Vertical padding around content */\n}\n.CodeMirror pre.CodeMirror-line,\n.CodeMirror pre.CodeMirror-line-like {\n padding: 0 4px; /* Horizontal padding of content */\n}\n\n.CodeMirror-scrollbar-filler, .CodeMirror-gutter-filler {\n background-color: white; /* The little square between H and V scrollbars */\n}\n\n/* GUTTER */\n\n.CodeMirror-gutters {\n border-right: 1px solid #ddd;\n background-color: #f7f7f7;\n white-space: nowrap;\n}\n.CodeMirror-linenumbers {}\n.CodeMirror-linenumber {\n padding: 0 3px 0 5px;\n min-width: 20px;\n text-align: right;\n color: #999;\n white-space: nowrap;\n}\n\n.CodeMirror-guttermarker { color: black; }\n.CodeMirror-guttermarker-subtle { color: #999; }\n\n/* CURSOR */\n\n.CodeMirror-cursor {\n border-left: 1px solid black;\n border-right: none;\n width: 0;\n}\n/* Shown when moving in bi-directional text */\n.CodeMirror div.CodeMirror-secondarycursor {\n border-left: 1px solid silver;\n}\n.cm-fat-cursor .CodeMirror-cursor {\n width: auto;\n border: 0 !important;\n background: #7e7;\n}\n.cm-fat-cursor div.CodeMirror-cursors {\n z-index: 1;\n}\n.cm-fat-cursor .CodeMirror-line::selection,\n.cm-fat-cursor .CodeMirror-line > span::selection, \n.cm-fat-cursor .CodeMirror-line > span > span::selection { background: transparent; }\n.cm-fat-cursor .CodeMirror-line::-moz-selection,\n.cm-fat-cursor .CodeMirror-line > span::-moz-selection,\n.cm-fat-cursor .CodeMirror-line > span > span::-moz-selection { background: transparent; }\n.cm-fat-cursor { caret-color: transparent; }\n@-moz-keyframes blink {\n 0% {}\n 50% { background-color: transparent; }\n 100% {}\n}\n@-webkit-keyframes blink {\n 0% {}\n 50% { background-color: transparent; }\n 100% {}\n}\n@keyframes blink {\n 0% {}\n 50% { background-color: transparent; }\n 100% {}\n}\n\n/* Can style cursor different in overwrite (non-insert) mode */\n.CodeMirror-overwrite .CodeMirror-cursor {}\n\n.cm-tab { display: inline-block; text-decoration: inherit; }\n\n.CodeMirror-rulers {\n position: absolute;\n left: 0; right: 0; top: -50px; bottom: 0;\n overflow: hidden;\n}\n.CodeMirror-ruler {\n border-left: 1px solid #ccc;\n top: 0; bottom: 0;\n position: absolute;\n}\n\n/* DEFAULT THEME */\n\n.cm-s-default .cm-header {color: blue;}\n.cm-s-default .cm-quote {color: #090;}\n.cm-negative {color: #d44;}\n.cm-positive {color: #292;}\n.cm-header, .cm-strong {font-weight: bold;}\n.cm-em {font-style: italic;}\n.cm-link {text-decoration: underline;}\n.cm-strikethrough {text-decoration: line-through;}\n\n.cm-s-default .cm-keyword {color: #708;}\n.cm-s-default .cm-atom {color: #219;}\n.cm-s-default .cm-number {color: #164;}\n.cm-s-default .cm-def {color: #00f;}\n.cm-s-default .cm-variable,\n.cm-s-default .cm-punctuation,\n.cm-s-default .cm-property,\n.cm-s-default .cm-operator {}\n.cm-s-default .cm-variable-2 {color: #05a;}\n.cm-s-default .cm-variable-3, .cm-s-default .cm-type {color: #085;}\n.cm-s-default .cm-comment {color: #a50;}\n.cm-s-default .cm-string {color: #a11;}\n.cm-s-default .cm-string-2 {color: #f50;}\n.cm-s-default .cm-meta {color: #555;}\n.cm-s-default .cm-qualifier {color: #555;}\n.cm-s-default .cm-builtin {color: #30a;}\n.cm-s-default .cm-bracket {color: #997;}\n.cm-s-default .cm-tag {color: #170;}\n.cm-s-default .cm-attribute {color: #00c;}\n.cm-s-default .cm-hr {color: #999;}\n.cm-s-default .cm-link {color: #00c;}\n\n.cm-s-default .cm-error {color: #f00;}\n.cm-invalidchar {color: #f00;}\n\n.CodeMirror-composing { border-bottom: 2px solid; }\n\n/* Default styles for common addons */\n\ndiv.CodeMirror span.CodeMirror-matchingbracket {color: #0b0;}\ndiv.CodeMirror span.CodeMirror-nonmatchingbracket {color: #a22;}\n.CodeMirror-matchingtag { background: rgba(255, 150, 0, .3); }\n.CodeMirror-activeline-background {background: #e8f2ff;}\n\n/* STOP */\n\n/* The rest of this file contains styles related to the mechanics of\n the editor. You probably shouldn't touch them. */\n\n.CodeMirror {\n position: relative;\n overflow: hidden;\n background: white;\n}\n\n.CodeMirror-scroll {\n overflow: scroll !important; /* Things will break if this is overridden */\n /* 50px is the magic margin used to hide the element's real scrollbars */\n /* See overflow: hidden in .CodeMirror */\n margin-bottom: -50px; margin-right: -50px;\n padding-bottom: 50px;\n height: 100%;\n outline: none; /* Prevent dragging from highlighting the element */\n position: relative;\n z-index: 0;\n}\n.CodeMirror-sizer {\n position: relative;\n border-right: 50px solid transparent;\n}\n\n/* The fake, visible scrollbars. Used to force redraw during scrolling\n before actual scrolling happens, thus preventing shaking and\n flickering artifacts. */\n.CodeMirror-vscrollbar, .CodeMirror-hscrollbar, .CodeMirror-scrollbar-filler, .CodeMirror-gutter-filler {\n position: absolute;\n z-index: 6;\n display: none;\n outline: none;\n}\n.CodeMirror-vscrollbar {\n right: 0; top: 0;\n overflow-x: hidden;\n overflow-y: scroll;\n}\n.CodeMirror-hscrollbar {\n bottom: 0; left: 0;\n overflow-y: hidden;\n overflow-x: scroll;\n}\n.CodeMirror-scrollbar-filler {\n right: 0; bottom: 0;\n}\n.CodeMirror-gutter-filler {\n left: 0; bottom: 0;\n}\n\n.CodeMirror-gutters {\n position: absolute; left: 0; top: 0;\n min-height: 100%;\n z-index: 3;\n}\n.CodeMirror-gutter {\n white-space: normal;\n height: 100%;\n display: inline-block;\n vertical-align: top;\n margin-bottom: -50px;\n}\n.CodeMirror-gutter-wrapper {\n position: absolute;\n z-index: 4;\n background: none !important;\n border: none !important;\n}\n.CodeMirror-gutter-background {\n position: absolute;\n top: 0; bottom: 0;\n z-index: 4;\n}\n.CodeMirror-gutter-elt {\n position: absolute;\n cursor: default;\n z-index: 4;\n}\n.CodeMirror-gutter-wrapper ::selection { background-color: transparent }\n.CodeMirror-gutter-wrapper ::-moz-selection { background-color: transparent }\n\n.CodeMirror-lines {\n cursor: text;\n min-height: 1px; /* prevents collapsing before first draw */\n}\n.CodeMirror pre.CodeMirror-line,\n.CodeMirror pre.CodeMirror-line-like {\n /* Reset some styles that the rest of the page might have set */\n -moz-border-radius: 0; -webkit-border-radius: 0; border-radius: 0;\n border-width: 0;\n background: transparent;\n font-family: inherit;\n font-size: inherit;\n margin: 0;\n white-space: pre;\n word-wrap: normal;\n line-height: inherit;\n color: inherit;\n z-index: 2;\n position: relative;\n overflow: visible;\n -webkit-tap-highlight-color: transparent;\n -webkit-font-variant-ligatures: contextual;\n font-variant-ligatures: contextual;\n}\n.CodeMirror-wrap pre.CodeMirror-line,\n.CodeMirror-wrap pre.CodeMirror-line-like {\n word-wrap: break-word;\n white-space: pre-wrap;\n word-break: normal;\n}\n\n.CodeMirror-linebackground {\n position: absolute;\n left: 0; right: 0; top: 0; bottom: 0;\n z-index: 0;\n}\n\n.CodeMirror-linewidget {\n position: relative;\n z-index: 2;\n padding: 0.1px; /* Force widget margins to stay inside of the container */\n}\n\n.CodeMirror-widget {}\n\n.CodeMirror-rtl pre { direction: rtl; }\n\n.CodeMirror-code {\n outline: none;\n}\n\n/* Force content-box sizing for the elements where we expect it */\n.CodeMirror-scroll,\n.CodeMirror-sizer,\n.CodeMirror-gutter,\n.CodeMirror-gutters,\n.CodeMirror-linenumber {\n -moz-box-sizing: content-box;\n box-sizing: content-box;\n}\n\n.CodeMirror-measure {\n position: absolute;\n width: 100%;\n height: 0;\n overflow: hidden;\n visibility: hidden;\n}\n\n.CodeMirror-cursor {\n position: absolute;\n pointer-events: none;\n}\n.CodeMirror-measure pre { position: static; }\n\ndiv.CodeMirror-cursors {\n visibility: hidden;\n position: relative;\n z-index: 3;\n}\ndiv.CodeMirror-dragcursors {\n visibility: visible;\n}\n\n.CodeMirror-focused div.CodeMirror-cursors {\n visibility: visible;\n}\n\n.CodeMirror-selected { background: #d9d9d9; }\n.CodeMirror-focused .CodeMirror-selected { background: #d7d4f0; }\n.CodeMirror-crosshair { cursor: crosshair; }\n.CodeMirror-line::selection, .CodeMirror-line > span::selection, .CodeMirror-line > span > span::selection { background: #d7d4f0; }\n.CodeMirror-line::-moz-selection, .CodeMirror-line > span::-moz-selection, .CodeMirror-line > span > span::-moz-selection { background: #d7d4f0; }\n\n.cm-searching {\n background-color: #ffa;\n background-color: rgba(255, 255, 0, .4);\n}\n\n/* Used to force a border model for a node */\n.cm-force-border { padding-right: .1px; }\n\n@media print {\n /* Hide the cursor when printing */\n .CodeMirror div.CodeMirror-cursors {\n visibility: hidden;\n }\n}\n\n/* See issue #2901 */\n.cm-tab-wrap-hack:after { content: ''; }\n\n/* Help users use markselection to safely style text background */\nspan.CodeMirror-selectedtext { background: none; }\n","/*\n Name: material\n Author: Mattia Astorino (http://github.com/equinusocio)\n Website: https://material-theme.site/\n*/\n\n.cm-s-material.CodeMirror {\n background-color: #263238;\n color: #EEFFFF;\n}\n\n.cm-s-material .CodeMirror-gutters {\n background: #263238;\n color: #546E7A;\n border: none;\n}\n\n.cm-s-material .CodeMirror-guttermarker,\n.cm-s-material .CodeMirror-guttermarker-subtle,\n.cm-s-material .CodeMirror-linenumber {\n color: #546E7A;\n}\n\n.cm-s-material .CodeMirror-cursor {\n border-left: 1px solid #FFCC00;\n}\n.cm-s-material.cm-fat-cursor .CodeMirror-cursor {\n background-color: #5d6d5c80 !important;\n}\n.cm-s-material .cm-animate-fat-cursor {\n background-color: #5d6d5c80 !important;\n}\n\n.cm-s-material div.CodeMirror-selected {\n background: rgba(128, 203, 196, 0.2);\n}\n\n.cm-s-material.CodeMirror-focused div.CodeMirror-selected {\n background: rgba(128, 203, 196, 0.2);\n}\n\n.cm-s-material .CodeMirror-line::selection,\n.cm-s-material .CodeMirror-line>span::selection,\n.cm-s-material .CodeMirror-line>span>span::selection {\n background: rgba(128, 203, 196, 0.2);\n}\n\n.cm-s-material .CodeMirror-line::-moz-selection,\n.cm-s-material .CodeMirror-line>span::-moz-selection,\n.cm-s-material .CodeMirror-line>span>span::-moz-selection {\n background: rgba(128, 203, 196, 0.2);\n}\n\n.cm-s-material .CodeMirror-activeline-background {\n background: rgba(0, 0, 0, 0.5);\n}\n\n.cm-s-material .cm-keyword {\n color: #C792EA;\n}\n\n.cm-s-material .cm-operator {\n color: #89DDFF;\n}\n\n.cm-s-material .cm-variable-2 {\n color: #EEFFFF;\n}\n\n.cm-s-material .cm-variable-3,\n.cm-s-material .cm-type {\n color: #f07178;\n}\n\n.cm-s-material .cm-builtin {\n color: #FFCB6B;\n}\n\n.cm-s-material .cm-atom {\n color: #F78C6C;\n}\n\n.cm-s-material .cm-number {\n color: #FF5370;\n}\n\n.cm-s-material .cm-def {\n color: #82AAFF;\n}\n\n.cm-s-material .cm-string {\n color: #C3E88D;\n}\n\n.cm-s-material .cm-string-2 {\n color: #f07178;\n}\n\n.cm-s-material .cm-comment {\n color: #546E7A;\n}\n\n.cm-s-material .cm-variable {\n color: #f07178;\n}\n\n.cm-s-material .cm-tag {\n color: #FF5370;\n}\n\n.cm-s-material .cm-meta {\n color: #FFCB6B;\n}\n\n.cm-s-material .cm-attribute {\n color: #C792EA;\n}\n\n.cm-s-material .cm-property {\n color: #C792EA;\n}\n\n.cm-s-material .cm-qualifier {\n color: #DECB6B;\n}\n\n.cm-s-material .cm-variable-3,\n.cm-s-material .cm-type {\n color: #DECB6B;\n}\n\n\n.cm-s-material .cm-error {\n color: rgba(255, 255, 255, 1.0);\n background-color: #FF5370;\n}\n\n.cm-s-material .CodeMirror-matchingbracket {\n text-decoration: underline;\n color: white !important;\n}\n","@tailwind base;\n@tailwind components;\n@tailwind utilities;\n\nbody {\n background-color: #2a3236;\n}\n\n.react-codemirror2,\n.CodeMirror {\n height: 100% !important;\n background-color: transparent !important;\n font-size: 15px;\n z-index:20\n}\n\n.CodeMirror-line > span {\n background-color: #2a323699;\n}\n\n.darken::before {\n content: ' ';\n position: absolute;\n top: 0;\n left: 0;\n width: 100vw;\n height: 100vh;\n display: block;\n background: black;\n opacity: 0.5;\n}","/*\n1. Prevent padding and border from affecting element width. (https://github.com/mozdevs/cssremedy/issues/4)\n2. Allow adding a border to an element by just adding a border-width. (https://github.com/tailwindcss/tailwindcss/pull/116)\n*/\n\n*,\n::before,\n::after {\n box-sizing: border-box; /* 1 */\n border-width: 0; /* 2 */\n border-style: solid; /* 2 */\n border-color: theme('borderColor.DEFAULT', currentColor); /* 2 */\n}\n\n::before,\n::after {\n --tw-content: '';\n}\n\n/*\n1. Use a consistent sensible line-height in all browsers.\n2. Prevent adjustments of font size after orientation changes in iOS.\n3. Use a more readable tab size.\n4. Use the user's configured `sans` font-family by default.\n*/\n\nhtml {\n line-height: 1.5; /* 1 */\n -webkit-text-size-adjust: 100%; /* 2 */\n -moz-tab-size: 4; /* 3 */\n tab-size: 4; /* 3 */\n font-family: theme('fontFamily.sans', ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, \"Noto Sans\", sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\"); /* 4 */\n}\n\n/*\n1. Remove the margin in all browsers.\n2. Inherit line-height from `html` so users can set them as a class directly on the `html` element.\n*/\n\nbody {\n margin: 0; /* 1 */\n line-height: inherit; /* 2 */\n}\n\n/*\n1. Add the correct height in Firefox.\n2. Correct the inheritance of border color in Firefox. (https://bugzilla.mozilla.org/show_bug.cgi?id=190655)\n3. Ensure horizontal rules are visible by default.\n*/\n\nhr {\n height: 0; /* 1 */\n color: inherit; /* 2 */\n border-top-width: 1px; /* 3 */\n}\n\n/*\nAdd the correct text decoration in Chrome, Edge, and Safari.\n*/\n\nabbr:where([title]) {\n text-decoration: underline dotted;\n}\n\n/*\nRemove the default font size and weight for headings.\n*/\n\nh1,\nh2,\nh3,\nh4,\nh5,\nh6 {\n font-size: inherit;\n font-weight: inherit;\n}\n\n/*\nReset links to optimize for opt-in styling instead of opt-out.\n*/\n\na {\n color: inherit;\n text-decoration: inherit;\n}\n\n/*\nAdd the correct font weight in Edge and Safari.\n*/\n\nb,\nstrong {\n font-weight: bolder;\n}\n\n/*\n1. Use the user's configured `mono` font family by default.\n2. Correct the odd `em` font sizing in all browsers.\n*/\n\ncode,\nkbd,\nsamp,\npre {\n font-family: theme('fontFamily.mono', ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace); /* 1 */\n font-size: 1em; /* 2 */\n}\n\n/*\nAdd the correct font size in all browsers.\n*/\n\nsmall {\n font-size: 80%;\n}\n\n/*\nPrevent `sub` and `sup` elements from affecting the line height in all browsers.\n*/\n\nsub,\nsup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n}\n\nsub {\n bottom: -0.25em;\n}\n\nsup {\n top: -0.5em;\n}\n\n/*\n1. Remove text indentation from table contents in Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=999088, https://bugs.webkit.org/show_bug.cgi?id=201297)\n2. Correct table border color inheritance in all Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=935729, https://bugs.webkit.org/show_bug.cgi?id=195016)\n3. Remove gaps between table borders by default.\n*/\n\ntable {\n text-indent: 0; /* 1 */\n border-color: inherit; /* 2 */\n border-collapse: collapse; /* 3 */\n}\n\n/*\n1. Change the font styles in all browsers.\n2. Remove the margin in Firefox and Safari.\n3. Remove default padding in all browsers.\n*/\n\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n font-family: inherit; /* 1 */\n font-size: 100%; /* 1 */\n line-height: inherit; /* 1 */\n color: inherit; /* 1 */\n margin: 0; /* 2 */\n padding: 0; /* 3 */\n}\n\n/*\nRemove the inheritance of text transform in Edge and Firefox.\n*/\n\nbutton,\nselect {\n text-transform: none;\n}\n\n/*\n1. Correct the inability to style clickable types in iOS and Safari.\n2. Remove default button styles.\n*/\n\nbutton,\n[type='button'],\n[type='reset'],\n[type='submit'] {\n -webkit-appearance: button; /* 1 */\n background-color: transparent; /* 2 */\n background-image: none; /* 2 */\n}\n\n/*\nUse the modern Firefox focus style for all focusable elements.\n*/\n\n:-moz-focusring {\n outline: auto;\n}\n\n/*\nRemove the additional `:invalid` styles in Firefox. (https://github.com/mozilla/gecko-dev/blob/2f9eacd9d3d995c937b4251a5557d95d494c9be1/layout/style/res/forms.css#L728-L737)\n*/\n\n:-moz-ui-invalid {\n box-shadow: none;\n}\n\n/*\nAdd the correct vertical alignment in Chrome and Firefox.\n*/\n\nprogress {\n vertical-align: baseline;\n}\n\n/*\nCorrect the cursor style of increment and decrement buttons in Safari.\n*/\n\n::-webkit-inner-spin-button,\n::-webkit-outer-spin-button {\n height: auto;\n}\n\n/*\n1. Correct the odd appearance in Chrome and Safari.\n2. Correct the outline style in Safari.\n*/\n\n[type='search'] {\n -webkit-appearance: textfield; /* 1 */\n outline-offset: -2px; /* 2 */\n}\n\n/*\nRemove the inner padding in Chrome and Safari on macOS.\n*/\n\n::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n/*\n1. Correct the inability to style clickable types in iOS and Safari.\n2. Change font properties to `inherit` in Safari.\n*/\n\n::-webkit-file-upload-button {\n -webkit-appearance: button; /* 1 */\n font: inherit; /* 2 */\n}\n\n/*\nAdd the correct display in Chrome and Safari.\n*/\n\nsummary {\n display: list-item;\n}\n\n/*\nRemoves the default spacing and border for appropriate elements.\n*/\n\nblockquote,\ndl,\ndd,\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\nhr,\nfigure,\np,\npre {\n margin: 0;\n}\n\nfieldset {\n margin: 0;\n padding: 0;\n}\n\nlegend {\n padding: 0;\n}\n\nol,\nul,\nmenu {\n list-style: none;\n margin: 0;\n padding: 0;\n}\n\n/*\nPrevent resizing textareas horizontally by default.\n*/\n\ntextarea {\n resize: vertical;\n}\n\n/*\n1. Reset the default placeholder opacity in Firefox. (https://github.com/tailwindlabs/tailwindcss/issues/3300)\n2. Set the default placeholder color to the user's configured gray 400 color.\n*/\n\ninput::placeholder,\ntextarea::placeholder {\n opacity: 1; /* 1 */\n color: theme('colors.gray.400', #9ca3af); /* 2 */\n}\n\n/*\nSet the default cursor for buttons.\n*/\n\nbutton,\n[role=\"button\"] {\n cursor: pointer;\n}\n\n/*\nMake sure disabled buttons don't get the pointer cursor.\n*/\n:disabled {\n cursor: default;\n}\n\n/*\n1. Make replaced elements `display: block` by default. (https://github.com/mozdevs/cssremedy/issues/14)\n2. Add `vertical-align: middle` to align replaced elements more sensibly by default. (https://github.com/jensimmons/cssremedy/issues/14#issuecomment-634934210)\n This can trigger a poorly considered lint error in some tools but is included by design.\n*/\n\nimg,\nsvg,\nvideo,\ncanvas,\naudio,\niframe,\nembed,\nobject {\n display: block; /* 1 */\n vertical-align: middle; /* 2 */\n}\n\n/*\nConstrain images and videos to the parent width and preserve their intrinsic aspect ratio. (https://github.com/mozdevs/cssremedy/issues/14)\n*/\n\nimg,\nvideo {\n max-width: 100%;\n height: auto;\n}\n\n/*\nEnsure the default browser behavior of the `hidden` attribute.\n*/\n\n[hidden] {\n display: none;\n}\n"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/docs/static/js/787.1c52cb78.chunk.js b/docs/static/js/787.1c52cb78.chunk.js new file mode 100644 index 000000000..990897c6e --- /dev/null +++ b/docs/static/js/787.1c52cb78.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunk_strudel_cycles_repl=self.webpackChunk_strudel_cycles_repl||[]).push([[787],{787:function(e,t,n){n.r(t),n.d(t,{getCLS:function(){return y},getFCP:function(){return g},getFID:function(){return C},getLCP:function(){return P},getTTFB:function(){return D}});var i,r,a,o,u=function(e,t){return{name:e,value:void 0===t?-1:t,delta:0,entries:[],id:"v2-".concat(Date.now(),"-").concat(Math.floor(8999999999999*Math.random())+1e12)}},c=function(e,t){try{if(PerformanceObserver.supportedEntryTypes.includes(e)){if("first-input"===e&&!("PerformanceEventTiming"in self))return;var n=new PerformanceObserver((function(e){return e.getEntries().map(t)}));return n.observe({type:e,buffered:!0}),n}}catch(e){}},f=function(e,t){var n=function n(i){"pagehide"!==i.type&&"hidden"!==document.visibilityState||(e(i),t&&(removeEventListener("visibilitychange",n,!0),removeEventListener("pagehide",n,!0)))};addEventListener("visibilitychange",n,!0),addEventListener("pagehide",n,!0)},s=function(e){addEventListener("pageshow",(function(t){t.persisted&&e(t)}),!0)},m=function(e,t,n){var i;return function(r){t.value>=0&&(r||n)&&(t.delta=t.value-(i||0),(t.delta||void 0===i)&&(i=t.value,e(t)))}},v=-1,p=function(){return"hidden"===document.visibilityState?0:1/0},d=function(){f((function(e){var t=e.timeStamp;v=t}),!0)},l=function(){return v<0&&(v=p(),d(),s((function(){setTimeout((function(){v=p(),d()}),0)}))),{get firstHiddenTime(){return v}}},g=function(e,t){var n,i=l(),r=u("FCP"),a=function(e){"first-contentful-paint"===e.name&&(f&&f.disconnect(),e.startTime-1&&e(t)},r=u("CLS",0),a=0,o=[],v=function(e){if(!e.hadRecentInput){var t=o[0],i=o[o.length-1];a&&e.startTime-i.startTime<1e3&&e.startTime-t.startTime<5e3?(a+=e.value,o.push(e)):(a=e.value,o=[e]),a>r.value&&(r.value=a,r.entries=o,n())}},p=c("layout-shift",v);p&&(n=m(i,r,t),f((function(){p.takeRecords().map(v),n(!0)})),s((function(){a=0,T=-1,r=u("CLS",0),n=m(i,r,t)})))},E={passive:!0,capture:!0},w=new Date,L=function(e,t){i||(i=t,r=e,a=new Date,F(removeEventListener),S())},S=function(){if(r>=0&&r1e12?new Date:performance.now())-e.timeStamp;"pointerdown"==e.type?function(e,t){var n=function(){L(e,t),r()},i=function(){r()},r=function(){removeEventListener("pointerup",n,E),removeEventListener("pointercancel",i,E)};addEventListener("pointerup",n,E),addEventListener("pointercancel",i,E)}(t,e):L(t,e)}},F=function(e){["mousedown","keydown","touchstart","pointerdown"].forEach((function(t){return e(t,b,E)}))},C=function(e,t){var n,a=l(),v=u("FID"),p=function(e){e.startTimeperformance.now())return;n.entries=[t],e(n)}catch(e){}},"complete"===document.readyState?setTimeout(t,0):addEventListener("load",(function(){return setTimeout(t,0)}))}}}]); +//# sourceMappingURL=787.1c52cb78.chunk.js.map \ No newline at end of file diff --git a/docs/static/js/787.8f7ec9e0.chunk.js.map b/docs/static/js/787.1c52cb78.chunk.js.map similarity index 98% rename from docs/static/js/787.8f7ec9e0.chunk.js.map rename to docs/static/js/787.1c52cb78.chunk.js.map index eb3cae2ac..6bea3dac3 100644 --- a/docs/static/js/787.8f7ec9e0.chunk.js.map +++ b/docs/static/js/787.1c52cb78.chunk.js.map @@ -1 +1 @@ -{"version":3,"file":"static/js/787.8f7ec9e0.chunk.js","mappings":"+QAAA,IAAIA,EAAEC,EAAEC,EAAEC,EAAEC,EAAE,SAASJ,EAAEC,GAAG,MAAM,CAACI,KAAKL,EAAEM,WAAM,IAASL,GAAG,EAAEA,EAAEM,MAAM,EAAEC,QAAQ,GAAGC,GAAG,MAAMC,OAAOC,KAAKC,MAAM,KAAKF,OAAOG,KAAKC,MAAM,cAAcD,KAAKE,UAAU,QAAQC,EAAE,SAAShB,EAAEC,GAAG,IAAI,GAAGgB,oBAAoBC,oBAAoBC,SAASnB,GAAG,CAAC,GAAG,gBAAgBA,KAAK,2BAA2BoB,MAAM,OAAO,IAAIlB,EAAE,IAAIe,qBAAqB,SAASjB,GAAG,OAAOA,EAAEqB,aAAaC,IAAIrB,MAAM,OAAOC,EAAEqB,QAAQ,CAACC,KAAKxB,EAAEyB,UAAS,IAAKvB,GAAG,MAAMF,MAAM0B,EAAE,SAAS1B,EAAEC,GAAG,IAAIC,EAAE,SAASA,EAAEC,GAAG,aAAaA,EAAEqB,MAAM,WAAWG,SAASC,kBAAkB5B,EAAEG,GAAGF,IAAI4B,oBAAoB,mBAAmB3B,GAAE,GAAI2B,oBAAoB,WAAW3B,GAAE,MAAO4B,iBAAiB,mBAAmB5B,GAAE,GAAI4B,iBAAiB,WAAW5B,GAAE,IAAK6B,EAAE,SAAS/B,GAAG8B,iBAAiB,YAAY,SAAS7B,GAAGA,EAAE+B,WAAWhC,EAAEC,MAAK,IAAKgC,EAAE,SAASjC,EAAEC,EAAEC,GAAG,IAAIC,EAAE,OAAO,SAASC,GAAGH,EAAEK,OAAO,IAAIF,GAAGF,KAAKD,EAAEM,MAAMN,EAAEK,OAAOH,GAAG,IAAIF,EAAEM,YAAO,IAASJ,KAAKA,EAAEF,EAAEK,MAAMN,EAAEC,OAAOiC,GAAG,EAAEC,EAAE,WAAW,MAAM,WAAWR,SAASC,gBAAgB,EAAE,KAAKQ,EAAE,WAAWV,GAAG,SAAS1B,GAAG,IAAIC,EAAED,EAAEqC,UAAUH,EAAEjC,KAAI,IAAKqC,EAAE,WAAW,OAAOJ,EAAE,IAAIA,EAAEC,IAAIC,IAAIL,GAAG,WAAWQ,YAAY,WAAWL,EAAEC,IAAIC,MAAM,OAAO,CAAKI,sBAAkB,OAAON,KAAKO,EAAE,SAASzC,EAAEC,GAAG,IAAIC,EAAEC,EAAEmC,IAAIZ,EAAEtB,EAAE,OAAO8B,EAAE,SAASlC,GAAG,2BAA2BA,EAAEK,OAAO+B,GAAGA,EAAEM,aAAa1C,EAAE2C,UAAUxC,EAAEqC,kBAAkBd,EAAEpB,MAAMN,EAAE2C,UAAUjB,EAAElB,QAAQoC,KAAK5C,GAAGE,GAAE,MAAOiC,EAAEU,OAAOC,aAAaA,YAAYC,kBAAkBD,YAAYC,iBAAiB,0BAA0B,GAAGX,EAAED,EAAE,KAAKnB,EAAE,QAAQkB,IAAIC,GAAGC,KAAKlC,EAAE+B,EAAEjC,EAAE0B,EAAEzB,GAAGkC,GAAGD,EAAEC,GAAGJ,GAAG,SAAS5B,GAAGuB,EAAEtB,EAAE,OAAOF,EAAE+B,EAAEjC,EAAE0B,EAAEzB,GAAG+C,uBAAuB,WAAWA,uBAAuB,WAAWtB,EAAEpB,MAAMwC,YAAYlC,MAAMT,EAAEkC,UAAUnC,GAAE,cAAe+C,GAAE,EAAGC,GAAG,EAAEC,EAAE,SAASnD,EAAEC,GAAGgD,IAAIR,GAAG,SAASzC,GAAGkD,EAAElD,EAAEM,SAAS2C,GAAE,GAAI,IAAI/C,EAAEC,EAAE,SAASF,GAAGiD,GAAG,GAAGlD,EAAEC,IAAIiC,EAAE9B,EAAE,MAAM,GAAG+B,EAAE,EAAEC,EAAE,GAAGE,EAAE,SAAStC,GAAG,IAAIA,EAAEoD,eAAe,CAAC,IAAInD,EAAEmC,EAAE,GAAGjC,EAAEiC,EAAEA,EAAEiB,OAAO,GAAGlB,GAAGnC,EAAE2C,UAAUxC,EAAEwC,UAAU,KAAK3C,EAAE2C,UAAU1C,EAAE0C,UAAU,KAAKR,GAAGnC,EAAEM,MAAM8B,EAAEQ,KAAK5C,KAAKmC,EAAEnC,EAAEM,MAAM8B,EAAE,CAACpC,IAAImC,EAAED,EAAE5B,QAAQ4B,EAAE5B,MAAM6B,EAAED,EAAE1B,QAAQ4B,EAAElC,OAAOiD,EAAEnC,EAAE,eAAesB,GAAGa,IAAIjD,EAAE+B,EAAE9B,EAAE+B,EAAEjC,GAAGyB,GAAG,WAAWyB,EAAEG,cAAchC,IAAIgB,GAAGpC,GAAE,MAAO6B,GAAG,WAAWI,EAAE,EAAEe,GAAG,EAAEhB,EAAE9B,EAAE,MAAM,GAAGF,EAAE+B,EAAE9B,EAAE+B,EAAEjC,QAAQsD,EAAE,CAACC,SAAQ,EAAGC,SAAQ,GAAIC,EAAE,IAAI/C,KAAKgD,EAAE,SAASxD,EAAEC,GAAGJ,IAAIA,EAAEI,EAAEH,EAAEE,EAAED,EAAE,IAAIS,KAAKiD,EAAE/B,qBAAqBgC,MAAMA,EAAE,WAAW,GAAG5D,GAAG,GAAGA,EAAEC,EAAEwD,EAAE,CAAC,IAAItD,EAAE,CAAC0D,UAAU,cAAczD,KAAKL,EAAEwB,KAAKuC,OAAO/D,EAAE+D,OAAOC,WAAWhE,EAAEgE,WAAWrB,UAAU3C,EAAEqC,UAAU4B,gBAAgBjE,EAAEqC,UAAUpC,GAAGE,EAAE+D,SAAS,SAASlE,GAAGA,EAAEI,MAAMD,EAAE,KAAKgE,EAAE,SAASnE,GAAG,GAAGA,EAAEgE,WAAW,CAAC,IAAI/D,GAAGD,EAAEqC,UAAU,KAAK,IAAI1B,KAAKmC,YAAYlC,OAAOZ,EAAEqC,UAAU,eAAerC,EAAEwB,KAAK,SAASxB,EAAEC,GAAG,IAAIC,EAAE,WAAWyD,EAAE3D,EAAEC,GAAGG,KAAKD,EAAE,WAAWC,KAAKA,EAAE,WAAWyB,oBAAoB,YAAY3B,EAAEqD,GAAG1B,oBAAoB,gBAAgB1B,EAAEoD,IAAIzB,iBAAiB,YAAY5B,EAAEqD,GAAGzB,iBAAiB,gBAAgB3B,EAAEoD,GAA9N,CAAkOtD,EAAED,GAAG2D,EAAE1D,EAAED,KAAK4D,EAAE,SAAS5D,GAAG,CAAC,YAAY,UAAU,aAAa,eAAekE,SAAS,SAASjE,GAAG,OAAOD,EAAEC,EAAEkE,EAAEZ,OAAOa,EAAE,SAASlE,EAAEgC,GAAG,IAAIC,EAAEC,EAAEE,IAAIG,EAAErC,EAAE,OAAO6C,EAAE,SAASjD,GAAGA,EAAE2C,UAAUP,EAAEI,kBAAkBC,EAAEnC,MAAMN,EAAEiE,gBAAgBjE,EAAE2C,UAAUF,EAAEjC,QAAQoC,KAAK5C,GAAGmC,GAAE,KAAMe,EAAElC,EAAE,cAAciC,GAAGd,EAAEF,EAAE/B,EAAEuC,EAAEP,GAAGgB,GAAGxB,GAAG,WAAWwB,EAAEI,cAAchC,IAAI2B,GAAGC,EAAER,gBAAe,GAAIQ,GAAGnB,GAAG,WAAW,IAAIf,EAAEyB,EAAErC,EAAE,OAAO+B,EAAEF,EAAE/B,EAAEuC,EAAEP,GAAG/B,EAAE,GAAGF,GAAG,EAAED,EAAE,KAAK4D,EAAE9B,kBAAkBd,EAAEiC,EAAE9C,EAAEyC,KAAK5B,GAAG6C,QAAQQ,EAAE,GAAGC,EAAE,SAAStE,EAAEC,GAAG,IAAIC,EAAEC,EAAEmC,IAAIJ,EAAE9B,EAAE,OAAO+B,EAAE,SAASnC,GAAG,IAAIC,EAAED,EAAE2C,UAAU1C,EAAEE,EAAEqC,kBAAkBN,EAAE5B,MAAML,EAAEiC,EAAE1B,QAAQoC,KAAK5C,GAAGE,MAAMkC,EAAEpB,EAAE,2BAA2BmB,GAAG,GAAGC,EAAE,CAAClC,EAAE+B,EAAEjC,EAAEkC,EAAEjC,GAAG,IAAIwC,EAAE,WAAW4B,EAAEnC,EAAEzB,MAAM2B,EAAEkB,cAAchC,IAAIa,GAAGC,EAAEM,aAAa2B,EAAEnC,EAAEzB,KAAI,EAAGP,GAAE,KAAM,CAAC,UAAU,SAASgE,SAAS,SAASlE,GAAG8B,iBAAiB9B,EAAEyC,EAAE,CAAC8B,MAAK,EAAGd,SAAQ,OAAQ/B,EAAEe,GAAE,GAAIV,GAAG,SAAS5B,GAAG+B,EAAE9B,EAAE,OAAOF,EAAE+B,EAAEjC,EAAEkC,EAAEjC,GAAG+C,uBAAuB,WAAWA,uBAAuB,WAAWd,EAAE5B,MAAMwC,YAAYlC,MAAMT,EAAEkC,UAAUgC,EAAEnC,EAAEzB,KAAI,EAAGP,GAAE,cAAesE,EAAE,SAASxE,GAAG,IAAIC,EAAEC,EAAEE,EAAE,QAAQH,EAAE,WAAW,IAAI,IAAIA,EAAE6C,YAAY2B,iBAAiB,cAAc,IAAI,WAAW,IAAIzE,EAAE8C,YAAY4B,OAAOzE,EAAE,CAAC6D,UAAU,aAAanB,UAAU,GAAG,IAAI,IAAIzC,KAAKF,EAAE,oBAAoBE,GAAG,WAAWA,IAAID,EAAEC,GAAGW,KAAK8D,IAAI3E,EAAEE,GAAGF,EAAE4E,gBAAgB,IAAI,OAAO3E,EAAhL,GAAqL,GAAGC,EAAEI,MAAMJ,EAAEK,MAAMN,EAAE4E,cAAc3E,EAAEI,MAAM,GAAGJ,EAAEI,MAAMwC,YAAYlC,MAAM,OAAOV,EAAEM,QAAQ,CAACP,GAAGD,EAAEE,GAAG,MAAMF,MAAM,aAAa2B,SAASmD,WAAWvC,WAAWtC,EAAE,GAAG6B,iBAAiB,QAAQ,WAAW,OAAOS,WAAWtC,EAAE","sources":["../node_modules/web-vitals/dist/web-vitals.js"],"sourcesContent":["var e,t,n,i,r=function(e,t){return{name:e,value:void 0===t?-1:t,delta:0,entries:[],id:\"v2-\".concat(Date.now(),\"-\").concat(Math.floor(8999999999999*Math.random())+1e12)}},a=function(e,t){try{if(PerformanceObserver.supportedEntryTypes.includes(e)){if(\"first-input\"===e&&!(\"PerformanceEventTiming\"in self))return;var n=new PerformanceObserver((function(e){return e.getEntries().map(t)}));return n.observe({type:e,buffered:!0}),n}}catch(e){}},o=function(e,t){var n=function n(i){\"pagehide\"!==i.type&&\"hidden\"!==document.visibilityState||(e(i),t&&(removeEventListener(\"visibilitychange\",n,!0),removeEventListener(\"pagehide\",n,!0)))};addEventListener(\"visibilitychange\",n,!0),addEventListener(\"pagehide\",n,!0)},u=function(e){addEventListener(\"pageshow\",(function(t){t.persisted&&e(t)}),!0)},c=function(e,t,n){var i;return function(r){t.value>=0&&(r||n)&&(t.delta=t.value-(i||0),(t.delta||void 0===i)&&(i=t.value,e(t)))}},f=-1,s=function(){return\"hidden\"===document.visibilityState?0:1/0},m=function(){o((function(e){var t=e.timeStamp;f=t}),!0)},v=function(){return f<0&&(f=s(),m(),u((function(){setTimeout((function(){f=s(),m()}),0)}))),{get firstHiddenTime(){return f}}},d=function(e,t){var n,i=v(),o=r(\"FCP\"),f=function(e){\"first-contentful-paint\"===e.name&&(m&&m.disconnect(),e.startTime-1&&e(t)},f=r(\"CLS\",0),s=0,m=[],v=function(e){if(!e.hadRecentInput){var t=m[0],i=m[m.length-1];s&&e.startTime-i.startTime<1e3&&e.startTime-t.startTime<5e3?(s+=e.value,m.push(e)):(s=e.value,m=[e]),s>f.value&&(f.value=s,f.entries=m,n())}},h=a(\"layout-shift\",v);h&&(n=c(i,f,t),o((function(){h.takeRecords().map(v),n(!0)})),u((function(){s=0,l=-1,f=r(\"CLS\",0),n=c(i,f,t)})))},T={passive:!0,capture:!0},y=new Date,g=function(i,r){e||(e=r,t=i,n=new Date,w(removeEventListener),E())},E=function(){if(t>=0&&t1e12?new Date:performance.now())-e.timeStamp;\"pointerdown\"==e.type?function(e,t){var n=function(){g(e,t),r()},i=function(){r()},r=function(){removeEventListener(\"pointerup\",n,T),removeEventListener(\"pointercancel\",i,T)};addEventListener(\"pointerup\",n,T),addEventListener(\"pointercancel\",i,T)}(t,e):g(t,e)}},w=function(e){[\"mousedown\",\"keydown\",\"touchstart\",\"pointerdown\"].forEach((function(t){return e(t,S,T)}))},L=function(n,f){var s,m=v(),d=r(\"FID\"),p=function(e){e.startTimeperformance.now())return;n.entries=[t],e(n)}catch(e){}},\"complete\"===document.readyState?setTimeout(t,0):addEventListener(\"load\",(function(){return setTimeout(t,0)}))};export{h as getCLS,d as getFCP,L as getFID,F as getLCP,P as getTTFB};\n"],"names":["e","t","n","i","r","name","value","delta","entries","id","concat","Date","now","Math","floor","random","a","PerformanceObserver","supportedEntryTypes","includes","self","getEntries","map","observe","type","buffered","o","document","visibilityState","removeEventListener","addEventListener","u","persisted","c","f","s","m","timeStamp","v","setTimeout","firstHiddenTime","d","disconnect","startTime","push","window","performance","getEntriesByName","requestAnimationFrame","p","l","h","hadRecentInput","length","takeRecords","T","passive","capture","y","g","w","E","entryType","target","cancelable","processingStart","forEach","S","L","b","F","once","P","getEntriesByType","timing","max","navigationStart","responseStart","readyState"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"static/js/787.1c52cb78.chunk.js","mappings":"6RAAA,IAAIA,EAAEC,EAAEC,EAAEC,EAAEC,EAAE,SAASJ,EAAEC,GAAG,MAAM,CAACI,KAAKL,EAAEM,WAAM,IAASL,GAAG,EAAEA,EAAEM,MAAM,EAAEC,QAAQ,GAAGC,GAAG,MAAMC,OAAOC,KAAKC,MAAM,KAAKF,OAAOG,KAAKC,MAAM,cAAcD,KAAKE,UAAU,QAAQC,EAAE,SAAShB,EAAEC,GAAG,IAAI,GAAGgB,oBAAoBC,oBAAoBC,SAASnB,GAAG,CAAC,GAAG,gBAAgBA,KAAK,2BAA2BoB,MAAM,OAAO,IAAIlB,EAAE,IAAIe,qBAAqB,SAASjB,GAAG,OAAOA,EAAEqB,aAAaC,IAAIrB,MAAM,OAAOC,EAAEqB,QAAQ,CAACC,KAAKxB,EAAEyB,UAAS,IAAKvB,GAAG,MAAMF,MAAM0B,EAAE,SAAS1B,EAAEC,GAAG,IAAIC,EAAE,SAASA,EAAEC,GAAG,aAAaA,EAAEqB,MAAM,WAAWG,SAASC,kBAAkB5B,EAAEG,GAAGF,IAAI4B,oBAAoB,mBAAmB3B,GAAE,GAAI2B,oBAAoB,WAAW3B,GAAE,MAAO4B,iBAAiB,mBAAmB5B,GAAE,GAAI4B,iBAAiB,WAAW5B,GAAE,IAAK6B,EAAE,SAAS/B,GAAG8B,iBAAiB,YAAY,SAAS7B,GAAGA,EAAE+B,WAAWhC,EAAEC,MAAK,IAAKgC,EAAE,SAASjC,EAAEC,EAAEC,GAAG,IAAIC,EAAE,OAAO,SAASC,GAAGH,EAAEK,OAAO,IAAIF,GAAGF,KAAKD,EAAEM,MAAMN,EAAEK,OAAOH,GAAG,IAAIF,EAAEM,YAAO,IAASJ,KAAKA,EAAEF,EAAEK,MAAMN,EAAEC,OAAOiC,GAAG,EAAEC,EAAE,WAAW,MAAM,WAAWR,SAASC,gBAAgB,EAAE,KAAKQ,EAAE,WAAWV,GAAG,SAAS1B,GAAG,IAAIC,EAAED,EAAEqC,UAAUH,EAAEjC,KAAI,IAAKqC,EAAE,WAAW,OAAOJ,EAAE,IAAIA,EAAEC,IAAIC,IAAIL,GAAG,WAAWQ,YAAY,WAAWL,EAAEC,IAAIC,MAAM,OAAO,CAAKI,sBAAkB,OAAON,KAAKO,EAAE,SAASzC,EAAEC,GAAG,IAAIC,EAAEC,EAAEmC,IAAIZ,EAAEtB,EAAE,OAAO8B,EAAE,SAASlC,GAAG,2BAA2BA,EAAEK,OAAO+B,GAAGA,EAAEM,aAAa1C,EAAE2C,UAAUxC,EAAEqC,kBAAkBd,EAAEpB,MAAMN,EAAE2C,UAAUjB,EAAElB,QAAQoC,KAAK5C,GAAGE,GAAE,MAAOiC,EAAEU,OAAOC,aAAaA,YAAYC,kBAAkBD,YAAYC,iBAAiB,0BAA0B,GAAGX,EAAED,EAAE,KAAKnB,EAAE,QAAQkB,IAAIC,GAAGC,KAAKlC,EAAE+B,EAAEjC,EAAE0B,EAAEzB,GAAGkC,GAAGD,EAAEC,GAAGJ,GAAG,SAAS5B,GAAGuB,EAAEtB,EAAE,OAAOF,EAAE+B,EAAEjC,EAAE0B,EAAEzB,GAAG+C,uBAAuB,WAAWA,uBAAuB,WAAWtB,EAAEpB,MAAMwC,YAAYlC,MAAMT,EAAEkC,UAAUnC,GAAE,cAAe+C,GAAE,EAAGC,GAAG,EAAEC,EAAE,SAASnD,EAAEC,GAAGgD,IAAIR,GAAG,SAASzC,GAAGkD,EAAElD,EAAEM,SAAS2C,GAAE,GAAI,IAAI/C,EAAEC,EAAE,SAASF,GAAGiD,GAAG,GAAGlD,EAAEC,IAAIiC,EAAE9B,EAAE,MAAM,GAAG+B,EAAE,EAAEC,EAAE,GAAGE,EAAE,SAAStC,GAAG,IAAIA,EAAEoD,eAAe,CAAC,IAAInD,EAAEmC,EAAE,GAAGjC,EAAEiC,EAAEA,EAAEiB,OAAO,GAAGlB,GAAGnC,EAAE2C,UAAUxC,EAAEwC,UAAU,KAAK3C,EAAE2C,UAAU1C,EAAE0C,UAAU,KAAKR,GAAGnC,EAAEM,MAAM8B,EAAEQ,KAAK5C,KAAKmC,EAAEnC,EAAEM,MAAM8B,EAAE,CAACpC,IAAImC,EAAED,EAAE5B,QAAQ4B,EAAE5B,MAAM6B,EAAED,EAAE1B,QAAQ4B,EAAElC,OAAOiD,EAAEnC,EAAE,eAAesB,GAAGa,IAAIjD,EAAE+B,EAAE9B,EAAE+B,EAAEjC,GAAGyB,GAAG,WAAWyB,EAAEG,cAAchC,IAAIgB,GAAGpC,GAAE,MAAO6B,GAAG,WAAWI,EAAE,EAAEe,GAAG,EAAEhB,EAAE9B,EAAE,MAAM,GAAGF,EAAE+B,EAAE9B,EAAE+B,EAAEjC,QAAQsD,EAAE,CAACC,SAAQ,EAAGC,SAAQ,GAAIC,EAAE,IAAI/C,KAAKgD,EAAE,SAASxD,EAAEC,GAAGJ,IAAIA,EAAEI,EAAEH,EAAEE,EAAED,EAAE,IAAIS,KAAKiD,EAAE/B,qBAAqBgC,MAAMA,EAAE,WAAW,GAAG5D,GAAG,GAAGA,EAAEC,EAAEwD,EAAE,CAAC,IAAItD,EAAE,CAAC0D,UAAU,cAAczD,KAAKL,EAAEwB,KAAKuC,OAAO/D,EAAE+D,OAAOC,WAAWhE,EAAEgE,WAAWrB,UAAU3C,EAAEqC,UAAU4B,gBAAgBjE,EAAEqC,UAAUpC,GAAGE,EAAE+D,SAAS,SAASlE,GAAGA,EAAEI,MAAMD,EAAE,KAAKgE,EAAE,SAASnE,GAAG,GAAGA,EAAEgE,WAAW,CAAC,IAAI/D,GAAGD,EAAEqC,UAAU,KAAK,IAAI1B,KAAKmC,YAAYlC,OAAOZ,EAAEqC,UAAU,eAAerC,EAAEwB,KAAK,SAASxB,EAAEC,GAAG,IAAIC,EAAE,WAAWyD,EAAE3D,EAAEC,GAAGG,KAAKD,EAAE,WAAWC,KAAKA,EAAE,WAAWyB,oBAAoB,YAAY3B,EAAEqD,GAAG1B,oBAAoB,gBAAgB1B,EAAEoD,IAAIzB,iBAAiB,YAAY5B,EAAEqD,GAAGzB,iBAAiB,gBAAgB3B,EAAEoD,GAA9N,CAAkOtD,EAAED,GAAG2D,EAAE1D,EAAED,KAAK4D,EAAE,SAAS5D,GAAG,CAAC,YAAY,UAAU,aAAa,eAAekE,SAAS,SAASjE,GAAG,OAAOD,EAAEC,EAAEkE,EAAEZ,OAAOa,EAAE,SAASlE,EAAEgC,GAAG,IAAIC,EAAEC,EAAEE,IAAIG,EAAErC,EAAE,OAAO6C,EAAE,SAASjD,GAAGA,EAAE2C,UAAUP,EAAEI,kBAAkBC,EAAEnC,MAAMN,EAAEiE,gBAAgBjE,EAAE2C,UAAUF,EAAEjC,QAAQoC,KAAK5C,GAAGmC,GAAE,KAAMe,EAAElC,EAAE,cAAciC,GAAGd,EAAEF,EAAE/B,EAAEuC,EAAEP,GAAGgB,GAAGxB,GAAG,WAAWwB,EAAEI,cAAchC,IAAI2B,GAAGC,EAAER,gBAAe,GAAIQ,GAAGnB,GAAG,WAAW,IAAIf,EAAEyB,EAAErC,EAAE,OAAO+B,EAAEF,EAAE/B,EAAEuC,EAAEP,GAAG/B,EAAE,GAAGF,GAAG,EAAED,EAAE,KAAK4D,EAAE9B,kBAAkBd,EAAEiC,EAAE9C,EAAEyC,KAAK5B,GAAG6C,QAAQQ,EAAE,GAAGC,EAAE,SAAStE,EAAEC,GAAG,IAAIC,EAAEC,EAAEmC,IAAIJ,EAAE9B,EAAE,OAAO+B,EAAE,SAASnC,GAAG,IAAIC,EAAED,EAAE2C,UAAU1C,EAAEE,EAAEqC,kBAAkBN,EAAE5B,MAAML,EAAEiC,EAAE1B,QAAQoC,KAAK5C,GAAGE,MAAMkC,EAAEpB,EAAE,2BAA2BmB,GAAG,GAAGC,EAAE,CAAClC,EAAE+B,EAAEjC,EAAEkC,EAAEjC,GAAG,IAAIwC,EAAE,WAAW4B,EAAEnC,EAAEzB,MAAM2B,EAAEkB,cAAchC,IAAIa,GAAGC,EAAEM,aAAa2B,EAAEnC,EAAEzB,KAAI,EAAGP,GAAE,KAAM,CAAC,UAAU,SAASgE,SAAS,SAASlE,GAAG8B,iBAAiB9B,EAAEyC,EAAE,CAAC8B,MAAK,EAAGd,SAAQ,OAAQ/B,EAAEe,GAAE,GAAIV,GAAG,SAAS5B,GAAG+B,EAAE9B,EAAE,OAAOF,EAAE+B,EAAEjC,EAAEkC,EAAEjC,GAAG+C,uBAAuB,WAAWA,uBAAuB,WAAWd,EAAE5B,MAAMwC,YAAYlC,MAAMT,EAAEkC,UAAUgC,EAAEnC,EAAEzB,KAAI,EAAGP,GAAE,cAAesE,EAAE,SAASxE,GAAG,IAAIC,EAAEC,EAAEE,EAAE,QAAQH,EAAE,WAAW,IAAI,IAAIA,EAAE6C,YAAY2B,iBAAiB,cAAc,IAAI,WAAW,IAAIzE,EAAE8C,YAAY4B,OAAOzE,EAAE,CAAC6D,UAAU,aAAanB,UAAU,GAAG,IAAI,IAAIzC,KAAKF,EAAE,oBAAoBE,GAAG,WAAWA,IAAID,EAAEC,GAAGW,KAAK8D,IAAI3E,EAAEE,GAAGF,EAAE4E,gBAAgB,IAAI,OAAO3E,EAAhL,GAAqL,GAAGC,EAAEI,MAAMJ,EAAEK,MAAMN,EAAE4E,cAAc3E,EAAEI,MAAM,GAAGJ,EAAEI,MAAMwC,YAAYlC,MAAM,OAAOV,EAAEM,QAAQ,CAACP,GAAGD,EAAEE,GAAG,MAAMF,MAAM,aAAa2B,SAASmD,WAAWvC,WAAWtC,EAAE,GAAG6B,iBAAiB,QAAQ,WAAW,OAAOS,WAAWtC,EAAE","sources":["../node_modules/web-vitals/dist/web-vitals.js"],"sourcesContent":["var e,t,n,i,r=function(e,t){return{name:e,value:void 0===t?-1:t,delta:0,entries:[],id:\"v2-\".concat(Date.now(),\"-\").concat(Math.floor(8999999999999*Math.random())+1e12)}},a=function(e,t){try{if(PerformanceObserver.supportedEntryTypes.includes(e)){if(\"first-input\"===e&&!(\"PerformanceEventTiming\"in self))return;var n=new PerformanceObserver((function(e){return e.getEntries().map(t)}));return n.observe({type:e,buffered:!0}),n}}catch(e){}},o=function(e,t){var n=function n(i){\"pagehide\"!==i.type&&\"hidden\"!==document.visibilityState||(e(i),t&&(removeEventListener(\"visibilitychange\",n,!0),removeEventListener(\"pagehide\",n,!0)))};addEventListener(\"visibilitychange\",n,!0),addEventListener(\"pagehide\",n,!0)},u=function(e){addEventListener(\"pageshow\",(function(t){t.persisted&&e(t)}),!0)},c=function(e,t,n){var i;return function(r){t.value>=0&&(r||n)&&(t.delta=t.value-(i||0),(t.delta||void 0===i)&&(i=t.value,e(t)))}},f=-1,s=function(){return\"hidden\"===document.visibilityState?0:1/0},m=function(){o((function(e){var t=e.timeStamp;f=t}),!0)},v=function(){return f<0&&(f=s(),m(),u((function(){setTimeout((function(){f=s(),m()}),0)}))),{get firstHiddenTime(){return f}}},d=function(e,t){var n,i=v(),o=r(\"FCP\"),f=function(e){\"first-contentful-paint\"===e.name&&(m&&m.disconnect(),e.startTime-1&&e(t)},f=r(\"CLS\",0),s=0,m=[],v=function(e){if(!e.hadRecentInput){var t=m[0],i=m[m.length-1];s&&e.startTime-i.startTime<1e3&&e.startTime-t.startTime<5e3?(s+=e.value,m.push(e)):(s=e.value,m=[e]),s>f.value&&(f.value=s,f.entries=m,n())}},h=a(\"layout-shift\",v);h&&(n=c(i,f,t),o((function(){h.takeRecords().map(v),n(!0)})),u((function(){s=0,l=-1,f=r(\"CLS\",0),n=c(i,f,t)})))},T={passive:!0,capture:!0},y=new Date,g=function(i,r){e||(e=r,t=i,n=new Date,w(removeEventListener),E())},E=function(){if(t>=0&&t1e12?new Date:performance.now())-e.timeStamp;\"pointerdown\"==e.type?function(e,t){var n=function(){g(e,t),r()},i=function(){r()},r=function(){removeEventListener(\"pointerup\",n,T),removeEventListener(\"pointercancel\",i,T)};addEventListener(\"pointerup\",n,T),addEventListener(\"pointercancel\",i,T)}(t,e):g(t,e)}},w=function(e){[\"mousedown\",\"keydown\",\"touchstart\",\"pointerdown\"].forEach((function(t){return e(t,S,T)}))},L=function(n,f){var s,m=v(),d=r(\"FID\"),p=function(e){e.startTimeperformance.now())return;n.entries=[t],e(n)}catch(e){}},\"complete\"===document.readyState?setTimeout(t,0):addEventListener(\"load\",(function(){return setTimeout(t,0)}))};export{h as getCLS,d as getFCP,L as getFID,F as getLCP,P as getTTFB};\n"],"names":["e","t","n","i","r","name","value","delta","entries","id","concat","Date","now","Math","floor","random","a","PerformanceObserver","supportedEntryTypes","includes","self","getEntries","map","observe","type","buffered","o","document","visibilityState","removeEventListener","addEventListener","u","persisted","c","f","s","m","timeStamp","v","setTimeout","firstHiddenTime","d","disconnect","startTime","push","window","performance","getEntriesByName","requestAnimationFrame","p","l","h","hadRecentInput","length","takeRecords","T","passive","capture","y","g","w","E","entryType","target","cancelable","processingStart","forEach","S","L","b","F","once","P","getEntriesByType","timing","max","navigationStart","responseStart","readyState"],"sourceRoot":""} \ No newline at end of file diff --git a/docs/static/js/787.8f7ec9e0.chunk.js b/docs/static/js/787.8f7ec9e0.chunk.js deleted file mode 100644 index 9b686689e..000000000 --- a/docs/static/js/787.8f7ec9e0.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunk_strudel_repl=self.webpackChunk_strudel_repl||[]).push([[787],{787:function(e,t,n){n.r(t),n.d(t,{getCLS:function(){return y},getFCP:function(){return g},getFID:function(){return C},getLCP:function(){return P},getTTFB:function(){return D}});var i,r,a,o,u=function(e,t){return{name:e,value:void 0===t?-1:t,delta:0,entries:[],id:"v2-".concat(Date.now(),"-").concat(Math.floor(8999999999999*Math.random())+1e12)}},c=function(e,t){try{if(PerformanceObserver.supportedEntryTypes.includes(e)){if("first-input"===e&&!("PerformanceEventTiming"in self))return;var n=new PerformanceObserver((function(e){return e.getEntries().map(t)}));return n.observe({type:e,buffered:!0}),n}}catch(e){}},f=function(e,t){var n=function n(i){"pagehide"!==i.type&&"hidden"!==document.visibilityState||(e(i),t&&(removeEventListener("visibilitychange",n,!0),removeEventListener("pagehide",n,!0)))};addEventListener("visibilitychange",n,!0),addEventListener("pagehide",n,!0)},s=function(e){addEventListener("pageshow",(function(t){t.persisted&&e(t)}),!0)},m=function(e,t,n){var i;return function(r){t.value>=0&&(r||n)&&(t.delta=t.value-(i||0),(t.delta||void 0===i)&&(i=t.value,e(t)))}},v=-1,p=function(){return"hidden"===document.visibilityState?0:1/0},d=function(){f((function(e){var t=e.timeStamp;v=t}),!0)},l=function(){return v<0&&(v=p(),d(),s((function(){setTimeout((function(){v=p(),d()}),0)}))),{get firstHiddenTime(){return v}}},g=function(e,t){var n,i=l(),r=u("FCP"),a=function(e){"first-contentful-paint"===e.name&&(f&&f.disconnect(),e.startTime-1&&e(t)},r=u("CLS",0),a=0,o=[],v=function(e){if(!e.hadRecentInput){var t=o[0],i=o[o.length-1];a&&e.startTime-i.startTime<1e3&&e.startTime-t.startTime<5e3?(a+=e.value,o.push(e)):(a=e.value,o=[e]),a>r.value&&(r.value=a,r.entries=o,n())}},p=c("layout-shift",v);p&&(n=m(i,r,t),f((function(){p.takeRecords().map(v),n(!0)})),s((function(){a=0,T=-1,r=u("CLS",0),n=m(i,r,t)})))},E={passive:!0,capture:!0},w=new Date,L=function(e,t){i||(i=t,r=e,a=new Date,F(removeEventListener),S())},S=function(){if(r>=0&&r1e12?new Date:performance.now())-e.timeStamp;"pointerdown"==e.type?function(e,t){var n=function(){L(e,t),r()},i=function(){r()},r=function(){removeEventListener("pointerup",n,E),removeEventListener("pointercancel",i,E)};addEventListener("pointerup",n,E),addEventListener("pointercancel",i,E)}(t,e):L(t,e)}},F=function(e){["mousedown","keydown","touchstart","pointerdown"].forEach((function(t){return e(t,b,E)}))},C=function(e,t){var n,a=l(),v=u("FID"),p=function(e){e.startTimeperformance.now())return;n.entries=[t],e(n)}catch(e){}},"complete"===document.readyState?setTimeout(t,0):addEventListener("load",(function(){return setTimeout(t,0)}))}}}]); -//# sourceMappingURL=787.8f7ec9e0.chunk.js.map \ No newline at end of file diff --git a/docs/static/js/main.194ee673.js b/docs/static/js/main.194ee673.js new file mode 100644 index 000000000..67a0d2563 --- /dev/null +++ b/docs/static/js/main.194ee673.js @@ -0,0 +1,3 @@ +/*! For license information please see main.194ee673.js.LICENSE.txt */ +(function(){var __webpack_modules__={5365:function(e){e.exports=function(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n=0&&d<=127?d:null,y=void 0===s?null:440*Math.pow(2,(d-69)/12);var v,g;return{empty:!1,acc:r,alt:a,chroma:p,coord:u,freq:y,height:d,letter:n,midi:h,name:c,oct:s,pc:l,step:o}}(e):c(e)?E(function(e){var t=e.step,n=e.alt,r=e.oct,i=v(t);if(!i)return"";var o=i+g(n);return r||0===r?o+r:o}(e)):u(e)?E(e.name):m;return y.set(e,n),n}var D=/^([a-gA-G]?)(#{1,}|b{1,}|x{1,}|)(-?\d*)\s*(.*)$/;function b(e){var t=D.exec(e);return[t[1].toUpperCase(),t[2].replace(/x/g,"##"),t[3],t[4]]}function A(e){return E(h(e))}var C=[0,2,4,5,7,9,11];var k={empty:!0,name:"",acc:""},x=new RegExp("^([-+]?\\d+)(d{1,4}|m|M|P|A{1,4})|(AA|A|P|M|m|d|dd)([-+]?\\d+)$");function w(e){var t=x.exec("".concat(e));return null===t?["",""]:t[1]?[t[1],t[2]]:[t[4],t[3]]}var S={};function F(e){return"string"===typeof e?S[e]||(S[e]=function(e){var t=w(e);if(""===t[0])return k;var n=+t[0],r=t[1],i=(Math.abs(n)-1)%7,o=B[i];if("M"===o&&"P"===r)return k;var a="M"===o?"majorable":"perfectable",s=""+n+r,u=n<0?-1:1,c=8===n||-8===n?n:u*(i+1),l=function(e,t){return"M"===t&&"majorable"===e||"P"===t&&"perfectable"===e?0:"m"===t&&"majorable"===e?-1:/^A+$/.test(t)?t.length:/^d+$/.test(t)?-1*("perfectable"===e?t.length:t.length+1):0}(a,r),p=Math.floor((Math.abs(n)-1)/7),d=u*(T[i]+l+12*p),h=(u*(T[i]+l)%12+12)%12,m=f({step:i,alt:l,oct:p,dir:u});return{empty:!1,name:s,num:n,q:r,step:i,alt:l,dir:u,type:a,simple:c,semitones:d,chroma:h,coord:m,oct:p}}(e)):c(e)?F(function(e){var t=e.step,n=e.alt,r=e.oct,i=void 0===r?0:r,o=e.dir;if(!o)return"";var s=t+1+7*i;return(o<0?"-":"")+(0===s?t+1:s)+function(e,t){return 0===t?"majorable"===e?"M":"P":-1===t&&"majorable"===e?"m":t>0?a("A",t):a("d","perfectable"===e?t:t+1)}("M"===B[t]?"majorable":"perfectable",n)}(e)):u(e)?F(e.name):k}var T=[0,2,4,5,7,9,11],B="PMMPPMM";function q(e,t){var n=(0,o.Z)(e,2),r=n[0],i=n[1],a=void 0===i?0:i;return F(h(t||7*r+12*a<0?[-r,-a,-1]:[r,a,1]))}function O(e,t){var n=E(e),r=F(t);if(n.empty||r.empty)return"";var i=n.coord,o=r.coord;return A(1===i.length?[i[0]+o[0]]:[i[0]+o[0],i[1]+o[1]]).name}function M(e,t){var n=E(e),r=E(t);if(n.empty||r.empty)return"";var i=n.coord,o=r.coord,a=o[0]-i[0];return q([a,2===i.length&&2===o.length?o[1]-i[1]:-Math.floor(7*a/12)],r.height===n.height&&null!==r.midi&&null!==n.midi&&n.step>r.step).name}var P=function(e,t){return Array(t+1).join(e)},I=/^(_{1,}|=|\^{1,}|)([abcdefgABCDEFG])([,']*)$/;function N(e){var t=I.exec(e);return t?[t[1],t[2],t[3]]:["","",""]}function R(e){var t=N(e),n=(0,o.Z)(t,3),r=n[0],i=n[1],a=n[2];if(""===i)return"";for(var s=4,u=0;u96?i.toUpperCase()+c+(s+1):i+c+s}function L(e){var t=E(e);if(t.empty||!t.oct&&0!==t.oct)return"";var n=t.letter,r=t.acc,i=t.oct;return("b"===r[0]?r.replace(/b/g,"_"):r.replace(/#/g,"^"))+(i>4?n.toLowerCase():n)+(5===i?"":i>4?P("'",i-5):P(",",4-i))}var j={abcToScientificNotation:R,scientificToAbcNotation:L,tokenize:N,transpose:function(e,t){return L(O(R(e),t))},distance:function(e,t){return M(R(e),R(t))}};function W(e,t){return e1&&void 0!==arguments[1]?arguments[1]:Math.random,i=e.length;i;)t=Math.floor(r()*i--),n=e[i],e[i]=e[t],e[t]=n;return e}function U(e){return 0===e.length?[[]]:U(e.slice(1)).reduce((function(t,n){return t.concat(e.map((function(t,r){var i=n.slice();return i.splice(r,0,e[0]),i})))}),[])}var Y=n(1413),K=n(4942);function J(e,t){return e1&&void 0!==arguments[1]?arguments[1]:Math.random,i=e.length;i;)t=Math.floor(r()*i--),n=e[i],e[i]=e[t],e[t]=n;return e}},ee=$,te={empty:!0,name:"",setNum:0,chroma:"000000000000",normalized:"000000000000",intervals:[]},ne=function(e){return Number(e).toString(2)},re=function(e){return parseInt(e,2)},ie=/^[01]{12}$/;function oe(e){return ie.test(e)}var ae=(0,K.Z)({},te.chroma,te);function se(e){var t,n=oe(e)?e:"number"===typeof(t=e)&&t>=0&&t<=4095?ne(e):Array.isArray(e)?function(e){if(0===e.length)return te.chroma;for(var t,n=[0,0,0,0,0,0,0,0,0,0,0,0],r=0;r=2048})).sort()[0],r=ne(n),i=function(e){for(var t=[],n=0;n<12;n++)"1"===e.charAt(n)&&t.push(ce[n]);return t}(e);return{empty:!1,name:"",setNum:t,chroma:e,normalized:r,intervals:i}}(n)}var ue=s("Pcset.pcset","Pcset.get",se),ce=["1P","2m","2M","3m","3M","4P","5d","5P","6m","6M","7m","7M"];function le(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],n=se(e),r=n.chroma.split("");return Q(r.map((function(e,n){var i=X(n,r);return t&&"0"===i[0]?null:i.join("")})))}function pe(e){var t=se(e).setNum;return function(e){var n=se(e).setNum;return t&&t!==n&&(n&t)===n}}function fe(e){var t=se(e).setNum;return function(e){var n=se(e).setNum;return t&&t!==n&&(n|t)===n}}function de(e){var t=se(e);return function(e){var n=E(e);return t&&!n.empty&&"1"===t.chroma.charAt(n.chroma)}}var he={get:se,chroma:function(e){return se(e).chroma},num:function(e){return se(e).setNum},intervals:function(e){return se(e).intervals},chromas:function(){return J(2048,4095).map(ne)},isSupersetOf:fe,isSubsetOf:pe,isNoteIncludedIn:de,isEqual:function(e,t){return se(e).setNum===se(t).setNum},filter:function(e){var t=de(e);return function(e){return e.filter(t)}},modes:le,pcset:ue};var me=(0,Y.Z)((0,Y.Z)({},te),{},{name:"",quality:"Unknown",intervals:[],aliases:[]}),ye=[],ve={};function ge(e){return ve[e]||me}var _e=s("ChordType.chordType","ChordType.get",ge);function Ee(){return ye.slice()}var De=s("ChordType.entries","ChordType.all",Ee);function be(e,t,n){var r=function(e){var t=function(t){return-1!==e.indexOf(t)};return t("5A")?"Augmented":t("3M")?"Major":t("5d")?"Diminished":t("3m")?"Minor":"Unknown"}(e),i=(0,Y.Z)((0,Y.Z)({},se(e)),{},{name:n||"",quality:r,intervals:e,aliases:t});ye.push(i),i.name&&(ve[i.name]=i),ve[i.setNum]=i,ve[i.chroma]=i,i.aliases.forEach((function(e){return function(e,t){ve[t]=e}(i,e)}))}[["1P 3M 5P","major","M ^ "],["1P 3M 5P 7M","major seventh","maj7 \u0394 ma7 M7 Maj7 ^7"],["1P 3M 5P 7M 9M","major ninth","maj9 \u03949 ^9"],["1P 3M 5P 7M 9M 13M","major thirteenth","maj13 Maj13 ^13"],["1P 3M 5P 6M","sixth","6 add6 add13 M6"],["1P 3M 5P 6M 9M","sixth/ninth","6/9 69 M69"],["1P 3M 6m 7M","major seventh flat sixth","M7b6 ^7b6"],["1P 3M 5P 7M 11A","major seventh sharp eleventh","maj#4 \u0394#4 \u0394#11 M7#11 ^7#11 maj7#11"],["1P 3m 5P","minor","m min -"],["1P 3m 5P 7m","minor seventh","m7 min7 mi7 -7"],["1P 3m 5P 7M","minor/major seventh","m/ma7 m/maj7 mM7 mMaj7 m/M7 -\u03947 m\u0394 -^7"],["1P 3m 5P 6M","minor sixth","m6 -6"],["1P 3m 5P 7m 9M","minor ninth","m9 -9"],["1P 3m 5P 7M 9M","minor/major ninth","mM9 mMaj9 -^9"],["1P 3m 5P 7m 9M 11P","minor eleventh","m11 -11"],["1P 3m 5P 7m 9M 13M","minor thirteenth","m13 -13"],["1P 3m 5d","diminished","dim \xb0 o"],["1P 3m 5d 7d","diminished seventh","dim7 \xb07 o7"],["1P 3m 5d 7m","half-diminished","m7b5 \xf8 -7b5 h7 h"],["1P 3M 5P 7m","dominant seventh","7 dom"],["1P 3M 5P 7m 9M","dominant ninth","9"],["1P 3M 5P 7m 9M 13M","dominant thirteenth","13"],["1P 3M 5P 7m 11A","lydian dominant seventh","7#11 7#4"],["1P 3M 5P 7m 9m","dominant flat ninth","7b9"],["1P 3M 5P 7m 9A","dominant sharp ninth","7#9"],["1P 3M 7m 9m","altered","alt7"],["1P 4P 5P","suspended fourth","sus4 sus"],["1P 2M 5P","suspended second","sus2"],["1P 4P 5P 7m","suspended fourth seventh","7sus4 7sus"],["1P 5P 7m 9M 11P","eleventh","11"],["1P 4P 5P 7m 9m","suspended fourth flat ninth","b9sus phryg 7b9sus 7b9sus4"],["1P 5P","fifth","5"],["1P 3M 5A","augmented","aug + +5 ^#5"],["1P 3m 5A","minor augmented","m#5 -#5 m+"],["1P 3M 5A 7M","augmented seventh","maj7#5 maj7+5 +maj7 ^7#5"],["1P 3M 5P 7M 9M 11A","major sharp eleventh (lydian)","maj9#11 \u03949#11 ^9#11"],["1P 2M 4P 5P","","sus24 sus4add9"],["1P 3M 5A 7M 9M","","maj9#5 Maj9#5"],["1P 3M 5A 7m","","7#5 +7 7+ 7aug aug7"],["1P 3M 5A 7m 9A","","7#5#9 7#9#5 7alt"],["1P 3M 5A 7m 9M","","9#5 9+"],["1P 3M 5A 7m 9M 11A","","9#5#11"],["1P 3M 5A 7m 9m","","7#5b9 7b9#5"],["1P 3M 5A 7m 9m 11A","","7#5b9#11"],["1P 3M 5A 9A","","+add#9"],["1P 3M 5A 9M","","M#5add9 +add9"],["1P 3M 5P 6M 11A","","M6#11 M6b5 6#11 6b5"],["1P 3M 5P 6M 7M 9M","","M7add13"],["1P 3M 5P 6M 9M 11A","","69#11"],["1P 3m 5P 6M 9M","","m69 -69"],["1P 3M 5P 6m 7m","","7b6"],["1P 3M 5P 7M 9A 11A","","maj7#9#11"],["1P 3M 5P 7M 9M 11A 13M","","M13#11 maj13#11 M13+4 M13#4"],["1P 3M 5P 7M 9m","","M7b9"],["1P 3M 5P 7m 11A 13m","","7#11b13 7b5b13"],["1P 3M 5P 7m 13M","","7add6 67 7add13"],["1P 3M 5P 7m 9A 11A","","7#9#11 7b5#9 7#9b5"],["1P 3M 5P 7m 9A 11A 13M","","13#9#11"],["1P 3M 5P 7m 9A 11A 13m","","7#9#11b13"],["1P 3M 5P 7m 9A 13M","","13#9"],["1P 3M 5P 7m 9A 13m","","7#9b13"],["1P 3M 5P 7m 9M 11A","","9#11 9+4 9#4"],["1P 3M 5P 7m 9M 11A 13M","","13#11 13+4 13#4"],["1P 3M 5P 7m 9M 11A 13m","","9#11b13 9b5b13"],["1P 3M 5P 7m 9m 11A","","7b9#11 7b5b9 7b9b5"],["1P 3M 5P 7m 9m 11A 13M","","13b9#11"],["1P 3M 5P 7m 9m 11A 13m","","7b9b13#11 7b9#11b13 7b5b9b13"],["1P 3M 5P 7m 9m 13M","","13b9"],["1P 3M 5P 7m 9m 13m","","7b9b13"],["1P 3M 5P 7m 9m 9A","","7b9#9"],["1P 3M 5P 9M","","Madd9 2 add9 add2"],["1P 3M 5P 9m","","Maddb9"],["1P 3M 5d","","Mb5"],["1P 3M 5d 6M 7m 9M","","13b5"],["1P 3M 5d 7M","","M7b5"],["1P 3M 5d 7M 9M","","M9b5"],["1P 3M 5d 7m","","7b5"],["1P 3M 5d 7m 9M","","9b5"],["1P 3M 7m","","7no5"],["1P 3M 7m 13m","","7b13"],["1P 3M 7m 9M","","9no5"],["1P 3M 7m 9M 13M","","13no5"],["1P 3M 7m 9M 13m","","9b13"],["1P 3m 4P 5P","","madd4"],["1P 3m 5P 6m 7M","","mMaj7b6"],["1P 3m 5P 6m 7M 9M","","mMaj9b6"],["1P 3m 5P 7m 11P","","m7add11 m7add4"],["1P 3m 5P 9M","","madd9"],["1P 3m 5d 6M 7M","","o7M7"],["1P 3m 5d 7M","","oM7"],["1P 3m 6m 7M","","mb6M7"],["1P 3m 6m 7m","","m7#5"],["1P 3m 6m 7m 9M","","m9#5"],["1P 3m 5A 7m 9M 11P","","m11A"],["1P 3m 6m 9m","","mb6b9"],["1P 2M 3m 5d 7m","","m9b5"],["1P 4P 5A 7M","","M7#5sus4"],["1P 4P 5A 7M 9M","","M9#5sus4"],["1P 4P 5A 7m","","7#5sus4"],["1P 4P 5P 7M","","M7sus4"],["1P 4P 5P 7M 9M","","M9sus4"],["1P 4P 5P 7m 9M","","9sus4 9sus"],["1P 4P 5P 7m 9M 13M","","13sus4 13sus"],["1P 4P 5P 7m 9m 13m","","7sus4b9b13 7b9b13sus4"],["1P 4P 7m 10m","","4 quartal"],["1P 5P 7m 9m 11P","","11b9"]].forEach((function(e){var t=(0,o.Z)(e,3),n=t[0],r=t[1],i=t[2];return be(n.split(" "),i.split(" "),r)})),ye.sort((function(e,t){return e.setNum-t.setNum}));var Ae={names:function(){return ye.map((function(e){return e.name})).filter((function(e){return e}))},symbols:function(){return ye.map((function(e){return e.aliases[0]})).filter((function(e){return e}))},get:ge,all:Ee,add:be,removeAll:function(){ye=[],ve={}},keys:function(){return Object.keys(ve)},entries:De,chordType:_e};function Ce(e){var t=e.map((function(e){return E(e).pc})).filter((function(e){return e}));if(0===E.length)return[];var n=function(e,t){var n=e[0],r=E(n).chroma,i=function(e){var t=e.reduce((function(e,t){var n=E(t).chroma;return void 0!==n&&(e[n]=e[n]||E(t).name),e}),{});return function(e){return t[e]}}(e),o=le(e,!1),a=[];return o.forEach((function(e,o){var s=Ee().filter((function(t){return t.chroma===e}));s.forEach((function(e){var s=e.aliases[0],u=i(o);o!==r?a.push({weight:.5*t,name:"".concat(u).concat(s,"/").concat(n)}):a.push({weight:1*t,name:"".concat(u).concat(s)})}))})),a}(t,1);return n.filter((function(e){return e.weight})).sort((function(e,t){return t.weight-e.weight})).map((function(e){return e.name}))}var ke=n(3878),xe=n(9199),we=n(181),Se=n(5267);var Fe=(0,Y.Z)((0,Y.Z)({},te),{},{intervals:[],aliases:[]}),Te=[],Be={};function qe(){return Te.map((function(e){return e.name}))}function Oe(e){return Be[e]||Fe}var Me=s("ScaleDictionary.scaleType","ScaleType.get",Oe);function Pe(){return Te.slice()}var Ie=s("ScaleDictionary.entries","ScaleType.all",Pe);function Ne(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[],r=(0,Y.Z)((0,Y.Z)({},se(e)),{},{name:t,intervals:e,aliases:n});return Te.push(r),Be[r.name]=r,Be[r.setNum]=r,Be[r.chroma]=r,r.aliases.forEach((function(e){return Re(r,e)})),r}function Re(e,t){Be[t]=e}[["1P 2M 3M 5P 6M","major pentatonic","pentatonic"],["1P 3M 4P 5P 7M","ionian pentatonic"],["1P 3M 4P 5P 7m","mixolydian pentatonic","indian"],["1P 2M 4P 5P 6M","ritusen"],["1P 2M 4P 5P 7m","egyptian"],["1P 3M 4P 5d 7m","neopolitan major pentatonic"],["1P 3m 4P 5P 6m","vietnamese 1"],["1P 2m 3m 5P 6m","pelog"],["1P 2m 4P 5P 6m","kumoijoshi"],["1P 2M 3m 5P 6m","hirajoshi"],["1P 2m 4P 5d 7m","iwato"],["1P 2m 4P 5P 7m","in-sen"],["1P 3M 4A 5P 7M","lydian pentatonic","chinese"],["1P 3m 4P 6m 7m","malkos raga"],["1P 3m 4P 5d 7m","locrian pentatonic","minor seven flat five pentatonic"],["1P 3m 4P 5P 7m","minor pentatonic","vietnamese 2"],["1P 3m 4P 5P 6M","minor six pentatonic"],["1P 2M 3m 5P 6M","flat three pentatonic","kumoi"],["1P 2M 3M 5P 6m","flat six pentatonic"],["1P 2m 3M 5P 6M","scriabin"],["1P 3M 5d 6m 7m","whole tone pentatonic"],["1P 3M 4A 5A 7M","lydian #5P pentatonic"],["1P 3M 4A 5P 7m","lydian dominant pentatonic"],["1P 3m 4P 5P 7M","minor #7M pentatonic"],["1P 3m 4d 5d 7m","super locrian pentatonic"],["1P 2M 3m 4P 5P 7M","minor hexatonic"],["1P 2A 3M 5P 5A 7M","augmented"],["1P 2M 3m 3M 5P 6M","major blues"],["1P 2M 4P 5P 6M 7m","piongio"],["1P 2m 3M 4A 6M 7m","prometheus neopolitan"],["1P 2M 3M 4A 6M 7m","prometheus"],["1P 2m 3M 5d 6m 7m","mystery #1"],["1P 2m 3M 4P 5A 6M","six tone symmetric"],["1P 2M 3M 4A 5A 7m","whole tone","messiaen's mode #1"],["1P 2m 4P 4A 5P 7M","messiaen's mode #5"],["1P 3m 4P 5d 5P 7m","minor blues","blues"],["1P 2M 3M 4P 5d 6m 7m","locrian major","arabian"],["1P 2m 3M 4A 5P 6m 7M","double harmonic lydian"],["1P 2M 3m 4P 5P 6m 7M","harmonic minor"],["1P 2m 2A 3M 4A 6m 7m","altered","super locrian","diminished whole tone","pomeroy"],["1P 2M 3m 4P 5d 6m 7m","locrian #2","half-diminished","aeolian b5"],["1P 2M 3M 4P 5P 6m 7m","mixolydian b6","melodic minor fifth mode","hindu"],["1P 2M 3M 4A 5P 6M 7m","lydian dominant","lydian b7","overtone"],["1P 2M 3M 4A 5P 6M 7M","lydian"],["1P 2M 3M 4A 5A 6M 7M","lydian augmented"],["1P 2m 3m 4P 5P 6M 7m","dorian b2","phrygian #6","melodic minor second mode"],["1P 2M 3m 4P 5P 6M 7M","melodic minor"],["1P 2m 3m 4P 5d 6m 7m","locrian"],["1P 2m 3m 4d 5d 6m 7d","ultralocrian","superlocrian bb7","superlocrian diminished"],["1P 2m 3m 4P 5d 6M 7m","locrian 6","locrian natural 6","locrian sharp 6"],["1P 2A 3M 4P 5P 5A 7M","augmented heptatonic"],["1P 2M 3m 4A 5P 6M 7m","dorian #4","ukrainian dorian","romanian minor","altered dorian"],["1P 2M 3m 4A 5P 6M 7M","lydian diminished"],["1P 2m 3m 4P 5P 6m 7m","phrygian"],["1P 2M 3M 4A 5A 7m 7M","leading whole tone"],["1P 2M 3M 4A 5P 6m 7m","lydian minor"],["1P 2m 3M 4P 5P 6m 7m","phrygian dominant","spanish","phrygian major"],["1P 2m 3m 4P 5P 6m 7M","balinese"],["1P 2m 3m 4P 5P 6M 7M","neopolitan major"],["1P 2M 3m 4P 5P 6m 7m","aeolian","minor"],["1P 2M 3M 4P 5P 6m 7M","harmonic major"],["1P 2m 3M 4P 5P 6m 7M","double harmonic major","gypsy"],["1P 2M 3m 4P 5P 6M 7m","dorian"],["1P 2M 3m 4A 5P 6m 7M","hungarian minor"],["1P 2A 3M 4A 5P 6M 7m","hungarian major"],["1P 2m 3M 4P 5d 6M 7m","oriental"],["1P 2m 3m 3M 4A 5P 7m","flamenco"],["1P 2m 3m 4A 5P 6m 7M","todi raga"],["1P 2M 3M 4P 5P 6M 7m","mixolydian","dominant"],["1P 2m 3M 4P 5d 6m 7M","persian"],["1P 2M 3M 4P 5P 6M 7M","major","ionian"],["1P 2m 3M 5d 6m 7m 7M","enigmatic"],["1P 2M 3M 4P 5A 6M 7M","major augmented","major #5","ionian augmented","ionian #5"],["1P 2A 3M 4A 5P 6M 7M","lydian #9"],["1P 2m 2M 4P 4A 5P 6m 7M","messiaen's mode #4"],["1P 2m 3M 4P 4A 5P 6m 7M","purvi raga"],["1P 2m 3m 3M 4P 5P 6m 7m","spanish heptatonic"],["1P 2M 3M 4P 5P 6M 7m 7M","bebop"],["1P 2M 3m 3M 4P 5P 6M 7m","bebop minor"],["1P 2M 3M 4P 5P 5A 6M 7M","bebop major"],["1P 2m 3m 4P 5d 5P 6m 7m","bebop locrian"],["1P 2M 3m 4P 5P 6m 7m 7M","minor bebop"],["1P 2M 3m 4P 5d 6m 6M 7M","diminished","whole-half diminished"],["1P 2M 3M 4P 5d 5P 6M 7M","ichikosucho"],["1P 2M 3m 4P 5P 6m 6M 7M","minor six diminished"],["1P 2m 3m 3M 4A 5P 6M 7m","half-whole diminished","dominant diminished","messiaen's mode #2"],["1P 3m 3M 4P 5P 6M 7m 7M","kafi raga"],["1P 2M 3M 4P 4A 5A 6A 7M","messiaen's mode #6"],["1P 2M 3m 3M 4P 5d 5P 6M 7m","composite blues"],["1P 2M 3m 3M 4A 5P 6m 7m 7M","messiaen's mode #3"],["1P 2m 2M 3m 4P 4A 5P 6m 6M 7M","messiaen's mode #7"],["1P 2m 2M 3m 3M 4P 5d 5P 6m 6M 7m 7M","chromatic"]].forEach((function(e){var t,n=(t=e,(0,ke.Z)(t)||(0,xe.Z)(t)||(0,we.Z)(t)||(0,Se.Z)()),r=n[0],i=n[1],o=n.slice(2);return Ne(r.split(" "),i,o)}));var Le={names:qe,get:Oe,all:Pe,add:Ne,removeAll:function(){Te=[],Be={}},keys:function(){return Object.keys(Be)},entries:Ie,scaleType:Me},je={empty:!0,name:"",symbol:"",root:"",rootDegree:0,type:"",tonic:null,setNum:NaN,quality:"Unknown",chroma:"",normalized:"",aliases:[],notes:[],intervals:[]},We=/^(6|64|7|9|11|13)$/;function Ge(e){var t=b(e),n=(0,o.Z)(t,4),r=n[0],i=n[1],a=n[2],s=n[3];return""===r?["",e]:"A"===r&&"ug"===s?["","aug"]:s||"4"!==a&&"5"!==a?We.test(a)?[r+i,a+s]:[r+i+a,s]:[r+i,a]}function He(e){if(""===e)return je;if(Array.isArray(e)&&2===e.length)return ze(e[1],e[0]);var t=Ge(e),n=(0,o.Z)(t,2),r=n[0],i=ze(n[1],r);return i.empty?ze(e):i}function ze(e,t,n){var r=ge(e),i=E(t||""),o=E(n||"");if(r.empty||t&&i.empty||n&&o.empty)return je;var a=M(i.pc,o.pc),s=r.intervals.indexOf(a)+1;if(!o.empty&&!s)return je;for(var u=Array.from(r.intervals),c=1;c1&&n?" over "+o.pc:"");return(0,Y.Z)((0,Y.Z)({},r),{},{name:m,symbol:h,type:r.name,root:o.name,intervals:u,rootDegree:s,tonic:i.name,notes:d})}var Ve={getChord:ze,get:He,detect:Ce,chordScales:function(e){var t=fe(He(e).chroma);return Pe().filter((function(e){return t(e.chroma)})).map((function(e){return e.name}))},extended:function(e){var t=He(e),n=fe(t.chroma);return Ee().filter((function(e){return n(e.chroma)})).map((function(e){return t.tonic+e.aliases[0]}))},reduced:function(e){var t=He(e),n=pe(t.chroma);return Ee().filter((function(e){return n(e.chroma)})).map((function(e){return t.tonic+e.aliases[0]}))},tokenize:Ge,transpose:function(e,t){var n=Ge(e),r=(0,o.Z)(n,2),i=r[0],a=r[1];return i?O(i,t)+a:e},chord:s("Chord.chord","Chord.get",He)},Ze=[];[[.125,"dl",["large","duplex longa","maxima","octuple","octuple whole"]],[.25,"l",["long","longa"]],[.5,"d",["double whole","double","breve"]],[1,"w",["whole","semibreve"]],[2,"h",["half","minim"]],[4,"q",["quarter","crotchet"]],[8,"e",["eighth","quaver"]],[16,"s",["sixteenth","semiquaver"]],[32,"t",["thirty-second","demisemiquaver"]],[64,"sf",["sixty-fourth","hemidemisemiquaver"]],[128,"h",["hundred twenty-eighth"]],[256,"th",["two hundred fifty-sixth"]]].forEach((function(e){var t=(0,o.Z)(e,3);return function(e,t,n){Ze.push({empty:!1,dots:"",name:"",value:1/e,fraction:e<1?[1/e,1]:[1,e],shorthand:t,names:n})}(t[0],t[1],t[2])}));var Ue={empty:!0,name:"",value:0,fraction:[0,0],shorthand:"",dots:"",names:[]};var Ye=/^([^.]+)(\.*)$/;function Ke(e){var t=Ye.exec(e)||[],n=(0,o.Z)(t,3),r=(n[0],n[1]),i=n[2],a=Ze.find((function(e){return e.shorthand===r||e.names.includes(r)}));if(!a)return Ue;var s=function(e,t){for(var n=Math.pow(2,t),r=e[0]*n,i=e[1]*n,o=r,a=0;a=0&&+e<=127}function ct(e){if(ut(e))return+e;var t=E(e);return t.empty?null:t.midi}var lt=Math.log(2),pt=Math.log(440);function ft(e){var t=12*(Math.log(e)-pt)/lt+69;return Math.round(100*t)/100}var dt="C C# D D# E F F# G G# A A# B".split(" "),ht="C Db D Eb E F Gb G Ab A Bb B".split(" ");function mt(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(isNaN(e)||e===-1/0||e===1/0)return"";e=Math.round(e);var n=!0===t.sharps?dt:ht,r=n[e%12];if(t.pitchClass)return r;var i=Math.floor(e/12)-1;return r+i}var yt={isMidi:ut,toMidi:ct,midiToFreq:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:440;return Math.pow(2,(e-69)/12)*t},midiToNoteName:mt,freqToMidi:ft},vt=["C","D","E","F","G","A","B"],gt=function(e){return e.name},_t=function(e){return e.map(E).filter((function(e){return!e.empty}))};var Et=E;function Dt(e){return mt(e)}var bt=O,At=function(e){return function(t){return bt(t,e)}},Ct=function(e){return function(t){return bt(e,t)}};function kt(e,t){var n=Et(e);if(n.empty)return"";var r=(0,o.Z)(n.coord,2),i=r[0],a=r[1];return A(void 0===a?[i+t]:[i+t,a]).name}var xt=function(e,t){return e.height-t.height};function wt(e,t){return t=t||xt,_t(e).sort(t).map(gt)}function St(e){return wt(e,xt).filter((function(e,t,n){return 0===t||e!==n[t-1]}))}function Ft(e,t){var n=Et(e);if(n.empty)return"";var r=Et(t||mt(n.midi||n.chroma,{sharps:n.alt<0,pitchClass:!0}));if(r.empty||r.chroma!==n.chroma)return"";if(void 0===n.oct)return r.pc;var i=n.chroma-n.alt,o=r.chroma-r.alt,a=i>11||o<0?-1:i<0||o>11?1:0,s=n.oct+a;return r.pc+s}var Tt={names:function(e){return void 0===e?vt.slice():Array.isArray(e)?_t(e).map(gt):[]},get:Et,name:function(e){return Et(e).name},pitchClass:function(e){return Et(e).pc},accidentals:function(e){return Et(e).acc},octave:function(e){return Et(e).oct},midi:function(e){return Et(e).midi},ascending:xt,descending:function(e,t){return t.height-e.height},sortedNames:wt,sortedUniqNames:St,fromMidi:Dt,fromMidiSharps:function(e){return mt(e,{sharps:!0})},freq:function(e){return Et(e).freq},fromFreq:function(e){return mt(ft(e))},fromFreqSharps:function(e){return mt(ft(e),{sharps:!0})},chroma:function(e){return Et(e).chroma},transpose:bt,tr:O,transposeBy:At,trBy:At,transposeFrom:Ct,trFrom:Ct,transposeFifths:kt,trFifths:kt,simplify:function(e){var t=Et(e);return t.empty?"":mt(t.midi||t.chroma,{sharps:t.alt>0,pitchClass:null===t.midi})},enharmonic:Ft},Bt={empty:!0,name:"",chordType:""},qt={};function Ot(e){return"string"===typeof e?qt[e]||(qt[e]=function(e){var t=(u=e,Pt.exec(u)||["","","",""]),n=(0,o.Z)(t,4),r=n[0],i=n[1],a=n[2],s=n[3];var u;if(!a)return Bt;var c=a.toUpperCase(),l=Nt.indexOf(c),p=_(i),f=1;return{empty:!1,name:r,roman:a,interval:F({step:l,alt:p,dir:f}).name,acc:i,chordType:s,alt:p,step:l,major:a===c,oct:0,dir:f}}(e)):"number"===typeof e?Ot(Nt[e]||""):c(e)?Ot(g((t=e).alt)+Nt[t.step]):u(e)?Ot(e.name):Bt;var t}var Mt=s("RomanNumeral.romanNumeral","RomanNumeral.get",Ot);var Pt=/^(#{1,}|b{1,}|x{1,}|)(IV|I{1,3}|VI{0,2}|iv|i{1,3}|vi{0,2})([^IViv]*)$/;var It="I II III IV V VI VII",Nt=It.split(" "),Rt=It.toLowerCase().split(" ");var Lt={names:function(){var e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];return(e?Nt:Rt).slice()},get:Ot,romanNumeral:Mt},jt=Object.freeze([]),Wt={type:"major",tonic:"",alteration:0,keySignature:""},Gt={tonic:"",grades:jt,intervals:jt,scale:jt,chords:jt,chordsHarmonicFunction:jt,chordScales:jt},Ht=(0,Y.Z)((0,Y.Z)((0,Y.Z)({},Wt),Gt),{},{type:"major",minorRelative:"",scale:jt,secondaryDominants:jt,secondaryDominantsMinorRelative:jt,substituteDominants:jt,substituteDominantsMinorRelative:jt}),zt=(0,Y.Z)((0,Y.Z)({},Wt),{},{type:"minor",relativeMajor:"",natural:Gt,harmonic:Gt,melodic:Gt}),Vt=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"";return t.map((function(t,r){return"".concat(e[r]).concat(n).concat(t)}))};function Zt(e,t,n,r){return function(i){var o=e.map((function(e){return Ot(e).interval||""})),a=o.map((function(e){return O(i,e)}));return{tonic:i,grades:e,intervals:o,scale:a,chords:Vt(a,t),chordsHarmonicFunction:n.slice(),chordScales:Vt(a,r," ")}}}var Ut=function(e,t){var n=E(e),r=E(t);return n.empty||r.empty?0:r.coord[0]-n.coord[0]},Yt=Zt("I II III IV V VI VII".split(" "),"maj7 m7 m7 maj7 7 m7 m7b5".split(" "),"T SD T SD D T D".split(" "),"major,dorian,phrygian,lydian,mixolydian,minor,locrian".split(",")),Kt=Zt("I II bIII IV V bVI bVII".split(" "),"m7 m7b5 maj7 m7 m7 maj7 7".split(" "),"T SD T SD D SD SD".split(" "),"minor,locrian,major,dorian,phrygian,lydian,mixolydian".split(",")),Jt=Zt("I II bIII IV V bVI VII".split(" "),"mMaj7 m7b5 +maj7 m7 7 maj7 o7".split(" "),"T SD T SD D SD D".split(" "),"harmonic minor,locrian 6,major augmented,lydian diminished,phrygian dominant,lydian #9,ultralocrian".split(",")),Xt=Zt("I II bIII IV V VI VII".split(" "),"m6 m7 +maj7 7 7 m7b5 m7b5".split(" "),"T SD T SD D ".split(" "),"melodic minor,dorian b2,lydian augmented,lydian dominant,mixolydian b6,locrian #2,altered".split(","));var Qt={majorKey:function(e){var t=E(e).pc;if(!t)return Ht;var n=Yt(t),r=Ut("C",t),i=function(t){var n=Ot(t);return n.empty?"":O(e,n.interval)+n.chordType};return(0,Y.Z)((0,Y.Z)({},n),{},{type:"major",minorRelative:O(t,"-3m"),alteration:r,keySignature:g(r),secondaryDominants:"- VI7 VII7 I7 II7 III7 -".split(" ").map(i),secondaryDominantsMinorRelative:"- IIIm7b5 IV#m7 Vm7 VIm7 VIIm7b5 -".split(" ").map(i),substituteDominants:"- bIII7 IV7 bV7 bVI7 bVII7 -".split(" ").map(i),substituteDominantsMinorRelative:"- IIIm7 Im7 IIbm7 VIm7 IVm7 -".split(" ").map(i)})},majorTonicFromKeySignature:function(e){return"number"===typeof e?kt("C",e):"string"===typeof e&&/^b+|#+$/.test(e)?kt("C",_(e)):null},minorKey:function(e){var t=E(e).pc;if(!t)return zt;var n=Ut("C",t)-3;return{type:"minor",tonic:t,relativeMajor:O(t,"3m"),alteration:n,keySignature:g(n),natural:Kt(t),harmonic:Jt(t),melodic:Xt(t)}}},$t=[[0,2773,0,"ionian","","Maj7","major"],[1,2902,2,"dorian","m","m7"],[2,3418,4,"phrygian","m","m7"],[3,2741,-1,"lydian","","Maj7"],[4,2774,1,"mixolydian","","7"],[5,2906,3,"aeolian","m","m7","minor"],[6,3434,5,"locrian","dim","m7b5"]],en=(0,Y.Z)((0,Y.Z)({},te),{},{name:"",alt:0,modeNum:NaN,triad:"",seventh:"",aliases:[]}),tn=$t.map((function(e){var t=(0,o.Z)(e,7),n=t[0],r=t[1],i=t[2],a=t[3],s=t[4],u=t[5],c=t[6],l=c?[c]:[],p=Number(r).toString(2);return{empty:!1,intervals:Oe(a).intervals,modeNum:n,chroma:p,normalized:p,name:a,setNum:r,alt:i,triad:s,seventh:u,aliases:l}})),nn={};function rn(e){return"string"===typeof e?nn[e.toLowerCase()]||en:e&&e.name?rn(e.name):en}tn.forEach((function(e){nn[e.name]=e,e.aliases.forEach((function(t){nn[t]=e}))}));var on=s("Mode.mode","Mode.get",rn);function an(){return tn.slice()}var sn=s("Mode.mode","Mode.all",an);function un(e){return function(t,n){var r=rn(t);if(r.empty)return[];var i=X(r.modeNum,e),o=r.intervals.map((function(e){return O(n,e)}));return i.map((function(e,t){return o[t]+e}))}}function cn(e,t){var n=rn(t),r=rn(e);return n.empty||r.empty?"":$e(ot("1P",r.alt-n.alt))}var ln={get:rn,names:function(){return tn.map((function(e){return e.name}))},all:an,distance:cn,relativeTonic:function(e,t,n){return O(n,cn(e,t))},notes:function(e,t){return rn(e).intervals.map((function(e){return O(t,e)}))},triads:un($t.map((function(e){return e[4]}))),seventhChords:un($t.map((function(e){return e[5]}))),entries:sn,mode:on};var pn={fromRomanNumerals:function(e,t){return t.map(Ot).map((function(t){return O(e,F(t))+t.chordType}))},toRomanNumerals:function(e,t){return t.map((function(t){var n=Ge(t),r=(0,o.Z)(n,2),i=r[0],a=r[1];return Ot(F(M(e,i))).name+a}))}};function fn(e){var t=Q(e.map(ct));return e.length&&t.length===e.length?t.reduce((function(e,t){var n=e[e.length-1];return e.concat(J(n,t).slice(1))}),[t[0]]):[]}var dn={numeric:fn,chromatic:function(e,t){return fn(e).map((function(e){return mt(e,t)}))}},hn={empty:!0,name:"",type:"",tonic:null,setNum:NaN,chroma:"",normalized:"",aliases:[],notes:[],intervals:[]};function mn(e){if("string"!==typeof e)return["",""];var t=e.indexOf(" "),n=E(e.substring(0,t));if(n.empty){var r=E(e);return r.empty?["",e]:[r.name,""]}var i=e.substring(n.name.length+1);return[n.name,i.length?i:""]}function yn(e){var t=Array.isArray(e)?e:mn(e),n=E(t[0]).name,r=Oe(t[1]);if(r.empty)return hn;var i=r.name,o=n?r.intervals.map((function(e){return O(n,e)})):[],a=n?n+" "+i:i;return(0,Y.Z)((0,Y.Z)({},r),{},{name:a,type:i,tonic:n,notes:o})}function vn(e){var t=e.map((function(e){return E(e).pc})).filter((function(e){return e})),n=t[0],r=St(t);return X(r.indexOf(n),r)}var gn={get:yn,names:qe,extended:function(e){var t=fe(yn(e).chroma);return Pe().filter((function(e){return t(e.chroma)})).map((function(e){return e.name}))},modeNames:function(e){var t=yn(e);if(t.empty)return[];var n=t.tonic?t.notes:t.intervals;return le(t.chroma).map((function(e,t){var r=yn(e).name;return r?[n[t],r]:["",""]})).filter((function(e){return e[0]}))},reduced:function(e){var t=pe(yn(e).chroma);return Pe().filter((function(e){return t(e.chroma)})).map((function(e){return e.name}))},scaleChords:function(e){var t=pe(yn(e).chroma);return Ee().filter((function(e){return t(e.chroma)})).map((function(e){return e.aliases[0]}))},scaleNotes:vn,tokenize:mn,rangeOf:function(e){var t=function(e){var t=Array.isArray(e)?vn(e):yn(e).notes,n=t.map((function(e){return E(e).chroma}));return function(e){var r=E("number"===typeof e?Dt(e):e),i=r.height;if(void 0!==i){var o=i%12,a=n.indexOf(o);if(-1!==a)return Ft(r.name,t[a])}}}(e);return function(e,n){var r=E(e).height,i=E(n).height;return void 0===r||void 0===i?[]:J(r,i).map(t).filter((function(e){return e}))}},scale:s("Scale.scale","Scale.get",yn)},_n={empty:!0,name:"",upper:void 0,lower:void 0,type:void 0,additive:[]},En=["4/4","3/4","2/4","2/2","12/8","9/8","6/8","3/8"];var Dn=/^(\d?\d(?:\+\d)*)\/(\d)$/,bn=new Map;function An(e){if("string"===typeof e){var t=Dn.exec(e)||[],n=(0,o.Z)(t,3);n[0];return An([n[1],n[2]])}var r=(0,o.Z)(e,2),i=r[0],a=+r[1];if("number"===typeof i)return[i,a];var s=i.split("+").map((function(e){return+e}));return 1===s.length?[s[0],a]:[s,a]}var Cn={names:function(){return En.slice()},parse:An,get:function(e){var t=bn.get(e);if(t)return t;var n=function(e){var t=(0,o.Z)(e,2),n=t[0],r=t[1],i=Array.isArray(n)?n.reduce((function(e,t){return e+t}),0):n,a=r;if(0===i||0===a)return _n;var s=Array.isArray(n)?"".concat(n.join("+"),"/").concat(r):"".concat(n,"/").concat(r),u=Array.isArray(n)?n:[];return{empty:!1,name:s,type:4===a||2===a?"simple":8===a&&i%3===0?"compound":"irregular",upper:i,lower:a,additive:u}}(An(e));return bn.set(e,n),n}},kn=r,xn=he,wn=Ae,Sn=Le},7292:function(e,t,n){!function(e,t,n,r){"use strict";function i(e){return e&&"object"===typeof e&&"default"in e?e:{default:e}}var o=i(t),a=i(n),s=i(r),u=function(e,t,n){return{endTime:t,insertTime:n,type:"exponentialRampToValue",value:e}},c=function(e,t,n){return{endTime:t,insertTime:n,type:"linearRampToValue",value:e}},l=function(e,t){return{startTime:t,type:"setValue",value:e}},p=function(e,t,n){return{duration:n,startTime:t,type:"setValueCurve",values:e}},f=function(e,t,n){var r=n.startTime,i=n.target,o=n.timeConstant;return i+(t-i)*Math.exp((r-e)/o)},d=function(e){return"exponentialRampToValue"===e.type},h=function(e){return"linearRampToValue"===e.type},m=function(e){return d(e)||h(e)},y=function(e){return"setValue"===e.type},v=function(e){return"setValueCurve"===e.type},g=function e(t,n,r,i){var o=t[n];return void 0===o?i:m(o)||y(o)?o.value:v(o)?o.values[o.values.length-1]:f(r,e(t,n-1,o.startTime,i),o)},_=function(e,t,n,r,i){return void 0===n?[r.insertTime,i]:m(n)?[n.endTime,n.value]:y(n)?[n.startTime,n.value]:v(n)?[n.startTime+n.duration,n.values[n.values.length-1]]:[n.startTime,g(e,t-1,n.startTime,i)]},E=function(e){return"cancelAndHold"===e.type},D=function(e){return"cancelScheduledValues"===e.type},b=function(e){return E(e)||D(e)?e.cancelTime:d(e)||h(e)?e.endTime:e.startTime},A=function(e,t,n,r){var i=r.endTime,o=r.value;return n===o?o:0=t:b(n)>=t})),r=this._automationEvents[n];if(-1!==n&&(this._automationEvents=this._automationEvents.slice(0,n)),E(e)){var i=this._automationEvents[this._automationEvents.length-1];if(void 0!==r&&m(r)){if(w(i))throw new Error("The internal list is malformed.");var o=v(i)?i.startTime+i.duration:b(i),a=v(i)?i.values[i.values.length-1]:i.value,s=d(r)?A(t,o,a,r):C(t,o,a,r),f=d(r)?u(s,t,this._currenTime):c(s,t,this._currenTime);this._automationEvents.push(f)}void 0!==i&&w(i)&&this._automationEvents.push(l(this.getValue(t),t)),void 0!==i&&v(i)&&i.startTime+i.duration>t&&(this._automationEvents[this._automationEvents.length-1]=p(new Float32Array([6,7]),i.startTime,t-i.startTime))}}else{var y=this._automationEvents.findIndex((function(e){return b(e)>t})),g=-1===y?this._automationEvents[this._automationEvents.length-1]:this._automationEvents[y-1];if(void 0!==g&&v(g)&&b(g)+g.duration>t)return!1;var _=d(e)?u(e.value,e.endTime,this._currenTime):h(e)?c(e.value,t,this._currenTime):e;if(-1===y)this._automationEvents.push(_);else{if(v(e)&&t+e.duration>b(this._automationEvents[y]))return!1;this._automationEvents.splice(y,0,_)}}return!0}},{key:"flush",value:function(e){var t=this._automationEvents.findIndex((function(t){return b(t)>e}));if(t>1){var n=this._automationEvents.slice(t-1),r=n[0];w(r)&&n.unshift(l(g(this._automationEvents,t-2,r.startTime,this._defaultValue),r.startTime)),this._automationEvents=n}}},{key:"getValue",value:function(e){if(0===this._automationEvents.length)return this._defaultValue;var t=this._automationEvents.findIndex((function(t){return b(t)>e})),n=this._automationEvents[t],r=(-1===t?this._automationEvents.length:t)-1,i=this._automationEvents[r];if(void 0!==i&&w(i)&&(void 0===n||!m(n)||n.insertTime>e))return f(e,g(this._automationEvents,r-1,i.startTime,this._defaultValue),i);if(void 0!==i&&y(i)&&(void 0===n||!m(n)))return i.value;if(void 0!==i&&v(i)&&(void 0===n||!m(n)||i.startTime+i.duration>e))return e1;)r.push(Math.floor(o/i[a])),i.push(o%i[a]),o=i[a],a++;return r.push(o),function e(t){if(-1==t)n.push(0);else if(-2==t)n.push(1);else{for(var o=0;on?t(e,n):t(n,e)}},9273:function(e,t,n){"use strict";var r=this&&this.__assign||function(){return r=Object.assign||function(e){for(var t,n=1,r=arguments.length;n=0;--n)if(e[n].node===t)return!0;return!1}function m(e,t){return(new p).traverse(e,t)}function y(e,t){var n;return n=function(e,t){var n,r,i,o;for(r=e.length,i=0;r;)t(e[o=i+(n=r>>>1)])?r=n:(i=o+1,r-=n+1);return i}(t,(function(t){return t.range[0]>e.range[0]})),e.extendedRange=[e.range[0],e.range[1]],n!==t.length&&(e.extendedRange[1]=t[n].range[0]),(n-=1)>=0&&(e.extendedRange[0]=t[n].range[1]),e}return n={AssignmentExpression:"AssignmentExpression",AssignmentPattern:"AssignmentPattern",ArrayExpression:"ArrayExpression",ArrayPattern:"ArrayPattern",ArrowFunctionExpression:"ArrowFunctionExpression",AwaitExpression:"AwaitExpression",BlockStatement:"BlockStatement",BinaryExpression:"BinaryExpression",BreakStatement:"BreakStatement",CallExpression:"CallExpression",CatchClause:"CatchClause",ChainExpression:"ChainExpression",ClassBody:"ClassBody",ClassDeclaration:"ClassDeclaration",ClassExpression:"ClassExpression",ComprehensionBlock:"ComprehensionBlock",ComprehensionExpression:"ComprehensionExpression",ConditionalExpression:"ConditionalExpression",ContinueStatement:"ContinueStatement",DebuggerStatement:"DebuggerStatement",DirectiveStatement:"DirectiveStatement",DoWhileStatement:"DoWhileStatement",EmptyStatement:"EmptyStatement",ExportAllDeclaration:"ExportAllDeclaration",ExportDefaultDeclaration:"ExportDefaultDeclaration",ExportNamedDeclaration:"ExportNamedDeclaration",ExportSpecifier:"ExportSpecifier",ExpressionStatement:"ExpressionStatement",ForStatement:"ForStatement",ForInStatement:"ForInStatement",ForOfStatement:"ForOfStatement",FunctionDeclaration:"FunctionDeclaration",FunctionExpression:"FunctionExpression",GeneratorExpression:"GeneratorExpression",Identifier:"Identifier",IfStatement:"IfStatement",ImportExpression:"ImportExpression",ImportDeclaration:"ImportDeclaration",ImportDefaultSpecifier:"ImportDefaultSpecifier",ImportNamespaceSpecifier:"ImportNamespaceSpecifier",ImportSpecifier:"ImportSpecifier",Literal:"Literal",LabeledStatement:"LabeledStatement",LogicalExpression:"LogicalExpression",MemberExpression:"MemberExpression",MetaProperty:"MetaProperty",MethodDefinition:"MethodDefinition",ModuleSpecifier:"ModuleSpecifier",NewExpression:"NewExpression",ObjectExpression:"ObjectExpression",ObjectPattern:"ObjectPattern",PrivateIdentifier:"PrivateIdentifier",Program:"Program",Property:"Property",PropertyDefinition:"PropertyDefinition",RestElement:"RestElement",ReturnStatement:"ReturnStatement",SequenceExpression:"SequenceExpression",SpreadElement:"SpreadElement",Super:"Super",SwitchStatement:"SwitchStatement",SwitchCase:"SwitchCase",TaggedTemplateExpression:"TaggedTemplateExpression",TemplateElement:"TemplateElement",TemplateLiteral:"TemplateLiteral",ThisExpression:"ThisExpression",ThrowStatement:"ThrowStatement",TryStatement:"TryStatement",UnaryExpression:"UnaryExpression",UpdateExpression:"UpdateExpression",VariableDeclaration:"VariableDeclaration",VariableDeclarator:"VariableDeclarator",WhileStatement:"WhileStatement",WithStatement:"WithStatement",YieldExpression:"YieldExpression"},i={AssignmentExpression:["left","right"],AssignmentPattern:["left","right"],ArrayExpression:["elements"],ArrayPattern:["elements"],ArrowFunctionExpression:["params","body"],AwaitExpression:["argument"],BlockStatement:["body"],BinaryExpression:["left","right"],BreakStatement:["label"],CallExpression:["callee","arguments"],CatchClause:["param","body"],ChainExpression:["expression"],ClassBody:["body"],ClassDeclaration:["id","superClass","body"],ClassExpression:["id","superClass","body"],ComprehensionBlock:["left","right"],ComprehensionExpression:["blocks","filter","body"],ConditionalExpression:["test","consequent","alternate"],ContinueStatement:["label"],DebuggerStatement:[],DirectiveStatement:[],DoWhileStatement:["body","test"],EmptyStatement:[],ExportAllDeclaration:["source"],ExportDefaultDeclaration:["declaration"],ExportNamedDeclaration:["declaration","specifiers","source"],ExportSpecifier:["exported","local"],ExpressionStatement:["expression"],ForStatement:["init","test","update","body"],ForInStatement:["left","right","body"],ForOfStatement:["left","right","body"],FunctionDeclaration:["id","params","body"],FunctionExpression:["id","params","body"],GeneratorExpression:["blocks","filter","body"],Identifier:[],IfStatement:["test","consequent","alternate"],ImportExpression:["source"],ImportDeclaration:["specifiers","source"],ImportDefaultSpecifier:["local"],ImportNamespaceSpecifier:["local"],ImportSpecifier:["imported","local"],Literal:[],LabeledStatement:["label","body"],LogicalExpression:["left","right"],MemberExpression:["object","property"],MetaProperty:["meta","property"],MethodDefinition:["key","value"],ModuleSpecifier:[],NewExpression:["callee","arguments"],ObjectExpression:["properties"],ObjectPattern:["properties"],PrivateIdentifier:[],Program:["body"],Property:["key","value"],PropertyDefinition:["key","value"],RestElement:["argument"],ReturnStatement:["argument"],SequenceExpression:["expressions"],SpreadElement:["argument"],Super:[],SwitchStatement:["discriminant","cases"],SwitchCase:["test","consequent"],TaggedTemplateExpression:["tag","quasi"],TemplateElement:[],TemplateLiteral:["quasis","expressions"],ThisExpression:[],ThrowStatement:["argument"],TryStatement:["block","handler","finalizer"],UnaryExpression:["argument"],UpdateExpression:["argument"],VariableDeclaration:["declarations"],VariableDeclarator:["id","init"],WhileStatement:["test","body"],WithStatement:["object","body"],YieldExpression:["argument"]},r={Break:o={},Skip:a={},Remove:s={}},c.prototype.replace=function(e){this.parent[this.key]=e},c.prototype.remove=function(){return Array.isArray(this.parent)?(this.parent.splice(this.key,1),!0):(this.replace(null),!1)},p.prototype.path=function(){var e,t,n,r,i;function o(e,t){if(Array.isArray(t))for(n=0,r=t.length;n=0;)if(g=s[p=v[m]])if(Array.isArray(g)){for(y=g.length;(y-=1)>=0;)if(g[y]&&!h(r,g[y])){if(d(u,v[m]))i=new l(g[y],[p,y],"Property",null);else{if(!f(g[y]))continue;i=new l(g[y],[p,y],null,null)}n.push(i)}}else if(f(g)){if(h(r,g))continue;n.push(new l(g,p,null,null))}}}else if(i=r.pop(),c=this.__execute(t.leave,i),this.__state===o||c===o)return},p.prototype.replace=function(e,t){var n,r,i,u,p,h,m,y,v,g,_,E,D;function b(e){var t,r,i,o;if(e.ref.remove())for(r=e.ref.key,o=e.ref.parent,t=n.length;t--;)if((i=n[t]).ref&&i.ref.parent===o){if(i.ref.key=0;)if(g=i[D=v[m]])if(Array.isArray(g)){for(y=g.length;(y-=1)>=0;)if(g[y]){if(d(u,v[m]))h=new l(g[y],[D,y],"Property",new c(g,y));else{if(!f(g[y]))continue;h=new l(g[y],[D,y],null,new c(g,y))}n.push(h)}}else f(g)&&n.push(new l(g,D,null,new c(i,D)))}}else if(h=r.pop(),void 0!==(p=this.__execute(t.leave,h))&&p!==o&&p!==a&&p!==s&&h.ref.replace(p),this.__state!==s&&p!==s||b(h),this.__state===o||p===o)return E.root;return E.root},t.Syntax=n,t.traverse=m,t.replace=function(e,t){return(new p).replace(e,t)},t.attachComments=function(e,t,n){var i,o,a,s,c=[];if(!e.range)throw new Error("attachComments needs range information");if(!n.length){if(t.length){for(a=0,o=t.length;ae.range[0]);)t.extendedRange[1]===e.range[0]?(e.leadingComments||(e.leadingComments=[]),e.leadingComments.push(t),c.splice(s,1)):s+=1;return s===c.length?r.Break:c[s].extendedRange[0]>e.range[1]?r.Skip:void 0}}),s=0,m(e,{leave:function(e){for(var t;se.range[1]?r.Skip:void 0}}),e},t.VisitorKeys=i,t.VisitorOption=r,t.Controller=p,t.cloneEnvironment=function(){return e({})},t}(t)},6876:function(e){!function(){"use strict";function t(e){if(null==e)return!1;switch(e.type){case"BlockStatement":case"BreakStatement":case"ContinueStatement":case"DebuggerStatement":case"DoWhileStatement":case"EmptyStatement":case"ExpressionStatement":case"ForInStatement":case"ForStatement":case"IfStatement":case"LabeledStatement":case"ReturnStatement":case"SwitchStatement":case"ThrowStatement":case"TryStatement":case"VariableDeclaration":case"WhileStatement":case"WithStatement":return!0}return!1}function n(e){switch(e.type){case"IfStatement":return null!=e.alternate?e.alternate:e.consequent;case"LabeledStatement":case"ForStatement":case"ForInStatement":case"WhileStatement":case"WithStatement":return e.body}return null}e.exports={isExpression:function(e){if(null==e)return!1;switch(e.type){case"ArrayExpression":case"AssignmentExpression":case"BinaryExpression":case"CallExpression":case"ConditionalExpression":case"FunctionExpression":case"Identifier":case"Literal":case"LogicalExpression":case"MemberExpression":case"NewExpression":case"ObjectExpression":case"SequenceExpression":case"ThisExpression":case"UnaryExpression":case"UpdateExpression":return!0}return!1},isStatement:t,isIterationStatement:function(e){if(null==e)return!1;switch(e.type){case"DoWhileStatement":case"ForInStatement":case"ForStatement":case"WhileStatement":return!0}return!1},isSourceElement:function(e){return t(e)||null!=e&&"FunctionDeclaration"===e.type},isProblematicIfStatement:function(e){var t;if("IfStatement"!==e.type)return!1;if(null==e.alternate)return!1;t=e.consequent;do{if("IfStatement"===t.type&&null==t.alternate)return!0;t=n(t)}while(t);return!1},trailingStatement:n}}()},2162:function(e){!function(){"use strict";var t,n,r,i,o,a;function s(e){return e<=65535?String.fromCharCode(e):String.fromCharCode(Math.floor((e-65536)/1024)+55296)+String.fromCharCode((e-65536)%1024+56320)}for(n={NonAsciiIdentifierStart:/[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0-\u08B4\u08B6-\u08BD\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C60\u0C61\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1877\u1880-\u1884\u1887-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1C80-\u1C88\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FD5\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AE\uA7B0-\uA7B7\uA7F7-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]/,NonAsciiIdentifierPart:/[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0300-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u0483-\u0487\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u05D0-\u05EA\u05F0-\u05F2\u0610-\u061A\u0620-\u0669\u066E-\u06D3\u06D5-\u06DC\u06DF-\u06E8\u06EA-\u06FC\u06FF\u0710-\u074A\u074D-\u07B1\u07C0-\u07F5\u07FA\u0800-\u082D\u0840-\u085B\u08A0-\u08B4\u08B6-\u08BD\u08D4-\u08E1\u08E3-\u0963\u0966-\u096F\u0971-\u0983\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BC-\u09C4\u09C7\u09C8\u09CB-\u09CE\u09D7\u09DC\u09DD\u09DF-\u09E3\u09E6-\u09F1\u0A01-\u0A03\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A59-\u0A5C\u0A5E\u0A66-\u0A75\u0A81-\u0A83\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABC-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AD0\u0AE0-\u0AE3\u0AE6-\u0AEF\u0AF9\u0B01-\u0B03\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3C-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B5C\u0B5D\u0B5F-\u0B63\u0B66-\u0B6F\u0B71\u0B82\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD0\u0BD7\u0BE6-\u0BEF\u0C00-\u0C03\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C58-\u0C5A\u0C60-\u0C63\u0C66-\u0C6F\u0C80-\u0C83\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBC-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CDE\u0CE0-\u0CE3\u0CE6-\u0CEF\u0CF1\u0CF2\u0D01-\u0D03\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D-\u0D44\u0D46-\u0D48\u0D4A-\u0D4E\u0D54-\u0D57\u0D5F-\u0D63\u0D66-\u0D6F\u0D7A-\u0D7F\u0D82\u0D83\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DE6-\u0DEF\u0DF2\u0DF3\u0E01-\u0E3A\u0E40-\u0E4E\u0E50-\u0E59\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB9\u0EBB-\u0EBD\u0EC0-\u0EC4\u0EC6\u0EC8-\u0ECD\u0ED0-\u0ED9\u0EDC-\u0EDF\u0F00\u0F18\u0F19\u0F20-\u0F29\u0F35\u0F37\u0F39\u0F3E-\u0F47\u0F49-\u0F6C\u0F71-\u0F84\u0F86-\u0F97\u0F99-\u0FBC\u0FC6\u1000-\u1049\u1050-\u109D\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u135D-\u135F\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1714\u1720-\u1734\u1740-\u1753\u1760-\u176C\u176E-\u1770\u1772\u1773\u1780-\u17D3\u17D7\u17DC\u17DD\u17E0-\u17E9\u180B-\u180D\u1810-\u1819\u1820-\u1877\u1880-\u18AA\u18B0-\u18F5\u1900-\u191E\u1920-\u192B\u1930-\u193B\u1946-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u19D0-\u19D9\u1A00-\u1A1B\u1A20-\u1A5E\u1A60-\u1A7C\u1A7F-\u1A89\u1A90-\u1A99\u1AA7\u1AB0-\u1ABD\u1B00-\u1B4B\u1B50-\u1B59\u1B6B-\u1B73\u1B80-\u1BF3\u1C00-\u1C37\u1C40-\u1C49\u1C4D-\u1C7D\u1C80-\u1C88\u1CD0-\u1CD2\u1CD4-\u1CF6\u1CF8\u1CF9\u1D00-\u1DF5\u1DFB-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u200C\u200D\u203F\u2040\u2054\u2071\u207F\u2090-\u209C\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D7F-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2DE0-\u2DFF\u2E2F\u3005-\u3007\u3021-\u302F\u3031-\u3035\u3038-\u303C\u3041-\u3096\u3099\u309A\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FD5\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA62B\uA640-\uA66F\uA674-\uA67D\uA67F-\uA6F1\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AE\uA7B0-\uA7B7\uA7F7-\uA827\uA840-\uA873\uA880-\uA8C5\uA8D0-\uA8D9\uA8E0-\uA8F7\uA8FB\uA8FD\uA900-\uA92D\uA930-\uA953\uA960-\uA97C\uA980-\uA9C0\uA9CF-\uA9D9\uA9E0-\uA9FE\uAA00-\uAA36\uAA40-\uAA4D\uAA50-\uAA59\uAA60-\uAA76\uAA7A-\uAAC2\uAADB-\uAADD\uAAE0-\uAAEF\uAAF2-\uAAF6\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABEA\uABEC\uABED\uABF0-\uABF9\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE00-\uFE0F\uFE20-\uFE2F\uFE33\uFE34\uFE4D-\uFE4F\uFE70-\uFE74\uFE76-\uFEFC\uFF10-\uFF19\uFF21-\uFF3A\uFF3F\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]/},t={NonAsciiIdentifierStart:/[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0-\u08B4\u08B6-\u08BD\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C60\u0C61\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1C80-\u1C88\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2118-\u211D\u2124\u2126\u2128\u212A-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309B-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FD5\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AE\uA7B0-\uA7B7\uA7F7-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDE80-\uDE9C\uDEA0-\uDED0\uDF00-\uDF1F\uDF30-\uDF4A\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE4\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2]|\uD804[\uDC03-\uDC37\uDC83-\uDCAF\uDCD0-\uDCE8\uDD03-\uDD26\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE2B\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEDE\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF50\uDF5D-\uDF61]|\uD805[\uDC00-\uDC34\uDC47-\uDC4A\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE80-\uDEAA\uDF00-\uDF19]|\uD806[\uDCA0-\uDCDF\uDCFF\uDEC0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC2E\uDC40\uDC72-\uDC8F]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD81C-\uD820\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50\uDF93-\uDF9F\uDFE0]|\uD821[\uDC00-\uDFEC]|\uD822[\uDC00-\uDEF2]|\uD82C[\uDC00\uDC01]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB]|\uD83A[\uDC00-\uDCC4\uDD00-\uDD43]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1]|\uD87E[\uDC00-\uDE1D]/,NonAsciiIdentifierPart:/[\xAA\xB5\xB7\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0300-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u0483-\u0487\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u05D0-\u05EA\u05F0-\u05F2\u0610-\u061A\u0620-\u0669\u066E-\u06D3\u06D5-\u06DC\u06DF-\u06E8\u06EA-\u06FC\u06FF\u0710-\u074A\u074D-\u07B1\u07C0-\u07F5\u07FA\u0800-\u082D\u0840-\u085B\u08A0-\u08B4\u08B6-\u08BD\u08D4-\u08E1\u08E3-\u0963\u0966-\u096F\u0971-\u0983\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BC-\u09C4\u09C7\u09C8\u09CB-\u09CE\u09D7\u09DC\u09DD\u09DF-\u09E3\u09E6-\u09F1\u0A01-\u0A03\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A59-\u0A5C\u0A5E\u0A66-\u0A75\u0A81-\u0A83\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABC-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AD0\u0AE0-\u0AE3\u0AE6-\u0AEF\u0AF9\u0B01-\u0B03\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3C-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B5C\u0B5D\u0B5F-\u0B63\u0B66-\u0B6F\u0B71\u0B82\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD0\u0BD7\u0BE6-\u0BEF\u0C00-\u0C03\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C58-\u0C5A\u0C60-\u0C63\u0C66-\u0C6F\u0C80-\u0C83\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBC-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CDE\u0CE0-\u0CE3\u0CE6-\u0CEF\u0CF1\u0CF2\u0D01-\u0D03\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D-\u0D44\u0D46-\u0D48\u0D4A-\u0D4E\u0D54-\u0D57\u0D5F-\u0D63\u0D66-\u0D6F\u0D7A-\u0D7F\u0D82\u0D83\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DE6-\u0DEF\u0DF2\u0DF3\u0E01-\u0E3A\u0E40-\u0E4E\u0E50-\u0E59\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB9\u0EBB-\u0EBD\u0EC0-\u0EC4\u0EC6\u0EC8-\u0ECD\u0ED0-\u0ED9\u0EDC-\u0EDF\u0F00\u0F18\u0F19\u0F20-\u0F29\u0F35\u0F37\u0F39\u0F3E-\u0F47\u0F49-\u0F6C\u0F71-\u0F84\u0F86-\u0F97\u0F99-\u0FBC\u0FC6\u1000-\u1049\u1050-\u109D\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u135D-\u135F\u1369-\u1371\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1714\u1720-\u1734\u1740-\u1753\u1760-\u176C\u176E-\u1770\u1772\u1773\u1780-\u17D3\u17D7\u17DC\u17DD\u17E0-\u17E9\u180B-\u180D\u1810-\u1819\u1820-\u1877\u1880-\u18AA\u18B0-\u18F5\u1900-\u191E\u1920-\u192B\u1930-\u193B\u1946-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u19D0-\u19DA\u1A00-\u1A1B\u1A20-\u1A5E\u1A60-\u1A7C\u1A7F-\u1A89\u1A90-\u1A99\u1AA7\u1AB0-\u1ABD\u1B00-\u1B4B\u1B50-\u1B59\u1B6B-\u1B73\u1B80-\u1BF3\u1C00-\u1C37\u1C40-\u1C49\u1C4D-\u1C7D\u1C80-\u1C88\u1CD0-\u1CD2\u1CD4-\u1CF6\u1CF8\u1CF9\u1D00-\u1DF5\u1DFB-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u200C\u200D\u203F\u2040\u2054\u2071\u207F\u2090-\u209C\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2102\u2107\u210A-\u2113\u2115\u2118-\u211D\u2124\u2126\u2128\u212A-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D7F-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2DE0-\u2DFF\u3005-\u3007\u3021-\u302F\u3031-\u3035\u3038-\u303C\u3041-\u3096\u3099-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FD5\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA62B\uA640-\uA66F\uA674-\uA67D\uA67F-\uA6F1\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AE\uA7B0-\uA7B7\uA7F7-\uA827\uA840-\uA873\uA880-\uA8C5\uA8D0-\uA8D9\uA8E0-\uA8F7\uA8FB\uA8FD\uA900-\uA92D\uA930-\uA953\uA960-\uA97C\uA980-\uA9C0\uA9CF-\uA9D9\uA9E0-\uA9FE\uAA00-\uAA36\uAA40-\uAA4D\uAA50-\uAA59\uAA60-\uAA76\uAA7A-\uAAC2\uAADB-\uAADD\uAAE0-\uAAEF\uAAF2-\uAAF6\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABEA\uABEC\uABED\uABF0-\uABF9\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE00-\uFE0F\uFE20-\uFE2F\uFE33\uFE34\uFE4D-\uFE4F\uFE70-\uFE74\uFE76-\uFEFC\uFF10-\uFF19\uFF21-\uFF3A\uFF3F\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDDFD\uDE80-\uDE9C\uDEA0-\uDED0\uDEE0\uDF00-\uDF1F\uDF30-\uDF4A\uDF50-\uDF7A\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCA0-\uDCA9\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00-\uDE03\uDE05\uDE06\uDE0C-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE38-\uDE3A\uDE3F\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE6\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2]|\uD804[\uDC00-\uDC46\uDC66-\uDC6F\uDC7F-\uDCBA\uDCD0-\uDCE8\uDCF0-\uDCF9\uDD00-\uDD34\uDD36-\uDD3F\uDD50-\uDD73\uDD76\uDD80-\uDDC4\uDDCA-\uDDCC\uDDD0-\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE37\uDE3E\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEEA\uDEF0-\uDEF9\uDF00-\uDF03\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3C-\uDF44\uDF47\uDF48\uDF4B-\uDF4D\uDF50\uDF57\uDF5D-\uDF63\uDF66-\uDF6C\uDF70-\uDF74]|\uD805[\uDC00-\uDC4A\uDC50-\uDC59\uDC80-\uDCC5\uDCC7\uDCD0-\uDCD9\uDD80-\uDDB5\uDDB8-\uDDC0\uDDD8-\uDDDD\uDE00-\uDE40\uDE44\uDE50-\uDE59\uDE80-\uDEB7\uDEC0-\uDEC9\uDF00-\uDF19\uDF1D-\uDF2B\uDF30-\uDF39]|\uD806[\uDCA0-\uDCE9\uDCFF\uDEC0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC36\uDC38-\uDC40\uDC50-\uDC59\uDC72-\uDC8F\uDC92-\uDCA7\uDCA9-\uDCB6]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD81C-\uD820\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDE60-\uDE69\uDED0-\uDEED\uDEF0-\uDEF4\uDF00-\uDF36\uDF40-\uDF43\uDF50-\uDF59\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50-\uDF7E\uDF8F-\uDF9F\uDFE0]|\uD821[\uDC00-\uDFEC]|\uD822[\uDC00-\uDEF2]|\uD82C[\uDC00\uDC01]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99\uDC9D\uDC9E]|\uD834[\uDD65-\uDD69\uDD6D-\uDD72\uDD7B-\uDD82\uDD85-\uDD8B\uDDAA-\uDDAD\uDE42-\uDE44]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB\uDFCE-\uDFFF]|\uD836[\uDE00-\uDE36\uDE3B-\uDE6C\uDE75\uDE84\uDE9B-\uDE9F\uDEA1-\uDEAF]|\uD838[\uDC00-\uDC06\uDC08-\uDC18\uDC1B-\uDC21\uDC23\uDC24\uDC26-\uDC2A]|\uD83A[\uDC00-\uDCC4\uDCD0-\uDCD6\uDD00-\uDD4A\uDD50-\uDD59]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1]|\uD87E[\uDC00-\uDE1D]|\uDB40[\uDD00-\uDDEF]/},r=[5760,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8239,8287,12288,65279],i=new Array(128),a=0;a<128;++a)i[a]=a>=97&&a<=122||a>=65&&a<=90||36===a||95===a;for(o=new Array(128),a=0;a<128;++a)o[a]=a>=97&&a<=122||a>=65&&a<=90||a>=48&&a<=57||36===a||95===a;e.exports={isDecimalDigit:function(e){return 48<=e&&e<=57},isHexDigit:function(e){return 48<=e&&e<=57||97<=e&&e<=102||65<=e&&e<=70},isOctalDigit:function(e){return e>=48&&e<=55},isWhiteSpace:function(e){return 32===e||9===e||11===e||12===e||160===e||e>=5760&&r.indexOf(e)>=0},isLineTerminator:function(e){return 10===e||13===e||8232===e||8233===e},isIdentifierStartES5:function(e){return e<128?i[e]:n.NonAsciiIdentifierStart.test(s(e))},isIdentifierPartES5:function(e){return e<128?o[e]:n.NonAsciiIdentifierPart.test(s(e))},isIdentifierStartES6:function(e){return e<128?i[e]:t.NonAsciiIdentifierStart.test(s(e))},isIdentifierPartES6:function(e){return e<128?o[e]:t.NonAsciiIdentifierPart.test(s(e))}}}()},2502:function(e,t,n){!function(){"use strict";var t=n(2162);function r(e,t){return!(!t&&"yield"===e)&&i(e,t)}function i(e,t){if(t&&function(e){switch(e){case"implements":case"interface":case"package":case"private":case"protected":case"public":case"static":case"let":return!0;default:return!1}}(e))return!0;switch(e.length){case 2:return"if"===e||"in"===e||"do"===e;case 3:return"var"===e||"for"===e||"new"===e||"try"===e;case 4:return"this"===e||"else"===e||"case"===e||"void"===e||"with"===e||"enum"===e;case 5:return"while"===e||"break"===e||"catch"===e||"throw"===e||"const"===e||"yield"===e||"class"===e||"super"===e;case 6:return"return"===e||"typeof"===e||"delete"===e||"switch"===e||"export"===e||"import"===e;case 7:return"default"===e||"finally"===e||"extends"===e;case 8:return"function"===e||"continue"===e||"debugger"===e;case 10:return"instanceof"===e;default:return!1}}function o(e,t){return"null"===e||"true"===e||"false"===e||r(e,t)}function a(e,t){return"null"===e||"true"===e||"false"===e||i(e,t)}function s(e){var n,r,i;if(0===e.length)return!1;if(i=e.charCodeAt(0),!t.isIdentifierStartES5(i))return!1;for(n=1,r=e.length;n=r)return!1;if(!(56320<=(o=e.charCodeAt(n))&&o<=57343))return!1;i=1024*(i-55296)+(o-56320)+65536}if(!a(i))return!1;a=t.isIdentifierPartES6}return!0}e.exports={isKeywordES5:r,isKeywordES6:i,isReservedWordES5:o,isReservedWordES6:a,isRestrictedWord:function(e){return"eval"===e||"arguments"===e},isIdentifierNameES5:s,isIdentifierNameES6:u,isIdentifierES5:function(e,t){return s(e)&&!o(e,t)},isIdentifierES6:function(e,t){return u(e)&&!a(e,t)}}}()},1670:function(e,t,n){!function(){"use strict";t.ast=n(6876),t.code=n(2162),t.keyword=n(2502)}()},9214:function(e){"use strict";var t,n="object"===typeof Reflect?Reflect:null,r=n&&"function"===typeof n.apply?n.apply:function(e,t,n){return Function.prototype.apply.call(e,t,n)};t=n&&"function"===typeof n.ownKeys?n.ownKeys:Object.getOwnPropertySymbols?function(e){return Object.getOwnPropertyNames(e).concat(Object.getOwnPropertySymbols(e))}:function(e){return Object.getOwnPropertyNames(e)};var i=Number.isNaN||function(e){return e!==e};function o(){o.init.call(this)}e.exports=o,e.exports.once=function(e,t){return new Promise((function(n,r){function i(n){e.removeListener(t,o),r(n)}function o(){"function"===typeof e.removeListener&&e.removeListener("error",i),n([].slice.call(arguments))}m(e,t,o,{once:!0}),"error"!==t&&function(e,t,n){"function"===typeof e.on&&m(e,"error",t,n)}(e,i,{once:!0})}))},o.EventEmitter=o,o.prototype._events=void 0,o.prototype._eventsCount=0,o.prototype._maxListeners=void 0;var a=10;function s(e){if("function"!==typeof e)throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof e)}function u(e){return void 0===e._maxListeners?o.defaultMaxListeners:e._maxListeners}function c(e,t,n,r){var i,o,a,c;if(s(n),void 0===(o=e._events)?(o=e._events=Object.create(null),e._eventsCount=0):(void 0!==o.newListener&&(e.emit("newListener",t,n.listener?n.listener:n),o=e._events),a=o[t]),void 0===a)a=o[t]=n,++e._eventsCount;else if("function"===typeof a?a=o[t]=r?[n,a]:[a,n]:r?a.unshift(n):a.push(n),(i=u(e))>0&&a.length>i&&!a.warned){a.warned=!0;var l=new Error("Possible EventEmitter memory leak detected. "+a.length+" "+String(t)+" listeners added. Use emitter.setMaxListeners() to increase limit");l.name="MaxListenersExceededWarning",l.emitter=e,l.type=t,l.count=a.length,c=l,console&&console.warn&&console.warn(c)}return e}function l(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,0===arguments.length?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function p(e,t,n){var r={fired:!1,wrapFn:void 0,target:e,type:t,listener:n},i=l.bind(r);return i.listener=n,r.wrapFn=i,i}function f(e,t,n){var r=e._events;if(void 0===r)return[];var i=r[t];return void 0===i?[]:"function"===typeof i?n?[i.listener||i]:[i]:n?function(e){for(var t=new Array(e.length),n=0;n0&&(a=t[0]),a instanceof Error)throw a;var s=new Error("Unhandled error."+(a?" ("+a.message+")":""));throw s.context=a,s}var u=o[e];if(void 0===u)return!1;if("function"===typeof u)r(u,this,t);else{var c=u.length,l=h(u,c);for(n=0;n=0;o--)if(n[o]===t||n[o].listener===t){a=n[o].listener,i=o;break}if(i<0)return this;0===i?n.shift():function(e,t){for(;t+1=0;r--)this.removeListener(e,t[r]);return this},o.prototype.listeners=function(e){return f(this,e,!0)},o.prototype.rawListeners=function(e){return f(this,e,!1)},o.listenerCount=function(e,t){return"function"===typeof e.listenerCount?e.listenerCount(t):d.call(e,t)},o.prototype.listenerCount=d,o.prototype.eventNames=function(){return this._eventsCount>0?t(this._events):[]}},2518:function(e,t){var n;!function(r){"use strict";var i={s:1,n:0,d:1};function o(e,t){if(isNaN(e=parseInt(e,10)))throw l.InvalidParameter;return e*t}function a(e,t){if(0===t)throw l.DivisionByZero;var n=Object.create(l.prototype);n.s=e<0?-1:1;var r=c(e=e<0?-e:e,t);return n.n=e/r,n.d=t/r,n}function s(e){for(var t={},n=e,r=2,i=4;i<=n;){for(;n%r===0;)n/=r,t[r]=(t[r]||0)+1;i+=1+2*r++}return n!==e?n>1&&(t[n]=(t[n]||0)+1):t[e]=(t[e]||0)+1,t}var u=function(e,t){var n,r=0,a=1,s=1,u=0,c=0,p=0,f=1,d=1,h=0,m=1,y=1,v=1,g=1e7;if(void 0===e||null===e);else if(void 0!==t){if(s=(r=e)*(a=t),r%1!==0||a%1!==0)throw l.NonIntegerParameter}else switch(typeof e){case"object":if("d"in e&&"n"in e)r=e.n,a=e.d,"s"in e&&(r*=e.s);else{if(!(0 in e))throw l.InvalidParameter;r=e[0],1 in e&&(a=e[1])}s=r*a;break;case"number":if(e<0&&(s=e,e=-e),e%1===0)r=e;else if(e>0){for(e>=1&&(e/=d=Math.pow(10,Math.floor(1+Math.log(e)/Math.LN10)));m<=g&&v<=g;){if(e===(n=(h+y)/(m+v))){m+v<=g?(r=h+y,a=m+v):v>m?(r=y,a=v):(r=h,a=m);break}e>n?(h+=y,m+=v):(y+=h,v+=m),m>g?(r=y,a=v):(r=h,a=m)}r*=d}else(isNaN(e)||isNaN(t))&&(a=r=NaN);break;case"string":if(null===(m=e.match(/\d+|./g)))throw l.InvalidParameter;if("-"===m[h]?(s=-1,h++):"+"===m[h]&&h++,m.length===h+1?c=o(m[h++],s):"."===m[h+1]||"."===m[h]?("."!==m[h]&&(u=o(m[h++],s)),(++h+1===m.length||"("===m[h+1]&&")"===m[h+3]||"'"===m[h+1]&&"'"===m[h+3])&&(c=o(m[h],s),f=Math.pow(10,m[h].length),h++),("("===m[h]&&")"===m[h+2]||"'"===m[h]&&"'"===m[h+2])&&(p=o(m[h+1],s),d=Math.pow(10,m[h+1].length)-1,h+=3)):"/"===m[h+1]||":"===m[h+1]?(c=o(m[h],s),f=o(m[h+2],1),h+=3):"/"===m[h+3]&&" "===m[h+1]&&(u=o(m[h],s),c=o(m[h+2],s),f=o(m[h+4],1),h+=5),m.length<=h){s=r=p+(a=f*d)*u+d*c;break}default:throw l.InvalidParameter}if(0===a)throw l.DivisionByZero;i.s=s<0?-1:1,i.n=Math.abs(r),i.d=Math.abs(a)};function c(e,t){if(!e)return t;if(!t)return e;for(;;){if(!(e%=t))return t;if(!(t%=e))return e}}function l(e,t){if(u(e,t),!(this instanceof l))return a(i.s*i.n,i.d);e=c(i.d,i.n),this.s=i.s,this.n=i.n/e,this.d=i.d/e}l.DivisionByZero=new Error("Division by Zero"),l.InvalidParameter=new Error("Invalid argument"),l.NonIntegerParameter=new Error("Parameters must be integer"),l.prototype={s:1,n:0,d:1,abs:function(){return a(this.n,this.d)},neg:function(){return a(-this.s*this.n,this.d)},add:function(e,t){return u(e,t),a(this.s*this.n*i.d+i.s*this.d*i.n,this.d*i.d)},sub:function(e,t){return u(e,t),a(this.s*this.n*i.d-i.s*this.d*i.n,this.d*i.d)},mul:function(e,t){return u(e,t),a(this.s*i.s*this.n*i.n,this.d*i.d)},div:function(e,t){return u(e,t),a(this.s*i.s*this.n*i.d,this.d*i.n)},clone:function(){return a(this.s*this.n,this.d)},mod:function(e,t){if(isNaN(this.n)||isNaN(this.d))return new l(NaN);if(void 0===e)return a(this.s*this.n%this.d,1);if(u(e,t),0===i.n&&0===this.d)throw l.DivisionByZero;return a(this.s*(i.d*this.n)%(i.n*this.d),i.d*this.d)},gcd:function(e,t){return u(e,t),a(c(i.n,this.n)*c(i.d,this.d),i.d*this.d)},lcm:function(e,t){return u(e,t),0===i.n&&0===this.n?a(0,1):a(i.n*this.n,c(i.n,this.n)*c(i.d,this.d))},ceil:function(e){return e=Math.pow(10,e||0),isNaN(this.n)||isNaN(this.d)?new l(NaN):a(Math.ceil(e*this.s*this.n/this.d),e)},floor:function(e){return e=Math.pow(10,e||0),isNaN(this.n)||isNaN(this.d)?new l(NaN):a(Math.floor(e*this.s*this.n/this.d),e)},round:function(e){return e=Math.pow(10,e||0),isNaN(this.n)||isNaN(this.d)?new l(NaN):a(Math.round(e*this.s*this.n/this.d),e)},inverse:function(){return a(this.s*this.d,this.n)},pow:function(e,t){if(u(e,t),1===i.d)return i.s<0?a(Math.pow(this.s*this.d,i.n),Math.pow(this.n,i.n)):a(Math.pow(this.s*this.n,i.n),Math.pow(this.d,i.n));if(this.s<0)return null;var n=s(this.n),r=s(this.d),o=1,c=1;for(var l in n)if("1"!==l){if("0"===l){o=0;break}if(n[l]*=i.n,n[l]%i.d!==0)return null;n[l]/=i.d,o*=Math.pow(l,n[l])}for(var l in r)if("1"!==l){if(r[l]*=i.n,r[l]%i.d!==0)return null;r[l]/=i.d,c*=Math.pow(l,r[l])}return i.s<0?a(c,o):a(o,c)},equals:function(e,t){return u(e,t),this.s*this.n*i.d===i.s*i.n*this.d},compare:function(e,t){u(e,t);var n=this.s*this.n*i.d-i.s*i.n*this.d;return(0=0;o--)i=i.inverse().add(n[o]);if(i.sub(t).abs().valueOf()0&&(n+=t,n+=" ",r%=i),n+=r,n+="/",n+=i),n},toLatex:function(e){var t,n="",r=this.n,i=this.d;return this.s<0&&(n+="-"),1===i?n+=r:(e&&(t=Math.floor(r/i))>0&&(n+=t,r%=i),n+="\\frac{",n+=r,n+="}{",n+=i,n+="}"),n},toContinued:function(){var e,t=this.n,n=this.d,r=[];if(isNaN(t)||isNaN(n))return r;do{r.push(Math.floor(t/n)),e=t%n,t=n,n=e}while(1!==t);return r},toString:function(e){var t=this.n,n=this.d;if(isNaN(t)||isNaN(n))return"NaN";e=e||15;var r=function(e,t){for(;t%2===0;t/=2);for(;t%5===0;t/=5);if(1===t)return 0;for(var n=10%t,r=1;1!==n;r++)if(n=10*n%t,r>2e3)return 0;return r}(0,n),i=function(e,t,n){for(var r=1,i=function(e,t,n){for(var r=1;t>0;e=e*e%n,t>>=1)1&t&&(r=r*e%n);return r}(10,n,t),o=0;o<300;o++){if(r===i)return o;r=10*r%t,i=10*i%t}return 0}(0,n,r),o=this.s<0?"-":"";if(o+=t/n|0,t%=n,(t*=10)&&(o+="."),r){for(var a=i;a--;)o+=t/n|0,t%=n,t*=10;o+="(";for(a=r;a--;)o+=t/n|0,t%=n,t*=10;o+=")"}else for(a=e;t&&a--;)o+=t/n|0,t%=n,t*=10;return o}},void 0===(n=function(){return l}.apply(t,[]))||(e.exports=n)}()},5238:function(e,t,n){var r=null;"undefined"!==typeof WebSocket?r=WebSocket:"undefined"!==typeof MozWebSocket?r=MozWebSocket:"undefined"!==typeof n.g?r=n.g.WebSocket||n.g.MozWebSocket:"undefined"!==typeof window?r=window.WebSocket||window.MozWebSocket:"undefined"!==typeof self&&(r=self.WebSocket||self.MozWebSocket),e.exports=r},5318:function(e,t,n){"use strict";var r;function i(e,t){for(var n,r=e.keys();!(n=r.next()).done;)t(e.get(n.value),n.value,e)}e=n.nmd(e);var o=function(){var e,t;function n(t){var r=this;r._map=e,n.Map&&(r._map=n.Map),r._=r._map?new r._map:{},t&&t.forEach((function(e){r.set(e[0],e[1])}))}"undefined"!==typeof Map&&(e=Map,Map.prototype.keys||(Map.prototype.keys=function(){var e=[];return this.forEach((function(t,n){e.push(n)})),e})),n.prototype.get=function(e){return this._map?this._.get(e):this._[e]},n.prototype.set=function(e,t){var n=Array.prototype.slice.call(arguments);e=n.shift();var r=this.get(e);return r||(r=[],this._map?this._.set(e,r):this._[e]=r),Array.prototype.push.apply(r,n),this},n.prototype.delete=function(e,t){if(!this.has(e))return!1;if(1==arguments.length)return this._map?this._.delete(e):delete this._[e],!0;var n=this.get(e),r=n.indexOf(t);return-1!=r&&(n.splice(r,1),!0)},n.prototype.has=function(e,t){var n=this._map?this._.has(e):this._.hasOwnProperty(e);if(1==arguments.length||!n)return n;var r=this.get(e)||[];return-1!=r.indexOf(t)},n.prototype.keys=function(){return this._map?r(this._.keys()):r(Object.keys(this._))},n.prototype.values=function(){var e=[];return this.forEachEntry((function(t){Array.prototype.push.apply(e,t)})),r(e)},n.prototype.forEachEntry=function(e){i(this,e)},n.prototype.forEach=function(e){var t=this;t.forEachEntry((function(n,r){n.forEach((function(n){e(n,r,t)}))}))},n.prototype.clear=function(){this._map?this._.clear():this._={}},Object.defineProperty(n.prototype,"size",{configurable:!1,enumerable:!0,get:function(){var e=0;return i(this,(function(t){e+=t.length})),e}}),Object.defineProperty(n.prototype,"count",{configurable:!1,enumerable:!0,get:function(){return this._.size}});try{t=new Function("iterator","makeIterator","var keysArray = []; for(var key of iterator){keysArray.push(key);} return makeIterator(keysArray).next;")}catch(o){}function r(e){if(Array.isArray(e)){var n=0;return{next:function(){return nn?"'":'"';t+=s;for(var u=0;u":a.Relational,"<=":a.Relational,">=":a.Relational,in:a.Relational,instanceof:a.Relational,"<<":a.BitwiseSHIFT,">>":a.BitwiseSHIFT,">>>":a.BitwiseSHIFT,"+":a.Additive,"-":a.Additive,"*":a.Multiplicative,"%":a.Multiplicative,"/":a.Multiplicative,"**":a.Exponential};var u=t.CodeRep=function(){function e(){o(this,e),this.containsIn=!1,this.containsGroup=!1,this.startsWithCurly=!1,this.startsWithFunctionOrClass=!1,this.startsWithLet=!1,this.startsWithLetSquareBracket=!1,this.endsWithMissingElse=!1}return n(e,[{key:"forEach",value:function(e){e(this)}}]),e}(),c=(t.Empty=function(e){function t(){return o(this,t),r(this,(t.__proto__||Object.getPrototypeOf(t)).call(this))}return i(t,e),n(t,[{key:"emit",value:function(){}}]),t}(u),t.Token=function(e){function t(e){var n=arguments.length>1&&void 0!==arguments[1]&&arguments[1];o(this,t);var i=r(this,(t.__proto__||Object.getPrototypeOf(t)).call(this));return i.token=e,i.isRegExp=n,i}return i(t,e),n(t,[{key:"emit",value:function(e){e.put(this.token,this.isRegExp)}}]),t}(u));t.RawToken=function(e){function t(e){o(this,t);var n=r(this,(t.__proto__||Object.getPrototypeOf(t)).call(this));return n.token=e,n}return i(t,e),n(t,[{key:"emit",value:function(e){e.putRaw(this.token)}}]),t}(u),t.NumberCodeRep=function(e){function t(e){o(this,t);var n=r(this,(t.__proto__||Object.getPrototypeOf(t)).call(this));return n.number=e,n}return i(t,e),n(t,[{key:"emit",value:function(e){e.putNumber(this.number)}}]),t}(u),t.Paren=function(e){function t(e){o(this,t);var n=r(this,(t.__proto__||Object.getPrototypeOf(t)).call(this));return n.expr=e,n}return i(t,e),n(t,[{key:"emit",value:function(e){e.put("("),this.expr.emit(e,!1),e.put(")")}},{key:"forEach",value:function(e){e(this),this.expr.forEach(e)}}]),t}(u),t.Bracket=function(e){function t(e){o(this,t);var n=r(this,(t.__proto__||Object.getPrototypeOf(t)).call(this));return n.expr=e,n}return i(t,e),n(t,[{key:"emit",value:function(e){e.put("["),this.expr.emit(e,!1),e.put("]")}},{key:"forEach",value:function(e){e(this),this.expr.forEach(e)}}]),t}(u),t.Brace=function(e){function t(e){o(this,t);var n=r(this,(t.__proto__||Object.getPrototypeOf(t)).call(this));return n.expr=e,n}return i(t,e),n(t,[{key:"emit",value:function(e){e.put("{"),this.expr.emit(e,!1),e.put("}")}},{key:"forEach",value:function(e){e(this),this.expr.forEach(e)}}]),t}(u),t.NoIn=function(e){function t(e){o(this,t);var n=r(this,(t.__proto__||Object.getPrototypeOf(t)).call(this));return n.expr=e,n}return i(t,e),n(t,[{key:"emit",value:function(e){this.expr.emit(e,!0)}},{key:"forEach",value:function(e){e(this),this.expr.forEach(e)}}]),t}(u),t.ContainsIn=function(e){function t(e){o(this,t);var n=r(this,(t.__proto__||Object.getPrototypeOf(t)).call(this));return n.expr=e,n}return i(t,e),n(t,[{key:"emit",value:function(e,t){t?(e.put("("),this.expr.emit(e,!1),e.put(")")):this.expr.emit(e,!1)}},{key:"forEach",value:function(e){e(this),this.expr.forEach(e)}}]),t}(u),t.Seq=function(e){function t(e){o(this,t);var n=r(this,(t.__proto__||Object.getPrototypeOf(t)).call(this));return n.children=e,n}return i(t,e),n(t,[{key:"emit",value:function(e,t){this.children.forEach((function(n){return n.emit(e,t)}))}},{key:"forEach",value:function(e){e(this),this.children.forEach((function(t){return t.forEach(e)}))}}]),t}(u),t.Semi=function(e){function t(){return o(this,t),r(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,";"))}return i(t,e),t}(c),t.CommaSep=function(e){function t(e){o(this,t);var n=r(this,(t.__proto__||Object.getPrototypeOf(t)).call(this));return n.children=e,n}return i(t,e),n(t,[{key:"emit",value:function(e,t){var n=!0;this.children.forEach((function(r){n?n=!1:e.put(","),r.emit(e,t)}))}},{key:"forEach",value:function(e){e(this),this.children.forEach((function(t){return t.forEach(e)}))}}]),t}(u),t.SemiOp=function(e){function t(){return o(this,t),r(this,(t.__proto__||Object.getPrototypeOf(t)).call(this))}return i(t,e),n(t,[{key:"emit",value:function(e){e.putOptionalSemi()}}]),t}(u)},6845:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.FormattedCodeGen=t.ExtensibleCodeGen=t.Sep=void 0;var r,i=function(){function e(e,t){for(var n=0;n1&&void 0!==arguments[1]&&arguments[1];return new u.Token(e,t)}},{key:"p",value:function(e,t,n){return(0,u.getPrecedence)(e)0&&null==r[r.length-1]&&(i=v(i,this.sep(_.ARRAY_BEFORE_COMMA),this.t(","),this.sep(_.ARRAY_AFTER_COMMA))),this.bracket(i,_.ARRAY_INITIAL,_.ARRAY_FINAL)}},{key:"reduceAwaitExpression",value:function(e,t){var n=t.expression;return v(this.t("await"),this.sep(_.AWAIT),this.p(e.expression,(0,u.getPrecedence)(e),n))}},{key:"reduceSpreadElement",value:function(e,t){var n=t.expression;return v(this.t("..."),this.sep(_.SPREAD),this.p(e.expression,u.Precedence.Assignment,n))}},{key:"reduceSpreadProperty",value:function(e,t){var n=t.expression;return v(this.t("..."),this.sep(_.SPREAD),this.getAssignmentExpr(n))}},{key:"reduceAssignmentExpression",value:function(e,t){var n=t.binding,r=t.expression,i=n,o=r,s=r.containsIn,c=n.startsWithCurly,l=n.startsWithLetSquareBracket,p=n.startsWithFunctionOrClass;return(0,u.getPrecedence)(e.expression)<(0,u.getPrecedence)(e)&&(o=this.paren(o,_.EXPRESSION_PAREN_BEFORE,_.EXPRESSION_PAREN_AFTER),s=!1),(0,a.default)(v(i,this.sep(_.BEFORE_ASSIGN_OP("=")),this.t("="),this.sep(_.AFTER_ASSIGN_OP("=")),o),{containsIn:s,startsWithCurly:c,startsWithLetSquareBracket:l,startsWithFunctionOrClass:p})}},{key:"reduceAssignmentTargetIdentifier",value:function(e){var t=this.t(e.name);return"let"===e.name&&(t.startsWithLet=!0),t}},{key:"reduceAssignmentTargetWithDefault",value:function(e,t){var n=t.binding,r=t.init;return v(n,this.sep(_.BEFORE_DEFAULT_EQUALS),this.t("="),this.sep(_.AFTER_DEFAULT_EQUALS),this.p(e.init,u.Precedence.Assignment,r))}},{key:"reduceCompoundAssignmentExpression",value:function(e,t){var n=t.binding,r=t.expression,i=n,o=r,s=r.containsIn,c=n.startsWithCurly,l=n.startsWithLetSquareBracket,p=n.startsWithFunctionOrClass;return(0,u.getPrecedence)(e.expression)<(0,u.getPrecedence)(e)&&(o=this.paren(o,_.EXPRESSION_PAREN_BEFORE,_.EXPRESSION_PAREN_AFTER),s=!1),(0,a.default)(v(i,this.sep(_.BEFORE_ASSIGN_OP(e.operator)),this.t(e.operator),this.sep(_.AFTER_ASSIGN_OP(e.operator)),o),{containsIn:s,startsWithCurly:c,startsWithLetSquareBracket:l,startsWithFunctionOrClass:p})}},{key:"reduceBinaryExpression",value:function(e,t){var n=t.left,r=t.right,i=n,o=n.startsWithCurly,s=n.startsWithLetSquareBracket,c=n.startsWithFunctionOrClass,l=n.containsIn,p="**"===e.operator;((0,u.getPrecedence)(e.left)<(0,u.getPrecedence)(e)||p&&((0,u.getPrecedence)(e.left)===(0,u.getPrecedence)(e)||"UnaryExpression"===e.left.type))&&(i=this.paren(i,_.EXPRESSION_PAREN_BEFORE,_.EXPRESSION_PAREN_AFTER),o=!1,s=!1,c=!1,l=!1);var f=r,d=r.containsIn;return((0,u.getPrecedence)(e.right)<(0,u.getPrecedence)(e)||!p&&(0,u.getPrecedence)(e.right)===(0,u.getPrecedence)(e))&&(f=this.paren(f,_.EXPRESSION_PAREN_BEFORE,_.EXPRESSION_PAREN_AFTER),d=!1),(0,a.default)(v(i,this.sep(_.BEFORE_BINOP(e.operator)),this.t(e.operator),this.sep(_.AFTER_BINOP(e.operator)),f),{containsIn:l||d||"in"===e.operator,containsGroup:","===e.operator,startsWithCurly:o,startsWithLetSquareBracket:s,startsWithFunctionOrClass:c})}},{key:"reduceBindingWithDefault",value:function(e,t){var n=t.binding,r=t.init;return v(n,this.sep(_.BEFORE_DEFAULT_EQUALS),this.t("="),this.sep(_.AFTER_DEFAULT_EQUALS),this.p(e.init,u.Precedence.Assignment,r))}},{key:"reduceBindingIdentifier",value:function(e){var t=this.t(e.name);return"let"===e.name&&(t.startsWithLet=!0),t}},{key:"reduceArrayAssignmentTarget",value:function(e,t){var n=this,r=t.elements,i=t.rest,o=void 0;return 0===r.length?o=null==i?h():v(this.t("..."),this.sep(_.REST),i):(r=r.concat(null==i?[]:[v(this.t("..."),this.sep(_.REST),i)]),o=this.commaSep(r.map((function(e){return n.getAssignmentExpr(e)})),_.ARRAY_BEFORE_COMMA,_.ARRAY_AFTER_COMMA),r.length>0&&null==r[r.length-1]&&(o=v(o,this.sep(_.ARRAY_BEFORE_COMMA),this.t(","),this.sep(_.ARRAY_AFTER_COMMA)))),this.bracket(o,_.ARRAY_INITIAL,_.ARRAY_FINAL,_.ARRAY_EMPTY)}},{key:"reduceArrayBinding",value:function(e,t){var n=this,r=t.elements,i=t.rest,o=void 0;return 0===r.length?o=null==i?h():v(this.t("..."),this.sep(_.REST),i):(r=r.concat(null==i?[]:[v(this.t("..."),this.sep(_.REST),i)]),o=this.commaSep(r.map((function(e){return n.getAssignmentExpr(e)})),_.ARRAY_BEFORE_COMMA,_.ARRAY_AFTER_COMMA),r.length>0&&null==r[r.length-1]&&(o=v(o,this.sep(_.ARRAY_BEFORE_COMMA),this.t(","),this.sep(_.ARRAY_AFTER_COMMA)))),this.bracket(o,_.ARRAY_INITIAL,_.ARRAY_FINAL,_.ARRAY_EMPTY)}},{key:"reduceObjectAssignmentTarget",value:function(e,t){var n=t.properties,r=t.rest,i=void 0;0===n.length?i=null==r?h():v(this.t("..."),this.sep(_.REST),r):(i=this.commaSep(n,_.OBJECT_BEFORE_COMMA,_.OBJECT_AFTER_COMMA),i=null==r?i:this.commaSep([i,v(this.t("..."),this.sep(_.REST),r)],_.OBJECT_BEFORE_COMMA,_.OBJECT_AFTER_COMMA));var o=this.brace(i,e,_.OBJECT_BRACE_INITIAL,_.OBJECT_BRACE_FINAL,_.OBJECT_EMPTY);return o.startsWithCurly=!0,o}},{key:"reduceObjectBinding",value:function(e,t){var n=t.properties,r=t.rest,i=void 0;0===n.length?i=null==r?h():v(this.t("..."),this.sep(_.REST),r):(i=this.commaSep(n,_.OBJECT_BEFORE_COMMA,_.OBJECT_AFTER_COMMA),i=null==r?i:this.commaSep([i,v(this.t("..."),this.sep(_.REST),r)],_.OBJECT_BEFORE_COMMA,_.OBJECT_AFTER_COMMA));var o=this.brace(i,e,_.OBJECT_BRACE_INITIAL,_.OBJECT_BRACE_FINAL,_.OBJECT_EMPTY);return o.startsWithCurly=!0,o}},{key:"reduceAssignmentTargetPropertyIdentifier",value:function(e,t){var n=t.binding,r=t.init;return null==e.init?n:v(n,this.sep(_.BEFORE_DEFAULT_EQUALS),this.t("="),this.sep(_.AFTER_DEFAULT_EQUALS),this.p(e.init,u.Precedence.Assignment,r))}},{key:"reduceAssignmentTargetPropertyProperty",value:function(e,t){var n=t.name,r=t.binding;return v(n,this.sep(_.BEFORE_PROP),this.t(":"),this.sep(_.AFTER_PROP),r)}},{key:"reduceBindingPropertyIdentifier",value:function(e,t){var n=t.binding,r=t.init;return null==e.init?n:v(n,this.sep(_.BEFORE_DEFAULT_EQUALS),this.t("="),this.sep(_.AFTER_DEFAULT_EQUALS),this.p(e.init,u.Precedence.Assignment,r))}},{key:"reduceBindingPropertyProperty",value:function(e,t){var n=t.name,r=t.binding;return v(n,this.sep(_.BEFORE_PROP),this.t(":"),this.sep(_.AFTER_PROP),r)}},{key:"reduceBlock",value:function(e,t){var n=t.statements;return this.brace(v.apply(void 0,c(n)),e,_.BLOCK_BRACE_INITIAL,_.BLOCK_BRACE_FINAL,_.BLOCK_EMPTY)}},{key:"reduceBlockStatement",value:function(e,t){return v(t.block,this.sep(_.AFTER_STATEMENT(e)))}},{key:"reduceBreakStatement",value:function(e){return v(this.t("break"),e.label?v(this.sep(_.BEFORE_JUMP_LABEL),this.t(e.label)):h(),this.semiOp(),this.sep(_.AFTER_STATEMENT(e)))}},{key:"reduceCallExpression",value:function(e,t){var n=this,r=t.callee,i=t.arguments.map((function(t,r){return n.p(e.arguments[r],u.Precedence.Assignment,t)}));return(0,a.default)(v(this.p(e.callee,(0,u.getPrecedence)(e),r),this.sep(_.CALL),this.paren(this.commaSep(i,_.ARGS_BEFORE_COMMA,_.ARGS_AFTER_COMMA),_.CALL_PAREN_BEFORE,_.CALL_PAREN_AFTER,_.CALL_PAREN_EMPTY)),{startsWithCurly:r.startsWithCurly,startsWithLet:r.startsWithLet,startsWithLetSquareBracket:r.startsWithLetSquareBracket,startsWithFunctionOrClass:r.startsWithFunctionOrClass})}},{key:"reduceCatchClause",value:function(e,t){var n=t.binding,r=t.body;return v(this.t("catch"),this.sep(_.BEFORE_CATCH_BINDING),this.paren(n,_.CATCH_PAREN_BEFORE,_.CATCH_PAREN_AFTER),this.sep(_.AFTER_CATCH_BINDING),r)}},{key:"reduceClassDeclaration",value:function(e,t){var n=t.name,r=t.super,i=t.elements,o=v(this.t("class"),"*default*"===e.name.name?h():v(this.sep(_.BEFORE_CLASS_NAME),n));return null!=r&&(o=v(o,this.sep(_.BEFORE_EXTENDS),this.t("extends"),this.sep(_.AFTER_EXTENDS),this.p(e.super,u.Precedence.New,r))),o=v(o,this.sep(_.BEFORE_CLASS_DECLARATION_ELEMENTS),this.brace(v.apply(void 0,c(i)),e,_.CLASS_BRACE_INITIAL,_.CLASS_BRACE_FINAL,_.CLASS_EMPTY),this.sep(_.AFTER_STATEMENT(e)))}},{key:"reduceClassExpression",value:function(e,t){var n=t.name,r=t.super,i=t.elements,o=this.t("class");return null!=n&&(o=v(o,this.sep(_.BEFORE_CLASS_NAME),n)),null!=r&&(o=v(o,this.sep(_.BEFORE_EXTENDS),this.t("extends"),this.sep(_.AFTER_EXTENDS),this.p(e.super,u.Precedence.New,r))),(o=v(o,this.sep(_.BEFORE_CLASS_EXPRESSION_ELEMENTS),this.brace(v.apply(void 0,c(i)),e,_.CLASS_EXPRESSION_BRACE_INITIAL,_.CLASS_EXPRESSION_BRACE_FINAL,_.CLASS_EXPRESSION_BRACE_EMPTY))).startsWithFunctionOrClass=!0,o}},{key:"reduceClassElement",value:function(e,t){var n=t.method;return n=v(this.sep(_.BEFORE_CLASS_ELEMENT),n,this.sep(_.AFTER_CLASS_ELEMENT)),e.isStatic?v(this.t("static"),this.sep(_.AFTER_STATIC),n):n}},{key:"reduceComputedMemberAssignmentTarget",value:function(e,t){var n=t.object,r=t.expression,i=n.startsWithLetSquareBracket||"IdentifierExpression"===e.object.type&&"let"===e.object.name;return(0,a.default)(v(this.p(e.object,(0,u.getPrecedence)(e),n),this.sep(_.COMPUTED_MEMBER_ASSIGNMENT_TARGET),this.bracket(r,_.COMPUTED_MEMBER_ASSIGNMENT_TARGET_BRACKET_INTIAL,_.COMPUTED_MEMBER_ASSIGNMENT_TARGET_BRACKET_FINAL)),{startsWithLet:n.startsWithLet,startsWithLetSquareBracket:i,startsWithCurly:n.startsWithCurly,startsWithFunctionOrClass:n.startsWithFunctionOrClass})}},{key:"reduceComputedMemberExpression",value:function(e,t){var n=t.object,r=t.expression,i=n.startsWithLetSquareBracket||"IdentifierExpression"===e.object.type&&"let"===e.object.name;return(0,a.default)(v(this.p(e.object,(0,u.getPrecedence)(e),n),this.sep(_.COMPUTED_MEMBER_EXPRESSION),this.bracket(r,_.COMPUTED_MEMBER_BRACKET_INTIAL,_.COMPUTED_MEMBER_BRACKET_FINAL)),{startsWithLet:n.startsWithLet,startsWithLetSquareBracket:i,startsWithCurly:n.startsWithCurly,startsWithFunctionOrClass:n.startsWithFunctionOrClass})}},{key:"reduceComputedPropertyName",value:function(e,t){var n=t.expression;return this.bracket(this.p(e.expression,u.Precedence.Assignment,n),_.COMPUTED_PROPERTY_BRACKET_INTIAL,_.COMPUTED_PROPERTY_BRACKET_FINAL)}},{key:"reduceConditionalExpression",value:function(e,t){var n=t.test,r=t.consequent,i=t.alternate,o=n.containsIn||i.containsIn,s=n.startsWithCurly,c=n.startsWithLetSquareBracket,l=n.startsWithFunctionOrClass;return(0,a.default)(v(this.p(e.test,u.Precedence.LogicalOR,n),this.sep(_.BEFORE_TERNARY_QUESTION),this.t("?"),this.sep(_.AFTER_TERNARY_QUESTION),this.p(e.consequent,u.Precedence.Assignment,r),this.sep(_.BEFORE_TERNARY_COLON),this.t(":"),this.sep(_.AFTER_TERNARY_COLON),this.p(e.alternate,u.Precedence.Assignment,i)),{containsIn:o,startsWithCurly:s,startsWithLetSquareBracket:c,startsWithFunctionOrClass:l})}},{key:"reduceContinueStatement",value:function(e){return v(this.t("continue"),e.label?v(this.sep(_.BEFORE_JUMP_LABEL),this.t(e.label)):h(),this.semiOp(),this.sep(_.AFTER_STATEMENT(e)))}},{key:"reduceDataProperty",value:function(e,t){var n=t.name,r=t.expression;return v(n,this.sep(_.BEFORE_PROP),this.t(":"),this.sep(_.AFTER_PROP),this.getAssignmentExpr(r))}},{key:"reduceDebuggerStatement",value:function(e){return v(this.t("debugger"),this.semiOp(),this.sep(_.AFTER_STATEMENT(e)))}},{key:"reduceDoWhileStatement",value:function(e,t){var n=t.body,r=t.test;return v(this.t("do"),this.sep(_.AFTER_DO),n,this.sep(_.BEFORE_DOWHILE_WHILE),this.t("while"),this.sep(_.AFTER_DOWHILE_WHILE),this.paren(r,_.DO_WHILE_TEST_PAREN_BEFORE,_.DO_WHILE_TEST_PAREN_AFTER),this.semiOp(),this.sep(_.AFTER_STATEMENT(e)))}},{key:"reduceEmptyStatement",value:function(e){return v(this.t(";"),this.sep(_.AFTER_STATEMENT(e)))}},{key:"reduceExpressionStatement",value:function(e,t){var n=t.expression;return v(n.startsWithCurly||n.startsWithLetSquareBracket||n.startsWithFunctionOrClass?this.paren(n,_.EXPRESSION_STATEMENT_PAREN_BEFORE,_.EXPRESSION_STATEMENT_PAREN_AFTER):n,this.semiOp(),this.sep(_.AFTER_STATEMENT(e)))}},{key:"reduceForInStatement",value:function(e,t){var n=t.left,r=t.right,i=t.body;return n="VariableDeclaration"===e.left.type?m(y(n)):n,(0,a.default)(v(this.t("for"),this.sep(_.AFTER_FORIN_FOR),this.paren(v(n.startsWithLet?this.paren(n,_.FOR_IN_LET_PAREN_BEFORE,_.FOR_IN_LET_PAREN_AFTER):n,this.sep(_.BEFORE_FORIN_IN),this.t("in"),this.sep(_.AFTER_FORIN_FOR),r),_.FOR_IN_PAREN_BEFORE,_.FOR_IN_PAREN_AFTER),this.sep(_.BEFORE_FORIN_BODY),i,this.sep(_.AFTER_STATEMENT(e))),{endsWithMissingElse:i.endsWithMissingElse})}},{key:"reduceForOfStatement",value:function(e,t){var n=t.left,r=t.right,i=t.body;return n="VariableDeclaration"===e.left.type?m(y(n)):n,(0,a.default)(v(this.t("for"),this.sep(_.AFTER_FOROF_FOR),this.paren(v(n.startsWithLet?this.paren(n,_.FOR_OF_LET_PAREN_BEFORE,_.FOR_OF_LET_PAREN_AFTER):n,this.sep(_.BEFORE_FOROF_OF),this.t("of"),this.sep(_.AFTER_FOROF_FOR),this.p(e.right,u.Precedence.Assignment,r)),_.FOR_OF_PAREN_BEFORE,_.FOR_OF_PAREN_AFTER),this.sep(_.BEFORE_FOROF_BODY),i,this.sep(_.AFTER_STATEMENT(e))),{endsWithMissingElse:i.endsWithMissingElse})}},{key:"reduceForStatement",value:function(e,t){var n=t.init,r=t.test,i=t.update,o=t.body;return n&&(n.startsWithLetSquareBracket&&(n=this.paren(n,_.FOR_LET_PAREN_BEFORE,_.FOR_LET_PAREN_AFTER)),n=m(y(n))),(0,a.default)(v(this.t("for"),this.sep(_.AFTER_FOR_FOR),this.paren(v(n?v(this.sep(_.BEFORE_FOR_INIT),n,this.sep(_.AFTER_FOR_INIT)):this.sep(_.EMPTY_FOR_INIT),this.t(";"),r?v(this.sep(_.BEFORE_FOR_TEST),r,this.sep(_.AFTER_FOR_TEST)):this.sep(_.EMPTY_FOR_TEST),this.t(";"),i?v(this.sep(_.BEFORE_FOR_UPDATE),i,this.sep(_.AFTER_FOR_UPDATE)):this.sep(_.EMPTY_FOR_UPDATE))),this.sep(_.BEFORE_FOR_BODY),o,this.sep(_.AFTER_STATEMENT(e))),{endsWithMissingElse:o.endsWithMissingElse})}},{key:"reduceForAwaitStatement",value:function(e,t){var n=t.left,r=t.right,i=t.body;return n="VariableDeclaration"===e.left.type?m(y(n)):n,(0,a.default)(v(this.t("for"),this.sep(_.AFTER_FOROF_FOR),this.t("await"),this.sep(_.AFTER_FORAWAIT_AWAIT),this.paren(v(n.startsWithLet?this.paren(n,_.FOR_OF_LET_PAREN_BEFORE,_.FOR_OF_LET_PAREN_AFTER):n,this.sep(_.BEFORE_FOROF_OF),this.t("of"),this.sep(_.AFTER_FOROF_FOR),this.p(e.right,u.Precedence.Assignment,r)),_.FOR_OF_PAREN_BEFORE,_.FOR_OF_PAREN_AFTER),this.sep(_.BEFORE_FOROF_BODY),i,this.sep(_.AFTER_STATEMENT(e))),{endsWithMissingElse:i.endsWithMissingElse})}},{key:"reduceFunctionBody",value:function(e,t){var n=t.directives,r=t.statements;return r.length&&(r[0]=this.parenToAvoidBeingDirective(e.statements[0],r[0])),v.apply(void 0,c(n).concat([n.length?this.sep(_.AFTER_FUNCTION_DIRECTIVES):h()],c(r)))}},{key:"reduceFunctionDeclaration",value:function(e,t){var n=t.name,r=t.params,i=t.body;return v(e.isAsync?this.t("async"):h(),this.t("function"),e.isGenerator?v(this.sep(_.BEFORE_GENERATOR_STAR),this.t("*"),this.sep(_.AFTER_GENERATOR_STAR)):h(),this.sep(_.BEFORE_FUNCTION_NAME(e)),"*default*"===e.name.name?h():n,this.sep(_.BEFORE_FUNCTION_PARAMS),this.paren(r,_.PARAMETERS_PAREN_BEFORE,_.PARAMETERS_PAREN_AFTER,_.PARAMETERS_PAREN_EMPTY),this.sep(_.BEFORE_FUNCTION_DECLARATION_BODY),this.brace(i,e,_.FUNCTION_BRACE_INITIAL,_.FUNCTION_BRACE_FINAL,_.FUNCTION_EMPTY),this.sep(_.AFTER_STATEMENT(e)))}},{key:"reduceFunctionExpression",value:function(e,t){var n=t.name,r=t.params,i=t.body,o=v(e.isAsync?this.t("async"):h(),this.t("function"),e.isGenerator?v(this.sep(_.BEFORE_GENERATOR_STAR),this.t("*"),this.sep(_.AFTER_GENERATOR_STAR)):h(),this.sep(_.BEFORE_FUNCTION_NAME(e)),n||h(),this.sep(_.BEFORE_FUNCTION_PARAMS),this.paren(r,_.PARAMETERS_PAREN_BEFORE,_.PARAMETERS_PAREN_AFTER,_.PARAMETERS_PAREN_EMPTY),this.sep(_.BEFORE_FUNCTION_EXPRESSION_BODY),this.brace(i,e,_.FUNCTION_EXPRESSION_BRACE_INITIAL,_.FUNCTION_EXPRESSION_BRACE_FINAL,_.FUNCTION_EXPRESSION_EMPTY));return o.startsWithFunctionOrClass=!0,o}},{key:"reduceFormalParameters",value:function(e,t){var n=t.items,r=t.rest;return this.commaSep(n.concat(null==r?[]:[v(this.t("..."),this.sep(_.REST),r)]),_.PARAMETER_BEFORE_COMMA,_.PARAMETER_AFTER_COMMA)}},{key:"reduceArrowExpression",value:function(e,t){var n=t.params,r=t.body;null==e.params.rest&&1===e.params.items.length&&"BindingIdentifier"===e.params.items[0].type||(n=this.paren(n,_.ARROW_PARAMETERS_PAREN_BEFORE,_.ARROW_PARAMETERS_PAREN_AFTER,_.ARROW_PARAMETERS_PAREN_EMPTY));var i=!1;return"FunctionBody"===e.body.type?r=this.brace(r,e,_.ARROW_BRACE_INITIAL,_.ARROW_BRACE_FINAL,_.ARROW_BRACE_EMPTY):r.startsWithCurly?r=this.paren(r,_.ARROW_BODY_PAREN_BEFORE,_.ARROW_BODY_PAREN_AFTER):r.containsIn&&(i=!0),(0,a.default)(v(e.isAsync?v(this.t("async"),this.sep(_.BEFORE_ARROW_ASYNC_PARAMS)):h(),n,this.sep(_.BEFORE_ARROW),this.t("=>"),this.sep(_.AFTER_ARROW),this.p(e.body,u.Precedence.Assignment,r)),{containsIn:i})}},{key:"reduceGetter",value:function(e,t){var n=t.name,r=t.body;return v(this.t("get"),this.sep(_.AFTER_GET),n,this.sep(_.BEFORE_GET_PARAMS),this.paren(h(),null,null,_.GETTER_PARAMS),this.sep(_.BEFORE_GET_BODY),this.brace(r,e,_.GET_BRACE_INTIAL,_.GET_BRACE_FINAL,_.GET_BRACE_EMPTY))}},{key:"reduceIdentifierExpression",value:function(e){var t=this.t(e.name);return"let"===e.name&&(t.startsWithLet=!0),t}},{key:"reduceIfStatement",value:function(e,t){var n=t.test,r=t.consequent,i=t.alternate;return i&&r.endsWithMissingElse&&(r=this.brace(r,e,_.MISSING_ELSE_INTIIAL,_.MISSING_ELSE_FINAL,_.MISSING_ELSE_EMPTY)),(0,a.default)(v(this.t("if"),this.sep(_.AFTER_IF),this.paren(n,_.IF_PAREN_BEFORE,_.IF_PAREN_AFTER),this.sep(_.AFTER_IF_TEST),r,i?v(this.sep(_.BEFORE_ELSE),this.t("else"),this.sep(_.AFTER_ELSE),i):h(),this.sep(_.AFTER_STATEMENT(e))),{endsWithMissingElse:!i||i.endsWithMissingElse})}},{key:"reduceImport",value:function(e,t){var n=t.defaultBinding,r=t.namedImports,i=[];return null!=n&&i.push(n),r.length>0&&i.push(this.brace(this.commaSep(r,_.NAMED_IMPORT_BEFORE_COMMA,_.NAMED_IMPORT_AFTER_COMMA),e,_.IMPORT_BRACE_INTIAL,_.IMPORT_BRACE_FINAL,_.IMPORT_BRACE_EMPTY)),0===i.length?v(this.t("import"),this.sep(_.BEFORE_IMPORT_MODULE),this.t((0,u.escapeStringLiteral)(e.moduleSpecifier)),this.semiOp(),this.sep(_.AFTER_STATEMENT(e))):v(this.t("import"),this.sep(_.BEFORE_IMPORT_BINDINGS),this.commaSep(i,_.IMPORT_BEFORE_COMMA,_.IMPORT_AFTER_COMMA),this.sep(_.AFTER_IMPORT_BINDINGS),this.t("from"),this.sep(_.AFTER_FROM),this.t((0,u.escapeStringLiteral)(e.moduleSpecifier)),this.semiOp(),this.sep(_.AFTER_STATEMENT(e)))}},{key:"reduceImportNamespace",value:function(e,t){var n=t.defaultBinding,r=t.namespaceBinding;return v(this.t("import"),this.sep(_.BEFORE_IMPORT_NAMESPACE),null==n?h():v(n,this.sep(_.IMPORT_BEFORE_COMMA),this.t(","),this.sep(_.IMPORT_AFTER_COMMA)),this.sep(_.BEFORE_IMPORT_STAR),this.t("*"),this.sep(_.AFTER_IMPORT_STAR),this.t("as"),this.sep(_.AFTER_IMPORT_AS),r,this.sep(_.AFTER_NAMESPACE_BINDING),this.t("from"),this.sep(_.AFTER_FROM),this.t((0,u.escapeStringLiteral)(e.moduleSpecifier)),this.semiOp(),this.sep(_.AFTER_STATEMENT(e)))}},{key:"reduceImportSpecifier",value:function(e,t){var n=t.binding;return null==e.name?n:v(this.t(e.name),this.sep(_.BEFORE_IMPORT_AS),this.t("as"),this.sep(_.AFTER_IMPORT_AS),n)}},{key:"reduceExportAllFrom",value:function(e){return v(this.t("export"),this.sep(_.BEFORE_EXPORT_STAR),this.t("*"),this.sep(_.AFTER_EXPORT_STAR),this.t("from"),this.sep(_.AFTER_FROM),this.t((0,u.escapeStringLiteral)(e.moduleSpecifier)),this.semiOp(),this.sep(_.AFTER_STATEMENT(e)))}},{key:"reduceExportFrom",value:function(e,t){var n=t.namedExports;return v(this.t("export"),this.sep(_.BEFORE_EXPORT_BINDINGS),this.brace(this.commaSep(n,_.EXPORTS_BEFORE_COMMA,_.EXPORTS_AFTER_COMMA),e,_.EXPORT_BRACE_INITIAL,_.EXPORT_BRACE_FINAL,_.EXPORT_BRACE_EMPTY),this.sep(_.AFTER_EXPORT_FROM_BINDINGS),this.t("from"),this.sep(_.AFTER_FROM),this.t((0,u.escapeStringLiteral)(e.moduleSpecifier)),this.semiOp(),this.sep(_.AFTER_STATEMENT(e)))}},{key:"reduceExportLocals",value:function(e,t){var n=t.namedExports;return v(this.t("export"),this.sep(_.BEFORE_EXPORT_BINDINGS),this.brace(this.commaSep(n,_.EXPORTS_BEFORE_COMMA,_.EXPORTS_AFTER_COMMA),e,_.EXPORT_BRACE_INITIAL,_.EXPORT_BRACE_FINAL,_.EXPORT_BRACE_EMPTY),this.sep(_.AFTER_EXPORT_LOCAL_BINDINGS),this.semiOp(),this.sep(_.AFTER_STATEMENT(e)))}},{key:"reduceExport",value:function(e,t){var n=t.declaration;switch(e.declaration.type){case"FunctionDeclaration":case"ClassDeclaration":break;default:n=v(n,this.semiOp(),this.sep(_.AFTER_STATEMENT(e)))}return v(this.t("export"),this.sep(_.AFTER_EXPORT),n)}},{key:"reduceExportDefault",value:function(e,t){var n=t.body;switch(n=n.startsWithFunctionOrClass?this.paren(n,_.EXPORT_PAREN_BEFORE,_.EXPORT_PAREN_AFTER):n,e.body.type){case"FunctionDeclaration":case"ClassDeclaration":return v(this.t("export"),this.sep(_.EXPORT_DEFAULT),this.t("default"),this.sep(_.AFTER_EXPORT_DEFAULT),n);default:return v(this.t("export"),this.sep(_.EXPORT_DEFAULT),this.t("default"),this.sep(_.AFTER_EXPORT_DEFAULT),this.p(e.body,u.Precedence.Assignment,n),this.semiOp(),this.sep(_.AFTER_STATEMENT(e)))}}},{key:"reduceExportFromSpecifier",value:function(e){return null==e.exportedName?this.t(e.name):v(this.t(e.name),this.sep(_.BEFORE_EXPORT_AS),this.t("as"),this.sep(_.AFTER_EXPORT_AS),this.t(e.exportedName))}},{key:"reduceExportLocalSpecifier",value:function(e,t){var n=t.name;return null==e.exportedName?n:v(n,this.sep(_.BEFORE_EXPORT_AS),this.t("as"),this.sep(_.AFTER_EXPORT_AS),this.t(e.exportedName))}},{key:"reduceLabeledStatement",value:function(e,t){var n=t.body;return(0,a.default)(v(this.t(e.label),this.sep(_.BEFORE_LABEL_COLON),this.t(":"),this.sep(_.AFTER_LABEL_COLON),n),{endsWithMissingElse:n.endsWithMissingElse})}},{key:"reduceLiteralBooleanExpression",value:function(e){return this.t(e.value.toString())}},{key:"reduceLiteralNullExpression",value:function(){return this.t("null")}},{key:"reduceLiteralInfinityExpression",value:function(){return this.t("2e308")}},{key:"reduceLiteralNumericExpression",value:function(e){return new u.NumberCodeRep(e.value)}},{key:"reduceLiteralRegExpExpression",value:function(e){return this.t("/"+e.pattern+"/"+(e.global?"g":"")+(e.ignoreCase?"i":"")+(e.multiLine?"m":"")+(e.dotAll?"s":"")+(e.unicode?"u":"")+(e.sticky?"y":""),!0)}},{key:"reduceLiteralStringExpression",value:function(e){return this.t((0,u.escapeStringLiteral)(e.value))}},{key:"reduceMethod",value:function(e,t){var n=t.name,r=t.params,i=t.body;return v(e.isAsync?v(this.t("async"),this.sep(_.AFTER_METHOD_ASYNC)):h(),e.isGenerator?v(this.t("*"),this.sep(_.AFTER_METHOD_GENERATOR_STAR)):h(),n,this.sep(_.AFTER_METHOD_NAME),this.paren(r,_.PARAMETERS_PAREN_BEFORE,_.PARAMETERS_PAREN_AFTER,_.PARAMETERS_PAREN_EMPTY),this.sep(_.BEFORE_METHOD_BODY),this.brace(i,e,_.METHOD_BRACE_INTIAL,_.METHOD_BRACE_FINAL,_.METHOD_BRACE_EMPTY))}},{key:"reduceModule",value:function(e,t){var n=t.directives,r=t.items;return r.length&&(r[0]=this.parenToAvoidBeingDirective(e.items[0],r[0])),v.apply(void 0,c(n).concat([n.length?this.sep(_.AFTER_MODULE_DIRECTIVES):h()],c(r)))}},{key:"reduceNewExpression",value:function(e,t){var n=this,r=t.callee,i=t.arguments,o=i.map((function(t,r){return n.p(e.arguments[r],u.Precedence.Assignment,t)})),a=(0,u.getPrecedence)(e.callee)===u.Precedence.Call?this.paren(r,_.NEW_CALLEE_PAREN_BEFORE,_.NEW_CALLEE_PAREN_AFTER):this.p(e.callee,(0,u.getPrecedence)(e),r);return v(this.t("new"),this.sep(_.AFTER_NEW),a,0===i.length?this.sep(_.EMPTY_NEW_CALL):v(this.sep(_.BEFORE_NEW_ARGS),this.paren(this.commaSep(o,_.ARGS_BEFORE_COMMA,_.ARGS_AFTER_COMMA),_.NEW_PAREN_BEFORE,_.NEW_PAREN_AFTER,_.NEW_PAREN_EMPTY)))}},{key:"reduceNewTargetExpression",value:function(){return v(this.t("new"),this.sep(_.NEW_TARGET_BEFORE_DOT),this.t("."),this.sep(_.NEW_TARGET_AFTER_DOT),this.t("target"))}},{key:"reduceObjectExpression",value:function(e,t){var n=t.properties,r=this.brace(this.commaSep(n,_.OBJECT_BEFORE_COMMA,_.OBJECT_AFTER_COMMA),e,_.OBJECT_BRACE_INITIAL,_.OBJECT_BRACE_FINAL,_.OBJECT_EMPTY);return r.startsWithCurly=!0,r}},{key:"reduceUpdateExpression",value:function(e,t){var n=t.operand;return e.isPrefix?this.reduceUnaryExpression.apply(this,arguments):(0,a.default)(v(this.p(e.operand,u.Precedence.New,n),this.sep(_.BEFORE_POSTFIX(e.operator)),this.t(e.operator)),{startsWithCurly:n.startsWithCurly,startsWithLetSquareBracket:n.startsWithLetSquareBracket,startsWithFunctionOrClass:n.startsWithFunctionOrClass})}},{key:"reduceUnaryExpression",value:function(e,t){var n=t.operand;return v(this.t(e.operator),this.sep(_.UNARY(e.operator)),this.p(e.operand,(0,u.getPrecedence)(e),n))}},{key:"reduceReturnStatement",value:function(e,t){var n=t.expression;return v(this.t("return"),n?v(this.sep(_.RETURN),n):h(),this.semiOp(),this.sep(_.AFTER_STATEMENT(e)))}},{key:"reduceScript",value:function(e,t){var n=t.directives,r=t.statements;return r.length&&(r[0]=this.parenToAvoidBeingDirective(e.statements[0],r[0])),v.apply(void 0,c(n).concat([n.length?this.sep(_.AFTER_SCRIPT_DIRECTIVES):h()],c(r)))}},{key:"reduceSetter",value:function(e,t){var n=t.name,r=t.param,i=t.body;return v(this.t("set"),this.sep(_.AFTER_SET),n,this.sep(_.BEFORE_SET_PARAMS),this.paren(r,_.SETTER_PARAM_BEFORE,_.SETTER_PARAM_AFTER),this.sep(_.BEFORE_SET_BODY),this.brace(i,e,_.SET_BRACE_INTIIAL,_.SET_BRACE_FINAL,_.SET_BRACE_EMPTY))}},{key:"reduceShorthandProperty",value:function(e,t){return t.name}},{key:"reduceStaticMemberAssignmentTarget",value:function(e,t){var n=t.object,r=v(this.p(e.object,(0,u.getPrecedence)(e),n),this.sep(_.BEFORE_STATIC_MEMBER_ASSIGNMENT_TARGET_DOT),this.t("."),this.sep(_.AFTER_STATIC_MEMBER_ASSIGNMENT_TARGET_DOT),this.t(e.property));return r.startsWithLet=n.startsWithLet,r.startsWithCurly=n.startsWithCurly,r.startsWithLetSquareBracket=n.startsWithLetSquareBracket,r.startsWithFunctionOrClass=n.startsWithFunctionOrClass,r}},{key:"reduceStaticMemberExpression",value:function(e,t){var n=t.object,r=v(this.p(e.object,(0,u.getPrecedence)(e),n),this.sep(_.BEFORE_STATIC_MEMBER_DOT),this.t("."),this.sep(_.AFTER_STATIC_MEMBER_DOT),this.t(e.property));return r.startsWithLet=n.startsWithLet,r.startsWithCurly=n.startsWithCurly,r.startsWithLetSquareBracket=n.startsWithLetSquareBracket,r.startsWithFunctionOrClass=n.startsWithFunctionOrClass,r}},{key:"reduceStaticPropertyName",value:function(e){if(s.keyword.isIdentifierNameES6(e.value))return this.t(e.value);var t=parseFloat(e.value);return t>=0&&t.toString()===e.value?new u.NumberCodeRep(t):this.t((0,u.escapeStringLiteral)(e.value))}},{key:"reduceSuper",value:function(){return this.t("super")}},{key:"reduceSwitchCase",value:function(e,t){var n=t.test,r=t.consequent;return v(this.t("case"),this.sep(_.BEFORE_CASE_TEST),n,this.sep(_.AFTER_CASE_TEST),this.t(":"),this.sep(_.BEFORE_CASE_BODY),v.apply(void 0,c(r)),this.sep(_.AFTER_CASE_BODY))}},{key:"reduceSwitchDefault",value:function(e,t){var n=t.consequent;return v(this.t("default"),this.sep(_.DEFAULT),this.t(":"),this.sep(_.BEFORE_CASE_BODY),v.apply(void 0,c(n)),this.sep(_.AFTER_DEFAULT_BODY))}},{key:"reduceSwitchStatement",value:function(e,t){var n=t.discriminant,r=t.cases;return v(this.t("switch"),this.sep(_.BEFORE_SWITCH_DISCRIM),this.paren(n,_.SWITCH_DISCRIM_PAREN_BEFORE,_.SWITCH_DISCRIM_PAREN_AFTER),this.sep(_.BEFORE_SWITCH_BODY),this.brace(v.apply(void 0,c(r)),e,_.SWITCH_BRACE_INTIAL,_.SWITCH_BRACE_FINAL,_.SWITCH_BRACE_EMPTY),this.sep(_.AFTER_STATEMENT(e)))}},{key:"reduceSwitchStatementWithDefault",value:function(e,t){var n=t.discriminant,r=t.preDefaultCases,i=t.defaultCase,o=t.postDefaultCases;return v(this.t("switch"),this.sep(_.BEFORE_SWITCH_DISCRIM),this.paren(n,_.SWITCH_DISCRIM_PAREN_BEFORE,_.SWITCH_DISCRIM_PAREN_AFTER),this.sep(_.BEFORE_SWITCH_BODY),this.brace(v.apply(void 0,c(r).concat([i],c(o))),e,_.SWITCH_BRACE_INTIAL,_.SWITCH_BRACE_FINAL,_.SWITCH_BRACE_EMPTY),this.sep(_.AFTER_STATEMENT(e)))}},{key:"reduceTemplateExpression",value:function(e,t){var n=t.tag,r=t.elements,i=null==e.tag?h():v(this.p(e.tag,(0,u.getPrecedence)(e),n),this.sep(_.TEMPLATE_TAG));i=v(i,this.t("`"));for(var o=0,a=e.elements.length;o0&&(s+="}"),s+=e.elements[o].rawValue,o1&&void 0!==arguments[1]?arguments[1]:new c.default,n=new u.TokenStream,r=(0,s.default)(t,e);return r.emit(n),n.result};var r=n(8266);Object.defineProperty(t,"MinimalCodeGen",{enumerable:!0,get:function(){return l(r).default}});var i=n(6845);Object.defineProperty(t,"ExtensibleCodeGen",{enumerable:!0,get:function(){return i.ExtensibleCodeGen}}),Object.defineProperty(t,"FormattedCodeGen",{enumerable:!0,get:function(){return i.FormattedCodeGen}}),Object.defineProperty(t,"Sep",{enumerable:!0,get:function(){return i.Sep}});var o=n(3350);Object.defineProperty(t,"Precedence",{enumerable:!0,get:function(){return o.Precedence}}),Object.defineProperty(t,"getPrecedence",{enumerable:!0,get:function(){return o.getPrecedence}}),Object.defineProperty(t,"escapeStringLiteral",{enumerable:!0,get:function(){return o.escapeStringLiteral}}),Object.defineProperty(t,"CodeRep",{enumerable:!0,get:function(){return o.CodeRep}}),Object.defineProperty(t,"Empty",{enumerable:!0,get:function(){return o.Empty}}),Object.defineProperty(t,"Token",{enumerable:!0,get:function(){return o.Token}}),Object.defineProperty(t,"NumberCodeRep",{enumerable:!0,get:function(){return o.NumberCodeRep}}),Object.defineProperty(t,"Paren",{enumerable:!0,get:function(){return o.Paren}}),Object.defineProperty(t,"Bracket",{enumerable:!0,get:function(){return o.Bracket}}),Object.defineProperty(t,"Brace",{enumerable:!0,get:function(){return o.Brace}}),Object.defineProperty(t,"NoIn",{enumerable:!0,get:function(){return o.NoIn}}),Object.defineProperty(t,"ContainsIn",{enumerable:!0,get:function(){return o.ContainsIn}}),Object.defineProperty(t,"Seq",{enumerable:!0,get:function(){return o.Seq}}),Object.defineProperty(t,"Semi",{enumerable:!0,get:function(){return o.Semi}}),Object.defineProperty(t,"CommaSep",{enumerable:!0,get:function(){return o.CommaSep}}),Object.defineProperty(t,"SemiOp",{enumerable:!0,get:function(){return o.SemiOp}});var a=n(5733);Object.defineProperty(t,"codeGenWithLocation",{enumerable:!0,get:function(){return l(a).default}});var s=l(n(4041)),u=n(7898),c=l(r);function l(e){return e&&e.__esModule?e:{default:e}}},8266:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r,i=function(){function e(e,t){for(var n=0;n1&&void 0!==arguments[1]&&arguments[1];return new u.Token(e,t)}function f(e){return new u.Paren(e)}function d(e){return new u.Brace(e)}function h(e){return new u.Bracket(e)}function m(e){return new u.NoIn(e)}function y(e){return e.containsIn?new u.ContainsIn(e):e}function v(){for(var e=arguments.length,t=Array(e),n=0;n0&&null==n[n.length-1]&&(r=v(r,p(","))),h(r)}},{key:"reduceAwaitExpression",value:function(e,t){var n=t.expression;return v(p("await"),l(e.expression,(0,u.getPrecedence)(e),n))}},{key:"reduceSpreadElement",value:function(e,t){var n=t.expression;return v(p("..."),l(e.expression,u.Precedence.Assignment,n))}},{key:"reduceSpreadProperty",value:function(e,t){var n=t.expression;return v(p("..."),b(n))}},{key:"reduceAssignmentExpression",value:function(e,t){var n=t.binding,r=t.expression,i=n,o=r,s=r.containsIn,c=n.startsWithCurly,l=n.startsWithLetSquareBracket,d=n.startsWithFunctionOrClass;return(0,u.getPrecedence)(e.expression)<(0,u.getPrecedence)(e)&&(o=f(o),s=!1),(0,a.default)(v(i,p("="),o),{containsIn:s,startsWithCurly:c,startsWithLetSquareBracket:l,startsWithFunctionOrClass:d})}},{key:"reduceAssignmentTargetIdentifier",value:function(e){var t=p(e.name);return"let"===e.name&&(t.startsWithLet=!0),t}},{key:"reduceAssignmentTargetWithDefault",value:function(e,t){var n=t.binding,r=t.init;return v(n,p("="),l(e.init,u.Precedence.Assignment,r))}},{key:"reduceCompoundAssignmentExpression",value:function(e,t){var n=t.binding,r=t.expression,i=n,o=r,s=r.containsIn,c=n.startsWithCurly,l=n.startsWithLetSquareBracket,d=n.startsWithFunctionOrClass;return(0,u.getPrecedence)(e.expression)<(0,u.getPrecedence)(e)&&(o=f(o),s=!1),(0,a.default)(v(i,p(e.operator),o),{containsIn:s,startsWithCurly:c,startsWithLetSquareBracket:l,startsWithFunctionOrClass:d})}},{key:"reduceBinaryExpression",value:function(e,t){var n=t.left,r=t.right,i=n,o=n.startsWithCurly,s=n.startsWithLetSquareBracket,c=n.startsWithFunctionOrClass,l=n.containsIn,d="**"===e.operator;((0,u.getPrecedence)(e.left)<(0,u.getPrecedence)(e)||d&&((0,u.getPrecedence)(e.left)===(0,u.getPrecedence)(e)||"UnaryExpression"===e.left.type))&&(i=f(i),o=!1,s=!1,c=!1,l=!1);var h=r,m=r.containsIn;return((0,u.getPrecedence)(e.right)<(0,u.getPrecedence)(e)||!d&&(0,u.getPrecedence)(e.right)===(0,u.getPrecedence)(e))&&(h=f(h),m=!1),(0,a.default)(v(i,p(e.operator),h),{containsIn:l||m||"in"===e.operator,containsGroup:","===e.operator,startsWithCurly:o,startsWithLetSquareBracket:s,startsWithFunctionOrClass:c})}},{key:"reduceBindingWithDefault",value:function(e,t){var n=t.binding,r=t.init;return v(n,p("="),l(e.init,u.Precedence.Assignment,r))}},{key:"reduceBindingIdentifier",value:function(e){var t=p(e.name);return"let"===e.name&&(t.startsWithLet=!0),t}},{key:"reduceArrayAssignmentTarget",value:function(e,t){var n=t.elements,r=t.rest,i=void 0;return 0===n.length?i=null==r?E():v(p("..."),r):(i=D((n=n.concat(null==r?[]:[v(p("..."),r)])).map(b)),n.length>0&&null==n[n.length-1]&&(i=v(i,p(",")))),h(i)}},{key:"reduceArrayBinding",value:function(e,t){var n=t.elements,r=t.rest,i=void 0;return 0===n.length?i=null==r?E():v(p("..."),r):(i=D((n=n.concat(null==r?[]:[v(p("..."),r)])).map(b)),n.length>0&&null==n[n.length-1]&&(i=v(i,p(",")))),h(i)}},{key:"reduceObjectAssignmentTarget",value:function(e,t){var n=t.properties,r=t.rest,i=D(n),o=d(i=0===n.length?null==r?E():v(p("..."),r):null==r?i:v(i,p(","),p("..."),r));return o.startsWithCurly=!0,o}},{key:"reduceObjectBinding",value:function(e,t){var n=t.properties,r=t.rest,i=D(n),o=d(i=0===n.length?null==r?E():v(p("..."),r):null==r?i:v(i,p(","),p("..."),r));return o.startsWithCurly=!0,o}},{key:"reduceAssignmentTargetPropertyIdentifier",value:function(e,t){var n=t.binding,r=t.init;return null==e.init?n:v(n,p("="),l(e.init,u.Precedence.Assignment,r))}},{key:"reduceAssignmentTargetPropertyProperty",value:function(e,t){var n=t.name,r=t.binding;return v(n,p(":"),r)}},{key:"reduceBindingPropertyIdentifier",value:function(e,t){var n=t.binding,r=t.init;return null==e.init?n:v(n,p("="),l(e.init,u.Precedence.Assignment,r))}},{key:"reduceBindingPropertyProperty",value:function(e,t){var n=t.name,r=t.binding;return v(n,p(":"),r)}},{key:"reduceBlock",value:function(e,t){var n=t.statements;return d(v.apply(void 0,c(n)))}},{key:"reduceBlockStatement",value:function(e,t){return t.block}},{key:"reduceBreakStatement",value:function(e){return v(p("break"),e.label?p(e.label):E(),_())}},{key:"reduceCallExpression",value:function(e,t){var n=t.callee,r=t.arguments.map((function(t,n){return l(e.arguments[n],u.Precedence.Assignment,t)}));return(0,a.default)(v(l(e.callee,(0,u.getPrecedence)(e),n),f(D(r))),{startsWithCurly:n.startsWithCurly,startsWithLet:n.startsWithLet,startsWithLetSquareBracket:n.startsWithLetSquareBracket,startsWithFunctionOrClass:n.startsWithFunctionOrClass})}},{key:"reduceCatchClause",value:function(e,t){var n=t.binding,r=t.body;return v(p("catch"),f(n),r)}},{key:"reduceClassDeclaration",value:function(e,t){var n=t.name,r=t.super,i=t.elements,o=v(p("class"),"*default*"===e.name.name?E():n);return null!=r&&(o=v(o,p("extends"),l(e.super,u.Precedence.New,r))),o=v.apply(void 0,[o,p("{")].concat(c(i),[p("}")]))}},{key:"reduceClassExpression",value:function(e,t){var n=t.name,r=t.super,i=t.elements,o=p("class");return null!=n&&(o=v(o,n)),null!=r&&(o=v(o,p("extends"),l(e.super,u.Precedence.New,r))),(o=v.apply(void 0,[o,p("{")].concat(c(i),[p("}")]))).startsWithFunctionOrClass=!0,o}},{key:"reduceClassElement",value:function(e,t){var n=t.method;return e.isStatic?v(p("static"),n):n}},{key:"reduceComputedMemberAssignmentTarget",value:function(e,t){var n=t.object,r=t.expression,i=n.startsWithLetSquareBracket||"IdentifierExpression"===e.object.type&&"let"===e.object.name;return(0,a.default)(v(l(e.object,(0,u.getPrecedence)(e),n),h(r)),{startsWithLet:n.startsWithLet,startsWithLetSquareBracket:i,startsWithCurly:n.startsWithCurly,startsWithFunctionOrClass:n.startsWithFunctionOrClass})}},{key:"reduceComputedMemberExpression",value:function(e,t){var n=t.object,r=t.expression,i=n.startsWithLetSquareBracket||"IdentifierExpression"===e.object.type&&"let"===e.object.name;return(0,a.default)(v(l(e.object,(0,u.getPrecedence)(e),n),h(r)),{startsWithLet:n.startsWithLet,startsWithLetSquareBracket:i,startsWithCurly:n.startsWithCurly,startsWithFunctionOrClass:n.startsWithFunctionOrClass})}},{key:"reduceComputedPropertyName",value:function(e,t){var n=t.expression;return h(l(e.expression,u.Precedence.Assignment,n))}},{key:"reduceConditionalExpression",value:function(e,t){var n=t.test,r=t.consequent,i=t.alternate,o=n.containsIn||i.containsIn,s=n.startsWithCurly,c=n.startsWithLetSquareBracket,f=n.startsWithFunctionOrClass;return(0,a.default)(v(l(e.test,u.Precedence.LogicalOR,n),p("?"),l(e.consequent,u.Precedence.Assignment,r),p(":"),l(e.alternate,u.Precedence.Assignment,i)),{containsIn:o,startsWithCurly:s,startsWithLetSquareBracket:c,startsWithFunctionOrClass:f})}},{key:"reduceContinueStatement",value:function(e){return v(p("continue"),e.label?p(e.label):E(),_())}},{key:"reduceDataProperty",value:function(e,t){var n=t.name,r=t.expression;return v(n,p(":"),b(r))}},{key:"reduceDebuggerStatement",value:function(){return v(p("debugger"),_())}},{key:"reduceDoWhileStatement",value:function(e,t){var n=t.body,r=t.test;return v(p("do"),n,p("while"),f(r),_())}},{key:"reduceEmptyStatement",value:function(){return g()}},{key:"reduceExpressionStatement",value:function(e,t){var n=t.expression;return v(n.startsWithCurly||n.startsWithLetSquareBracket||n.startsWithFunctionOrClass?f(n):n,_())}},{key:"reduceForInStatement",value:function(e,t){var n=t.left,r=t.right,i=t.body;return n="VariableDeclaration"===e.left.type?m(y(n)):n,(0,a.default)(v(p("for"),f(v(n.startsWithLet?f(n):n,p("in"),r)),i),{endsWithMissingElse:i.endsWithMissingElse})}},{key:"reduceForOfStatement",value:function(e,t){var n=t.left,r=t.right,i=t.body;return n="VariableDeclaration"===e.left.type?m(y(n)):n,(0,a.default)(v(p("for"),f(v(n.startsWithLet?f(n):n,p("of"),l(e.right,u.Precedence.Assignment,r))),i),{endsWithMissingElse:i.endsWithMissingElse})}},{key:"reduceForStatement",value:function(e,t){var n=t.init,r=t.test,i=t.update,o=t.body;return n&&(n.startsWithLetSquareBracket&&(n=f(n)),n=m(y(n))),(0,a.default)(v(p("for"),f(v(n||E(),g(),r||E(),g(),i||E())),o),{endsWithMissingElse:o.endsWithMissingElse})}},{key:"reduceForAwaitStatement",value:function(e,t){var n=t.left,r=t.right,i=t.body;return n="VariableDeclaration"===e.left.type?m(y(n)):n,(0,a.default)(v(p("for"),p("await"),f(v(n.startsWithLet?f(n):n,p("of"),l(e.right,u.Precedence.Assignment,r))),i),{endsWithMissingElse:i.endsWithMissingElse})}},{key:"reduceFunctionBody",value:function(e,t){var n=t.directives,r=t.statements;return r.length&&(r[0]=this.parenToAvoidBeingDirective(e.statements[0],r[0])),d(v.apply(void 0,c(n).concat(c(r))))}},{key:"reduceFunctionDeclaration",value:function(e,t){var n=t.name,r=t.params,i=t.body;return v(e.isAsync?p("async"):E(),p("function"),e.isGenerator?p("*"):E(),"*default*"===e.name.name?E():n,r,i)}},{key:"reduceFunctionExpression",value:function(e,t){var n=t.name,r=t.params,i=t.body,o=v(e.isAsync?p("async"):E(),p("function"),e.isGenerator?p("*"):E(),n||E(),r,i);return o.startsWithFunctionOrClass=!0,o}},{key:"reduceFormalParameters",value:function(e,t){var n=t.items,r=t.rest;return f(D(n.concat(null==r?[]:[v(p("..."),r)])))}},{key:"reduceArrowExpression",value:function(e,t){var n=t.params,r=t.body;n=this.regenerateArrowParams(e.params,n);var i=!1;return"FunctionBody"!==e.body.type&&(r.startsWithCurly?r=f(r):r.containsIn&&(i=!0)),(0,a.default)(v(e.isAsync?p("async"):E(),n,p("=>"),l(e.body,u.Precedence.Assignment,r)),{containsIn:i})}},{key:"reduceGetter",value:function(e,t){var n=t.name,r=t.body;return v(p("get"),n,f(E()),r)}},{key:"reduceIdentifierExpression",value:function(e){var t=p(e.name);return"let"===e.name&&(t.startsWithLet=!0),t}},{key:"reduceIfStatement",value:function(e,t){var n=t.test,r=t.consequent,i=t.alternate;return i&&r.endsWithMissingElse&&(r=d(r)),(0,a.default)(v(p("if"),f(n),r,i?v(p("else"),i):E()),{endsWithMissingElse:!i||i.endsWithMissingElse})}},{key:"reduceImport",value:function(e,t){var n=t.defaultBinding,r=t.namedImports,i=[];return null!=n&&i.push(n),r.length>0&&i.push(d(D(r))),0===i.length?v(p("import"),p((0,u.escapeStringLiteral)(e.moduleSpecifier)),_()):v(p("import"),D(i),p("from"),p((0,u.escapeStringLiteral)(e.moduleSpecifier)),_())}},{key:"reduceImportNamespace",value:function(e,t){var n=t.defaultBinding,r=t.namespaceBinding;return v(p("import"),null==n?E():v(n,p(",")),p("*"),p("as"),r,p("from"),p((0,u.escapeStringLiteral)(e.moduleSpecifier)),_())}},{key:"reduceImportSpecifier",value:function(e,t){var n=t.binding;return null==e.name?n:v(p(e.name),p("as"),n)}},{key:"reduceExportAllFrom",value:function(e){return v(p("export"),p("*"),p("from"),p((0,u.escapeStringLiteral)(e.moduleSpecifier)),_())}},{key:"reduceExportFrom",value:function(e,t){var n=t.namedExports;return v(p("export"),d(D(n)),p("from"),p((0,u.escapeStringLiteral)(e.moduleSpecifier)),_())}},{key:"reduceExportLocals",value:function(e,t){var n=t.namedExports;return v(p("export"),d(D(n)),_())}},{key:"reduceExport",value:function(e,t){var n=t.declaration;switch(e.declaration.type){case"FunctionDeclaration":case"ClassDeclaration":break;default:n=v(n,_())}return v(p("export"),n)}},{key:"reduceExportDefault",value:function(e,t){var n=t.body;switch(n=n.startsWithFunctionOrClass?f(n):n,e.body.type){case"FunctionDeclaration":case"ClassDeclaration":return v(p("export default"),n);default:return v(p("export default"),l(e.body,u.Precedence.Assignment,n),_())}}},{key:"reduceExportFromSpecifier",value:function(e){return null==e.exportedName?p(e.name):v(p(e.name),p("as"),p(e.exportedName))}},{key:"reduceExportLocalSpecifier",value:function(e,t){var n=t.name;return null==e.exportedName?n:v(n,p("as"),p(e.exportedName))}},{key:"reduceLabeledStatement",value:function(e,t){var n=t.body;return(0,a.default)(v(p(e.label+":"),n),{endsWithMissingElse:n.endsWithMissingElse})}},{key:"reduceLiteralBooleanExpression",value:function(e){return p(e.value.toString())}},{key:"reduceLiteralNullExpression",value:function(){return p("null")}},{key:"reduceLiteralInfinityExpression",value:function(){return p("2e308")}},{key:"reduceLiteralNumericExpression",value:function(e){return new u.NumberCodeRep(e.value)}},{key:"reduceLiteralRegExpExpression",value:function(e){return p("/"+e.pattern+"/"+(e.global?"g":"")+(e.ignoreCase?"i":"")+(e.multiLine?"m":"")+(e.dotAll?"s":"")+(e.unicode?"u":"")+(e.sticky?"y":""),!0)}},{key:"reduceLiteralStringExpression",value:function(e){return p((0,u.escapeStringLiteral)(e.value))}},{key:"reduceMethod",value:function(e,t){var n=t.name,r=t.params,i=t.body;return v(e.isAsync?p("async"):E(),e.isGenerator?p("*"):E(),n,r,i)}},{key:"reduceModule",value:function(e,t){var n=t.directives,r=t.items;return r.length&&(r[0]=this.parenToAvoidBeingDirective(e.items[0],r[0])),v.apply(void 0,c(n).concat(c(r)))}},{key:"reduceNewExpression",value:function(e,t){var n=t.callee,r=t.arguments,i=r.map((function(t,n){return l(e.arguments[n],u.Precedence.Assignment,t)})),o=(0,u.getPrecedence)(e.callee)===u.Precedence.Call?f(n):l(e.callee,(0,u.getPrecedence)(e),n);return v(p("new"),o,0===r.length?E():f(D(i)))}},{key:"reduceNewTargetExpression",value:function(){return p("new.target")}},{key:"reduceObjectExpression",value:function(e,t){var n=d(D(t.properties));return n.startsWithCurly=!0,n}},{key:"reduceUpdateExpression",value:function(e,t){var n=t.operand;return e.isPrefix?this.reduceUnaryExpression.apply(this,arguments):(0,a.default)(v(l(e.operand,u.Precedence.New,n),p(e.operator)),{startsWithCurly:n.startsWithCurly,startsWithLetSquareBracket:n.startsWithLetSquareBracket,startsWithFunctionOrClass:n.startsWithFunctionOrClass})}},{key:"reduceUnaryExpression",value:function(e,t){var n=t.operand;return v(p(e.operator),l(e.operand,(0,u.getPrecedence)(e),n))}},{key:"reduceReturnStatement",value:function(e,t){var n=t.expression;return v(p("return"),n||E(),_())}},{key:"reduceScript",value:function(e,t){var n=t.directives,r=t.statements;return r.length&&(r[0]=this.parenToAvoidBeingDirective(e.statements[0],r[0])),v.apply(void 0,c(n).concat(c(r)))}},{key:"reduceSetter",value:function(e,t){var n=t.name,r=t.param,i=t.body;return v(p("set"),n,f(r),i)}},{key:"reduceShorthandProperty",value:function(e,t){return t.name}},{key:"reduceStaticMemberAssignmentTarget",value:function(e,t){var n=t.object,r=v(l(e.object,(0,u.getPrecedence)(e),n),p("."),p(e.property));return r.startsWithLet=n.startsWithLet,r.startsWithCurly=n.startsWithCurly,r.startsWithLetSquareBracket=n.startsWithLetSquareBracket,r.startsWithFunctionOrClass=n.startsWithFunctionOrClass,r}},{key:"reduceStaticMemberExpression",value:function(e,t){var n=t.object,r=v(l(e.object,(0,u.getPrecedence)(e),n),p("."),p(e.property));return r.startsWithLet=n.startsWithLet,r.startsWithCurly=n.startsWithCurly,r.startsWithLetSquareBracket=n.startsWithLetSquareBracket,r.startsWithFunctionOrClass=n.startsWithFunctionOrClass,r}},{key:"reduceStaticPropertyName",value:function(e){if(s.keyword.isIdentifierNameES6(e.value))return p(e.value);var t=parseFloat(e.value);return t>=0&&t.toString()===e.value?new u.NumberCodeRep(t):p((0,u.escapeStringLiteral)(e.value))}},{key:"reduceSuper",value:function(){return p("super")}},{key:"reduceSwitchCase",value:function(e,t){var n=t.test,r=t.consequent;return v(p("case"),n,p(":"),v.apply(void 0,c(r)))}},{key:"reduceSwitchDefault",value:function(e,t){var n=t.consequent;return v(p("default:"),v.apply(void 0,c(n)))}},{key:"reduceSwitchStatement",value:function(e,t){var n=t.discriminant,r=t.cases;return v(p("switch"),f(n),d(v.apply(void 0,c(r))))}},{key:"reduceSwitchStatementWithDefault",value:function(e,t){var n=t.discriminant,r=t.preDefaultCases,i=t.defaultCase,o=t.postDefaultCases;return v(p("switch"),f(n),d(v.apply(void 0,c(r).concat([i],c(o)))))}},{key:"reduceTemplateExpression",value:function(e,t){var n=t.tag,r=t.elements,i=null==e.tag?E():l(e.tag,(0,u.getPrecedence)(e),n);i=v(i,p("`"));for(var o=0,a=e.elements.length;o0?p("}"):E(),r[o],o=1e3&&e%10===0?(t=e.toString(10),/[eE]/.test(t)?t.replace(/[eE]\+/,"e"):e.toString(10).replace(/0{3,}$/,(function(e){return"e"+e.length}))):e%1===0?e>1e15&&e<1e20?"0x"+e.toString(16).toUpperCase():e.toString(10).replace(/[eE]\+/,"e"):e.toString(10).replace(/^0\./,".").replace(/[eE]\+/,"e")}(e);this.put(t),this.lastNumber=t}},{key:"putOptionalSemi",value:function(){this.optionalSemi=!0}},{key:"putRaw",value:function(e){this.result+=e,this.lastTokenStr=e}},{key:"put",value:function(e,t){if(this.optionalSemi&&(this.optionalSemi=!1,"}"!==e&&(this.result+=";",this.lastCodePoint=";",this.previousWasRegExp=!1)),null!==this.lastNumber&&1===e.length&&"."===e)return this.result+=a(this.lastNumber)?"..":".",this.lastNumber=null,void(this.lastCodePoint=".");var n=[].concat(function(e){if(Array.isArray(e)){for(var t=0,n=Array(e.length);t0){this.lastNumber=null;var r=String.fromCodePoint(e.codePointAt(0)),i=this.lastCodePoint;this.lastCodePoint=String.fromCodePoint(e.codePointAt(n-1));var s=this.previousWasRegExp;this.previousWasRegExp=t,i&&(("+"===i||"-"===i)&&i===r||o(i)&&o(r)||"/"===i&&"/"===r||s&&"i"===r||this.partialHtmlComment&&e.startsWith("--"))&&(this.result+=" ")}this.partialHtmlComment=this.lastTokenStr.endsWith("<")&&"!"===e,this.result+=e,this.lastTokenStr=e}}]),e}()},3797:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0});t.whitespaceArray=[5760,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8239,8287,12288,65279],t.whitespaceBool=[!1,!1,!1,!1,!1,!1,!1,!1,!1,!0,!1,!0,!0,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!0,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1],t.idStartLargeRegex=/^[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0-\u08B4\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C60\u0C61\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2118-\u211D\u2124\u2126\u2128\u212A-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309B-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FD5\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AD\uA7B0-\uA7B7\uA7F7-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDE80-\uDE9C\uDEA0-\uDED0\uDF00-\uDF1F\uDF30-\uDF4A\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE4\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2]|\uD804[\uDC03-\uDC37\uDC83-\uDCAF\uDCD0-\uDCE8\uDD03-\uDD26\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE2B\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEDE\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF50\uDF5D-\uDF61]|\uD805[\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE80-\uDEAA\uDF00-\uDF19]|\uD806[\uDCA0-\uDCDF\uDCFF\uDEC0-\uDEF8]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50\uDF93-\uDF9F]|\uD82C[\uDC00\uDC01]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB]|\uD83A[\uDC00-\uDCC4]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1]|\uD87E[\uDC00-\uDE1D]$/,t.idStartBool=[!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!0,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!1,!1,!1,!1,!0,!1,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!1,!1,!1,!1,!1],t.idContinueLargeRegex=/^[\xAA\xB5\xB7\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0300-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u0483-\u0487\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u05D0-\u05EA\u05F0-\u05F2\u0610-\u061A\u0620-\u0669\u066E-\u06D3\u06D5-\u06DC\u06DF-\u06E8\u06EA-\u06FC\u06FF\u0710-\u074A\u074D-\u07B1\u07C0-\u07F5\u07FA\u0800-\u082D\u0840-\u085B\u08A0-\u08B4\u08E3-\u0963\u0966-\u096F\u0971-\u0983\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BC-\u09C4\u09C7\u09C8\u09CB-\u09CE\u09D7\u09DC\u09DD\u09DF-\u09E3\u09E6-\u09F1\u0A01-\u0A03\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A59-\u0A5C\u0A5E\u0A66-\u0A75\u0A81-\u0A83\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABC-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AD0\u0AE0-\u0AE3\u0AE6-\u0AEF\u0AF9\u0B01-\u0B03\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3C-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B5C\u0B5D\u0B5F-\u0B63\u0B66-\u0B6F\u0B71\u0B82\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD0\u0BD7\u0BE6-\u0BEF\u0C00-\u0C03\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C58-\u0C5A\u0C60-\u0C63\u0C66-\u0C6F\u0C81-\u0C83\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBC-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CDE\u0CE0-\u0CE3\u0CE6-\u0CEF\u0CF1\u0CF2\u0D01-\u0D03\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D-\u0D44\u0D46-\u0D48\u0D4A-\u0D4E\u0D57\u0D5F-\u0D63\u0D66-\u0D6F\u0D7A-\u0D7F\u0D82\u0D83\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DE6-\u0DEF\u0DF2\u0DF3\u0E01-\u0E3A\u0E40-\u0E4E\u0E50-\u0E59\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB9\u0EBB-\u0EBD\u0EC0-\u0EC4\u0EC6\u0EC8-\u0ECD\u0ED0-\u0ED9\u0EDC-\u0EDF\u0F00\u0F18\u0F19\u0F20-\u0F29\u0F35\u0F37\u0F39\u0F3E-\u0F47\u0F49-\u0F6C\u0F71-\u0F84\u0F86-\u0F97\u0F99-\u0FBC\u0FC6\u1000-\u1049\u1050-\u109D\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u135D-\u135F\u1369-\u1371\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1714\u1720-\u1734\u1740-\u1753\u1760-\u176C\u176E-\u1770\u1772\u1773\u1780-\u17D3\u17D7\u17DC\u17DD\u17E0-\u17E9\u180B-\u180D\u1810-\u1819\u1820-\u1877\u1880-\u18AA\u18B0-\u18F5\u1900-\u191E\u1920-\u192B\u1930-\u193B\u1946-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u19D0-\u19DA\u1A00-\u1A1B\u1A20-\u1A5E\u1A60-\u1A7C\u1A7F-\u1A89\u1A90-\u1A99\u1AA7\u1AB0-\u1ABD\u1B00-\u1B4B\u1B50-\u1B59\u1B6B-\u1B73\u1B80-\u1BF3\u1C00-\u1C37\u1C40-\u1C49\u1C4D-\u1C7D\u1CD0-\u1CD2\u1CD4-\u1CF6\u1CF8\u1CF9\u1D00-\u1DF5\u1DFC-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u200C\u200D\u203F\u2040\u2054\u2071\u207F\u2090-\u209C\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2102\u2107\u210A-\u2113\u2115\u2118-\u211D\u2124\u2126\u2128\u212A-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D7F-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2DE0-\u2DFF\u3005-\u3007\u3021-\u302F\u3031-\u3035\u3038-\u303C\u3041-\u3096\u3099-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FD5\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA62B\uA640-\uA66F\uA674-\uA67D\uA67F-\uA6F1\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AD\uA7B0-\uA7B7\uA7F7-\uA827\uA840-\uA873\uA880-\uA8C4\uA8D0-\uA8D9\uA8E0-\uA8F7\uA8FB\uA8FD\uA900-\uA92D\uA930-\uA953\uA960-\uA97C\uA980-\uA9C0\uA9CF-\uA9D9\uA9E0-\uA9FE\uAA00-\uAA36\uAA40-\uAA4D\uAA50-\uAA59\uAA60-\uAA76\uAA7A-\uAAC2\uAADB-\uAADD\uAAE0-\uAAEF\uAAF2-\uAAF6\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABEA\uABEC\uABED\uABF0-\uABF9\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE00-\uFE0F\uFE20-\uFE2F\uFE33\uFE34\uFE4D-\uFE4F\uFE70-\uFE74\uFE76-\uFEFC\uFF10-\uFF19\uFF21-\uFF3A\uFF3F\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDDFD\uDE80-\uDE9C\uDEA0-\uDED0\uDEE0\uDF00-\uDF1F\uDF30-\uDF4A\uDF50-\uDF7A\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCA0-\uDCA9\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00-\uDE03\uDE05\uDE06\uDE0C-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE38-\uDE3A\uDE3F\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE6\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2]|\uD804[\uDC00-\uDC46\uDC66-\uDC6F\uDC7F-\uDCBA\uDCD0-\uDCE8\uDCF0-\uDCF9\uDD00-\uDD34\uDD36-\uDD3F\uDD50-\uDD73\uDD76\uDD80-\uDDC4\uDDCA-\uDDCC\uDDD0-\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE37\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEEA\uDEF0-\uDEF9\uDF00-\uDF03\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3C-\uDF44\uDF47\uDF48\uDF4B-\uDF4D\uDF50\uDF57\uDF5D-\uDF63\uDF66-\uDF6C\uDF70-\uDF74]|\uD805[\uDC80-\uDCC5\uDCC7\uDCD0-\uDCD9\uDD80-\uDDB5\uDDB8-\uDDC0\uDDD8-\uDDDD\uDE00-\uDE40\uDE44\uDE50-\uDE59\uDE80-\uDEB7\uDEC0-\uDEC9\uDF00-\uDF19\uDF1D-\uDF2B\uDF30-\uDF39]|\uD806[\uDCA0-\uDCE9\uDCFF\uDEC0-\uDEF8]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDE60-\uDE69\uDED0-\uDEED\uDEF0-\uDEF4\uDF00-\uDF36\uDF40-\uDF43\uDF50-\uDF59\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50-\uDF7E\uDF8F-\uDF9F]|\uD82C[\uDC00\uDC01]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99\uDC9D\uDC9E]|\uD834[\uDD65-\uDD69\uDD6D-\uDD72\uDD7B-\uDD82\uDD85-\uDD8B\uDDAA-\uDDAD\uDE42-\uDE44]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB\uDFCE-\uDFFF]|\uD836[\uDE00-\uDE36\uDE3B-\uDE6C\uDE75\uDE84\uDE9B-\uDE9F\uDEA1-\uDEAF]|\uD83A[\uDC00-\uDCC4\uDCD0-\uDCD6]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1]|\uD87E[\uDC00-\uDE1D]|\uDB40[\uDD00-\uDDEF]$/,t.idContinueBool=[!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!0,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!1,!1,!1,!1,!1,!1,!1,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!1,!1,!1,!1,!0,!1,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!1,!1,!1,!1,!1]},5733:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){function e(e,t){for(var n=0;n1&&void 0!==arguments[1]?arguments[1]:new c.default,n=new l,r=(0,a.reduce)(f(t),e);return r.emit(n),{source:n.result,locations:n.locations}};var o,a=n(4041),s=n(7898),u=n(8266),c=(o=u)&&o.__esModule?o:{default:o};var l=function(e){function t(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t);var e=function(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!==typeof t&&"function"!==typeof t?e:t}(this,(t.__proto__||Object.getPrototypeOf(t)).call(this));return e.line=1,e.column=0,e.startingNodes=[],e.finishingStatements=[],e.lastNumberNode=null,e.locations=new WeakMap,e}return function(e,t){if("function"!==typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,e),r(t,[{key:"putRaw",value:function(e){var n=this.result.length;i(t.prototype.__proto__||Object.getPrototypeOf(t.prototype),"putRaw",this).call(this,e),this.startNodes(e,n)}},{key:"put",value:function(e,n){if(this.optionalSemi&&"}"!==e){var r=!0,o=!1,a=void 0;try{for(var u,c=this.finishingStatements[Symbol.iterator]();!(r=(u=c.next()).done);r=!0){var l=u.value;++l.end.column,++l.end.offset}}catch(d){o=!0,a=d}finally{try{!r&&c.return&&c.return()}finally{if(o)throw a}}}if(this.finishingStatements=[],null!==this.lastNumber&&"."===e&&(0,s.needsDoubleDot)(this.lastNumber)){var p=this.locations.get(this.lastNumberNode).end;++p.column,++p.offset}this.lastNumberNode=null;var f=this.result.length;i(t.prototype.__proto__||Object.getPrototypeOf(t.prototype),"put",this).call(this,e,n),this.startNodes(e,f)}},{key:"startNodes",value:function(e,t){for(var n=/\r\n?|[\n\u2028\u2029]/g,r=!1,i=void 0,o=this.line,a=this.column;i=n.exec(e);)++this.line,this.column=e.length-i.index-i[0].length,r=!0;r||(this.column+=this.result.length-t,a=this.column-e.length);var s=!0,u=!1,c=void 0;try{for(var l,p=this.startingNodes[Symbol.iterator]();!(s=(l=p.next()).done);s=!0){var f=l.value;this.locations.set(f,{start:{line:o,column:a,offset:this.result.length-e.length},end:null})}}catch(d){u=!0,c=d}finally{try{!s&&p.return&&p.return()}finally{if(u)throw c}}this.startingNodes=[]}},{key:"startEmit",value:function(e){this.startingNodes.push(e)}},{key:"finishEmit",value:function(e){var t;this.locations.get(e).end={line:this.line,column:this.column,offset:this.result.length},t=e.type,/(Import)|(Export)|(Statement)|(Directive)|(SwitchCase)|(SwitchDefault)/.test(t)&&this.finishingStatements.push(this.locations.get(e))}}]),t}(s.TokenStream);function p(e,t){var n=e.emit.bind(e);return"Script"===t.type||"Module"===t.type?e.emit=function(e){for(var r=arguments.length,i=Array(r>1?r-1:0),o=1;o1?r-1:0),o=1;o1?r-1:0),o=1;o1?t-1:0),r=1;r1&&n.slice(1).forEach((function(n){t.addError(e(n))}))})),this}},{key:"enforceConflictingLexicallyDeclaredNames",value:function(e,t){var n=this;return this.lexicallyDeclaredNames.forEachEntry((function(r,i){e.has(i)&&r.forEach((function(e){n.addError(t(e))}))})),this}},{key:"observeFunctionDeclaration",value:function(){return this.observeVarBoundary(),u(this.functionDeclarationNames,this.boundNames),this.boundNames=new a.default,this}},{key:"functionDeclarationNamesAreLexical",value:function(){return u(this.lexicallyDeclaredNames,this.functionDeclarationNames),this.functionDeclarationNames=new a.default,this}},{key:"observeVarDeclaration",value:function(){return u(this.varDeclaredNames,this.boundNames),this.boundNames=new a.default,this}},{key:"recordForOfVars",value:function(){var e=this;return this.varDeclaredNames.forEach((function(t){e.forOfVarDeclaredNames.push(t)})),this}},{key:"observeVarBoundary",value:function(){return this.lexicallyDeclaredNames=new a.default,this.functionDeclarationNames=new a.default,this.varDeclaredNames=new a.default,this.forOfVarDeclaredNames=[],this}},{key:"exportName",value:function(e,t){return this.exportedNames.set(e,t),this}},{key:"exportDeclaredNames",value:function(){return u(this.exportedNames,this.lexicallyDeclaredNames,this.varDeclaredNames),u(this.exportedBindings,this.lexicallyDeclaredNames,this.varDeclaredNames),this}},{key:"exportBinding",value:function(e,t){return this.exportedBindings.set(e,t),this}},{key:"clearExportedBindings",value:function(){return this.exportedBindings=new a.default,this}},{key:"observeYieldExpression",value:function(e){return this.yieldExpressions.push(e),this}},{key:"clearYieldExpressions",value:function(){return this.yieldExpressions=[],this}},{key:"observeAwaitExpression",value:function(e){return this.awaitExpressions.push(e),this}},{key:"clearAwaitExpressions",value:function(){return this.awaitExpressions=[],this}},{key:"addError",value:function(e){return this.errors.push(e),this}},{key:"addStrictError",value:function(e){return this.strictErrors.push(e),this}},{key:"enforceStrictErrors",value:function(){return[].push.apply(this.errors,this.strictErrors),this.strictErrors=[],this}},{key:"concat",value:function(e){return this===c?e:(e===c||([].push.apply(this.errors,e.errors),[].push.apply(this.strictErrors,e.strictErrors),[].push.apply(this.usedLabelNames,e.usedLabelNames),[].push.apply(this.freeBreakStatements,e.freeBreakStatements),[].push.apply(this.freeContinueStatements,e.freeContinueStatements),[].push.apply(this.freeLabeledBreakStatements,e.freeLabeledBreakStatements),[].push.apply(this.freeLabeledContinueStatements,e.freeLabeledContinueStatements),[].push.apply(this.newTargetExpressions,e.newTargetExpressions),u(this.boundNames,e.boundNames),u(this.lexicallyDeclaredNames,e.lexicallyDeclaredNames),u(this.functionDeclarationNames,e.functionDeclarationNames),u(this.varDeclaredNames,e.varDeclaredNames),[].push.apply(this.forOfVarDeclaredNames,e.forOfVarDeclaredNames),u(this.exportedNames,e.exportedNames),u(this.exportedBindings,e.exportedBindings),[].push.apply(this.superCallExpressions,e.superCallExpressions),[].push.apply(this.superCallExpressionsInConstructorMethod,e.superCallExpressionsInConstructorMethod),[].push.apply(this.superPropertyExpressions,e.superPropertyExpressions),[].push.apply(this.yieldExpressions,e.yieldExpressions),[].push.apply(this.awaitExpressions,e.awaitExpressions)),this)}}],[{key:"empty",value:function(){return c}}]),e}();c=new l,Object.getOwnPropertyNames(l.prototype).forEach((function(e){"constructor"!==e&&Object.defineProperty(c,e,{value:function(){return l.prototype[e].apply(new l,arguments)},enumerable:!1,writable:!0,configurable:!0})}));t.EarlyError=function(e){function t(e,n){s(this,t);var r=function(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!==typeof t&&"function"!==typeof t?e:t}(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,n));return r.node=e,r.message=n,r}return function(e,t){if("function"!==typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,Error),t}()},3950:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.EarlyErrorChecker=void 0;var r,i=function(){function e(e,t){for(var n=0;n1&&n.slice(1).forEach((function(e){t=t.addError(new l.EarlyError(e,"Duplicate constructor method in class"))})),t}var v=function(e){return new l.EarlyError(e,c.ErrorMessages.ILLEGAL_SUPER_CALL)},g=function(e){return new l.EarlyError(e,"Member access on super must be in a method")},_=function(e){return new l.EarlyError(e,"Duplicate binding "+JSON.stringify(e.name))},E=function(e){return new l.EarlyError(e,"Continue statement must be nested within an iteration statement")},D=function(e){return new l.EarlyError(e,"Continue statement must be nested within an iteration statement with label "+JSON.stringify(e.label))},b=function(e){return new l.EarlyError(e,"Break statement must be nested within an iteration statement or a switch statement")},A=function(e){return new l.EarlyError(e,"Break statement must be nested within a statement with label "+JSON.stringify(e.label))};t.EarlyErrorChecker=function(e){function t(){return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),function(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!==typeof t&&"function"!==typeof t?e:t}(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,l.EarlyErrorState))}return function(e,t){if("function"!==typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,e),i(t,[{key:"reduceAssignmentExpression",value:function(){return o(t.prototype.__proto__||Object.getPrototypeOf(t.prototype),"reduceAssignmentExpression",this).apply(this,arguments).clearBoundNames()}},{key:"reduceAssignmentTargetIdentifier",value:function(e){var t=this.identity;return("eval"===e.name||"arguments"===e.name||(0,u.isStrictModeReservedWord)(e.name))&&(t=t.addStrictError(new l.EarlyError(e,"The identifier "+JSON.stringify(e.name)+" must not be in binding position in strict mode"))),t}},{key:"reduceArrowExpression",value:function(e,n){var r=n.params,i=n.body,a=null==e.params.rest&&e.params.items.every((function(e){return"BindingIdentifier"===e.type}));r=r.enforceDuplicateLexicallyDeclaredNames(_),"FunctionBody"===e.body.type&&(i=i.enforceConflictingLexicallyDeclaredNames(r.lexicallyDeclaredNames,_),f(e.body)&&(r=r.enforceStrictErrors(),i=i.enforceStrictErrors())),r.yieldExpressions.forEach((function(e){r=r.addError(new l.EarlyError(e,"Arrow parameters must not contain yield expressions"))})),r.awaitExpressions.forEach((function(e){r=r.addError(new l.EarlyError(e,"Arrow parameters must not contain await expressions"))}));var s=o(t.prototype.__proto__||Object.getPrototypeOf(t.prototype),"reduceArrowExpression",this).call(this,e,{params:r,body:i});return!a&&"FunctionBody"===e.body.type&&f(e.body)&&(s=s.addError(new l.EarlyError(e,'Functions with non-simple parameter lists may not contain a "use strict" directive'))),s=(s=(s=s.clearYieldExpressions()).clearAwaitExpressions()).observeVarBoundary()}},{key:"reduceAwaitExpression",value:function(e,t){return t.expression.observeAwaitExpression(e)}},{key:"reduceBindingIdentifier",value:function(e){var t=this.identity;return("eval"===e.name||"arguments"===e.name||(0,u.isStrictModeReservedWord)(e.name))&&(t=t.addStrictError(new l.EarlyError(e,"The identifier "+JSON.stringify(e.name)+" must not be in binding position in strict mode"))),t=t.bindName(e.name,e)}},{key:"reduceBlock",value:function(){var e=o(t.prototype.__proto__||Object.getPrototypeOf(t.prototype),"reduceBlock",this).apply(this,arguments);return e=(e=(e=(e=e.functionDeclarationNamesAreLexical()).enforceDuplicateLexicallyDeclaredNames(_)).enforceConflictingLexicallyDeclaredNames(e.varDeclaredNames,_)).observeLexicalBoundary()}},{key:"reduceBreakStatement",value:function(e){var n=o(t.prototype.__proto__||Object.getPrototypeOf(t.prototype),"reduceBreakStatement",this).apply(this,arguments);return n=null==e.label?n.addFreeBreakStatement(e):n.addFreeLabeledBreakStatement(e)}},{key:"reduceCallExpression",value:function(e){var n=o(t.prototype.__proto__||Object.getPrototypeOf(t.prototype),"reduceCallExpression",this).apply(this,arguments);return"Super"===e.callee.type&&(n=n.observeSuperCallExpression(e)),n}},{key:"reduceCatchClause",value:function(e,n){var r=n.binding,i=n.body;(r=(r=(r=r.observeLexicalDeclaration()).enforceDuplicateLexicallyDeclaredNames(_)).enforceConflictingLexicallyDeclaredNames(i.previousLexicallyDeclaredNames,_)).lexicallyDeclaredNames.forEachEntry((function(e,t){i.varDeclaredNames.has(t)&&i.varDeclaredNames.get(t).forEach((function(e){i.forOfVarDeclaredNames.indexOf(e)>=0&&(r=r.addError(_(e)))}))}));var a=o(t.prototype.__proto__||Object.getPrototypeOf(t.prototype),"reduceCatchClause",this).call(this,e,{binding:r,body:i});return a=a.observeLexicalBoundary()}},{key:"reduceClassDeclaration",value:function(e,t){var n=t.name,r=t.super,i=t.elements,o=n.enforceStrictErrors(),a=this.append.apply(this,p(i));return a=a.enforceStrictErrors(),null!=e.super&&(r=r.enforceStrictErrors(),o=this.append(o,r),a=a.clearSuperCallExpressionsInConstructorMethod()),o=(o=y(e,o=this.append(o,a))).observeLexicalDeclaration()}},{key:"reduceClassElement",value:function(e){var n=o(t.prototype.__proto__||Object.getPrototypeOf(t.prototype),"reduceClassElement",this).apply(this,arguments);return!e.isStatic&&m(e.method)&&(n=n.addError(new l.EarlyError(e,c.ErrorMessages.ILLEGAL_CONSTRUCTORS))),e.isStatic&&"StaticPropertyName"===e.method.name.type&&"prototype"===e.method.name.value&&(n=n.addError(new l.EarlyError(e,'Static class methods cannot be named "prototype"'))),n}},{key:"reduceClassExpression",value:function(e,t){var n=t.name,r=t.super,i=t.elements,o=null==e.name?this.identity:n.enforceStrictErrors(),a=this.append.apply(this,p(i));return a=a.enforceStrictErrors(),null!=e.super&&(r=r.enforceStrictErrors(),o=this.append(o,r),a=a.clearSuperCallExpressionsInConstructorMethod()),o=(o=y(e,o=this.append(o,a))).clearBoundNames()}},{key:"reduceCompoundAssignmentExpression",value:function(){return o(t.prototype.__proto__||Object.getPrototypeOf(t.prototype),"reduceCompoundAssignmentExpression",this).apply(this,arguments).clearBoundNames()}},{key:"reduceComputedMemberExpression",value:function(e){var n=o(t.prototype.__proto__||Object.getPrototypeOf(t.prototype),"reduceComputedMemberExpression",this).apply(this,arguments);return"Super"===e.object.type&&(n=n.observeSuperPropertyExpression(e)),n}},{key:"reduceContinueStatement",value:function(e){var n=o(t.prototype.__proto__||Object.getPrototypeOf(t.prototype),"reduceContinueStatement",this).apply(this,arguments);return n=null==e.label?n.addFreeContinueStatement(e):n.addFreeLabeledContinueStatement(e)}},{key:"reduceDoWhileStatement",value:function(e){var n=o(t.prototype.__proto__||Object.getPrototypeOf(t.prototype),"reduceDoWhileStatement",this).apply(this,arguments);return d(e.body)&&(n=n.addError(new l.EarlyError(e.body,"The body of a do-while statement must not be a labeled function declaration"))),n=(n=n.clearFreeContinueStatements()).clearFreeBreakStatements()}},{key:"reduceExport",value:function(){var e=o(t.prototype.__proto__||Object.getPrototypeOf(t.prototype),"reduceExport",this).apply(this,arguments);return e=(e=e.functionDeclarationNamesAreLexical()).exportDeclaredNames()}},{key:"reduceExportFrom",value:function(){var e=o(t.prototype.__proto__||Object.getPrototypeOf(t.prototype),"reduceExportFrom",this).apply(this,arguments);return e=e.clearExportedBindings()}},{key:"reduceExportFromSpecifier",value:function(e){var n=o(t.prototype.__proto__||Object.getPrototypeOf(t.prototype),"reduceExportFromSpecifier",this).apply(this,arguments);return n=(n=n.exportName(e.exportedName||e.name,e)).exportBinding(e.name,e)}},{key:"reduceExportLocalSpecifier",value:function(e){var n=o(t.prototype.__proto__||Object.getPrototypeOf(t.prototype),"reduceExportLocalSpecifier",this).apply(this,arguments);return n=(n=n.exportName(e.exportedName||e.name.name,e)).exportBinding(e.name.name,e)}},{key:"reduceExportDefault",value:function(e){var n=o(t.prototype.__proto__||Object.getPrototypeOf(t.prototype),"reduceExportDefault",this).apply(this,arguments);return n=(n=n.functionDeclarationNamesAreLexical()).exportName("default",e)}},{key:"reduceFormalParameters",value:function(){var e=o(t.prototype.__proto__||Object.getPrototypeOf(t.prototype),"reduceFormalParameters",this).apply(this,arguments);return e=e.observeLexicalDeclaration()}},{key:"reduceForStatement",value:function(e,n){var r=n.init,i=n.test,a=n.update,s=n.body;null!=r&&(r=(r=r.enforceDuplicateLexicallyDeclaredNames(_)).enforceConflictingLexicallyDeclaredNames(s.varDeclaredNames,_));var u=o(t.prototype.__proto__||Object.getPrototypeOf(t.prototype),"reduceForStatement",this).call(this,e,{init:r,test:i,update:a,body:s});return null!=e.init&&"VariableDeclaration"===e.init.type&&"const"===e.init.kind&&e.init.declarators.forEach((function(e){null==e.init&&(u=u.addError(new l.EarlyError(e,"Constant lexical declarations must have an initialiser")))})),d(e.body)&&(u=u.addError(new l.EarlyError(e.body,"The body of a for statement must not be a labeled function declaration"))),u=(u=(u=u.clearFreeContinueStatements()).clearFreeBreakStatements()).observeLexicalBoundary()}},{key:"reduceForInStatement",value:function(e,n){var r=n.left,i=n.right,a=n.body;r=(r=r.enforceDuplicateLexicallyDeclaredNames(_)).enforceConflictingLexicallyDeclaredNames(a.varDeclaredNames,_);var s=o(t.prototype.__proto__||Object.getPrototypeOf(t.prototype),"reduceForInStatement",this).call(this,e,{left:r,right:i,body:a});return d(e.body)&&(s=s.addError(new l.EarlyError(e.body,"The body of a for-in statement must not be a labeled function declaration"))),s=(s=(s=s.clearFreeContinueStatements()).clearFreeBreakStatements()).observeLexicalBoundary()}},{key:"reduceForOfStatement",value:function(e,n){var r=n.left,i=n.right,a=n.body;r=(r=(r=r.recordForOfVars()).enforceDuplicateLexicallyDeclaredNames(_)).enforceConflictingLexicallyDeclaredNames(a.varDeclaredNames,_);var s=o(t.prototype.__proto__||Object.getPrototypeOf(t.prototype),"reduceForOfStatement",this).call(this,e,{left:r,right:i,body:a});return d(e.body)&&(s=s.addError(new l.EarlyError(e.body,"The body of a for-of statement must not be a labeled function declaration"))),s=(s=(s=s.clearFreeContinueStatements()).clearFreeBreakStatements()).observeLexicalBoundary()}},{key:"reduceForAwaitStatement",value:function(e,n){var r=n.left,i=n.right,a=n.body;r=(r=(r=r.recordForOfVars()).enforceDuplicateLexicallyDeclaredNames(_)).enforceConflictingLexicallyDeclaredNames(a.varDeclaredNames,_);var s=o(t.prototype.__proto__||Object.getPrototypeOf(t.prototype),"reduceForOfStatement",this).call(this,e,{left:r,right:i,body:a});return d(e.body)&&(s=s.addError(new l.EarlyError(e.body,"The body of a for-await statement must not be a labeled function declaration"))),s=(s=(s=s.clearFreeContinueStatements()).clearFreeBreakStatements()).observeLexicalBoundary()}},{key:"reduceFunctionBody",value:function(e){var n=o(t.prototype.__proto__||Object.getPrototypeOf(t.prototype),"reduceFunctionBody",this).apply(this,arguments);return n=(n=(n=(n=(n=(n=(n=(n=(n=n.enforceDuplicateLexicallyDeclaredNames(_)).enforceConflictingLexicallyDeclaredNames(n.varDeclaredNames,_)).enforceFreeContinueStatementErrors(E)).enforceFreeLabeledContinueStatementErrors(D)).enforceFreeBreakStatementErrors(b)).enforceFreeLabeledBreakStatementErrors(A)).clearUsedLabelNames()).clearYieldExpressions()).clearAwaitExpressions(),f(e)&&(n=n.enforceStrictErrors()),n}},{key:"reduceFunctionDeclaration",value:function(e,n){var r=n.name,i=n.params,a=n.body,s=null==e.params.rest&&e.params.items.every((function(e){return"BindingIdentifier"===e.type})),u=!s||e.isGenerator?"addError":"addStrictError";i.lexicallyDeclaredNames.forEachEntry((function(e){e.length>1&&e.slice(1).forEach((function(e){i=i[u](_(e))}))})),a=(a=(a=a.enforceConflictingLexicallyDeclaredNames(i.lexicallyDeclaredNames,_)).enforceSuperCallExpressions(v)).enforceSuperPropertyExpressions(g),i=(i=i.enforceSuperCallExpressions(v)).enforceSuperPropertyExpressions(g),e.isGenerator&&i.yieldExpressions.forEach((function(e){i=i.addError(new l.EarlyError(e,"Generator parameters must not contain yield expressions"))})),e.isAsync&&i.awaitExpressions.forEach((function(e){i=i.addError(new l.EarlyError(e,"Async function parameters must not contain await expressions"))})),i=i.clearNewTargetExpressions(),a=a.clearNewTargetExpressions(),f(e.body)&&(i=i.enforceStrictErrors(),a=a.enforceStrictErrors());var c=o(t.prototype.__proto__||Object.getPrototypeOf(t.prototype),"reduceFunctionDeclaration",this).call(this,e,{name:r,params:i,body:a});return!s&&f(e.body)&&(c=c.addError(new l.EarlyError(e,'Functions with non-simple parameter lists may not contain a "use strict" directive'))),c=(c=(c=c.clearYieldExpressions()).clearAwaitExpressions()).observeFunctionDeclaration()}},{key:"reduceFunctionExpression",value:function(e,n){var r=n.name,i=n.params,a=n.body,s=null==e.params.rest&&e.params.items.every((function(e){return"BindingIdentifier"===e.type})),u=!s||e.isGenerator?"addError":"addStrictError";i.lexicallyDeclaredNames.forEachEntry((function(e,t){e.length>1&&e.slice(1).forEach((function(e){i=i[u](new l.EarlyError(e,"Duplicate binding "+JSON.stringify(t)))}))})),a=(a=(a=a.enforceConflictingLexicallyDeclaredNames(i.lexicallyDeclaredNames,_)).enforceSuperCallExpressions(v)).enforceSuperPropertyExpressions(g),i=(i=i.enforceSuperCallExpressions(v)).enforceSuperPropertyExpressions(g),e.isGenerator&&i.yieldExpressions.forEach((function(e){i=i.addError(new l.EarlyError(e,"Generator parameters must not contain yield expressions"))})),e.isAsync&&i.awaitExpressions.forEach((function(e){i=i.addError(new l.EarlyError(e,"Async function parameters must not contain await expressions"))})),i=i.clearNewTargetExpressions(),a=a.clearNewTargetExpressions(),f(e.body)&&(i=i.enforceStrictErrors(),a=a.enforceStrictErrors());var c=o(t.prototype.__proto__||Object.getPrototypeOf(t.prototype),"reduceFunctionExpression",this).call(this,e,{name:r,params:i,body:a});return!s&&f(e.body)&&(c=c.addError(new l.EarlyError(e,'Functions with non-simple parameter lists may not contain a "use strict" directive'))),c=(c=(c=(c=c.clearBoundNames()).clearYieldExpressions()).clearAwaitExpressions()).observeVarBoundary()}},{key:"reduceGetter",value:function(e,n){var r=n.name,i=n.body;i=(i=(i=i.enforceSuperCallExpressions(v)).clearSuperPropertyExpressions()).clearNewTargetExpressions(),f(e.body)&&(i=i.enforceStrictErrors());var a=o(t.prototype.__proto__||Object.getPrototypeOf(t.prototype),"reduceGetter",this).call(this,e,{name:r,body:i});return a=a.observeVarBoundary()}},{key:"reduceIdentifierExpression",value:function(e){var t=this.identity;return(0,u.isStrictModeReservedWord)(e.name)&&(t=t.addStrictError(new l.EarlyError(e,"The identifier "+JSON.stringify(e.name)+" must not be in expression position in strict mode"))),t}},{key:"reduceIfStatement",value:function(e,n){var r=n.test,i=n.consequent,a=n.alternate;return d(e.consequent)&&(i=i.addError(new l.EarlyError(e.consequent,"The consequent of an if statement must not be a labeled function declaration"))),null!=e.alternate&&d(e.alternate)&&(a=a.addError(new l.EarlyError(e.alternate,"The alternate of an if statement must not be a labeled function declaration"))),"FunctionDeclaration"===e.consequent.type&&(i=(i=i.addStrictError(new l.EarlyError(e.consequent,"FunctionDeclarations in IfStatements are disallowed in strict mode"))).observeLexicalBoundary()),null!=e.alternate&&"FunctionDeclaration"===e.alternate.type&&(a=(a=a.addStrictError(new l.EarlyError(e.alternate,"FunctionDeclarations in IfStatements are disallowed in strict mode"))).observeLexicalBoundary()),o(t.prototype.__proto__||Object.getPrototypeOf(t.prototype),"reduceIfStatement",this).call(this,e,{test:r,consequent:i,alternate:a})}},{key:"reduceImport",value:function(){var e=o(t.prototype.__proto__||Object.getPrototypeOf(t.prototype),"reduceImport",this).apply(this,arguments);return e=e.observeLexicalDeclaration()}},{key:"reduceImportNamespace",value:function(){var e=o(t.prototype.__proto__||Object.getPrototypeOf(t.prototype),"reduceImportNamespace",this).apply(this,arguments);return e=e.observeLexicalDeclaration()}},{key:"reduceLabeledStatement",value:function(e){var n=o(t.prototype.__proto__||Object.getPrototypeOf(t.prototype),"reduceLabeledStatement",this).apply(this,arguments);return("yield"===e.label||(0,u.isStrictModeReservedWord)(e.label))&&(n=n.addStrictError(new l.EarlyError(e,"The identifier "+JSON.stringify(e.label)+" must not be in label position in strict mode"))),n.usedLabelNames.indexOf(e.label)>=0&&(n=n.addError(new l.EarlyError(e,"Label "+JSON.stringify(e.label)+" has already been declared"))),"FunctionDeclaration"===e.body.type&&(n=n.addStrictError(new l.EarlyError(e,"Labeled FunctionDeclarations are disallowed in strict mode"))),n=h(e.body)?n.observeIterationLabel(e.label):n.observeNonIterationLabel(e.label)}},{key:"reduceLiteralRegExpExpression",value:function(){return this.identity}},{key:"reduceMethod",value:function(e,n){var r=n.name,i=n.params,a=n.body,s=null==e.params.rest&&e.params.items.every((function(e){return"BindingIdentifier"===e.type}));i=i.enforceDuplicateLexicallyDeclaredNames(_),a=a.enforceConflictingLexicallyDeclaredNames(i.lexicallyDeclaredNames,_),"StaticPropertyName"===e.name.type&&"constructor"===e.name.value?(a=a.observeConstructorMethod(),i=i.observeConstructorMethod()):(a=a.enforceSuperCallExpressions(v),i=i.enforceSuperCallExpressions(v)),e.isGenerator&&i.yieldExpressions.forEach((function(e){i=i.addError(new l.EarlyError(e,"Generator parameters must not contain yield expressions"))})),e.isAsync&&i.awaitExpressions.forEach((function(e){i=i.addError(new l.EarlyError(e,"Async function parameters must not contain await expressions"))})),a=a.clearSuperPropertyExpressions(),i=(i=i.clearSuperPropertyExpressions()).clearNewTargetExpressions(),a=a.clearNewTargetExpressions(),f(e.body)&&(i=i.enforceStrictErrors(),a=a.enforceStrictErrors());var u=o(t.prototype.__proto__||Object.getPrototypeOf(t.prototype),"reduceMethod",this).call(this,e,{name:r,params:i,body:a});return!s&&f(e.body)&&(u=u.addError(new l.EarlyError(e,'Functions with non-simple parameter lists may not contain a "use strict" directive'))),u=(u=(u=u.clearYieldExpressions()).clearAwaitExpressions()).observeVarBoundary()}},{key:"reduceModule",value:function(){var e=o(t.prototype.__proto__||Object.getPrototypeOf(t.prototype),"reduceModule",this).apply(this,arguments);return(e=(e=(e=e.functionDeclarationNamesAreLexical()).enforceDuplicateLexicallyDeclaredNames(_)).enforceConflictingLexicallyDeclaredNames(e.varDeclaredNames,_)).exportedNames.forEachEntry((function(t,n){t.length>1&&t.slice(1).forEach((function(t){e=e.addError(new l.EarlyError(t,"Duplicate export "+JSON.stringify(n)))}))})),e.exportedBindings.forEachEntry((function(t,n){e.lexicallyDeclaredNames.has(n)||e.varDeclaredNames.has(n)||t.forEach((function(t){e=e.addError(new l.EarlyError(t,"Exported binding "+JSON.stringify(n)+" is not declared"))}))})),e.newTargetExpressions.forEach((function(t){e=e.addError(new l.EarlyError(t,"new.target must be within function (but not arrow expression) code"))})),e=(e=(e=(e=(e=(e=(e=e.enforceFreeContinueStatementErrors(E)).enforceFreeLabeledContinueStatementErrors(D)).enforceFreeBreakStatementErrors(b)).enforceFreeLabeledBreakStatementErrors(A)).enforceSuperCallExpressions(v)).enforceSuperPropertyExpressions(g)).enforceStrictErrors()}},{key:"reduceNewTargetExpression",value:function(e){return this.identity.observeNewTargetExpression(e)}},{key:"reduceObjectExpression",value:function(e){var n=o(t.prototype.__proto__||Object.getPrototypeOf(t.prototype),"reduceObjectExpression",this).apply(this,arguments);n=n.enforceSuperCallExpressionsInConstructorMethod(v);var r=e.properties.filter((function(e){return"DataProperty"===e.type&&"StaticPropertyName"===e.name.type&&"__proto__"===e.name.value}));return r.slice(1).forEach((function(e){n=n.addError(new l.EarlyError(e,"Duplicate __proto__ property in object literal not allowed"))})),n}},{key:"reduceUpdateExpression",value:function(){var e=o(t.prototype.__proto__||Object.getPrototypeOf(t.prototype),"reduceUpdateExpression",this).apply(this,arguments);return e=e.clearBoundNames()}},{key:"reduceUnaryExpression",value:function(e){var n=o(t.prototype.__proto__||Object.getPrototypeOf(t.prototype),"reduceUnaryExpression",this).apply(this,arguments);return"delete"===e.operator&&"IdentifierExpression"===e.operand.type&&(n=n.addStrictError(new l.EarlyError(e,"Identifier expressions must not be deleted in strict mode"))),n}},{key:"reduceScript",value:function(e){var n=o(t.prototype.__proto__||Object.getPrototypeOf(t.prototype),"reduceScript",this).apply(this,arguments);return(n=(n=n.enforceDuplicateLexicallyDeclaredNames(_)).enforceConflictingLexicallyDeclaredNames(n.varDeclaredNames,_)).newTargetExpressions.forEach((function(e){n=n.addError(new l.EarlyError(e,"new.target must be within function (but not arrow expression) code"))})),n=(n=(n=(n=(n=(n=n.enforceFreeContinueStatementErrors(E)).enforceFreeLabeledContinueStatementErrors(D)).enforceFreeBreakStatementErrors(b)).enforceFreeLabeledBreakStatementErrors(A)).enforceSuperCallExpressions(v)).enforceSuperPropertyExpressions(g),f(e)&&(n=n.enforceStrictErrors()),n}},{key:"reduceSetter",value:function(e,n){var r=n.name,i=n.param,a=n.body,s="BindingIdentifier"===e.param.type;i=(i=i.observeLexicalDeclaration()).enforceDuplicateLexicallyDeclaredNames(_),a=a.enforceConflictingLexicallyDeclaredNames(i.lexicallyDeclaredNames,_),i=i.enforceSuperCallExpressions(v),a=a.enforceSuperCallExpressions(v),i=i.clearSuperPropertyExpressions(),a=a.clearSuperPropertyExpressions(),i=i.clearNewTargetExpressions(),a=a.clearNewTargetExpressions(),f(e.body)&&(i=i.enforceStrictErrors(),a=a.enforceStrictErrors());var u=o(t.prototype.__proto__||Object.getPrototypeOf(t.prototype),"reduceSetter",this).call(this,e,{name:r,param:i,body:a});return!s&&f(e.body)&&(u=u.addError(new l.EarlyError(e,'Functions with non-simple parameter lists may not contain a "use strict" directive'))),u=u.observeVarBoundary()}},{key:"reduceStaticMemberExpression",value:function(e){var n=o(t.prototype.__proto__||Object.getPrototypeOf(t.prototype),"reduceStaticMemberExpression",this).apply(this,arguments);return"Super"===e.object.type&&(n=n.observeSuperPropertyExpression(e)),n}},{key:"reduceSwitchStatement",value:function(e,t){var n=t.discriminant,r=t.cases,i=this.append.apply(this,p(r));i=(i=(i=(i=i.functionDeclarationNamesAreLexical()).enforceDuplicateLexicallyDeclaredNames(_)).enforceConflictingLexicallyDeclaredNames(i.varDeclaredNames,_)).observeLexicalBoundary();var o=this.append(n,i);return o=o.clearFreeBreakStatements()}},{key:"reduceSwitchStatementWithDefault",value:function(e,t){var n=t.discriminant,r=t.preDefaultCases,i=t.defaultCase,o=t.postDefaultCases,a=this.append.apply(this,[i].concat(p(r),p(o)));a=(a=(a=(a=a.functionDeclarationNamesAreLexical()).enforceDuplicateLexicallyDeclaredNames(_)).enforceConflictingLexicallyDeclaredNames(a.varDeclaredNames,_)).observeLexicalBoundary();var s=this.append(n,a);return s=s.clearFreeBreakStatements()}},{key:"reduceVariableDeclaration",value:function(e){var n=o(t.prototype.__proto__||Object.getPrototypeOf(t.prototype),"reduceVariableDeclaration",this).apply(this,arguments);switch(e.kind){case"const":case"let":(n=n.observeLexicalDeclaration()).lexicallyDeclaredNames.has("let")&&n.lexicallyDeclaredNames.get("let").forEach((function(e){n=n.addError(new l.EarlyError(e,'Lexical declarations must not have a binding named "let"'))}));break;case"var":n=n.observeVarDeclaration()}return n}},{key:"reduceVariableDeclarationStatement",value:function(e){var n=o(t.prototype.__proto__||Object.getPrototypeOf(t.prototype),"reduceVariableDeclarationStatement",this).apply(this,arguments);return"const"===e.declaration.kind&&e.declaration.declarators.forEach((function(e){null==e.init&&(n=n.addError(new l.EarlyError(e,"Constant lexical declarations must have an initialiser")))})),n}},{key:"reduceWhileStatement",value:function(e){var n=o(t.prototype.__proto__||Object.getPrototypeOf(t.prototype),"reduceWhileStatement",this).apply(this,arguments);return d(e.body)&&(n=n.addError(new l.EarlyError(e.body,"The body of a while statement must not be a labeled function declaration"))),n=n.clearFreeContinueStatements().clearFreeBreakStatements()}},{key:"reduceWithStatement",value:function(e){var n=o(t.prototype.__proto__||Object.getPrototypeOf(t.prototype),"reduceWithStatement",this).apply(this,arguments);return d(e.body)&&(n=n.addError(new l.EarlyError(e.body,"The body of a with statement must not be a labeled function declaration"))),n=n.addStrictError(new l.EarlyError(e,"Strict mode code must not include a with statement"))}},{key:"reduceYieldExpression",value:function(e){var n=o(t.prototype.__proto__||Object.getPrototypeOf(t.prototype),"reduceYieldExpression",this).apply(this,arguments);return n=n.observeYieldExpression(e)}},{key:"reduceYieldGeneratorExpression",value:function(e){var n=o(t.prototype.__proto__||Object.getPrototypeOf(t.prototype),"reduceYieldGeneratorExpression",this).apply(this,arguments);return n=n.observeYieldExpression(e)}}],[{key:"check",value:function(e){return(0,s.default)(new t,e).errors}}]),t}(a.MonoidalReducer)},3229:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0});t.ErrorMessages={UNEXPECTED_TOKEN:function(e){return"Unexpected token "+JSON.stringify(e)},UNEXPECTED_ILLEGAL_TOKEN:function(e){return"Unexpected "+JSON.stringify(e)},UNEXPECTED_ESCAPED_KEYWORD:"Unexpected escaped keyword",UNEXPECTED_NUMBER:"Unexpected number",UNEXPECTED_STRING:"Unexpected string",UNEXPECTED_IDENTIFIER:"Unexpected identifier",UNEXPECTED_RESERVED_WORD:"Unexpected reserved word",UNEXPECTED_TEMPLATE:"Unexpected template",UNEXPECTED_EOS:"Unexpected end of input",UNEXPECTED_LINE_TERMINATOR:"Unexpected line terminator",UNEXPECTED_COMMA_AFTER_REST:"Unexpected comma after rest",UNEXPECTED_REST_PARAMETERS_INITIALIZATION:"Rest parameter may not have a default initializer",NEWLINE_AFTER_THROW:"Illegal newline after throw",UNTERMINATED_REGEXP:"Invalid regular expression: missing /",INVALID_LAST_REST_PARAMETER:"Rest parameter must be last formal parameter",INVALID_REST_PARAMETERS_INITIALIZATION:"Rest parameter may not have a default initializer",INVALID_REGEXP_FLAGS:"Invalid regular expression flags",INVALID_REGEX:"Invalid regular expression",INVALID_LHS_IN_ASSIGNMENT:"Invalid left-hand side in assignment",INVALID_LHS_IN_BINDING:"Invalid left-hand side in binding",INVALID_LHS_IN_FOR_IN:"Invalid left-hand side in for-in",INVALID_LHS_IN_FOR_OF:"Invalid left-hand side in for-of",INVALID_LHS_IN_FOR_AWAIT:"Invalid left-hand side in for-await",INVALID_UPDATE_OPERAND:"Increment/decrement target must be an identifier or member expression",INVALID_EXPONENTIATION_LHS:"Unary expressions as the left operand of an exponentation expression must be disambiguated with parentheses",MULTIPLE_DEFAULTS_IN_SWITCH:"More than one default clause in switch statement",NO_CATCH_OR_FINALLY:"Missing catch or finally after try",ILLEGAL_RETURN:"Illegal return statement",ILLEGAL_ARROW_FUNCTION_PARAMS:"Illegal arrow function parameter list",INVALID_ASYNC_PARAMS:"Async function parameters must not contain await expressions",INVALID_VAR_INIT_FOR_IN:"Invalid variable declaration in for-in statement",INVALID_VAR_INIT_FOR_OF:"Invalid variable declaration in for-of statement",INVALID_VAR_INIT_FOR_AWAIT:"Invalid variable declaration in for-await statement",UNINITIALIZED_BINDINGPATTERN_IN_FOR_INIT:"Binding pattern appears without initializer in for statement init",ILLEGAL_PROPERTY:"Illegal property initializer",INVALID_ID_BINDING_STRICT_MODE:function(e){return"The identifier "+JSON.stringify(e)+" must not be in binding position in strict mode"},INVALID_ID_IN_LABEL_STRICT_MODE:function(e){return"The identifier "+JSON.stringify(e)+" must not be in label position in strict mode"},INVALID_ID_IN_EXPRESSION_STRICT_MODE:function(e){return"The identifier "+JSON.stringify(e)+" must not be in expression position in strict mode"},INVALID_CALL_TO_SUPER:'Calls to super must be in the "constructor" method of a class expression or class declaration that has a superclass',INVALID_DELETE_STRICT_MODE:"Identifier expressions must not be deleted in strict mode",DUPLICATE_BINDING:function(e){return"Duplicate binding "+JSON.stringify(e)},ILLEGAL_ID_IN_LEXICAL_DECLARATION:function(e){return"Lexical declarations must not have a binding named "+JSON.stringify(e)},UNITIALIZED_CONST:"Constant lexical declarations must have an initialiser",ILLEGAL_LABEL_IN_BODY:function(e){return"The body of a "+e+" statement must not be a labeled function declaration"},ILLEGEAL_LABEL_IN_IF:"The consequent of an if statement must not be a labeled function declaration",ILLEGAL_LABEL_IN_ELSE:"The alternate of an if statement must not be a labeled function declaration",ILLEGAL_CONTINUE_WITHOUT_ITERATION_WITH_ID:function(e){return"Continue statement must be nested within an iteration statement with label "+JSON.stringify(e)},ILLEGAL_CONTINUE_WITHOUT_ITERATION:"Continue statement must be nested within an iteration statement",ILLEGAL_BREAK_WITHOUT_ITERATION_OR_SWITCH:"Break statement must be nested within an iteration statement or a switch statement",ILLEGAL_WITH_STRICT_MODE:"Strict mode code must not include a with statement",ILLEGAL_ACCESS_SUPER_MEMBER:"Member access on super must be in a method",ILLEGAL_SUPER_CALL:'Calls to super must be in the "constructor" method of a class expression or class declaration that has a superclass',DUPLICATE_LABEL_DECLARATION:function(e){return"Label "+JSON.stringify(e)+" has already been declared"},ILLEGAL_BREAK_WITHIN_LABEL:function(e){return"Break statement must be nested within a statement with label "+JSON.stringify(e)},ILLEGAL_YIELD_EXPRESSIONS:function(e){return e+" parameters must not contain yield expressions"},ILLEGAL_YIELD_IDENTIFIER:'"yield" may not be used as an identifier in this context',ILLEGAL_AWAIT_IDENTIFIER:'"await" may not be used as an identifier in this context',DUPLICATE_CONSTRUCTOR:"Duplicate constructor method in class",ILLEGAL_CONSTRUCTORS:"Constructors cannot be async, generators, getters or setters",ILLEGAL_STATIC_CLASS_NAME:'Static class methods cannot be named "prototype"',NEW_TARGET_ERROR:"new.target must be within function (but not arrow expression) code",DUPLICATE_EXPORT:function(e){return"Duplicate export "+JSON.stringify(e)},UNDECLARED_BINDING:function(e){return"Exported binding "+JSON.stringify(e)+" is not declared"},DUPLICATE_PROPTO_PROP:"Duplicate __proto__ property in object literal not allowed",ILLEGAL_LABEL_FUNC_DECLARATION:"Labeled FunctionDeclarations are disallowed in strict mode",ILLEGAL_FUNC_DECL_IF:"FunctionDeclarations in IfStatements are disallowed in strict mode",ILLEGAL_USE_STRICT:'Functions with non-simple parameter lists may not contain a "use strict" directive',ILLEGAL_EXPORTED_NAME:"Names of variables used in an export specifier from the current module must be identifiers",NO_OCTALS_IN_TEMPLATES:"Template literals may not contain octal escape sequences",NO_AWAIT_IN_ASYNC_PARAMS:'Async arrow parameters may not contain "await"'}},4394:function(e,t,n){"use strict";t.Mi=void 0;var r=function(){function e(e,t){for(var n=0;n1&&void 0!==arguments[1]?arguments[1]:{},r=n.earlyErrors,i=void 0===r||r,u=new a.GenericParser(t),c=u[e]();if(i){var l=s.EarlyErrorChecker.check(c);if(l.length>0)throw new o.JsError(0,1,0,l[0].message)}return c}}function p(e){return function(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=n.earlyErrors,i=void 0===r||r,a=new c(t),u=a[e]();if(i){var l=s.EarlyErrorChecker.check(u);if(l.length>0){var p=l[0],f=p.node,d=p.message,h=a.locations.get(f).start,m=h.offset,y=h.line,v=h.column;throw new o.JsError(m,y,v,d)}}return{tree:u,locations:a.locations,comments:a.comments}}}l("parseModule");var f=l("parseScript");p("parseModule"),t.Mi=p("parseScript");s.EarlyErrorChecker,a.GenericParser},3310:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.GenericParser=void 0;var r=function(){function e(e,t){for(var n=0;n":f,"<=":f,">=":f,in:f,instanceof:f,"<<":d,">>":d,">>>":d,"+":h,"-":h,"*":m,"%":m,"/":m};function v(e){if(null==e)return!1;switch(e.type){case"IdentifierExpression":case"ComputedMemberExpression":case"StaticMemberExpression":return!0}return!1}function g(e){return e.type===a.TokenType.INC||e.type===a.TokenType.DEC}t.GenericParser=function(e){function t(e){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t);var n=function(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!==typeof t&&"function"!==typeof t?e:t}(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e));return n.allowIn=!0,n.inFunctionBody=!1,n.inParameter=!1,n.allowYieldExpression=!1,n.allowAwaitExpression=!1,n.firstAwaitLocation=null,n.module=!1,n.moduleIsTheGoalSymbol=!1,n.strict=!1,n.isBindingElement=!0,n.isAssignmentTarget=!0,n.firstExprError=null,n}return function(e,t){if("function"!==typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,e),r(t,[{key:"match",value:function(e){return this.lookahead.type===e}},{key:"matchIdentifier",value:function(){switch(this.lookahead.type){case a.TokenType.IDENTIFIER:case a.TokenType.LET:case a.TokenType.YIELD:case a.TokenType.ASYNC:return!0;case a.TokenType.AWAIT:return!this.moduleIsTheGoalSymbol&&(null===this.firstAwaitLocation&&(this.firstAwaitLocation=this.getLocation()),!0);case a.TokenType.ESCAPED_KEYWORD:return"await"!==this.lookahead.value||this.moduleIsTheGoalSymbol?"let"===this.lookahead.value||"yield"===this.lookahead.value||"async"===this.lookahead.value:(null===this.firstAwaitLocation&&(this.firstAwaitLocation=this.getLocation()),!0)}return!1}},{key:"eat",value:function(e){return this.lookahead.type===e?this.lex():null}},{key:"expect",value:function(e){if(this.lookahead.type===e)return this.lex();throw this.createUnexpected(this.lookahead)}},{key:"matchContextualKeyword",value:function(e){return this.lookahead.type===a.TokenType.IDENTIFIER&&!this.lookahead.escaped&&this.lookahead.value===e}},{key:"expectContextualKeyword",value:function(e){if(this.lookahead.type===a.TokenType.IDENTIFIER&&!this.lookahead.escaped&&this.lookahead.value===e)return this.lex();throw this.createUnexpected(this.lookahead)}},{key:"eatContextualKeyword",value:function(e){return this.lookahead.type!==a.TokenType.IDENTIFIER||this.lookahead.escaped||this.lookahead.value!==e?null:this.lex()}},{key:"consumeSemicolon",value:function(){if(!this.eat(a.TokenType.SEMICOLON)&&!this.hasLineTerminatorBeforeNext&&!this.eof()&&!this.match(a.TokenType.RBRACE))throw this.createUnexpected(this.lookahead)}},{key:"startNode",value:function(e){return e}},{key:"copyNode",value:function(e,t){return t}},{key:"finishNode",value:function(e){return e}},{key:"parseModule",value:function(){this.moduleIsTheGoalSymbol=this.module=this.strict=!0,this.lookahead=this.advance();var e=this.startNode(),t=this.parseBody(),n=t.directives,r=t.statements;if(!this.match(a.TokenType.EOS))throw this.createUnexpected(this.lookahead);return this.finishNode(new u.Module({directives:n,items:r}),e)}},{key:"parseScript",value:function(){this.lookahead=this.advance();var e=this.startNode(),t=this.parseBody(),n=t.directives,r=t.statements;if(!this.match(a.TokenType.EOS))throw this.createUnexpected(this.lookahead);return this.finishNode(new u.Script({directives:n,statements:r}),e)}},{key:"parseFunctionBody",value:function(){var e=this.inFunctionBody,t=this.module,n=this.strict;this.inFunctionBody=!0,this.module=!1;var r=this.startNode();this.expect(a.TokenType.LBRACE);var i=new u.FunctionBody(this.parseBody());return this.expect(a.TokenType.RBRACE),i=this.finishNode(i,r),this.inFunctionBody=e,this.module=t,this.strict=n,i}},{key:"parseBody",value:function(){for(var e=[],t=[],n=!0,r=null;!this.eof()&&!this.match(a.TokenType.RBRACE);){var i=this.lookahead,o=i.slice.text,s=i.type===a.TokenType.STRING,c=this.module,l=this.getLocation(),p=this.startNode(),f=c?this.parseModuleItem():this.parseStatementListItem();if(n)if(s&&"ExpressionStatement"===f.type&&"LiteralStringExpression"===f.expression.type){!r&&i.octal&&(r=this.createErrorWithLocation(l,"Unexpected legacy octal escape sequence: \\"+i.octal));var d=o.slice(1,-1);"use strict"===d&&(this.strict=!0),e.push(this.finishNode(new u.Directive({rawValue:d}),p))}else{if(n=!1,r&&this.strict)throw r;t.push(f)}else t.push(f)}if(r&&this.strict)throw r;return{directives:e,statements:t}}},{key:"parseImportSpecifier",value:function(){var e=this.startNode(),t=void 0;if(this.matchIdentifier()){if(t=this.parseIdentifier(),!this.eatContextualKeyword("as"))return this.finishNode(new u.ImportSpecifier({name:null,binding:this.finishNode(new u.BindingIdentifier({name:t}),e)}),e)}else this.lookahead.type.klass.isIdentifierName&&(t=this.parseIdentifierName(),this.expectContextualKeyword("as"));return this.finishNode(new u.ImportSpecifier({name:t,binding:this.parseBindingIdentifier()}),e)}},{key:"parseNameSpaceBinding",value:function(){return this.expect(a.TokenType.MUL),this.expectContextualKeyword("as"),this.parseBindingIdentifier()}},{key:"parseNamedImports",value:function(){var e=[];for(this.expect(a.TokenType.LBRACE);!this.eat(a.TokenType.RBRACE);)if(e.push(this.parseImportSpecifier()),!this.eat(a.TokenType.COMMA)){this.expect(a.TokenType.RBRACE);break}return e}},{key:"parseFromClause",value:function(){return this.expectContextualKeyword("from"),this.expect(a.TokenType.STRING).str}},{key:"parseImportDeclaration",value:function(){var e=this.startNode(),t=null,n=void 0;if(this.expect(a.TokenType.IMPORT),this.match(a.TokenType.STRING))return n=this.lex().str,this.consumeSemicolon(),this.finishNode(new u.Import({defaultBinding:null,namedImports:[],moduleSpecifier:n}),e);if(this.matchIdentifier()&&(t=this.parseBindingIdentifier(),!this.eat(a.TokenType.COMMA))){var r=new u.Import({defaultBinding:t,namedImports:[],moduleSpecifier:this.parseFromClause()});return this.consumeSemicolon(),this.finishNode(r,e)}if(this.match(a.TokenType.MUL)){var i=new u.ImportNamespace({defaultBinding:t,namespaceBinding:this.parseNameSpaceBinding(),moduleSpecifier:this.parseFromClause()});return this.consumeSemicolon(),this.finishNode(i,e)}if(this.match(a.TokenType.LBRACE)){var o=new u.Import({defaultBinding:t,namedImports:this.parseNamedImports(),moduleSpecifier:this.parseFromClause()});return this.consumeSemicolon(),this.finishNode(o,e)}throw this.createUnexpected(this.lookahead)}},{key:"parseExportSpecifier",value:function(){var e=this.startNode(),t=this.finishNode({type:"ExportNameOfUnknownType",isIdentifier:this.matchIdentifier(),value:this.parseIdentifierName()},e);if(this.eatContextualKeyword("as")){var n=this.parseIdentifierName();return this.finishNode({name:t,exportedName:n},e)}return this.finishNode({name:t,exportedName:null},e)}},{key:"parseExportClause",value:function(){this.expect(a.TokenType.LBRACE);for(var e=[];!this.eat(a.TokenType.RBRACE);)if(e.push(this.parseExportSpecifier()),!this.eat(a.TokenType.COMMA)){this.expect(a.TokenType.RBRACE);break}return e}},{key:"parseExportDeclaration",value:function(){var e=this,t=this.startNode(),n=void 0;switch(this.expect(a.TokenType.EXPORT),this.lookahead.type){case a.TokenType.MUL:this.lex(),n=new u.ExportAllFrom({moduleSpecifier:this.parseFromClause()}),this.consumeSemicolon();break;case a.TokenType.LBRACE:var r=this.parseExportClause(),o=null;this.matchContextualKeyword("from")?(o=this.parseFromClause(),n=new u.ExportFrom({namedExports:r.map((function(t){return e.copyNode(t,new u.ExportFromSpecifier({name:t.name.value,exportedName:t.exportedName}))})),moduleSpecifier:o})):(r.forEach((function(t){if(!t.name.isIdentifier)throw e.createError(i.ErrorMessages.ILLEGAL_EXPORTED_NAME)})),n=new u.ExportLocals({namedExports:r.map((function(t){return e.copyNode(t,new u.ExportLocalSpecifier({name:e.copyNode(t.name,new u.IdentifierExpression({name:t.name.value})),exportedName:t.exportedName}))}))})),this.consumeSemicolon();break;case a.TokenType.CLASS:n=new u.Export({declaration:this.parseClass({isExpr:!1,inDefault:!1})});break;case a.TokenType.FUNCTION:n=new u.Export({declaration:this.parseFunction({isExpr:!1,inDefault:!1,allowGenerator:!0,isAsync:!1})});break;case a.TokenType.ASYNC:var s=this.startNode();this.lex(),n=new u.Export({declaration:this.parseFunction({isExpr:!1,inDefault:!1,allowGenerator:!0,isAsync:!0,startState:s})});break;case a.TokenType.DEFAULT:switch(this.lex(),this.lookahead.type){case a.TokenType.FUNCTION:n=new u.ExportDefault({body:this.parseFunction({isExpr:!1,inDefault:!0,allowGenerator:!0,isAsync:!1})});break;case a.TokenType.CLASS:n=new u.ExportDefault({body:this.parseClass({isExpr:!1,inDefault:!0})});break;case a.TokenType.ASYNC:var c=this.startNode(),l=this.saveLexerState();if(this.lex(),!this.hasLineTerminatorBeforeNext&&this.match(a.TokenType.FUNCTION)){n=new u.ExportDefault({body:this.parseFunction({isExpr:!1,inDefault:!0,allowGenerator:!1,isAsync:!0,startState:c})});break}this.restoreLexerState(l);default:n=new u.ExportDefault({body:this.parseAssignmentExpression()}),this.consumeSemicolon()}break;case a.TokenType.VAR:case a.TokenType.LET:case a.TokenType.CONST:n=new u.Export({declaration:this.parseVariableDeclaration(!0)}),this.consumeSemicolon();break;default:throw this.createUnexpected(this.lookahead)}return this.finishNode(n,t)}},{key:"parseModuleItem",value:function(){switch(this.lookahead.type){case a.TokenType.IMPORT:return this.parseImportDeclaration();case a.TokenType.EXPORT:return this.parseExportDeclaration();default:return this.parseStatementListItem()}}},{key:"lookaheadLexicalDeclaration",value:function(){if(this.match(a.TokenType.LET)||this.match(a.TokenType.CONST)){var e=this.saveLexerState();if(this.lex(),this.matchIdentifier()||this.match(a.TokenType.LBRACE)||this.match(a.TokenType.LBRACK))return this.restoreLexerState(e),!0;this.restoreLexerState(e)}return!1}},{key:"parseStatementListItem",value:function(){if(this.eof())throw this.createUnexpected(this.lookahead);switch(this.lookahead.type){case a.TokenType.FUNCTION:return this.parseFunction({isExpr:!1,inDefault:!1,allowGenerator:!0,isAsync:!1});case a.TokenType.CLASS:return this.parseClass({isExpr:!1,inDefault:!1});case a.TokenType.ASYNC:var e=this.getLocation(),t=this.saveLexerState();return this.lex(),!this.hasLineTerminatorBeforeNext&&this.match(a.TokenType.FUNCTION)?this.parseFunction({isExpr:!1,inDefault:!1,allowGenerator:!0,isAsync:!0,startState:e}):(this.restoreLexerState(t),this.parseStatement());default:if(this.lookaheadLexicalDeclaration()){var n=this.startNode();return this.finishNode(this.parseVariableDeclarationStatement(),n)}return this.parseStatement()}}},{key:"parseStatement",value:function(){var e=this.startNode(),t=this.isolateCoverGrammar(this.parseStatementHelper);return this.finishNode(t,e)}},{key:"parseStatementHelper",value:function(){if(this.eof())throw this.createUnexpected(this.lookahead);switch(this.lookahead.type){case a.TokenType.SEMICOLON:return this.parseEmptyStatement();case a.TokenType.LBRACE:return this.parseBlockStatement();case a.TokenType.LPAREN:return this.parseExpressionStatement();case a.TokenType.BREAK:return this.parseBreakStatement();case a.TokenType.CONTINUE:return this.parseContinueStatement();case a.TokenType.DEBUGGER:return this.parseDebuggerStatement();case a.TokenType.DO:return this.parseDoWhileStatement();case a.TokenType.FOR:return this.parseForStatement();case a.TokenType.IF:return this.parseIfStatement();case a.TokenType.RETURN:return this.parseReturnStatement();case a.TokenType.SWITCH:return this.parseSwitchStatement();case a.TokenType.THROW:return this.parseThrowStatement();case a.TokenType.TRY:return this.parseTryStatement();case a.TokenType.VAR:return this.parseVariableDeclarationStatement();case a.TokenType.WHILE:return this.parseWhileStatement();case a.TokenType.WITH:return this.parseWithStatement();case a.TokenType.FUNCTION:case a.TokenType.CLASS:throw this.createUnexpected(this.lookahead);default:var e=this.saveLexerState();if(this.eat(a.TokenType.LET)){if(this.match(a.TokenType.LBRACK))throw this.restoreLexerState(e),this.createUnexpected(this.lookahead);this.restoreLexerState(e)}else if(this.eat(a.TokenType.ASYNC)){if(!this.hasLineTerminatorBeforeNext&&this.match(a.TokenType.FUNCTION))throw this.createUnexpected(this.lookahead);this.restoreLexerState(e)}var t=this.parseExpression();if("IdentifierExpression"===t.type&&this.eat(a.TokenType.COLON)){var n=this.match(a.TokenType.FUNCTION)?this.parseFunction({isExpr:!1,inDefault:!1,allowGenerator:!1,isAsync:!1}):this.parseStatement();return new u.LabeledStatement({label:t.name,body:n})}return this.consumeSemicolon(),new u.ExpressionStatement({expression:t})}}},{key:"parseEmptyStatement",value:function(){return this.lex(),new u.EmptyStatement}},{key:"parseBlockStatement",value:function(){return new u.BlockStatement({block:this.parseBlock()})}},{key:"parseExpressionStatement",value:function(){var e=this.parseExpression();return this.consumeSemicolon(),new u.ExpressionStatement({expression:e})}},{key:"parseBreakStatement",value:function(){if(this.lex(),this.eat(a.TokenType.SEMICOLON)||this.hasLineTerminatorBeforeNext)return new u.BreakStatement({label:null});var e=null;return this.matchIdentifier()&&(e=this.parseIdentifier()),this.consumeSemicolon(),new u.BreakStatement({label:e})}},{key:"parseContinueStatement",value:function(){if(this.lex(),this.eat(a.TokenType.SEMICOLON)||this.hasLineTerminatorBeforeNext)return new u.ContinueStatement({label:null});var e=null;return this.matchIdentifier()&&(e=this.parseIdentifier()),this.consumeSemicolon(),new u.ContinueStatement({label:e})}},{key:"parseDebuggerStatement",value:function(){return this.lex(),this.consumeSemicolon(),new u.DebuggerStatement}},{key:"parseDoWhileStatement",value:function(){this.lex();var e=this.parseStatement();this.expect(a.TokenType.WHILE),this.expect(a.TokenType.LPAREN);var t=this.parseExpression();return this.expect(a.TokenType.RPAREN),this.eat(a.TokenType.SEMICOLON),new u.DoWhileStatement({body:e,test:t})}},{key:"parseForStatement",value:function(){this.lex();var e=this.allowAwaitExpression&&this.eat(a.TokenType.AWAIT);this.expect(a.TokenType.LPAREN);var t=null,n=null;if(e&&this.match(a.TokenType.SEMICOLON))throw this.createUnexpected(this.lookahead);if(this.eat(a.TokenType.SEMICOLON))return this.match(a.TokenType.SEMICOLON)||(t=this.parseExpression()),this.expect(a.TokenType.SEMICOLON),this.match(a.TokenType.RPAREN)||(n=this.parseExpression()),new u.ForStatement({init:null,test:t,update:n,body:this.getIteratorStatementEpilogue()});var r=this.match(a.TokenType.LET),o=this.lookaheadLexicalDeclaration(),s=this.startNode();if(this.match(a.TokenType.VAR)||o){var c=this.allowIn;this.allowIn=!1;var l=this.parseVariableDeclaration(!1);if(this.allowIn=c,1===l.declarators.length&&(this.match(a.TokenType.IN)||this.matchContextualKeyword("of"))){var p=void 0,f=l.declarators[0];if(this.match(a.TokenType.IN)){if(e)throw this.createUnexpected(this.lookahead);if(null!==f.init&&(this.strict||"var"!==l.kind||"BindingIdentifier"!==f.binding.type))throw this.createError(i.ErrorMessages.INVALID_VAR_INIT_FOR_IN);p=u.ForInStatement,this.lex(),n=this.parseExpression()}else{if(null!==f.init)throw this.createError(e?i.ErrorMessages.INVALID_VAR_INIT_FOR_AWAIT:i.ErrorMessages.INVALID_VAR_INIT_FOR_OF);p=e?u.ForAwaitStatement:u.ForOfStatement,this.lex(),n=this.parseAssignmentExpression()}return new p({left:l,right:n,body:this.getIteratorStatementEpilogue()})}if(e)throw this.createUnexpected(this.lookahead);if(this.expect(a.TokenType.SEMICOLON),l.declarators.some((function(e){return"BindingIdentifier"!==e.binding.type&&null===e.init})))throw this.createError(i.ErrorMessages.UNINITIALIZED_BINDINGPATTERN_IN_FOR_INIT);return this.match(a.TokenType.SEMICOLON)||(t=this.parseExpression()),this.expect(a.TokenType.SEMICOLON),this.match(a.TokenType.RPAREN)||(n=this.parseExpression()),new u.ForStatement({init:l,test:t,update:n,body:this.getIteratorStatementEpilogue()})}var d=this.allowIn;this.allowIn=!1;var h=this.inheritCoverGrammar(this.parseAssignmentExpressionOrTarget);if(this.allowIn=d,this.isAssignmentTarget&&"AssignmentExpression"!==h.type&&(this.match(a.TokenType.IN)||this.matchContextualKeyword("of"))){if("ObjectAssignmentTarget"!==h.type&&"ArrayAssignmentTarget"!==h.type||(this.firstExprError=null),r&&this.matchContextualKeyword("of"))throw this.createError(e?i.ErrorMessages.INVALID_LHS_IN_FOR_AWAIT:i.ErrorMessages.INVALID_LHS_IN_FOR_OF);var m=void 0;if(this.match(a.TokenType.IN)){if(e)throw this.createUnexpected(this.lookahead);m=u.ForInStatement,this.lex(),n=this.parseExpression()}else m=e?u.ForAwaitStatement:u.ForOfStatement,this.lex(),n=this.parseAssignmentExpression();return new m({left:this.transformDestructuring(h),right:n,body:this.getIteratorStatementEpilogue()})}if(e)throw this.createError(i.ErrorMessages.INVALID_LHS_IN_FOR_AWAIT);if(this.firstExprError)throw this.firstExprError;for(;this.eat(a.TokenType.COMMA);){var y=this.parseAssignmentExpression();h=this.finishNode(new u.BinaryExpression({left:h,operator:",",right:y}),s)}if(this.match(a.TokenType.IN))throw this.createError(i.ErrorMessages.INVALID_LHS_IN_FOR_IN);if(this.matchContextualKeyword("of"))throw this.createError(i.ErrorMessages.INVALID_LHS_IN_FOR_OF);return this.expect(a.TokenType.SEMICOLON),this.match(a.TokenType.SEMICOLON)||(t=this.parseExpression()),this.expect(a.TokenType.SEMICOLON),this.match(a.TokenType.RPAREN)||(n=this.parseExpression()),new u.ForStatement({init:h,test:t,update:n,body:this.getIteratorStatementEpilogue()})}},{key:"getIteratorStatementEpilogue",value:function(){return this.expect(a.TokenType.RPAREN),this.parseStatement()}},{key:"parseIfStatementChild",value:function(){return this.match(a.TokenType.FUNCTION)?this.parseFunction({isExpr:!1,inDefault:!1,allowGenerator:!1,isAsync:!1}):this.parseStatement()}},{key:"parseIfStatement",value:function(){this.lex(),this.expect(a.TokenType.LPAREN);var e=this.parseExpression();this.expect(a.TokenType.RPAREN);var t=this.parseIfStatementChild(),n=null;return this.eat(a.TokenType.ELSE)&&(n=this.parseIfStatementChild()),new u.IfStatement({test:e,consequent:t,alternate:n})}},{key:"parseReturnStatement",value:function(){if(!this.inFunctionBody)throw this.createError(i.ErrorMessages.ILLEGAL_RETURN);if(this.lex(),this.eat(a.TokenType.SEMICOLON)||this.hasLineTerminatorBeforeNext)return new u.ReturnStatement({expression:null});var e=null;return this.match(a.TokenType.RBRACE)||this.eof()||(e=this.parseExpression()),this.consumeSemicolon(),new u.ReturnStatement({expression:e})}},{key:"parseSwitchStatement",value:function(){this.lex(),this.expect(a.TokenType.LPAREN);var e=this.parseExpression();if(this.expect(a.TokenType.RPAREN),this.expect(a.TokenType.LBRACE),this.eat(a.TokenType.RBRACE))return new u.SwitchStatement({discriminant:e,cases:[]});var t=this.parseSwitchCases();if(this.match(a.TokenType.DEFAULT)){var n=this.parseSwitchDefault(),r=this.parseSwitchCases();if(this.match(a.TokenType.DEFAULT))throw this.createError(i.ErrorMessages.MULTIPLE_DEFAULTS_IN_SWITCH);return this.expect(a.TokenType.RBRACE),new u.SwitchStatementWithDefault({discriminant:e,preDefaultCases:t,defaultCase:n,postDefaultCases:r})}return this.expect(a.TokenType.RBRACE),new u.SwitchStatement({discriminant:e,cases:t})}},{key:"parseSwitchCases",value:function(){for(var e=[];!(this.eof()||this.match(a.TokenType.RBRACE)||this.match(a.TokenType.DEFAULT));)e.push(this.parseSwitchCase());return e}},{key:"parseSwitchCase",value:function(){var e=this.startNode();return this.expect(a.TokenType.CASE),this.finishNode(new u.SwitchCase({test:this.parseExpression(),consequent:this.parseSwitchCaseBody()}),e)}},{key:"parseSwitchDefault",value:function(){var e=this.startNode();return this.expect(a.TokenType.DEFAULT),this.finishNode(new u.SwitchDefault({consequent:this.parseSwitchCaseBody()}),e)}},{key:"parseSwitchCaseBody",value:function(){return this.expect(a.TokenType.COLON),this.parseStatementListInSwitchCaseBody()}},{key:"parseStatementListInSwitchCaseBody",value:function(){for(var e=[];!(this.eof()||this.match(a.TokenType.RBRACE)||this.match(a.TokenType.DEFAULT)||this.match(a.TokenType.CASE));)e.push(this.parseStatementListItem());return e}},{key:"parseThrowStatement",value:function(){var e=this.lex();if(this.hasLineTerminatorBeforeNext)throw this.createErrorWithLocation(e,i.ErrorMessages.NEWLINE_AFTER_THROW);var t=this.parseExpression();return this.consumeSemicolon(),new u.ThrowStatement({expression:t})}},{key:"parseTryStatement",value:function(){this.lex();var e=this.parseBlock();if(this.match(a.TokenType.CATCH)){var t=this.parseCatchClause();if(this.eat(a.TokenType.FINALLY)){var n=this.parseBlock();return new u.TryFinallyStatement({body:e,catchClause:t,finalizer:n})}return new u.TryCatchStatement({body:e,catchClause:t})}if(this.eat(a.TokenType.FINALLY)){var r=this.parseBlock();return new u.TryFinallyStatement({body:e,catchClause:null,finalizer:r})}throw this.createError(i.ErrorMessages.NO_CATCH_OR_FINALLY)}},{key:"parseVariableDeclarationStatement",value:function(){var e=this.parseVariableDeclaration(!0);return this.consumeSemicolon(),new u.VariableDeclarationStatement({declaration:e})}},{key:"parseWhileStatement",value:function(){this.lex(),this.expect(a.TokenType.LPAREN);var e=this.parseExpression(),t=this.getIteratorStatementEpilogue();return new u.WhileStatement({test:e,body:t})}},{key:"parseWithStatement",value:function(){this.lex(),this.expect(a.TokenType.LPAREN);var e=this.parseExpression();this.expect(a.TokenType.RPAREN);var t=this.parseStatement();return new u.WithStatement({object:e,body:t})}},{key:"parseCatchClause",value:function(){var e=this.startNode();if(this.lex(),this.expect(a.TokenType.LPAREN),this.match(a.TokenType.RPAREN)||this.match(a.TokenType.LPAREN))throw this.createUnexpected(this.lookahead);var t=this.parseBindingTarget();this.expect(a.TokenType.RPAREN);var n=this.parseBlock();return this.finishNode(new u.CatchClause({binding:t,body:n}),e)}},{key:"parseBlock",value:function(){var e=this.startNode();this.expect(a.TokenType.LBRACE);for(var t=[];!this.match(a.TokenType.RBRACE);)t.push(this.parseStatementListItem());return this.expect(a.TokenType.RBRACE),this.finishNode(new u.Block({statements:t}),e)}},{key:"parseVariableDeclaration",value:function(e){var t=this.startNode(),n=this.lex(),r=n.type===a.TokenType.VAR?"var":n.type===a.TokenType.CONST?"const":"let",i=this.parseVariableDeclaratorList(e);return this.finishNode(new u.VariableDeclaration({kind:r,declarators:i}),t)}},{key:"parseVariableDeclaratorList",value:function(e){var t=[];do{t.push(this.parseVariableDeclarator(e))}while(this.eat(a.TokenType.COMMA));return t}},{key:"parseVariableDeclarator",value:function(e){var t=this.startNode();if(this.match(a.TokenType.LPAREN))throw this.createUnexpected(this.lookahead);var n=this.allowIn;this.allowIn=!0;var r=this.parseBindingTarget();this.allowIn=n,e&&"BindingIdentifier"!==r.type&&!this.match(a.TokenType.ASSIGN)&&this.expect(a.TokenType.ASSIGN);var i=null;return this.eat(a.TokenType.ASSIGN)&&(i=this.parseAssignmentExpression()),this.finishNode(new u.VariableDeclarator({binding:r,init:i}),t)}},{key:"isolateCoverGrammar",value:function(e){var t,n=this.isBindingElement,r=this.isAssignmentTarget,i=this.firstExprError;if(this.isBindingElement=this.isAssignmentTarget=!0,this.firstExprError=null,t=e.call(this),null!==this.firstExprError)throw this.firstExprError;return this.isBindingElement=n,this.isAssignmentTarget=r,this.firstExprError=i,t}},{key:"inheritCoverGrammar",value:function(e){var t,n=this.isBindingElement,r=this.isAssignmentTarget,i=this.firstExprError;return this.isBindingElement=this.isAssignmentTarget=!0,this.firstExprError=null,t=e.call(this),this.isBindingElement=this.isBindingElement&&n,this.isAssignmentTarget=this.isAssignmentTarget&&r,this.firstExprError=i||this.firstExprError,t}},{key:"parseExpression",value:function(){var e=this.startNode(),t=this.parseAssignmentExpression();if(this.match(a.TokenType.COMMA))for(;!this.eof()&&this.match(a.TokenType.COMMA);){this.lex();var n=this.parseAssignmentExpression();t=this.finishNode(new u.BinaryExpression({left:t,operator:",",right:n}),e)}return t}},{key:"finishArrowParams",value:function(e){var t=e.params,n=void 0===t?null:t,r=e.rest,i=void 0===r?null:r;if(e.type!==l){if("IdentifierExpression"!==e.type)throw this.createUnexpected(this.lookahead);n=[this.targetToBinding(this.transformDestructuring(e))]}return this.copyNode(e,new u.FormalParameters({items:n,rest:i}))}},{key:"parseArrowExpressionTail",value:function(e,t,n){this.expect(a.TokenType.ARROW);var r=this.allowYieldExpression,i=this.allowAwaitExpression,o=this.firstAwaitLocation;this.allowYieldExpression=!1,this.allowAwaitExpression=t,this.firstAwaitLocation=null;var s=void 0;if(this.match(a.TokenType.LBRACE)){var c=this.allowIn;this.allowIn=!0,s=this.parseFunctionBody(),this.allowIn=c}else s=this.parseAssignmentExpression();return this.allowYieldExpression=r,this.allowAwaitExpression=i,this.firstAwaitLocation=o,this.finishNode(new u.ArrowExpression({isAsync:t,params:e,body:s}),n)}},{key:"parseAssignmentExpression",value:function(){return this.isolateCoverGrammar(this.parseAssignmentExpressionOrTarget)}},{key:"parseAssignmentExpressionOrTarget",value:function(){var e=this.startNode();if(this.allowYieldExpression&&this.match(a.TokenType.YIELD))return this.isBindingElement=this.isAssignmentTarget=!1,this.parseYieldExpression();var t=this.parseConditionalExpression();if(!this.hasLineTerminatorBeforeNext&&this.match(a.TokenType.ARROW)){this.isBindingElement=this.isAssignmentTarget=!1,this.firstExprError=null;var n=t.type===l&&t.isAsync;return this.parseArrowExpressionTail(this.finishArrowParams(t),n,e)}var r=!1,o=this.lookahead;switch(o.type){case a.TokenType.ASSIGN_BIT_OR:case a.TokenType.ASSIGN_BIT_XOR:case a.TokenType.ASSIGN_BIT_AND:case a.TokenType.ASSIGN_SHL:case a.TokenType.ASSIGN_SHR:case a.TokenType.ASSIGN_SHR_UNSIGNED:case a.TokenType.ASSIGN_ADD:case a.TokenType.ASSIGN_SUB:case a.TokenType.ASSIGN_MUL:case a.TokenType.ASSIGN_DIV:case a.TokenType.ASSIGN_MOD:case a.TokenType.ASSIGN_EXP:r=!0}if(r){if(!this.isAssignmentTarget||!v(t))throw this.createError(i.ErrorMessages.INVALID_LHS_IN_ASSIGNMENT);t=this.transformDestructuring(t)}else{if(o.type!==a.TokenType.ASSIGN)return t;if(!this.isAssignmentTarget)throw this.createError(i.ErrorMessages.INVALID_LHS_IN_ASSIGNMENT);t=this.transformDestructuring(t)}this.lex();var s=this.parseAssignmentExpression();this.firstExprError=null;var c=void 0;return o.type===a.TokenType.ASSIGN?c=new u.AssignmentExpression({binding:t,expression:s}):(c=new u.CompoundAssignmentExpression({binding:t,operator:o.type.name,expression:s}),this.isBindingElement=this.isAssignmentTarget=!1),this.finishNode(c,e)}},{key:"targetToBinding",value:function(e){var t=this;if(null===e)return null;switch(e.type){case"AssignmentTargetIdentifier":return this.copyNode(e,new u.BindingIdentifier({name:e.name}));case"ArrayAssignmentTarget":return this.copyNode(e,new u.ArrayBinding({elements:e.elements.map((function(e){return t.targetToBinding(e)})),rest:this.targetToBinding(e.rest)}));case"ObjectAssignmentTarget":return this.copyNode(e,new u.ObjectBinding({properties:e.properties.map((function(e){return t.targetToBinding(e)})),rest:this.targetToBinding(e.rest)}));case"AssignmentTargetPropertyIdentifier":return this.copyNode(e,new u.BindingPropertyIdentifier({binding:this.targetToBinding(e.binding),init:e.init}));case"AssignmentTargetPropertyProperty":return this.copyNode(e,new u.BindingPropertyProperty({name:e.name,binding:this.targetToBinding(e.binding)}));case"AssignmentTargetWithDefault":return this.copyNode(e,new u.BindingWithDefault({binding:this.targetToBinding(e.binding),init:e.init}))}throw new Error("Not reached")}},{key:"transformDestructuring",value:function(e){var t=this;switch(e.type){case"DataProperty":return this.copyNode(e,new u.AssignmentTargetPropertyProperty({name:e.name,binding:this.transformDestructuringWithDefault(e.expression)}));case"ShorthandProperty":return this.copyNode(e,new u.AssignmentTargetPropertyIdentifier({binding:this.copyNode(e,new u.AssignmentTargetIdentifier({name:e.name.name})),init:null}));case"ObjectExpression":var n=e.properties.length>0?e.properties[e.properties.length-1]:void 0;return null!=n&&"SpreadProperty"===n.type?this.copyNode(e,new u.ObjectAssignmentTarget({properties:e.properties.slice(0,-1).map((function(e){return e&&t.transformDestructuringWithDefault(e)})),rest:this.transformDestructuring(n.expression)})):this.copyNode(e,new u.ObjectAssignmentTarget({properties:e.properties.map((function(e){return e&&t.transformDestructuringWithDefault(e)})),rest:null}));case"ArrayExpression":var r=e.elements[e.elements.length-1];return null!=r&&"SpreadElement"===r.type?this.copyNode(e,new u.ArrayAssignmentTarget({elements:e.elements.slice(0,-1).map((function(e){return e&&t.transformDestructuringWithDefault(e)})),rest:this.copyNode(r.expression,this.transformDestructuring(r.expression))})):this.copyNode(e,new u.ArrayAssignmentTarget({elements:e.elements.map((function(e){return e&&t.transformDestructuringWithDefault(e)})),rest:null}));case"IdentifierExpression":return this.copyNode(e,new u.AssignmentTargetIdentifier({name:e.name}));case"StaticPropertyName":return this.copyNode(e,new u.AssignmentTargetIdentifier({name:e.value}));case"ComputedMemberExpression":return this.copyNode(e,new u.ComputedMemberAssignmentTarget({object:e.object,expression:e.expression}));case"StaticMemberExpression":return this.copyNode(e,new u.StaticMemberAssignmentTarget({object:e.object,property:e.property}));case"ArrayAssignmentTarget":case"ObjectAssignmentTarget":case"ComputedMemberAssignmentTarget":case"StaticMemberAssignmentTarget":case"AssignmentTargetIdentifier":case"AssignmentTargetPropertyIdentifier":case"AssignmentTargetPropertyProperty":case"AssignmentTargetWithDefault":return e}throw new Error("Not reached")}},{key:"transformDestructuringWithDefault",value:function(e){return"AssignmentExpression"===e.type?this.copyNode(e,new u.AssignmentTargetWithDefault({binding:this.transformDestructuring(e.binding),init:e.expression})):this.transformDestructuring(e)}},{key:"lookaheadAssignmentExpression",value:function(){if(this.matchIdentifier())return!0;switch(this.lookahead.type){case a.TokenType.ADD:case a.TokenType.ASSIGN_DIV:case a.TokenType.BIT_NOT:case a.TokenType.CLASS:case a.TokenType.DEC:case a.TokenType.DELETE:case a.TokenType.DIV:case a.TokenType.FALSE:case a.TokenType.FUNCTION:case a.TokenType.INC:case a.TokenType.LBRACE:case a.TokenType.LBRACK:case a.TokenType.LPAREN:case a.TokenType.NEW:case a.TokenType.NOT:case a.TokenType.NULL:case a.TokenType.NUMBER:case a.TokenType.STRING:case a.TokenType.SUB:case a.TokenType.SUPER:case a.TokenType.THIS:case a.TokenType.TRUE:case a.TokenType.TYPEOF:case a.TokenType.VOID:case a.TokenType.TEMPLATE:return!0}return!1}},{key:"parseYieldExpression",value:function(){var e=this.startNode();if(this.lex(),this.hasLineTerminatorBeforeNext)return this.finishNode(new u.YieldExpression({expression:null}),e);var t=!!this.eat(a.TokenType.MUL),n=null;(t||this.lookaheadAssignmentExpression())&&(n=this.parseAssignmentExpression());var r=t?u.YieldGeneratorExpression:u.YieldExpression;return this.finishNode(new r({expression:n}),e)}},{key:"parseConditionalExpression",value:function(){var e=this.startNode(),t=this.parseBinaryExpression();if(this.firstExprError)return t;if(this.eat(a.TokenType.CONDITIONAL)){this.isBindingElement=this.isAssignmentTarget=!1;var n=this.allowIn;this.allowIn=!0;var r=this.isolateCoverGrammar(this.parseAssignmentExpression);this.allowIn=n,this.expect(a.TokenType.COLON);var i=this.isolateCoverGrammar(this.parseAssignmentExpression);return this.finishNode(new u.ConditionalExpression({test:t,consequent:r,alternate:i}),e)}return t}},{key:"isBinaryOperator",value:function(e){switch(e){case a.TokenType.OR:case a.TokenType.AND:case a.TokenType.BIT_OR:case a.TokenType.BIT_XOR:case a.TokenType.BIT_AND:case a.TokenType.EQ:case a.TokenType.NE:case a.TokenType.EQ_STRICT:case a.TokenType.NE_STRICT:case a.TokenType.LT:case a.TokenType.GT:case a.TokenType.LTE:case a.TokenType.GTE:case a.TokenType.INSTANCEOF:case a.TokenType.SHL:case a.TokenType.SHR:case a.TokenType.SHR_UNSIGNED:case a.TokenType.ADD:case a.TokenType.SUB:case a.TokenType.MUL:case a.TokenType.DIV:case a.TokenType.MOD:return!0;case a.TokenType.IN:return this.allowIn;default:return!1}}},{key:"parseBinaryExpression",value:function(){var e=this,t=this.startNode(),n=this.parseExponentiationExpression();if(this.firstExprError)return n;var r=this.lookahead.type;if(!this.isBinaryOperator(r))return n;this.isBindingElement=this.isAssignmentTarget=!1,this.lex();var i=[];i.push({startState:t,left:n,operator:r,precedence:y[r.name]}),t=this.startNode();var o=this.isolateCoverGrammar(this.parseExponentiationExpression);for(r=this.lookahead.type;this.isBinaryOperator(r);){for(var a=y[r.name];i.length&&a<=i[i.length-1].precedence;){var s=i[i.length-1],c=s.operator;n=s.left,i.pop(),t=s.startState,o=this.finishNode(new u.BinaryExpression({left:n,operator:c.name,right:o}),t)}this.lex(),i.push({startState:t,left:o,operator:r,precedence:a}),t=this.startNode(),o=this.isolateCoverGrammar(this.parseExponentiationExpression),r=this.lookahead.type}return i.reduceRight((function(t,n){return e.finishNode(new u.BinaryExpression({left:n.left,operator:n.operator.name,right:t}),n.startState)}),o)}},{key:"parseExponentiationExpression",value:function(){var e=this.startNode(),t=this.lookahead.type===a.TokenType.LPAREN,n=this.parseUnaryExpression();if(this.lookahead.type!==a.TokenType.EXP)return n;if("UnaryExpression"===n.type&&!t)throw this.createError(i.ErrorMessages.INVALID_EXPONENTIATION_LHS);this.lex(),this.isBindingElement=this.isAssignmentTarget=!1;var r=this.isolateCoverGrammar(this.parseExponentiationExpression);return this.finishNode(new u.BinaryExpression({left:n,operator:"**",right:r}),e)}},{key:"parseUnaryExpression",value:function(){if(this.lookahead.type.klass!==a.TokenClass.Punctuator&&this.lookahead.type.klass!==a.TokenClass.Keyword)return this.parseUpdateExpression();var e=this.startNode();if(this.allowAwaitExpression&&this.eat(a.TokenType.AWAIT)){this.isBindingElement=this.isAssignmentTarget=!1;var t=this.isolateCoverGrammar(this.parseUnaryExpression);return this.finishNode(new u.AwaitExpression({expression:t}),e)}var n=this.lookahead;if(!function(e){switch(e.type){case a.TokenType.INC:case a.TokenType.DEC:case a.TokenType.ADD:case a.TokenType.SUB:case a.TokenType.BIT_NOT:case a.TokenType.NOT:case a.TokenType.DELETE:case a.TokenType.VOID:case a.TokenType.TYPEOF:return!0}return!1}(n))return this.parseUpdateExpression();this.lex(),this.isBindingElement=this.isAssignmentTarget=!1;var r=void 0;if(g(n)){var o=this.getLocation(),s=this.isolateCoverGrammar(this.parseUnaryExpression);if(!v(s))throw this.createErrorWithLocation(o,i.ErrorMessages.INVALID_UPDATE_OPERAND);s=this.transformDestructuring(s),r=new u.UpdateExpression({isPrefix:!0,operator:n.value,operand:s})}else{var c=this.isolateCoverGrammar(this.parseUnaryExpression);r=new u.UnaryExpression({operator:n.value,operand:c})}return this.finishNode(r,e)}},{key:"parseUpdateExpression",value:function(){var e=this.getLocation(),t=this.startNode(),n=this.parseLeftHandSideExpression({allowCall:!0});if(this.firstExprError||this.hasLineTerminatorBeforeNext)return n;var r=this.lookahead;if(!g(r))return n;if(this.lex(),this.isBindingElement=this.isAssignmentTarget=!1,!v(n))throw this.createErrorWithLocation(e,i.ErrorMessages.INVALID_UPDATE_OPERAND);return n=this.transformDestructuring(n),this.finishNode(new u.UpdateExpression({isPrefix:!1,operator:r.value,operand:n}),t)}},{key:"parseLeftHandSideExpression",value:function(e){var t=this,n=e.allowCall,r=this.startNode(),o=this.allowIn;this.allowIn=!0;var s=void 0,c=this.lookahead;if(this.eat(a.TokenType.SUPER))if(this.isBindingElement=!1,this.isAssignmentTarget=!1,s=this.finishNode(new u.Super,r),this.match(a.TokenType.LPAREN)){if(!n)throw this.createUnexpected(c);s=this.finishNode(new u.CallExpression({callee:s,arguments:this.parseArgumentList().args}),r)}else if(this.match(a.TokenType.LBRACK))s=this.finishNode(new u.ComputedMemberExpression({object:s,expression:this.parseComputedMember()}),r),this.isAssignmentTarget=!0;else{if(!this.match(a.TokenType.PERIOD))throw this.createUnexpected(c);s=this.finishNode(new u.StaticMemberExpression({object:s,property:this.parseStaticMember()}),r),this.isAssignmentTarget=!0}else if(this.match(a.TokenType.NEW))this.isBindingElement=this.isAssignmentTarget=!1,s=this.parseNewExpression();else if(this.match(a.TokenType.ASYNC)){if("IdentifierExpression"===(s=this.parsePrimaryExpression()).type&&n&&!this.hasLineTerminatorBeforeNext){if(this.matchIdentifier()){var p=this.startNode(),f=this.allowAwaitExpression;this.allowAwaitExpression=!0;var d=this.parseBindingIdentifier();return this.allowAwaitExpression=f,this.ensureArrow(),this.finishNode({type:l,params:[d],rest:null,isAsync:!0},p)}if(this.match(a.TokenType.LPAREN)){var h=this.startNode(),m=this.firstAwaitLocation;this.firstAwaitLocation=null;var y=this.parseArgumentList(),v=y.args,g=y.locationFollowingFirstSpread;if(this.isBindingElement&&!this.hasLineTerminatorBeforeNext&&this.match(a.TokenType.ARROW)){if(null!==g)throw this.createErrorWithLocation(g,i.ErrorMessages.UNEXPECTED_TOKEN(","));if(null!==this.firstAwaitLocation)throw this.createErrorWithLocation(this.firstAwaitLocation,i.ErrorMessages.NO_AWAIT_IN_ASYNC_PARAMS);var _=null;if(v.length>0&&"SpreadElement"===v[v.length-1].type){if(null!=(_=this.targetToBinding(this.transformDestructuringWithDefault(v[v.length-1].expression))).init)throw this.createError(i.ErrorMessages.UNEXPECTED_REST_PARAMETERS_INITIALIZATION);v=v.slice(0,-1)}var E=v.map((function(e){return t.targetToBinding(t.transformDestructuringWithDefault(e))}));return this.finishNode({type:l,params:E,rest:_,isAsync:!0},h)}this.firstAwaitLocation=m||this.firstAwaitLocation,this.isBindingElement=this.isAssignmentTarget=!1,s=this.finishNode(new u.CallExpression({callee:s,arguments:v}),r)}}}else if(s=this.parsePrimaryExpression(),this.firstExprError)return s;for(;;)if(n&&this.match(a.TokenType.LPAREN))this.isBindingElement=this.isAssignmentTarget=!1,s=this.finishNode(new u.CallExpression({callee:s,arguments:this.parseArgumentList().args}),r);else if(this.match(a.TokenType.LBRACK))this.isBindingElement=!1,this.isAssignmentTarget=!0,s=this.finishNode(new u.ComputedMemberExpression({object:s,expression:this.parseComputedMember()}),r);else if(this.match(a.TokenType.PERIOD))this.isBindingElement=!1,this.isAssignmentTarget=!0,s=this.finishNode(new u.StaticMemberExpression({object:s,property:this.parseStaticMember()}),r);else{if(!this.match(a.TokenType.TEMPLATE))break;this.isBindingElement=this.isAssignmentTarget=!1,s=this.finishNode(new u.TemplateExpression({tag:s,elements:this.parseTemplateElements()}),r)}return this.allowIn=o,s}},{key:"parseTemplateElements",value:function(){var e=this.startNode(),t=this.lookahead;if(t.tail)return this.lex(),[this.finishNode(new u.TemplateElement({rawValue:t.slice.text.slice(1,-1)}),e)];for(var n=[this.finishNode(new u.TemplateElement({rawValue:this.lex().slice.text.slice(1,-2)}),e)];;){if(n.push(this.parseExpression()),!this.match(a.TokenType.RBRACE))throw this.createILLEGAL();if(this.index=this.startIndex,this.line=this.startLine,this.lineStart=this.startLineStart,this.lookahead=this.scanTemplateElement(),e=this.startNode(),(t=this.lex()).tail)return n.push(this.finishNode(new u.TemplateElement({rawValue:t.slice.text.slice(1,-1)}),e)),n;n.push(this.finishNode(new u.TemplateElement({rawValue:t.slice.text.slice(1,-2)}),e))}}},{key:"parseStaticMember",value:function(){if(this.lex(),this.lookahead.type.klass.isIdentifierName)return this.lex().value;throw this.createUnexpected(this.lookahead)}},{key:"parseComputedMember",value:function(){this.lex();var e=this.parseExpression();return this.expect(a.TokenType.RBRACK),e}},{key:"parseNewExpression",value:function(){var e=this,t=this.startNode();if(this.lex(),this.eat(a.TokenType.PERIOD))return this.expectContextualKeyword("target"),this.finishNode(new u.NewTargetExpression,t);var n=this.isolateCoverGrammar((function(){return e.parseLeftHandSideExpression({allowCall:!1})}));return this.finishNode(new u.NewExpression({callee:n,arguments:this.match(a.TokenType.LPAREN)?this.parseArgumentList().args:[]}),t)}},{key:"parseRegexFlags",value:function(e){for(var t=!1,n=!1,r=!1,i=!1,o=!1,a=!1,s=0;s"},Ident:{name:"Identifier",isIdentifierName:!0},Keyword:{name:"Keyword",isIdentifierName:!0},NumericLiteral:{name:"Numeric"},TemplateElement:{name:"Template"},Punctuator:{name:"Punctuator"},StringLiteral:{name:"String"},RegularExpression:{name:"RegularExpression"},Illegal:{name:"Illegal"}},c=t.TokenType={EOS:{klass:u.Eof,name:"EOS"},LPAREN:{klass:u.Punctuator,name:"("},RPAREN:{klass:u.Punctuator,name:")"},LBRACK:{klass:u.Punctuator,name:"["},RBRACK:{klass:u.Punctuator,name:"]"},LBRACE:{klass:u.Punctuator,name:"{"},RBRACE:{klass:u.Punctuator,name:"}"},COLON:{klass:u.Punctuator,name:":"},SEMICOLON:{klass:u.Punctuator,name:";"},PERIOD:{klass:u.Punctuator,name:"."},ELLIPSIS:{klass:u.Punctuator,name:"..."},ARROW:{klass:u.Punctuator,name:"=>"},CONDITIONAL:{klass:u.Punctuator,name:"?"},INC:{klass:u.Punctuator,name:"++"},DEC:{klass:u.Punctuator,name:"--"},ASSIGN:{klass:u.Punctuator,name:"="},ASSIGN_BIT_OR:{klass:u.Punctuator,name:"|="},ASSIGN_BIT_XOR:{klass:u.Punctuator,name:"^="},ASSIGN_BIT_AND:{klass:u.Punctuator,name:"&="},ASSIGN_SHL:{klass:u.Punctuator,name:"<<="},ASSIGN_SHR:{klass:u.Punctuator,name:">>="},ASSIGN_SHR_UNSIGNED:{klass:u.Punctuator,name:">>>="},ASSIGN_ADD:{klass:u.Punctuator,name:"+="},ASSIGN_SUB:{klass:u.Punctuator,name:"-="},ASSIGN_MUL:{klass:u.Punctuator,name:"*="},ASSIGN_DIV:{klass:u.Punctuator,name:"/="},ASSIGN_MOD:{klass:u.Punctuator,name:"%="},ASSIGN_EXP:{klass:u.Punctuator,name:"**="},COMMA:{klass:u.Punctuator,name:","},OR:{klass:u.Punctuator,name:"||"},AND:{klass:u.Punctuator,name:"&&"},BIT_OR:{klass:u.Punctuator,name:"|"},BIT_XOR:{klass:u.Punctuator,name:"^"},BIT_AND:{klass:u.Punctuator,name:"&"},SHL:{klass:u.Punctuator,name:"<<"},SHR:{klass:u.Punctuator,name:">>"},SHR_UNSIGNED:{klass:u.Punctuator,name:">>>"},ADD:{klass:u.Punctuator,name:"+"},SUB:{klass:u.Punctuator,name:"-"},MUL:{klass:u.Punctuator,name:"*"},DIV:{klass:u.Punctuator,name:"/"},MOD:{klass:u.Punctuator,name:"%"},EXP:{klass:u.Punctuator,name:"**"},EQ:{klass:u.Punctuator,name:"=="},NE:{klass:u.Punctuator,name:"!="},EQ_STRICT:{klass:u.Punctuator,name:"==="},NE_STRICT:{klass:u.Punctuator,name:"!=="},LT:{klass:u.Punctuator,name:"<"},GT:{klass:u.Punctuator,name:">"},LTE:{klass:u.Punctuator,name:"<="},GTE:{klass:u.Punctuator,name:">="},INSTANCEOF:{klass:u.Keyword,name:"instanceof"},IN:{klass:u.Keyword,name:"in"},NOT:{klass:u.Punctuator,name:"!"},BIT_NOT:{klass:u.Punctuator,name:"~"},ASYNC:{klass:u.Keyword,name:"async"},AWAIT:{klass:u.Keyword,name:"await"},ENUM:{klass:u.Keyword,name:"enum"},DELETE:{klass:u.Keyword,name:"delete"},TYPEOF:{klass:u.Keyword,name:"typeof"},VOID:{klass:u.Keyword,name:"void"},BREAK:{klass:u.Keyword,name:"break"},CASE:{klass:u.Keyword,name:"case"},CATCH:{klass:u.Keyword,name:"catch"},CLASS:{klass:u.Keyword,name:"class"},CONTINUE:{klass:u.Keyword,name:"continue"},DEBUGGER:{klass:u.Keyword,name:"debugger"},DEFAULT:{klass:u.Keyword,name:"default"},DO:{klass:u.Keyword,name:"do"},ELSE:{klass:u.Keyword,name:"else"},EXPORT:{klass:u.Keyword,name:"export"},EXTENDS:{klass:u.Keyword,name:"extends"},FINALLY:{klass:u.Keyword,name:"finally"},FOR:{klass:u.Keyword,name:"for"},FUNCTION:{klass:u.Keyword,name:"function"},IF:{klass:u.Keyword,name:"if"},IMPORT:{klass:u.Keyword,name:"import"},LET:{klass:u.Keyword,name:"let"},NEW:{klass:u.Keyword,name:"new"},RETURN:{klass:u.Keyword,name:"return"},SUPER:{klass:u.Keyword,name:"super"},SWITCH:{klass:u.Keyword,name:"switch"},THIS:{klass:u.Keyword,name:"this"},THROW:{klass:u.Keyword,name:"throw"},TRY:{klass:u.Keyword,name:"try"},VAR:{klass:u.Keyword,name:"var"},WHILE:{klass:u.Keyword,name:"while"},WITH:{klass:u.Keyword,name:"with"},NULL:{klass:u.Keyword,name:"null"},TRUE:{klass:u.Keyword,name:"true"},FALSE:{klass:u.Keyword,name:"false"},YIELD:{klass:u.Keyword,name:"yield"},NUMBER:{klass:u.NumericLiteral,name:""},STRING:{klass:u.StringLiteral,name:""},REGEXP:{klass:u.RegularExpression,name:""},IDENTIFIER:{klass:u.Ident,name:""},CONST:{klass:u.Keyword,name:"const"},TEMPLATE:{klass:u.TemplateElement,name:""},ESCAPED_KEYWORD:{klass:u.Keyword,name:""},ILLEGAL:{klass:u.Illegal,name:""}},l=c.ILLEGAL,p=!1,f=!0,d=[l,l,l,l,l,l,l,l,l,l,l,l,l,l,l,l,l,l,l,l,l,l,l,l,l,l,l,l,l,l,l,l,l,c.NOT,l,l,l,c.MOD,c.BIT_AND,l,c.LPAREN,c.RPAREN,c.MUL,c.ADD,c.COMMA,c.SUB,c.PERIOD,c.DIV,l,l,l,l,l,l,l,l,l,l,c.COLON,c.SEMICOLON,c.LT,c.ASSIGN,c.GT,c.CONDITIONAL,l,l,l,l,l,l,l,l,l,l,l,l,l,l,l,l,l,l,l,l,l,l,l,l,l,l,l,c.LBRACK,l,c.RBRACK,c.BIT_XOR,l,l,l,l,l,l,l,l,l,l,l,l,l,l,l,l,l,l,l,l,l,l,l,l,l,l,l,l,c.LBRACE,c.BIT_OR,c.RBRACE,c.BIT_NOT],h=[p,p,p,p,p,p,p,p,p,p,p,p,p,p,p,p,p,p,p,p,p,p,p,p,p,p,p,p,p,p,p,p,p,f,p,p,p,f,f,p,f,f,f,f,f,f,p,f,p,p,p,p,p,p,p,p,p,p,f,f,f,f,f,f,p,p,p,p,p,p,p,p,p,p,p,p,p,p,p,p,p,p,p,p,p,p,p,p,p,p,p,f,p,f,f,p,p,p,p,p,p,p,p,p,p,p,p,p,p,p,p,p,p,p,p,p,p,p,p,p,p,p,p,f,f,f,f,p],m=t.JsError=function(e){function t(e,n,r,i){s(this,t);var o=function(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!==typeof t&&"function"!==typeof t?e:t}(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,i));o.index=e;try{o.line=n,o.column=r}catch(a){}return o.parseErrorLine=n,o.parseErrorColumn=r,o.description=i,o.message="["+n+":"+r+"]: "+i,o}return function(e,t){if("function"!==typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,Error),t}();function y(e){return e<=65535?String.fromCharCode(e):String.fromCharCode(Math.floor((e-65536)/1024)+55296)+String.fromCharCode((e-65536)%1024+56320)}var v=function(){function e(t){s(this,e),this.source=t,this.index=0,this.line=0,this.lineStart=0,this.startIndex=0,this.startLine=0,this.startLineStart=0,this.lastIndex=0,this.lastLine=0,this.lastLineStart=0,this.hasLineTerminatorBeforeNext=!1,this.tokenIndex=0}return i(e,[{key:"saveLexerState",value:function(){return{source:this.source,index:this.index,line:this.line,lineStart:this.lineStart,startIndex:this.startIndex,startLine:this.startLine,startLineStart:this.startLineStart,lastIndex:this.lastIndex,lastLine:this.lastLine,lastLineStart:this.lastLineStart,lookahead:this.lookahead,hasLineTerminatorBeforeNext:this.hasLineTerminatorBeforeNext,tokenIndex:this.tokenIndex}}},{key:"restoreLexerState",value:function(e){this.source=e.source,this.index=e.index,this.line=e.line,this.lineStart=e.lineStart,this.startIndex=e.startIndex,this.startLine=e.startLine,this.startLineStart=e.startLineStart,this.lastIndex=e.lastIndex,this.lastLine=e.lastLine,this.lastLineStart=e.lastLineStart,this.lookahead=e.lookahead,this.hasLineTerminatorBeforeNext=e.hasLineTerminatorBeforeNext,this.tokenIndex=e.tokenIndex}},{key:"createILLEGAL",value:function(){return this.startIndex=this.index,this.startLine=this.line,this.startLineStart=this.lineStart,this.index1?n-1:0),i=1;i10)return c.IDENTIFIER;switch(t.length){case 2:switch(t.charAt(0)){case"i":switch(t.charAt(1)){case"f":return c.IF;case"n":return c.IN}break;case"d":if("o"===t.charAt(1))return c.DO}break;case 3:switch(t.charAt(0)){case"v":if(e.cse2(t,"a","r"))return c.VAR;break;case"f":if(e.cse2(t,"o","r"))return c.FOR;break;case"n":if(e.cse2(t,"e","w"))return c.NEW;break;case"t":if(e.cse2(t,"r","y"))return c.TRY;break;case"l":if(e.cse2(t,"e","t"))return c.LET}break;case 4:switch(t.charAt(0)){case"t":if(e.cse3(t,"h","i","s"))return c.THIS;if(e.cse3(t,"r","u","e"))return c.TRUE;break;case"n":if(e.cse3(t,"u","l","l"))return c.NULL;break;case"e":if(e.cse3(t,"l","s","e"))return c.ELSE;if(e.cse3(t,"n","u","m"))return c.ENUM;break;case"c":if(e.cse3(t,"a","s","e"))return c.CASE;break;case"v":if(e.cse3(t,"o","i","d"))return c.VOID;break;case"w":if(e.cse3(t,"i","t","h"))return c.WITH}break;case 5:switch(t.charAt(0)){case"a":if(e.cse4(t,"s","y","n","c"))return c.ASYNC;if(e.cse4(t,"w","a","i","t"))return c.AWAIT;break;case"w":if(e.cse4(t,"h","i","l","e"))return c.WHILE;break;case"b":if(e.cse4(t,"r","e","a","k"))return c.BREAK;break;case"f":if(e.cse4(t,"a","l","s","e"))return c.FALSE;break;case"c":if(e.cse4(t,"a","t","c","h"))return c.CATCH;if(e.cse4(t,"o","n","s","t"))return c.CONST;if(e.cse4(t,"l","a","s","s"))return c.CLASS;break;case"t":if(e.cse4(t,"h","r","o","w"))return c.THROW;break;case"y":if(e.cse4(t,"i","e","l","d"))return c.YIELD;break;case"s":if(e.cse4(t,"u","p","e","r"))return c.SUPER}break;case 6:switch(t.charAt(0)){case"r":if(e.cse5(t,"e","t","u","r","n"))return c.RETURN;break;case"t":if(e.cse5(t,"y","p","e","o","f"))return c.TYPEOF;break;case"d":if(e.cse5(t,"e","l","e","t","e"))return c.DELETE;break;case"s":if(e.cse5(t,"w","i","t","c","h"))return c.SWITCH;break;case"e":if(e.cse5(t,"x","p","o","r","t"))return c.EXPORT;break;case"i":if(e.cse5(t,"m","p","o","r","t"))return c.IMPORT}break;case 7:switch(t.charAt(0)){case"d":if(e.cse6(t,"e","f","a","u","l","t"))return c.DEFAULT;break;case"f":if(e.cse6(t,"i","n","a","l","l","y"))return c.FINALLY;break;case"e":if(e.cse6(t,"x","t","e","n","d","s"))return c.EXTENDS}break;case 8:switch(t.charAt(0)){case"f":if(e.cse7(t,"u","n","c","t","i","o","n"))return c.FUNCTION;break;case"c":if(e.cse7(t,"o","n","t","i","n","u","e"))return c.CONTINUE;break;case"d":if(e.cse7(t,"e","b","u","g","g","e","r"))return c.DEBUGGER}break;case 10:if("instanceof"===t)return c.INSTANCEOF}return c.IDENTIFIER}},{key:"skipSingleLineComment",value:function(e){for(this.index+=e;this.index=t)break;if(47===(n=this.source.charCodeAt(this.index+1)))this.skipSingleLineComment(2),e=!0;else{if(42!==n)break;e=this.skipMultiLineComment()||e}}else if(!this.moduleIsTheGoalSymbol&&e&&45===n){if(this.index+2>=t)break;if("-"!==this.source.charAt(this.index+1)||">"!==this.source.charAt(this.index+2))break;this.skipSingleLineComment(3)}else{if(this.moduleIsTheGoalSymbol||60!==n)break;if("!--"!==this.source.slice(this.index+1,this.index+4))break;this.skipSingleLineComment(4),e=!0}}}},{key:"scanHexEscape2",value:function(){if(this.index+2>this.source.length)return-1;var e=(0,o.getHexValue)(this.source.charAt(this.index));if(-1===e)return-1;var t=(0,o.getHexValue)(this.source.charAt(this.index+1));return-1===t?-1:(this.index+=2,e<<4|t)}},{key:"scanUnicode",value:function(){if("{"===this.source.charAt(this.index)){for(var e=this.index+1,t=0,n=void 0;e1114111)throw this.createILLEGAL();e++}if("}"!==n)throw this.createILLEGAL();if(e===this.index+1)throw++this.index,this.createILLEGAL();return this.index=e+1,t}if(this.index+4>this.source.length)return-1;var i=(0,o.getHexValue)(this.source.charAt(this.index));if(-1===i)return-1;var a=(0,o.getHexValue)(this.source.charAt(this.index+1));if(-1===a)return-1;var s=(0,o.getHexValue)(this.source.charAt(this.index+2));if(-1===s)return-1;var u=(0,o.getHexValue)(this.source.charAt(this.index+3));return-1===u?-1:(this.index+=4,i<<12|a<<8|s<<4|u)}},{key:"getEscapedIdentifier",value:function(){for(var e="",t=o.isIdentifierStart;this.index=this.source.length)throw this.createILLEGAL();if("u"!==this.source.charAt(this.index))throw this.createILLEGAL();if(++this.index,(r=this.scanUnicode())<0)throw this.createILLEGAL();n=y(r)}else if(r>=55296&&r<=56319){if(this.index>=this.source.length)throw this.createILLEGAL();var a=this.source.charCodeAt(this.index);if(++this.index,!(a>=56320&&a<=57343))throw this.createILLEGAL();n=y(r=1024*(r-55296)+(a-56320)+65536)}if(!t(r)){if(e.length<1)throw this.createILLEGAL();return this.index=i,e}t=o.isIdentifierPart,e+=n}return e}},{key:"getIdentifier",value:function(){for(var e=this.index,t=this.source.length,n=this.index,r=o.isIdentifierStart;n=55296&&a<=56319)return this.index=e,this.getEscapedIdentifier();if(!r(a))return this.index=n,this.source.slice(e,n);++n,r=o.isIdentifierPart}return this.index=n,this.source.slice(e,n)}},{key:"scanIdentifier",value:function(){var e=this.getLocation(),t=this.index,n="\\"===this.source.charAt(this.index)?this.getEscapedIdentifier():this.getIdentifier(),r=this.getSlice(t,e);r.text=n;var i=this.index-t!==n.length,o=this.getKeyword(n);return i&&o!==c.IDENTIFIER&&(o=c.ESCAPED_KEYWORD),{type:o,value:n,slice:r,escaped:i}}},{key:"getLocation",value:function(){return{line:this.startLine+1,column:this.startIndex-this.startLineStart,offset:this.startIndex}}},{key:"getLastTokenEndLocation",value:function(){return{line:this.lastLine+1,column:this.lastIndex-this.lastLineStart,offset:this.lastIndex}}},{key:"getSlice",value:function(e,t){return{text:this.source.slice(e,this.index),start:e,startLocation:t,end:this.index}}},{key:"scanPunctuatorHelper",value:function(){var e=this.source.charAt(this.index);switch(e){case".":return"."!==this.source.charAt(this.index+1)||"."!==this.source.charAt(this.index+2)?c.PERIOD:c.ELLIPSIS;case"(":return c.LPAREN;case")":case";":case",":case"}":case"[":case"]":case":":case"?":case"~":return d[e.charCodeAt(0)];case"{":return c.LBRACE;default:if(this.index+1":return c.GTE;case"/":return c.ASSIGN_DIV;case"%":return c.ASSIGN_MOD;case"^":return c.ASSIGN_BIT_XOR;case"&":return c.ASSIGN_BIT_AND}}if(this.index+1"===e&&">"===n)return this.index+3"===e&&"="===n)return c.ASSIGN_SHR;if("*"===e&&"="===n)return c.ASSIGN_EXP}switch(e){case"*":return c.EXP;case"+":return c.INC;case"-":return c.DEC;case"<":return c.SHL;case">":return c.SHR;case"&":return c.AND;case"|":return c.OR}}else if("="===e&&">"===t)return c.ARROW}return d[e.charCodeAt(0)]}},{key:"scanPunctuator",value:function(){var e=this.getLocation(),t=this.index,n=this.scanPunctuatorHelper();return this.index+=n.name.length,{type:n,value:n.name,slice:this.getSlice(t,e)}}},{key:"scanHexLiteral",value:function(e,t){for(var n=this.index;n="0"&&n<="7")){if((0,o.isIdentifierPart)(n.charCodeAt(0)))throw this.createILLEGAL();break}this.index++}if(this.index-e===2)throw this.createILLEGAL();return{type:c.NUMBER,value:parseInt(this.getSlice(e,t).text.substr(2),8),slice:this.getSlice(e,t),octal:!1,noctal:!1}}},{key:"scanLegacyOctalLiteral",value:function(e,t){for(var n=!0;this.index="0"&&r<="7")this.index++;else{if("8"!==r&&"9"!==r){if((0,o.isIdentifierPart)(r.charCodeAt(0)))throw this.createILLEGAL();break}n=!1,this.index++}}var i=this.getSlice(e,t);return n?{type:c.NUMBER,slice:i,value:parseInt(i.text.substr(1),8),octal:!0,noctal:!n}:(this.eatDecimalLiteralSuffix(),{type:c.NUMBER,slice:i,value:+i.text,octal:!0,noctal:!n})}},{key:"scanNumericLiteral",value:function(){var e=this.source.charAt(this.index),t=this.getLocation(),n=this.index;if("0"===e){if(this.index++,!(this.index="0"&&e<="9")return this.scanLegacyOctalLiteral(n,t)}else if("."!==e)for(e=this.source.charAt(this.index);e>="0"&&e<="9";){if(this.index++,this.index===this.source.length){var i=this.getSlice(n,t);return{type:c.NUMBER,value:+i.text,slice:i,octal:!1,noctal:!1}}e=this.source.charAt(this.index)}if(this.eatDecimalLiteralSuffix(),this.index!==this.source.length&&(0,o.isIdentifierStart)(this.source.charCodeAt(this.index)))throw this.createILLEGAL();var a=this.getSlice(n,t);return{type:c.NUMBER,value:+a.text,slice:a,octal:!1,noctal:!1}}},{key:"eatDecimalLiteralSuffix",value:function(){var e=this.source.charAt(this.index);if("."===e){if(this.index++,this.index===this.source.length)return;for(e=this.source.charAt(this.index);e>="0"&&e<="9";){if(this.index++,this.index===this.source.length)return;e=this.source.charAt(this.index)}}if("e"===e||"E"===e){if(this.index++,this.index===this.source.length)throw this.createILLEGAL();if("+"===(e=this.source.charAt(this.index))||"-"===e){if(this.index++,this.index===this.source.length)throw this.createILLEGAL();e=this.source.charAt(this.index)}if(!(e>="0"&&e<="9"))throw this.createILLEGAL();for(;e>="0"&&e<="9"&&(this.index++,this.index!==this.source.length);)e=this.source.charAt(this.index)}}},{key:"scanStringEscape",value:function(e,t){if(this.index++,this.index===this.source.length)throw this.createILLEGAL();var n=this.source.charAt(this.index);if((0,o.isLineTerminator)(n.charCodeAt(0)))this.index++,"\r"===n&&"\n"===this.source.charAt(this.index)&&this.index++,this.lineStart=this.index,this.line++;else switch(n){case"n":e+="\n",this.index++;break;case"r":e+="\r",this.index++;break;case"t":e+="\t",this.index++;break;case"u":case"x":var r;if(this.index++,this.index>=this.source.length)throw this.createILLEGAL();if((r="u"===n?this.scanUnicode():this.scanHexEscape2())<0)throw this.createILLEGAL();e+=y(r);break;case"b":e+="\b",this.index++;break;case"f":e+="\f",this.index++;break;case"v":e+="\v",this.index++;break;default:if(n>="0"&&n<="7"){var i=this.index,a=1;n>="0"&&n<="3"&&(a=0);for(var s=0;a<3&&n>="0"&&n<="7";){if(this.index++,(a>0||"0"!==n)&&(t=this.source.slice(i,this.index)),s*=8,s+=n-"0",a++,this.index===this.source.length)throw this.createILLEGAL();n=this.source.charAt(this.index)}0!==s||1!==a||"8"!==n&&"9"!==n||(t=this.source.slice(i,this.index+1)),e+=String.fromCharCode(s)}else{if("8"===n||"9"===n)throw this.createILLEGAL();e+=n,this.index++}}return[e,t]}},{key:"scanStringLiteral",value:function(){var e="",t=this.source.charAt(this.index),n=this.getLocation(),i=this.index;this.index++;for(var a=null;this.index=this.source.length)return{type:c.EOS,slice:this.getSlice(this.index,e)};var t=this.source.charCodeAt(this.index);if(t<128){if(h[t])return this.scanPunctuator();if((0,o.isIdentifierStart)(t)||92===t)return this.scanIdentifier();if(46===t)return this.index+1=48&&t<=57)return this.scanNumericLiteral();throw this.createILLEGAL()}if((0,o.isIdentifierStart)(t)||t>=55296&&t<=56319)return this.scanIdentifier();throw this.createILLEGAL()}},{key:"eof",value:function(){return this.lookahead.type===c.EOS}},{key:"lex",value:function(){var e=this.lookahead;return this.lookahead=this.advance(),this.tokenIndex++,e}}],[{key:"cse2",value:function(e,t,n){return e.charAt(1)===t&&e.charAt(2)===n}},{key:"cse3",value:function(e,t,n,r){return e.charAt(1)===t&&e.charAt(2)===n&&e.charAt(3)===r}},{key:"cse4",value:function(e,t,n,r,i){return e.charAt(1)===t&&e.charAt(2)===n&&e.charAt(3)===r&&e.charAt(4)===i}},{key:"cse5",value:function(e,t,n,r,i,o){return e.charAt(1)===t&&e.charAt(2)===n&&e.charAt(3)===r&&e.charAt(4)===i&&e.charAt(5)===o}},{key:"cse6",value:function(e,t,n,r,i,o,a){return e.charAt(1)===t&&e.charAt(2)===n&&e.charAt(3)===r&&e.charAt(4)===i&&e.charAt(5)===o&&e.charAt(6)===a}},{key:"cse7",value:function(e,t,n,r,i,o,a,s){return e.charAt(1)===t&&e.charAt(2)===n&&e.charAt(3)===r&&e.charAt(4)===i&&e.charAt(5)===o&&e.charAt(6)===a&&e.charAt(7)===s}}]),e}();t.default=v},8194:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0});t.whitespaceArray=[5760,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8239,8287,12288,65279],t.whitespaceBool=[!1,!1,!1,!1,!1,!1,!1,!1,!1,!0,!1,!0,!0,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!0,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1],t.idStartLargeRegex=/^[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0-\u08B4\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C60\u0C61\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2118-\u211D\u2124\u2126\u2128\u212A-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309B-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FD5\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AD\uA7B0-\uA7B7\uA7F7-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDE80-\uDE9C\uDEA0-\uDED0\uDF00-\uDF1F\uDF30-\uDF4A\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE4\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2]|\uD804[\uDC03-\uDC37\uDC83-\uDCAF\uDCD0-\uDCE8\uDD03-\uDD26\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE2B\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEDE\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF50\uDF5D-\uDF61]|\uD805[\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE80-\uDEAA\uDF00-\uDF19]|\uD806[\uDCA0-\uDCDF\uDCFF\uDEC0-\uDEF8]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50\uDF93-\uDF9F]|\uD82C[\uDC00\uDC01]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB]|\uD83A[\uDC00-\uDCC4]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1]|\uD87E[\uDC00-\uDE1D]$/,t.idStartBool=[!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!0,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!1,!1,!1,!1,!0,!1,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!1,!1,!1,!1,!1],t.idContinueLargeRegex=/^[\xAA\xB5\xB7\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0300-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u0483-\u0487\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u05D0-\u05EA\u05F0-\u05F2\u0610-\u061A\u0620-\u0669\u066E-\u06D3\u06D5-\u06DC\u06DF-\u06E8\u06EA-\u06FC\u06FF\u0710-\u074A\u074D-\u07B1\u07C0-\u07F5\u07FA\u0800-\u082D\u0840-\u085B\u08A0-\u08B4\u08E3-\u0963\u0966-\u096F\u0971-\u0983\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BC-\u09C4\u09C7\u09C8\u09CB-\u09CE\u09D7\u09DC\u09DD\u09DF-\u09E3\u09E6-\u09F1\u0A01-\u0A03\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A59-\u0A5C\u0A5E\u0A66-\u0A75\u0A81-\u0A83\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABC-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AD0\u0AE0-\u0AE3\u0AE6-\u0AEF\u0AF9\u0B01-\u0B03\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3C-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B5C\u0B5D\u0B5F-\u0B63\u0B66-\u0B6F\u0B71\u0B82\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD0\u0BD7\u0BE6-\u0BEF\u0C00-\u0C03\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C58-\u0C5A\u0C60-\u0C63\u0C66-\u0C6F\u0C81-\u0C83\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBC-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CDE\u0CE0-\u0CE3\u0CE6-\u0CEF\u0CF1\u0CF2\u0D01-\u0D03\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D-\u0D44\u0D46-\u0D48\u0D4A-\u0D4E\u0D57\u0D5F-\u0D63\u0D66-\u0D6F\u0D7A-\u0D7F\u0D82\u0D83\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DE6-\u0DEF\u0DF2\u0DF3\u0E01-\u0E3A\u0E40-\u0E4E\u0E50-\u0E59\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB9\u0EBB-\u0EBD\u0EC0-\u0EC4\u0EC6\u0EC8-\u0ECD\u0ED0-\u0ED9\u0EDC-\u0EDF\u0F00\u0F18\u0F19\u0F20-\u0F29\u0F35\u0F37\u0F39\u0F3E-\u0F47\u0F49-\u0F6C\u0F71-\u0F84\u0F86-\u0F97\u0F99-\u0FBC\u0FC6\u1000-\u1049\u1050-\u109D\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u135D-\u135F\u1369-\u1371\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1714\u1720-\u1734\u1740-\u1753\u1760-\u176C\u176E-\u1770\u1772\u1773\u1780-\u17D3\u17D7\u17DC\u17DD\u17E0-\u17E9\u180B-\u180D\u1810-\u1819\u1820-\u1877\u1880-\u18AA\u18B0-\u18F5\u1900-\u191E\u1920-\u192B\u1930-\u193B\u1946-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u19D0-\u19DA\u1A00-\u1A1B\u1A20-\u1A5E\u1A60-\u1A7C\u1A7F-\u1A89\u1A90-\u1A99\u1AA7\u1AB0-\u1ABD\u1B00-\u1B4B\u1B50-\u1B59\u1B6B-\u1B73\u1B80-\u1BF3\u1C00-\u1C37\u1C40-\u1C49\u1C4D-\u1C7D\u1CD0-\u1CD2\u1CD4-\u1CF6\u1CF8\u1CF9\u1D00-\u1DF5\u1DFC-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u200C\u200D\u203F\u2040\u2054\u2071\u207F\u2090-\u209C\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2102\u2107\u210A-\u2113\u2115\u2118-\u211D\u2124\u2126\u2128\u212A-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D7F-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2DE0-\u2DFF\u3005-\u3007\u3021-\u302F\u3031-\u3035\u3038-\u303C\u3041-\u3096\u3099-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FD5\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA62B\uA640-\uA66F\uA674-\uA67D\uA67F-\uA6F1\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AD\uA7B0-\uA7B7\uA7F7-\uA827\uA840-\uA873\uA880-\uA8C4\uA8D0-\uA8D9\uA8E0-\uA8F7\uA8FB\uA8FD\uA900-\uA92D\uA930-\uA953\uA960-\uA97C\uA980-\uA9C0\uA9CF-\uA9D9\uA9E0-\uA9FE\uAA00-\uAA36\uAA40-\uAA4D\uAA50-\uAA59\uAA60-\uAA76\uAA7A-\uAAC2\uAADB-\uAADD\uAAE0-\uAAEF\uAAF2-\uAAF6\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABEA\uABEC\uABED\uABF0-\uABF9\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE00-\uFE0F\uFE20-\uFE2F\uFE33\uFE34\uFE4D-\uFE4F\uFE70-\uFE74\uFE76-\uFEFC\uFF10-\uFF19\uFF21-\uFF3A\uFF3F\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDDFD\uDE80-\uDE9C\uDEA0-\uDED0\uDEE0\uDF00-\uDF1F\uDF30-\uDF4A\uDF50-\uDF7A\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCA0-\uDCA9\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00-\uDE03\uDE05\uDE06\uDE0C-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE38-\uDE3A\uDE3F\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE6\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2]|\uD804[\uDC00-\uDC46\uDC66-\uDC6F\uDC7F-\uDCBA\uDCD0-\uDCE8\uDCF0-\uDCF9\uDD00-\uDD34\uDD36-\uDD3F\uDD50-\uDD73\uDD76\uDD80-\uDDC4\uDDCA-\uDDCC\uDDD0-\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE37\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEEA\uDEF0-\uDEF9\uDF00-\uDF03\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3C-\uDF44\uDF47\uDF48\uDF4B-\uDF4D\uDF50\uDF57\uDF5D-\uDF63\uDF66-\uDF6C\uDF70-\uDF74]|\uD805[\uDC80-\uDCC5\uDCC7\uDCD0-\uDCD9\uDD80-\uDDB5\uDDB8-\uDDC0\uDDD8-\uDDDD\uDE00-\uDE40\uDE44\uDE50-\uDE59\uDE80-\uDEB7\uDEC0-\uDEC9\uDF00-\uDF19\uDF1D-\uDF2B\uDF30-\uDF39]|\uD806[\uDCA0-\uDCE9\uDCFF\uDEC0-\uDEF8]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDE60-\uDE69\uDED0-\uDEED\uDEF0-\uDEF4\uDF00-\uDF36\uDF40-\uDF43\uDF50-\uDF59\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50-\uDF7E\uDF8F-\uDF9F]|\uD82C[\uDC00\uDC01]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99\uDC9D\uDC9E]|\uD834[\uDD65-\uDD69\uDD6D-\uDD72\uDD7B-\uDD82\uDD85-\uDD8B\uDDAA-\uDDAD\uDE42-\uDE44]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB\uDFCE-\uDFFF]|\uD836[\uDE00-\uDE36\uDE3B-\uDE6C\uDE75\uDE84\uDE9B-\uDE9F\uDEA1-\uDEAF]|\uD83A[\uDC00-\uDCC4\uDCD0-\uDCD6]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1]|\uD87E[\uDC00-\uDE1D]|\uDB40[\uDD00-\uDDEF]$/,t.idContinueBool=[!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!0,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!1,!1,!1,!1,!1,!1,!1,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!1,!1,!1,!1,!0,!1,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!1,!1,!1,!1,!1]},1509:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.isStrictModeReservedWord=function(e){return-1!==i.indexOf(e)},t.isWhiteSpace=function(e){return e<128?r.whitespaceBool[e]:160===e||e>5759&&-1!==r.whitespaceArray.indexOf(e)},t.isLineTerminator=function(e){return 10===e||13===e||8232===e||8233===e},t.isIdentifierStart=function(e){return e<128?r.idStartBool[e]:r.idStartLargeRegex.test(String.fromCodePoint(e))},t.isIdentifierPart=function(e){return e<128?r.idContinueBool[e]:r.idContinueLargeRegex.test(String.fromCodePoint(e))},t.isDecimalDigit=function(e){return e>=48&&e<=57},t.getHexValue=function(e){if(e>="0"&&e<="9")return e.charCodeAt(0)-48;if(e>="a"&&e<="f")return e.charCodeAt(0)-87;if(e>="A"&&e<="F")return e.charCodeAt(0)-55;return-1};var r=n(8194),i=["null","true","false","implements","interface","package","private","protected","public","static","let","if","in","do","var","for","new","try","this","else","case","void","with","enum","while","break","catch","throw","const","yield","class","super","return","typeof","delete","switch","export","import","default","finally","extends","function","continue","debugger","instanceof"]},614:function(e,t){"use strict";function n(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(t,"__esModule",{value:!0});t.ArrayAssignmentTarget=function e(t){var r=t.elements,i=t.rest;n(this,e),this.type="ArrayAssignmentTarget",this.elements=r,this.rest=i},t.ArrayBinding=function e(t){var r=t.elements,i=t.rest;n(this,e),this.type="ArrayBinding",this.elements=r,this.rest=i},t.ArrayExpression=function e(t){var r=t.elements;n(this,e),this.type="ArrayExpression",this.elements=r},t.ArrowExpression=function e(t){var r=t.isAsync,i=t.params,o=t.body;n(this,e),this.type="ArrowExpression",this.isAsync=r,this.params=i,this.body=o},t.AssignmentExpression=function e(t){var r=t.binding,i=t.expression;n(this,e),this.type="AssignmentExpression",this.binding=r,this.expression=i},t.AssignmentTargetIdentifier=function e(t){var r=t.name;n(this,e),this.type="AssignmentTargetIdentifier",this.name=r},t.AssignmentTargetPropertyIdentifier=function e(t){var r=t.binding,i=t.init;n(this,e),this.type="AssignmentTargetPropertyIdentifier",this.binding=r,this.init=i},t.AssignmentTargetPropertyProperty=function e(t){var r=t.name,i=t.binding;n(this,e),this.type="AssignmentTargetPropertyProperty",this.name=r,this.binding=i},t.AssignmentTargetWithDefault=function e(t){var r=t.binding,i=t.init;n(this,e),this.type="AssignmentTargetWithDefault",this.binding=r,this.init=i},t.AwaitExpression=function e(t){var r=t.expression;n(this,e),this.type="AwaitExpression",this.expression=r},t.BinaryExpression=function e(t){var r=t.left,i=t.operator,o=t.right;n(this,e),this.type="BinaryExpression",this.left=r,this.operator=i,this.right=o},t.BindingIdentifier=function e(t){var r=t.name;n(this,e),this.type="BindingIdentifier",this.name=r},t.BindingPropertyIdentifier=function e(t){var r=t.binding,i=t.init;n(this,e),this.type="BindingPropertyIdentifier",this.binding=r,this.init=i},t.BindingPropertyProperty=function e(t){var r=t.name,i=t.binding;n(this,e),this.type="BindingPropertyProperty",this.name=r,this.binding=i},t.BindingWithDefault=function e(t){var r=t.binding,i=t.init;n(this,e),this.type="BindingWithDefault",this.binding=r,this.init=i},t.Block=function e(t){var r=t.statements;n(this,e),this.type="Block",this.statements=r},t.BlockStatement=function e(t){var r=t.block;n(this,e),this.type="BlockStatement",this.block=r},t.BreakStatement=function e(t){var r=t.label;n(this,e),this.type="BreakStatement",this.label=r},t.CallExpression=function e(t){var r=t.callee,i=t.arguments;n(this,e),this.type="CallExpression",this.callee=r,this.arguments=i},t.CatchClause=function e(t){var r=t.binding,i=t.body;n(this,e),this.type="CatchClause",this.binding=r,this.body=i},t.ClassDeclaration=function e(t){var r=t.name,i=t.super,o=t.elements;n(this,e),this.type="ClassDeclaration",this.name=r,this.super=i,this.elements=o},t.ClassElement=function e(t){var r=t.isStatic,i=t.method;n(this,e),this.type="ClassElement",this.isStatic=r,this.method=i},t.ClassExpression=function e(t){var r=t.name,i=t.super,o=t.elements;n(this,e),this.type="ClassExpression",this.name=r,this.super=i,this.elements=o},t.CompoundAssignmentExpression=function e(t){var r=t.binding,i=t.operator,o=t.expression;n(this,e),this.type="CompoundAssignmentExpression",this.binding=r,this.operator=i,this.expression=o},t.ComputedMemberAssignmentTarget=function e(t){var r=t.object,i=t.expression;n(this,e),this.type="ComputedMemberAssignmentTarget",this.object=r,this.expression=i},t.ComputedMemberExpression=function e(t){var r=t.object,i=t.expression;n(this,e),this.type="ComputedMemberExpression",this.object=r,this.expression=i},t.ComputedPropertyName=function e(t){var r=t.expression;n(this,e),this.type="ComputedPropertyName",this.expression=r},t.ConditionalExpression=function e(t){var r=t.test,i=t.consequent,o=t.alternate;n(this,e),this.type="ConditionalExpression",this.test=r,this.consequent=i,this.alternate=o},t.ContinueStatement=function e(t){var r=t.label;n(this,e),this.type="ContinueStatement",this.label=r},t.DataProperty=function e(t){var r=t.name,i=t.expression;n(this,e),this.type="DataProperty",this.name=r,this.expression=i},t.DebuggerStatement=function e(){n(this,e),this.type="DebuggerStatement"},t.Directive=function e(t){var r=t.rawValue;n(this,e),this.type="Directive",this.rawValue=r},t.DoWhileStatement=function e(t){var r=t.body,i=t.test;n(this,e),this.type="DoWhileStatement",this.body=r,this.test=i},t.EmptyStatement=function e(){n(this,e),this.type="EmptyStatement"},t.Export=function e(t){var r=t.declaration;n(this,e),this.type="Export",this.declaration=r},t.ExportAllFrom=function e(t){var r=t.moduleSpecifier;n(this,e),this.type="ExportAllFrom",this.moduleSpecifier=r},t.ExportDefault=function e(t){var r=t.body;n(this,e),this.type="ExportDefault",this.body=r},t.ExportFrom=function e(t){var r=t.namedExports,i=t.moduleSpecifier;n(this,e),this.type="ExportFrom",this.namedExports=r,this.moduleSpecifier=i},t.ExportFromSpecifier=function e(t){var r=t.name,i=t.exportedName;n(this,e),this.type="ExportFromSpecifier",this.name=r,this.exportedName=i},t.ExportLocalSpecifier=function e(t){var r=t.name,i=t.exportedName;n(this,e),this.type="ExportLocalSpecifier",this.name=r,this.exportedName=i},t.ExportLocals=function e(t){var r=t.namedExports;n(this,e),this.type="ExportLocals",this.namedExports=r},t.ExpressionStatement=function e(t){var r=t.expression;n(this,e),this.type="ExpressionStatement",this.expression=r},t.ForAwaitStatement=function e(t){var r=t.left,i=t.right,o=t.body;n(this,e),this.type="ForAwaitStatement",this.left=r,this.right=i,this.body=o},t.ForInStatement=function e(t){var r=t.left,i=t.right,o=t.body;n(this,e),this.type="ForInStatement",this.left=r,this.right=i,this.body=o},t.ForOfStatement=function e(t){var r=t.left,i=t.right,o=t.body;n(this,e),this.type="ForOfStatement",this.left=r,this.right=i,this.body=o},t.ForStatement=function e(t){var r=t.init,i=t.test,o=t.update,a=t.body;n(this,e),this.type="ForStatement",this.init=r,this.test=i,this.update=o,this.body=a},t.FormalParameters=function e(t){var r=t.items,i=t.rest;n(this,e),this.type="FormalParameters",this.items=r,this.rest=i},t.FunctionBody=function e(t){var r=t.directives,i=t.statements;n(this,e),this.type="FunctionBody",this.directives=r,this.statements=i},t.FunctionDeclaration=function e(t){var r=t.isAsync,i=t.isGenerator,o=t.name,a=t.params,s=t.body;n(this,e),this.type="FunctionDeclaration",this.isAsync=r,this.isGenerator=i,this.name=o,this.params=a,this.body=s},t.FunctionExpression=function e(t){var r=t.isAsync,i=t.isGenerator,o=t.name,a=t.params,s=t.body;n(this,e),this.type="FunctionExpression",this.isAsync=r,this.isGenerator=i,this.name=o,this.params=a,this.body=s},t.Getter=function e(t){var r=t.name,i=t.body;n(this,e),this.type="Getter",this.name=r,this.body=i},t.IdentifierExpression=function e(t){var r=t.name;n(this,e),this.type="IdentifierExpression",this.name=r},t.IfStatement=function e(t){var r=t.test,i=t.consequent,o=t.alternate;n(this,e),this.type="IfStatement",this.test=r,this.consequent=i,this.alternate=o},t.Import=function e(t){var r=t.defaultBinding,i=t.namedImports,o=t.moduleSpecifier;n(this,e),this.type="Import",this.defaultBinding=r,this.namedImports=i,this.moduleSpecifier=o},t.ImportNamespace=function e(t){var r=t.defaultBinding,i=t.namespaceBinding,o=t.moduleSpecifier;n(this,e),this.type="ImportNamespace",this.defaultBinding=r,this.namespaceBinding=i,this.moduleSpecifier=o},t.ImportSpecifier=function e(t){var r=t.name,i=t.binding;n(this,e),this.type="ImportSpecifier",this.name=r,this.binding=i},t.LabeledStatement=function e(t){var r=t.label,i=t.body;n(this,e),this.type="LabeledStatement",this.label=r,this.body=i},t.LiteralBooleanExpression=function e(t){var r=t.value;n(this,e),this.type="LiteralBooleanExpression",this.value=r},t.LiteralInfinityExpression=function e(){n(this,e),this.type="LiteralInfinityExpression"},t.LiteralNullExpression=function e(){n(this,e),this.type="LiteralNullExpression"},t.LiteralNumericExpression=function e(t){var r=t.value;n(this,e),this.type="LiteralNumericExpression",this.value=r},t.LiteralRegExpExpression=function e(t){var r=t.pattern,i=t.global,o=t.ignoreCase,a=t.multiLine,s=t.dotAll,u=t.unicode,c=t.sticky;n(this,e),this.type="LiteralRegExpExpression",this.pattern=r,this.global=i,this.ignoreCase=o,this.multiLine=a,this.dotAll=s,this.unicode=u,this.sticky=c},t.LiteralStringExpression=function e(t){var r=t.value;n(this,e),this.type="LiteralStringExpression",this.value=r},t.Method=function e(t){var r=t.isAsync,i=t.isGenerator,o=t.name,a=t.params,s=t.body;n(this,e),this.type="Method",this.isAsync=r,this.isGenerator=i,this.name=o,this.params=a,this.body=s},t.Module=function e(t){var r=t.directives,i=t.items;n(this,e),this.type="Module",this.directives=r,this.items=i},t.NewExpression=function e(t){var r=t.callee,i=t.arguments;n(this,e),this.type="NewExpression",this.callee=r,this.arguments=i},t.NewTargetExpression=function e(){n(this,e),this.type="NewTargetExpression"},t.ObjectAssignmentTarget=function e(t){var r=t.properties,i=t.rest;n(this,e),this.type="ObjectAssignmentTarget",this.properties=r,this.rest=i},t.ObjectBinding=function e(t){var r=t.properties,i=t.rest;n(this,e),this.type="ObjectBinding",this.properties=r,this.rest=i},t.ObjectExpression=function e(t){var r=t.properties;n(this,e),this.type="ObjectExpression",this.properties=r},t.ReturnStatement=function e(t){var r=t.expression;n(this,e),this.type="ReturnStatement",this.expression=r},t.Script=function e(t){var r=t.directives,i=t.statements;n(this,e),this.type="Script",this.directives=r,this.statements=i},t.Setter=function e(t){var r=t.name,i=t.param,o=t.body;n(this,e),this.type="Setter",this.name=r,this.param=i,this.body=o},t.ShorthandProperty=function e(t){var r=t.name;n(this,e),this.type="ShorthandProperty",this.name=r},t.SpreadElement=function e(t){var r=t.expression;n(this,e),this.type="SpreadElement",this.expression=r},t.SpreadProperty=function e(t){var r=t.expression;n(this,e),this.type="SpreadProperty",this.expression=r},t.StaticMemberAssignmentTarget=function e(t){var r=t.object,i=t.property;n(this,e),this.type="StaticMemberAssignmentTarget",this.object=r,this.property=i},t.StaticMemberExpression=function e(t){var r=t.object,i=t.property;n(this,e),this.type="StaticMemberExpression",this.object=r,this.property=i},t.StaticPropertyName=function e(t){var r=t.value;n(this,e),this.type="StaticPropertyName",this.value=r},t.Super=function e(){n(this,e),this.type="Super"},t.SwitchCase=function e(t){var r=t.test,i=t.consequent;n(this,e),this.type="SwitchCase",this.test=r,this.consequent=i},t.SwitchDefault=function e(t){var r=t.consequent;n(this,e),this.type="SwitchDefault",this.consequent=r},t.SwitchStatement=function e(t){var r=t.discriminant,i=t.cases;n(this,e),this.type="SwitchStatement",this.discriminant=r,this.cases=i},t.SwitchStatementWithDefault=function e(t){var r=t.discriminant,i=t.preDefaultCases,o=t.defaultCase,a=t.postDefaultCases;n(this,e),this.type="SwitchStatementWithDefault",this.discriminant=r,this.preDefaultCases=i,this.defaultCase=o,this.postDefaultCases=a},t.TemplateElement=function e(t){var r=t.rawValue;n(this,e),this.type="TemplateElement",this.rawValue=r},t.TemplateExpression=function e(t){var r=t.tag,i=t.elements;n(this,e),this.type="TemplateExpression",this.tag=r,this.elements=i},t.ThisExpression=function e(){n(this,e),this.type="ThisExpression"},t.ThrowStatement=function e(t){var r=t.expression;n(this,e),this.type="ThrowStatement",this.expression=r},t.TryCatchStatement=function e(t){var r=t.body,i=t.catchClause;n(this,e),this.type="TryCatchStatement",this.body=r,this.catchClause=i},t.TryFinallyStatement=function e(t){var r=t.body,i=t.catchClause,o=t.finalizer;n(this,e),this.type="TryFinallyStatement",this.body=r,this.catchClause=i,this.finalizer=o},t.UnaryExpression=function e(t){var r=t.operator,i=t.operand;n(this,e),this.type="UnaryExpression",this.operator=r,this.operand=i},t.UpdateExpression=function e(t){var r=t.isPrefix,i=t.operator,o=t.operand;n(this,e),this.type="UpdateExpression",this.isPrefix=r,this.operator=i,this.operand=o},t.VariableDeclaration=function e(t){var r=t.kind,i=t.declarators;n(this,e),this.type="VariableDeclaration",this.kind=r,this.declarators=i},t.VariableDeclarationStatement=function e(t){var r=t.declaration;n(this,e),this.type="VariableDeclarationStatement",this.declaration=r},t.VariableDeclarator=function e(t){var r=t.binding,i=t.init;n(this,e),this.type="VariableDeclarator",this.binding=r,this.init=i},t.WhileStatement=function e(t){var r=t.test,i=t.body;n(this,e),this.type="WhileStatement",this.test=r,this.body=i},t.WithStatement=function e(t){var r=t.object,i=t.body;n(this,e),this.type="WithStatement",this.object=r,this.body=i},t.YieldExpression=function e(t){var r=t.expression;n(this,e),this.type="YieldExpression",this.expression=r},t.YieldGeneratorExpression=function e(t){var r=t.expression;n(this,e),this.type="YieldGeneratorExpression",this.expression=r}},8175:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function e(t,n,r){null===t&&(t=Function.prototype);var i=Object.getOwnPropertyDescriptor(t,n);if(void 0===i){var o=Object.getPrototypeOf(t);return null===o?void 0:e(o,n,r)}if("value"in i)return i.value;var a=i.get;return void 0!==a?a.call(r):void 0};!function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);t.default=e}(n(5331));t.default=function(e,t){var n;return n={__proto__:t,reduceArrayAssignmentTarget:function(t,i){return e(r(n.__proto__||Object.getPrototypeOf(n),"reduceArrayAssignmentTarget",this).call(this,t,i),t)},reduceArrayBinding:function(t,i){return e(r(n.__proto__||Object.getPrototypeOf(n),"reduceArrayBinding",this).call(this,t,i),t)},reduceArrayExpression:function(t,i){return e(r(n.__proto__||Object.getPrototypeOf(n),"reduceArrayExpression",this).call(this,t,i),t)},reduceArrowExpression:function(t,i){return e(r(n.__proto__||Object.getPrototypeOf(n),"reduceArrowExpression",this).call(this,t,i),t)},reduceAssignmentExpression:function(t,i){return e(r(n.__proto__||Object.getPrototypeOf(n),"reduceAssignmentExpression",this).call(this,t,i),t)},reduceAssignmentTargetIdentifier:function(t,i){return e(r(n.__proto__||Object.getPrototypeOf(n),"reduceAssignmentTargetIdentifier",this).call(this,t,i),t)},reduceAssignmentTargetPropertyIdentifier:function(t,i){return e(r(n.__proto__||Object.getPrototypeOf(n),"reduceAssignmentTargetPropertyIdentifier",this).call(this,t,i),t)},reduceAssignmentTargetPropertyProperty:function(t,i){return e(r(n.__proto__||Object.getPrototypeOf(n),"reduceAssignmentTargetPropertyProperty",this).call(this,t,i),t)},reduceAssignmentTargetWithDefault:function(t,i){return e(r(n.__proto__||Object.getPrototypeOf(n),"reduceAssignmentTargetWithDefault",this).call(this,t,i),t)},reduceAwaitExpression:function(t,i){return e(r(n.__proto__||Object.getPrototypeOf(n),"reduceAwaitExpression",this).call(this,t,i),t)},reduceBinaryExpression:function(t,i){return e(r(n.__proto__||Object.getPrototypeOf(n),"reduceBinaryExpression",this).call(this,t,i),t)},reduceBindingIdentifier:function(t,i){return e(r(n.__proto__||Object.getPrototypeOf(n),"reduceBindingIdentifier",this).call(this,t,i),t)},reduceBindingPropertyIdentifier:function(t,i){return e(r(n.__proto__||Object.getPrototypeOf(n),"reduceBindingPropertyIdentifier",this).call(this,t,i),t)},reduceBindingPropertyProperty:function(t,i){return e(r(n.__proto__||Object.getPrototypeOf(n),"reduceBindingPropertyProperty",this).call(this,t,i),t)},reduceBindingWithDefault:function(t,i){return e(r(n.__proto__||Object.getPrototypeOf(n),"reduceBindingWithDefault",this).call(this,t,i),t)},reduceBlock:function(t,i){return e(r(n.__proto__||Object.getPrototypeOf(n),"reduceBlock",this).call(this,t,i),t)},reduceBlockStatement:function(t,i){return e(r(n.__proto__||Object.getPrototypeOf(n),"reduceBlockStatement",this).call(this,t,i),t)},reduceBreakStatement:function(t,i){return e(r(n.__proto__||Object.getPrototypeOf(n),"reduceBreakStatement",this).call(this,t,i),t)},reduceCallExpression:function(t,i){return e(r(n.__proto__||Object.getPrototypeOf(n),"reduceCallExpression",this).call(this,t,i),t)},reduceCatchClause:function(t,i){return e(r(n.__proto__||Object.getPrototypeOf(n),"reduceCatchClause",this).call(this,t,i),t)},reduceClassDeclaration:function(t,i){return e(r(n.__proto__||Object.getPrototypeOf(n),"reduceClassDeclaration",this).call(this,t,i),t)},reduceClassElement:function(t,i){return e(r(n.__proto__||Object.getPrototypeOf(n),"reduceClassElement",this).call(this,t,i),t)},reduceClassExpression:function(t,i){return e(r(n.__proto__||Object.getPrototypeOf(n),"reduceClassExpression",this).call(this,t,i),t)},reduceCompoundAssignmentExpression:function(t,i){return e(r(n.__proto__||Object.getPrototypeOf(n),"reduceCompoundAssignmentExpression",this).call(this,t,i),t)},reduceComputedMemberAssignmentTarget:function(t,i){return e(r(n.__proto__||Object.getPrototypeOf(n),"reduceComputedMemberAssignmentTarget",this).call(this,t,i),t)},reduceComputedMemberExpression:function(t,i){return e(r(n.__proto__||Object.getPrototypeOf(n),"reduceComputedMemberExpression",this).call(this,t,i),t)},reduceComputedPropertyName:function(t,i){return e(r(n.__proto__||Object.getPrototypeOf(n),"reduceComputedPropertyName",this).call(this,t,i),t)},reduceConditionalExpression:function(t,i){return e(r(n.__proto__||Object.getPrototypeOf(n),"reduceConditionalExpression",this).call(this,t,i),t)},reduceContinueStatement:function(t,i){return e(r(n.__proto__||Object.getPrototypeOf(n),"reduceContinueStatement",this).call(this,t,i),t)},reduceDataProperty:function(t,i){return e(r(n.__proto__||Object.getPrototypeOf(n),"reduceDataProperty",this).call(this,t,i),t)},reduceDebuggerStatement:function(t,i){return e(r(n.__proto__||Object.getPrototypeOf(n),"reduceDebuggerStatement",this).call(this,t,i),t)},reduceDirective:function(t,i){return e(r(n.__proto__||Object.getPrototypeOf(n),"reduceDirective",this).call(this,t,i),t)},reduceDoWhileStatement:function(t,i){return e(r(n.__proto__||Object.getPrototypeOf(n),"reduceDoWhileStatement",this).call(this,t,i),t)},reduceEmptyStatement:function(t,i){return e(r(n.__proto__||Object.getPrototypeOf(n),"reduceEmptyStatement",this).call(this,t,i),t)},reduceExport:function(t,i){return e(r(n.__proto__||Object.getPrototypeOf(n),"reduceExport",this).call(this,t,i),t)},reduceExportAllFrom:function(t,i){return e(r(n.__proto__||Object.getPrototypeOf(n),"reduceExportAllFrom",this).call(this,t,i),t)},reduceExportDefault:function(t,i){return e(r(n.__proto__||Object.getPrototypeOf(n),"reduceExportDefault",this).call(this,t,i),t)},reduceExportFrom:function(t,i){return e(r(n.__proto__||Object.getPrototypeOf(n),"reduceExportFrom",this).call(this,t,i),t)},reduceExportFromSpecifier:function(t,i){return e(r(n.__proto__||Object.getPrototypeOf(n),"reduceExportFromSpecifier",this).call(this,t,i),t)},reduceExportLocalSpecifier:function(t,i){return e(r(n.__proto__||Object.getPrototypeOf(n),"reduceExportLocalSpecifier",this).call(this,t,i),t)},reduceExportLocals:function(t,i){return e(r(n.__proto__||Object.getPrototypeOf(n),"reduceExportLocals",this).call(this,t,i),t)},reduceExpressionStatement:function(t,i){return e(r(n.__proto__||Object.getPrototypeOf(n),"reduceExpressionStatement",this).call(this,t,i),t)},reduceForAwaitStatement:function(t,i){return e(r(n.__proto__||Object.getPrototypeOf(n),"reduceForAwaitStatement",this).call(this,t,i),t)},reduceForInStatement:function(t,i){return e(r(n.__proto__||Object.getPrototypeOf(n),"reduceForInStatement",this).call(this,t,i),t)},reduceForOfStatement:function(t,i){return e(r(n.__proto__||Object.getPrototypeOf(n),"reduceForOfStatement",this).call(this,t,i),t)},reduceForStatement:function(t,i){return e(r(n.__proto__||Object.getPrototypeOf(n),"reduceForStatement",this).call(this,t,i),t)},reduceFormalParameters:function(t,i){return e(r(n.__proto__||Object.getPrototypeOf(n),"reduceFormalParameters",this).call(this,t,i),t)},reduceFunctionBody:function(t,i){return e(r(n.__proto__||Object.getPrototypeOf(n),"reduceFunctionBody",this).call(this,t,i),t)},reduceFunctionDeclaration:function(t,i){return e(r(n.__proto__||Object.getPrototypeOf(n),"reduceFunctionDeclaration",this).call(this,t,i),t)},reduceFunctionExpression:function(t,i){return e(r(n.__proto__||Object.getPrototypeOf(n),"reduceFunctionExpression",this).call(this,t,i),t)},reduceGetter:function(t,i){return e(r(n.__proto__||Object.getPrototypeOf(n),"reduceGetter",this).call(this,t,i),t)},reduceIdentifierExpression:function(t,i){return e(r(n.__proto__||Object.getPrototypeOf(n),"reduceIdentifierExpression",this).call(this,t,i),t)},reduceIfStatement:function(t,i){return e(r(n.__proto__||Object.getPrototypeOf(n),"reduceIfStatement",this).call(this,t,i),t)},reduceImport:function(t,i){return e(r(n.__proto__||Object.getPrototypeOf(n),"reduceImport",this).call(this,t,i),t)},reduceImportNamespace:function(t,i){return e(r(n.__proto__||Object.getPrototypeOf(n),"reduceImportNamespace",this).call(this,t,i),t)},reduceImportSpecifier:function(t,i){return e(r(n.__proto__||Object.getPrototypeOf(n),"reduceImportSpecifier",this).call(this,t,i),t)},reduceLabeledStatement:function(t,i){return e(r(n.__proto__||Object.getPrototypeOf(n),"reduceLabeledStatement",this).call(this,t,i),t)},reduceLiteralBooleanExpression:function(t,i){return e(r(n.__proto__||Object.getPrototypeOf(n),"reduceLiteralBooleanExpression",this).call(this,t,i),t)},reduceLiteralInfinityExpression:function(t,i){return e(r(n.__proto__||Object.getPrototypeOf(n),"reduceLiteralInfinityExpression",this).call(this,t,i),t)},reduceLiteralNullExpression:function(t,i){return e(r(n.__proto__||Object.getPrototypeOf(n),"reduceLiteralNullExpression",this).call(this,t,i),t)},reduceLiteralNumericExpression:function(t,i){return e(r(n.__proto__||Object.getPrototypeOf(n),"reduceLiteralNumericExpression",this).call(this,t,i),t)},reduceLiteralRegExpExpression:function(t,i){return e(r(n.__proto__||Object.getPrototypeOf(n),"reduceLiteralRegExpExpression",this).call(this,t,i),t)},reduceLiteralStringExpression:function(t,i){return e(r(n.__proto__||Object.getPrototypeOf(n),"reduceLiteralStringExpression",this).call(this,t,i),t)},reduceMethod:function(t,i){return e(r(n.__proto__||Object.getPrototypeOf(n),"reduceMethod",this).call(this,t,i),t)},reduceModule:function(t,i){return e(r(n.__proto__||Object.getPrototypeOf(n),"reduceModule",this).call(this,t,i),t)},reduceNewExpression:function(t,i){return e(r(n.__proto__||Object.getPrototypeOf(n),"reduceNewExpression",this).call(this,t,i),t)},reduceNewTargetExpression:function(t,i){return e(r(n.__proto__||Object.getPrototypeOf(n),"reduceNewTargetExpression",this).call(this,t,i),t)},reduceObjectAssignmentTarget:function(t,i){return e(r(n.__proto__||Object.getPrototypeOf(n),"reduceObjectAssignmentTarget",this).call(this,t,i),t)},reduceObjectBinding:function(t,i){return e(r(n.__proto__||Object.getPrototypeOf(n),"reduceObjectBinding",this).call(this,t,i),t)},reduceObjectExpression:function(t,i){return e(r(n.__proto__||Object.getPrototypeOf(n),"reduceObjectExpression",this).call(this,t,i),t)},reduceReturnStatement:function(t,i){return e(r(n.__proto__||Object.getPrototypeOf(n),"reduceReturnStatement",this).call(this,t,i),t)},reduceScript:function(t,i){return e(r(n.__proto__||Object.getPrototypeOf(n),"reduceScript",this).call(this,t,i),t)},reduceSetter:function(t,i){return e(r(n.__proto__||Object.getPrototypeOf(n),"reduceSetter",this).call(this,t,i),t)},reduceShorthandProperty:function(t,i){return e(r(n.__proto__||Object.getPrototypeOf(n),"reduceShorthandProperty",this).call(this,t,i),t)},reduceSpreadElement:function(t,i){return e(r(n.__proto__||Object.getPrototypeOf(n),"reduceSpreadElement",this).call(this,t,i),t)},reduceSpreadProperty:function(t,i){return e(r(n.__proto__||Object.getPrototypeOf(n),"reduceSpreadProperty",this).call(this,t,i),t)},reduceStaticMemberAssignmentTarget:function(t,i){return e(r(n.__proto__||Object.getPrototypeOf(n),"reduceStaticMemberAssignmentTarget",this).call(this,t,i),t)},reduceStaticMemberExpression:function(t,i){return e(r(n.__proto__||Object.getPrototypeOf(n),"reduceStaticMemberExpression",this).call(this,t,i),t)},reduceStaticPropertyName:function(t,i){return e(r(n.__proto__||Object.getPrototypeOf(n),"reduceStaticPropertyName",this).call(this,t,i),t)},reduceSuper:function(t,i){return e(r(n.__proto__||Object.getPrototypeOf(n),"reduceSuper",this).call(this,t,i),t)},reduceSwitchCase:function(t,i){return e(r(n.__proto__||Object.getPrototypeOf(n),"reduceSwitchCase",this).call(this,t,i),t)},reduceSwitchDefault:function(t,i){return e(r(n.__proto__||Object.getPrototypeOf(n),"reduceSwitchDefault",this).call(this,t,i),t)},reduceSwitchStatement:function(t,i){return e(r(n.__proto__||Object.getPrototypeOf(n),"reduceSwitchStatement",this).call(this,t,i),t)},reduceSwitchStatementWithDefault:function(t,i){return e(r(n.__proto__||Object.getPrototypeOf(n),"reduceSwitchStatementWithDefault",this).call(this,t,i),t)},reduceTemplateElement:function(t,i){return e(r(n.__proto__||Object.getPrototypeOf(n),"reduceTemplateElement",this).call(this,t,i),t)},reduceTemplateExpression:function(t,i){return e(r(n.__proto__||Object.getPrototypeOf(n),"reduceTemplateExpression",this).call(this,t,i),t)},reduceThisExpression:function(t,i){return e(r(n.__proto__||Object.getPrototypeOf(n),"reduceThisExpression",this).call(this,t,i),t)},reduceThrowStatement:function(t,i){return e(r(n.__proto__||Object.getPrototypeOf(n),"reduceThrowStatement",this).call(this,t,i),t)},reduceTryCatchStatement:function(t,i){return e(r(n.__proto__||Object.getPrototypeOf(n),"reduceTryCatchStatement",this).call(this,t,i),t)},reduceTryFinallyStatement:function(t,i){return e(r(n.__proto__||Object.getPrototypeOf(n),"reduceTryFinallyStatement",this).call(this,t,i),t)},reduceUnaryExpression:function(t,i){return e(r(n.__proto__||Object.getPrototypeOf(n),"reduceUnaryExpression",this).call(this,t,i),t)},reduceUpdateExpression:function(t,i){return e(r(n.__proto__||Object.getPrototypeOf(n),"reduceUpdateExpression",this).call(this,t,i),t)},reduceVariableDeclaration:function(t,i){return e(r(n.__proto__||Object.getPrototypeOf(n),"reduceVariableDeclaration",this).call(this,t,i),t)},reduceVariableDeclarationStatement:function(t,i){return e(r(n.__proto__||Object.getPrototypeOf(n),"reduceVariableDeclarationStatement",this).call(this,t,i),t)},reduceVariableDeclarator:function(t,i){return e(r(n.__proto__||Object.getPrototypeOf(n),"reduceVariableDeclarator",this).call(this,t,i),t)},reduceWhileStatement:function(t,i){return e(r(n.__proto__||Object.getPrototypeOf(n),"reduceWhileStatement",this).call(this,t,i),t)},reduceWithStatement:function(t,i){return e(r(n.__proto__||Object.getPrototypeOf(n),"reduceWithStatement",this).call(this,t,i),t)},reduceYieldExpression:function(t,i){return e(r(n.__proto__||Object.getPrototypeOf(n),"reduceYieldExpression",this).call(this,t,i),t)},reduceYieldGeneratorExpression:function(t,i){return e(r(n.__proto__||Object.getPrototypeOf(n),"reduceYieldGeneratorExpression",this).call(this,t,i),t)}}}},3894:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){function e(e,t){for(var n=0;n=this.pattern.length}},{key:"backreference",value:function(e){e>this.largestBackreference&&(this.largestBackreference=e)}},{key:"nextCodePoint",value:function(){return this.empty()?null:this.unicode?String.fromCodePoint(this.pattern.codePointAt(this.index)):this.pattern.charAt(this.index)}},{key:"skipCodePoint",value:function(){this.index+=this.nextCodePoint().length}},{key:"eat",value:function(e){return!(this.index+e.length>this.pattern.length||this.pattern.slice(this.index,this.index+e.length)!==e)&&(this.index+=e.length,!0)}},{key:"eatIdentifierCodePoint",value:function(){var e=void 0,t=this.index,n=void 0;if(this.match("\\u")){if(this.skipCodePoint(),!(e=A(this)).matched)return this.index=t,null;e=e.value,n=String.fromCodePoint(e)}else{if(null==(n=this.nextCodePoint()))return this.index=t,null;this.index+=n.length,e=n.codePointAt(0)}return{character:n,characterValue:e}}},{key:"eatIdentifierStart",value:function(){var e,t=this.index,n=this.eatIdentifierCodePoint();return null===n?(this.index=t,null):"_"===n.character||"$"===n.character||((e=n.characterValue)<128?u.idStartBool[e]:u.idStartLargeRegex.test(String.fromCodePoint(e)))?n.character:(this.index=t,null)}},{key:"eatIdentifierPart",value:function(){var e,t=this.index,n=this.eatIdentifierCodePoint();return null===n?(this.index=t,null):"\u200c"===n.character||"\u200d"===n.character||"$"===n.character||((e=n.characterValue)<128?u.idContinueBool[e]:u.idContinueLargeRegex.test(String.fromCodePoint(e)))?n.character:(this.index=t,null)}},{key:"eatAny",value:function(){for(var e=arguments.length,t=Array(e),n=0;n1&&void 0!==arguments[1]?arguments[1]:{},n=t.unicode,r=void 0!==n&&n,i=new D(e,r),o=C(i);if(o.matched){if(i.unicode&&i.largestBackreference>i.capturingGroups)return!1;if(i.groupingNames.length>0||i.unicode){var a=!0,s=!1,u=void 0;try{for(var c,l=i.backreferenceNames[Symbol.iterator]();!(a=(c=l.next()).done);a=!0){var p=c.value;if(-1===i.groupingNames.indexOf(p))return!1}}catch(f){s=!0,u=f}finally{try{!a&&l.return&&l.return()}finally{if(s)throw u}}}}return o.matched};var b=function(e){return function(t){var n=t.index,r=t.largestBackreference,i=t.capturingGroups,o=e(t);return o.matched||(t.index=n,t.largestBackreference=r,t.capturingGroups=i),o}},A=b((function(e){if(!e.eat("u"))return{matched:!1};if(e.unicode&&e.eat("{")){for(var t=[];!e.eat("}");){var n=e.eatAny.apply(e,l(v));if(null===n)return{matched:!1};t.push(n)}var r=parseInt(t.join(""),16);return r>1114111?{matched:!1}:{matched:!0,value:r}}var i=[0,0,0,0].map((function(){return e.eatAny.apply(e,l(v))}));if(i.some((function(e){return null===e})))return{matched:!1};var o=parseInt(i.join(""),16);if(e.unicode&&o>=55296&&o<=56319){var a=b((function(e){if(!e.eat("\\u"))return{matched:!1};var t=[0,0,0,0].map((function(){return e.eatAny.apply(e,l(v))}));if(t.some((function(e){return null===e})))return{matched:!1};var n=parseInt(t.join(""),16);return n<56320||n>=57344?{matched:!1}:{matched:!0,value:65536+((1023&o)<<10)+(1023&n)}}))(e);if(a.matched)return a}return{matched:!0,value:o}})),C=function(e,t){do{if(void 0!==t&&e.eat(t))return{matched:!0};if(!e.match("|")&&!k(e,t).matched)return{matched:!1}}while(e.eat("|"));return{matched:void 0===t||!!e.eat(t)}},k=function(e,t){for(;!e.match("|")&&!e.empty()&&(void 0===t||!e.match(t));)if(!w(e).matched)return{matched:!1};return{matched:!0}},x=function(){for(var e=arguments.length,t=Array(e),n=0;nparseInt(n))return{matched:!1}}return e.eat("}")?(e.eat("?"),{matched:!0}):{matched:!1}}))(t);return n.matched?n:{matched:!t.unicode}}return t.eatAny("*","+","?")&&t.eat("?"),{matched:!0}}))},O=function(e){return function(t){var n=t.nextCodePoint();return null===n||-1!==e.indexOf(n)?{matched:!1}:(t.skipCodePoint(),{matched:!0})}},M=O(f),P=O(d),I=function(e){if(e.unicode)return x(M,(function(e){return{matched:!!e.eat(".")}}),b((function(e){return e.eat("\\")?Y(e):{matched:!1}})),K,S((function(e){return e.eat("?:")})),N)(e);var t=x((function(e){return{matched:!!e.eat(".")}}),b((function(e){return e.eat("\\")?Y(e):{matched:!1}})),b((function(e){return{matched:e.eat("\\")&&e.match("c")}})),K,S((function(e){return e.eat("?:")})),N)(e);return!t.matched&&function(e){return b((function(e){return{matched:!(!e.eat("{")||!B(e).matched||e.eat(",")&&!e.match("}")&&!B(e).matched||!e.eat("}"))}}))(e)}(e).matched?{matched:!1}:t.matched?t:P(e)},N=b((function(e){if(!e.eat("("))return{matched:!1};var t=b((function(t){return e.eat("?")?U(t):{matched:!1}}))(e);if(!C(e,")").matched)return{matched:!1};if(t.matched){if(-1!==e.groupingNames.indexOf(t.data))return{matched:!1};e.groupingNames.push(t.data)}return e.capturingGroups++,{matched:!0}})),R=b((function(e){var t=e.eatAny.apply(e,l(g));return null===t?{matched:!1}:("0"===t||e.backreference(parseInt(t+(e.eatNaturalNumber()||""))),{matched:!0})})),L=function(e){return e.eatAny("d","D","s","S","w","W")?{matched:!0}:e.unicode?b((function(e){return(e.eat("p{")||e.eat("P{"))&&z(e).matched?{matched:!!e.eat("}")}:{matched:!1}}))(e):{matched:!1}},j=function(e){for(var t=[],n=void 0;n=e.eatAny.apply(e,l(y).concat(l(g),["_"]));)t.push(n);return{matched:t.length>0,data:t.join("")}},W=["General_Category","Script","Script_Extensions","scx","sc","gc"],G=o.default.get("General_Category"),H=function(e){var t=j(e);return!t.matched||W.includes(t.data)?{matched:!1}:{matched:p((function(){return(0,a.default)(t.data)}))||null!=G.get(t.data)}},z=function(e){return x(b((function(e){var t=function(e){for(var t=[],n=void 0;n=e.eatAny.apply(e,l(y).concat(["_"]));)t.push(n);return{matched:t.length>0,data:t.join("")}}(e);if(!t.matched||!e.eat("="))return{matched:!1};var n=j(e);return n.matched?{matched:p((function(){return(0,i.default)(s.default.get(t.data)||t.data,n.data)}))}:{matched:!1}})),b(H))(e)},V=x((function(e){var t=e.eatAny.apply(e,l(h));return null===t?{matched:!1}:{matched:!0,value:m[t]}}),b((function(e){if(!e.eat("c"))return{matched:!1};var t=e.eatAny.apply(e,l(y));return null===t?{matched:!1}:{matched:!0,value:t.charCodeAt(0)%32}})),b((function(e){return!e.eat("0")||e.eatAny.apply(e,l(g))?{matched:!1}:{matched:!0,value:0}})),b((function(e){if(!e.eat("x"))return{matched:!1};var t=[0,0].map((function(){return e.eatAny.apply(e,l(v))}));return t.some((function(e){return null===e}))?{matched:!1}:{matched:!0,value:parseInt(t.join(""),16)}})),A,b((function(e){if(e.unicode)return{matched:!1};var t=e.eatAny.apply(e,l(_));if(null===t)return{matched:!1};var n=parseInt(t,8);if(-1===_.indexOf(e.nextCodePoint()))return{matched:!0,value:n};var r=e.eatAny.apply(e,l(_)),i=parseInt(r,8);if(n<4){if(-1===_.indexOf(e.nextCodePoint()))return{matched:!0,value:n<<3|i};var o=e.eatAny.apply(e,l(_));return{matched:!0,value:n<<6|i<<3|parseInt(o,8)}}return{matched:!0,value:n<<3|i}})),b((function(e){if(!e.unicode)return{matched:!1};var t=e.eatAny.apply(e,l(f));return null===t?{matched:!1}:{matched:!0,value:t.charCodeAt(0)}})),(function(e){return e.unicode&&e.eat("/")?{matched:!0,value:"/".charCodeAt(0)}:{matched:!1}}),b((function(e){if(e.unicode)return{matched:!1};var t=e.nextCodePoint();return null!==t&&"c"!==t&&"k"!==t?(e.skipCodePoint(),{matched:!0,value:t.codePointAt(0)}):{matched:!1}}))),Z=b((function(e){if(!e.eat("k"))return{matched:!1};var t=U(e);return t.matched?(e.backreferenceNames.push(t.data),{matched:!0}):(e.backreferenceNames.push(E),{matched:!0})})),U=b((function(e){if(!e.eat("<"))return{matched:!1};var t=[],n=e.eatIdentifierStart();if(!n)return{matched:!1};t.push(n);for(var r=void 0;r=e.eatIdentifierPart();)t.push(r);return e.eat(">")?{matched:t.length>0,data:t.join("")}:{matched:!1}})),Y=x(R,L,V,Z),K=b((function(e){if(!e.eat("["))return{matched:!1};e.eat("^");var t=x((function(e){return{matched:!!e.eat("b"),value:8}}),(function(e){return{matched:e.unicode&&!!e.eat("-"),value:"-".charCodeAt(0)}}),b((function(e){if(e.unicode||!e.eat("c"))return{matched:!1};var t=e.eatAny.apply(e,l(g).concat(["_"]));return null===t?{matched:!1}:{matched:!0,value:t.charCodeAt(0)%32}})),L,V,(function(e){return{matched:!e.unicode&&!!e.eat("k"),value:107}})),n=function(e){var n=e.nextCodePoint();if("]"===n||"-"===n||null===n)return{matched:!1};if("\\"!==n)return e.skipCodePoint(),{matched:!0,value:n.codePointAt(0)};e.eat("\\");var r=t(e);return r.matched||"c"!==e.nextCodePoint()||e.unicode?r:{matched:!0,value:"\\".charCodeAt(0)}},r=function(e){return e.eat("-")?{matched:!0,value:"-".charCodeAt(0)}:n(e)},i=function(e,t){var n=function(e){return void 0===e.value&&e.matched};if(e.eat("-")){if(e.match("]"))return{matched:!0};var i=r(e);return i.matched?e.unicode&&(n(t)||n(i))||(e.unicode||!n(t)&&!n(i))&&t.value>i.value?{matched:!1}:e.match("]")?{matched:!0}:o(e):{matched:!1}}return e.match("]")?{matched:!0}:a(e)},o=function(e){var t=r(e);return t.matched?i(e,t):{matched:!1}},a=function(e){var t=n(e);return t.matched?i(e,t):{matched:!1}};if(e.eat("]"))return{matched:!0};var s=o(e);return s.matched&&e.eat("]"),s}))},3542:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0});t.whitespaceArray=[5760,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8239,8287,12288,65279],t.whitespaceBool=[!1,!1,!1,!1,!1,!1,!1,!1,!1,!0,!1,!0,!0,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!0,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1],t.idStartLargeRegex=/^[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0-\u08B4\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C60\u0C61\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2118-\u211D\u2124\u2126\u2128\u212A-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309B-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FD5\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AD\uA7B0-\uA7B7\uA7F7-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDE80-\uDE9C\uDEA0-\uDED0\uDF00-\uDF1F\uDF30-\uDF4A\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE4\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2]|\uD804[\uDC03-\uDC37\uDC83-\uDCAF\uDCD0-\uDCE8\uDD03-\uDD26\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE2B\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEDE\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF50\uDF5D-\uDF61]|\uD805[\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE80-\uDEAA\uDF00-\uDF19]|\uD806[\uDCA0-\uDCDF\uDCFF\uDEC0-\uDEF8]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50\uDF93-\uDF9F]|\uD82C[\uDC00\uDC01]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB]|\uD83A[\uDC00-\uDCC4]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1]|\uD87E[\uDC00-\uDE1D]$/,t.idStartBool=[!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!0,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!1,!1,!1,!1,!0,!1,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!1,!1,!1,!1,!1],t.idContinueLargeRegex=/^[\xAA\xB5\xB7\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0300-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u0483-\u0487\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u05D0-\u05EA\u05F0-\u05F2\u0610-\u061A\u0620-\u0669\u066E-\u06D3\u06D5-\u06DC\u06DF-\u06E8\u06EA-\u06FC\u06FF\u0710-\u074A\u074D-\u07B1\u07C0-\u07F5\u07FA\u0800-\u082D\u0840-\u085B\u08A0-\u08B4\u08E3-\u0963\u0966-\u096F\u0971-\u0983\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BC-\u09C4\u09C7\u09C8\u09CB-\u09CE\u09D7\u09DC\u09DD\u09DF-\u09E3\u09E6-\u09F1\u0A01-\u0A03\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A59-\u0A5C\u0A5E\u0A66-\u0A75\u0A81-\u0A83\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABC-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AD0\u0AE0-\u0AE3\u0AE6-\u0AEF\u0AF9\u0B01-\u0B03\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3C-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B5C\u0B5D\u0B5F-\u0B63\u0B66-\u0B6F\u0B71\u0B82\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD0\u0BD7\u0BE6-\u0BEF\u0C00-\u0C03\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C58-\u0C5A\u0C60-\u0C63\u0C66-\u0C6F\u0C81-\u0C83\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBC-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CDE\u0CE0-\u0CE3\u0CE6-\u0CEF\u0CF1\u0CF2\u0D01-\u0D03\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D-\u0D44\u0D46-\u0D48\u0D4A-\u0D4E\u0D57\u0D5F-\u0D63\u0D66-\u0D6F\u0D7A-\u0D7F\u0D82\u0D83\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DE6-\u0DEF\u0DF2\u0DF3\u0E01-\u0E3A\u0E40-\u0E4E\u0E50-\u0E59\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB9\u0EBB-\u0EBD\u0EC0-\u0EC4\u0EC6\u0EC8-\u0ECD\u0ED0-\u0ED9\u0EDC-\u0EDF\u0F00\u0F18\u0F19\u0F20-\u0F29\u0F35\u0F37\u0F39\u0F3E-\u0F47\u0F49-\u0F6C\u0F71-\u0F84\u0F86-\u0F97\u0F99-\u0FBC\u0FC6\u1000-\u1049\u1050-\u109D\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u135D-\u135F\u1369-\u1371\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1714\u1720-\u1734\u1740-\u1753\u1760-\u176C\u176E-\u1770\u1772\u1773\u1780-\u17D3\u17D7\u17DC\u17DD\u17E0-\u17E9\u180B-\u180D\u1810-\u1819\u1820-\u1877\u1880-\u18AA\u18B0-\u18F5\u1900-\u191E\u1920-\u192B\u1930-\u193B\u1946-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u19D0-\u19DA\u1A00-\u1A1B\u1A20-\u1A5E\u1A60-\u1A7C\u1A7F-\u1A89\u1A90-\u1A99\u1AA7\u1AB0-\u1ABD\u1B00-\u1B4B\u1B50-\u1B59\u1B6B-\u1B73\u1B80-\u1BF3\u1C00-\u1C37\u1C40-\u1C49\u1C4D-\u1C7D\u1CD0-\u1CD2\u1CD4-\u1CF6\u1CF8\u1CF9\u1D00-\u1DF5\u1DFC-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u200C\u200D\u203F\u2040\u2054\u2071\u207F\u2090-\u209C\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2102\u2107\u210A-\u2113\u2115\u2118-\u211D\u2124\u2126\u2128\u212A-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D7F-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2DE0-\u2DFF\u3005-\u3007\u3021-\u302F\u3031-\u3035\u3038-\u303C\u3041-\u3096\u3099-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FD5\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA62B\uA640-\uA66F\uA674-\uA67D\uA67F-\uA6F1\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AD\uA7B0-\uA7B7\uA7F7-\uA827\uA840-\uA873\uA880-\uA8C4\uA8D0-\uA8D9\uA8E0-\uA8F7\uA8FB\uA8FD\uA900-\uA92D\uA930-\uA953\uA960-\uA97C\uA980-\uA9C0\uA9CF-\uA9D9\uA9E0-\uA9FE\uAA00-\uAA36\uAA40-\uAA4D\uAA50-\uAA59\uAA60-\uAA76\uAA7A-\uAAC2\uAADB-\uAADD\uAAE0-\uAAEF\uAAF2-\uAAF6\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABEA\uABEC\uABED\uABF0-\uABF9\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE00-\uFE0F\uFE20-\uFE2F\uFE33\uFE34\uFE4D-\uFE4F\uFE70-\uFE74\uFE76-\uFEFC\uFF10-\uFF19\uFF21-\uFF3A\uFF3F\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDDFD\uDE80-\uDE9C\uDEA0-\uDED0\uDEE0\uDF00-\uDF1F\uDF30-\uDF4A\uDF50-\uDF7A\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCA0-\uDCA9\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00-\uDE03\uDE05\uDE06\uDE0C-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE38-\uDE3A\uDE3F\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE6\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2]|\uD804[\uDC00-\uDC46\uDC66-\uDC6F\uDC7F-\uDCBA\uDCD0-\uDCE8\uDCF0-\uDCF9\uDD00-\uDD34\uDD36-\uDD3F\uDD50-\uDD73\uDD76\uDD80-\uDDC4\uDDCA-\uDDCC\uDDD0-\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE37\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEEA\uDEF0-\uDEF9\uDF00-\uDF03\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3C-\uDF44\uDF47\uDF48\uDF4B-\uDF4D\uDF50\uDF57\uDF5D-\uDF63\uDF66-\uDF6C\uDF70-\uDF74]|\uD805[\uDC80-\uDCC5\uDCC7\uDCD0-\uDCD9\uDD80-\uDDB5\uDDB8-\uDDC0\uDDD8-\uDDDD\uDE00-\uDE40\uDE44\uDE50-\uDE59\uDE80-\uDEB7\uDEC0-\uDEC9\uDF00-\uDF19\uDF1D-\uDF2B\uDF30-\uDF39]|\uD806[\uDCA0-\uDCE9\uDCFF\uDEC0-\uDEF8]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDE60-\uDE69\uDED0-\uDEED\uDEF0-\uDEF4\uDF00-\uDF36\uDF40-\uDF43\uDF50-\uDF59\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50-\uDF7E\uDF8F-\uDF9F]|\uD82C[\uDC00\uDC01]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99\uDC9D\uDC9E]|\uD834[\uDD65-\uDD69\uDD6D-\uDD72\uDD7B-\uDD82\uDD85-\uDD8B\uDDAA-\uDDAD\uDE42-\uDE44]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB\uDFCE-\uDFFF]|\uD836[\uDE00-\uDE36\uDE3B-\uDE6C\uDE75\uDE84\uDE9B-\uDE9F\uDEA1-\uDEAF]|\uD83A[\uDC00-\uDCC4\uDCD0-\uDCD6]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1]|\uD87E[\uDC00-\uDE1D]|\uDB40[\uDD00-\uDDEF]$/,t.idContinueBool=[!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!0,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!1,!1,!1,!1,!1,!1,!1,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!1,!1,!1,!1,!0,!1,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!1,!1,!1,!1,!1]},251:function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(){var e={},t={typeName:"Boolean"},n={typeName:"String"};function r(e){return{typeName:"Maybe",argument:e}}function i(e){return{typeName:"List",argument:e}}function o(e){return{typeName:"Const",argument:e}}function a(){return{typeName:"Union",arguments:[].slice.call(arguments,0)}}var s={typeName:"Enum",values:["ArrayAssignmentTarget","ArrayBinding","ArrayExpression","ArrowExpression","AssignmentExpression","AssignmentTargetIdentifier","AssignmentTargetPropertyIdentifier","AssignmentTargetPropertyProperty","AssignmentTargetWithDefault","AwaitExpression","BinaryExpression","BindingIdentifier","BindingPropertyIdentifier","BindingPropertyProperty","BindingWithDefault","Block","BlockStatement","BreakStatement","CallExpression","CatchClause","ClassDeclaration","ClassElement","ClassExpression","CompoundAssignmentExpression","ComputedMemberAssignmentTarget","ComputedMemberExpression","ComputedPropertyName","ConditionalExpression","ContinueStatement","DataProperty","DebuggerStatement","Directive","DoWhileStatement","EmptyStatement","Export","ExportAllFrom","ExportDefault","ExportFrom","ExportFromSpecifier","ExportLocalSpecifier","ExportLocals","ExpressionStatement","ForAwaitStatement","ForInStatement","ForOfStatement","ForStatement","FormalParameters","FunctionBody","FunctionDeclaration","FunctionExpression","Getter","IdentifierExpression","IfStatement","Import","ImportNamespace","ImportSpecifier","LabeledStatement","LiteralBooleanExpression","LiteralInfinityExpression","LiteralNullExpression","LiteralNumericExpression","LiteralRegExpExpression","LiteralStringExpression","Method","Module","NewExpression","NewTargetExpression","ObjectAssignmentTarget","ObjectBinding","ObjectExpression","ReturnStatement","Script","Setter","ShorthandProperty","SpreadElement","SpreadProperty","StaticMemberAssignmentTarget","StaticMemberExpression","StaticPropertyName","Super","SwitchCase","SwitchDefault","SwitchStatement","SwitchStatementWithDefault","TemplateElement","TemplateExpression","ThisExpression","ThrowStatement","TryCatchStatement","TryFinallyStatement","UnaryExpression","UpdateExpression","VariableDeclaration","VariableDeclarationStatement","VariableDeclarator","WhileStatement","WithStatement","YieldExpression","YieldGeneratorExpression"]},u=e.ArrayAssignmentTarget={},c=e.ArrayBinding={},l=e.ArrayExpression={},p=e.ArrowExpression={},f=e.AssignmentExpression={},d=e.AssignmentTargetIdentifier={},h=e.AssignmentTargetPropertyIdentifier={},m=e.AssignmentTargetPropertyProperty={},y=e.AssignmentTargetWithDefault={},v=e.AwaitExpression={},g=e.BinaryExpression={},_=e.BindingIdentifier={},E=e.BindingPropertyIdentifier={},D=e.BindingPropertyProperty={},b=e.BindingWithDefault={},A=e.Block={},C=e.BlockStatement={},k=e.BreakStatement={},x=e.CallExpression={},w=e.CatchClause={},S=e.ClassDeclaration={},F=e.ClassElement={},T=e.ClassExpression={},B=e.CompoundAssignmentExpression={},q=e.ComputedMemberAssignmentTarget={},O=e.ComputedMemberExpression={},M=e.ComputedPropertyName={},P=e.ConditionalExpression={},I=e.ContinueStatement={},N=e.DataProperty={},R=e.DebuggerStatement={},L=e.Directive={},j=e.DoWhileStatement={},W=e.EmptyStatement={},G=e.Export={},H=e.ExportAllFrom={},z=e.ExportDefault={},V=e.ExportFrom={},Z=e.ExportFromSpecifier={},U=e.ExportLocalSpecifier={},Y=e.ExportLocals={},K=e.ExpressionStatement={},J=e.ForAwaitStatement={},X=e.ForInStatement={},Q=e.ForOfStatement={},$=e.ForStatement={},ee=e.FormalParameters={},te=e.FunctionBody={},ne=e.FunctionDeclaration={},re=e.FunctionExpression={},ie=e.Getter={},oe=e.IdentifierExpression={},ae=e.IfStatement={},se=e.Import={},ue=e.ImportNamespace={},ce=e.ImportSpecifier={},le=e.LabeledStatement={},pe=e.LiteralBooleanExpression={},fe=e.LiteralInfinityExpression={},de=e.LiteralNullExpression={},he=e.LiteralNumericExpression={},me=e.LiteralRegExpExpression={},ye=e.LiteralStringExpression={},ve=e.Method={},ge=e.Module={},_e=e.NewExpression={},Ee=e.NewTargetExpression={},De=e.ObjectAssignmentTarget={},be=e.ObjectBinding={},Ae=e.ObjectExpression={},Ce=e.ReturnStatement={},ke=e.Script={},xe=e.Setter={},we=e.ShorthandProperty={},Se=e.SpreadElement={},Fe=e.SpreadProperty={},Te=e.StaticMemberAssignmentTarget={},Be=e.StaticMemberExpression={},qe=e.StaticPropertyName={},Oe=e.Super={},Me=e.SwitchCase={},Pe=e.SwitchDefault={},Ie=e.SwitchStatement={},Ne=e.SwitchStatementWithDefault={},Re=e.TemplateElement={},Le=e.TemplateExpression={},je=e.ThisExpression={},We=e.ThrowStatement={},Ge=e.TryCatchStatement={},He=e.TryFinallyStatement={},ze=e.UnaryExpression={},Ve=e.UpdateExpression={},Ze=e.VariableDeclaration={},Ue=e.VariableDeclarationStatement={},Ye=e.VariableDeclarator={},Ke=e.WhileStatement={},Je=e.WithStatement={},Xe=e.YieldExpression={},Qe=e.YieldGeneratorExpression={},$e=a(O,Be),et=a(h,m),tt=(a(S,T),a(G,H,z,V,Y)),nt=a(M,qe),rt=(a(ne,re),a(se,ue)),it=a(j,J,X,Q,$,Ke),ot=a(q,Te),at=a(E,D),st=a(ie,ve,xe),ut=a(ge,ke),ct=a(d,_,oe),lt=a(N,st),pt=a(l,p,f,v,g,x,T,B,P,re,oe,pe,fe,de,he,me,ye,$e,_e,Ee,Ae,Le,je,ze,Ve,Xe,Qe),ft=a(C,k,S,I,R,W,K,ne,ae,it,le,Ce,Ie,Ne,We,Ge,He,Ue,Je),dt=a(lt,we,Fe);a(u,c,et,y,at,b,A,w,F,L,tt,Z,U,pt,ee,te,rt,ce,ot,De,be,dt,ut,nt,Se,ft,Oe,Me,Pe,Re,Ze,Ye,ct);return u.typeName="ArrayAssignmentTarget",u.fields=[{name:"type",type:o(s),value:"ArrayAssignmentTarget"},{name:"elements",type:i(r(a(y,a(a(u,De),a(d,ot)))))},{name:"rest",type:r(a(a(u,De),a(d,ot)))}],c.typeName="ArrayBinding",c.fields=[{name:"type",type:o(s),value:"ArrayBinding"},{name:"elements",type:i(r(a(b,a(_,a(c,be)))))},{name:"rest",type:r(a(_,a(c,be)))}],l.typeName="ArrayExpression",l.fields=[{name:"type",type:o(s),value:"ArrayExpression"},{name:"elements",type:i(r(a(pt,Se)))}],p.typeName="ArrowExpression",p.fields=[{name:"type",type:o(s),value:"ArrowExpression"},{name:"isAsync",type:t},{name:"params",type:ee},{name:"body",type:a(pt,te)}],f.typeName="AssignmentExpression",f.fields=[{name:"type",type:o(s),value:"AssignmentExpression"},{name:"binding",type:a(a(u,De),a(d,ot))},{name:"expression",type:pt}],d.typeName="AssignmentTargetIdentifier",d.fields=[{name:"type",type:o(s),value:"AssignmentTargetIdentifier"},{name:"name",type:n}],h.typeName="AssignmentTargetPropertyIdentifier",h.fields=[{name:"type",type:o(s),value:"AssignmentTargetPropertyIdentifier"},{name:"binding",type:d},{name:"init",type:r(pt)}],m.typeName="AssignmentTargetPropertyProperty",m.fields=[{name:"type",type:o(s),value:"AssignmentTargetPropertyProperty"},{name:"name",type:nt},{name:"binding",type:a(y,a(a(u,De),a(d,ot)))}],y.typeName="AssignmentTargetWithDefault",y.fields=[{name:"type",type:o(s),value:"AssignmentTargetWithDefault"},{name:"binding",type:a(a(u,De),a(d,ot))},{name:"init",type:pt}],v.typeName="AwaitExpression",v.fields=[{name:"type",type:o(s),value:"AwaitExpression"},{name:"expression",type:pt}],g.typeName="BinaryExpression",g.fields=[{name:"type",type:o(s),value:"BinaryExpression"},{name:"left",type:pt},{name:"operator",type:{typeName:"Enum",values:["==","!=","===","!==","<","<=",">",">=","in","instanceof","<<",">>",">>>","+","-","*","/","%","**",",","||","&&","|","^","&"]}},{name:"right",type:pt}],_.typeName="BindingIdentifier",_.fields=[{name:"type",type:o(s),value:"BindingIdentifier"},{name:"name",type:n}],E.typeName="BindingPropertyIdentifier",E.fields=[{name:"type",type:o(s),value:"BindingPropertyIdentifier"},{name:"binding",type:_},{name:"init",type:r(pt)}],D.typeName="BindingPropertyProperty",D.fields=[{name:"type",type:o(s),value:"BindingPropertyProperty"},{name:"name",type:nt},{name:"binding",type:a(b,a(_,a(c,be)))}],b.typeName="BindingWithDefault",b.fields=[{name:"type",type:o(s),value:"BindingWithDefault"},{name:"binding",type:a(_,a(c,be))},{name:"init",type:pt}],A.typeName="Block",A.fields=[{name:"type",type:o(s),value:"Block"},{name:"statements",type:i(ft)}],C.typeName="BlockStatement",C.fields=[{name:"type",type:o(s),value:"BlockStatement"},{name:"block",type:A}],k.typeName="BreakStatement",k.fields=[{name:"type",type:o(s),value:"BreakStatement"},{name:"label",type:r(n)}],x.typeName="CallExpression",x.fields=[{name:"type",type:o(s),value:"CallExpression"},{name:"callee",type:a(pt,Oe)},{name:"arguments",type:i(a(pt,Se))}],w.typeName="CatchClause",w.fields=[{name:"type",type:o(s),value:"CatchClause"},{name:"binding",type:a(_,a(c,be))},{name:"body",type:A}],S.typeName="ClassDeclaration",S.fields=[{name:"type",type:o(s),value:"ClassDeclaration"},{name:"name",type:_},{name:"super",type:r(pt)},{name:"elements",type:i(F)}],F.typeName="ClassElement",F.fields=[{name:"type",type:o(s),value:"ClassElement"},{name:"isStatic",type:t},{name:"method",type:st}],T.typeName="ClassExpression",T.fields=[{name:"type",type:o(s),value:"ClassExpression"},{name:"name",type:r(_)},{name:"super",type:r(pt)},{name:"elements",type:i(F)}],B.typeName="CompoundAssignmentExpression",B.fields=[{name:"type",type:o(s),value:"CompoundAssignmentExpression"},{name:"binding",type:a(d,ot)},{name:"operator",type:{typeName:"Enum",values:["+=","-=","*=","/=","%=","**=","<<=",">>=",">>>=","|=","^=","&="]}},{name:"expression",type:pt}],q.typeName="ComputedMemberAssignmentTarget",q.fields=[{name:"type",type:o(s),value:"ComputedMemberAssignmentTarget"},{name:"object",type:a(pt,Oe)},{name:"expression",type:pt}],O.typeName="ComputedMemberExpression",O.fields=[{name:"type",type:o(s),value:"ComputedMemberExpression"},{name:"object",type:a(pt,Oe)},{name:"expression",type:pt}],M.typeName="ComputedPropertyName",M.fields=[{name:"type",type:o(s),value:"ComputedPropertyName"},{name:"expression",type:pt}],P.typeName="ConditionalExpression",P.fields=[{name:"type",type:o(s),value:"ConditionalExpression"},{name:"test",type:pt},{name:"consequent",type:pt},{name:"alternate",type:pt}],I.typeName="ContinueStatement",I.fields=[{name:"type",type:o(s),value:"ContinueStatement"},{name:"label",type:r(n)}],N.typeName="DataProperty",N.fields=[{name:"type",type:o(s),value:"DataProperty"},{name:"name",type:nt},{name:"expression",type:pt}],R.typeName="DebuggerStatement",R.fields=[{name:"type",type:o(s),value:"DebuggerStatement"}],L.typeName="Directive",L.fields=[{name:"type",type:o(s),value:"Directive"},{name:"rawValue",type:n}],j.typeName="DoWhileStatement",j.fields=[{name:"type",type:o(s),value:"DoWhileStatement"},{name:"body",type:ft},{name:"test",type:pt}],W.typeName="EmptyStatement",W.fields=[{name:"type",type:o(s),value:"EmptyStatement"}],G.typeName="Export",G.fields=[{name:"type",type:o(s),value:"Export"},{name:"declaration",type:a(S,ne,Ze)}],H.typeName="ExportAllFrom",H.fields=[{name:"type",type:o(s),value:"ExportAllFrom"},{name:"moduleSpecifier",type:n}],z.typeName="ExportDefault",z.fields=[{name:"type",type:o(s),value:"ExportDefault"},{name:"body",type:a(S,pt,ne)}],V.typeName="ExportFrom",V.fields=[{name:"type",type:o(s),value:"ExportFrom"},{name:"namedExports",type:i(Z)},{name:"moduleSpecifier",type:n}],Z.typeName="ExportFromSpecifier",Z.fields=[{name:"type",type:o(s),value:"ExportFromSpecifier"},{name:"name",type:n},{name:"exportedName",type:r(n)}],U.typeName="ExportLocalSpecifier",U.fields=[{name:"type",type:o(s),value:"ExportLocalSpecifier"},{name:"name",type:oe},{name:"exportedName",type:r(n)}],Y.typeName="ExportLocals",Y.fields=[{name:"type",type:o(s),value:"ExportLocals"},{name:"namedExports",type:i(U)}],K.typeName="ExpressionStatement",K.fields=[{name:"type",type:o(s),value:"ExpressionStatement"},{name:"expression",type:pt}],J.typeName="ForAwaitStatement",J.fields=[{name:"type",type:o(s),value:"ForAwaitStatement"},{name:"left",type:a(a(a(u,De),a(d,ot)),Ze)},{name:"right",type:pt},{name:"body",type:ft}],X.typeName="ForInStatement",X.fields=[{name:"type",type:o(s),value:"ForInStatement"},{name:"left",type:a(a(a(u,De),a(d,ot)),Ze)},{name:"right",type:pt},{name:"body",type:ft}],Q.typeName="ForOfStatement",Q.fields=[{name:"type",type:o(s),value:"ForOfStatement"},{name:"left",type:a(a(a(u,De),a(d,ot)),Ze)},{name:"right",type:pt},{name:"body",type:ft}],$.typeName="ForStatement",$.fields=[{name:"type",type:o(s),value:"ForStatement"},{name:"init",type:r(a(pt,Ze))},{name:"test",type:r(pt)},{name:"update",type:r(pt)},{name:"body",type:ft}],ee.typeName="FormalParameters",ee.fields=[{name:"type",type:o(s),value:"FormalParameters"},{name:"items",type:i(a(b,a(_,a(c,be))))},{name:"rest",type:r(a(_,a(c,be)))}],te.typeName="FunctionBody",te.fields=[{name:"type",type:o(s),value:"FunctionBody"},{name:"directives",type:i(L)},{name:"statements",type:i(ft)}],ne.typeName="FunctionDeclaration",ne.fields=[{name:"type",type:o(s),value:"FunctionDeclaration"},{name:"isAsync",type:t},{name:"isGenerator",type:t},{name:"name",type:_},{name:"params",type:ee},{name:"body",type:te}],re.typeName="FunctionExpression",re.fields=[{name:"type",type:o(s),value:"FunctionExpression"},{name:"isAsync",type:t},{name:"isGenerator",type:t},{name:"name",type:r(_)},{name:"params",type:ee},{name:"body",type:te}],ie.typeName="Getter",ie.fields=[{name:"type",type:o(s),value:"Getter"},{name:"name",type:nt},{name:"body",type:te}],oe.typeName="IdentifierExpression",oe.fields=[{name:"type",type:o(s),value:"IdentifierExpression"},{name:"name",type:n}],ae.typeName="IfStatement",ae.fields=[{name:"type",type:o(s),value:"IfStatement"},{name:"test",type:pt},{name:"consequent",type:ft},{name:"alternate",type:r(ft)}],se.typeName="Import",se.fields=[{name:"type",type:o(s),value:"Import"},{name:"defaultBinding",type:r(_)},{name:"namedImports",type:i(ce)},{name:"moduleSpecifier",type:n}],ue.typeName="ImportNamespace",ue.fields=[{name:"type",type:o(s),value:"ImportNamespace"},{name:"defaultBinding",type:r(_)},{name:"namespaceBinding",type:_},{name:"moduleSpecifier",type:n}],ce.typeName="ImportSpecifier",ce.fields=[{name:"type",type:o(s),value:"ImportSpecifier"},{name:"name",type:r(n)},{name:"binding",type:_}],le.typeName="LabeledStatement",le.fields=[{name:"type",type:o(s),value:"LabeledStatement"},{name:"label",type:n},{name:"body",type:ft}],pe.typeName="LiteralBooleanExpression",pe.fields=[{name:"type",type:o(s),value:"LiteralBooleanExpression"},{name:"value",type:t}],fe.typeName="LiteralInfinityExpression",fe.fields=[{name:"type",type:o(s),value:"LiteralInfinityExpression"}],de.typeName="LiteralNullExpression",de.fields=[{name:"type",type:o(s),value:"LiteralNullExpression"}],he.typeName="LiteralNumericExpression",he.fields=[{name:"type",type:o(s),value:"LiteralNumericExpression"},{name:"value",type:{typeName:"Number"}}],me.typeName="LiteralRegExpExpression",me.fields=[{name:"type",type:o(s),value:"LiteralRegExpExpression"},{name:"pattern",type:n},{name:"global",type:t},{name:"ignoreCase",type:t},{name:"multiLine",type:t},{name:"dotAll",type:t},{name:"unicode",type:t},{name:"sticky",type:t}],ye.typeName="LiteralStringExpression",ye.fields=[{name:"type",type:o(s),value:"LiteralStringExpression"},{name:"value",type:n}],ve.typeName="Method",ve.fields=[{name:"type",type:o(s),value:"Method"},{name:"isAsync",type:t},{name:"isGenerator",type:t},{name:"name",type:nt},{name:"params",type:ee},{name:"body",type:te}],ge.typeName="Module",ge.fields=[{name:"type",type:o(s),value:"Module"},{name:"directives",type:i(L)},{name:"items",type:i(a(tt,rt,ft))}],_e.typeName="NewExpression",_e.fields=[{name:"type",type:o(s),value:"NewExpression"},{name:"callee",type:pt},{name:"arguments",type:i(a(pt,Se))}],Ee.typeName="NewTargetExpression",Ee.fields=[{name:"type",type:o(s),value:"NewTargetExpression"}],De.typeName="ObjectAssignmentTarget",De.fields=[{name:"type",type:o(s),value:"ObjectAssignmentTarget"},{name:"properties",type:i(et)},{name:"rest",type:r(a(a(u,De),a(d,ot)))}],be.typeName="ObjectBinding",be.fields=[{name:"type",type:o(s),value:"ObjectBinding"},{name:"properties",type:i(at)},{name:"rest",type:r(a(_,a(c,be)))}],Ae.typeName="ObjectExpression",Ae.fields=[{name:"type",type:o(s),value:"ObjectExpression"},{name:"properties",type:i(dt)}],Ce.typeName="ReturnStatement",Ce.fields=[{name:"type",type:o(s),value:"ReturnStatement"},{name:"expression",type:r(pt)}],ke.typeName="Script",ke.fields=[{name:"type",type:o(s),value:"Script"},{name:"directives",type:i(L)},{name:"statements",type:i(ft)}],xe.typeName="Setter",xe.fields=[{name:"type",type:o(s),value:"Setter"},{name:"name",type:nt},{name:"param",type:a(b,a(_,a(c,be)))},{name:"body",type:te}],we.typeName="ShorthandProperty",we.fields=[{name:"type",type:o(s),value:"ShorthandProperty"},{name:"name",type:oe}],Se.typeName="SpreadElement",Se.fields=[{name:"type",type:o(s),value:"SpreadElement"},{name:"expression",type:pt}],Fe.typeName="SpreadProperty",Fe.fields=[{name:"type",type:o(s),value:"SpreadProperty"},{name:"expression",type:pt}],Te.typeName="StaticMemberAssignmentTarget",Te.fields=[{name:"type",type:o(s),value:"StaticMemberAssignmentTarget"},{name:"object",type:a(pt,Oe)},{name:"property",type:n}],Be.typeName="StaticMemberExpression",Be.fields=[{name:"type",type:o(s),value:"StaticMemberExpression"},{name:"object",type:a(pt,Oe)},{name:"property",type:n}],qe.typeName="StaticPropertyName",qe.fields=[{name:"type",type:o(s),value:"StaticPropertyName"},{name:"value",type:n}],Oe.typeName="Super",Oe.fields=[{name:"type",type:o(s),value:"Super"}],Me.typeName="SwitchCase",Me.fields=[{name:"type",type:o(s),value:"SwitchCase"},{name:"test",type:pt},{name:"consequent",type:i(ft)}],Pe.typeName="SwitchDefault",Pe.fields=[{name:"type",type:o(s),value:"SwitchDefault"},{name:"consequent",type:i(ft)}],Ie.typeName="SwitchStatement",Ie.fields=[{name:"type",type:o(s),value:"SwitchStatement"},{name:"discriminant",type:pt},{name:"cases",type:i(Me)}],Ne.typeName="SwitchStatementWithDefault",Ne.fields=[{name:"type",type:o(s),value:"SwitchStatementWithDefault"},{name:"discriminant",type:pt},{name:"preDefaultCases",type:i(Me)},{name:"defaultCase",type:Pe},{name:"postDefaultCases",type:i(Me)}],Re.typeName="TemplateElement",Re.fields=[{name:"type",type:o(s),value:"TemplateElement"},{name:"rawValue",type:n}],Le.typeName="TemplateExpression",Le.fields=[{name:"type",type:o(s),value:"TemplateExpression"},{name:"tag",type:r(pt)},{name:"elements",type:i(a(pt,Re))}],je.typeName="ThisExpression",je.fields=[{name:"type",type:o(s),value:"ThisExpression"}],We.typeName="ThrowStatement",We.fields=[{name:"type",type:o(s),value:"ThrowStatement"},{name:"expression",type:pt}],Ge.typeName="TryCatchStatement",Ge.fields=[{name:"type",type:o(s),value:"TryCatchStatement"},{name:"body",type:A},{name:"catchClause",type:w}],He.typeName="TryFinallyStatement",He.fields=[{name:"type",type:o(s),value:"TryFinallyStatement"},{name:"body",type:A},{name:"catchClause",type:r(w)},{name:"finalizer",type:A}],ze.typeName="UnaryExpression",ze.fields=[{name:"type",type:o(s),value:"UnaryExpression"},{name:"operator",type:{typeName:"Enum",values:["+","-","!","~","typeof","void","delete"]}},{name:"operand",type:pt}],Ve.typeName="UpdateExpression",Ve.fields=[{name:"type",type:o(s),value:"UpdateExpression"},{name:"isPrefix",type:t},{name:"operator",type:{typeName:"Enum",values:["++","--"]}},{name:"operand",type:a(d,ot)}],Ze.typeName="VariableDeclaration",Ze.fields=[{name:"type",type:o(s),value:"VariableDeclaration"},{name:"kind",type:{typeName:"Enum",values:["var","let","const"]}},{name:"declarators",type:i(Ye)}],Ue.typeName="VariableDeclarationStatement",Ue.fields=[{name:"type",type:o(s),value:"VariableDeclarationStatement"},{name:"declaration",type:Ze}],Ye.typeName="VariableDeclarator",Ye.fields=[{name:"type",type:o(s),value:"VariableDeclarator"},{name:"binding",type:a(_,a(c,be))},{name:"init",type:r(pt)}],Ke.typeName="WhileStatement",Ke.fields=[{name:"type",type:o(s),value:"WhileStatement"},{name:"test",type:pt},{name:"body",type:ft}],Je.typeName="WithStatement",Je.fields=[{name:"type",type:o(s),value:"WithStatement"},{name:"object",type:pt},{name:"body",type:ft}],Xe.typeName="YieldExpression",Xe.fields=[{name:"type",type:o(s),value:"YieldExpression"},{name:"expression",type:r(pt)}],Qe.typeName="YieldGeneratorExpression",Qe.fields=[{name:"type",type:o(s),value:"YieldGeneratorExpression"},{name:"expression",type:pt}],e}()},1892:function(e){e.exports=new Set(["General_Category","Script","Script_Extensions","Alphabetic","Any","ASCII","ASCII_Hex_Digit","Assigned","Bidi_Control","Bidi_Mirrored","Case_Ignorable","Cased","Changes_When_Casefolded","Changes_When_Casemapped","Changes_When_Lowercased","Changes_When_NFKC_Casefolded","Changes_When_Titlecased","Changes_When_Uppercased","Dash","Default_Ignorable_Code_Point","Deprecated","Diacritic","Emoji","Emoji_Component","Emoji_Modifier","Emoji_Modifier_Base","Emoji_Presentation","Extended_Pictographic","Extender","Grapheme_Base","Grapheme_Extend","Hex_Digit","ID_Continue","ID_Start","Ideographic","IDS_Binary_Operator","IDS_Trinary_Operator","Join_Control","Logical_Order_Exception","Lowercase","Math","Noncharacter_Code_Point","Pattern_Syntax","Pattern_White_Space","Quotation_Mark","Radical","Regional_Indicator","Sentence_Terminal","Soft_Dotted","Terminal_Punctuation","Unified_Ideograph","Uppercase","Variation_Selector","White_Space","XID_Continue","XID_Start"])},6060:function(e,t,n){"use strict";var r=n(1892),i=n(4483);e.exports=function(e){if(r.has(e))return e;if(i.has(e))return i.get(e);throw new Error("Unknown property: ".concat(e))}},9506:function(e){e.exports=new Map([["General_Category",new Map([["C","Other"],["Cc","Control"],["cntrl","Control"],["Cf","Format"],["Cn","Unassigned"],["Co","Private_Use"],["Cs","Surrogate"],["L","Letter"],["LC","Cased_Letter"],["Ll","Lowercase_Letter"],["Lm","Modifier_Letter"],["Lo","Other_Letter"],["Lt","Titlecase_Letter"],["Lu","Uppercase_Letter"],["M","Mark"],["Combining_Mark","Mark"],["Mc","Spacing_Mark"],["Me","Enclosing_Mark"],["Mn","Nonspacing_Mark"],["N","Number"],["Nd","Decimal_Number"],["digit","Decimal_Number"],["Nl","Letter_Number"],["No","Other_Number"],["P","Punctuation"],["punct","Punctuation"],["Pc","Connector_Punctuation"],["Pd","Dash_Punctuation"],["Pe","Close_Punctuation"],["Pf","Final_Punctuation"],["Pi","Initial_Punctuation"],["Po","Other_Punctuation"],["Ps","Open_Punctuation"],["S","Symbol"],["Sc","Currency_Symbol"],["Sk","Modifier_Symbol"],["Sm","Math_Symbol"],["So","Other_Symbol"],["Z","Separator"],["Zl","Line_Separator"],["Zp","Paragraph_Separator"],["Zs","Space_Separator"],["Other","Other"],["Control","Control"],["Format","Format"],["Unassigned","Unassigned"],["Private_Use","Private_Use"],["Surrogate","Surrogate"],["Letter","Letter"],["Cased_Letter","Cased_Letter"],["Lowercase_Letter","Lowercase_Letter"],["Modifier_Letter","Modifier_Letter"],["Other_Letter","Other_Letter"],["Titlecase_Letter","Titlecase_Letter"],["Uppercase_Letter","Uppercase_Letter"],["Mark","Mark"],["Spacing_Mark","Spacing_Mark"],["Enclosing_Mark","Enclosing_Mark"],["Nonspacing_Mark","Nonspacing_Mark"],["Number","Number"],["Decimal_Number","Decimal_Number"],["Letter_Number","Letter_Number"],["Other_Number","Other_Number"],["Punctuation","Punctuation"],["Connector_Punctuation","Connector_Punctuation"],["Dash_Punctuation","Dash_Punctuation"],["Close_Punctuation","Close_Punctuation"],["Final_Punctuation","Final_Punctuation"],["Initial_Punctuation","Initial_Punctuation"],["Other_Punctuation","Other_Punctuation"],["Open_Punctuation","Open_Punctuation"],["Symbol","Symbol"],["Currency_Symbol","Currency_Symbol"],["Modifier_Symbol","Modifier_Symbol"],["Math_Symbol","Math_Symbol"],["Other_Symbol","Other_Symbol"],["Separator","Separator"],["Line_Separator","Line_Separator"],["Paragraph_Separator","Paragraph_Separator"],["Space_Separator","Space_Separator"]])],["Script",new Map([["Adlm","Adlam"],["Aghb","Caucasian_Albanian"],["Ahom","Ahom"],["Arab","Arabic"],["Armi","Imperial_Aramaic"],["Armn","Armenian"],["Avst","Avestan"],["Bali","Balinese"],["Bamu","Bamum"],["Bass","Bassa_Vah"],["Batk","Batak"],["Beng","Bengali"],["Bhks","Bhaiksuki"],["Bopo","Bopomofo"],["Brah","Brahmi"],["Brai","Braille"],["Bugi","Buginese"],["Buhd","Buhid"],["Cakm","Chakma"],["Cans","Canadian_Aboriginal"],["Cari","Carian"],["Cham","Cham"],["Cher","Cherokee"],["Copt","Coptic"],["Qaac","Coptic"],["Cprt","Cypriot"],["Cyrl","Cyrillic"],["Deva","Devanagari"],["Dogr","Dogra"],["Dsrt","Deseret"],["Dupl","Duployan"],["Egyp","Egyptian_Hieroglyphs"],["Elba","Elbasan"],["Ethi","Ethiopic"],["Geor","Georgian"],["Glag","Glagolitic"],["Gong","Gunjala_Gondi"],["Gonm","Masaram_Gondi"],["Goth","Gothic"],["Gran","Grantha"],["Grek","Greek"],["Gujr","Gujarati"],["Guru","Gurmukhi"],["Hang","Hangul"],["Hani","Han"],["Hano","Hanunoo"],["Hatr","Hatran"],["Hebr","Hebrew"],["Hira","Hiragana"],["Hluw","Anatolian_Hieroglyphs"],["Hmng","Pahawh_Hmong"],["Hrkt","Katakana_Or_Hiragana"],["Hung","Old_Hungarian"],["Ital","Old_Italic"],["Java","Javanese"],["Kali","Kayah_Li"],["Kana","Katakana"],["Khar","Kharoshthi"],["Khmr","Khmer"],["Khoj","Khojki"],["Knda","Kannada"],["Kthi","Kaithi"],["Lana","Tai_Tham"],["Laoo","Lao"],["Latn","Latin"],["Lepc","Lepcha"],["Limb","Limbu"],["Lina","Linear_A"],["Linb","Linear_B"],["Lisu","Lisu"],["Lyci","Lycian"],["Lydi","Lydian"],["Mahj","Mahajani"],["Maka","Makasar"],["Mand","Mandaic"],["Mani","Manichaean"],["Marc","Marchen"],["Medf","Medefaidrin"],["Mend","Mende_Kikakui"],["Merc","Meroitic_Cursive"],["Mero","Meroitic_Hieroglyphs"],["Mlym","Malayalam"],["Modi","Modi"],["Mong","Mongolian"],["Mroo","Mro"],["Mtei","Meetei_Mayek"],["Mult","Multani"],["Mymr","Myanmar"],["Narb","Old_North_Arabian"],["Nbat","Nabataean"],["Newa","Newa"],["Nkoo","Nko"],["Nshu","Nushu"],["Ogam","Ogham"],["Olck","Ol_Chiki"],["Orkh","Old_Turkic"],["Orya","Oriya"],["Osge","Osage"],["Osma","Osmanya"],["Palm","Palmyrene"],["Pauc","Pau_Cin_Hau"],["Perm","Old_Permic"],["Phag","Phags_Pa"],["Phli","Inscriptional_Pahlavi"],["Phlp","Psalter_Pahlavi"],["Phnx","Phoenician"],["Plrd","Miao"],["Prti","Inscriptional_Parthian"],["Rjng","Rejang"],["Rohg","Hanifi_Rohingya"],["Runr","Runic"],["Samr","Samaritan"],["Sarb","Old_South_Arabian"],["Saur","Saurashtra"],["Sgnw","SignWriting"],["Shaw","Shavian"],["Shrd","Sharada"],["Sidd","Siddham"],["Sind","Khudawadi"],["Sinh","Sinhala"],["Sogd","Sogdian"],["Sogo","Old_Sogdian"],["Sora","Sora_Sompeng"],["Soyo","Soyombo"],["Sund","Sundanese"],["Sylo","Syloti_Nagri"],["Syrc","Syriac"],["Tagb","Tagbanwa"],["Takr","Takri"],["Tale","Tai_Le"],["Talu","New_Tai_Lue"],["Taml","Tamil"],["Tang","Tangut"],["Tavt","Tai_Viet"],["Telu","Telugu"],["Tfng","Tifinagh"],["Tglg","Tagalog"],["Thaa","Thaana"],["Thai","Thai"],["Tibt","Tibetan"],["Tirh","Tirhuta"],["Ugar","Ugaritic"],["Vaii","Vai"],["Wara","Warang_Citi"],["Xpeo","Old_Persian"],["Xsux","Cuneiform"],["Yiii","Yi"],["Zanb","Zanabazar_Square"],["Zinh","Inherited"],["Qaai","Inherited"],["Zyyy","Common"],["Zzzz","Unknown"],["Adlam","Adlam"],["Caucasian_Albanian","Caucasian_Albanian"],["Arabic","Arabic"],["Imperial_Aramaic","Imperial_Aramaic"],["Armenian","Armenian"],["Avestan","Avestan"],["Balinese","Balinese"],["Bamum","Bamum"],["Bassa_Vah","Bassa_Vah"],["Batak","Batak"],["Bengali","Bengali"],["Bhaiksuki","Bhaiksuki"],["Bopomofo","Bopomofo"],["Brahmi","Brahmi"],["Braille","Braille"],["Buginese","Buginese"],["Buhid","Buhid"],["Chakma","Chakma"],["Canadian_Aboriginal","Canadian_Aboriginal"],["Carian","Carian"],["Cherokee","Cherokee"],["Coptic","Coptic"],["Cypriot","Cypriot"],["Cyrillic","Cyrillic"],["Devanagari","Devanagari"],["Dogra","Dogra"],["Deseret","Deseret"],["Duployan","Duployan"],["Egyptian_Hieroglyphs","Egyptian_Hieroglyphs"],["Elbasan","Elbasan"],["Ethiopic","Ethiopic"],["Georgian","Georgian"],["Glagolitic","Glagolitic"],["Gunjala_Gondi","Gunjala_Gondi"],["Masaram_Gondi","Masaram_Gondi"],["Gothic","Gothic"],["Grantha","Grantha"],["Greek","Greek"],["Gujarati","Gujarati"],["Gurmukhi","Gurmukhi"],["Hangul","Hangul"],["Han","Han"],["Hanunoo","Hanunoo"],["Hatran","Hatran"],["Hebrew","Hebrew"],["Hiragana","Hiragana"],["Anatolian_Hieroglyphs","Anatolian_Hieroglyphs"],["Pahawh_Hmong","Pahawh_Hmong"],["Katakana_Or_Hiragana","Katakana_Or_Hiragana"],["Old_Hungarian","Old_Hungarian"],["Old_Italic","Old_Italic"],["Javanese","Javanese"],["Kayah_Li","Kayah_Li"],["Katakana","Katakana"],["Kharoshthi","Kharoshthi"],["Khmer","Khmer"],["Khojki","Khojki"],["Kannada","Kannada"],["Kaithi","Kaithi"],["Tai_Tham","Tai_Tham"],["Lao","Lao"],["Latin","Latin"],["Lepcha","Lepcha"],["Limbu","Limbu"],["Linear_A","Linear_A"],["Linear_B","Linear_B"],["Lycian","Lycian"],["Lydian","Lydian"],["Mahajani","Mahajani"],["Makasar","Makasar"],["Mandaic","Mandaic"],["Manichaean","Manichaean"],["Marchen","Marchen"],["Medefaidrin","Medefaidrin"],["Mende_Kikakui","Mende_Kikakui"],["Meroitic_Cursive","Meroitic_Cursive"],["Meroitic_Hieroglyphs","Meroitic_Hieroglyphs"],["Malayalam","Malayalam"],["Mongolian","Mongolian"],["Mro","Mro"],["Meetei_Mayek","Meetei_Mayek"],["Multani","Multani"],["Myanmar","Myanmar"],["Old_North_Arabian","Old_North_Arabian"],["Nabataean","Nabataean"],["Nko","Nko"],["Nushu","Nushu"],["Ogham","Ogham"],["Ol_Chiki","Ol_Chiki"],["Old_Turkic","Old_Turkic"],["Oriya","Oriya"],["Osage","Osage"],["Osmanya","Osmanya"],["Palmyrene","Palmyrene"],["Pau_Cin_Hau","Pau_Cin_Hau"],["Old_Permic","Old_Permic"],["Phags_Pa","Phags_Pa"],["Inscriptional_Pahlavi","Inscriptional_Pahlavi"],["Psalter_Pahlavi","Psalter_Pahlavi"],["Phoenician","Phoenician"],["Miao","Miao"],["Inscriptional_Parthian","Inscriptional_Parthian"],["Rejang","Rejang"],["Hanifi_Rohingya","Hanifi_Rohingya"],["Runic","Runic"],["Samaritan","Samaritan"],["Old_South_Arabian","Old_South_Arabian"],["Saurashtra","Saurashtra"],["SignWriting","SignWriting"],["Shavian","Shavian"],["Sharada","Sharada"],["Siddham","Siddham"],["Khudawadi","Khudawadi"],["Sinhala","Sinhala"],["Sogdian","Sogdian"],["Old_Sogdian","Old_Sogdian"],["Sora_Sompeng","Sora_Sompeng"],["Soyombo","Soyombo"],["Sundanese","Sundanese"],["Syloti_Nagri","Syloti_Nagri"],["Syriac","Syriac"],["Tagbanwa","Tagbanwa"],["Takri","Takri"],["Tai_Le","Tai_Le"],["New_Tai_Lue","New_Tai_Lue"],["Tamil","Tamil"],["Tangut","Tangut"],["Tai_Viet","Tai_Viet"],["Telugu","Telugu"],["Tifinagh","Tifinagh"],["Tagalog","Tagalog"],["Thaana","Thaana"],["Tibetan","Tibetan"],["Tirhuta","Tirhuta"],["Ugaritic","Ugaritic"],["Vai","Vai"],["Warang_Citi","Warang_Citi"],["Old_Persian","Old_Persian"],["Cuneiform","Cuneiform"],["Yi","Yi"],["Zanabazar_Square","Zanabazar_Square"],["Inherited","Inherited"],["Common","Common"],["Unknown","Unknown"]])],["Script_Extensions",new Map([["Adlm","Adlam"],["Aghb","Caucasian_Albanian"],["Ahom","Ahom"],["Arab","Arabic"],["Armi","Imperial_Aramaic"],["Armn","Armenian"],["Avst","Avestan"],["Bali","Balinese"],["Bamu","Bamum"],["Bass","Bassa_Vah"],["Batk","Batak"],["Beng","Bengali"],["Bhks","Bhaiksuki"],["Bopo","Bopomofo"],["Brah","Brahmi"],["Brai","Braille"],["Bugi","Buginese"],["Buhd","Buhid"],["Cakm","Chakma"],["Cans","Canadian_Aboriginal"],["Cari","Carian"],["Cham","Cham"],["Cher","Cherokee"],["Copt","Coptic"],["Qaac","Coptic"],["Cprt","Cypriot"],["Cyrl","Cyrillic"],["Deva","Devanagari"],["Dogr","Dogra"],["Dsrt","Deseret"],["Dupl","Duployan"],["Egyp","Egyptian_Hieroglyphs"],["Elba","Elbasan"],["Ethi","Ethiopic"],["Geor","Georgian"],["Glag","Glagolitic"],["Gong","Gunjala_Gondi"],["Gonm","Masaram_Gondi"],["Goth","Gothic"],["Gran","Grantha"],["Grek","Greek"],["Gujr","Gujarati"],["Guru","Gurmukhi"],["Hang","Hangul"],["Hani","Han"],["Hano","Hanunoo"],["Hatr","Hatran"],["Hebr","Hebrew"],["Hira","Hiragana"],["Hluw","Anatolian_Hieroglyphs"],["Hmng","Pahawh_Hmong"],["Hrkt","Katakana_Or_Hiragana"],["Hung","Old_Hungarian"],["Ital","Old_Italic"],["Java","Javanese"],["Kali","Kayah_Li"],["Kana","Katakana"],["Khar","Kharoshthi"],["Khmr","Khmer"],["Khoj","Khojki"],["Knda","Kannada"],["Kthi","Kaithi"],["Lana","Tai_Tham"],["Laoo","Lao"],["Latn","Latin"],["Lepc","Lepcha"],["Limb","Limbu"],["Lina","Linear_A"],["Linb","Linear_B"],["Lisu","Lisu"],["Lyci","Lycian"],["Lydi","Lydian"],["Mahj","Mahajani"],["Maka","Makasar"],["Mand","Mandaic"],["Mani","Manichaean"],["Marc","Marchen"],["Medf","Medefaidrin"],["Mend","Mende_Kikakui"],["Merc","Meroitic_Cursive"],["Mero","Meroitic_Hieroglyphs"],["Mlym","Malayalam"],["Modi","Modi"],["Mong","Mongolian"],["Mroo","Mro"],["Mtei","Meetei_Mayek"],["Mult","Multani"],["Mymr","Myanmar"],["Narb","Old_North_Arabian"],["Nbat","Nabataean"],["Newa","Newa"],["Nkoo","Nko"],["Nshu","Nushu"],["Ogam","Ogham"],["Olck","Ol_Chiki"],["Orkh","Old_Turkic"],["Orya","Oriya"],["Osge","Osage"],["Osma","Osmanya"],["Palm","Palmyrene"],["Pauc","Pau_Cin_Hau"],["Perm","Old_Permic"],["Phag","Phags_Pa"],["Phli","Inscriptional_Pahlavi"],["Phlp","Psalter_Pahlavi"],["Phnx","Phoenician"],["Plrd","Miao"],["Prti","Inscriptional_Parthian"],["Rjng","Rejang"],["Rohg","Hanifi_Rohingya"],["Runr","Runic"],["Samr","Samaritan"],["Sarb","Old_South_Arabian"],["Saur","Saurashtra"],["Sgnw","SignWriting"],["Shaw","Shavian"],["Shrd","Sharada"],["Sidd","Siddham"],["Sind","Khudawadi"],["Sinh","Sinhala"],["Sogd","Sogdian"],["Sogo","Old_Sogdian"],["Sora","Sora_Sompeng"],["Soyo","Soyombo"],["Sund","Sundanese"],["Sylo","Syloti_Nagri"],["Syrc","Syriac"],["Tagb","Tagbanwa"],["Takr","Takri"],["Tale","Tai_Le"],["Talu","New_Tai_Lue"],["Taml","Tamil"],["Tang","Tangut"],["Tavt","Tai_Viet"],["Telu","Telugu"],["Tfng","Tifinagh"],["Tglg","Tagalog"],["Thaa","Thaana"],["Thai","Thai"],["Tibt","Tibetan"],["Tirh","Tirhuta"],["Ugar","Ugaritic"],["Vaii","Vai"],["Wara","Warang_Citi"],["Xpeo","Old_Persian"],["Xsux","Cuneiform"],["Yiii","Yi"],["Zanb","Zanabazar_Square"],["Zinh","Inherited"],["Qaai","Inherited"],["Zyyy","Common"],["Zzzz","Unknown"],["Adlam","Adlam"],["Caucasian_Albanian","Caucasian_Albanian"],["Arabic","Arabic"],["Imperial_Aramaic","Imperial_Aramaic"],["Armenian","Armenian"],["Avestan","Avestan"],["Balinese","Balinese"],["Bamum","Bamum"],["Bassa_Vah","Bassa_Vah"],["Batak","Batak"],["Bengali","Bengali"],["Bhaiksuki","Bhaiksuki"],["Bopomofo","Bopomofo"],["Brahmi","Brahmi"],["Braille","Braille"],["Buginese","Buginese"],["Buhid","Buhid"],["Chakma","Chakma"],["Canadian_Aboriginal","Canadian_Aboriginal"],["Carian","Carian"],["Cherokee","Cherokee"],["Coptic","Coptic"],["Cypriot","Cypriot"],["Cyrillic","Cyrillic"],["Devanagari","Devanagari"],["Dogra","Dogra"],["Deseret","Deseret"],["Duployan","Duployan"],["Egyptian_Hieroglyphs","Egyptian_Hieroglyphs"],["Elbasan","Elbasan"],["Ethiopic","Ethiopic"],["Georgian","Georgian"],["Glagolitic","Glagolitic"],["Gunjala_Gondi","Gunjala_Gondi"],["Masaram_Gondi","Masaram_Gondi"],["Gothic","Gothic"],["Grantha","Grantha"],["Greek","Greek"],["Gujarati","Gujarati"],["Gurmukhi","Gurmukhi"],["Hangul","Hangul"],["Han","Han"],["Hanunoo","Hanunoo"],["Hatran","Hatran"],["Hebrew","Hebrew"],["Hiragana","Hiragana"],["Anatolian_Hieroglyphs","Anatolian_Hieroglyphs"],["Pahawh_Hmong","Pahawh_Hmong"],["Katakana_Or_Hiragana","Katakana_Or_Hiragana"],["Old_Hungarian","Old_Hungarian"],["Old_Italic","Old_Italic"],["Javanese","Javanese"],["Kayah_Li","Kayah_Li"],["Katakana","Katakana"],["Kharoshthi","Kharoshthi"],["Khmer","Khmer"],["Khojki","Khojki"],["Kannada","Kannada"],["Kaithi","Kaithi"],["Tai_Tham","Tai_Tham"],["Lao","Lao"],["Latin","Latin"],["Lepcha","Lepcha"],["Limbu","Limbu"],["Linear_A","Linear_A"],["Linear_B","Linear_B"],["Lycian","Lycian"],["Lydian","Lydian"],["Mahajani","Mahajani"],["Makasar","Makasar"],["Mandaic","Mandaic"],["Manichaean","Manichaean"],["Marchen","Marchen"],["Medefaidrin","Medefaidrin"],["Mende_Kikakui","Mende_Kikakui"],["Meroitic_Cursive","Meroitic_Cursive"],["Meroitic_Hieroglyphs","Meroitic_Hieroglyphs"],["Malayalam","Malayalam"],["Mongolian","Mongolian"],["Mro","Mro"],["Meetei_Mayek","Meetei_Mayek"],["Multani","Multani"],["Myanmar","Myanmar"],["Old_North_Arabian","Old_North_Arabian"],["Nabataean","Nabataean"],["Nko","Nko"],["Nushu","Nushu"],["Ogham","Ogham"],["Ol_Chiki","Ol_Chiki"],["Old_Turkic","Old_Turkic"],["Oriya","Oriya"],["Osage","Osage"],["Osmanya","Osmanya"],["Palmyrene","Palmyrene"],["Pau_Cin_Hau","Pau_Cin_Hau"],["Old_Permic","Old_Permic"],["Phags_Pa","Phags_Pa"],["Inscriptional_Pahlavi","Inscriptional_Pahlavi"],["Psalter_Pahlavi","Psalter_Pahlavi"],["Phoenician","Phoenician"],["Miao","Miao"],["Inscriptional_Parthian","Inscriptional_Parthian"],["Rejang","Rejang"],["Hanifi_Rohingya","Hanifi_Rohingya"],["Runic","Runic"],["Samaritan","Samaritan"],["Old_South_Arabian","Old_South_Arabian"],["Saurashtra","Saurashtra"],["SignWriting","SignWriting"],["Shavian","Shavian"],["Sharada","Sharada"],["Siddham","Siddham"],["Khudawadi","Khudawadi"],["Sinhala","Sinhala"],["Sogdian","Sogdian"],["Old_Sogdian","Old_Sogdian"],["Sora_Sompeng","Sora_Sompeng"],["Soyombo","Soyombo"],["Sundanese","Sundanese"],["Syloti_Nagri","Syloti_Nagri"],["Syriac","Syriac"],["Tagbanwa","Tagbanwa"],["Takri","Takri"],["Tai_Le","Tai_Le"],["New_Tai_Lue","New_Tai_Lue"],["Tamil","Tamil"],["Tangut","Tangut"],["Tai_Viet","Tai_Viet"],["Telugu","Telugu"],["Tifinagh","Tifinagh"],["Tagalog","Tagalog"],["Thaana","Thaana"],["Tibetan","Tibetan"],["Tirhuta","Tirhuta"],["Ugaritic","Ugaritic"],["Vai","Vai"],["Warang_Citi","Warang_Citi"],["Old_Persian","Old_Persian"],["Cuneiform","Cuneiform"],["Yi","Yi"],["Zanabazar_Square","Zanabazar_Square"],["Inherited","Inherited"],["Common","Common"],["Unknown","Unknown"]])]])},2451:function(e,t,n){"use strict";var r=n(9506);e.exports=function(e,t){var n=r.get(e);if(!n)throw new Error("Unknown property `".concat(e,"`."));var i=n.get(t);if(i)return i;throw new Error("Unknown value `".concat(t,"` for property `").concat(e,"`."))}},4483:function(e){e.exports=new Map([["scx","Script_Extensions"],["sc","Script"],["gc","General_Category"],["AHex","ASCII_Hex_Digit"],["Alpha","Alphabetic"],["Bidi_C","Bidi_Control"],["Bidi_M","Bidi_Mirrored"],["Cased","Cased"],["CI","Case_Ignorable"],["CWCF","Changes_When_Casefolded"],["CWCM","Changes_When_Casemapped"],["CWKCF","Changes_When_NFKC_Casefolded"],["CWL","Changes_When_Lowercased"],["CWT","Changes_When_Titlecased"],["CWU","Changes_When_Uppercased"],["Dash","Dash"],["Dep","Deprecated"],["DI","Default_Ignorable_Code_Point"],["Dia","Diacritic"],["Ext","Extender"],["Gr_Base","Grapheme_Base"],["Gr_Ext","Grapheme_Extend"],["Hex","Hex_Digit"],["IDC","ID_Continue"],["Ideo","Ideographic"],["IDS","ID_Start"],["IDSB","IDS_Binary_Operator"],["IDST","IDS_Trinary_Operator"],["Join_C","Join_Control"],["LOE","Logical_Order_Exception"],["Lower","Lowercase"],["Math","Math"],["NChar","Noncharacter_Code_Point"],["Pat_Syn","Pattern_Syntax"],["Pat_WS","Pattern_White_Space"],["QMark","Quotation_Mark"],["Radical","Radical"],["RI","Regional_Indicator"],["SD","Soft_Dotted"],["STerm","Sentence_Terminal"],["Term","Terminal_Punctuation"],["UIdeo","Unified_Ideograph"],["Upper","Uppercase"],["VS","Variation_Selector"],["WSpace","White_Space"],["space","White_Space"],["XIDC","XID_Continue"],["XIDS","XID_Start"]])},6951:function(e,t){var n;!function(r){"use strict";function i(){if(i.prototype._singleton)throw new Error("WebMidi is a singleton, it cannot be instantiated directly.");(i.prototype._singleton=this)._inputs=[],this._outputs=[],this._userHandlers={},this._stateChangeQueue=[],this._processingStateChange=!1,this._midiInterfaceEvents=["connected","disconnected"],this._nrpnBuffer=[[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[]],this._nrpnEventsEnabled=!0,this._nrpnTypes=["entry","increment","decrement"],this._notes=["C","C#","D","D#","E","F","F#","G","G#","A","A#","B"],this._semitones={C:0,D:2,E:4,F:5,G:7,A:9,B:11},Object.defineProperties(this,{MIDI_SYSTEM_MESSAGES:{value:{sysex:240,timecode:241,songposition:242,songselect:243,tuningrequest:246,sysexend:247,clock:248,start:250,continue:251,stop:252,activesensing:254,reset:255,midimessage:0,unknownsystemmessage:-1},writable:!1,enumerable:!0,configurable:!1},MIDI_CHANNEL_MESSAGES:{value:{noteoff:8,noteon:9,keyaftertouch:10,controlchange:11,channelmode:11,nrpn:11,programchange:12,channelaftertouch:13,pitchbend:14},writable:!1,enumerable:!0,configurable:!1},MIDI_REGISTERED_PARAMETER:{value:{pitchbendrange:[0,0],channelfinetuning:[0,1],channelcoarsetuning:[0,2],tuningprogram:[0,3],tuningbank:[0,4],modulationrange:[0,5],azimuthangle:[61,0],elevationangle:[61,1],gain:[61,2],distanceratio:[61,3],maximumdistance:[61,4],maximumdistancegain:[61,5],referencedistanceratio:[61,6],panspreadangle:[61,7],rollangle:[61,8]},writable:!1,enumerable:!0,configurable:!1},MIDI_CONTROL_CHANGE_MESSAGES:{value:{bankselectcoarse:0,modulationwheelcoarse:1,breathcontrollercoarse:2,footcontrollercoarse:4,portamentotimecoarse:5,dataentrycoarse:6,volumecoarse:7,balancecoarse:8,pancoarse:10,expressioncoarse:11,effectcontrol1coarse:12,effectcontrol2coarse:13,generalpurposeslider1:16,generalpurposeslider2:17,generalpurposeslider3:18,generalpurposeslider4:19,bankselectfine:32,modulationwheelfine:33,breathcontrollerfine:34,footcontrollerfine:36,portamentotimefine:37,dataentryfine:38,volumefine:39,balancefine:40,panfine:42,expressionfine:43,effectcontrol1fine:44,effectcontrol2fine:45,holdpedal:64,portamento:65,sustenutopedal:66,softpedal:67,legatopedal:68,hold2pedal:69,soundvariation:70,resonance:71,soundreleasetime:72,soundattacktime:73,brightness:74,soundcontrol6:75,soundcontrol7:76,soundcontrol8:77,soundcontrol9:78,soundcontrol10:79,generalpurposebutton1:80,generalpurposebutton2:81,generalpurposebutton3:82,generalpurposebutton4:83,reverblevel:91,tremololevel:92,choruslevel:93,celestelevel:94,phaserlevel:95,databuttonincrement:96,databuttondecrement:97,nonregisteredparametercoarse:98,nonregisteredparameterfine:99,registeredparametercoarse:100,registeredparameterfine:101},writable:!1,enumerable:!0,configurable:!1},MIDI_NRPN_MESSAGES:{value:{entrymsb:6,entrylsb:38,increment:96,decrement:97,paramlsb:98,parammsb:99,nullactiveparameter:127},writable:!1,enumerable:!0,configurable:!1},MIDI_CHANNEL_MODE_MESSAGES:{value:{allsoundoff:120,resetallcontrollers:121,localcontrol:122,allnotesoff:123,omnimodeoff:124,omnimodeon:125,monomodeon:126,polymodeon:127},writable:!1,enumerable:!0,configurable:!1},octaveOffset:{value:0,writable:!0,enumerable:!0,configurable:!1}}),Object.defineProperties(this,{supported:{enumerable:!0,get:function(){return"requestMIDIAccess"in navigator}},enabled:{enumerable:!0,get:function(){return void 0!==this.interface}.bind(this)},inputs:{enumerable:!0,get:function(){return this._inputs}.bind(this)},outputs:{enumerable:!0,get:function(){return this._outputs}.bind(this)},sysexEnabled:{enumerable:!0,get:function(){return!(!this.interface||!this.interface.sysexEnabled)}.bind(this)},nrpnEventsEnabled:{enumerable:!0,get:function(){return!!this._nrpnEventsEnabled}.bind(this),set:function(e){return this._nrpnEventsEnabled=e,this._nrpnEventsEnabled}},nrpnTypes:{enumerable:!0,get:function(){return this._nrpnTypes}.bind(this)},time:{enumerable:!0,get:function(){return performance.now()}}})}var o=new i;function a(e){var t=this;this._userHandlers={channel:{},system:{}},this._midiInput=e,Object.defineProperties(this,{connection:{enumerable:!0,get:function(){return t._midiInput.connection}},id:{enumerable:!0,get:function(){return t._midiInput.id}},manufacturer:{enumerable:!0,get:function(){return t._midiInput.manufacturer}},name:{enumerable:!0,get:function(){return t._midiInput.name}},state:{enumerable:!0,get:function(){return t._midiInput.state}},type:{enumerable:!0,get:function(){return t._midiInput.type}}}),this._initializeUserHandlers(),this._midiInput.onmidimessage=this._onMidiMessage.bind(this)}function s(e){var t=this;this._midiOutput=e,Object.defineProperties(this,{connection:{enumerable:!0,get:function(){return t._midiOutput.connection}},id:{enumerable:!0,get:function(){return t._midiOutput.id}},manufacturer:{enumerable:!0,get:function(){return t._midiOutput.manufacturer}},name:{enumerable:!0,get:function(){return t._midiOutput.name}},state:{enumerable:!0,get:function(){return t._midiOutput.state}},type:{enumerable:!0,get:function(){return t._midiOutput.type}}})}i.prototype.enable=function(e,t){this.enabled||(this.supported?navigator.requestMIDIAccess({sysex:t}).then(function(t){var n,r=[],i=[];this.interface=t,this._resetInterfaceUserHandlers(),this.interface.onstatechange=function(e){r.push(e)};for(var o=t.inputs.values(),a=o.next();a&&!a.done;a=o.next())i.push(a.value.open());for(var s=t.outputs.values(),u=s.next();u&&!u.done;u=s.next())i.push(u.value.open());function c(){clearTimeout(n),this._updateInputsAndOutputs(),this.interface.onstatechange=this._onInterfaceStateChange.bind(this),"function"==typeof e&&e.call(this),r.forEach(function(e){this._onInterfaceStateChange(e)}.bind(this))}n=setTimeout(c.bind(this),200),Promise&&Promise.all(i).catch((function(e){})).then(c.bind(this))}.bind(this),function(t){"function"==typeof e&&e.call(this,t)}.bind(this)):"function"==typeof e&&e(new Error("The Web MIDI API is not supported by your browser.")))},i.prototype.disable=function(){if(!this.supported)throw new Error("The Web MIDI API is not supported by your browser.");this.enabled&&(this.removeListener(),this.inputs.forEach((function(e){e.removeListener()}))),this.interface&&(this.interface.onstatechange=void 0),this.interface=void 0,this._inputs=[],this._outputs=[],this._nrpnEventsEnabled=!0,this._resetInterfaceUserHandlers()},i.prototype.addListener=function(e,t){if(!this.enabled)throw new Error("WebMidi must be enabled before adding event listeners.");if("function"!=typeof t)throw new TypeError("The 'listener' parameter must be a function.");if(!(0<=this._midiInterfaceEvents.indexOf(e)))throw new TypeError("The specified event type is not supported.");return this._userHandlers[e].push(t),this},i.prototype.hasListener=function(e,t){if(!this.enabled)throw new Error("WebMidi must be enabled before checking event listeners.");if("function"!=typeof t)throw new TypeError("The 'listener' parameter must be a function.");if(!(0<=this._midiInterfaceEvents.indexOf(e)))throw new TypeError("The specified event type is not supported.");for(var n=0;n>4,i=15&e.data[0],a=1+i;if(1=o.MIDI_NRPN_MESSAGES.increment&&t<=o.MIDI_NRPN_MESSAGES.parammsb||t===o.MIDI_NRPN_MESSAGES.entrymsb||t===o.MIDI_NRPN_MESSAGES.entrylsb)){var s={target:this,type:"controlchange",data:e.data,timestamp:e.timeStamp,channel:a,controller:{number:t,name:this.getCcNameByNumber(t)},value:n};if(s.controller.number===o.MIDI_NRPN_MESSAGES.parammsb&&s.value!=o.MIDI_NRPN_MESSAGES.nullactiveparameter)o._nrpnBuffer[i]=[],o._nrpnBuffer[i][0]=s;else if(1===o._nrpnBuffer[i].length&&s.controller.number===o.MIDI_NRPN_MESSAGES.paramlsb)o._nrpnBuffer[i].push(s);else if(2!==o._nrpnBuffer[i].length||s.controller.number!==o.MIDI_NRPN_MESSAGES.increment&&s.controller.number!==o.MIDI_NRPN_MESSAGES.decrement&&s.controller.number!==o.MIDI_NRPN_MESSAGES.entrymsb)if(3===o._nrpnBuffer[i].length&&o._nrpnBuffer[i][2].number===o.MIDI_NRPN_MESSAGES.entrymsb&&s.controller.number===o.MIDI_NRPN_MESSAGES.entrylsb)o._nrpnBuffer[i].push(s);else if(3<=o._nrpnBuffer[i].length&&o._nrpnBuffer[i].length<=4&&s.controller.number===o.MIDI_NRPN_MESSAGES.parammsb&&s.value===o.MIDI_NRPN_MESSAGES.nullactiveparameter)o._nrpnBuffer[i].push(s);else if(4<=o._nrpnBuffer[i].length&&o._nrpnBuffer[i].length<=5&&s.controller.number===o.MIDI_NRPN_MESSAGES.paramlsb&&s.value===o.MIDI_NRPN_MESSAGES.nullactiveparameter){o._nrpnBuffer[i].push(s);var u=[];o._nrpnBuffer[i].forEach((function(e){u.push(e.data)}));var c=o._nrpnBuffer[i][0].value<<7|o._nrpnBuffer[i][1].value,l=o._nrpnBuffer[i][2].value;6===o._nrpnBuffer[i].length&&(l=o._nrpnBuffer[i][2].value<<7|o._nrpnBuffer[i][3].value);var p="";switch(o._nrpnBuffer[i][2].controller.number){case o.MIDI_NRPN_MESSAGES.entrymsb:p=o._nrpnTypes[0];break;case o.MIDI_NRPN_MESSAGES.increment:p=o._nrpnTypes[1];break;case o.MIDI_NRPN_MESSAGES.decrement:p=o._nrpnTypes[2];break;default:throw new Error("The NPRN type was unidentifiable.")}var f={timestamp:s.timestamp,channel:s.channel,type:"nrpn",data:u,controller:{number:c,type:p,name:"Non-Registered Parameter "+c},value:l};o._nrpnBuffer[i]=[],this._userHandlers.channel[f.type]&&this._userHandlers.channel[f.type][f.channel]&&this._userHandlers.channel[f.type][f.channel].forEach((function(e){e(f)}))}else o._nrpnBuffer[i]=[];else o._nrpnBuffer[i].push(s)}},a.prototype._parseChannelEvent=function(e){var t,n,r=e.data[0]>>4,i=1+(15&e.data[0]);1>7&127,r=127&e;return this.send(o.MIDI_SYSTEM_MESSAGES.songposition,[n,r],this._parseTimeParameter(t.time)),this},s.prototype.sendSongSelect=function(e,t){if(t=t||{},!(0<=(e=Math.floor(e))&&e<=127))throw new RangeError("The song number must be between 0 and 127.");return this.send(o.MIDI_SYSTEM_MESSAGES.songselect,[e],this._parseTimeParameter(t.time)),this},s.prototype.sendTuningRequest=function(e){return e=e||{},this.send(o.MIDI_SYSTEM_MESSAGES.tuningrequest,void 0,this._parseTimeParameter(e.time)),this},s.prototype.sendClock=function(e){return e=e||{},this.send(o.MIDI_SYSTEM_MESSAGES.clock,void 0,this._parseTimeParameter(e.time)),this},s.prototype.sendStart=function(e){return e=e||{},this.send(o.MIDI_SYSTEM_MESSAGES.start,void 0,this._parseTimeParameter(e.time)),this},s.prototype.sendContinue=function(e){return e=e||{},this.send(o.MIDI_SYSTEM_MESSAGES.continue,void 0,this._parseTimeParameter(e.time)),this},s.prototype.sendStop=function(e){return e=e||{},this.send(o.MIDI_SYSTEM_MESSAGES.stop,void 0,this._parseTimeParameter(e.time)),this},s.prototype.sendActiveSensing=function(e){return e=e||{},this.send(o.MIDI_SYSTEM_MESSAGES.activesensing,[],this._parseTimeParameter(e.time)),this},s.prototype.sendReset=function(e){return e=e||{},this.send(o.MIDI_SYSTEM_MESSAGES.reset,void 0,this._parseTimeParameter(e.time)),this},s.prototype.stopNote=function(e,t,n){if("all"===e)return this.sendChannelMode("allnotesoff",0,t,n);var r=64;return(n=n||{}).rawVelocity?!isNaN(n.velocity)&&0<=n.velocity&&n.velocity<=127&&(r=n.velocity):!isNaN(n.velocity)&&0<=n.velocity&&n.velocity<=1&&(r=127*n.velocity),this._convertNoteToArray(e).forEach(function(e){o.toMIDIChannels(t).forEach(function(t){this.send((o.MIDI_CHANNEL_MESSAGES.noteoff<<4)+(t-1),[e,Math.round(r)],this._parseTimeParameter(n.time))}.bind(this))}.bind(this)),this},s.prototype.playNote=function(e,t,n){var r,i=64;if((n=n||{}).rawVelocity?!isNaN(n.velocity)&&0<=n.velocity&&n.velocity<=127&&(i=n.velocity):!isNaN(n.velocity)&&0<=n.velocity&&n.velocity<=1&&(i=127*n.velocity),r=this._parseTimeParameter(n.time),this._convertNoteToArray(e).forEach(function(e){o.toMIDIChannels(t).forEach(function(t){this.send((o.MIDI_CHANNEL_MESSAGES.noteon<<4)+(t-1),[e,Math.round(i)],r)}.bind(this))}.bind(this)),!isNaN(n.duration)){n.duration<=0&&(n.duration=0);var a=64;n.rawVelocity?!isNaN(n.release)&&0<=n.release&&n.release<=127&&(a=n.release):!isNaN(n.release)&&0<=n.release&&n.release<=1&&(a=127*n.release),this._convertNoteToArray(e).forEach(function(e){o.toMIDIChannels(t).forEach(function(t){this.send((o.MIDI_CHANNEL_MESSAGES.noteoff<<4)+(t-1),[e,Math.round(a)],(r||o.time)+n.duration)}.bind(this))}.bind(this))}return this},s.prototype.sendKeyAftertouch=function(e,t,n,r){var i=this;if(r=r||{},t<1||16>7&127,u=127&a;return o.toMIDIChannels(t).forEach((function(){r.setRegisteredParameter("channelcoarsetuning",i,t,{time:n.time}),r.setRegisteredParameter("channelfinetuning",[s,u],t,{time:n.time})})),this},s.prototype.setTuningProgram=function(e,t,n){var r=this;if(n=n||{},!(0<=(e=Math.floor(e))&&e<=127))throw new RangeError("The program value must be between 0 and 127");return o.toMIDIChannels(t).forEach((function(){r.setRegisteredParameter("tuningprogram",e,t,{time:n.time})})),this},s.prototype.setTuningBank=function(e,t,n){var r=this;if(n=n||{},!(0<=(e=Math.floor(e)||0)&&e<=127))throw new RangeError("The bank value must be between 0 and 127");return o.toMIDIChannels(t).forEach((function(){r.setRegisteredParameter("tuningbank",e,t,{time:n.time})})),this},s.prototype.sendChannelMode=function(e,t,n,r){if(r=r||{},"string"==typeof e){if(!(e=o.MIDI_CHANNEL_MODE_MESSAGES[e]))throw new TypeError("Invalid channel mode message name.")}else if(!(120<=(e=Math.floor(e))&&e<=127))throw new RangeError("Channel mode numerical identifiers must be between 120 and 127.");if((t=Math.floor(t)||0)<0||127>7&127,s=127&i;return o.toMIDIChannels(t).forEach((function(e){r.send((o.MIDI_CHANNEL_MESSAGES.pitchbend<<4)+(e-1),[s,a],r._parseTimeParameter(n.time))})),this},s.prototype._parseTimeParameter=function(e){var t,n=parseFloat(e);return"string"==typeof e&&"+"===e.substring(0,1)?n&&0o.time&&(t=n),t},s.prototype._convertNoteToArray=function(e){var t=[];return Array.isArray(e)||(e=[e]),e.forEach((function(e){t.push(o.guessNoteNumber(e))})),t},void 0===(n=function(){return o}.apply(t,[]))||(e.exports=n)}()},3668:function(e){e.exports=function(){"use strict";var e=navigator.userAgent,t=navigator.platform,n=/gecko\/\d/i.test(e),r=/MSIE \d/.test(e),i=/Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/.exec(e),o=/Edge\/(\d+)/.exec(e),a=r||i||o,s=a&&(r?document.documentMode||6:+(o||i)[1]),u=!o&&/WebKit\//.test(e),c=u&&/Qt\/\d+\.\d+/.test(e),l=!o&&/Chrome\//.test(e),p=/Opera\//.test(e),f=/Apple Computer/.test(navigator.vendor),d=/Mac OS X 1\d\D([8-9]|\d\d)\D/.test(e),h=/PhantomJS/.test(e),m=f&&(/Mobile\/\w+/.test(e)||navigator.maxTouchPoints>2),y=/Android/.test(e),v=m||y||/webOS|BlackBerry|Opera Mini|Opera Mobi|IEMobile/i.test(e),g=m||/Mac/.test(t),_=/\bCrOS\b/.test(e),E=/win/i.test(t),D=p&&e.match(/Version\/(\d*\.\d*)/);D&&(D=Number(D[1])),D&&D>=15&&(p=!1,u=!0);var b=g&&(c||p&&(null==D||D<12.11)),A=n||a&&s>=9;function C(e){return new RegExp("(^|\\s)"+e+"(?:$|\\s)\\s*")}var k,x=function(e,t){var n=e.className,r=C(t).exec(n);if(r){var i=n.slice(r.index+r[0].length);e.className=n.slice(0,r.index)+(i?r[1]+i:"")}};function w(e){for(var t=e.childNodes.length;t>0;--t)e.removeChild(e.firstChild);return e}function S(e,t){return w(e).appendChild(t)}function F(e,t,n,r){var i=document.createElement(e);if(n&&(i.className=n),r&&(i.style.cssText=r),"string"==typeof t)i.appendChild(document.createTextNode(t));else if(t)for(var o=0;o=t)return a+(t-o);a+=s-o,a+=n-a%n,o=s+1}}m?P=function(e){e.selectionStart=0,e.selectionEnd=e.value.length}:a&&(P=function(e){try{e.select()}catch(t){}});var L=function(){this.id=null,this.f=null,this.time=0,this.handler=I(this.onTimeout,this)};function j(e,t){for(var n=0;n=t)return r+Math.min(a,t-i);if(i+=o-r,r=o+1,(i+=n-i%n)>=t)return r}}var U=[""];function Y(e){for(;U.length<=e;)U.push(K(U)+" ");return U[e]}function K(e){return e[e.length-1]}function J(e,t){for(var n=[],r=0;r"\x80"&&(e.toUpperCase()!=e.toLowerCase()||ee.test(e))}function ne(e,t){return t?!!(t.source.indexOf("\\w")>-1&&te(e))||t.test(e):te(e)}function re(e){for(var t in e)if(e.hasOwnProperty(t)&&e[t])return!1;return!0}var ie=/[\u0300-\u036f\u0483-\u0489\u0591-\u05bd\u05bf\u05c1\u05c2\u05c4\u05c5\u05c7\u0610-\u061a\u064b-\u065e\u0670\u06d6-\u06dc\u06de-\u06e4\u06e7\u06e8\u06ea-\u06ed\u0711\u0730-\u074a\u07a6-\u07b0\u07eb-\u07f3\u0816-\u0819\u081b-\u0823\u0825-\u0827\u0829-\u082d\u0900-\u0902\u093c\u0941-\u0948\u094d\u0951-\u0955\u0962\u0963\u0981\u09bc\u09be\u09c1-\u09c4\u09cd\u09d7\u09e2\u09e3\u0a01\u0a02\u0a3c\u0a41\u0a42\u0a47\u0a48\u0a4b-\u0a4d\u0a51\u0a70\u0a71\u0a75\u0a81\u0a82\u0abc\u0ac1-\u0ac5\u0ac7\u0ac8\u0acd\u0ae2\u0ae3\u0b01\u0b3c\u0b3e\u0b3f\u0b41-\u0b44\u0b4d\u0b56\u0b57\u0b62\u0b63\u0b82\u0bbe\u0bc0\u0bcd\u0bd7\u0c3e-\u0c40\u0c46-\u0c48\u0c4a-\u0c4d\u0c55\u0c56\u0c62\u0c63\u0cbc\u0cbf\u0cc2\u0cc6\u0ccc\u0ccd\u0cd5\u0cd6\u0ce2\u0ce3\u0d3e\u0d41-\u0d44\u0d4d\u0d57\u0d62\u0d63\u0dca\u0dcf\u0dd2-\u0dd4\u0dd6\u0ddf\u0e31\u0e34-\u0e3a\u0e47-\u0e4e\u0eb1\u0eb4-\u0eb9\u0ebb\u0ebc\u0ec8-\u0ecd\u0f18\u0f19\u0f35\u0f37\u0f39\u0f71-\u0f7e\u0f80-\u0f84\u0f86\u0f87\u0f90-\u0f97\u0f99-\u0fbc\u0fc6\u102d-\u1030\u1032-\u1037\u1039\u103a\u103d\u103e\u1058\u1059\u105e-\u1060\u1071-\u1074\u1082\u1085\u1086\u108d\u109d\u135f\u1712-\u1714\u1732-\u1734\u1752\u1753\u1772\u1773\u17b7-\u17bd\u17c6\u17c9-\u17d3\u17dd\u180b-\u180d\u18a9\u1920-\u1922\u1927\u1928\u1932\u1939-\u193b\u1a17\u1a18\u1a56\u1a58-\u1a5e\u1a60\u1a62\u1a65-\u1a6c\u1a73-\u1a7c\u1a7f\u1b00-\u1b03\u1b34\u1b36-\u1b3a\u1b3c\u1b42\u1b6b-\u1b73\u1b80\u1b81\u1ba2-\u1ba5\u1ba8\u1ba9\u1c2c-\u1c33\u1c36\u1c37\u1cd0-\u1cd2\u1cd4-\u1ce0\u1ce2-\u1ce8\u1ced\u1dc0-\u1de6\u1dfd-\u1dff\u200c\u200d\u20d0-\u20f0\u2cef-\u2cf1\u2de0-\u2dff\u302a-\u302f\u3099\u309a\ua66f-\ua672\ua67c\ua67d\ua6f0\ua6f1\ua802\ua806\ua80b\ua825\ua826\ua8c4\ua8e0-\ua8f1\ua926-\ua92d\ua947-\ua951\ua980-\ua982\ua9b3\ua9b6-\ua9b9\ua9bc\uaa29-\uaa2e\uaa31\uaa32\uaa35\uaa36\uaa43\uaa4c\uaab0\uaab2-\uaab4\uaab7\uaab8\uaabe\uaabf\uaac1\uabe5\uabe8\uabed\udc00-\udfff\ufb1e\ufe00-\ufe0f\ufe20-\ufe26\uff9e\uff9f]/;function oe(e){return e.charCodeAt(0)>=768&&ie.test(e)}function ae(e,t,n){for(;(n<0?t>0:tn?-1:1;;){if(t==n)return t;var i=(t+n)/2,o=r<0?Math.ceil(i):Math.floor(i);if(o==t)return e(o)?t:n;e(o)?n=o:t=o+r}}function ue(e,t,n,r){if(!e)return r(t,n,"ltr",0);for(var i=!1,o=0;ot||t==n&&a.to==t)&&(r(Math.max(a.from,t),Math.min(a.to,n),1==a.level?"rtl":"ltr",o),i=!0)}i||r(t,n,"ltr")}var ce=null;function le(e,t,n){var r;ce=null;for(var i=0;it)return i;o.to==t&&(o.from!=o.to&&"before"==n?r=i:ce=i),o.from==t&&(o.from!=o.to&&"before"!=n?r=i:ce=i)}return null!=r?r:ce}var pe=function(){var e="bbbbbbbbbtstwsbbbbbbbbbbbbbbssstwNN%%%NNNNNN,N,N1111111111NNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNbbbbbbsbbbbbbbbbbbbbbbbbbbbbbbbbb,N%%%%NNNNLNNNNN%%11NLNNN1LNNNNNLLLLLLLLLLLLLLLLLLLLLLLNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLN",t="nnnnnnNNr%%r,rNNmmmmmmmmmmmrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrmmmmmmmmmmmmmmmmmmmmmnnnnnnnnnn%nnrrrmrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrmmmmmmmnNmmmmmmrrmmNmmmmrr1111111111";function n(n){return n<=247?e.charAt(n):1424<=n&&n<=1524?"R":1536<=n&&n<=1785?t.charAt(n-1536):1774<=n&&n<=2220?"r":8192<=n&&n<=8203?"w":8204==n?"b":"L"}var r=/[\u0590-\u05f4\u0600-\u06ff\u0700-\u08ac]/,i=/[stwN]/,o=/[LRr]/,a=/[Lb1n]/,s=/[1n]/;function u(e,t,n){this.level=e,this.from=t,this.to=n}return function(e,t){var c="ltr"==t?"L":"R";if(0==e.length||"ltr"==t&&!r.test(e))return!1;for(var l=e.length,p=[],f=0;f-1&&(r[t]=i.slice(0,o).concat(i.slice(o+1)))}}}function ve(e,t){var n=me(e,t);if(n.length)for(var r=Array.prototype.slice.call(arguments,2),i=0;i0}function De(e){e.prototype.on=function(e,t){he(this,e,t)},e.prototype.off=function(e,t){ye(this,e,t)}}function be(e){e.preventDefault?e.preventDefault():e.returnValue=!1}function Ae(e){e.stopPropagation?e.stopPropagation():e.cancelBubble=!0}function Ce(e){return null!=e.defaultPrevented?e.defaultPrevented:0==e.returnValue}function ke(e){be(e),Ae(e)}function xe(e){return e.target||e.srcElement}function we(e){var t=e.which;return null==t&&(1&e.button?t=1:2&e.button?t=3:4&e.button&&(t=2)),g&&e.ctrlKey&&1==t&&(t=3),t}var Se,Fe,Te=function(){if(a&&s<9)return!1;var e=F("div");return"draggable"in e||"dragDrop"in e}();function Be(e){if(null==Se){var t=F("span","\u200b");S(e,F("span",[t,document.createTextNode("x")])),0!=e.firstChild.offsetHeight&&(Se=t.offsetWidth<=1&&t.offsetHeight>2&&!(a&&s<8))}var n=Se?F("span","\u200b"):F("span","\xa0",null,"display: inline-block; width: 1px; margin-right: -1px");return n.setAttribute("cm-text",""),n}function qe(e){if(null!=Fe)return Fe;var t=S(e,document.createTextNode("A\u062eA")),n=k(t,0,1).getBoundingClientRect(),r=k(t,1,2).getBoundingClientRect();return w(e),!(!n||n.left==n.right)&&(Fe=r.right-n.right<3)}var Oe=3!="\n\nb".split(/\n/).length?function(e){for(var t=0,n=[],r=e.length;t<=r;){var i=e.indexOf("\n",t);-1==i&&(i=e.length);var o=e.slice(t,"\r"==e.charAt(i-1)?i-1:i),a=o.indexOf("\r");-1!=a?(n.push(o.slice(0,a)),t+=a+1):(n.push(o),t=i+1)}return n}:function(e){return e.split(/\r\n?|\n/)},Me=window.getSelection?function(e){try{return e.selectionStart!=e.selectionEnd}catch(t){return!1}}:function(e){var t;try{t=e.ownerDocument.selection.createRange()}catch(n){}return!(!t||t.parentElement()!=e)&&0!=t.compareEndPoints("StartToEnd",t)},Pe=function(){var e=F("div");return"oncopy"in e||(e.setAttribute("oncopy","return;"),"function"==typeof e.oncopy)}(),Ie=null;function Ne(e){if(null!=Ie)return Ie;var t=S(e,F("span","x")),n=t.getBoundingClientRect(),r=k(t,0,1).getBoundingClientRect();return Ie=Math.abs(n.left-r.left)>1}var Re={},Le={};function je(e,t){arguments.length>2&&(t.dependencies=Array.prototype.slice.call(arguments,2)),Re[e]=t}function We(e,t){Le[e]=t}function Ge(e){if("string"==typeof e&&Le.hasOwnProperty(e))e=Le[e];else if(e&&"string"==typeof e.name&&Le.hasOwnProperty(e.name)){var t=Le[e.name];"string"==typeof t&&(t={name:t}),(e=$(t,e)).name=t.name}else{if("string"==typeof e&&/^[\w\-]+\/[\w\-]+\+xml$/.test(e))return Ge("application/xml");if("string"==typeof e&&/^[\w\-]+\/[\w\-]+\+json$/.test(e))return Ge("application/json")}return"string"==typeof e?{name:e}:e||{name:"null"}}function He(e,t){t=Ge(t);var n=Re[t.name];if(!n)return He(e,"text/plain");var r=n(e,t);if(ze.hasOwnProperty(t.name)){var i=ze[t.name];for(var o in i)i.hasOwnProperty(o)&&(r.hasOwnProperty(o)&&(r["_"+o]=r[o]),r[o]=i[o])}if(r.name=t.name,t.helperType&&(r.helperType=t.helperType),t.modeProps)for(var a in t.modeProps)r[a]=t.modeProps[a];return r}var ze={};function Ve(e,t){N(t,ze.hasOwnProperty(e)?ze[e]:ze[e]={})}function Ze(e,t){if(!0===t)return t;if(e.copyState)return e.copyState(t);var n={};for(var r in t){var i=t[r];i instanceof Array&&(i=i.concat([])),n[r]=i}return n}function Ue(e,t){for(var n;e.innerMode&&(n=e.innerMode(t))&&n.mode!=e;)t=n.state,e=n.mode;return n||{mode:e,state:t}}function Ye(e,t,n){return!e.startState||e.startState(t,n)}var Ke=function(e,t,n){this.pos=this.start=0,this.string=e,this.tabSize=t||8,this.lastColumnPos=this.lastColumnValue=0,this.lineStart=0,this.lineOracle=n};function Je(e,t){if((t-=e.first)<0||t>=e.size)throw new Error("There is no line "+(t+e.first)+" in the document.");for(var n=e;!n.lines;)for(var r=0;;++r){var i=n.children[r],o=i.chunkSize();if(t=e.first&&tn?it(n,Je(e,n).text.length):ft(t,Je(e,t.line).text.length)}function ft(e,t){var n=e.ch;return null==n||n>t?it(e.line,t):n<0?it(e.line,0):e}function dt(e,t){for(var n=[],r=0;r=this.string.length},Ke.prototype.sol=function(){return this.pos==this.lineStart},Ke.prototype.peek=function(){return this.string.charAt(this.pos)||void 0},Ke.prototype.next=function(){if(this.post},Ke.prototype.eatSpace=function(){for(var e=this.pos;/[\s\u00a0]/.test(this.string.charAt(this.pos));)++this.pos;return this.pos>e},Ke.prototype.skipToEnd=function(){this.pos=this.string.length},Ke.prototype.skipTo=function(e){var t=this.string.indexOf(e,this.pos);if(t>-1)return this.pos=t,!0},Ke.prototype.backUp=function(e){this.pos-=e},Ke.prototype.column=function(){return this.lastColumnPos0?null:(r&&!1!==t&&(this.pos+=r[0].length),r)}var i=function(e){return n?e.toLowerCase():e};if(i(this.string.substr(this.pos,e.length))==i(e))return!1!==t&&(this.pos+=e.length),!0},Ke.prototype.current=function(){return this.string.slice(this.start,this.pos)},Ke.prototype.hideFirstChars=function(e,t){this.lineStart+=e;try{return t()}finally{this.lineStart-=e}},Ke.prototype.lookAhead=function(e){var t=this.lineOracle;return t&&t.lookAhead(e)},Ke.prototype.baseToken=function(){var e=this.lineOracle;return e&&e.baseToken(this.pos)};var ht=function(e,t){this.state=e,this.lookAhead=t},mt=function(e,t,n,r){this.state=t,this.doc=e,this.line=n,this.maxLookAhead=r||0,this.baseTokens=null,this.baseTokenPos=1};function yt(e,t,n,r){var i=[e.state.modeGen],o={};kt(e,t.text,e.doc.mode,n,(function(e,t){return i.push(e,t)}),o,r);for(var a=n.state,s=function(r){n.baseTokens=i;var s=e.state.overlays[r],u=1,c=0;n.state=!0,kt(e,t.text,s.mode,n,(function(e,t){for(var n=u;ce&&i.splice(u,1,e,i[u+1],r),u+=2,c=Math.min(e,r)}if(t)if(s.opaque)i.splice(n,u-n,e,"overlay "+t),u=n+2;else for(;ne.options.maxHighlightLength&&Ze(e.doc.mode,r.state),o=yt(e,t,r);i&&(r.state=i),t.stateAfter=r.save(!i),t.styles=o.styles,o.classes?t.styleClasses=o.classes:t.styleClasses&&(t.styleClasses=null),n===e.doc.highlightFrontier&&(e.doc.modeFrontier=Math.max(e.doc.modeFrontier,++e.doc.highlightFrontier))}return t.styles}function gt(e,t,n){var r=e.doc,i=e.display;if(!r.mode.startState)return new mt(r,!0,t);var o=xt(e,t,n),a=o>r.first&&Je(r,o-1).stateAfter,s=a?mt.fromSaved(r,a,o):new mt(r,Ye(r.mode),o);return r.iter(o,t,(function(n){_t(e,n.text,s);var r=s.line;n.stateAfter=r==t-1||r%5==0||r>=i.viewFrom&&rt.start)return o}throw new Error("Mode "+e.name+" failed to advance stream.")}mt.prototype.lookAhead=function(e){var t=this.doc.getLine(this.line+e);return null!=t&&e>this.maxLookAhead&&(this.maxLookAhead=e),t},mt.prototype.baseToken=function(e){if(!this.baseTokens)return null;for(;this.baseTokens[this.baseTokenPos]<=e;)this.baseTokenPos+=2;var t=this.baseTokens[this.baseTokenPos+1];return{type:t&&t.replace(/( |^)overlay .*/,""),size:this.baseTokens[this.baseTokenPos]-e}},mt.prototype.nextLine=function(){this.line++,this.maxLookAhead>0&&this.maxLookAhead--},mt.fromSaved=function(e,t,n){return t instanceof ht?new mt(e,Ze(e.mode,t.state),n,t.lookAhead):new mt(e,Ze(e.mode,t),n)},mt.prototype.save=function(e){var t=!1!==e?Ze(this.doc.mode,this.state):this.state;return this.maxLookAhead>0?new ht(t,this.maxLookAhead):t};var bt=function(e,t,n){this.start=e.start,this.end=e.pos,this.string=e.current(),this.type=t||null,this.state=n};function At(e,t,n,r){var i,o,a=e.doc,s=a.mode,u=Je(a,(t=pt(a,t)).line),c=gt(e,t.line,n),l=new Ke(u.text,e.options.tabSize,c);for(r&&(o=[]);(r||l.pose.options.maxHighlightLength?(s=!1,a&&_t(e,t,r,p.pos),p.pos=t.length,u=null):u=Ct(Dt(n,p,r.state,f),o),f){var d=f[0].name;d&&(u="m-"+(u?d+" "+u:d))}if(!s||l!=u){for(;ca;--s){if(s<=o.first)return o.first;var u=Je(o,s-1),c=u.stateAfter;if(c&&(!n||s+(c instanceof ht?c.lookAhead:0)<=o.modeFrontier))return s;var l=R(u.text,null,e.options.tabSize);(null==i||r>l)&&(i=s-1,r=l)}return i}function wt(e,t){if(e.modeFrontier=Math.min(e.modeFrontier,t),!(e.highlightFrontiern;r--){var i=Je(e,r).stateAfter;if(i&&(!(i instanceof ht)||r+i.lookAhead=t:o.to>t);(r||(r=[])).push(new qt(a,o.from,s?null:o.to))}}return r}function Nt(e,t,n){var r;if(e)for(var i=0;i=t:o.to>t)||o.from==t&&"bookmark"==a.type&&(!n||o.marker.insertLeft)){var s=null==o.from||(a.inclusiveLeft?o.from<=t:o.from0&&s)for(var _=0;_0)){var l=[u,1],p=ot(c.from,s.from),f=ot(c.to,s.to);(p<0||!a.inclusiveLeft&&!p)&&l.push({from:c.from,to:s.from}),(f>0||!a.inclusiveRight&&!f)&&l.push({from:s.to,to:c.to}),i.splice.apply(i,l),u+=l.length-3}}return i}function Wt(e){var t=e.markedSpans;if(t){for(var n=0;nt)&&(!n||Vt(n,o.marker)<0)&&(n=o.marker)}return n}function Jt(e,t,n,r,i){var o=Je(e,t),a=Ft&&o.markedSpans;if(a)for(var s=0;s=0&&p<=0||l<=0&&p>=0)&&(l<=0&&(u.marker.inclusiveRight&&i.inclusiveLeft?ot(c.to,n)>=0:ot(c.to,n)>0)||l>=0&&(u.marker.inclusiveRight&&i.inclusiveLeft?ot(c.from,r)<=0:ot(c.from,r)<0)))return!0}}}function Xt(e){for(var t;t=Ut(e);)e=t.find(-1,!0).line;return e}function Qt(e){for(var t;t=Yt(e);)e=t.find(1,!0).line;return e}function $t(e){for(var t,n;t=Yt(e);)e=t.find(1,!0).line,(n||(n=[])).push(e);return n}function en(e,t){var n=Je(e,t),r=Xt(n);return n==r?t:et(r)}function tn(e,t){if(t>e.lastLine())return t;var n,r=Je(e,t);if(!nn(e,r))return t;for(;n=Yt(r);)r=n.find(1,!0).line;return et(r)+1}function nn(e,t){var n=Ft&&t.markedSpans;if(n)for(var r=void 0,i=0;it.maxLineLength&&(t.maxLineLength=n,t.maxLine=e)}))}var un=function(e,t,n){this.text=e,Gt(this,t),this.height=n?n(this):1};function cn(e,t,n,r){e.text=t,e.stateAfter&&(e.stateAfter=null),e.styles&&(e.styles=null),null!=e.order&&(e.order=null),Wt(e),Gt(e,n);var i=r?r(e):1;i!=e.height&&$e(e,i)}function ln(e){e.parent=null,Wt(e)}un.prototype.lineNo=function(){return et(this)},De(un);var pn={},fn={};function dn(e,t){if(!e||/^\s*$/.test(e))return null;var n=t.addModeClass?fn:pn;return n[e]||(n[e]=e.replace(/\S+/g,"cm-$&"))}function hn(e,t){var n=T("span",null,null,u?"padding-right: .1px":null),r={pre:T("pre",[n],"CodeMirror-line"),content:n,col:0,pos:0,cm:e,trailingSpace:!1,splitSpaces:e.getOption("lineWrapping")};t.measure={};for(var i=0;i<=(t.rest?t.rest.length:0);i++){var o=i?t.rest[i-1]:t.line,a=void 0;r.pos=0,r.addToken=yn,qe(e.display.measure)&&(a=fe(o,e.doc.direction))&&(r.addToken=gn(r.addToken,a)),r.map=[],En(o,r,vt(e,o,t!=e.display.externalMeasured&&et(o))),o.styleClasses&&(o.styleClasses.bgClass&&(r.bgClass=M(o.styleClasses.bgClass,r.bgClass||"")),o.styleClasses.textClass&&(r.textClass=M(o.styleClasses.textClass,r.textClass||""))),0==r.map.length&&r.map.push(0,0,r.content.appendChild(Be(e.display.measure))),0==i?(t.measure.map=r.map,t.measure.cache={}):((t.measure.maps||(t.measure.maps=[])).push(r.map),(t.measure.caches||(t.measure.caches=[])).push({}))}if(u){var s=r.content.lastChild;(/\bcm-tab\b/.test(s.className)||s.querySelector&&s.querySelector(".cm-tab"))&&(r.content.className="cm-tab-wrap-hack")}return ve(e,"renderLine",e,t.line,r.pre),r.pre.className&&(r.textClass=M(r.pre.className,r.textClass||"")),r}function mn(e){var t=F("span","\u2022","cm-invalidchar");return t.title="\\u"+e.charCodeAt(0).toString(16),t.setAttribute("aria-label",t.title),t}function yn(e,t,n,r,i,o,u){if(t){var c,l=e.splitSpaces?vn(t,e.trailingSpace):t,p=e.cm.state.specialChars,f=!1;if(p.test(t)){c=document.createDocumentFragment();for(var d=0;;){p.lastIndex=d;var h=p.exec(t),m=h?h.index-d:t.length-d;if(m){var y=document.createTextNode(l.slice(d,d+m));a&&s<9?c.appendChild(F("span",[y])):c.appendChild(y),e.map.push(e.pos,e.pos+m,y),e.col+=m,e.pos+=m}if(!h)break;d+=m+1;var v=void 0;if("\t"==h[0]){var g=e.cm.options.tabSize,_=g-e.col%g;(v=c.appendChild(F("span",Y(_),"cm-tab"))).setAttribute("role","presentation"),v.setAttribute("cm-text","\t"),e.col+=_}else"\r"==h[0]||"\n"==h[0]?((v=c.appendChild(F("span","\r"==h[0]?"\u240d":"\u2424","cm-invalidchar"))).setAttribute("cm-text",h[0]),e.col+=1):((v=e.cm.options.specialCharPlaceholder(h[0])).setAttribute("cm-text",h[0]),a&&s<9?c.appendChild(F("span",[v])):c.appendChild(v),e.col+=1);e.map.push(e.pos,e.pos+1,v),e.pos++}}else e.col+=t.length,c=document.createTextNode(l),e.map.push(e.pos,e.pos+t.length,c),a&&s<9&&(f=!0),e.pos+=t.length;if(e.trailingSpace=32==l.charCodeAt(t.length-1),n||r||i||f||o||u){var E=n||"";r&&(E+=r),i&&(E+=i);var D=F("span",[c],E,o);if(u)for(var b in u)u.hasOwnProperty(b)&&"style"!=b&&"class"!=b&&D.setAttribute(b,u[b]);return e.content.appendChild(D)}e.content.appendChild(c)}}function vn(e,t){if(e.length>1&&!/ /.test(e))return e;for(var n=t,r="",i=0;ic&&p.from<=c);f++);if(p.to>=l)return e(n,r,i,o,a,s,u);e(n,r.slice(0,p.to-c),i,o,null,s,u),o=null,r=r.slice(p.to-c),c=p.to}}}function _n(e,t,n,r){var i=!r&&n.widgetNode;i&&e.map.push(e.pos,e.pos+t,i),!r&&e.cm.display.input.needsContentAttribute&&(i||(i=e.content.appendChild(document.createElement("span"))),i.setAttribute("cm-marker",n.id)),i&&(e.cm.display.input.setUneditable(i),e.content.appendChild(i)),e.pos+=t,e.trailingSpace=!1}function En(e,t,n){var r=e.markedSpans,i=e.text,o=0;if(r)for(var a,s,u,c,l,p,f,d=i.length,h=0,m=1,y="",v=0;;){if(v==h){u=c=l=s="",f=null,p=null,v=1/0;for(var g=[],_=void 0,E=0;Eh||b.collapsed&&D.to==h&&D.from==h)){if(null!=D.to&&D.to!=h&&v>D.to&&(v=D.to,c=""),b.className&&(u+=" "+b.className),b.css&&(s=(s?s+";":"")+b.css),b.startStyle&&D.from==h&&(l+=" "+b.startStyle),b.endStyle&&D.to==v&&(_||(_=[])).push(b.endStyle,D.to),b.title&&((f||(f={})).title=b.title),b.attributes)for(var A in b.attributes)(f||(f={}))[A]=b.attributes[A];b.collapsed&&(!p||Vt(p.marker,b)<0)&&(p=D)}else D.from>h&&v>D.from&&(v=D.from)}if(_)for(var C=0;C<_.length;C+=2)_[C+1]==v&&(c+=" "+_[C]);if(!p||p.from==h)for(var k=0;k=d)break;for(var x=Math.min(d,v);;){if(y){var w=h+y.length;if(!p){var S=w>x?y.slice(0,x-h):y;t.addToken(t,S,a?a+u:u,l,h+S.length==v?c:"",s,f)}if(w>=x){y=y.slice(x-h),h=x;break}h=w,l=""}y=i.slice(o,o=n[m++]),a=dn(n[m++],t.cm.options)}}else for(var F=1;F2&&o.push((u.bottom+c.top)/2-n.top)}}o.push(n.bottom-n.top)}}function Xn(e,t,n){if(e.line==t)return{map:e.measure.map,cache:e.measure.cache};if(e.rest){for(var r=0;rn)return{map:e.measure.maps[i],cache:e.measure.caches[i],before:!0}}}function Qn(e,t){var n=et(t=Xt(t)),r=e.display.externalMeasured=new Dn(e.doc,t,n);r.lineN=n;var i=r.built=hn(e,r);return r.text=i.pre,S(e.display.lineMeasure,i.pre),r}function $n(e,t,n,r){return nr(e,tr(e,t),n,r)}function er(e,t){if(t>=e.display.viewFrom&&t=n.lineN&&tt)&&(i=(o=u-s)-1,t>=u&&(a="right")),null!=i){if(r=e[c+2],s==u&&n==(r.insertLeft?"left":"right")&&(a=n),"left"==n&&0==i)for(;c&&e[c-2]==e[c-3]&&e[c-1].insertLeft;)r=e[2+(c-=3)],a="left";if("right"==n&&i==u-s)for(;c=0&&(n=e[i]).left==n.right;i--);return n}function sr(e,t,n,r){var i,o=or(t.map,n,r),u=o.node,c=o.start,l=o.end,p=o.collapse;if(3==u.nodeType){for(var f=0;f<4;f++){for(;c&&oe(t.line.text.charAt(o.coverStart+c));)--c;for(;o.coverStart+l0&&(p=r="right"),i=e.options.lineWrapping&&(d=u.getClientRects()).length>1?d["right"==r?d.length-1:0]:u.getBoundingClientRect()}if(a&&s<9&&!c&&(!i||!i.left&&!i.right)){var h=u.parentNode.getClientRects()[0];i=h?{left:h.left,right:h.left+Fr(e.display),top:h.top,bottom:h.bottom}:ir}for(var m=i.top-t.rect.top,y=i.bottom-t.rect.top,v=(m+y)/2,g=t.view.measure.heights,_=0;_=r.text.length?(u=r.text.length,c="before"):u<=0&&(u=0,c="after"),!s)return a("before"==c?u-1:u,"before"==c);function l(e,t,n){return a(n?e-1:e,1==s[t].level!=n)}var p=le(s,u,c),f=ce,d=l(u,p,"before"==c);return null!=f&&(d.other=l(u,f,"before"!=c)),d}function _r(e,t){var n=0;t=pt(e.doc,t),e.options.lineWrapping||(n=Fr(e.display)*t.ch);var r=Je(e.doc,t.line),i=on(r)+zn(e.display);return{left:n,right:n,top:i,bottom:i+r.height}}function Er(e,t,n,r,i){var o=it(e,t,n);return o.xRel=i,r&&(o.outside=r),o}function Dr(e,t,n){var r=e.doc;if((n+=e.display.viewOffset)<0)return Er(r.first,0,null,-1,-1);var i=tt(r,n),o=r.first+r.size-1;if(i>o)return Er(r.first+r.size-1,Je(r,o).text.length,null,1,1);t<0&&(t=0);for(var a=Je(r,i);;){var s=kr(e,a,i,t,n),u=Kt(a,s.ch+(s.xRel>0||s.outside>0?1:0));if(!u)return s;var c=u.find(1);if(c.line==i)return c;a=Je(r,i=c.line)}}function br(e,t,n,r){r-=hr(t);var i=t.text.length,o=se((function(t){return nr(e,n,t-1).bottom<=r}),i,0);return{begin:o,end:i=se((function(t){return nr(e,n,t).top>r}),o,i)}}function Ar(e,t,n,r){return n||(n=tr(e,t)),br(e,t,n,mr(e,t,nr(e,n,r),"line").top)}function Cr(e,t,n,r){return!(e.bottom<=n)&&(e.top>n||(r?e.left:e.right)>t)}function kr(e,t,n,r,i){i-=on(t);var o=tr(e,t),a=hr(t),s=0,u=t.text.length,c=!0,l=fe(t,e.doc.direction);if(l){var p=(e.options.lineWrapping?wr:xr)(e,t,n,o,l,r,i);s=(c=1!=p.level)?p.from:p.to-1,u=c?p.to:p.from-1}var f,d,h=null,m=null,y=se((function(t){var n=nr(e,o,t);return n.top+=a,n.bottom+=a,!!Cr(n,r,i,!1)&&(n.top<=i&&n.left<=r&&(h=t,m=n),!0)}),s,u),v=!1;if(m){var g=r-m.left=E.bottom?1:0}return Er(n,y=ae(t.text,y,1),d,v,r-f)}function xr(e,t,n,r,i,o,a){var s=se((function(s){var u=i[s],c=1!=u.level;return Cr(gr(e,it(n,c?u.to:u.from,c?"before":"after"),"line",t,r),o,a,!0)}),0,i.length-1),u=i[s];if(s>0){var c=1!=u.level,l=gr(e,it(n,c?u.from:u.to,c?"after":"before"),"line",t,r);Cr(l,o,a,!0)&&l.top>a&&(u=i[s-1])}return u}function wr(e,t,n,r,i,o,a){var s=br(e,t,r,a),u=s.begin,c=s.end;/\s/.test(t.text.charAt(c-1))&&c--;for(var l=null,p=null,f=0;f=c||d.to<=u)){var h=nr(e,r,1!=d.level?Math.min(c,d.to)-1:Math.max(u,d.from)).right,m=hm)&&(l=d,p=m)}}return l||(l=i[i.length-1]),l.fromc&&(l={from:l.from,to:c,level:l.level}),l}function Sr(e){if(null!=e.cachedTextHeight)return e.cachedTextHeight;if(null==rr){rr=F("pre",null,"CodeMirror-line-like");for(var t=0;t<49;++t)rr.appendChild(document.createTextNode("x")),rr.appendChild(F("br"));rr.appendChild(document.createTextNode("x"))}S(e.measure,rr);var n=rr.offsetHeight/50;return n>3&&(e.cachedTextHeight=n),w(e.measure),n||1}function Fr(e){if(null!=e.cachedCharWidth)return e.cachedCharWidth;var t=F("span","xxxxxxxxxx"),n=F("pre",[t],"CodeMirror-line-like");S(e.measure,n);var r=t.getBoundingClientRect(),i=(r.right-r.left)/10;return i>2&&(e.cachedCharWidth=i),i||10}function Tr(e){for(var t=e.display,n={},r={},i=t.gutters.clientLeft,o=t.gutters.firstChild,a=0;o;o=o.nextSibling,++a){var s=e.display.gutterSpecs[a].className;n[s]=o.offsetLeft+o.clientLeft+i,r[s]=o.clientWidth}return{fixedPos:Br(t),gutterTotalWidth:t.gutters.offsetWidth,gutterLeft:n,gutterWidth:r,wrapperWidth:t.wrapper.clientWidth}}function Br(e){return e.scroller.getBoundingClientRect().left-e.sizer.getBoundingClientRect().left}function qr(e){var t=Sr(e.display),n=e.options.lineWrapping,r=n&&Math.max(5,e.display.scroller.clientWidth/Fr(e.display)-3);return function(i){if(nn(e.doc,i))return 0;var o=0;if(i.widgets)for(var a=0;a0&&(u=Je(e.doc,c.line).text).length==c.ch){var l=R(u,u.length,e.options.tabSize)-u.length;c=it(c.line,Math.max(0,Math.round((o-Zn(e.display).left)/Fr(e.display))-l))}return c}function Pr(e,t){if(t>=e.display.viewTo)return null;if((t-=e.display.viewFrom)<0)return null;for(var n=e.display.view,r=0;rt)&&(i.updateLineNumbers=t),e.curOp.viewChanged=!0,t>=i.viewTo)Ft&&en(e.doc,t)i.viewFrom?Rr(e):(i.viewFrom+=r,i.viewTo+=r);else if(t<=i.viewFrom&&n>=i.viewTo)Rr(e);else if(t<=i.viewFrom){var o=Lr(e,n,n+r,1);o?(i.view=i.view.slice(o.index),i.viewFrom=o.lineN,i.viewTo+=r):Rr(e)}else if(n>=i.viewTo){var a=Lr(e,t,t,-1);a?(i.view=i.view.slice(0,a.index),i.viewTo=a.lineN):Rr(e)}else{var s=Lr(e,t,t,-1),u=Lr(e,n,n+r,1);s&&u?(i.view=i.view.slice(0,s.index).concat(bn(e,s.lineN,u.lineN)).concat(i.view.slice(u.index)),i.viewTo+=r):Rr(e)}var c=i.externalMeasured;c&&(n=i.lineN&&t=r.viewTo)){var o=r.view[Pr(e,t)];if(null!=o.node){var a=o.changes||(o.changes=[]);-1==j(a,n)&&a.push(n)}}}function Rr(e){e.display.viewFrom=e.display.viewTo=e.doc.first,e.display.view=[],e.display.viewOffset=0}function Lr(e,t,n,r){var i,o=Pr(e,t),a=e.display.view;if(!Ft||n==e.doc.first+e.doc.size)return{index:o,lineN:n};for(var s=e.display.viewFrom,u=0;u0){if(o==a.length-1)return null;i=s+a[o].size-t,o++}else i=s-t;t+=i,n+=i}for(;en(e.doc,n)!=n;){if(o==(r<0?0:a.length-1))return null;n+=r*a[o-(r<0?1:0)].size,o+=r}return{index:o,lineN:n}}function jr(e,t,n){var r=e.display;0==r.view.length||t>=r.viewTo||n<=r.viewFrom?(r.view=bn(e,t,n),r.viewFrom=t):(r.viewFrom>t?r.view=bn(e,t,r.viewFrom).concat(r.view):r.viewFromn&&(r.view=r.view.slice(0,Pr(e,n)))),r.viewTo=n}function Wr(e){for(var t=e.display.view,n=0,r=0;r=e.display.viewTo||u.to().line0?a:e.defaultCharWidth())+"px"}if(r.other){var s=n.appendChild(F("div","\xa0","CodeMirror-cursor CodeMirror-secondarycursor"));s.style.display="",s.style.left=r.other.left+"px",s.style.top=r.other.top+"px",s.style.height=.85*(r.other.bottom-r.other.top)+"px"}}function Vr(e,t){return e.top-t.top||e.left-t.left}function Zr(e,t,n){var r=e.display,i=e.doc,o=document.createDocumentFragment(),a=Zn(e.display),s=a.left,u=Math.max(r.sizerWidth,Yn(e)-r.sizer.offsetLeft)-a.right,c="ltr"==i.direction;function l(e,t,n,r){t<0&&(t=0),t=Math.round(t),r=Math.round(r),o.appendChild(F("div",null,"CodeMirror-selected","position: absolute; left: "+e+"px;\n top: "+t+"px; width: "+(null==n?u-e:n)+"px;\n height: "+(r-t)+"px"))}function p(t,n,r){var o,a,p=Je(i,t),f=p.text.length;function d(n,r){return vr(e,it(t,n),"div",p,r)}function h(t,n,r){var i=Ar(e,p,null,t),o="ltr"==n==("after"==r)?"left":"right";return d("after"==r?i.begin:i.end-(/\s/.test(p.text.charAt(i.end-1))?2:1),o)[o]}var m=fe(p,i.direction);return ue(m,n||0,null==r?f:r,(function(e,t,i,p){var y="ltr"==i,v=d(e,y?"left":"right"),g=d(t-1,y?"right":"left"),_=null==n&&0==e,E=null==r&&t==f,D=0==p,b=!m||p==m.length-1;if(g.top-v.top<=3){var A=(c?E:_)&&b,C=(c?_:E)&&D?s:(y?v:g).left,k=A?u:(y?g:v).right;l(C,v.top,k-C,v.bottom)}else{var x,w,S,F;y?(x=c&&_&&D?s:v.left,w=c?u:h(e,i,"before"),S=c?s:h(t,i,"after"),F=c&&E&&b?u:g.right):(x=c?h(e,i,"before"):s,w=!c&&_&&D?u:v.right,S=!c&&E&&b?s:g.left,F=c?h(t,i,"after"):u),l(x,v.top,w-x,v.bottom),v.bottom0?t.blinker=setInterval((function(){e.hasFocus()||Xr(e),t.cursorDiv.style.visibility=(n=!n)?"":"hidden"}),e.options.cursorBlinkRate):e.options.cursorBlinkRate<0&&(t.cursorDiv.style.visibility="hidden")}}function Yr(e){e.hasFocus()||(e.display.input.focus(),e.state.focused||Jr(e))}function Kr(e){e.state.delayingBlurEvent=!0,setTimeout((function(){e.state.delayingBlurEvent&&(e.state.delayingBlurEvent=!1,e.state.focused&&Xr(e))}),100)}function Jr(e,t){e.state.delayingBlurEvent&&!e.state.draggingText&&(e.state.delayingBlurEvent=!1),"nocursor"!=e.options.readOnly&&(e.state.focused||(ve(e,"focus",e,t),e.state.focused=!0,O(e.display.wrapper,"CodeMirror-focused"),e.curOp||e.display.selForContextMenu==e.doc.sel||(e.display.input.reset(),u&&setTimeout((function(){return e.display.input.reset(!0)}),20)),e.display.input.receivedFocus()),Ur(e))}function Xr(e,t){e.state.delayingBlurEvent||(e.state.focused&&(ve(e,"blur",e,t),e.state.focused=!1,x(e.display.wrapper,"CodeMirror-focused")),clearInterval(e.display.blinker),setTimeout((function(){e.state.focused||(e.display.shift=!1)}),150))}function Qr(e){for(var t=e.display,n=t.lineDiv.offsetTop,r=Math.max(0,t.scroller.getBoundingClientRect().top),i=t.lineDiv.getBoundingClientRect().top,o=0,u=0;u.005||m<-.005)&&(ie.display.sizerWidth){var v=Math.ceil(f/Fr(e.display));v>e.display.maxLineLength&&(e.display.maxLineLength=v,e.display.maxLine=c.line,e.display.maxLineChanged=!0)}}}Math.abs(o)>2&&(t.scroller.scrollTop+=o)}function $r(e){if(e.widgets)for(var t=0;t=a&&(o=tt(t,on(Je(t,u))-e.wrapper.clientHeight),a=u)}return{from:o,to:Math.max(a,o+1)}}function ti(e,t){if(!ge(e,"scrollCursorIntoView")){var n=e.display,r=n.sizer.getBoundingClientRect(),i=null;if(t.top+r.top<0?i=!0:t.bottom+r.top>(window.innerHeight||document.documentElement.clientHeight)&&(i=!1),null!=i&&!h){var o=F("div","\u200b",null,"position: absolute;\n top: "+(t.top-n.viewOffset-zn(e.display))+"px;\n height: "+(t.bottom-t.top+Un(e)+n.barHeight)+"px;\n left: "+t.left+"px; width: "+Math.max(2,t.right-t.left)+"px;");e.display.lineSpace.appendChild(o),o.scrollIntoView(i),e.display.lineSpace.removeChild(o)}}}function ni(e,t,n,r){var i;null==r&&(r=0),e.options.lineWrapping||t!=n||(n="before"==t.sticky?it(t.line,t.ch+1,"before"):t,t=t.ch?it(t.line,"before"==t.sticky?t.ch-1:t.ch,"after"):t);for(var o=0;o<5;o++){var a=!1,s=gr(e,t),u=n&&n!=t?gr(e,n):s,c=ii(e,i={left:Math.min(s.left,u.left),top:Math.min(s.top,u.top)-r,right:Math.max(s.left,u.left),bottom:Math.max(s.bottom,u.bottom)+r}),l=e.doc.scrollTop,p=e.doc.scrollLeft;if(null!=c.scrollTop&&(pi(e,c.scrollTop),Math.abs(e.doc.scrollTop-l)>1&&(a=!0)),null!=c.scrollLeft&&(di(e,c.scrollLeft),Math.abs(e.doc.scrollLeft-p)>1&&(a=!0)),!a)break}return i}function ri(e,t){var n=ii(e,t);null!=n.scrollTop&&pi(e,n.scrollTop),null!=n.scrollLeft&&di(e,n.scrollLeft)}function ii(e,t){var n=e.display,r=Sr(e.display);t.top<0&&(t.top=0);var i=e.curOp&&null!=e.curOp.scrollTop?e.curOp.scrollTop:n.scroller.scrollTop,o=Kn(e),a={};t.bottom-t.top>o&&(t.bottom=t.top+o);var s=e.doc.height+Vn(n),u=t.tops-r;if(t.topi+o){var l=Math.min(t.top,(c?s:t.bottom)-o);l!=i&&(a.scrollTop=l)}var p=e.options.fixedGutter?0:n.gutters.offsetWidth,f=e.curOp&&null!=e.curOp.scrollLeft?e.curOp.scrollLeft:n.scroller.scrollLeft-p,d=Yn(e)-n.gutters.offsetWidth,h=t.right-t.left>d;return h&&(t.right=t.left+d),t.left<10?a.scrollLeft=0:t.leftd+f-3&&(a.scrollLeft=t.right+(h?0:10)-d),a}function oi(e,t){null!=t&&(ci(e),e.curOp.scrollTop=(null==e.curOp.scrollTop?e.doc.scrollTop:e.curOp.scrollTop)+t)}function ai(e){ci(e);var t=e.getCursor();e.curOp.scrollToPos={from:t,to:t,margin:e.options.cursorScrollMargin}}function si(e,t,n){null==t&&null==n||ci(e),null!=t&&(e.curOp.scrollLeft=t),null!=n&&(e.curOp.scrollTop=n)}function ui(e,t){ci(e),e.curOp.scrollToPos=t}function ci(e){var t=e.curOp.scrollToPos;t&&(e.curOp.scrollToPos=null,li(e,_r(e,t.from),_r(e,t.to),t.margin))}function li(e,t,n,r){var i=ii(e,{left:Math.min(t.left,n.left),top:Math.min(t.top,n.top)-r,right:Math.max(t.right,n.right),bottom:Math.max(t.bottom,n.bottom)+r});si(e,i.scrollLeft,i.scrollTop)}function pi(e,t){Math.abs(e.doc.scrollTop-t)<2||(n||Gi(e,{top:t}),fi(e,t,!0),n&&Gi(e),Mi(e,100))}function fi(e,t,n){t=Math.max(0,Math.min(e.display.scroller.scrollHeight-e.display.scroller.clientHeight,t)),(e.display.scroller.scrollTop!=t||n)&&(e.doc.scrollTop=t,e.display.scrollbars.setScrollTop(t),e.display.scroller.scrollTop!=t&&(e.display.scroller.scrollTop=t))}function di(e,t,n,r){t=Math.max(0,Math.min(t,e.display.scroller.scrollWidth-e.display.scroller.clientWidth)),(n?t==e.doc.scrollLeft:Math.abs(e.doc.scrollLeft-t)<2)&&!r||(e.doc.scrollLeft=t,Zi(e),e.display.scroller.scrollLeft!=t&&(e.display.scroller.scrollLeft=t),e.display.scrollbars.setScrollLeft(t))}function hi(e){var t=e.display,n=t.gutters.offsetWidth,r=Math.round(e.doc.height+Vn(e.display));return{clientHeight:t.scroller.clientHeight,viewHeight:t.wrapper.clientHeight,scrollWidth:t.scroller.scrollWidth,clientWidth:t.scroller.clientWidth,viewWidth:t.wrapper.clientWidth,barLeft:e.options.fixedGutter?n:0,docHeight:r,scrollHeight:r+Un(e)+t.barHeight,nativeBarWidth:t.nativeBarWidth,gutterWidth:n}}var mi=function(e,t,n){this.cm=n;var r=this.vert=F("div",[F("div",null,null,"min-width: 1px")],"CodeMirror-vscrollbar"),i=this.horiz=F("div",[F("div",null,null,"height: 100%; min-height: 1px")],"CodeMirror-hscrollbar");r.tabIndex=i.tabIndex=-1,e(r),e(i),he(r,"scroll",(function(){r.clientHeight&&t(r.scrollTop,"vertical")})),he(i,"scroll",(function(){i.clientWidth&&t(i.scrollLeft,"horizontal")})),this.checkedZeroWidth=!1,a&&s<8&&(this.horiz.style.minHeight=this.vert.style.minWidth="18px")};mi.prototype.update=function(e){var t=e.scrollWidth>e.clientWidth+1,n=e.scrollHeight>e.clientHeight+1,r=e.nativeBarWidth;if(n){this.vert.style.display="block",this.vert.style.bottom=t?r+"px":"0";var i=e.viewHeight-(t?r:0);this.vert.firstChild.style.height=Math.max(0,e.scrollHeight-e.clientHeight+i)+"px"}else this.vert.scrollTop=0,this.vert.style.display="",this.vert.firstChild.style.height="0";if(t){this.horiz.style.display="block",this.horiz.style.right=n?r+"px":"0",this.horiz.style.left=e.barLeft+"px";var o=e.viewWidth-e.barLeft-(n?r:0);this.horiz.firstChild.style.width=Math.max(0,e.scrollWidth-e.clientWidth+o)+"px"}else this.horiz.style.display="",this.horiz.firstChild.style.width="0";return!this.checkedZeroWidth&&e.clientHeight>0&&(0==r&&this.zeroWidthHack(),this.checkedZeroWidth=!0),{right:n?r:0,bottom:t?r:0}},mi.prototype.setScrollLeft=function(e){this.horiz.scrollLeft!=e&&(this.horiz.scrollLeft=e),this.disableHoriz&&this.enableZeroWidthBar(this.horiz,this.disableHoriz,"horiz")},mi.prototype.setScrollTop=function(e){this.vert.scrollTop!=e&&(this.vert.scrollTop=e),this.disableVert&&this.enableZeroWidthBar(this.vert,this.disableVert,"vert")},mi.prototype.zeroWidthHack=function(){var e=g&&!d?"12px":"18px";this.horiz.style.height=this.vert.style.width=e,this.horiz.style.pointerEvents=this.vert.style.pointerEvents="none",this.disableHoriz=new L,this.disableVert=new L},mi.prototype.enableZeroWidthBar=function(e,t,n){function r(){var i=e.getBoundingClientRect();("vert"==n?document.elementFromPoint(i.right-1,(i.top+i.bottom)/2):document.elementFromPoint((i.right+i.left)/2,i.bottom-1))!=e?e.style.pointerEvents="none":t.set(1e3,r)}e.style.pointerEvents="auto",t.set(1e3,r)},mi.prototype.clear=function(){var e=this.horiz.parentNode;e.removeChild(this.horiz),e.removeChild(this.vert)};var yi=function(){};function vi(e,t){t||(t=hi(e));var n=e.display.barWidth,r=e.display.barHeight;gi(e,t);for(var i=0;i<4&&n!=e.display.barWidth||r!=e.display.barHeight;i++)n!=e.display.barWidth&&e.options.lineWrapping&&Qr(e),gi(e,hi(e)),n=e.display.barWidth,r=e.display.barHeight}function gi(e,t){var n=e.display,r=n.scrollbars.update(t);n.sizer.style.paddingRight=(n.barWidth=r.right)+"px",n.sizer.style.paddingBottom=(n.barHeight=r.bottom)+"px",n.heightForcer.style.borderBottom=r.bottom+"px solid transparent",r.right&&r.bottom?(n.scrollbarFiller.style.display="block",n.scrollbarFiller.style.height=r.bottom+"px",n.scrollbarFiller.style.width=r.right+"px"):n.scrollbarFiller.style.display="",r.bottom&&e.options.coverGutterNextToScrollbar&&e.options.fixedGutter?(n.gutterFiller.style.display="block",n.gutterFiller.style.height=r.bottom+"px",n.gutterFiller.style.width=t.gutterWidth+"px"):n.gutterFiller.style.display=""}yi.prototype.update=function(){return{bottom:0,right:0}},yi.prototype.setScrollLeft=function(){},yi.prototype.setScrollTop=function(){},yi.prototype.clear=function(){};var _i={native:mi,null:yi};function Ei(e){e.display.scrollbars&&(e.display.scrollbars.clear(),e.display.scrollbars.addClass&&x(e.display.wrapper,e.display.scrollbars.addClass)),e.display.scrollbars=new _i[e.options.scrollbarStyle]((function(t){e.display.wrapper.insertBefore(t,e.display.scrollbarFiller),he(t,"mousedown",(function(){e.state.focused&&setTimeout((function(){return e.display.input.focus()}),0)})),t.setAttribute("cm-not-content","true")}),(function(t,n){"horizontal"==n?di(e,t):pi(e,t)}),e),e.display.scrollbars.addClass&&O(e.display.wrapper,e.display.scrollbars.addClass)}var Di=0;function bi(e){e.curOp={cm:e,viewChanged:!1,startHeight:e.doc.height,forceUpdate:!1,updateInput:0,typing:!1,changeObjs:null,cursorActivityHandlers:null,cursorActivityCalled:0,selectionChanged:!1,updateMaxLine:!1,scrollLeft:null,scrollTop:null,scrollToPos:null,focus:!1,id:++Di,markArrays:null},Cn(e.curOp)}function Ai(e){var t=e.curOp;t&&xn(t,(function(e){for(var t=0;t=n.viewTo)||n.maxLineChanged&&t.options.lineWrapping,e.update=e.mustUpdate&&new Ii(t,e.mustUpdate&&{top:e.scrollTop,ensure:e.scrollToPos},e.forceUpdate)}function xi(e){e.updatedDisplay=e.mustUpdate&&ji(e.cm,e.update)}function wi(e){var t=e.cm,n=t.display;e.updatedDisplay&&Qr(t),e.barMeasure=hi(t),n.maxLineChanged&&!t.options.lineWrapping&&(e.adjustWidthTo=$n(t,n.maxLine,n.maxLine.text.length).left+3,t.display.sizerWidth=e.adjustWidthTo,e.barMeasure.scrollWidth=Math.max(n.scroller.clientWidth,n.sizer.offsetLeft+e.adjustWidthTo+Un(t)+t.display.barWidth),e.maxScrollLeft=Math.max(0,n.sizer.offsetLeft+e.adjustWidthTo-Yn(t))),(e.updatedDisplay||e.selectionChanged)&&(e.preparedSelection=n.input.prepareSelection())}function Si(e){var t=e.cm;null!=e.adjustWidthTo&&(t.display.sizer.style.minWidth=e.adjustWidthTo+"px",e.maxScrollLeft=e.display.viewTo)){var n=+new Date+e.options.workTime,r=gt(e,t.highlightFrontier),i=[];t.iter(r.line,Math.min(t.first+t.size,e.display.viewTo+500),(function(o){if(r.line>=e.display.viewFrom){var a=o.styles,s=o.text.length>e.options.maxHighlightLength?Ze(t.mode,r.state):null,u=yt(e,o,r,!0);s&&(r.state=s),o.styles=u.styles;var c=o.styleClasses,l=u.classes;l?o.styleClasses=l:c&&(o.styleClasses=null);for(var p=!a||a.length!=o.styles.length||c!=l&&(!c||!l||c.bgClass!=l.bgClass||c.textClass!=l.textClass),f=0;!p&&fn)return Mi(e,e.options.workDelay),!0})),t.highlightFrontier=r.line,t.modeFrontier=Math.max(t.modeFrontier,r.line),i.length&&Ti(e,(function(){for(var t=0;t=n.viewFrom&&t.visible.to<=n.viewTo&&(null==n.updateLineNumbers||n.updateLineNumbers>=n.viewTo)&&n.renderedView==n.view&&0==Wr(e))return!1;Ui(e)&&(Rr(e),t.dims=Tr(e));var i=r.first+r.size,o=Math.max(t.visible.from-e.options.viewportMargin,r.first),a=Math.min(i,t.visible.to+e.options.viewportMargin);n.viewFroma&&n.viewTo-a<20&&(a=Math.min(i,n.viewTo)),Ft&&(o=en(e.doc,o),a=tn(e.doc,a));var s=o!=n.viewFrom||a!=n.viewTo||n.lastWrapHeight!=t.wrapperHeight||n.lastWrapWidth!=t.wrapperWidth;jr(e,o,a),n.viewOffset=on(Je(e.doc,n.viewFrom)),e.display.mover.style.top=n.viewOffset+"px";var u=Wr(e);if(!s&&0==u&&!t.force&&n.renderedView==n.view&&(null==n.updateLineNumbers||n.updateLineNumbers>=n.viewTo))return!1;var c=Ri(e);return u>4&&(n.lineDiv.style.display="none"),Hi(e,n.updateLineNumbers,t.dims),u>4&&(n.lineDiv.style.display=""),n.renderedView=n.view,Li(c),w(n.cursorDiv),w(n.selectionDiv),n.gutters.style.height=n.sizer.style.minHeight=0,s&&(n.lastWrapHeight=t.wrapperHeight,n.lastWrapWidth=t.wrapperWidth,Mi(e,400)),n.updateLineNumbers=null,!0}function Wi(e,t){for(var n=t.viewport,r=!0;;r=!1){if(r&&e.options.lineWrapping&&t.oldDisplayWidth!=Yn(e))r&&(t.visible=ei(e.display,e.doc,n));else if(n&&null!=n.top&&(n={top:Math.min(e.doc.height+Vn(e.display)-Kn(e),n.top)}),t.visible=ei(e.display,e.doc,n),t.visible.from>=e.display.viewFrom&&t.visible.to<=e.display.viewTo)break;if(!ji(e,t))break;Qr(e);var i=hi(e);Gr(e),vi(e,i),Vi(e,i),t.force=!1}t.signal(e,"update",e),e.display.viewFrom==e.display.reportedViewFrom&&e.display.viewTo==e.display.reportedViewTo||(t.signal(e,"viewportChange",e,e.display.viewFrom,e.display.viewTo),e.display.reportedViewFrom=e.display.viewFrom,e.display.reportedViewTo=e.display.viewTo)}function Gi(e,t){var n=new Ii(e,t);if(ji(e,n)){Qr(e),Wi(e,n);var r=hi(e);Gr(e),vi(e,r),Vi(e,r),n.finish()}}function Hi(e,t,n){var r=e.display,i=e.options.lineNumbers,o=r.lineDiv,a=o.firstChild;function s(t){var n=t.nextSibling;return u&&g&&e.display.currentWheelTarget==t?t.style.display="none":t.parentNode.removeChild(t),n}for(var c=r.view,l=r.viewFrom,p=0;p-1&&(d=!1),Tn(e,f,l,n)),d&&(w(f.lineNumber),f.lineNumber.appendChild(document.createTextNode(rt(e.options,l)))),a=f.node.nextSibling}else{var h=Rn(e,f,l,n);o.insertBefore(h,a)}l+=f.size}for(;a;)a=s(a)}function zi(e){var t=e.gutters.offsetWidth;e.sizer.style.marginLeft=t+"px",Sn(e,"gutterChanged",e)}function Vi(e,t){e.display.sizer.style.minHeight=t.docHeight+"px",e.display.heightForcer.style.top=t.docHeight+"px",e.display.gutters.style.height=t.docHeight+e.display.barHeight+Un(e)+"px"}function Zi(e){var t=e.display,n=t.view;if(t.alignWidgets||t.gutters.firstChild&&e.options.fixedGutter){for(var r=Br(t)-t.scroller.scrollLeft+e.doc.scrollLeft,i=t.gutters.offsetWidth,o=r+"px",a=0;ac.clientWidth,f=c.scrollHeight>c.clientHeight;if(i&&l||o&&f){if(o&&g&&u)e:for(var d=t.target,h=s.view;d!=c;d=d.parentNode)for(var m=0;m=0&&ot(e,r.to())<=0)return n}return-1};var io=function(e,t){this.anchor=e,this.head=t};function oo(e,t,n){var r=e&&e.options.selectionsMayTouch,i=t[n];t.sort((function(e,t){return ot(e.from(),t.from())})),n=j(t,i);for(var o=1;o0:u>=0){var c=ct(s.from(),a.from()),l=ut(s.to(),a.to()),p=s.empty()?a.from()==a.head:s.from()==s.head;o<=n&&--n,t.splice(--o,2,new io(p?l:c,p?c:l))}}return new ro(t,n)}function ao(e,t){return new ro([new io(e,t||e)],0)}function so(e){return e.text?it(e.from.line+e.text.length-1,K(e.text).length+(1==e.text.length?e.from.ch:0)):e.to}function uo(e,t){if(ot(e,t.from)<0)return e;if(ot(e,t.to)<=0)return so(t);var n=e.line+t.text.length-(t.to.line-t.from.line)-1,r=e.ch;return e.line==t.to.line&&(r+=so(t).ch-t.to.ch),it(n,r)}function co(e,t){for(var n=[],r=0;r1&&e.remove(s.line+1,h-1),e.insert(s.line+1,v)}Sn(e,"change",e,t)}function vo(e,t,n){function r(e,i,o){if(e.linked)for(var a=0;a1&&!e.done[e.done.length-2].ranges?(e.done.pop(),K(e.done)):void 0}function ko(e,t,n,r){var i=e.history;i.undone.length=0;var o,a,s=+new Date;if((i.lastOp==r||i.lastOrigin==t.origin&&t.origin&&("+"==t.origin.charAt(0)&&i.lastModTime>s-(e.cm?e.cm.options.historyEventDelay:500)||"*"==t.origin.charAt(0)))&&(o=Co(i,i.lastOp==r)))a=K(o.changes),0==ot(t.from,t.to)&&0==ot(t.from,a.to)?a.to=so(t):o.changes.push(bo(e,t));else{var u=K(i.done);for(u&&u.ranges||So(e.sel,i.done),o={changes:[bo(e,t)],generation:i.generation},i.done.push(o);i.done.length>i.undoDepth;)i.done.shift(),i.done[0].ranges||i.done.shift()}i.done.push(n),i.generation=++i.maxGeneration,i.lastModTime=i.lastSelTime=s,i.lastOp=i.lastSelOp=r,i.lastOrigin=i.lastSelOrigin=t.origin,a||ve(e,"historyAdded")}function xo(e,t,n,r){var i=t.charAt(0);return"*"==i||"+"==i&&n.ranges.length==r.ranges.length&&n.somethingSelected()==r.somethingSelected()&&new Date-e.history.lastSelTime<=(e.cm?e.cm.options.historyEventDelay:500)}function wo(e,t,n,r){var i=e.history,o=r&&r.origin;n==i.lastSelOp||o&&i.lastSelOrigin==o&&(i.lastModTime==i.lastSelTime&&i.lastOrigin==o||xo(e,o,K(i.done),t))?i.done[i.done.length-1]=t:So(t,i.done),i.lastSelTime=+new Date,i.lastSelOrigin=o,i.lastSelOp=n,r&&!1!==r.clearRedo&&Ao(i.undone)}function So(e,t){var n=K(t);n&&n.ranges&&n.equals(e)||t.push(e)}function Fo(e,t,n,r){var i=t["spans_"+e.id],o=0;e.iter(Math.max(e.first,n),Math.min(e.first+e.size,r),(function(n){n.markedSpans&&((i||(i=t["spans_"+e.id]={}))[o]=n.markedSpans),++o}))}function To(e){if(!e)return null;for(var t,n=0;n-1&&(K(s)[p]=c[p],delete c[p])}}}return r}function Mo(e,t,n,r){if(r){var i=e.anchor;if(n){var o=ot(t,i)<0;o!=ot(n,i)<0?(i=t,t=n):o!=ot(t,n)<0&&(t=n)}return new io(i,t)}return new io(n||t,t)}function Po(e,t,n,r,i){null==i&&(i=e.cm&&(e.cm.display.shift||e.extend)),Wo(e,new ro([Mo(e.sel.primary(),t,n,i)],0),r)}function Io(e,t,n){for(var r=[],i=e.cm&&(e.cm.display.shift||e.extend),o=0;o=t.ch:s.to>t.ch))){if(i&&(ve(u,"beforeCursorEnter"),u.explicitlyCleared)){if(o.markedSpans){--a;continue}break}if(!u.atomic)continue;if(n){var p=u.find(r<0?1:-1),f=void 0;if((r<0?l:c)&&(p=Yo(e,p,-r,p&&p.line==t.line?o:null)),p&&p.line==t.line&&(f=ot(p,n))&&(r<0?f<0:f>0))return Zo(e,p,t,r,i)}var d=u.find(r<0?-1:1);return(r<0?c:l)&&(d=Yo(e,d,r,d.line==t.line?o:null)),d?Zo(e,d,t,r,i):null}}return t}function Uo(e,t,n,r,i){var o=r||1,a=Zo(e,t,n,o,i)||!i&&Zo(e,t,n,o,!0)||Zo(e,t,n,-o,i)||!i&&Zo(e,t,n,-o,!0);return a||(e.cantEdit=!0,it(e.first,0))}function Yo(e,t,n,r){return n<0&&0==t.ch?t.line>e.first?pt(e,it(t.line-1)):null:n>0&&t.ch==(r||Je(e,t.line)).text.length?t.line=0;--i)Qo(e,{from:r[i].from,to:r[i].to,text:i?[""]:t.text,origin:t.origin});else Qo(e,t)}}function Qo(e,t){if(1!=t.text.length||""!=t.text[0]||0!=ot(t.from,t.to)){var n=co(e,t);ko(e,t,n,e.cm?e.cm.curOp.id:NaN),ta(e,t,n,Rt(e,t));var r=[];vo(e,(function(e,n){n||-1!=j(r,e.history)||(aa(e.history,t),r.push(e.history)),ta(e,t,null,Rt(e,t))}))}}function $o(e,t,n){var r=e.cm&&e.cm.state.suppressEdits;if(!r||n){for(var i,o=e.history,a=e.sel,s="undo"==t?o.done:o.undone,u="undo"==t?o.undone:o.done,c=0;c=0;--d){var h=f(d);if(h)return h.v}}}}function ea(e,t){if(0!=t&&(e.first+=t,e.sel=new ro(J(e.sel.ranges,(function(e){return new io(it(e.anchor.line+t,e.anchor.ch),it(e.head.line+t,e.head.ch))})),e.sel.primIndex),e.cm)){Ir(e.cm,e.first,e.first-t,t);for(var n=e.cm.display,r=n.viewFrom;re.lastLine())){if(t.from.lineo&&(t={from:t.from,to:it(o,Je(e,o).text.length),text:[t.text[0]],origin:t.origin}),t.removed=Xe(e,t.from,t.to),n||(n=co(e,t)),e.cm?na(e.cm,t,r):yo(e,t,r),Go(e,n,H),e.cantEdit&&Uo(e,it(e.firstLine(),0))&&(e.cantEdit=!1)}}function na(e,t,n){var r=e.doc,i=e.display,o=t.from,a=t.to,s=!1,u=o.line;e.options.lineWrapping||(u=et(Xt(Je(r,o.line))),r.iter(u,a.line+1,(function(e){if(e==i.maxLine)return s=!0,!0}))),r.sel.contains(t.from,t.to)>-1&&_e(e),yo(r,t,n,qr(e)),e.options.lineWrapping||(r.iter(u,o.line+t.text.length,(function(e){var t=an(e);t>i.maxLineLength&&(i.maxLine=e,i.maxLineLength=t,i.maxLineChanged=!0,s=!1)})),s&&(e.curOp.updateMaxLine=!0)),wt(r,o.line),Mi(e,400);var c=t.text.length-(a.line-o.line)-1;t.full?Ir(e):o.line!=a.line||1!=t.text.length||mo(e.doc,t)?Ir(e,o.line,a.line+1,c):Nr(e,o.line,"text");var l=Ee(e,"changes"),p=Ee(e,"change");if(p||l){var f={from:o,to:a,text:t.text,removed:t.removed,origin:t.origin};p&&Sn(e,"change",e,f),l&&(e.curOp.changeObjs||(e.curOp.changeObjs=[])).push(f)}e.display.selForContextMenu=null}function ra(e,t,n,r,i){var o;r||(r=n),ot(r,n)<0&&(n=(o=[r,n])[0],r=o[1]),"string"==typeof t&&(t=e.splitLines(t)),Xo(e,{from:n,to:r,text:t,origin:i})}function ia(e,t,n,r){n1||!(this.children[0]instanceof ua))){var s=[];this.collapse(s),this.children=[new ua(s)],this.children[0].parent=this}},collapse:function(e){for(var t=0;t50){for(var a=i.lines.length%25+25,s=a;s10);e.parent.maybeSpill()}},iterN:function(e,t,n){for(var r=0;r0||0==a&&!1!==o.clearWhenEmpty)return o;if(o.replacedWith&&(o.collapsed=!0,o.widgetNode=T("span",[o.replacedWith],"CodeMirror-widget"),r.handleMouseEvents||o.widgetNode.setAttribute("cm-ignore-events","true"),r.insertLeft&&(o.widgetNode.insertLeft=!0)),o.collapsed){if(Jt(e,t.line,t,n,o)||t.line!=n.line&&Jt(e,n.line,t,n,o))throw new Error("Inserting collapsed marker partially overlapping an existing one");Bt()}o.addToHistory&&ko(e,{from:t,to:n,origin:"markText"},e.sel,NaN);var s,u=t.line,c=e.cm;if(e.iter(u,n.line+1,(function(r){c&&o.collapsed&&!c.options.lineWrapping&&Xt(r)==c.display.maxLine&&(s=!0),o.collapsed&&u!=t.line&&$e(r,0),Pt(r,new qt(o,u==t.line?t.ch:null,u==n.line?n.ch:null),e.cm&&e.cm.curOp),++u})),o.collapsed&&e.iter(t.line,n.line+1,(function(t){nn(e,t)&&$e(t,0)})),o.clearOnEnter&&he(o,"beforeCursorEnter",(function(){return o.clear()})),o.readOnly&&(Tt(),(e.history.done.length||e.history.undone.length)&&e.clearHistory()),o.collapsed&&(o.id=++da,o.atomic=!0),c){if(s&&(c.curOp.updateMaxLine=!0),o.collapsed)Ir(c,t.line,n.line+1);else if(o.className||o.startStyle||o.endStyle||o.css||o.attributes||o.title)for(var l=t.line;l<=n.line;l++)Nr(c,l,"text");o.atomic&&zo(c.doc),Sn(c,"markerAdded",c,o)}return o}ha.prototype.clear=function(){if(!this.explicitlyCleared){var e=this.doc.cm,t=e&&!e.curOp;if(t&&bi(e),Ee(this,"clear")){var n=this.find();n&&Sn(this,"clear",n.from,n.to)}for(var r=null,i=null,o=0;oe.display.maxLineLength&&(e.display.maxLine=c,e.display.maxLineLength=l,e.display.maxLineChanged=!0)}null!=r&&e&&this.collapsed&&Ir(e,r,i+1),this.lines.length=0,this.explicitlyCleared=!0,this.atomic&&this.doc.cantEdit&&(this.doc.cantEdit=!1,e&&zo(e.doc)),e&&Sn(e,"markerCleared",e,this,r,i),t&&Ai(e),this.parent&&this.parent.clear()}},ha.prototype.find=function(e,t){var n,r;null==e&&"bookmark"==this.type&&(e=1);for(var i=0;i=0;u--)Xo(this,r[u]);s?jo(this,s):this.cm&&ai(this.cm)})),undo:Oi((function(){$o(this,"undo")})),redo:Oi((function(){$o(this,"redo")})),undoSelection:Oi((function(){$o(this,"undo",!0)})),redoSelection:Oi((function(){$o(this,"redo",!0)})),setExtending:function(e){this.extend=e},getExtending:function(){return this.extend},historySize:function(){for(var e=this.history,t=0,n=0,r=0;r=e.ch)&&t.push(i.marker.parent||i.marker)}return t},findMarks:function(e,t,n){e=pt(this,e),t=pt(this,t);var r=[],i=e.line;return this.iter(e.line,t.line+1,(function(o){var a=o.markedSpans;if(a)for(var s=0;s=u.to||null==u.from&&i!=e.line||null!=u.from&&i==t.line&&u.from>=t.ch||n&&!n(u.marker)||r.push(u.marker.parent||u.marker)}++i})),r},getAllMarks:function(){var e=[];return this.iter((function(t){var n=t.markedSpans;if(n)for(var r=0;re)return t=e,!0;e-=o,++n})),pt(this,it(n,t))},indexFromPos:function(e){var t=(e=pt(this,e)).ch;if(e.linet&&(t=e.from),null!=e.to&&e.to-1)return t.state.draggingText(e),void setTimeout((function(){return t.display.input.focus()}),20);try{var p=e.dataTransfer.getData("Text");if(p){var f;if(t.state.draggingText&&!t.state.draggingText.copy&&(f=t.listSelections()),Go(t.doc,ao(n,n)),f)for(var d=0;d=0;t--)ra(e.doc,"",r[t].from,r[t].to,"+delete");ai(e)}))}function Za(e,t,n){var r=ae(e.text,t+n,n);return r<0||r>e.text.length?null:r}function Ua(e,t,n){var r=Za(e,t.ch,n);return null==r?null:new it(t.line,r,n<0?"after":"before")}function Ya(e,t,n,r,i){if(e){"rtl"==t.doc.direction&&(i=-i);var o=fe(n,t.doc.direction);if(o){var a,s=i<0?K(o):o[0],u=i<0==(1==s.level)?"after":"before";if(s.level>0||"rtl"==t.doc.direction){var c=tr(t,n);a=i<0?n.text.length-1:0;var l=nr(t,c,a).top;a=se((function(e){return nr(t,c,e).top==l}),i<0==(1==s.level)?s.from:s.to-1,a),"before"==u&&(a=Za(n,a,1))}else a=i<0?s.to:s.from;return new it(r,a,u)}}return new it(r,i<0?n.text.length:0,i<0?"before":"after")}function Ka(e,t,n,r){var i=fe(t,e.doc.direction);if(!i)return Ua(t,n,r);n.ch>=t.text.length?(n.ch=t.text.length,n.sticky="before"):n.ch<=0&&(n.ch=0,n.sticky="after");var o=le(i,n.ch,n.sticky),a=i[o];if("ltr"==e.doc.direction&&a.level%2==0&&(r>0?a.to>n.ch:a.from=a.from&&f>=l.begin)){var d=p?"before":"after";return new it(n.line,f,d)}}var h=function(e,t,r){for(var o=function(e,t){return t?new it(n.line,u(e,1),"before"):new it(n.line,e,"after")};e>=0&&e0==(1!=a.level),c=s?r.begin:u(r.end,-1);if(a.from<=c&&c0?l.end:u(l.begin,-1);return null==y||r>0&&y==t.text.length||!(m=h(r>0?0:i.length-1,r,c(y)))?null:m}Na.basic={Left:"goCharLeft",Right:"goCharRight",Up:"goLineUp",Down:"goLineDown",End:"goLineEnd",Home:"goLineStartSmart",PageUp:"goPageUp",PageDown:"goPageDown",Delete:"delCharAfter",Backspace:"delCharBefore","Shift-Backspace":"delCharBefore",Tab:"defaultTab","Shift-Tab":"indentAuto",Enter:"newlineAndIndent",Insert:"toggleOverwrite",Esc:"singleSelection"},Na.pcDefault={"Ctrl-A":"selectAll","Ctrl-D":"deleteLine","Ctrl-Z":"undo","Shift-Ctrl-Z":"redo","Ctrl-Y":"redo","Ctrl-Home":"goDocStart","Ctrl-End":"goDocEnd","Ctrl-Up":"goLineUp","Ctrl-Down":"goLineDown","Ctrl-Left":"goGroupLeft","Ctrl-Right":"goGroupRight","Alt-Left":"goLineStart","Alt-Right":"goLineEnd","Ctrl-Backspace":"delGroupBefore","Ctrl-Delete":"delGroupAfter","Ctrl-S":"save","Ctrl-F":"find","Ctrl-G":"findNext","Shift-Ctrl-G":"findPrev","Shift-Ctrl-F":"replace","Shift-Ctrl-R":"replaceAll","Ctrl-[":"indentLess","Ctrl-]":"indentMore","Ctrl-U":"undoSelection","Shift-Ctrl-U":"redoSelection","Alt-U":"redoSelection",fallthrough:"basic"},Na.emacsy={"Ctrl-F":"goCharRight","Ctrl-B":"goCharLeft","Ctrl-P":"goLineUp","Ctrl-N":"goLineDown","Ctrl-A":"goLineStart","Ctrl-E":"goLineEnd","Ctrl-V":"goPageDown","Shift-Ctrl-V":"goPageUp","Ctrl-D":"delCharAfter","Ctrl-H":"delCharBefore","Alt-Backspace":"delWordBefore","Ctrl-K":"killLine","Ctrl-T":"transposeChars","Ctrl-O":"openLine"},Na.macDefault={"Cmd-A":"selectAll","Cmd-D":"deleteLine","Cmd-Z":"undo","Shift-Cmd-Z":"redo","Cmd-Y":"redo","Cmd-Home":"goDocStart","Cmd-Up":"goDocStart","Cmd-End":"goDocEnd","Cmd-Down":"goDocEnd","Alt-Left":"goGroupLeft","Alt-Right":"goGroupRight","Cmd-Left":"goLineLeft","Cmd-Right":"goLineRight","Alt-Backspace":"delGroupBefore","Ctrl-Alt-Backspace":"delGroupAfter","Alt-Delete":"delGroupAfter","Cmd-S":"save","Cmd-F":"find","Cmd-G":"findNext","Shift-Cmd-G":"findPrev","Cmd-Alt-F":"replace","Shift-Cmd-Alt-F":"replaceAll","Cmd-[":"indentLess","Cmd-]":"indentMore","Cmd-Backspace":"delWrappedLineLeft","Cmd-Delete":"delWrappedLineRight","Cmd-U":"undoSelection","Shift-Cmd-U":"redoSelection","Ctrl-Up":"goDocStart","Ctrl-Down":"goDocEnd",fallthrough:["basic","emacsy"]},Na.default=g?Na.macDefault:Na.pcDefault;var Ja={selectAll:Ko,singleSelection:function(e){return e.setSelection(e.getCursor("anchor"),e.getCursor("head"),H)},killLine:function(e){return Va(e,(function(t){if(t.empty()){var n=Je(e.doc,t.head.line).text.length;return t.head.ch==n&&t.head.line0)i=new it(i.line,i.ch+1),e.replaceRange(o.charAt(i.ch-1)+o.charAt(i.ch-2),it(i.line,i.ch-2),i,"+transpose");else if(i.line>e.doc.first){var a=Je(e.doc,i.line-1).text;a&&(i=new it(i.line,1),e.replaceRange(o.charAt(0)+e.doc.lineSeparator()+a.charAt(a.length-1),it(i.line-1,a.length-1),i,"+transpose"))}n.push(new io(i,i))}e.setSelections(n)}))},newlineAndIndent:function(e){return Ti(e,(function(){for(var t=e.listSelections(),n=t.length-1;n>=0;n--)e.replaceRange(e.doc.lineSeparator(),t[n].anchor,t[n].head,"+input");t=e.listSelections();for(var r=0;r-1&&(ot((i=s.ranges[i]).from(),t)<0||t.xRel>0)&&(ot(i.to(),t)>0||t.xRel<0)?Ds(e,r,t,o):As(e,r,t,o)}function Ds(e,t,n,r){var i=e.display,o=!1,c=Bi(e,(function(t){u&&(i.scroller.draggable=!1),e.state.draggingText=!1,e.state.delayingBlurEvent&&(e.hasFocus()?e.state.delayingBlurEvent=!1:Kr(e)),ye(i.wrapper.ownerDocument,"mouseup",c),ye(i.wrapper.ownerDocument,"mousemove",l),ye(i.scroller,"dragstart",p),ye(i.scroller,"drop",c),o||(be(t),r.addNew||Po(e.doc,n,null,null,r.extend),u&&!f||a&&9==s?setTimeout((function(){i.wrapper.ownerDocument.body.focus({preventScroll:!0}),i.input.focus()}),20):i.input.focus())})),l=function(e){o=o||Math.abs(t.clientX-e.clientX)+Math.abs(t.clientY-e.clientY)>=10},p=function(){return o=!0};u&&(i.scroller.draggable=!0),e.state.draggingText=c,c.copy=!r.moveOnDrag,he(i.wrapper.ownerDocument,"mouseup",c),he(i.wrapper.ownerDocument,"mousemove",l),he(i.scroller,"dragstart",p),he(i.scroller,"drop",c),e.state.delayingBlurEvent=!0,setTimeout((function(){return i.input.focus()}),20),i.scroller.dragDrop&&i.scroller.dragDrop()}function bs(e,t,n){if("char"==n)return new io(t,t);if("word"==n)return e.findWordAt(t);if("line"==n)return new io(it(t.line,0),pt(e.doc,it(t.line+1,0)));var r=n(e,t);return new io(r.from,r.to)}function As(e,t,n,r){a&&Kr(e);var i=e.display,o=e.doc;be(t);var s,u,c=o.sel,l=c.ranges;if(r.addNew&&!r.extend?(u=o.sel.contains(n),s=u>-1?l[u]:new io(n,n)):(s=o.sel.primary(),u=o.sel.primIndex),"rectangle"==r.unit)r.addNew||(s=new io(n,n)),n=Mr(e,t,!0,!0),u=-1;else{var p=bs(e,n,r.unit);s=r.extend?Mo(s,p.anchor,p.head,r.extend):p}r.addNew?-1==u?(u=l.length,Wo(o,oo(e,l.concat([s]),u),{scroll:!1,origin:"*mouse"})):l.length>1&&l[u].empty()&&"char"==r.unit&&!r.extend?(Wo(o,oo(e,l.slice(0,u).concat(l.slice(u+1)),0),{scroll:!1,origin:"*mouse"}),c=o.sel):No(o,u,s,z):(u=0,Wo(o,new ro([s],0),z),c=o.sel);var f=n;function d(t){if(0!=ot(f,t))if(f=t,"rectangle"==r.unit){for(var i=[],a=e.options.tabSize,l=R(Je(o,n.line).text,n.ch,a),p=R(Je(o,t.line).text,t.ch,a),d=Math.min(l,p),h=Math.max(l,p),m=Math.min(n.line,t.line),y=Math.min(e.lastLine(),Math.max(n.line,t.line));m<=y;m++){var v=Je(o,m).text,g=Z(v,d,a);d==h?i.push(new io(it(m,g),it(m,g))):v.length>g&&i.push(new io(it(m,g),it(m,Z(v,h,a))))}i.length||i.push(new io(n,n)),Wo(o,oo(e,c.ranges.slice(0,u).concat(i),u),{origin:"*mouse",scroll:!1}),e.scrollIntoView(t)}else{var _,E=s,D=bs(e,t,r.unit),b=E.anchor;ot(D.anchor,b)>0?(_=D.head,b=ct(E.from(),D.anchor)):(_=D.anchor,b=ut(E.to(),D.head));var A=c.ranges.slice(0);A[u]=Cs(e,new io(pt(o,b),_)),Wo(o,oo(e,A,u),z)}}var h=i.wrapper.getBoundingClientRect(),m=0;function y(t){var n=++m,a=Mr(e,t,!0,"rectangle"==r.unit);if(a)if(0!=ot(a,f)){e.curOp.focus=q(),d(a);var s=ei(i,o);(a.line>=s.to||a.lineh.bottom?20:0;u&&setTimeout(Bi(e,(function(){m==n&&(i.scroller.scrollTop+=u,y(t))})),50)}}function v(t){e.state.selectingText=!1,m=1/0,t&&(be(t),i.input.focus()),ye(i.wrapper.ownerDocument,"mousemove",g),ye(i.wrapper.ownerDocument,"mouseup",_),o.history.lastSelOrigin=null}var g=Bi(e,(function(e){0!==e.buttons&&we(e)?y(e):v(e)})),_=Bi(e,v);e.state.selectingText=_,he(i.wrapper.ownerDocument,"mousemove",g),he(i.wrapper.ownerDocument,"mouseup",_)}function Cs(e,t){var n=t.anchor,r=t.head,i=Je(e.doc,n.line);if(0==ot(n,r)&&n.sticky==r.sticky)return t;var o=fe(i);if(!o)return t;var a=le(o,n.ch,n.sticky),s=o[a];if(s.from!=n.ch&&s.to!=n.ch)return t;var u,c=a+(s.from==n.ch==(1!=s.level)?0:1);if(0==c||c==o.length)return t;if(r.line!=n.line)u=(r.line-n.line)*("ltr"==e.doc.direction?1:-1)>0;else{var l=le(o,r.ch,r.sticky),p=l-a||(r.ch-n.ch)*(1==s.level?-1:1);u=l==c-1||l==c?p<0:p>0}var f=o[c+(u?-1:0)],d=u==(1==f.level),h=d?f.from:f.to,m=d?"after":"before";return n.ch==h&&n.sticky==m?t:new io(new it(n.line,h,m),r)}function ks(e,t,n,r){var i,o;if(t.touches)i=t.touches[0].clientX,o=t.touches[0].clientY;else try{i=t.clientX,o=t.clientY}catch(l){return!1}if(i>=Math.floor(e.display.gutters.getBoundingClientRect().right))return!1;r&&be(t);var a=e.display,s=a.lineDiv.getBoundingClientRect();if(o>s.bottom||!Ee(e,n))return Ce(t);o-=s.top-a.viewOffset;for(var u=0;u=i)return ve(e,n,e,tt(e.doc,o),e.display.gutterSpecs[u].className,t),Ce(t)}}function xs(e,t){return ks(e,t,"gutterClick",!0)}function ws(e,t){Hn(e.display,t)||Ss(e,t)||ge(e,t,"contextmenu")||A||e.display.input.onContextMenu(t)}function Ss(e,t){return!!Ee(e,"gutterContextMenu")&&ks(e,t,"gutterContextMenu",!1)}function Fs(e){e.display.wrapper.className=e.display.wrapper.className.replace(/\s*cm-s-\S+/g,"")+e.options.theme.replace(/(^|\s)\s*/g," cm-s-"),pr(e)}ms.prototype.compare=function(e,t,n){return this.time+hs>e&&0==ot(t,this.pos)&&n==this.button};var Ts={toString:function(){return"CodeMirror.Init"}},Bs={},qs={};function Os(e){var t=e.optionHandlers;function n(n,r,i,o){e.defaults[n]=r,i&&(t[n]=o?function(e,t,n){n!=Ts&&i(e,t,n)}:i)}e.defineOption=n,e.Init=Ts,n("value","",(function(e,t){return e.setValue(t)}),!0),n("mode",null,(function(e,t){e.doc.modeOption=t,fo(e)}),!0),n("indentUnit",2,fo,!0),n("indentWithTabs",!1),n("smartIndent",!0),n("tabSize",4,(function(e){ho(e),pr(e),Ir(e)}),!0),n("lineSeparator",null,(function(e,t){if(e.doc.lineSep=t,t){var n=[],r=e.doc.first;e.doc.iter((function(e){for(var i=0;;){var o=e.text.indexOf(t,i);if(-1==o)break;i=o+t.length,n.push(it(r,o))}r++}));for(var i=n.length-1;i>=0;i--)ra(e.doc,t,n[i],it(n[i].line,n[i].ch+t.length))}})),n("specialChars",/[\u0000-\u001f\u007f-\u009f\u00ad\u061c\u200b\u200e\u200f\u2028\u2029\ufeff\ufff9-\ufffc]/g,(function(e,t,n){e.state.specialChars=new RegExp(t.source+(t.test("\t")?"":"|\t"),"g"),n!=Ts&&e.refresh()})),n("specialCharPlaceholder",mn,(function(e){return e.refresh()}),!0),n("electricChars",!0),n("inputStyle",v?"contenteditable":"textarea",(function(){throw new Error("inputStyle can not (yet) be changed in a running editor")}),!0),n("spellcheck",!1,(function(e,t){return e.getInputField().spellcheck=t}),!0),n("autocorrect",!1,(function(e,t){return e.getInputField().autocorrect=t}),!0),n("autocapitalize",!1,(function(e,t){return e.getInputField().autocapitalize=t}),!0),n("rtlMoveVisually",!E),n("wholeLineUpdateBefore",!0),n("theme","default",(function(e){Fs(e),Ji(e)}),!0),n("keyMap","default",(function(e,t,n){var r=za(t),i=n!=Ts&&za(n);i&&i.detach&&i.detach(e,r),r.attach&&r.attach(e,i||null)})),n("extraKeys",null),n("configureMouse",null),n("lineWrapping",!1,Ps,!0),n("gutters",[],(function(e,t){e.display.gutterSpecs=Yi(t,e.options.lineNumbers),Ji(e)}),!0),n("fixedGutter",!0,(function(e,t){e.display.gutters.style.left=t?Br(e.display)+"px":"0",e.refresh()}),!0),n("coverGutterNextToScrollbar",!1,(function(e){return vi(e)}),!0),n("scrollbarStyle","native",(function(e){Ei(e),vi(e),e.display.scrollbars.setScrollTop(e.doc.scrollTop),e.display.scrollbars.setScrollLeft(e.doc.scrollLeft)}),!0),n("lineNumbers",!1,(function(e,t){e.display.gutterSpecs=Yi(e.options.gutters,t),Ji(e)}),!0),n("firstLineNumber",1,Ji,!0),n("lineNumberFormatter",(function(e){return e}),Ji,!0),n("showCursorWhenSelecting",!1,Gr,!0),n("resetSelectionOnContextMenu",!0),n("lineWiseCopyCut",!0),n("pasteLinesPerSelection",!0),n("selectionsMayTouch",!1),n("readOnly",!1,(function(e,t){"nocursor"==t&&(Xr(e),e.display.input.blur()),e.display.input.readOnlyChanged(t)})),n("screenReaderLabel",null,(function(e,t){t=""===t?null:t,e.display.input.screenReaderLabelChanged(t)})),n("disableInput",!1,(function(e,t){t||e.display.input.reset()}),!0),n("dragDrop",!0,Ms),n("allowDropFileTypes",null),n("cursorBlinkRate",530),n("cursorScrollMargin",0),n("cursorHeight",1,Gr,!0),n("singleCursorHeightPerLine",!0,Gr,!0),n("workTime",100),n("workDelay",100),n("flattenSpans",!0,ho,!0),n("addModeClass",!1,ho,!0),n("pollInterval",100),n("undoDepth",200,(function(e,t){return e.doc.history.undoDepth=t})),n("historyEventDelay",1250),n("viewportMargin",10,(function(e){return e.refresh()}),!0),n("maxHighlightLength",1e4,ho,!0),n("moveInputWithCursor",!0,(function(e,t){t||e.display.input.resetPosition()})),n("tabindex",null,(function(e,t){return e.display.input.getField().tabIndex=t||""})),n("autofocus",null),n("direction","ltr",(function(e,t){return e.doc.setDirection(t)}),!0),n("phrases",null)}function Ms(e,t,n){if(!t!=!(n&&n!=Ts)){var r=e.display.dragFunctions,i=t?he:ye;i(e.display.scroller,"dragstart",r.start),i(e.display.scroller,"dragenter",r.enter),i(e.display.scroller,"dragover",r.over),i(e.display.scroller,"dragleave",r.leave),i(e.display.scroller,"drop",r.drop)}}function Ps(e){e.options.lineWrapping?(O(e.display.wrapper,"CodeMirror-wrap"),e.display.sizer.style.minWidth="",e.display.sizerWidth=null):(x(e.display.wrapper,"CodeMirror-wrap"),sn(e)),Or(e),Ir(e),pr(e),setTimeout((function(){return vi(e)}),100)}function Is(e,t){var n=this;if(!(this instanceof Is))return new Is(e,t);this.options=t=t?N(t):{},N(Bs,t,!1);var r=t.value;"string"==typeof r?r=new ba(r,t.mode,null,t.lineSeparator,t.direction):t.mode&&(r.modeOption=t.mode),this.doc=r;var i=new Is.inputStyles[t.inputStyle](this),o=this.display=new Xi(e,r,i,t);for(var c in o.wrapper.CodeMirror=this,Fs(this),t.lineWrapping&&(this.display.wrapper.className+=" CodeMirror-wrap"),Ei(this),this.state={keyMaps:[],overlays:[],modeGen:0,overwrite:!1,delayingBlurEvent:!1,focused:!1,suppressEdits:!1,pasteIncoming:-1,cutIncoming:-1,selectingText:!1,draggingText:!1,highlight:new L,keySeq:null,specialChars:null},t.autofocus&&!v&&o.input.focus(),a&&s<11&&setTimeout((function(){return n.display.input.reset(!0)}),20),Ns(this),Ta(),bi(this),this.curOp.forceUpdate=!0,go(this,r),t.autofocus&&!v||this.hasFocus()?setTimeout((function(){n.hasFocus()&&!n.state.focused&&Jr(n)}),20):Xr(this),qs)qs.hasOwnProperty(c)&&qs[c](this,t[c],Ts);Ui(this),t.finishInit&&t.finishInit(this);for(var l=0;l400}he(t.scroller,"touchstart",(function(i){if(!ge(e,i)&&!o(i)&&!xs(e,i)){t.input.ensurePolled(),clearTimeout(n);var a=+new Date;t.activeTouch={start:a,moved:!1,prev:a-r.end<=300?r:null},1==i.touches.length&&(t.activeTouch.left=i.touches[0].pageX,t.activeTouch.top=i.touches[0].pageY)}})),he(t.scroller,"touchmove",(function(){t.activeTouch&&(t.activeTouch.moved=!0)})),he(t.scroller,"touchend",(function(n){var r=t.activeTouch;if(r&&!Hn(t,n)&&null!=r.left&&!r.moved&&new Date-r.start<300){var o,a=e.coordsChar(t.activeTouch,"page");o=!r.prev||u(r,r.prev)?new io(a,a):!r.prev.prev||u(r,r.prev.prev)?e.findWordAt(a):new io(it(a.line,0),pt(e.doc,it(a.line+1,0))),e.setSelection(o.anchor,o.head),e.focus(),be(n)}i()})),he(t.scroller,"touchcancel",i),he(t.scroller,"scroll",(function(){t.scroller.clientHeight&&(pi(e,t.scroller.scrollTop),di(e,t.scroller.scrollLeft,!0),ve(e,"scroll",e))})),he(t.scroller,"mousewheel",(function(t){return no(e,t)})),he(t.scroller,"DOMMouseScroll",(function(t){return no(e,t)})),he(t.wrapper,"scroll",(function(){return t.wrapper.scrollTop=t.wrapper.scrollLeft=0})),t.dragFunctions={enter:function(t){ge(e,t)||ke(t)},over:function(t){ge(e,t)||(xa(e,t),ke(t))},start:function(t){return ka(e,t)},drop:Bi(e,Ca),leave:function(t){ge(e,t)||wa(e)}};var c=t.input.getField();he(c,"keyup",(function(t){return ls.call(e,t)})),he(c,"keydown",Bi(e,us)),he(c,"keypress",Bi(e,ps)),he(c,"focus",(function(t){return Jr(e,t)})),he(c,"blur",(function(t){return Xr(e,t)}))}Is.defaults=Bs,Is.optionHandlers=qs;var Rs=[];function Ls(e,t,n,r){var i,o=e.doc;null==n&&(n="add"),"smart"==n&&(o.mode.indent?i=gt(e,t).state:n="prev");var a=e.options.tabSize,s=Je(o,t),u=R(s.text,null,a);s.stateAfter&&(s.stateAfter=null);var c,l=s.text.match(/^\s*/)[0];if(r||/\S/.test(s.text)){if("smart"==n&&((c=o.mode.indent(i,s.text.slice(l.length),s.text))==G||c>150)){if(!r)return;n="prev"}}else c=0,n="not";"prev"==n?c=t>o.first?R(Je(o,t-1).text,null,a):0:"add"==n?c=u+e.options.indentUnit:"subtract"==n?c=u-e.options.indentUnit:"number"==typeof n&&(c=u+n),c=Math.max(0,c);var p="",f=0;if(e.options.indentWithTabs)for(var d=Math.floor(c/a);d;--d)f+=a,p+="\t";if(fa,u=Oe(t),c=null;if(s&&r.ranges.length>1)if(js&&js.text.join("\n")==t){if(r.ranges.length%js.text.length==0){c=[];for(var l=0;l=0;f--){var d=r.ranges[f],h=d.from(),m=d.to();d.empty()&&(n&&n>0?h=it(h.line,h.ch-n):e.state.overwrite&&!s?m=it(m.line,Math.min(Je(o,m.line).text.length,m.ch+K(u).length)):s&&js&&js.lineWise&&js.text.join("\n")==u.join("\n")&&(h=m=it(h.line,0)));var y={from:h,to:m,text:c?c[f%c.length]:u,origin:i||(s?"paste":e.state.cutIncoming>a?"cut":"+input")};Xo(e.doc,y),Sn(e,"inputRead",e,y)}t&&!s&&zs(e,t),ai(e),e.curOp.updateInput<2&&(e.curOp.updateInput=p),e.curOp.typing=!0,e.state.pasteIncoming=e.state.cutIncoming=-1}function Hs(e,t){var n=e.clipboardData&&e.clipboardData.getData("Text");if(n)return e.preventDefault(),t.isReadOnly()||t.options.disableInput||Ti(t,(function(){return Gs(t,n,0,null,"paste")})),!0}function zs(e,t){if(e.options.electricChars&&e.options.smartIndent)for(var n=e.doc.sel,r=n.ranges.length-1;r>=0;r--){var i=n.ranges[r];if(!(i.head.ch>100||r&&n.ranges[r-1].head.line==i.head.line)){var o=e.getModeAt(i.head),a=!1;if(o.electricChars){for(var s=0;s-1){a=Ls(e,i.head.line,"smart");break}}else o.electricInput&&o.electricInput.test(Je(e.doc,i.head.line).text.slice(0,i.head.ch))&&(a=Ls(e,i.head.line,"smart"));a&&Sn(e,"electricInput",e,i.head.line)}}}function Vs(e){for(var t=[],n=[],r=0;rn&&(Ls(this,i.head.line,e,!0),n=i.head.line,r==this.doc.sel.primIndex&&ai(this));else{var o=i.from(),a=i.to(),s=Math.max(n,o.line);n=Math.min(this.lastLine(),a.line-(a.ch?0:1))+1;for(var u=s;u0&&No(this.doc,r,new io(o,c[r].to()),H)}}})),getTokenAt:function(e,t){return At(this,e,t)},getLineTokens:function(e,t){return At(this,it(e),t,!0)},getTokenTypeAt:function(e){e=pt(this.doc,e);var t,n=vt(this,Je(this.doc,e.line)),r=0,i=(n.length-1)/2,o=e.ch;if(0==o)t=n[2];else for(;;){var a=r+i>>1;if((a?n[2*a-1]:0)>=o)i=a;else{if(!(n[2*a+1]o&&(e=o,i=!0),r=Je(this.doc,e)}else r=e;return mr(this,r,{top:0,left:0},t||"page",n||i).top+(i?this.doc.height-on(r):0)},defaultTextHeight:function(){return Sr(this.display)},defaultCharWidth:function(){return Fr(this.display)},getViewport:function(){return{from:this.display.viewFrom,to:this.display.viewTo}},addWidget:function(e,t,n,r,i){var o=this.display,a=(e=gr(this,pt(this.doc,e))).bottom,s=e.left;if(t.style.position="absolute",t.setAttribute("cm-ignore-events","true"),this.display.input.setUneditable(t),o.sizer.appendChild(t),"over"==r)a=e.top;else if("above"==r||"near"==r){var u=Math.max(o.wrapper.clientHeight,this.doc.height),c=Math.max(o.sizer.clientWidth,o.lineSpace.clientWidth);("above"==r||e.bottom+t.offsetHeight>u)&&e.top>t.offsetHeight?a=e.top-t.offsetHeight:e.bottom+t.offsetHeight<=u&&(a=e.bottom),s+t.offsetWidth>c&&(s=c-t.offsetWidth)}t.style.top=a+"px",t.style.left=t.style.right="","right"==i?(s=o.sizer.clientWidth-t.offsetWidth,t.style.right="0px"):("left"==i?s=0:"middle"==i&&(s=(o.sizer.clientWidth-t.offsetWidth)/2),t.style.left=s+"px"),n&&ri(this,{left:s,top:a,right:s+t.offsetWidth,bottom:a+t.offsetHeight})},triggerOnKeyDown:qi(us),triggerOnKeyPress:qi(ps),triggerOnKeyUp:ls,triggerOnMouseDown:qi(vs),execCommand:function(e){if(Ja.hasOwnProperty(e))return Ja[e].call(null,this)},triggerElectric:qi((function(e){zs(this,e)})),findPosH:function(e,t,n,r){var i=1;t<0&&(i=-1,t=-t);for(var o=pt(this.doc,e),a=0;a0&&a(t.charAt(n-1));)--n;for(;r.5||this.options.lineWrapping)&&Or(this),ve(this,"refresh",this)})),swapDoc:qi((function(e){var t=this.doc;return t.cm=null,this.state.selectingText&&this.state.selectingText(),go(this,e),pr(this),this.display.input.reset(),si(this,e.scrollLeft,e.scrollTop),this.curOp.forceScroll=!0,Sn(this,"swapDoc",this,t),t})),phrase:function(e){var t=this.options.phrases;return t&&Object.prototype.hasOwnProperty.call(t,e)?t[e]:e},getInputField:function(){return this.display.input.getField()},getWrapperElement:function(){return this.display.wrapper},getScrollerElement:function(){return this.display.scroller},getGutterElement:function(){return this.display.gutters}},De(e),e.registerHelper=function(t,r,i){n.hasOwnProperty(t)||(n[t]=e[t]={_global:[]}),n[t][r]=i},e.registerGlobalHelper=function(t,r,i,o){e.registerHelper(t,r,o),n[t]._global.push({pred:i,val:o})}}function Ks(e,t,n,r,i){var o=t,a=n,s=Je(e,t.line),u=i&&"rtl"==e.direction?-n:n;function c(){var n=t.line+u;return!(n=e.first+e.size)&&(t=new it(n,t.ch,t.sticky),s=Je(e,n))}function l(o){var a;if("codepoint"==r){var l=s.text.charCodeAt(t.ch+(n>0?0:-1));if(isNaN(l))a=null;else{var p=n>0?l>=55296&&l<56320:l>=56320&&l<57343;a=new it(t.line,Math.max(0,Math.min(s.text.length,t.ch+n*(p?2:1))),-n)}}else a=i?Ka(e.cm,s,t,n):Ua(s,t,n);if(null==a){if(o||!c())return!1;t=Ya(i,e.cm,s,t.line,u)}else t=a;return!0}if("char"==r||"codepoint"==r)l();else if("column"==r)l(!0);else if("word"==r||"group"==r)for(var p=null,f="group"==r,d=e.cm&&e.cm.getHelper(t,"wordChars"),h=!0;!(n<0)||l(!h);h=!1){var m=s.text.charAt(t.ch)||"\n",y=ne(m,d)?"w":f&&"\n"==m?"n":!f||/\s/.test(m)?null:"p";if(!f||h||y||(y="s"),p&&p!=y){n<0&&(n=1,l(),t.sticky="after");break}if(y&&(p=y),n>0&&!l(!h))break}var v=Uo(e,t,o,a,!0);return at(o,v)&&(v.hitSide=!0),v}function Js(e,t,n,r){var i,o,a=e.doc,s=t.left;if("page"==r){var u=Math.min(e.display.wrapper.clientHeight,window.innerHeight||document.documentElement.clientHeight),c=Math.max(u-.5*Sr(e.display),3);i=(n>0?t.bottom:t.top)+n*c}else"line"==r&&(i=n>0?t.bottom+3:t.top-3);for(;(o=Dr(e,s,i)).outside;){if(n<0?i<=0:i>=a.height){o.hitSide=!0;break}i+=5*n}return o}var Xs=function(e){this.cm=e,this.lastAnchorNode=this.lastAnchorOffset=this.lastFocusNode=this.lastFocusOffset=null,this.polling=new L,this.composing=null,this.gracePeriod=!1,this.readDOMTimeout=null};function Qs(e,t){var n=er(e,t.line);if(!n||n.hidden)return null;var r=Je(e.doc,t.line),i=Xn(n,r,t.line),o=fe(r,e.doc.direction),a="left";o&&(a=le(o,t.ch)%2?"right":"left");var s=or(i.map,t.ch,a);return s.offset="right"==s.collapse?s.end:s.start,s}function $s(e){for(var t=e;t;t=t.parentNode)if(/CodeMirror-gutter-wrapper/.test(t.className))return!0;return!1}function eu(e,t){return t&&(e.bad=!0),e}function tu(e,t,n,r,i){var o="",a=!1,s=e.doc.lineSeparator(),u=!1;function c(e){return function(t){return t.id==e}}function l(){a&&(o+=s,u&&(o+=s),a=u=!1)}function p(e){e&&(l(),o+=e)}function f(t){if(1==t.nodeType){var n=t.getAttribute("cm-text");if(n)return void p(n);var o,d=t.getAttribute("cm-marker");if(d){var h=e.findMarks(it(r,0),it(i+1,0),c(+d));return void(h.length&&(o=h[0].find(0))&&p(Xe(e.doc,o.from,o.to).join(s)))}if("false"==t.getAttribute("contenteditable"))return;var m=/^(pre|div|p|li|table|br)$/i.test(t.nodeName);if(!/^br$/i.test(t.nodeName)&&0==t.textContent.length)return;m&&l();for(var y=0;y=t.display.viewTo||o.line=t.display.viewFrom&&Qs(t,i)||{node:u[0].measure.map[2],offset:0},l=o.liner.firstLine()&&(a=it(a.line-1,Je(r.doc,a.line-1).length)),s.ch==Je(r.doc,s.line).text.length&&s.linei.viewTo-1)return!1;a.line==i.viewFrom||0==(e=Pr(r,a.line))?(t=et(i.view[0].line),n=i.view[0].node):(t=et(i.view[e].line),n=i.view[e-1].node.nextSibling);var u,c,l=Pr(r,s.line);if(l==i.view.length-1?(u=i.viewTo-1,c=i.lineDiv.lastChild):(u=et(i.view[l+1].line)-1,c=i.view[l+1].node.previousSibling),!n)return!1;for(var p=r.doc.splitLines(tu(r,n,c,t,u)),f=Xe(r.doc,it(t,0),it(u,Je(r.doc,u).text.length));p.length>1&&f.length>1;)if(K(p)==K(f))p.pop(),f.pop(),u--;else{if(p[0]!=f[0])break;p.shift(),f.shift(),t++}for(var d=0,h=0,m=p[0],y=f[0],v=Math.min(m.length,y.length);da.ch&&g.charCodeAt(g.length-h-1)==_.charCodeAt(_.length-h-1);)d--,h++;p[p.length-1]=g.slice(0,g.length-h).replace(/^\u200b+/,""),p[0]=p[0].slice(d).replace(/\u200b+$/,"");var D=it(t,d),b=it(u,f.length?K(f).length-h:0);return p.length>1||p[0]||ot(D,b)?(ra(r.doc,p,D,b,"+input"),!0):void 0},Xs.prototype.ensurePolled=function(){this.forceCompositionEnd()},Xs.prototype.reset=function(){this.forceCompositionEnd()},Xs.prototype.forceCompositionEnd=function(){this.composing&&(clearTimeout(this.readDOMTimeout),this.composing=null,this.updateFromDOM(),this.div.blur(),this.div.focus())},Xs.prototype.readFromDOMSoon=function(){var e=this;null==this.readDOMTimeout&&(this.readDOMTimeout=setTimeout((function(){if(e.readDOMTimeout=null,e.composing){if(!e.composing.done)return;e.composing=null}e.updateFromDOM()}),80))},Xs.prototype.updateFromDOM=function(){var e=this;!this.cm.isReadOnly()&&this.pollContent()||Ti(this.cm,(function(){return Ir(e.cm)}))},Xs.prototype.setUneditable=function(e){e.contentEditable="false"},Xs.prototype.onKeyPress=function(e){0==e.charCode||this.composing||(e.preventDefault(),this.cm.isReadOnly()||Bi(this.cm,Gs)(this.cm,String.fromCharCode(null==e.charCode?e.keyCode:e.charCode),0))},Xs.prototype.readOnlyChanged=function(e){this.div.contentEditable=String("nocursor"!=e)},Xs.prototype.onContextMenu=function(){},Xs.prototype.resetPosition=function(){},Xs.prototype.needsContentAttribute=!0;var iu=function(e){this.cm=e,this.prevInput="",this.pollingFast=!1,this.polling=new L,this.hasSelection=!1,this.composing=null};function ou(e,t){if((t=t?N(t):{}).value=e.value,!t.tabindex&&e.tabIndex&&(t.tabindex=e.tabIndex),!t.placeholder&&e.placeholder&&(t.placeholder=e.placeholder),null==t.autofocus){var n=q();t.autofocus=n==e||null!=e.getAttribute("autofocus")&&n==document.body}function r(){e.value=s.getValue()}var i;if(e.form&&(he(e.form,"submit",r),!t.leaveSubmitMethodAlone)){var o=e.form;i=o.submit;try{var a=o.submit=function(){r(),o.submit=i,o.submit(),o.submit=a}}catch(u){}}t.finishInit=function(n){n.save=r,n.getTextArea=function(){return e},n.toTextArea=function(){n.toTextArea=isNaN,r(),e.parentNode.removeChild(n.getWrapperElement()),e.style.display="",e.form&&(ye(e.form,"submit",r),t.leaveSubmitMethodAlone||"function"!=typeof e.form.submit||(e.form.submit=i))}},e.style.display="none";var s=Is((function(t){return e.parentNode.insertBefore(t,e.nextSibling)}),t);return s}function au(e){e.off=ye,e.on=he,e.wheelEventPixels=to,e.Doc=ba,e.splitLines=Oe,e.countColumn=R,e.findColumn=Z,e.isWordChar=te,e.Pass=G,e.signal=ve,e.Line=un,e.changeEnd=so,e.scrollbarModel=_i,e.Pos=it,e.cmpPos=ot,e.modes=Re,e.mimeModes=Le,e.resolveMode=Ge,e.getMode=He,e.modeExtensions=ze,e.extendMode=Ve,e.copyState=Ze,e.startState=Ye,e.innerMode=Ue,e.commands=Ja,e.keyMap=Na,e.keyName=Ha,e.isModifierKey=Wa,e.lookupKey=ja,e.normalizeKeyMap=La,e.StringStream=Ke,e.SharedTextMarker=ya,e.TextMarker=ha,e.LineWidget=la,e.e_preventDefault=be,e.e_stopPropagation=Ae,e.e_stop=ke,e.addClass=O,e.contains=B,e.rmClass=x,e.keyNames=Oa}iu.prototype.init=function(e){var t=this,n=this,r=this.cm;this.createField(e);var i=this.textarea;function o(e){if(!ge(r,e)){if(r.somethingSelected())Ws({lineWise:!1,text:r.getSelections()});else{if(!r.options.lineWiseCopyCut)return;var t=Vs(r);Ws({lineWise:!0,text:t.text}),"cut"==e.type?r.setSelections(t.ranges,null,H):(n.prevInput="",i.value=t.text.join("\n"),P(i))}"cut"==e.type&&(r.state.cutIncoming=+new Date)}}e.wrapper.insertBefore(this.wrapper,e.wrapper.firstChild),m&&(i.style.width="0px"),he(i,"input",(function(){a&&s>=9&&t.hasSelection&&(t.hasSelection=null),n.poll()})),he(i,"paste",(function(e){ge(r,e)||Hs(e,r)||(r.state.pasteIncoming=+new Date,n.fastPoll())})),he(i,"cut",o),he(i,"copy",o),he(e.scroller,"paste",(function(t){if(!Hn(e,t)&&!ge(r,t)){if(!i.dispatchEvent)return r.state.pasteIncoming=+new Date,void n.focus();var o=new Event("paste");o.clipboardData=t.clipboardData,i.dispatchEvent(o)}})),he(e.lineSpace,"selectstart",(function(t){Hn(e,t)||be(t)})),he(i,"compositionstart",(function(){var e=r.getCursor("from");n.composing&&n.composing.range.clear(),n.composing={start:e,range:r.markText(e,r.getCursor("to"),{className:"CodeMirror-composing"})}})),he(i,"compositionend",(function(){n.composing&&(n.poll(),n.composing.range.clear(),n.composing=null)}))},iu.prototype.createField=function(e){this.wrapper=Us(),this.textarea=this.wrapper.firstChild},iu.prototype.screenReaderLabelChanged=function(e){e?this.textarea.setAttribute("aria-label",e):this.textarea.removeAttribute("aria-label")},iu.prototype.prepareSelection=function(){var e=this.cm,t=e.display,n=e.doc,r=Hr(e);if(e.options.moveInputWithCursor){var i=gr(e,n.sel.primary().head,"div"),o=t.wrapper.getBoundingClientRect(),a=t.lineDiv.getBoundingClientRect();r.teTop=Math.max(0,Math.min(t.wrapper.clientHeight-10,i.top+a.top-o.top)),r.teLeft=Math.max(0,Math.min(t.wrapper.clientWidth-10,i.left+a.left-o.left))}return r},iu.prototype.showSelection=function(e){var t=this.cm.display;S(t.cursorDiv,e.cursors),S(t.selectionDiv,e.selection),null!=e.teTop&&(this.wrapper.style.top=e.teTop+"px",this.wrapper.style.left=e.teLeft+"px")},iu.prototype.reset=function(e){if(!this.contextMenuPending&&!this.composing){var t=this.cm;if(t.somethingSelected()){this.prevInput="";var n=t.getSelection();this.textarea.value=n,t.state.focused&&P(this.textarea),a&&s>=9&&(this.hasSelection=n)}else e||(this.prevInput=this.textarea.value="",a&&s>=9&&(this.hasSelection=null))}},iu.prototype.getField=function(){return this.textarea},iu.prototype.supportsTouch=function(){return!1},iu.prototype.focus=function(){if("nocursor"!=this.cm.options.readOnly&&(!v||q()!=this.textarea))try{this.textarea.focus()}catch(e){}},iu.prototype.blur=function(){this.textarea.blur()},iu.prototype.resetPosition=function(){this.wrapper.style.top=this.wrapper.style.left=0},iu.prototype.receivedFocus=function(){this.slowPoll()},iu.prototype.slowPoll=function(){var e=this;this.pollingFast||this.polling.set(this.cm.options.pollInterval,(function(){e.poll(),e.cm.state.focused&&e.slowPoll()}))},iu.prototype.fastPoll=function(){var e=!1,t=this;function n(){t.poll()||e?(t.pollingFast=!1,t.slowPoll()):(e=!0,t.polling.set(60,n))}t.pollingFast=!0,t.polling.set(20,n)},iu.prototype.poll=function(){var e=this,t=this.cm,n=this.textarea,r=this.prevInput;if(this.contextMenuPending||!t.state.focused||Me(n)&&!r&&!this.composing||t.isReadOnly()||t.options.disableInput||t.state.keySeq)return!1;var i=n.value;if(i==r&&!t.somethingSelected())return!1;if(a&&s>=9&&this.hasSelection===i||g&&/[\uf700-\uf7ff]/.test(i))return t.display.input.reset(),!1;if(t.doc.sel==t.display.selForContextMenu){var o=i.charCodeAt(0);if(8203!=o||r||(r="\u200b"),8666==o)return this.reset(),this.cm.execCommand("undo")}for(var u=0,c=Math.min(r.length,i.length);u1e3||i.indexOf("\n")>-1?n.value=e.prevInput="":e.prevInput=i,e.composing&&(e.composing.range.clear(),e.composing.range=t.markText(e.composing.start,t.getCursor("to"),{className:"CodeMirror-composing"}))})),!0},iu.prototype.ensurePolled=function(){this.pollingFast&&this.poll()&&(this.pollingFast=!1)},iu.prototype.onKeyPress=function(){a&&s>=9&&(this.hasSelection=null),this.fastPoll()},iu.prototype.onContextMenu=function(e){var t=this,n=t.cm,r=n.display,i=t.textarea;t.contextMenuPending&&t.contextMenuPending();var o=Mr(n,e),c=r.scroller.scrollTop;if(o&&!p){n.options.resetSelectionOnContextMenu&&-1==n.doc.sel.contains(o)&&Bi(n,Wo)(n.doc,ao(o),H);var l,f=i.style.cssText,d=t.wrapper.style.cssText,h=t.wrapper.offsetParent.getBoundingClientRect();t.wrapper.style.cssText="position: static",i.style.cssText="position: absolute; width: 30px; height: 30px;\n top: "+(e.clientY-h.top-5)+"px; left: "+(e.clientX-h.left-5)+"px;\n z-index: 1000; background: "+(a?"rgba(255, 255, 255, .05)":"transparent")+";\n outline: none; border-width: 0; outline: none; overflow: hidden; opacity: .05; filter: alpha(opacity=5);",u&&(l=window.scrollY),r.input.focus(),u&&window.scrollTo(null,l),r.input.reset(),n.somethingSelected()||(i.value=t.prevInput=" "),t.contextMenuPending=y,r.selForContextMenu=n.doc.sel,clearTimeout(r.detectingSelectAll),a&&s>=9&&m(),A?(ke(e),he(window,"mouseup",(function e(){ye(window,"mouseup",e),setTimeout(y,20)}))):setTimeout(y,50)}function m(){if(null!=i.selectionStart){var e=n.somethingSelected(),o="\u200b"+(e?i.value:"");i.value="\u21da",i.value=o,t.prevInput=e?"":"\u200b",i.selectionStart=1,i.selectionEnd=o.length,r.selForContextMenu=n.doc.sel}}function y(){if(t.contextMenuPending==y&&(t.contextMenuPending=!1,t.wrapper.style.cssText=d,i.style.cssText=f,a&&s<9&&r.scrollbars.setScrollTop(r.scroller.scrollTop=c),null!=i.selectionStart)){(!a||a&&s<9)&&m();var e=0,o=function o(){r.selForContextMenu==n.doc.sel&&0==i.selectionStart&&i.selectionEnd>0&&"\u200b"==t.prevInput?Bi(n,Ko)(n):e++<10?r.detectingSelectAll=setTimeout(o,500):(r.selForContextMenu=null,r.input.reset())};r.detectingSelectAll=setTimeout(o,200)}}},iu.prototype.readOnlyChanged=function(e){e||this.reset(),this.textarea.disabled="nocursor"==e,this.textarea.readOnly=!!e},iu.prototype.setUneditable=function(){},iu.prototype.needsContentAttribute=!1,Os(Is),Ys(Is);var su="iter insert remove copy getEditor constructor".split(" ");for(var uu in ba.prototype)ba.prototype.hasOwnProperty(uu)&&j(su,uu)<0&&(Is.prototype[uu]=function(e){return function(){return e.apply(this.doc,arguments)}}(ba.prototype[uu]));return De(ba),Is.inputStyles={textarea:iu,contenteditable:Xs},Is.defineMode=function(e){Is.defaults.mode||"null"==e||(Is.defaults.mode=e),je.apply(this,arguments)},Is.defineMIME=We,Is.defineMode("null",(function(){return{token:function(e){return e.skipToEnd()}}})),Is.defineMIME("text/plain","null"),Is.defineExtension=function(e,t){Is.prototype[e]=t},Is.defineDocExtension=function(e,t){ba.prototype[e]=t},Is.fromTextArea=ou,au(Is),Is.version="5.65.2",Is}()},5683:function(e,t,n){!function(e){"use strict";e.defineMode("javascript",(function(t,n){var r,i,o=t.indentUnit,a=n.statementIndent,s=n.jsonld,u=n.json||s,c=!1!==n.trackScope,l=n.typescript,p=n.wordCharacters||/[\w$\xa1-\uffff]/,f=function(){function e(e){return{type:e,style:"keyword"}}var t=e("keyword a"),n=e("keyword b"),r=e("keyword c"),i=e("keyword d"),o=e("operator"),a={type:"atom",style:"atom"};return{if:e("if"),while:t,with:t,else:n,do:n,try:n,finally:n,return:i,break:i,continue:i,new:e("new"),delete:r,void:r,throw:r,debugger:e("debugger"),var:e("var"),const:e("var"),let:e("var"),function:e("function"),catch:e("catch"),for:e("for"),switch:e("switch"),case:e("case"),default:e("default"),in:o,typeof:o,instanceof:o,true:a,false:a,null:a,undefined:a,NaN:a,Infinity:a,this:e("this"),class:e("class"),super:e("atom"),yield:r,export:e("export"),import:e("import"),extends:r,await:r}}(),d=/[+\-*&%=<>!?|~^@]/,h=/^@(context|id|value|language|type|container|list|set|reverse|index|base|vocab|graph)"/;function m(e){for(var t,n=!1,r=!1;null!=(t=e.next());){if(!n){if("/"==t&&!r)return;"["==t?r=!0:r&&"]"==t&&(r=!1)}n=!n&&"\\"==t}}function y(e,t,n){return r=e,i=n,t}function v(e,t){var n=e.next();if('"'==n||"'"==n)return t.tokenize=g(n),t.tokenize(e,t);if("."==n&&e.match(/^\d[\d_]*(?:[eE][+\-]?[\d_]+)?/))return y("number","number");if("."==n&&e.match(".."))return y("spread","meta");if(/[\[\]{}\(\),;\:\.]/.test(n))return y(n);if("="==n&&e.eat(">"))return y("=>","operator");if("0"==n&&e.match(/^(?:x[\dA-Fa-f_]+|o[0-7_]+|b[01_]+)n?/))return y("number","number");if(/\d/.test(n))return e.match(/^[\d_]*(?:n|(?:\.[\d_]*)?(?:[eE][+\-]?[\d_]+)?)?/),y("number","number");if("/"==n)return e.eat("*")?(t.tokenize=_,_(e,t)):e.eat("/")?(e.skipToEnd(),y("comment","comment")):it(e,t,1)?(m(e),e.match(/^\b(([gimyus])(?![gimyus]*\2))+\b/),y("regexp","string-2")):(e.eat("="),y("operator","operator",e.current()));if("`"==n)return t.tokenize=E,E(e,t);if("#"==n&&"!"==e.peek())return e.skipToEnd(),y("meta","meta");if("#"==n&&e.eatWhile(p))return y("variable","property");if("<"==n&&e.match("!--")||"-"==n&&e.match("->")&&!/\S/.test(e.string.slice(0,e.start)))return e.skipToEnd(),y("comment","comment");if(d.test(n))return">"==n&&t.lexical&&">"==t.lexical.type||(e.eat("=")?"!"!=n&&"="!=n||e.eat("="):/[<>*+\-|&?]/.test(n)&&(e.eat(n),">"==n&&e.eat(n))),"?"==n&&e.eat(".")?y("."):y("operator","operator",e.current());if(p.test(n)){e.eatWhile(p);var r=e.current();if("."!=t.lastType){if(f.propertyIsEnumerable(r)){var i=f[r];return y(i.type,i.style,r)}if("async"==r&&e.match(/^(\s|\/\*([^*]|\*(?!\/))*?\*\/)*[\[\(\w]/,!1))return y("async","keyword",r)}return y("variable","variable",r)}}function g(e){return function(t,n){var r,i=!1;if(s&&"@"==t.peek()&&t.match(h))return n.tokenize=v,y("jsonld-keyword","meta");for(;null!=(r=t.next())&&(r!=e||i);)i=!i&&"\\"==r;return i||(n.tokenize=v),y("string","string")}}function _(e,t){for(var n,r=!1;n=e.next();){if("/"==n&&r){t.tokenize=v;break}r="*"==n}return y("comment","comment")}function E(e,t){for(var n,r=!1;null!=(n=e.next());){if(!r&&("`"==n||"$"==n&&e.eat("{"))){t.tokenize=v;break}r=!r&&"\\"==n}return y("quasi","string-2",e.current())}var D="([{}])";function b(e,t){t.fatArrowAt&&(t.fatArrowAt=null);var n=e.string.indexOf("=>",e.start);if(!(n<0)){if(l){var r=/:\s*(?:\w+(?:<[^>]*>|\[\])?|\{[^}]*\})\s*$/.exec(e.string.slice(e.start,n));r&&(n=r.index)}for(var i=0,o=!1,a=n-1;a>=0;--a){var s=e.string.charAt(a),u=D.indexOf(s);if(u>=0&&u<3){if(!i){++a;break}if(0==--i){"("==s&&(o=!0);break}}else if(u>=3&&u<6)++i;else if(p.test(s))o=!0;else if(/["'\/`]/.test(s))for(;;--a){if(0==a)return;if(e.string.charAt(a-1)==s&&"\\"!=e.string.charAt(a-2)){a--;break}}else if(o&&!i){++a;break}}o&&!i&&(t.fatArrowAt=a)}}var A={atom:!0,number:!0,variable:!0,string:!0,regexp:!0,this:!0,import:!0,"jsonld-keyword":!0};function C(e,t,n,r,i,o){this.indented=e,this.column=t,this.type=n,this.prev=i,this.info=o,null!=r&&(this.align=r)}function k(e,t){if(!c)return!1;for(var n=e.localVars;n;n=n.next)if(n.name==t)return!0;for(var r=e.context;r;r=r.prev)for(n=r.vars;n;n=n.next)if(n.name==t)return!0}function x(e,t,n,r,i){var o=e.cc;for(w.state=e,w.stream=i,w.marked=null,w.cc=o,w.style=t,e.lexical.hasOwnProperty("align")||(e.lexical.align=!0);;)if((o.length?o.pop():u?V:H)(n,r)){for(;o.length&&o[o.length-1].lex;)o.pop()();return w.marked?w.marked:"variable"==n&&k(e,r)?"variable-2":t}}var w={state:null,column:null,marked:null,cc:null};function S(){for(var e=arguments.length-1;e>=0;e--)w.cc.push(arguments[e])}function F(){return S.apply(null,arguments),!0}function T(e,t){for(var n=t;n;n=n.next)if(n.name==e)return!0;return!1}function B(e){var t=w.state;if(w.marked="def",c){if(t.context)if("var"==t.lexical.info&&t.context&&t.context.block){var r=q(e,t.context);if(null!=r)return void(t.context=r)}else if(!T(e,t.localVars))return void(t.localVars=new P(e,t.localVars));n.globalVars&&!T(e,t.globalVars)&&(t.globalVars=new P(e,t.globalVars))}}function q(e,t){if(t){if(t.block){var n=q(e,t.prev);return n?n==t.prev?t:new M(n,t.vars,!0):null}return T(e,t.vars)?t:new M(t.prev,new P(e,t.vars),!1)}return null}function O(e){return"public"==e||"private"==e||"protected"==e||"abstract"==e||"readonly"==e}function M(e,t,n){this.prev=e,this.vars=t,this.block=n}function P(e,t){this.name=e,this.next=t}var I=new P("this",new P("arguments",null));function N(){w.state.context=new M(w.state.context,w.state.localVars,!1),w.state.localVars=I}function R(){w.state.context=new M(w.state.context,w.state.localVars,!0),w.state.localVars=null}function L(){w.state.localVars=w.state.context.vars,w.state.context=w.state.context.prev}function j(e,t){var n=function(){var n=w.state,r=n.indented;if("stat"==n.lexical.type)r=n.lexical.indented;else for(var i=n.lexical;i&&")"==i.type&&i.align;i=i.prev)r=i.indented;n.lexical=new C(r,w.stream.column(),e,null,n.lexical,t)};return n.lex=!0,n}function W(){var e=w.state;e.lexical.prev&&(")"==e.lexical.type&&(e.indented=e.lexical.indented),e.lexical=e.lexical.prev)}function G(e){function t(n){return n==e?F():";"==e||"}"==n||")"==n||"]"==n?S():F(t)}return t}function H(e,t){return"var"==e?F(j("vardef",t),Se,G(";"),W):"keyword a"==e?F(j("form"),U,H,W):"keyword b"==e?F(j("form"),H,W):"keyword d"==e?w.stream.match(/^\s*$/,!1)?F():F(j("stat"),K,G(";"),W):"debugger"==e?F(G(";")):"{"==e?F(j("}"),R,fe,W,L):";"==e?F():"if"==e?("else"==w.state.lexical.info&&w.state.cc[w.state.cc.length-1]==W&&w.state.cc.pop()(),F(j("form"),U,H,W,Me)):"function"==e?F(Re):"for"==e?F(j("form"),R,Pe,H,L,W):"class"==e||l&&"interface"==t?(w.marked="keyword",F(j("form","class"==e?e:t),He,W)):"variable"==e?l&&"declare"==t?(w.marked="keyword",F(H)):l&&("module"==t||"enum"==t||"type"==t)&&w.stream.match(/^\s*\w/,!1)?(w.marked="keyword","enum"==t?F(tt):"type"==t?F(je,G("operator"),ve,G(";")):F(j("form"),Fe,G("{"),j("}"),fe,W,W)):l&&"namespace"==t?(w.marked="keyword",F(j("form"),V,H,W)):l&&"abstract"==t?(w.marked="keyword",F(H)):F(j("stat"),oe):"switch"==e?F(j("form"),U,G("{"),j("}","switch"),R,fe,W,W,L):"case"==e?F(V,G(":")):"default"==e?F(G(":")):"catch"==e?F(j("form"),N,z,H,W,L):"export"==e?F(j("stat"),Ue,W):"import"==e?F(j("stat"),Ke,W):"async"==e?F(H):"@"==t?F(V,H):S(j("stat"),V,G(";"),W)}function z(e){if("("==e)return F(We,G(")"))}function V(e,t){return Y(e,t,!1)}function Z(e,t){return Y(e,t,!0)}function U(e){return"("!=e?S():F(j(")"),K,G(")"),W)}function Y(e,t,n){if(w.state.fatArrowAt==w.stream.start){var r=n?te:ee;if("("==e)return F(N,j(")"),le(We,")"),W,G("=>"),r,L);if("variable"==e)return S(N,Fe,G("=>"),r,L)}var i=n?X:J;return A.hasOwnProperty(e)?F(i):"function"==e?F(Re,i):"class"==e||l&&"interface"==t?(w.marked="keyword",F(j("form"),Ge,W)):"keyword c"==e||"async"==e?F(n?Z:V):"("==e?F(j(")"),K,G(")"),W,i):"operator"==e||"spread"==e?F(n?Z:V):"["==e?F(j("]"),et,W,i):"{"==e?pe(se,"}",null,i):"quasi"==e?S(Q,i):"new"==e?F(ne(n)):F()}function K(e){return e.match(/[;\}\)\],]/)?S():S(V)}function J(e,t){return","==e?F(K):X(e,t,!1)}function X(e,t,n){var r=0==n?J:X,i=0==n?V:Z;return"=>"==e?F(N,n?te:ee,L):"operator"==e?/\+\+|--/.test(t)||l&&"!"==t?F(r):l&&"<"==t&&w.stream.match(/^([^<>]|<[^<>]*>)*>\s*\(/,!1)?F(j(">"),le(ve,">"),W,r):"?"==t?F(V,G(":"),i):F(i):"quasi"==e?S(Q,r):";"!=e?"("==e?pe(Z,")","call",r):"."==e?F(ae,r):"["==e?F(j("]"),K,G("]"),W,r):l&&"as"==t?(w.marked="keyword",F(ve,r)):"regexp"==e?(w.state.lastType=w.marked="operator",w.stream.backUp(w.stream.pos-w.stream.start-1),F(i)):void 0:void 0}function Q(e,t){return"quasi"!=e?S():"${"!=t.slice(t.length-2)?F(Q):F(K,$)}function $(e){if("}"==e)return w.marked="string-2",w.state.tokenize=E,F(Q)}function ee(e){return b(w.stream,w.state),S("{"==e?H:V)}function te(e){return b(w.stream,w.state),S("{"==e?H:Z)}function ne(e){return function(t){return"."==t?F(e?ie:re):"variable"==t&&l?F(ke,e?X:J):S(e?Z:V)}}function re(e,t){if("target"==t)return w.marked="keyword",F(J)}function ie(e,t){if("target"==t)return w.marked="keyword",F(X)}function oe(e){return":"==e?F(W,H):S(J,G(";"),W)}function ae(e){if("variable"==e)return w.marked="property",F()}function se(e,t){return"async"==e?(w.marked="property",F(se)):"variable"==e||"keyword"==w.style?(w.marked="property","get"==t||"set"==t?F(ue):(l&&w.state.fatArrowAt==w.stream.start&&(n=w.stream.match(/^\s*:\s*/,!1))&&(w.state.fatArrowAt=w.stream.pos+n[0].length),F(ce))):"number"==e||"string"==e?(w.marked=s?"property":w.style+" property",F(ce)):"jsonld-keyword"==e?F(ce):l&&O(t)?(w.marked="keyword",F(se)):"["==e?F(V,de,G("]"),ce):"spread"==e?F(Z,ce):"*"==t?(w.marked="keyword",F(se)):":"==e?S(ce):void 0;var n}function ue(e){return"variable"!=e?S(ce):(w.marked="property",F(Re))}function ce(e){return":"==e?F(Z):"("==e?S(Re):void 0}function le(e,t,n){function r(i,o){if(n?n.indexOf(i)>-1:","==i){var a=w.state.lexical;return"call"==a.info&&(a.pos=(a.pos||0)+1),F((function(n,r){return n==t||r==t?S():S(e)}),r)}return i==t||o==t?F():n&&n.indexOf(";")>-1?S(e):F(G(t))}return function(n,i){return n==t||i==t?F():S(e,r)}}function pe(e,t,n){for(var r=3;r"),ve):"quasi"==e?S(De,Ce):void 0}function ge(e){if("=>"==e)return F(ve)}function _e(e){return e.match(/[\}\)\]]/)?F():","==e||";"==e?F(_e):S(Ee,_e)}function Ee(e,t){return"variable"==e||"keyword"==w.style?(w.marked="property",F(Ee)):"?"==t||"number"==e||"string"==e?F(Ee):":"==e?F(ve):"["==e?F(G("variable"),he,G("]"),Ee):"("==e?S(Le,Ee):e.match(/[;\}\)\],]/)?void 0:F()}function De(e,t){return"quasi"!=e?S():"${"!=t.slice(t.length-2)?F(De):F(ve,be)}function be(e){if("}"==e)return w.marked="string-2",w.state.tokenize=E,F(De)}function Ae(e,t){return"variable"==e&&w.stream.match(/^\s*[?:]/,!1)||"?"==t?F(Ae):":"==e?F(ve):"spread"==e?F(Ae):S(ve)}function Ce(e,t){return"<"==t?F(j(">"),le(ve,">"),W,Ce):"|"==t||"."==e||"&"==t?F(ve):"["==e?F(ve,G("]"),Ce):"extends"==t||"implements"==t?(w.marked="keyword",F(ve)):"?"==t?F(ve,G(":"),ve):void 0}function ke(e,t){if("<"==t)return F(j(">"),le(ve,">"),W,Ce)}function xe(){return S(ve,we)}function we(e,t){if("="==t)return F(ve)}function Se(e,t){return"enum"==t?(w.marked="keyword",F(tt)):S(Fe,de,qe,Oe)}function Fe(e,t){return l&&O(t)?(w.marked="keyword",F(Fe)):"variable"==e?(B(t),F()):"spread"==e?F(Fe):"["==e?pe(Be,"]"):"{"==e?pe(Te,"}"):void 0}function Te(e,t){return"variable"!=e||w.stream.match(/^\s*:/,!1)?("variable"==e&&(w.marked="property"),"spread"==e?F(Fe):"}"==e?S():"["==e?F(V,G("]"),G(":"),Te):F(G(":"),Fe,qe)):(B(t),F(qe))}function Be(){return S(Fe,qe)}function qe(e,t){if("="==t)return F(Z)}function Oe(e){if(","==e)return F(Se)}function Me(e,t){if("keyword b"==e&&"else"==t)return F(j("form","else"),H,W)}function Pe(e,t){return"await"==t?F(Pe):"("==e?F(j(")"),Ie,W):void 0}function Ie(e){return"var"==e?F(Se,Ne):"variable"==e?F(Ne):S(Ne)}function Ne(e,t){return")"==e?F():";"==e?F(Ne):"in"==t||"of"==t?(w.marked="keyword",F(V,Ne)):S(V,Ne)}function Re(e,t){return"*"==t?(w.marked="keyword",F(Re)):"variable"==e?(B(t),F(Re)):"("==e?F(N,j(")"),le(We,")"),W,me,H,L):l&&"<"==t?F(j(">"),le(xe,">"),W,Re):void 0}function Le(e,t){return"*"==t?(w.marked="keyword",F(Le)):"variable"==e?(B(t),F(Le)):"("==e?F(N,j(")"),le(We,")"),W,me,L):l&&"<"==t?F(j(">"),le(xe,">"),W,Le):void 0}function je(e,t){return"keyword"==e||"variable"==e?(w.marked="type",F(je)):"<"==t?F(j(">"),le(xe,">"),W):void 0}function We(e,t){return"@"==t&&F(V,We),"spread"==e?F(We):l&&O(t)?(w.marked="keyword",F(We)):l&&"this"==e?F(de,qe):S(Fe,de,qe)}function Ge(e,t){return"variable"==e?He(e,t):ze(e,t)}function He(e,t){if("variable"==e)return B(t),F(ze)}function ze(e,t){return"<"==t?F(j(">"),le(xe,">"),W,ze):"extends"==t||"implements"==t||l&&","==e?("implements"==t&&(w.marked="keyword"),F(l?ve:V,ze)):"{"==e?F(j("}"),Ve,W):void 0}function Ve(e,t){return"async"==e||"variable"==e&&("static"==t||"get"==t||"set"==t||l&&O(t))&&w.stream.match(/^\s+[\w$\xa1-\uffff]/,!1)?(w.marked="keyword",F(Ve)):"variable"==e||"keyword"==w.style?(w.marked="property",F(Ze,Ve)):"number"==e||"string"==e?F(Ze,Ve):"["==e?F(V,de,G("]"),Ze,Ve):"*"==t?(w.marked="keyword",F(Ve)):l&&"("==e?S(Le,Ve):";"==e||","==e?F(Ve):"}"==e?F():"@"==t?F(V,Ve):void 0}function Ze(e,t){if("!"==t)return F(Ze);if("?"==t)return F(Ze);if(":"==e)return F(ve,qe);if("="==t)return F(Z);var n=w.state.lexical.prev;return S(n&&"interface"==n.info?Le:Re)}function Ue(e,t){return"*"==t?(w.marked="keyword",F($e,G(";"))):"default"==t?(w.marked="keyword",F(V,G(";"))):"{"==e?F(le(Ye,"}"),$e,G(";")):S(H)}function Ye(e,t){return"as"==t?(w.marked="keyword",F(G("variable"))):"variable"==e?S(Z,Ye):void 0}function Ke(e){return"string"==e?F():"("==e?S(V):"."==e?S(J):S(Je,Xe,$e)}function Je(e,t){return"{"==e?pe(Je,"}"):("variable"==e&&B(t),"*"==t&&(w.marked="keyword"),F(Qe))}function Xe(e){if(","==e)return F(Je,Xe)}function Qe(e,t){if("as"==t)return w.marked="keyword",F(Je)}function $e(e,t){if("from"==t)return w.marked="keyword",F(V)}function et(e){return"]"==e?F():S(le(Z,"]"))}function tt(){return S(j("form"),Fe,G("{"),j("}"),le(nt,"}"),W,W)}function nt(){return S(Fe,qe)}function rt(e,t){return"operator"==e.lastType||","==e.lastType||d.test(t.charAt(0))||/[,.]/.test(t.charAt(0))}function it(e,t,n){return t.tokenize==v&&/^(?:operator|sof|keyword [bcd]|case|new|export|default|spread|[\[{}\(,;:]|=>)$/.test(t.lastType)||"quasi"==t.lastType&&/\{\s*$/.test(e.string.slice(0,e.pos-(n||0)))}return N.lex=R.lex=!0,L.lex=!0,W.lex=!0,{startState:function(e){var t={tokenize:v,lastType:"sof",cc:[],lexical:new C((e||0)-o,0,"block",!1),localVars:n.localVars,context:n.localVars&&new M(null,null,!1),indented:e||0};return n.globalVars&&"object"==typeof n.globalVars&&(t.globalVars=n.globalVars),t},token:function(e,t){if(e.sol()&&(t.lexical.hasOwnProperty("align")||(t.lexical.align=!1),t.indented=e.indentation(),b(e,t)),t.tokenize!=_&&e.eatSpace())return null;var n=t.tokenize(e,t);return"comment"==r?n:(t.lastType="operator"!=r||"++"!=i&&"--"!=i?r:"incdec",x(t,n,r,i,e))},indent:function(t,r){if(t.tokenize==_||t.tokenize==E)return e.Pass;if(t.tokenize!=v)return 0;var i,s=r&&r.charAt(0),u=t.lexical;if(!/^\s*else\b/.test(r))for(var c=t.cc.length-1;c>=0;--c){var l=t.cc[c];if(l==W)u=u.prev;else if(l!=Me&&l!=L)break}for(;("stat"==u.type||"form"==u.type)&&("}"==s||(i=t.cc[t.cc.length-1])&&(i==J||i==X)&&!/^[,\.=+\-*:?[\(]/.test(r));)u=u.prev;a&&")"==u.type&&"stat"==u.prev.type&&(u=u.prev);var p=u.type,f=s==p;return"vardef"==p?u.indented+("operator"==t.lastType||","==t.lastType?u.info.length+1:0):"form"==p&&"{"==s?u.indented:"form"==p?u.indented+o:"stat"==p?u.indented+(rt(t,r)?a||o:0):"switch"!=u.info||f||0==n.doubleIndentSwitch?u.align?u.column+(f?0:1):u.indented+(f?0:o):u.indented+(/^(?:case|default)\b/.test(r)?o:2*o)},electricInput:/^\s*(?:case .*?:|default:|\{|\})$/,blockCommentStart:u?null:"/*",blockCommentEnd:u?null:"*/",blockCommentContinue:u?null:" * ",lineComment:u?null:"//",fold:"brace",closeBrackets:"()[]{}''\"\"``",helperType:u?"json":"javascript",jsonldMode:s,jsonMode:u,expressionAllowed:it,skipExpression:function(t){x(t,"atom","atom","true",new e.StringStream("",2,null))}}})),e.registerHelper("wordChars","javascript",/[\w$]/),e.defineMIME("text/javascript","javascript"),e.defineMIME("text/ecmascript","javascript"),e.defineMIME("application/javascript","javascript"),e.defineMIME("application/x-javascript","javascript"),e.defineMIME("application/ecmascript","javascript"),e.defineMIME("application/json",{name:"javascript",json:!0}),e.defineMIME("application/x-json",{name:"javascript",json:!0}),e.defineMIME("application/manifest+json",{name:"javascript",json:!0}),e.defineMIME("application/ld+json",{name:"javascript",jsonld:!0}),e.defineMIME("text/typescript",{name:"javascript",typescript:!0}),e.defineMIME("application/typescript",{name:"javascript",typescript:!0})}(n(3668))},1629:function(e,t,n){!function(e){"use strict";e.defineMode("pegjs",(function(t){var n=e.getMode(t,"javascript");function r(e){return e.match(/^[a-zA-Z_][a-zA-Z0-9_]*/)}return{startState:function(){return{inString:!1,stringType:null,inComment:!1,inCharacterClass:!1,braced:0,lhs:!0,localState:null}},token:function(t,i){if(t&&(i.inString||i.inComment||'"'!=t.peek()&&"'"!=t.peek()||(i.stringType=t.peek(),t.next(),i.inString=!0)),i.inString||i.inComment||!t.match("/*")||(i.inComment=!0),i.inString){for(;i.inString&&!t.eol();)t.peek()===i.stringType?(t.next(),i.inString=!1):"\\"===t.peek()?(t.next(),t.next()):t.match(/^.[^\\\"\']*/);return i.lhs?"property string":"string"}if(i.inComment){for(;i.inComment&&!t.eol();)t.match("*/")?i.inComment=!1:t.match(/^.[^\*]*/);return"comment"}if(i.inCharacterClass)for(;i.inCharacterClass&&!t.eol();)t.match(/^[^\]\\]+/)||t.match(/^\\./)||(i.inCharacterClass=!1);else{if("["===t.peek())return t.next(),i.inCharacterClass=!0,"bracket";if(t.match("//"))return t.skipToEnd(),"comment";if(i.braced||"{"===t.peek()){null===i.localState&&(i.localState=e.startState(n));var o=n.token(t,i.localState),a=t.current();if(!o)for(var s=0;s